diff options
author | Miao Wang <miaowang@google.com> | 2022-02-04 21:08:55 +0000 |
---|---|---|
committer | Miao Wang <miaowang@google.com> | 2022-02-04 21:54:35 +0000 |
commit | 663cd1e319ec07a7426289e08f5816c59da82ce2 (patch) | |
tree | 3835898f1d6dc423e1f39cb0b11cbccf45598230 | |
parent | 511c275c2e5916cd27e135d442092f320506e9e4 (diff) | |
download | XNNPACK-663cd1e319ec07a7426289e08f5816c59da82ce2.tar.gz |
Update Android.bp for XNNPACK following latest update (06acbb)android-t-preview-2android-t-preview-1android-t-beta-3android-s-v2-beta-3android-s-qpr3-beta-1android-t-preview-1android-s-v2-beta-3android-s-qpr3-beta-1
Test: mm
Change-Id: I939a0aebe661a7264ffe34f068046d6b20f5aa44
-rw-r--r-- | Android.bp | 7410 |
1 files changed, 6565 insertions, 845 deletions
diff --git a/Android.bp b/Android.bp index 16b757e16..7c90c1bd7 100644 --- a/Android.bp +++ b/Android.bp @@ -43,18 +43,18 @@ OPERATOR_SRCS = [ "src/operators/fully-connected-nc.c", "src/operators/global-average-pooling-ncw.c", "src/operators/global-average-pooling-nwc.c", - "src/operators/leaky-relu-nc.c", + "src/operators/lut-elementwise-nc.c", "src/operators/max-pooling-nhwc.c", "src/operators/prelu-nc.c", "src/operators/resize-bilinear-nchw.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/datatype-strings.c", "src/operator-strings.c", "src/subgraph-strings.c", ] @@ -67,6 +67,7 @@ SUBGRAPH_SRCS = [ "src/subgraph/bankers-rounding.c", "src/subgraph/ceiling.c", "src/subgraph/clamp.c", + "src/subgraph/convert.c", "src/subgraph/convolution-2d.c", "src/subgraph/deconvolution-2d.c", "src/subgraph/depth-to-space.c", @@ -106,18 +107,450 @@ TABLE_SRCS = [ "src/tables/exp2minus-k-over-2048.c", ] -SCALAR_UKERNELS = [ +PROD_SCALAR_PORTABLE_MICROKERNEL_SRCS = [ + "src/params-init.c", + "src/u8-lut32norm/scalar.c", + "src/x8-lut/gen/lut-scalar-x4.c", + "src/x32-depthtospace2d-chw2hwc/scalar.c", + "src/xx-copy/memcpy.c", +] + +PROD_SCALAR_AARCH32_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-scalar-x4.c", + "src/f32-argmaxpool/4x-scalar-c1.c", + "src/f32-argmaxpool/9p8x-scalar-c1.c", + "src/f32-argmaxpool/9x-scalar-c1.c", + "src/f32-avgpool/9p8x-minmax-scalar-c1.c", + "src/f32-avgpool/9x-minmax-scalar-c1.c", + "src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c", + "src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c", + "src/f32-conv-hwc2chw/3x3s2p1c3x4-scalar-1x1.c", + "src/f32-dwconv/gen/up1x3-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x3-scalar-acc2.c", + "src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x4-scalar-acc2.c", + "src/f32-dwconv/gen/up1x9-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x9-scalar-acc2.c", + "src/f32-dwconv/gen/up1x25-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x25-scalar-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-4x1.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-2x1-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-2x1-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-2x1-acc2.c", + "src/f32-f16-vcvt/gen/vcvt-scalar-fabsf-x2.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/1x4-minmax-scalar.c", + "src/f32-gemm/gen/1x4-relu-scalar.c", + "src/f32-gemm/gen/1x4-scalar.c", + "src/f32-gemm/gen/4x2-minmax-scalar.c", + "src/f32-gemm/gen/4x2-scalar.c", + "src/f32-gemm/gen/4x4-minmax-scalar.c", + "src/f32-gemm/gen/4x4-relu-scalar.c", + "src/f32-gemm/gen/4x4-scalar.c", + "src/f32-ibilinear-chw/gen/scalar-p4.c", + "src/f32-ibilinear/gen/scalar-c2.c", + "src/f32-igemm/gen/1x4-minmax-scalar.c", + "src/f32-igemm/gen/1x4-relu-scalar.c", + "src/f32-igemm/gen/1x4-scalar.c", + "src/f32-igemm/gen/4x2-minmax-scalar.c", + "src/f32-igemm/gen/4x2-scalar.c", + "src/f32-igemm/gen/4x4-minmax-scalar.c", + "src/f32-igemm/gen/4x4-relu-scalar.c", + "src/f32-igemm/gen/4x4-scalar.c", + "src/f32-maxpool/9p8x-minmax-scalar-c1.c", + "src/f32-pavgpool/9p8x-minmax-scalar-c1.c", + "src/f32-pavgpool/9x-minmax-scalar-c1.c", + "src/f32-prelu/gen/scalar-2x4.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-imagic-x4.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-imagic-x4.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x4-acc2.c", + "src/f32-rmax/scalar.c", + "src/f32-spmm/gen/8x1-minmax-scalar.c", + "src/f32-spmm/gen/8x2-minmax-scalar.c", + "src/f32-spmm/gen/8x4-minmax-scalar.c", + "src/f32-vbinary/gen/vadd-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vaddc-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vdiv-minmax-scalar-x2.c", + "src/f32-vbinary/gen/vdivc-minmax-scalar-x2.c", + "src/f32-vbinary/gen/vmax-scalar-x8.c", + "src/f32-vbinary/gen/vmaxc-scalar-x8.c", + "src/f32-vbinary/gen/vmin-scalar-x8.c", + "src/f32-vbinary/gen/vminc-scalar-x8.c", + "src/f32-vbinary/gen/vmul-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vmulc-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vrdivc-minmax-scalar-x2.c", + "src/f32-vbinary/gen/vrsubc-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vsqrdiff-scalar-x8.c", + "src/f32-vbinary/gen/vsqrdiffc-scalar-x8.c", + "src/f32-vbinary/gen/vsub-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vsubc-minmax-scalar-x8.c", + "src/f32-vclamp/gen/vclamp-scalar-x4.c", + "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x4.c", + "src/f32-vhswish/gen/vhswish-scalar-x4.c", + "src/f32-vlrelu/gen/vlrelu-scalar-x4.c", + "src/f32-vmulcaddc/gen/c1-minmax-scalar-2x.c", + "src/f32-vrelu/gen/vrelu-scalar-x8.c", + "src/f32-vrnd/gen/vrndd-scalar-libm-x1.c", + "src/f32-vrnd/gen/vrndne-scalar-libm-x1.c", + "src/f32-vrnd/gen/vrndu-scalar-libm-x1.c", + "src/f32-vrnd/gen/vrndz-scalar-libm-x1.c", + "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut64-p2-div-x2.c", + "src/f32-vsqrt/gen/scalar-sqrt-x1.c", + "src/f32-vunary/gen/vabs-scalar-x4.c", + "src/f32-vunary/gen/vneg-scalar-x4.c", + "src/f32-vunary/gen/vsqr-scalar-x4.c", + "src/qc8-dwconv/gen/up2x9-minmax-fp32-scalar-fmagic.c", + "src/qc8-dwconv/gen/up2x25-minmax-fp32-scalar-fmagic.c", + "src/qc8-gemm/gen/1x2-minmax-fp32-scalar-fmagic.c", + "src/qc8-gemm/gen/2x2-minmax-fp32-scalar-fmagic.c", + "src/qc8-igemm/gen/1x2-minmax-fp32-scalar-fmagic.c", + "src/qc8-igemm/gen/2x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-dwconv/gen/up1x9-minmax-fp32-scalar-fmagic.c", + "src/qs8-dwconv/gen/up1x25-minmax-fp32-scalar-fmagic.c", + "src/qs8-f32-vcvt/gen/vcvt-scalar-x4.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c1.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c1.c", + "src/qs8-gemm/gen/1x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-gemm/gen/2x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-igemm/gen/1x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-igemm/gen/2x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-vadd/gen/minmax-scalar-x1.c", + "src/qs8-vaddc/gen/minmax-scalar-x1.c", + "src/qs8-vmul/gen/minmax-fp32-scalar-x4.c", + "src/qs8-vmulc/gen/minmax-fp32-scalar-x4.c", + "src/qu8-avgpool/9p8x-minmax-scalar-c1.c", + "src/qu8-avgpool/9x-minmax-scalar-c1.c", + "src/qu8-dwconv/gen/up1x9-minmax-fp32-scalar-fmagic.c", + "src/qu8-dwconv/gen/up1x25-minmax-fp32-scalar-fmagic.c", + "src/qu8-f32-vcvt/gen/vcvt-scalar-x4.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c1.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c1.c", + "src/qu8-gemm/gen/1x2-minmax-fp32-scalar-fmagic.c", + "src/qu8-gemm/gen/2x2-minmax-fp32-scalar-fmagic.c", + "src/qu8-igemm/gen/1x2-minmax-fp32-scalar-fmagic.c", + "src/qu8-igemm/gen/2x2-minmax-fp32-scalar-fmagic.c", + "src/qu8-vadd/gen/minmax-scalar-x1.c", + "src/qu8-vaddc/gen/minmax-scalar-x1.c", + "src/qu8-vmul/gen/minmax-fp32-scalar-x4.c", + "src/qu8-vmulc/gen/minmax-fp32-scalar-x4.c", + "src/s8-ibilinear/gen/scalar-c1.c", + "src/s8-maxpool/9p8x-minmax-scalar-c1.c", + "src/s8-vclamp/scalar-x4.c", + "src/u8-ibilinear/gen/scalar-c1.c", + "src/u8-maxpool/9p8x-minmax-scalar-c1.c", + "src/u8-rmax/scalar.c", + "src/u8-vclamp/scalar-x4.c", + "src/x8-zip/x2-scalar.c", + "src/x8-zip/x3-scalar.c", + "src/x8-zip/x4-scalar.c", + "src/x8-zip/xm-scalar.c", + "src/x32-packx/x2-scalar.c", + "src/x32-packx/x3-scalar.c", + "src/x32-packx/x4-scalar.c", + "src/x32-unpool/scalar.c", + "src/x32-zip/x2-scalar.c", + "src/x32-zip/x3-scalar.c", + "src/x32-zip/x4-scalar.c", + "src/x32-zip/xm-scalar.c", + "src/xx-fill/scalar-x16.c", + "src/xx-pad/scalar.c", +] + +PROD_SCALAR_WASM_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-scalar-x1.c", + "src/f32-argmaxpool/4x-scalar-c1.c", + "src/f32-argmaxpool/9p8x-scalar-c1.c", + "src/f32-argmaxpool/9x-scalar-c1.c", + "src/f32-avgpool/9p8x-minmax-scalar-c1.c", + "src/f32-avgpool/9x-minmax-scalar-c1.c", + "src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c", + "src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c", + "src/f32-conv-hwc2chw/3x3s2p1c3x4-scalar-1x1.c", + "src/f32-dwconv/gen/up1x3-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x3-scalar-acc2.c", + "src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x4-scalar-acc2.c", + "src/f32-dwconv/gen/up1x9-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x9-scalar-acc2.c", + "src/f32-dwconv/gen/up1x25-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x25-scalar-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-2x1-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-1x1-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-1x1-acc5.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-1x1-acc5.c", + "src/f32-f16-vcvt/gen/vcvt-scalar-bitcast-x4.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/2x4-minmax-scalar.c", + "src/f32-gemm/gen/2x4-relu-scalar.c", + "src/f32-gemm/gen/2x4-scalar.c", + "src/f32-ibilinear-chw/gen/scalar-p4.c", + "src/f32-ibilinear/gen/scalar-c2.c", + "src/f32-igemm/gen/2x4-minmax-scalar.c", + "src/f32-igemm/gen/2x4-relu-scalar.c", + "src/f32-igemm/gen/2x4-scalar.c", + "src/f32-maxpool/9p8x-minmax-scalar-c1.c", + "src/f32-pavgpool/9p8x-minmax-scalar-c1.c", + "src/f32-pavgpool/9x-minmax-scalar-c1.c", + "src/f32-prelu/gen/scalar-2x4.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-imagic-x1.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-imagic-x1.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x4-acc2.c", + "src/f32-rmax/scalar.c", + "src/f32-spmm/gen/8x1-minmax-scalar.c", + "src/f32-spmm/gen/8x2-minmax-scalar.c", + "src/f32-spmm/gen/8x4-minmax-scalar.c", + "src/f32-vbinary/gen/vadd-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vaddc-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vdiv-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vdivc-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vmax-scalar-x8.c", + "src/f32-vbinary/gen/vmaxc-scalar-x8.c", + "src/f32-vbinary/gen/vmin-scalar-x8.c", + "src/f32-vbinary/gen/vminc-scalar-x8.c", + "src/f32-vbinary/gen/vmul-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vmulc-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vrdivc-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vrsubc-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vsqrdiff-scalar-x8.c", + "src/f32-vbinary/gen/vsqrdiffc-scalar-x8.c", + "src/f32-vbinary/gen/vsub-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vsubc-minmax-scalar-x8.c", + "src/f32-vclamp/gen/vclamp-scalar-x4.c", + "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x2.c", + "src/f32-vhswish/gen/vhswish-scalar-x4.c", + "src/f32-vlrelu/gen/vlrelu-scalar-x4.c", + "src/f32-vmulcaddc/gen/c1-minmax-scalar-2x.c", + "src/f32-vrelu/gen/vrelu-scalar-x8.c", + "src/f32-vrnd/gen/vrndd-scalar-libm-x4.c", + "src/f32-vrnd/gen/vrndne-scalar-libm-x4.c", + "src/f32-vrnd/gen/vrndu-scalar-libm-x4.c", + "src/f32-vrnd/gen/vrndz-scalar-libm-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut64-p2-div-x2.c", + "src/f32-vsqrt/gen/scalar-sqrt-x1.c", + "src/f32-vunary/gen/vabs-scalar-x4.c", + "src/f32-vunary/gen/vneg-scalar-x4.c", + "src/f32-vunary/gen/vsqr-scalar-x4.c", + "src/qc8-dwconv/gen/up1x25-minmax-fp32-scalar-imagic.c", + "src/qc8-dwconv/gen/up2x9-minmax-fp32-scalar-imagic.c", + "src/qc8-gemm/gen/1x2-minmax-fp32-scalar-imagic.c", + "src/qc8-gemm/gen/2x2-minmax-fp32-scalar-imagic.c", + "src/qc8-igemm/gen/1x2-minmax-fp32-scalar-imagic.c", + "src/qc8-igemm/gen/2x2-minmax-fp32-scalar-imagic.c", + "src/qs8-dwconv/gen/up1x25-minmax-fp32-scalar-imagic.c", + "src/qs8-dwconv/gen/up2x9-minmax-fp32-scalar-imagic.c", + "src/qs8-f32-vcvt/gen/vcvt-scalar-x1.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c4.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c4.c", + "src/qs8-gemm/gen/1x2-minmax-fp32-scalar-imagic.c", + "src/qs8-gemm/gen/2x2-minmax-fp32-scalar-imagic.c", + "src/qs8-igemm/gen/1x2-minmax-fp32-scalar-imagic.c", + "src/qs8-igemm/gen/2x2-minmax-fp32-scalar-imagic.c", + "src/qs8-vadd/gen/minmax-scalar-x4.c", + "src/qs8-vaddc/gen/minmax-scalar-x4.c", + "src/qs8-vmul/gen/minmax-fp32-scalar-x4.c", + "src/qs8-vmulc/gen/minmax-fp32-scalar-x4.c", + "src/qu8-avgpool/9p8x-minmax-scalar-c1.c", + "src/qu8-avgpool/9x-minmax-scalar-c1.c", + "src/qu8-dwconv/gen/up1x25-minmax-fp32-scalar-imagic.c", + "src/qu8-dwconv/gen/up2x9-minmax-fp32-scalar-imagic.c", + "src/qu8-f32-vcvt/gen/vcvt-scalar-x1.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c4.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c4.c", + "src/qu8-gemm/gen/1x2-minmax-fp32-scalar-imagic.c", + "src/qu8-gemm/gen/2x2-minmax-fp32-scalar-imagic.c", + "src/qu8-igemm/gen/1x2-minmax-fp32-scalar-imagic.c", + "src/qu8-igemm/gen/2x2-minmax-fp32-scalar-imagic.c", + "src/qu8-vadd/gen/minmax-scalar-x4.c", + "src/qu8-vaddc/gen/minmax-scalar-x4.c", + "src/qu8-vmul/gen/minmax-fp32-scalar-x4.c", + "src/qu8-vmulc/gen/minmax-fp32-scalar-x4.c", + "src/s8-ibilinear/gen/scalar-c1.c", + "src/s8-maxpool/9p8x-minmax-scalar-c1.c", + "src/s8-vclamp/scalar-x4.c", + "src/u8-ibilinear/gen/scalar-c1.c", + "src/u8-maxpool/9p8x-minmax-scalar-c1.c", + "src/u8-rmax/scalar.c", + "src/u8-vclamp/scalar-x4.c", + "src/x8-zip/x2-scalar.c", + "src/x8-zip/x3-scalar.c", + "src/x8-zip/x4-scalar.c", + "src/x8-zip/xm-scalar.c", + "src/x32-packx/x2-scalar.c", + "src/x32-packx/x3-scalar.c", + "src/x32-packx/x4-scalar.c", + "src/x32-unpool/scalar.c", + "src/x32-zip/x2-scalar.c", + "src/x32-zip/x3-scalar.c", + "src/x32-zip/x4-scalar.c", + "src/x32-zip/xm-scalar.c", + "src/xx-fill/scalar-x16.c", + "src/xx-pad/scalar.c", +] + +PROD_SCALAR_RISCV_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-scalar-x4.c", "src/f32-argmaxpool/4x-scalar-c1.c", "src/f32-argmaxpool/9p8x-scalar-c1.c", "src/f32-argmaxpool/9x-scalar-c1.c", "src/f32-avgpool/9p8x-minmax-scalar-c1.c", "src/f32-avgpool/9x-minmax-scalar-c1.c", - "src/f32-clamp/gen/scalar-x1.c", - "src/f32-clamp/gen/scalar-x2.c", - "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-hwc2chw/3x3s2p1c3x4-scalar-1x1.c", + "src/f32-dwconv/gen/up1x3-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x3-scalar-acc2.c", + "src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x4-scalar-acc2.c", + "src/f32-dwconv/gen/up1x9-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x9-scalar-acc2.c", + "src/f32-dwconv/gen/up1x25-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x25-scalar-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-2x1-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-1x1-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-1x1-acc5.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-1x1-acc5.c", + "src/f32-f16-vcvt/gen/vcvt-scalar-fabsf-x2.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/1x4-minmax-scalar.c", + "src/f32-gemm/gen/1x4-relu-scalar.c", + "src/f32-gemm/gen/1x4-scalar.c", + "src/f32-gemm/gen/4x2-minmax-scalar.c", + "src/f32-gemm/gen/4x2-scalar.c", + "src/f32-gemm/gen/4x4-minmax-scalar.c", + "src/f32-gemm/gen/4x4-relu-scalar.c", + "src/f32-gemm/gen/4x4-scalar.c", + "src/f32-ibilinear-chw/gen/scalar-p4.c", + "src/f32-ibilinear/gen/scalar-c2.c", + "src/f32-igemm/gen/1x4-minmax-scalar.c", + "src/f32-igemm/gen/1x4-relu-scalar.c", + "src/f32-igemm/gen/1x4-scalar.c", + "src/f32-igemm/gen/4x2-minmax-scalar.c", + "src/f32-igemm/gen/4x2-scalar.c", + "src/f32-igemm/gen/4x4-minmax-scalar.c", + "src/f32-igemm/gen/4x4-relu-scalar.c", + "src/f32-igemm/gen/4x4-scalar.c", + "src/f32-maxpool/9p8x-minmax-scalar-c1.c", + "src/f32-pavgpool/9p8x-minmax-scalar-c1.c", + "src/f32-pavgpool/9x-minmax-scalar-c1.c", + "src/f32-prelu/gen/scalar-2x4.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-lrintf-x4.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-lrintf-x4.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x4-acc2.c", + "src/f32-rmax/scalar.c", + "src/f32-spmm/gen/8x1-minmax-scalar.c", + "src/f32-spmm/gen/8x2-minmax-scalar.c", + "src/f32-spmm/gen/8x4-minmax-scalar.c", + "src/f32-vbinary/gen/vadd-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vaddc-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vdiv-minmax-scalar-x2.c", + "src/f32-vbinary/gen/vdivc-minmax-scalar-x2.c", + "src/f32-vbinary/gen/vmax-scalar-x8.c", + "src/f32-vbinary/gen/vmaxc-scalar-x8.c", + "src/f32-vbinary/gen/vmin-scalar-x8.c", + "src/f32-vbinary/gen/vminc-scalar-x8.c", + "src/f32-vbinary/gen/vmul-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vmulc-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vrdivc-minmax-scalar-x2.c", + "src/f32-vbinary/gen/vrsubc-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vsqrdiff-scalar-x8.c", + "src/f32-vbinary/gen/vsqrdiffc-scalar-x8.c", + "src/f32-vbinary/gen/vsub-minmax-scalar-x8.c", + "src/f32-vbinary/gen/vsubc-minmax-scalar-x8.c", + "src/f32-vclamp/gen/vclamp-scalar-x4.c", + "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x4.c", + "src/f32-vhswish/gen/vhswish-scalar-x4.c", + "src/f32-vlrelu/gen/vlrelu-scalar-x4.c", + "src/f32-vmulcaddc/gen/c1-minmax-scalar-2x.c", + "src/f32-vrelu/gen/vrelu-scalar-x8.c", + "src/f32-vrnd/gen/vrndd-scalar-libm-x1.c", + "src/f32-vrnd/gen/vrndne-scalar-libm-x1.c", + "src/f32-vrnd/gen/vrndu-scalar-libm-x1.c", + "src/f32-vrnd/gen/vrndz-scalar-libm-x1.c", + "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut64-p2-div-x2.c", + "src/f32-vsqrt/gen/scalar-sqrt-x1.c", + "src/f32-vunary/gen/vabs-scalar-x4.c", + "src/f32-vunary/gen/vneg-scalar-x4.c", + "src/f32-vunary/gen/vsqr-scalar-x4.c", + "src/qc8-dwconv/gen/up2x9-minmax-fp32-scalar-lrintf.c", + "src/qc8-dwconv/gen/up2x25-minmax-fp32-scalar-lrintf.c", + "src/qc8-gemm/gen/1x4-minmax-fp32-scalar-lrintf.c", + "src/qc8-gemm/gen/3x4-minmax-fp32-scalar-lrintf.c", + "src/qc8-igemm/gen/1x4-minmax-fp32-scalar-lrintf.c", + "src/qc8-igemm/gen/3x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-dwconv/gen/up2x9-minmax-fp32-scalar-lrintf.c", + "src/qs8-dwconv/gen/up2x25-minmax-fp32-scalar-lrintf.c", + "src/qs8-f32-vcvt/gen/vcvt-scalar-x4.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c1.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c1.c", + "src/qs8-gemm/gen/1x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-gemm/gen/3x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-igemm/gen/1x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-igemm/gen/3x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-vadd/gen/minmax-scalar-x4.c", + "src/qs8-vaddc/gen/minmax-scalar-x4.c", + "src/qs8-vmul/gen/minmax-fp32-scalar-x4.c", + "src/qs8-vmulc/gen/minmax-fp32-scalar-x4.c", + "src/qu8-avgpool/9p8x-minmax-scalar-c1.c", + "src/qu8-avgpool/9x-minmax-scalar-c1.c", + "src/qu8-dwconv/gen/up2x9-minmax-fp32-scalar-lrintf.c", + "src/qu8-dwconv/gen/up2x25-minmax-fp32-scalar-lrintf.c", + "src/qu8-f32-vcvt/gen/vcvt-scalar-x4.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c1.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c1.c", + "src/qu8-gemm/gen/1x4-minmax-fp32-scalar-lrintf.c", + "src/qu8-gemm/gen/3x4-minmax-fp32-scalar-lrintf.c", + "src/qu8-igemm/gen/1x4-minmax-fp32-scalar-lrintf.c", + "src/qu8-igemm/gen/3x4-minmax-fp32-scalar-lrintf.c", + "src/qu8-vadd/gen/minmax-scalar-x4.c", + "src/qu8-vaddc/gen/minmax-scalar-x4.c", + "src/qu8-vmul/gen/minmax-fp32-scalar-x4.c", + "src/qu8-vmulc/gen/minmax-fp32-scalar-x4.c", + "src/s8-ibilinear/gen/scalar-c1.c", + "src/s8-maxpool/9p8x-minmax-scalar-c1.c", + "src/s8-vclamp/scalar-x4.c", + "src/u8-ibilinear/gen/scalar-c1.c", + "src/u8-maxpool/9p8x-minmax-scalar-c1.c", + "src/u8-rmax/scalar.c", + "src/u8-vclamp/scalar-x4.c", + "src/x8-zip/x2-scalar.c", + "src/x8-zip/x3-scalar.c", + "src/x8-zip/x4-scalar.c", + "src/x8-zip/xm-scalar.c", + "src/x32-packx/x2-scalar.c", + "src/x32-packx/x3-scalar.c", + "src/x32-packx/x4-scalar.c", + "src/x32-unpool/scalar.c", + "src/x32-zip/x2-scalar.c", + "src/x32-zip/x3-scalar.c", + "src/x32-zip/x4-scalar.c", + "src/x32-zip/xm-scalar.c", + "src/xx-fill/scalar-x16.c", + "src/xx-pad/scalar.c", +] + +ALL_SCALAR_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-scalar-x1.c", + "src/f16-f32-vcvt/gen/vcvt-scalar-x2.c", + "src/f16-f32-vcvt/gen/vcvt-scalar-x3.c", + "src/f16-f32-vcvt/gen/vcvt-scalar-x4.c", + "src/f32-argmaxpool/4x-scalar-c1.c", + "src/f32-argmaxpool/9p8x-scalar-c1.c", + "src/f32-argmaxpool/9x-scalar-c1.c", + "src/f32-avgpool/9p8x-minmax-scalar-c1.c", + "src/f32-avgpool/9x-minmax-scalar-c1.c", + "src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c", + "src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c", + "src/f32-conv-hwc2chw/3x3s2p1c3x4-scalar-1x1.c", + "src/f32-dwconv/gen/up1x3-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up1x3-minmax-scalar.c", + "src/f32-dwconv/gen/up1x3-scalar-acc2.c", + "src/f32-dwconv/gen/up1x3-scalar.c", "src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c", "src/f32-dwconv/gen/up1x4-minmax-scalar.c", "src/f32-dwconv/gen/up1x4-scalar-acc2.c", @@ -130,6 +563,10 @@ SCALAR_UKERNELS = [ "src/f32-dwconv/gen/up1x25-minmax-scalar.c", "src/f32-dwconv/gen/up1x25-scalar-acc2.c", "src/f32-dwconv/gen/up1x25-scalar.c", + "src/f32-dwconv/gen/up2x3-minmax-scalar-acc2.c", + "src/f32-dwconv/gen/up2x3-minmax-scalar.c", + "src/f32-dwconv/gen/up2x3-scalar-acc2.c", + "src/f32-dwconv/gen/up2x3-scalar.c", "src/f32-dwconv/gen/up2x4-minmax-scalar-acc2.c", "src/f32-dwconv/gen/up2x4-minmax-scalar.c", "src/f32-dwconv/gen/up2x4-scalar-acc2.c", @@ -180,6 +617,14 @@ SCALAR_UKERNELS = [ "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-2x1.c", "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-3x1-acc2.c", "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-3x1.c", + "src/f32-f16-vcvt/gen/vcvt-scalar-bitcast-x1.c", + "src/f32-f16-vcvt/gen/vcvt-scalar-bitcast-x2.c", + "src/f32-f16-vcvt/gen/vcvt-scalar-bitcast-x3.c", + "src/f32-f16-vcvt/gen/vcvt-scalar-bitcast-x4.c", + "src/f32-f16-vcvt/gen/vcvt-scalar-fabsf-x1.c", + "src/f32-f16-vcvt/gen/vcvt-scalar-fabsf-x2.c", + "src/f32-f16-vcvt/gen/vcvt-scalar-fabsf-x3.c", + "src/f32-f16-vcvt/gen/vcvt-scalar-fabsf-x4.c", "src/f32-gavgpool-cw/scalar-x1.c", "src/f32-gavgpool/7p7x-minmax-scalar-c1.c", "src/f32-gavgpool/7x-minmax-scalar-c1.c", @@ -198,9 +643,6 @@ SCALAR_UKERNELS = [ "src/f32-gemm/gen/4x4-minmax-scalar.c", "src/f32-gemm/gen/4x4-relu-scalar.c", "src/f32-gemm/gen/4x4-scalar.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-chw/gen/scalar-p1.c", "src/f32-ibilinear-chw/gen/scalar-p2.c", "src/f32-ibilinear-chw/gen/scalar-p4.c", @@ -228,32 +670,43 @@ SCALAR_UKERNELS = [ "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", - "src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x2-acc2.c", - "src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x2.c", - "src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x4-acc2.c", - "src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x4-acc4.c", - "src/f32-raddstoreexpminusmax/gen/scalar-lut64-p2-x4.c", - "src/f32-raddstoreexpminusmax/gen/scalar-p5-x1.c", - "src/f32-raddstoreexpminusmax/gen/scalar-p5-x2-acc2.c", - "src/f32-raddstoreexpminusmax/gen/scalar-p5-x2.c", - "src/f32-raddstoreexpminusmax/gen/scalar-p5-x4-acc2.c", - "src/f32-raddstoreexpminusmax/gen/scalar-p5-x4-acc4.c", - "src/f32-raddstoreexpminusmax/gen/scalar-p5-x4.c", - "src/f32-relu/gen/scalar-x1.c", - "src/f32-relu/gen/scalar-x2.c", - "src/f32-relu/gen/scalar-x4.c", - "src/f32-relu/gen/scalar-x8.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-fmagic-x1.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-fmagic-x2.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-fmagic-x3.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-fmagic-x4.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-imagic-x1.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-imagic-x2.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-imagic-x3.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-imagic-x4.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-lrintf-x1.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-lrintf-x2.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-lrintf-x3.c", + "src/f32-qs8-vcvt/gen/vcvt-scalar-lrintf-x4.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-fmagic-x1.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-fmagic-x2.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-fmagic-x3.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-fmagic-x4.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-imagic-x1.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-imagic-x2.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-imagic-x3.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-imagic-x4.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-lrintf-x1.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-lrintf-x2.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-lrintf-x3.c", + "src/f32-qu8-vcvt/gen/vcvt-scalar-lrintf-x4.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-lut64-p2-x1.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-lut64-p2-x2-acc2.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-lut64-p2-x2.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-lut64-p2-x4-acc2.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-lut64-p2-x4-acc4.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-lut64-p2-x4.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x1.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x2-acc2.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x2.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x4-acc2.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x4-acc4.c", + "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x4.c", "src/f32-rmax/scalar.c", - "src/f32-sigmoid/gen/scalar-lut64-p2-div-x1.c", - "src/f32-sigmoid/gen/scalar-lut64-p2-div-x2.c", - "src/f32-sigmoid/gen/scalar-lut64-p2-div-x4.c", - "src/f32-sigmoid/gen/scalar-lut2048-p1-div-x1.c", - "src/f32-sigmoid/gen/scalar-lut2048-p1-div-x2.c", - "src/f32-sigmoid/gen/scalar-lut2048-p1-div-x4.c", - "src/f32-sigmoid/gen/scalar-p5-div-x1.c", - "src/f32-sigmoid/gen/scalar-p5-div-x2.c", - "src/f32-sigmoid/gen/scalar-p5-div-x4.c", "src/f32-spmm/gen/1x1-minmax-scalar-pipelined.c", "src/f32-spmm/gen/1x1-minmax-scalar.c", "src/f32-spmm/gen/2x1-minmax-scalar-pipelined.c", @@ -408,6 +861,9 @@ SCALAR_UKERNELS = [ "src/f32-vbinary/gen/vsubc-scalar-x2.c", "src/f32-vbinary/gen/vsubc-scalar-x4.c", "src/f32-vbinary/gen/vsubc-scalar-x8.c", + "src/f32-vclamp/gen/vclamp-scalar-x1.c", + "src/f32-vclamp/gen/vclamp-scalar-x2.c", + "src/f32-vclamp/gen/vclamp-scalar-x4.c", "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x1.c", "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x2.c", "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x3.c", @@ -420,12 +876,19 @@ SCALAR_UKERNELS = [ "src/f32-velu/gen/velu-scalar-rr2-p6-x4.c", "src/f32-velu/gen/velu-scalar-rr2-p6-x5.c", "src/f32-velu/gen/velu-scalar-rr2-p6-x6.c", + "src/f32-vhswish/gen/vhswish-scalar-x1.c", + "src/f32-vhswish/gen/vhswish-scalar-x2.c", + "src/f32-vhswish/gen/vhswish-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-vrelu/gen/vrelu-scalar-x1.c", + "src/f32-vrelu/gen/vrelu-scalar-x2.c", + "src/f32-vrelu/gen/vrelu-scalar-x4.c", + "src/f32-vrelu/gen/vrelu-scalar-x8.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", @@ -438,6 +901,15 @@ SCALAR_UKERNELS = [ "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-vsigmoid/gen/vsigmoid-scalar-rr2-lut64-p2-div-x1.c", + "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut64-p2-div-x2.c", + "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut64-p2-div-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut2048-p1-div-x1.c", + "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut2048-p1-div-x2.c", + "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut2048-p1-div-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-p5-div-x1.c", + "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-p5-div-x2.c", + "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-p5-div-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", @@ -450,6 +922,8 @@ SCALAR_UKERNELS = [ "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/cvt-f32-f16-scalar-bitcast.c", + "src/math/cvt-f32-f16-scalar-fabsf.c", "src/math/expm1minus-scalar-rr2-lut4-p4.c", "src/math/expm1minus-scalar-rr2-lut8-p3.c", "src/math/expm1minus-scalar-rr2-lut8-p4.c", @@ -475,60 +949,1778 @@ SCALAR_UKERNELS = [ "src/math/sigmoid-scalar-rr2-lut64-p2-div.c", "src/math/sigmoid-scalar-rr2-lut2048-p1-div.c", "src/math/sigmoid-scalar-rr2-p5-div.c", + "src/params-init.c", + "src/qc8-dwconv/gen/up1x9-minmax-fp32-scalar-fmagic.c", + "src/qc8-dwconv/gen/up1x9-minmax-fp32-scalar-imagic.c", + "src/qc8-dwconv/gen/up1x9-minmax-fp32-scalar-lrintf.c", + "src/qc8-dwconv/gen/up1x25-minmax-fp32-scalar-fmagic.c", + "src/qc8-dwconv/gen/up1x25-minmax-fp32-scalar-imagic.c", + "src/qc8-dwconv/gen/up1x25-minmax-fp32-scalar-lrintf.c", + "src/qc8-dwconv/gen/up2x9-minmax-fp32-scalar-fmagic.c", + "src/qc8-dwconv/gen/up2x9-minmax-fp32-scalar-imagic.c", + "src/qc8-dwconv/gen/up2x9-minmax-fp32-scalar-lrintf.c", + "src/qc8-dwconv/gen/up2x25-minmax-fp32-scalar-fmagic.c", + "src/qc8-dwconv/gen/up2x25-minmax-fp32-scalar-imagic.c", + "src/qc8-dwconv/gen/up2x25-minmax-fp32-scalar-lrintf.c", + "src/qc8-dwconv/gen/up4x9-minmax-fp32-scalar-fmagic.c", + "src/qc8-dwconv/gen/up4x9-minmax-fp32-scalar-imagic.c", + "src/qc8-dwconv/gen/up4x9-minmax-fp32-scalar-lrintf.c", + "src/qc8-dwconv/gen/up4x25-minmax-fp32-scalar-fmagic.c", + "src/qc8-dwconv/gen/up4x25-minmax-fp32-scalar-imagic.c", + "src/qc8-dwconv/gen/up4x25-minmax-fp32-scalar-lrintf.c", + "src/qc8-gemm/gen/1x2-minmax-fp32-scalar-fmagic.c", + "src/qc8-gemm/gen/1x2-minmax-fp32-scalar-imagic.c", + "src/qc8-gemm/gen/1x2-minmax-fp32-scalar-lrintf.c", + "src/qc8-gemm/gen/1x4-minmax-fp32-scalar-fmagic.c", + "src/qc8-gemm/gen/1x4-minmax-fp32-scalar-imagic.c", + "src/qc8-gemm/gen/1x4-minmax-fp32-scalar-lrintf.c", + "src/qc8-gemm/gen/2x2-minmax-fp32-scalar-fmagic.c", + "src/qc8-gemm/gen/2x2-minmax-fp32-scalar-imagic.c", + "src/qc8-gemm/gen/2x2-minmax-fp32-scalar-lrintf.c", + "src/qc8-gemm/gen/2x4-minmax-fp32-scalar-fmagic.c", + "src/qc8-gemm/gen/2x4-minmax-fp32-scalar-imagic.c", + "src/qc8-gemm/gen/2x4-minmax-fp32-scalar-lrintf.c", + "src/qc8-gemm/gen/3x2-minmax-fp32-scalar-fmagic.c", + "src/qc8-gemm/gen/3x2-minmax-fp32-scalar-imagic.c", + "src/qc8-gemm/gen/3x2-minmax-fp32-scalar-lrintf.c", + "src/qc8-gemm/gen/3x4-minmax-fp32-scalar-fmagic.c", + "src/qc8-gemm/gen/3x4-minmax-fp32-scalar-imagic.c", + "src/qc8-gemm/gen/3x4-minmax-fp32-scalar-lrintf.c", + "src/qc8-gemm/gen/4x2-minmax-fp32-scalar-fmagic.c", + "src/qc8-gemm/gen/4x2-minmax-fp32-scalar-imagic.c", + "src/qc8-gemm/gen/4x2-minmax-fp32-scalar-lrintf.c", + "src/qc8-gemm/gen/4x4-minmax-fp32-scalar-fmagic.c", + "src/qc8-gemm/gen/4x4-minmax-fp32-scalar-imagic.c", + "src/qc8-gemm/gen/4x4-minmax-fp32-scalar-lrintf.c", + "src/qc8-igemm/gen/1x2-minmax-fp32-scalar-fmagic.c", + "src/qc8-igemm/gen/1x2-minmax-fp32-scalar-imagic.c", + "src/qc8-igemm/gen/1x2-minmax-fp32-scalar-lrintf.c", + "src/qc8-igemm/gen/1x4-minmax-fp32-scalar-fmagic.c", + "src/qc8-igemm/gen/1x4-minmax-fp32-scalar-imagic.c", + "src/qc8-igemm/gen/1x4-minmax-fp32-scalar-lrintf.c", + "src/qc8-igemm/gen/2x2-minmax-fp32-scalar-fmagic.c", + "src/qc8-igemm/gen/2x2-minmax-fp32-scalar-imagic.c", + "src/qc8-igemm/gen/2x2-minmax-fp32-scalar-lrintf.c", + "src/qc8-igemm/gen/2x4-minmax-fp32-scalar-fmagic.c", + "src/qc8-igemm/gen/2x4-minmax-fp32-scalar-imagic.c", + "src/qc8-igemm/gen/2x4-minmax-fp32-scalar-lrintf.c", + "src/qc8-igemm/gen/3x2-minmax-fp32-scalar-fmagic.c", + "src/qc8-igemm/gen/3x2-minmax-fp32-scalar-imagic.c", + "src/qc8-igemm/gen/3x2-minmax-fp32-scalar-lrintf.c", + "src/qc8-igemm/gen/3x4-minmax-fp32-scalar-fmagic.c", + "src/qc8-igemm/gen/3x4-minmax-fp32-scalar-imagic.c", + "src/qc8-igemm/gen/3x4-minmax-fp32-scalar-lrintf.c", + "src/qc8-igemm/gen/4x2-minmax-fp32-scalar-fmagic.c", + "src/qc8-igemm/gen/4x2-minmax-fp32-scalar-imagic.c", + "src/qc8-igemm/gen/4x2-minmax-fp32-scalar-lrintf.c", + "src/qc8-igemm/gen/4x4-minmax-fp32-scalar-fmagic.c", + "src/qc8-igemm/gen/4x4-minmax-fp32-scalar-imagic.c", + "src/qc8-igemm/gen/4x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-dwconv/gen/up1x9-minmax-fp32-scalar-fmagic.c", + "src/qs8-dwconv/gen/up1x9-minmax-fp32-scalar-imagic.c", + "src/qs8-dwconv/gen/up1x9-minmax-fp32-scalar-lrintf.c", + "src/qs8-dwconv/gen/up1x25-minmax-fp32-scalar-fmagic.c", + "src/qs8-dwconv/gen/up1x25-minmax-fp32-scalar-imagic.c", + "src/qs8-dwconv/gen/up1x25-minmax-fp32-scalar-lrintf.c", + "src/qs8-dwconv/gen/up2x9-minmax-fp32-scalar-fmagic.c", + "src/qs8-dwconv/gen/up2x9-minmax-fp32-scalar-imagic.c", + "src/qs8-dwconv/gen/up2x9-minmax-fp32-scalar-lrintf.c", + "src/qs8-dwconv/gen/up2x25-minmax-fp32-scalar-fmagic.c", + "src/qs8-dwconv/gen/up2x25-minmax-fp32-scalar-imagic.c", + "src/qs8-dwconv/gen/up2x25-minmax-fp32-scalar-lrintf.c", + "src/qs8-dwconv/gen/up4x9-minmax-fp32-scalar-fmagic.c", + "src/qs8-dwconv/gen/up4x9-minmax-fp32-scalar-imagic.c", + "src/qs8-dwconv/gen/up4x9-minmax-fp32-scalar-lrintf.c", + "src/qs8-dwconv/gen/up4x25-minmax-fp32-scalar-fmagic.c", + "src/qs8-dwconv/gen/up4x25-minmax-fp32-scalar-imagic.c", + "src/qs8-dwconv/gen/up4x25-minmax-fp32-scalar-lrintf.c", + "src/qs8-f32-vcvt/gen/vcvt-scalar-x1.c", + "src/qs8-f32-vcvt/gen/vcvt-scalar-x2.c", + "src/qs8-f32-vcvt/gen/vcvt-scalar-x3.c", + "src/qs8-f32-vcvt/gen/vcvt-scalar-x4.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-fmagic-c1.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-fmagic-c2.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-fmagic-c4.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c1.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c2.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c4.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-lrintf-c1.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-lrintf-c2.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-lrintf-c4.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-fmagic-c1.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-fmagic-c2.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-fmagic-c4.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c1.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c2.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c4.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-lrintf-c1.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-lrintf-c2.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-lrintf-c4.c", + "src/qs8-gemm/gen/1x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-gemm/gen/1x2-minmax-fp32-scalar-imagic.c", + "src/qs8-gemm/gen/1x2-minmax-fp32-scalar-lrintf.c", + "src/qs8-gemm/gen/1x4-minmax-fp32-scalar-fmagic.c", + "src/qs8-gemm/gen/1x4-minmax-fp32-scalar-imagic.c", + "src/qs8-gemm/gen/1x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-gemm/gen/2x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-gemm/gen/2x2-minmax-fp32-scalar-imagic.c", + "src/qs8-gemm/gen/2x2-minmax-fp32-scalar-lrintf.c", + "src/qs8-gemm/gen/2x4-minmax-fp32-scalar-fmagic.c", + "src/qs8-gemm/gen/2x4-minmax-fp32-scalar-imagic.c", + "src/qs8-gemm/gen/2x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-gemm/gen/3x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-gemm/gen/3x2-minmax-fp32-scalar-imagic.c", + "src/qs8-gemm/gen/3x2-minmax-fp32-scalar-lrintf.c", + "src/qs8-gemm/gen/3x4-minmax-fp32-scalar-fmagic.c", + "src/qs8-gemm/gen/3x4-minmax-fp32-scalar-imagic.c", + "src/qs8-gemm/gen/3x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-gemm/gen/4x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-gemm/gen/4x2-minmax-fp32-scalar-imagic.c", + "src/qs8-gemm/gen/4x2-minmax-fp32-scalar-lrintf.c", + "src/qs8-gemm/gen/4x4-minmax-fp32-scalar-fmagic.c", + "src/qs8-gemm/gen/4x4-minmax-fp32-scalar-imagic.c", + "src/qs8-gemm/gen/4x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-igemm/gen/1x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-igemm/gen/1x2-minmax-fp32-scalar-imagic.c", + "src/qs8-igemm/gen/1x2-minmax-fp32-scalar-lrintf.c", + "src/qs8-igemm/gen/1x4-minmax-fp32-scalar-fmagic.c", + "src/qs8-igemm/gen/1x4-minmax-fp32-scalar-imagic.c", + "src/qs8-igemm/gen/1x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-igemm/gen/2x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-igemm/gen/2x2-minmax-fp32-scalar-imagic.c", + "src/qs8-igemm/gen/2x2-minmax-fp32-scalar-lrintf.c", + "src/qs8-igemm/gen/2x4-minmax-fp32-scalar-fmagic.c", + "src/qs8-igemm/gen/2x4-minmax-fp32-scalar-imagic.c", + "src/qs8-igemm/gen/2x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-igemm/gen/3x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-igemm/gen/3x2-minmax-fp32-scalar-imagic.c", + "src/qs8-igemm/gen/3x2-minmax-fp32-scalar-lrintf.c", + "src/qs8-igemm/gen/3x4-minmax-fp32-scalar-fmagic.c", + "src/qs8-igemm/gen/3x4-minmax-fp32-scalar-imagic.c", + "src/qs8-igemm/gen/3x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-igemm/gen/4x2-minmax-fp32-scalar-fmagic.c", + "src/qs8-igemm/gen/4x2-minmax-fp32-scalar-imagic.c", + "src/qs8-igemm/gen/4x2-minmax-fp32-scalar-lrintf.c", + "src/qs8-igemm/gen/4x4-minmax-fp32-scalar-fmagic.c", + "src/qs8-igemm/gen/4x4-minmax-fp32-scalar-imagic.c", + "src/qs8-igemm/gen/4x4-minmax-fp32-scalar-lrintf.c", + "src/qs8-requantization/fp32-scalar-fmagic.c", "src/qs8-requantization/fp32-scalar-lrintf.c", - "src/qs8-requantization/fp32-scalar-magic.c", - "src/qs8-requantization/precise-scalar-signed64.c", - "src/qs8-requantization/precise-scalar-unsigned32.c", - "src/qs8-requantization/precise-scalar-unsigned64.c", - "src/qs8-requantization/q31-scalar.c", + "src/qs8-requantization/gemmlowp-scalar.c", + "src/qs8-requantization/rndna-scalar-signed64.c", + "src/qs8-requantization/rndna-scalar-unsigned32.c", + "src/qs8-requantization/rndna-scalar-unsigned64.c", + "src/qs8-requantization/rndnu-scalar.c", + "src/qs8-vadd/gen/minmax-scalar-x1.c", + "src/qs8-vadd/gen/minmax-scalar-x2.c", + "src/qs8-vadd/gen/minmax-scalar-x4.c", + "src/qs8-vaddc/gen/minmax-scalar-x1.c", + "src/qs8-vaddc/gen/minmax-scalar-x2.c", + "src/qs8-vaddc/gen/minmax-scalar-x4.c", + "src/qs8-vmul/gen/minmax-fp32-scalar-x1.c", + "src/qs8-vmul/gen/minmax-fp32-scalar-x2.c", + "src/qs8-vmul/gen/minmax-fp32-scalar-x4.c", + "src/qs8-vmulc/gen/minmax-fp32-scalar-x1.c", + "src/qs8-vmulc/gen/minmax-fp32-scalar-x2.c", + "src/qs8-vmulc/gen/minmax-fp32-scalar-x4.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-dwconv/gen/up1x9-minmax-fp32-scalar-fmagic.c", + "src/qu8-dwconv/gen/up1x9-minmax-fp32-scalar-imagic.c", + "src/qu8-dwconv/gen/up1x9-minmax-fp32-scalar-lrintf.c", + "src/qu8-dwconv/gen/up1x25-minmax-fp32-scalar-fmagic.c", + "src/qu8-dwconv/gen/up1x25-minmax-fp32-scalar-imagic.c", + "src/qu8-dwconv/gen/up1x25-minmax-fp32-scalar-lrintf.c", + "src/qu8-dwconv/gen/up2x9-minmax-fp32-scalar-fmagic.c", + "src/qu8-dwconv/gen/up2x9-minmax-fp32-scalar-imagic.c", + "src/qu8-dwconv/gen/up2x9-minmax-fp32-scalar-lrintf.c", + "src/qu8-dwconv/gen/up2x25-minmax-fp32-scalar-fmagic.c", + "src/qu8-dwconv/gen/up2x25-minmax-fp32-scalar-imagic.c", + "src/qu8-dwconv/gen/up2x25-minmax-fp32-scalar-lrintf.c", + "src/qu8-dwconv/gen/up4x9-minmax-fp32-scalar-fmagic.c", + "src/qu8-dwconv/gen/up4x9-minmax-fp32-scalar-imagic.c", + "src/qu8-dwconv/gen/up4x9-minmax-fp32-scalar-lrintf.c", + "src/qu8-dwconv/gen/up4x25-minmax-fp32-scalar-fmagic.c", + "src/qu8-dwconv/gen/up4x25-minmax-fp32-scalar-imagic.c", + "src/qu8-dwconv/gen/up4x25-minmax-fp32-scalar-lrintf.c", + "src/qu8-f32-vcvt/gen/vcvt-scalar-x1.c", + "src/qu8-f32-vcvt/gen/vcvt-scalar-x2.c", + "src/qu8-f32-vcvt/gen/vcvt-scalar-x3.c", + "src/qu8-f32-vcvt/gen/vcvt-scalar-x4.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-fmagic-c1.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-fmagic-c2.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-fmagic-c4.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c1.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c2.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c4.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-lrintf-c1.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-lrintf-c2.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-lrintf-c4.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-fmagic-c1.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-fmagic-c2.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-fmagic-c4.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c1.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c2.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c4.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-lrintf-c1.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-lrintf-c2.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-lrintf-c4.c", + "src/qu8-gemm/gen/1x2-minmax-fp32-scalar-fmagic.c", + "src/qu8-gemm/gen/1x2-minmax-fp32-scalar-imagic.c", + "src/qu8-gemm/gen/1x2-minmax-fp32-scalar-lrintf.c", + "src/qu8-gemm/gen/1x4-minmax-fp32-scalar-fmagic.c", + "src/qu8-gemm/gen/1x4-minmax-fp32-scalar-imagic.c", + "src/qu8-gemm/gen/1x4-minmax-fp32-scalar-lrintf.c", + "src/qu8-gemm/gen/2x2-minmax-fp32-scalar-fmagic.c", + "src/qu8-gemm/gen/2x2-minmax-fp32-scalar-imagic.c", + "src/qu8-gemm/gen/2x2-minmax-fp32-scalar-lrintf.c", + "src/qu8-gemm/gen/2x4-minmax-fp32-scalar-fmagic.c", + "src/qu8-gemm/gen/2x4-minmax-fp32-scalar-imagic.c", + "src/qu8-gemm/gen/2x4-minmax-fp32-scalar-lrintf.c", + "src/qu8-gemm/gen/3x2-minmax-fp32-scalar-fmagic.c", + "src/qu8-gemm/gen/3x2-minmax-fp32-scalar-imagic.c", + "src/qu8-gemm/gen/3x2-minmax-fp32-scalar-lrintf.c", + "src/qu8-gemm/gen/3x4-minmax-fp32-scalar-fmagic.c", + "src/qu8-gemm/gen/3x4-minmax-fp32-scalar-imagic.c", + "src/qu8-gemm/gen/3x4-minmax-fp32-scalar-lrintf.c", + "src/qu8-gemm/gen/4x2-minmax-fp32-scalar-fmagic.c", + "src/qu8-gemm/gen/4x2-minmax-fp32-scalar-imagic.c", + "src/qu8-gemm/gen/4x2-minmax-fp32-scalar-lrintf.c", + "src/qu8-gemm/gen/4x4-minmax-fp32-scalar-fmagic.c", + "src/qu8-gemm/gen/4x4-minmax-fp32-scalar-imagic.c", + "src/qu8-gemm/gen/4x4-minmax-fp32-scalar-lrintf.c", + "src/qu8-igemm/gen/1x2-minmax-fp32-scalar-fmagic.c", + "src/qu8-igemm/gen/1x2-minmax-fp32-scalar-imagic.c", + "src/qu8-igemm/gen/1x2-minmax-fp32-scalar-lrintf.c", + "src/qu8-igemm/gen/1x4-minmax-fp32-scalar-fmagic.c", + "src/qu8-igemm/gen/1x4-minmax-fp32-scalar-imagic.c", + "src/qu8-igemm/gen/1x4-minmax-fp32-scalar-lrintf.c", + "src/qu8-igemm/gen/2x2-minmax-fp32-scalar-fmagic.c", + "src/qu8-igemm/gen/2x2-minmax-fp32-scalar-imagic.c", + "src/qu8-igemm/gen/2x2-minmax-fp32-scalar-lrintf.c", + "src/qu8-igemm/gen/2x4-minmax-fp32-scalar-fmagic.c", + "src/qu8-igemm/gen/2x4-minmax-fp32-scalar-imagic.c", + "src/qu8-igemm/gen/2x4-minmax-fp32-scalar-lrintf.c", + "src/qu8-igemm/gen/3x2-minmax-fp32-scalar-fmagic.c", + "src/qu8-igemm/gen/3x2-minmax-fp32-scalar-imagic.c", + "src/qu8-igemm/gen/3x2-minmax-fp32-scalar-lrintf.c", + "src/qu8-igemm/gen/3x4-minmax-fp32-scalar-fmagic.c", + "src/qu8-igemm/gen/3x4-minmax-fp32-scalar-imagic.c", + "src/qu8-igemm/gen/3x4-minmax-fp32-scalar-lrintf.c", + "src/qu8-igemm/gen/4x2-minmax-fp32-scalar-fmagic.c", + "src/qu8-igemm/gen/4x2-minmax-fp32-scalar-imagic.c", + "src/qu8-igemm/gen/4x2-minmax-fp32-scalar-lrintf.c", + "src/qu8-igemm/gen/4x4-minmax-fp32-scalar-fmagic.c", + "src/qu8-igemm/gen/4x4-minmax-fp32-scalar-imagic.c", + "src/qu8-igemm/gen/4x4-minmax-fp32-scalar-lrintf.c", + "src/qu8-requantization/fp32-scalar-fmagic.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/qu8-requantization/gemmlowp-scalar.c", + "src/qu8-requantization/rndna-scalar-signed64.c", + "src/qu8-requantization/rndna-scalar-unsigned32.c", + "src/qu8-requantization/rndna-scalar-unsigned64.c", + "src/qu8-vadd/gen/minmax-scalar-x1.c", + "src/qu8-vadd/gen/minmax-scalar-x2.c", + "src/qu8-vadd/gen/minmax-scalar-x4.c", + "src/qu8-vaddc/gen/minmax-scalar-x1.c", + "src/qu8-vaddc/gen/minmax-scalar-x2.c", + "src/qu8-vaddc/gen/minmax-scalar-x4.c", + "src/qu8-vmul/gen/minmax-fp32-scalar-x1.c", + "src/qu8-vmul/gen/minmax-fp32-scalar-x2.c", + "src/qu8-vmul/gen/minmax-fp32-scalar-x4.c", + "src/qu8-vmulc/gen/minmax-fp32-scalar-x1.c", + "src/qu8-vmulc/gen/minmax-fp32-scalar-x2.c", + "src/qu8-vmulc/gen/minmax-fp32-scalar-x4.c", + "src/s8-ibilinear/gen/scalar-c1.c", + "src/s8-ibilinear/gen/scalar-c2.c", + "src/s8-ibilinear/gen/scalar-c4.c", + "src/s8-maxpool/9p8x-minmax-scalar-c1.c", + "src/s8-vclamp/scalar-x4.c", + "src/u8-ibilinear/gen/scalar-c1.c", + "src/u8-ibilinear/gen/scalar-c2.c", + "src/u8-ibilinear/gen/scalar-c4.c", "src/u8-lut32norm/scalar.c", "src/u8-maxpool/9p8x-minmax-scalar-c1.c", "src/u8-rmax/scalar.c", - "src/x8-lut/scalar.c", + "src/u8-vclamp/scalar-x4.c", + "src/x8-lut/gen/lut-scalar-x1.c", + "src/x8-lut/gen/lut-scalar-x2.c", + "src/x8-lut/gen/lut-scalar-x4.c", + "src/x8-lut/gen/lut-scalar-x8.c", + "src/x8-lut/gen/lut-scalar-x16.c", + "src/x8-transpose/gen/1x2-scalar-int.c", + "src/x8-transpose/gen/1x4-scalar-int.c", + "src/x8-transpose/gen/2x1-scalar-int.c", + "src/x8-transpose/gen/2x2-scalar-int.c", + "src/x8-transpose/gen/2x4-scalar-int.c", + "src/x8-transpose/gen/4x1-scalar-int.c", + "src/x8-transpose/gen/4x2-scalar-int.c", + "src/x8-transpose/gen/4x4-scalar-int.c", "src/x8-zip/x2-scalar.c", "src/x8-zip/x3-scalar.c", "src/x8-zip/x4-scalar.c", "src/x8-zip/xm-scalar.c", + "src/x16-transpose/gen/1x2-scalar-int.c", + "src/x16-transpose/gen/1x4-scalar-int.c", + "src/x16-transpose/gen/2x1-scalar-int.c", + "src/x16-transpose/gen/2x2-scalar-int.c", + "src/x16-transpose/gen/2x4-scalar-int.c", + "src/x16-transpose/gen/4x1-scalar-int.c", + "src/x16-transpose/gen/4x2-scalar-int.c", + "src/x16-transpose/gen/4x4-scalar-int.c", "src/x32-depthtospace2d-chw2hwc/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/scalar-float.c", - "src/x32-pad/scalar-int.c", + "src/x32-transpose/gen/1x2-scalar-float.c", + "src/x32-transpose/gen/1x2-scalar-int.c", + "src/x32-transpose/gen/1x4-scalar-float.c", + "src/x32-transpose/gen/1x4-scalar-int.c", + "src/x32-transpose/gen/2x1-scalar-float.c", + "src/x32-transpose/gen/2x1-scalar-int.c", + "src/x32-transpose/gen/2x2-scalar-float.c", + "src/x32-transpose/gen/2x2-scalar-int.c", + "src/x32-transpose/gen/2x4-scalar-float.c", + "src/x32-transpose/gen/2x4-scalar-int.c", + "src/x32-transpose/gen/4x1-scalar-float.c", + "src/x32-transpose/gen/4x1-scalar-int.c", + "src/x32-transpose/gen/4x2-scalar-float.c", + "src/x32-transpose/gen/4x2-scalar-int.c", + "src/x32-transpose/gen/4x4-scalar-float.c", + "src/x32-transpose/gen/4x4-scalar-int.c", "src/x32-unpool/scalar.c", "src/x32-zip/x2-scalar.c", "src/x32-zip/x3-scalar.c", "src/x32-zip/x4-scalar.c", "src/x32-zip/xm-scalar.c", + "src/x64-transpose/gen/1x2-scalar-float.c", + "src/x64-transpose/gen/1x2-scalar-int.c", + "src/x64-transpose/gen/2x1-scalar-float.c", + "src/x64-transpose/gen/2x1-scalar-int.c", + "src/x64-transpose/gen/2x2-scalar-float.c", + "src/x64-transpose/gen/2x2-scalar-int.c", + "src/x64-transpose/gen/4x1-scalar-float.c", + "src/x64-transpose/gen/4x1-scalar-int.c", + "src/x64-transpose/gen/4x2-scalar-float.c", + "src/x64-transpose/gen/4x2-scalar-int.c", "src/xx-copy/memcpy.c", + "src/xx-fill/scalar-x16.c", + "src/xx-pad/scalar.c", +] + +ALL_WASM_MICROKERNEL_SRCS = [ + "src/f32-avgpool/9p8x-minmax-wasm-c1.c", + "src/f32-avgpool/9x-minmax-wasm-c1.c", + "src/f32-dwconv/gen/up1x3-minmax-wasm-acc2.c", + "src/f32-dwconv/gen/up1x3-minmax-wasm.c", + "src/f32-dwconv/gen/up1x3-wasm-acc2.c", + "src/f32-dwconv/gen/up1x3-wasm.c", + "src/f32-dwconv/gen/up1x4-minmax-wasm-acc2.c", + "src/f32-dwconv/gen/up1x4-minmax-wasm.c", + "src/f32-dwconv/gen/up1x4-wasm-acc2.c", + "src/f32-dwconv/gen/up1x4-wasm.c", + "src/f32-dwconv/gen/up1x9-minmax-wasm-acc2.c", + "src/f32-dwconv/gen/up1x9-minmax-wasm.c", + "src/f32-dwconv/gen/up1x9-wasm-acc2.c", + "src/f32-dwconv/gen/up1x9-wasm.c", + "src/f32-dwconv/gen/up1x25-minmax-wasm-acc2.c", + "src/f32-dwconv/gen/up1x25-minmax-wasm.c", + "src/f32-dwconv/gen/up1x25-wasm-acc2.c", + "src/f32-dwconv/gen/up1x25-wasm.c", + "src/f32-dwconv/gen/up2x3-minmax-wasm-acc2.c", + "src/f32-dwconv/gen/up2x3-minmax-wasm.c", + "src/f32-dwconv/gen/up2x3-wasm-acc2.c", + "src/f32-dwconv/gen/up2x3-wasm.c", + "src/f32-dwconv/gen/up2x4-minmax-wasm-acc2.c", + "src/f32-dwconv/gen/up2x4-minmax-wasm.c", + "src/f32-dwconv/gen/up2x4-wasm-acc2.c", + "src/f32-dwconv/gen/up2x4-wasm.c", + "src/f32-dwconv/gen/up2x9-minmax-wasm-acc2.c", + "src/f32-dwconv/gen/up2x9-minmax-wasm.c", + "src/f32-dwconv/gen/up2x9-wasm-acc2.c", + "src/f32-dwconv/gen/up2x9-wasm.c", + "src/f32-dwconv/gen/up2x25-minmax-wasm-acc2.c", + "src/f32-dwconv/gen/up2x25-minmax-wasm.c", + "src/f32-dwconv/gen/up2x25-wasm-acc2.c", + "src/f32-dwconv/gen/up2x25-wasm.c", + "src/f32-gavgpool/7p7x-minmax-wasm-c1.c", + "src/f32-gavgpool/7x-minmax-wasm-c1.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/1x4-relu-wasm.c", + "src/f32-gemm/gen/1x4-wasm.c", + "src/f32-gemm/gen/2x4-minmax-wasm.c", + "src/f32-gemm/gen/2x4-relu-wasm.c", + "src/f32-gemm/gen/2x4-wasm.c", + "src/f32-gemm/gen/4x2-minmax-wasm.c", + "src/f32-gemm/gen/4x2-relu-wasm.c", + "src/f32-gemm/gen/4x2-wasm.c", + "src/f32-gemm/gen/4x4-minmax-wasm.c", + "src/f32-gemm/gen/4x4-relu-wasm.c", + "src/f32-gemm/gen/4x4-wasm.c", + "src/f32-igemm/gen/1x4-minmax-wasm.c", + "src/f32-igemm/gen/1x4-relu-wasm.c", + "src/f32-igemm/gen/1x4-wasm.c", + "src/f32-igemm/gen/2x4-minmax-wasm.c", + "src/f32-igemm/gen/2x4-relu-wasm.c", + "src/f32-igemm/gen/2x4-wasm.c", + "src/f32-igemm/gen/4x2-minmax-wasm.c", + "src/f32-igemm/gen/4x2-relu-wasm.c", + "src/f32-igemm/gen/4x2-wasm.c", + "src/f32-igemm/gen/4x4-minmax-wasm.c", + "src/f32-igemm/gen/4x4-relu-wasm.c", + "src/f32-igemm/gen/4x4-wasm.c", + "src/f32-maxpool/9p8x-minmax-wasm-c1.c", + "src/f32-pavgpool/9p8x-minmax-wasm-c1.c", + "src/f32-pavgpool/9x-minmax-wasm-c1.c", + "src/f32-prelu/gen/wasm-2x1.c", + "src/f32-prelu/gen/wasm-2x4.c", + "src/f32-qs8-vcvt/gen/vcvt-wasm-fmagic-x1.c", + "src/f32-qs8-vcvt/gen/vcvt-wasm-fmagic-x2.c", + "src/f32-qs8-vcvt/gen/vcvt-wasm-fmagic-x3.c", + "src/f32-qs8-vcvt/gen/vcvt-wasm-fmagic-x4.c", + "src/f32-qu8-vcvt/gen/vcvt-wasm-fmagic-x1.c", + "src/f32-qu8-vcvt/gen/vcvt-wasm-fmagic-x2.c", + "src/f32-qu8-vcvt/gen/vcvt-wasm-fmagic-x3.c", + "src/f32-qu8-vcvt/gen/vcvt-wasm-fmagic-x4.c", + "src/f32-vbinary/gen/vadd-minmax-wasm-x1.c", + "src/f32-vbinary/gen/vadd-minmax-wasm-x2.c", + "src/f32-vbinary/gen/vadd-minmax-wasm-x4.c", + "src/f32-vbinary/gen/vadd-minmax-wasm-x8.c", + "src/f32-vbinary/gen/vadd-relu-wasm-x1.c", + "src/f32-vbinary/gen/vadd-relu-wasm-x2.c", + "src/f32-vbinary/gen/vadd-relu-wasm-x4.c", + "src/f32-vbinary/gen/vadd-relu-wasm-x8.c", + "src/f32-vbinary/gen/vaddc-minmax-wasm-x1.c", + "src/f32-vbinary/gen/vaddc-minmax-wasm-x2.c", + "src/f32-vbinary/gen/vaddc-minmax-wasm-x4.c", + "src/f32-vbinary/gen/vaddc-minmax-wasm-x8.c", + "src/f32-vbinary/gen/vaddc-relu-wasm-x1.c", + "src/f32-vbinary/gen/vaddc-relu-wasm-x2.c", + "src/f32-vbinary/gen/vaddc-relu-wasm-x4.c", + "src/f32-vbinary/gen/vaddc-relu-wasm-x8.c", + "src/f32-vbinary/gen/vdiv-minmax-wasm-x1.c", + "src/f32-vbinary/gen/vdiv-minmax-wasm-x2.c", + "src/f32-vbinary/gen/vdiv-minmax-wasm-x4.c", + "src/f32-vbinary/gen/vdiv-minmax-wasm-x8.c", + "src/f32-vbinary/gen/vdiv-relu-wasm-x1.c", + "src/f32-vbinary/gen/vdiv-relu-wasm-x2.c", + "src/f32-vbinary/gen/vdiv-relu-wasm-x4.c", + "src/f32-vbinary/gen/vdiv-relu-wasm-x8.c", + "src/f32-vbinary/gen/vdivc-minmax-wasm-x1.c", + "src/f32-vbinary/gen/vdivc-minmax-wasm-x2.c", + "src/f32-vbinary/gen/vdivc-minmax-wasm-x4.c", + "src/f32-vbinary/gen/vdivc-minmax-wasm-x8.c", + "src/f32-vbinary/gen/vdivc-relu-wasm-x1.c", + "src/f32-vbinary/gen/vdivc-relu-wasm-x2.c", + "src/f32-vbinary/gen/vdivc-relu-wasm-x4.c", + "src/f32-vbinary/gen/vdivc-relu-wasm-x8.c", + "src/f32-vbinary/gen/vmax-wasm-x1.c", + "src/f32-vbinary/gen/vmax-wasm-x2.c", + "src/f32-vbinary/gen/vmax-wasm-x4.c", + "src/f32-vbinary/gen/vmax-wasm-x8.c", + "src/f32-vbinary/gen/vmaxc-wasm-x1.c", + "src/f32-vbinary/gen/vmaxc-wasm-x2.c", + "src/f32-vbinary/gen/vmaxc-wasm-x4.c", + "src/f32-vbinary/gen/vmaxc-wasm-x8.c", + "src/f32-vbinary/gen/vmin-wasm-x1.c", + "src/f32-vbinary/gen/vmin-wasm-x2.c", + "src/f32-vbinary/gen/vmin-wasm-x4.c", + "src/f32-vbinary/gen/vmin-wasm-x8.c", + "src/f32-vbinary/gen/vminc-wasm-x1.c", + "src/f32-vbinary/gen/vminc-wasm-x2.c", + "src/f32-vbinary/gen/vminc-wasm-x4.c", + "src/f32-vbinary/gen/vminc-wasm-x8.c", + "src/f32-vbinary/gen/vmul-minmax-wasm-x1.c", + "src/f32-vbinary/gen/vmul-minmax-wasm-x2.c", + "src/f32-vbinary/gen/vmul-minmax-wasm-x4.c", + "src/f32-vbinary/gen/vmul-minmax-wasm-x8.c", + "src/f32-vbinary/gen/vmul-relu-wasm-x1.c", + "src/f32-vbinary/gen/vmul-relu-wasm-x2.c", + "src/f32-vbinary/gen/vmul-relu-wasm-x4.c", + "src/f32-vbinary/gen/vmul-relu-wasm-x8.c", + "src/f32-vbinary/gen/vmulc-minmax-wasm-x1.c", + "src/f32-vbinary/gen/vmulc-minmax-wasm-x2.c", + "src/f32-vbinary/gen/vmulc-minmax-wasm-x4.c", + "src/f32-vbinary/gen/vmulc-minmax-wasm-x8.c", + "src/f32-vbinary/gen/vmulc-relu-wasm-x1.c", + "src/f32-vbinary/gen/vmulc-relu-wasm-x2.c", + "src/f32-vbinary/gen/vmulc-relu-wasm-x4.c", + "src/f32-vbinary/gen/vmulc-relu-wasm-x8.c", + "src/f32-vbinary/gen/vrdivc-minmax-wasm-x1.c", + "src/f32-vbinary/gen/vrdivc-minmax-wasm-x2.c", + "src/f32-vbinary/gen/vrdivc-minmax-wasm-x4.c", + "src/f32-vbinary/gen/vrdivc-minmax-wasm-x8.c", + "src/f32-vbinary/gen/vrdivc-relu-wasm-x1.c", + "src/f32-vbinary/gen/vrdivc-relu-wasm-x2.c", + "src/f32-vbinary/gen/vrdivc-relu-wasm-x4.c", + "src/f32-vbinary/gen/vrdivc-relu-wasm-x8.c", + "src/f32-vbinary/gen/vrsubc-minmax-wasm-x1.c", + "src/f32-vbinary/gen/vrsubc-minmax-wasm-x2.c", + "src/f32-vbinary/gen/vrsubc-minmax-wasm-x4.c", + "src/f32-vbinary/gen/vrsubc-minmax-wasm-x8.c", + "src/f32-vbinary/gen/vrsubc-relu-wasm-x1.c", + "src/f32-vbinary/gen/vrsubc-relu-wasm-x2.c", + "src/f32-vbinary/gen/vrsubc-relu-wasm-x4.c", + "src/f32-vbinary/gen/vrsubc-relu-wasm-x8.c", + "src/f32-vbinary/gen/vsub-minmax-wasm-x1.c", + "src/f32-vbinary/gen/vsub-minmax-wasm-x2.c", + "src/f32-vbinary/gen/vsub-minmax-wasm-x4.c", + "src/f32-vbinary/gen/vsub-minmax-wasm-x8.c", + "src/f32-vbinary/gen/vsub-relu-wasm-x1.c", + "src/f32-vbinary/gen/vsub-relu-wasm-x2.c", + "src/f32-vbinary/gen/vsub-relu-wasm-x4.c", + "src/f32-vbinary/gen/vsub-relu-wasm-x8.c", + "src/f32-vbinary/gen/vsubc-minmax-wasm-x1.c", + "src/f32-vbinary/gen/vsubc-minmax-wasm-x2.c", + "src/f32-vbinary/gen/vsubc-minmax-wasm-x4.c", + "src/f32-vbinary/gen/vsubc-minmax-wasm-x8.c", + "src/f32-vbinary/gen/vsubc-relu-wasm-x1.c", + "src/f32-vbinary/gen/vsubc-relu-wasm-x2.c", + "src/f32-vbinary/gen/vsubc-relu-wasm-x4.c", + "src/f32-vbinary/gen/vsubc-relu-wasm-x8.c", + "src/f32-vclamp/gen/vclamp-wasm-x1.c", + "src/f32-vclamp/gen/vclamp-wasm-x2.c", + "src/f32-vclamp/gen/vclamp-wasm-x4.c", + "src/f32-velu/gen/velu-wasm-rr2-lut16-p3-x1.c", + "src/f32-velu/gen/velu-wasm-rr2-lut16-p3-x2.c", + "src/f32-velu/gen/velu-wasm-rr2-lut16-p3-x3.c", + "src/f32-velu/gen/velu-wasm-rr2-lut16-p3-x4.c", + "src/f32-velu/gen/velu-wasm-rr2-lut16-p3-x5.c", + "src/f32-velu/gen/velu-wasm-rr2-lut16-p3-x6.c", + "src/f32-velu/gen/velu-wasm-rr2-p6-x1.c", + "src/f32-velu/gen/velu-wasm-rr2-p6-x2.c", + "src/f32-velu/gen/velu-wasm-rr2-p6-x3.c", + "src/f32-velu/gen/velu-wasm-rr2-p6-x4.c", + "src/f32-velu/gen/velu-wasm-rr2-p6-x5.c", + "src/f32-velu/gen/velu-wasm-rr2-p6-x6.c", + "src/f32-vhswish/gen/vhswish-wasm-x1.c", + "src/f32-vhswish/gen/vhswish-wasm-x2.c", + "src/f32-vhswish/gen/vhswish-wasm-x4.c", + "src/f32-vlrelu/gen/vlrelu-wasm-x1.c", + "src/f32-vlrelu/gen/vlrelu-wasm-x2.c", + "src/f32-vlrelu/gen/vlrelu-wasm-x4.c", + "src/f32-vmulcaddc/gen/c1-minmax-wasm-2x.c", + "src/f32-vmulcaddc/gen/c2-minmax-wasm-2x.c", + "src/f32-vmulcaddc/gen/c4-minmax-wasm-2x.c", + "src/f32-vrelu/gen/vrelu-wasm-x1.c", + "src/f32-vrelu/gen/vrelu-wasm-x2.c", + "src/f32-vrelu/gen/vrelu-wasm-x4.c", + "src/f32-vrelu/gen/vrelu-wasm-x8.c", + "src/qc8-dwconv/gen/up1x9-minmax-fp32-wasm-fmagic.c", + "src/qc8-dwconv/gen/up1x25-minmax-fp32-wasm-fmagic.c", + "src/qc8-dwconv/gen/up2x9-minmax-fp32-wasm-fmagic.c", + "src/qc8-dwconv/gen/up2x25-minmax-fp32-wasm-fmagic.c", + "src/qc8-dwconv/gen/up4x9-minmax-fp32-wasm-fmagic.c", + "src/qc8-dwconv/gen/up4x25-minmax-fp32-wasm-fmagic.c", + "src/qc8-gemm/gen/1x2-minmax-fp32-wasm-fmagic.c", + "src/qc8-gemm/gen/1x4-minmax-fp32-wasm-fmagic.c", + "src/qc8-gemm/gen/2x2-minmax-fp32-wasm-fmagic.c", + "src/qc8-gemm/gen/2x4-minmax-fp32-wasm-fmagic.c", + "src/qc8-gemm/gen/3x2-minmax-fp32-wasm-fmagic.c", + "src/qc8-gemm/gen/3x4-minmax-fp32-wasm-fmagic.c", + "src/qc8-gemm/gen/4x2-minmax-fp32-wasm-fmagic.c", + "src/qc8-gemm/gen/4x4-minmax-fp32-wasm-fmagic.c", + "src/qc8-igemm/gen/1x2-minmax-fp32-wasm-fmagic.c", + "src/qc8-igemm/gen/1x4-minmax-fp32-wasm-fmagic.c", + "src/qc8-igemm/gen/2x2-minmax-fp32-wasm-fmagic.c", + "src/qc8-igemm/gen/2x4-minmax-fp32-wasm-fmagic.c", + "src/qc8-igemm/gen/3x2-minmax-fp32-wasm-fmagic.c", + "src/qc8-igemm/gen/3x4-minmax-fp32-wasm-fmagic.c", + "src/qc8-igemm/gen/4x2-minmax-fp32-wasm-fmagic.c", + "src/qc8-igemm/gen/4x4-minmax-fp32-wasm-fmagic.c", + "src/qs8-dwconv/gen/up1x9-minmax-fp32-wasm-fmagic.c", + "src/qs8-dwconv/gen/up1x25-minmax-fp32-wasm-fmagic.c", + "src/qs8-dwconv/gen/up2x9-minmax-fp32-wasm-fmagic.c", + "src/qs8-dwconv/gen/up2x25-minmax-fp32-wasm-fmagic.c", + "src/qs8-dwconv/gen/up4x9-minmax-fp32-wasm-fmagic.c", + "src/qs8-dwconv/gen/up4x25-minmax-fp32-wasm-fmagic.c", + "src/qs8-gemm/gen/1x2-minmax-fp32-wasm-fmagic.c", + "src/qs8-gemm/gen/1x4-minmax-fp32-wasm-fmagic.c", + "src/qs8-gemm/gen/2x2-minmax-fp32-wasm-fmagic.c", + "src/qs8-gemm/gen/2x4-minmax-fp32-wasm-fmagic.c", + "src/qs8-gemm/gen/3x2-minmax-fp32-wasm-fmagic.c", + "src/qs8-gemm/gen/3x4-minmax-fp32-wasm-fmagic.c", + "src/qs8-gemm/gen/4x2-minmax-fp32-wasm-fmagic.c", + "src/qs8-gemm/gen/4x4-minmax-fp32-wasm-fmagic.c", + "src/qs8-igemm/gen/1x2-minmax-fp32-wasm-fmagic.c", + "src/qs8-igemm/gen/1x4-minmax-fp32-wasm-fmagic.c", + "src/qs8-igemm/gen/2x2-minmax-fp32-wasm-fmagic.c", + "src/qs8-igemm/gen/2x4-minmax-fp32-wasm-fmagic.c", + "src/qs8-igemm/gen/3x2-minmax-fp32-wasm-fmagic.c", + "src/qs8-igemm/gen/3x4-minmax-fp32-wasm-fmagic.c", + "src/qs8-igemm/gen/4x2-minmax-fp32-wasm-fmagic.c", + "src/qs8-igemm/gen/4x4-minmax-fp32-wasm-fmagic.c", + "src/qu8-dwconv/gen/up1x9-minmax-fp32-wasm-fmagic.c", + "src/qu8-dwconv/gen/up1x25-minmax-fp32-wasm-fmagic.c", + "src/qu8-dwconv/gen/up2x9-minmax-fp32-wasm-fmagic.c", + "src/qu8-dwconv/gen/up2x25-minmax-fp32-wasm-fmagic.c", + "src/qu8-dwconv/gen/up4x9-minmax-fp32-wasm-fmagic.c", + "src/qu8-dwconv/gen/up4x25-minmax-fp32-wasm-fmagic.c", + "src/qu8-gemm/gen/1x2-minmax-fp32-wasm-fmagic.c", + "src/qu8-gemm/gen/1x4-minmax-fp32-wasm-fmagic.c", + "src/qu8-gemm/gen/2x2-minmax-fp32-wasm-fmagic.c", + "src/qu8-gemm/gen/2x4-minmax-fp32-wasm-fmagic.c", + "src/qu8-gemm/gen/3x2-minmax-fp32-wasm-fmagic.c", + "src/qu8-gemm/gen/3x4-minmax-fp32-wasm-fmagic.c", + "src/qu8-gemm/gen/4x2-minmax-fp32-wasm-fmagic.c", + "src/qu8-gemm/gen/4x4-minmax-fp32-wasm-fmagic.c", + "src/qu8-igemm/gen/1x2-minmax-fp32-wasm-fmagic.c", + "src/qu8-igemm/gen/1x4-minmax-fp32-wasm-fmagic.c", + "src/qu8-igemm/gen/2x2-minmax-fp32-wasm-fmagic.c", + "src/qu8-igemm/gen/2x4-minmax-fp32-wasm-fmagic.c", + "src/qu8-igemm/gen/3x2-minmax-fp32-wasm-fmagic.c", + "src/qu8-igemm/gen/3x4-minmax-fp32-wasm-fmagic.c", + "src/qu8-igemm/gen/4x2-minmax-fp32-wasm-fmagic.c", + "src/qu8-igemm/gen/4x4-minmax-fp32-wasm-fmagic.c", +] + +ALL_WASMSIMD_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int16-x8.c", + "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int16-x16.c", + "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int16-x24.c", + "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int16-x32.c", + "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int32-x8.c", + "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int32-x16.c", + "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int32-x24.c", + "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int32-x32.c", + "src/f32-argmaxpool/4x-wasmsimd-c4.c", + "src/f32-argmaxpool/9p8x-wasmsimd-c4.c", + "src/f32-argmaxpool/9x-wasmsimd-c4.c", + "src/f32-avgpool/9p8x-minmax-wasmsimd-arm-c4.c", + "src/f32-avgpool/9p8x-minmax-wasmsimd-x86-c4.c", + "src/f32-avgpool/9x-minmax-wasmsimd-arm-c4.c", + "src/f32-avgpool/9x-minmax-wasmsimd-x86-c4.c", + "src/f32-conv-hwc2chw/3x3s2p1c3x4-wasmsimd-2x2.c", + "src/f32-dwconv/gen/up4x3-minmax-wasmsimd-arm-acc2.c", + "src/f32-dwconv/gen/up4x3-minmax-wasmsimd-arm.c", + "src/f32-dwconv/gen/up4x3-minmax-wasmsimd-x86-acc2.c", + "src/f32-dwconv/gen/up4x3-minmax-wasmsimd-x86.c", + "src/f32-dwconv/gen/up4x3-wasmsimd.c", + "src/f32-dwconv/gen/up4x4-minmax-wasmsimd-arm-acc2.c", + "src/f32-dwconv/gen/up4x4-minmax-wasmsimd-arm.c", + "src/f32-dwconv/gen/up4x4-minmax-wasmsimd-x86-acc2.c", + "src/f32-dwconv/gen/up4x4-minmax-wasmsimd-x86.c", + "src/f32-dwconv/gen/up4x4-wasmsimd.c", + "src/f32-dwconv/gen/up4x9-minmax-wasmsimd-arm-acc2.c", + "src/f32-dwconv/gen/up4x9-minmax-wasmsimd-arm.c", + "src/f32-dwconv/gen/up4x9-minmax-wasmsimd-x86-acc2.c", + "src/f32-dwconv/gen/up4x9-minmax-wasmsimd-x86.c", + "src/f32-dwconv/gen/up4x9-wasmsimd.c", + "src/f32-dwconv/gen/up4x25-minmax-wasmsimd-arm-acc2.c", + "src/f32-dwconv/gen/up4x25-minmax-wasmsimd-arm.c", + "src/f32-dwconv/gen/up4x25-minmax-wasmsimd-x86-acc2.c", + "src/f32-dwconv/gen/up4x25-minmax-wasmsimd-x86.c", + "src/f32-dwconv/gen/up4x25-wasmsimd.c", + "src/f32-dwconv/gen/up8x3-minmax-wasmsimd-arm-acc2.c", + "src/f32-dwconv/gen/up8x3-minmax-wasmsimd-arm.c", + "src/f32-dwconv/gen/up8x3-minmax-wasmsimd-x86-acc2.c", + "src/f32-dwconv/gen/up8x3-minmax-wasmsimd-x86.c", + "src/f32-dwconv/gen/up8x3-wasmsimd.c", + "src/f32-dwconv/gen/up8x4-minmax-wasmsimd-arm-acc2.c", + "src/f32-dwconv/gen/up8x4-minmax-wasmsimd-arm.c", + "src/f32-dwconv/gen/up8x4-minmax-wasmsimd-x86-acc2.c", + "src/f32-dwconv/gen/up8x4-minmax-wasmsimd-x86.c", + "src/f32-dwconv/gen/up8x4-wasmsimd.c", + "src/f32-dwconv/gen/up8x9-minmax-wasmsimd-arm-acc2.c", + "src/f32-dwconv/gen/up8x9-minmax-wasmsimd-arm.c", + "src/f32-dwconv/gen/up8x9-minmax-wasmsimd-x86-acc2.c", + "src/f32-dwconv/gen/up8x9-minmax-wasmsimd-x86.c", + "src/f32-dwconv/gen/up8x9-wasmsimd.c", + "src/f32-dwconv/gen/up8x25-minmax-wasmsimd-arm-acc2.c", + "src/f32-dwconv/gen/up8x25-minmax-wasmsimd-arm.c", + "src/f32-dwconv/gen/up8x25-minmax-wasmsimd-x86-acc2.c", + "src/f32-dwconv/gen/up8x25-minmax-wasmsimd-x86.c", + "src/f32-dwconv/gen/up8x25-wasmsimd.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-1x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-2x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-3x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-4x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-5x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-6x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-1x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-2x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-3x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-4x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-5x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-6x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-1x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-2x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-3x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-4x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-5x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-6x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-1x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-2x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-3x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-4x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-5x4.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-6x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-1x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-2x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-3x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-4x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-1x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-2x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-3x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-4x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-1x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-2x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-3x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-4x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-1x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-2x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-3x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-4x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-1x4-acc5.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-1x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-2x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-2x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-3x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-3x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-4x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-4x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-5x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-1x4-acc5.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-1x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-2x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-2x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-3x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-3x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-4x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-4x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-5x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-1x4-acc5.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-1x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-2x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-2x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-3x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-3x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-4x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-4x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-5x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-1x4-acc5.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-1x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-2x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-2x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-3x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-3x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-4x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-4x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-5x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-1x4-acc5.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-1x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-2x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-2x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-3x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-3x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-1x4-acc5.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-1x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-2x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-2x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-3x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-3x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-1x4-acc5.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-1x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-2x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-2x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-3x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-3x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-1x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-1x4-acc4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-1x4-acc5.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-1x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-2x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-2x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-3x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-3x4.c", + "src/f32-f16-vcvt/gen/vcvt-wasmsimd-x8.c", + "src/f32-f16-vcvt/gen/vcvt-wasmsimd-x16.c", + "src/f32-f16-vcvt/gen/vcvt-wasmsimd-x24.c", + "src/f32-f16-vcvt/gen/vcvt-wasmsimd-x32.c", + "src/f32-gavgpool-cw/wasmsimd-arm-x4.c", + "src/f32-gavgpool-cw/wasmsimd-x86-x4.c", + "src/f32-gavgpool/7p7x-minmax-wasmsimd-arm-c4.c", + "src/f32-gavgpool/7p7x-minmax-wasmsimd-x86-c4.c", + "src/f32-gavgpool/7x-minmax-wasmsimd-arm-c4.c", + "src/f32-gavgpool/7x-minmax-wasmsimd-x86-c4.c", + "src/f32-gemm/gen-inc/1x8inc-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-gemm/gen-inc/1x8inc-minmax-wasmsimd-arm-splat.c", + "src/f32-gemm/gen-inc/1x8inc-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-gemm/gen-inc/1x8inc-minmax-wasmsimd-x86-splat.c", + "src/f32-gemm/gen-inc/1x8s4inc-minmax-wasmsimd-arm.c", + "src/f32-gemm/gen-inc/1x8s4inc-minmax-wasmsimd-x86.c", + "src/f32-gemm/gen-inc/3x8inc-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-gemm/gen-inc/3x8inc-minmax-wasmsimd-arm-splat.c", + "src/f32-gemm/gen-inc/3x8inc-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-gemm/gen-inc/3x8inc-minmax-wasmsimd-x86-splat.c", + "src/f32-gemm/gen-inc/3x8s4inc-minmax-wasmsimd-arm.c", + "src/f32-gemm/gen-inc/3x8s4inc-minmax-wasmsimd-x86.c", + "src/f32-gemm/gen-inc/4x8inc-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-gemm/gen-inc/4x8inc-minmax-wasmsimd-arm-splat.c", + "src/f32-gemm/gen-inc/4x8inc-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-gemm/gen-inc/4x8inc-minmax-wasmsimd-x86-splat.c", + "src/f32-gemm/gen-inc/4x8s4inc-minmax-wasmsimd-arm.c", + "src/f32-gemm/gen-inc/4x8s4inc-minmax-wasmsimd-x86.c", + "src/f32-gemm/gen-inc/5x8inc-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-gemm/gen-inc/5x8inc-minmax-wasmsimd-arm-splat.c", + "src/f32-gemm/gen-inc/5x8inc-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-gemm/gen-inc/5x8inc-minmax-wasmsimd-x86-splat.c", + "src/f32-gemm/gen-inc/5x8s4inc-minmax-wasmsimd-arm.c", + "src/f32-gemm/gen-inc/5x8s4inc-minmax-wasmsimd-x86.c", + "src/f32-gemm/gen-inc/6x8inc-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-gemm/gen-inc/6x8inc-minmax-wasmsimd-arm-splat.c", + "src/f32-gemm/gen-inc/6x8inc-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-gemm/gen-inc/6x8inc-minmax-wasmsimd-x86-splat.c", + "src/f32-gemm/gen-inc/6x8s4inc-minmax-wasmsimd-arm.c", + "src/f32-gemm/gen-inc/6x8s4inc-minmax-wasmsimd-x86.c", + "src/f32-gemm/gen/1x8-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-gemm/gen/1x8-minmax-wasmsimd-arm-splat.c", + "src/f32-gemm/gen/1x8-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-gemm/gen/1x8-minmax-wasmsimd-x86-splat.c", + "src/f32-gemm/gen/1x8-relu-wasmsimd-splat.c", + "src/f32-gemm/gen/1x8-wasmsimd-splat.c", + "src/f32-gemm/gen/1x8s4-minmax-wasmsimd-arm.c", + "src/f32-gemm/gen/1x8s4-minmax-wasmsimd-x86.c", + "src/f32-gemm/gen/3x8-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-gemm/gen/3x8-minmax-wasmsimd-arm-splat.c", + "src/f32-gemm/gen/3x8-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-gemm/gen/3x8-minmax-wasmsimd-x86-splat.c", + "src/f32-gemm/gen/3x8s4-minmax-wasmsimd-arm.c", + "src/f32-gemm/gen/3x8s4-minmax-wasmsimd-x86.c", + "src/f32-gemm/gen/4x2c4-minmax-wasmsimd-arm.c", + "src/f32-gemm/gen/4x2c4-minmax-wasmsimd-x86.c", + "src/f32-gemm/gen/4x2c4-relu-wasmsimd.c", + "src/f32-gemm/gen/4x2c4-wasmsimd.c", + "src/f32-gemm/gen/4x8-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-gemm/gen/4x8-minmax-wasmsimd-arm-splat.c", + "src/f32-gemm/gen/4x8-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-gemm/gen/4x8-minmax-wasmsimd-x86-splat.c", + "src/f32-gemm/gen/4x8-relu-wasmsimd-splat.c", + "src/f32-gemm/gen/4x8-wasmsimd-splat.c", + "src/f32-gemm/gen/4x8s4-minmax-wasmsimd-arm.c", + "src/f32-gemm/gen/4x8s4-minmax-wasmsimd-x86.c", + "src/f32-gemm/gen/5x8-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-gemm/gen/5x8-minmax-wasmsimd-arm-splat.c", + "src/f32-gemm/gen/5x8-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-gemm/gen/5x8-minmax-wasmsimd-x86-splat.c", + "src/f32-gemm/gen/5x8-relu-wasmsimd-splat.c", + "src/f32-gemm/gen/5x8-wasmsimd-splat.c", + "src/f32-gemm/gen/5x8s4-minmax-wasmsimd-arm.c", + "src/f32-gemm/gen/5x8s4-minmax-wasmsimd-x86.c", + "src/f32-gemm/gen/6x8-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-gemm/gen/6x8-minmax-wasmsimd-arm-splat.c", + "src/f32-gemm/gen/6x8-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-gemm/gen/6x8-minmax-wasmsimd-x86-splat.c", + "src/f32-gemm/gen/6x8s4-minmax-wasmsimd-arm.c", + "src/f32-gemm/gen/6x8s4-minmax-wasmsimd-x86.c", + "src/f32-ibilinear-chw/gen/wasmsimd-p4.c", + "src/f32-ibilinear-chw/gen/wasmsimd-p8.c", + "src/f32-ibilinear/gen/wasmsimd-c4.c", + "src/f32-ibilinear/gen/wasmsimd-c8.c", + "src/f32-igemm/gen/1x8-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-igemm/gen/1x8-minmax-wasmsimd-arm-splat.c", + "src/f32-igemm/gen/1x8-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-igemm/gen/1x8-minmax-wasmsimd-x86-splat.c", + "src/f32-igemm/gen/1x8-relu-wasmsimd-splat.c", + "src/f32-igemm/gen/1x8-wasmsimd-splat.c", + "src/f32-igemm/gen/1x8s4-minmax-wasmsimd-arm.c", + "src/f32-igemm/gen/1x8s4-minmax-wasmsimd-x86.c", + "src/f32-igemm/gen/3x8-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-igemm/gen/3x8-minmax-wasmsimd-arm-splat.c", + "src/f32-igemm/gen/3x8-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-igemm/gen/3x8-minmax-wasmsimd-x86-splat.c", + "src/f32-igemm/gen/3x8s4-minmax-wasmsimd-arm.c", + "src/f32-igemm/gen/3x8s4-minmax-wasmsimd-x86.c", + "src/f32-igemm/gen/4x2c4-minmax-wasmsimd-arm.c", + "src/f32-igemm/gen/4x2c4-minmax-wasmsimd-x86.c", + "src/f32-igemm/gen/4x2c4-relu-wasmsimd.c", + "src/f32-igemm/gen/4x2c4-wasmsimd.c", + "src/f32-igemm/gen/4x8-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-igemm/gen/4x8-minmax-wasmsimd-arm-splat.c", + "src/f32-igemm/gen/4x8-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-igemm/gen/4x8-minmax-wasmsimd-x86-splat.c", + "src/f32-igemm/gen/4x8-relu-wasmsimd-splat.c", + "src/f32-igemm/gen/4x8-wasmsimd-splat.c", + "src/f32-igemm/gen/4x8s4-minmax-wasmsimd-arm.c", + "src/f32-igemm/gen/4x8s4-minmax-wasmsimd-x86.c", + "src/f32-igemm/gen/5x8-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-igemm/gen/5x8-minmax-wasmsimd-arm-splat.c", + "src/f32-igemm/gen/5x8-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-igemm/gen/5x8-minmax-wasmsimd-x86-splat.c", + "src/f32-igemm/gen/5x8-relu-wasmsimd-splat.c", + "src/f32-igemm/gen/5x8-wasmsimd-splat.c", + "src/f32-igemm/gen/5x8s4-minmax-wasmsimd-arm.c", + "src/f32-igemm/gen/5x8s4-minmax-wasmsimd-x86.c", + "src/f32-igemm/gen/6x8-minmax-wasmsimd-arm-loadsplat.c", + "src/f32-igemm/gen/6x8-minmax-wasmsimd-arm-splat.c", + "src/f32-igemm/gen/6x8-minmax-wasmsimd-x86-loadsplat.c", + "src/f32-igemm/gen/6x8-minmax-wasmsimd-x86-splat.c", + "src/f32-igemm/gen/6x8s4-minmax-wasmsimd-arm.c", + "src/f32-igemm/gen/6x8s4-minmax-wasmsimd-x86.c", + "src/f32-maxpool/9p8x-minmax-wasmsimd-arm-c4.c", + "src/f32-maxpool/9p8x-minmax-wasmsimd-x86-c4.c", + "src/f32-pavgpool/9p8x-minmax-wasmsimd-arm-c4.c", + "src/f32-pavgpool/9p8x-minmax-wasmsimd-x86-c4.c", + "src/f32-pavgpool/9x-minmax-wasmsimd-arm-c4.c", + "src/f32-pavgpool/9x-minmax-wasmsimd-x86-c4.c", + "src/f32-ppmm/gen/4x8-minmax-wasmsimd-arm-splat.c", + "src/f32-ppmm/gen/4x8-minmax-wasmsimd-x86-splat.c", + "src/f32-prelu/gen/wasmsimd-bitselect-1x4.c", + "src/f32-prelu/gen/wasmsimd-bitselect-1x8.c", + "src/f32-prelu/gen/wasmsimd-bitselect-1x16.c", + "src/f32-prelu/gen/wasmsimd-bitselect-2x4.c", + "src/f32-prelu/gen/wasmsimd-bitselect-2x8.c", + "src/f32-prelu/gen/wasmsimd-bitselect-2x16.c", + "src/f32-prelu/gen/wasmsimd-bitselect-4x4.c", + "src/f32-prelu/gen/wasmsimd-bitselect-4x8.c", + "src/f32-prelu/gen/wasmsimd-bitselect-4x16.c", + "src/f32-prelu/gen/wasmsimd-minmax-1x4.c", + "src/f32-prelu/gen/wasmsimd-minmax-1x8.c", + "src/f32-prelu/gen/wasmsimd-minmax-1x16.c", + "src/f32-prelu/gen/wasmsimd-minmax-2x4.c", + "src/f32-prelu/gen/wasmsimd-minmax-2x8.c", + "src/f32-prelu/gen/wasmsimd-minmax-2x16.c", + "src/f32-prelu/gen/wasmsimd-minmax-4x4.c", + "src/f32-prelu/gen/wasmsimd-minmax-4x8.c", + "src/f32-prelu/gen/wasmsimd-minmax-4x16.c", + "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-cvt-x8.c", + "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-cvt-x16.c", + "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-cvt-x24.c", + "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-cvt-x32.c", + "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-magic-x8.c", + "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-magic-x16.c", + "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-magic-x24.c", + "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-magic-x32.c", + "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-cvt-x8.c", + "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-cvt-x16.c", + "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-cvt-x24.c", + "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-cvt-x32.c", + "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-magic-x8.c", + "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-magic-x16.c", + "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-magic-x24.c", + "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-magic-x32.c", + "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x4.c", + "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x8-acc2.c", + "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x8.c", + "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x12-acc2.c", + "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x12-acc3.c", + "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x12.c", + "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x16-acc2.c", + "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x16-acc4.c", + "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x16.c", + "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x20-acc2.c", + "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x20-acc5.c", + "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x20.c", + "src/f32-rmax/wasmsimd-arm.c", + "src/f32-rmax/wasmsimd-x86.c", + "src/f32-spmm/gen/4x1-minmax-wasmsimd-arm-pipelined-x2.c", + "src/f32-spmm/gen/4x1-minmax-wasmsimd-arm-pipelined.c", + "src/f32-spmm/gen/4x1-minmax-wasmsimd-arm-x2.c", + "src/f32-spmm/gen/4x1-minmax-wasmsimd-arm-x4.c", + "src/f32-spmm/gen/4x1-minmax-wasmsimd-arm.c", + "src/f32-spmm/gen/4x1-minmax-wasmsimd-x86-pipelined-x2.c", + "src/f32-spmm/gen/4x1-minmax-wasmsimd-x86-pipelined.c", + "src/f32-spmm/gen/4x1-minmax-wasmsimd-x86-x2.c", + "src/f32-spmm/gen/4x1-minmax-wasmsimd-x86-x4.c", + "src/f32-spmm/gen/4x1-minmax-wasmsimd-x86.c", + "src/f32-spmm/gen/8x1-minmax-wasmsimd-arm-pipelined-x2.c", + "src/f32-spmm/gen/8x1-minmax-wasmsimd-arm-pipelined.c", + "src/f32-spmm/gen/8x1-minmax-wasmsimd-arm-x2.c", + "src/f32-spmm/gen/8x1-minmax-wasmsimd-arm-x4.c", + "src/f32-spmm/gen/8x1-minmax-wasmsimd-arm.c", + "src/f32-spmm/gen/8x1-minmax-wasmsimd-x86-pipelined-x2.c", + "src/f32-spmm/gen/8x1-minmax-wasmsimd-x86-pipelined.c", + "src/f32-spmm/gen/8x1-minmax-wasmsimd-x86-x2.c", + "src/f32-spmm/gen/8x1-minmax-wasmsimd-x86-x4.c", + "src/f32-spmm/gen/8x1-minmax-wasmsimd-x86.c", + "src/f32-spmm/gen/16x1-minmax-wasmsimd-arm-pipelined-x2.c", + "src/f32-spmm/gen/16x1-minmax-wasmsimd-arm-pipelined.c", + "src/f32-spmm/gen/16x1-minmax-wasmsimd-arm-x2.c", + "src/f32-spmm/gen/16x1-minmax-wasmsimd-arm-x4.c", + "src/f32-spmm/gen/16x1-minmax-wasmsimd-arm.c", + "src/f32-spmm/gen/16x1-minmax-wasmsimd-x86-pipelined-x2.c", + "src/f32-spmm/gen/16x1-minmax-wasmsimd-x86-pipelined.c", + "src/f32-spmm/gen/16x1-minmax-wasmsimd-x86-x2.c", + "src/f32-spmm/gen/16x1-minmax-wasmsimd-x86-x4.c", + "src/f32-spmm/gen/16x1-minmax-wasmsimd-x86.c", + "src/f32-spmm/gen/32x1-minmax-wasmsimd-arm-pipelined-x2.c", + "src/f32-spmm/gen/32x1-minmax-wasmsimd-arm-pipelined.c", + "src/f32-spmm/gen/32x1-minmax-wasmsimd-arm-x2.c", + "src/f32-spmm/gen/32x1-minmax-wasmsimd-arm-x4.c", + "src/f32-spmm/gen/32x1-minmax-wasmsimd-arm.c", + "src/f32-spmm/gen/32x1-minmax-wasmsimd-x86-pipelined-x2.c", + "src/f32-spmm/gen/32x1-minmax-wasmsimd-x86-pipelined.c", + "src/f32-spmm/gen/32x1-minmax-wasmsimd-x86-x2.c", + "src/f32-spmm/gen/32x1-minmax-wasmsimd-x86-x4.c", + "src/f32-spmm/gen/32x1-minmax-wasmsimd-x86.c", + "src/f32-vbinary/gen/vadd-minmax-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vadd-minmax-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vadd-minmax-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vadd-minmax-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vadd-minmax-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vadd-minmax-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vadd-relu-wasmsimd-x4.c", + "src/f32-vbinary/gen/vadd-relu-wasmsimd-x8.c", + "src/f32-vbinary/gen/vadd-relu-wasmsimd-x16.c", + "src/f32-vbinary/gen/vadd-wasmsimd-x4.c", + "src/f32-vbinary/gen/vadd-wasmsimd-x8.c", + "src/f32-vbinary/gen/vadd-wasmsimd-x16.c", + "src/f32-vbinary/gen/vaddc-minmax-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vaddc-minmax-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vaddc-minmax-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vaddc-minmax-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vaddc-minmax-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vaddc-minmax-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vaddc-relu-wasmsimd-x4.c", + "src/f32-vbinary/gen/vaddc-relu-wasmsimd-x8.c", + "src/f32-vbinary/gen/vaddc-relu-wasmsimd-x16.c", + "src/f32-vbinary/gen/vaddc-wasmsimd-x4.c", + "src/f32-vbinary/gen/vaddc-wasmsimd-x8.c", + "src/f32-vbinary/gen/vaddc-wasmsimd-x16.c", + "src/f32-vbinary/gen/vdiv-minmax-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vdiv-minmax-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vdiv-minmax-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vdiv-minmax-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vdiv-minmax-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vdiv-minmax-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vdiv-relu-wasmsimd-x4.c", + "src/f32-vbinary/gen/vdiv-relu-wasmsimd-x8.c", + "src/f32-vbinary/gen/vdiv-relu-wasmsimd-x16.c", + "src/f32-vbinary/gen/vdiv-wasmsimd-x4.c", + "src/f32-vbinary/gen/vdiv-wasmsimd-x8.c", + "src/f32-vbinary/gen/vdiv-wasmsimd-x16.c", + "src/f32-vbinary/gen/vdivc-minmax-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vdivc-minmax-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vdivc-minmax-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vdivc-minmax-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vdivc-minmax-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vdivc-minmax-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vdivc-relu-wasmsimd-x4.c", + "src/f32-vbinary/gen/vdivc-relu-wasmsimd-x8.c", + "src/f32-vbinary/gen/vdivc-relu-wasmsimd-x16.c", + "src/f32-vbinary/gen/vdivc-wasmsimd-x4.c", + "src/f32-vbinary/gen/vdivc-wasmsimd-x8.c", + "src/f32-vbinary/gen/vdivc-wasmsimd-x16.c", + "src/f32-vbinary/gen/vmax-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vmax-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vmax-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vmax-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vmax-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vmax-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vmaxc-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vmaxc-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vmaxc-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vmaxc-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vmaxc-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vmaxc-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vmin-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vmin-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vmin-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vmin-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vmin-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vmin-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vminc-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vminc-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vminc-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vminc-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vminc-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vminc-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vmul-minmax-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vmul-minmax-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vmul-minmax-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vmul-minmax-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vmul-minmax-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vmul-minmax-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vmul-relu-wasmsimd-x4.c", + "src/f32-vbinary/gen/vmul-relu-wasmsimd-x8.c", + "src/f32-vbinary/gen/vmul-relu-wasmsimd-x16.c", + "src/f32-vbinary/gen/vmul-wasmsimd-x4.c", + "src/f32-vbinary/gen/vmul-wasmsimd-x8.c", + "src/f32-vbinary/gen/vmul-wasmsimd-x16.c", + "src/f32-vbinary/gen/vmulc-minmax-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vmulc-minmax-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vmulc-minmax-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vmulc-minmax-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vmulc-minmax-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vmulc-minmax-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vmulc-relu-wasmsimd-x4.c", + "src/f32-vbinary/gen/vmulc-relu-wasmsimd-x8.c", + "src/f32-vbinary/gen/vmulc-relu-wasmsimd-x16.c", + "src/f32-vbinary/gen/vmulc-wasmsimd-x4.c", + "src/f32-vbinary/gen/vmulc-wasmsimd-x8.c", + "src/f32-vbinary/gen/vmulc-wasmsimd-x16.c", + "src/f32-vbinary/gen/vrdivc-minmax-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vrdivc-minmax-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vrdivc-minmax-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vrdivc-minmax-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vrdivc-minmax-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vrdivc-minmax-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vrdivc-relu-wasmsimd-x4.c", + "src/f32-vbinary/gen/vrdivc-relu-wasmsimd-x8.c", + "src/f32-vbinary/gen/vrdivc-relu-wasmsimd-x16.c", + "src/f32-vbinary/gen/vrdivc-wasmsimd-x4.c", + "src/f32-vbinary/gen/vrdivc-wasmsimd-x8.c", + "src/f32-vbinary/gen/vrdivc-wasmsimd-x16.c", + "src/f32-vbinary/gen/vrsubc-minmax-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vrsubc-minmax-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vrsubc-minmax-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vrsubc-minmax-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vrsubc-minmax-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vrsubc-minmax-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vrsubc-relu-wasmsimd-x4.c", + "src/f32-vbinary/gen/vrsubc-relu-wasmsimd-x8.c", + "src/f32-vbinary/gen/vrsubc-relu-wasmsimd-x16.c", + "src/f32-vbinary/gen/vrsubc-wasmsimd-x4.c", + "src/f32-vbinary/gen/vrsubc-wasmsimd-x8.c", + "src/f32-vbinary/gen/vrsubc-wasmsimd-x16.c", + "src/f32-vbinary/gen/vsqrdiff-wasmsimd-x4.c", + "src/f32-vbinary/gen/vsqrdiff-wasmsimd-x8.c", + "src/f32-vbinary/gen/vsqrdiff-wasmsimd-x16.c", + "src/f32-vbinary/gen/vsqrdiffc-wasmsimd-x4.c", + "src/f32-vbinary/gen/vsqrdiffc-wasmsimd-x8.c", + "src/f32-vbinary/gen/vsqrdiffc-wasmsimd-x16.c", + "src/f32-vbinary/gen/vsub-minmax-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vsub-minmax-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vsub-minmax-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vsub-minmax-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vsub-minmax-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vsub-minmax-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vsub-relu-wasmsimd-x4.c", + "src/f32-vbinary/gen/vsub-relu-wasmsimd-x8.c", + "src/f32-vbinary/gen/vsub-relu-wasmsimd-x16.c", + "src/f32-vbinary/gen/vsub-wasmsimd-x4.c", + "src/f32-vbinary/gen/vsub-wasmsimd-x8.c", + "src/f32-vbinary/gen/vsub-wasmsimd-x16.c", + "src/f32-vbinary/gen/vsubc-minmax-wasmsimd-arm-x4.c", + "src/f32-vbinary/gen/vsubc-minmax-wasmsimd-arm-x8.c", + "src/f32-vbinary/gen/vsubc-minmax-wasmsimd-arm-x16.c", + "src/f32-vbinary/gen/vsubc-minmax-wasmsimd-x86-x4.c", + "src/f32-vbinary/gen/vsubc-minmax-wasmsimd-x86-x8.c", + "src/f32-vbinary/gen/vsubc-minmax-wasmsimd-x86-x16.c", + "src/f32-vbinary/gen/vsubc-relu-wasmsimd-x4.c", + "src/f32-vbinary/gen/vsubc-relu-wasmsimd-x8.c", + "src/f32-vbinary/gen/vsubc-relu-wasmsimd-x16.c", + "src/f32-vbinary/gen/vsubc-wasmsimd-x4.c", + "src/f32-vbinary/gen/vsubc-wasmsimd-x8.c", + "src/f32-vbinary/gen/vsubc-wasmsimd-x16.c", + "src/f32-vclamp/gen/vclamp-wasmsimd-arm-x4.c", + "src/f32-vclamp/gen/vclamp-wasmsimd-arm-x8.c", + "src/f32-vclamp/gen/vclamp-wasmsimd-x86-x4.c", + "src/f32-vclamp/gen/vclamp-wasmsimd-x86-x8.c", + "src/f32-velu/gen/velu-wasmsimd-arm-rr2-lut16-p3-x4.c", + "src/f32-velu/gen/velu-wasmsimd-arm-rr2-lut16-p3-x8.c", + "src/f32-velu/gen/velu-wasmsimd-arm-rr2-lut16-p3-x12.c", + "src/f32-velu/gen/velu-wasmsimd-arm-rr2-lut16-p3-x16.c", + "src/f32-velu/gen/velu-wasmsimd-arm-rr2-lut16-p3-x20.c", + "src/f32-velu/gen/velu-wasmsimd-arm-rr2-lut16-p3-x24.c", + "src/f32-velu/gen/velu-wasmsimd-arm-rr2-p6-x4.c", + "src/f32-velu/gen/velu-wasmsimd-arm-rr2-p6-x8.c", + "src/f32-velu/gen/velu-wasmsimd-arm-rr2-p6-x12.c", + "src/f32-velu/gen/velu-wasmsimd-arm-rr2-p6-x16.c", + "src/f32-velu/gen/velu-wasmsimd-arm-rr2-p6-x20.c", + "src/f32-velu/gen/velu-wasmsimd-arm-rr2-p6-x24.c", + "src/f32-velu/gen/velu-wasmsimd-x86-rr2-lut16-p3-x4.c", + "src/f32-velu/gen/velu-wasmsimd-x86-rr2-lut16-p3-x8.c", + "src/f32-velu/gen/velu-wasmsimd-x86-rr2-lut16-p3-x12.c", + "src/f32-velu/gen/velu-wasmsimd-x86-rr2-lut16-p3-x16.c", + "src/f32-velu/gen/velu-wasmsimd-x86-rr2-lut16-p3-x20.c", + "src/f32-velu/gen/velu-wasmsimd-x86-rr2-lut16-p3-x24.c", + "src/f32-velu/gen/velu-wasmsimd-x86-rr2-p6-x4.c", + "src/f32-velu/gen/velu-wasmsimd-x86-rr2-p6-x8.c", + "src/f32-velu/gen/velu-wasmsimd-x86-rr2-p6-x12.c", + "src/f32-velu/gen/velu-wasmsimd-x86-rr2-p6-x16.c", + "src/f32-velu/gen/velu-wasmsimd-x86-rr2-p6-x20.c", + "src/f32-velu/gen/velu-wasmsimd-x86-rr2-p6-x24.c", + "src/f32-vhswish/gen/vhswish-wasmsimd-x4.c", + "src/f32-vhswish/gen/vhswish-wasmsimd-x8.c", + "src/f32-vhswish/gen/vhswish-wasmsimd-x16.c", + "src/f32-vlrelu/gen/vlrelu-wasmsimd-bitselect-x4.c", + "src/f32-vlrelu/gen/vlrelu-wasmsimd-bitselect-x8.c", + "src/f32-vlrelu/gen/vlrelu-wasmsimd-minmax-x4.c", + "src/f32-vlrelu/gen/vlrelu-wasmsimd-minmax-x8.c", + "src/f32-vmulcaddc/gen/c4-minmax-wasmsimd-arm-2x.c", + "src/f32-vmulcaddc/gen/c4-minmax-wasmsimd-x86-2x.c", + "src/f32-vmulcaddc/gen/c8-minmax-wasmsimd-arm-2x.c", + "src/f32-vmulcaddc/gen/c8-minmax-wasmsimd-x86-2x.c", + "src/f32-vrelu/gen/vrelu-wasmsimd-x4.c", + "src/f32-vrelu/gen/vrelu-wasmsimd-x8.c", + "src/f32-vrelu/gen/vrelu-wasmsimd-x16.c", + "src/f32-vrnd/gen/vrndd-wasmsimd-addsub-x4.c", + "src/f32-vrnd/gen/vrndd-wasmsimd-addsub-x8.c", + "src/f32-vrnd/gen/vrndd-wasmsimd-cvt-x4.c", + "src/f32-vrnd/gen/vrndd-wasmsimd-cvt-x8.c", + "src/f32-vrnd/gen/vrndd-wasmsimd-native-x4.c", + "src/f32-vrnd/gen/vrndd-wasmsimd-native-x8.c", + "src/f32-vrnd/gen/vrndne-wasmsimd-addsub-x4.c", + "src/f32-vrnd/gen/vrndne-wasmsimd-addsub-x8.c", + "src/f32-vrnd/gen/vrndne-wasmsimd-native-x4.c", + "src/f32-vrnd/gen/vrndne-wasmsimd-native-x8.c", + "src/f32-vrnd/gen/vrndu-wasmsimd-addsub-x4.c", + "src/f32-vrnd/gen/vrndu-wasmsimd-addsub-x8.c", + "src/f32-vrnd/gen/vrndu-wasmsimd-cvt-x4.c", + "src/f32-vrnd/gen/vrndu-wasmsimd-cvt-x8.c", + "src/f32-vrnd/gen/vrndu-wasmsimd-native-x4.c", + "src/f32-vrnd/gen/vrndu-wasmsimd-native-x8.c", + "src/f32-vrnd/gen/vrndz-wasmsimd-addsub-x4.c", + "src/f32-vrnd/gen/vrndz-wasmsimd-addsub-x8.c", + "src/f32-vrnd/gen/vrndz-wasmsimd-cvt-x4.c", + "src/f32-vrnd/gen/vrndz-wasmsimd-cvt-x8.c", + "src/f32-vrnd/gen/vrndz-wasmsimd-native-x4.c", + "src/f32-vrnd/gen/vrndz-wasmsimd-native-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-lut64-p2-div-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-lut64-p2-div-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-lut64-p2-div-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-lut64-p2-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-lut64-p2-div-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-lut64-p2-div-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-p5-div-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-p5-div-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-p5-div-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-p5-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-p5-div-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-p5-div-x24.c", + "src/f32-vsqrt/gen/wasmsimd-sqrt-x4.c", + "src/f32-vsqrt/gen/wasmsimd-sqrt-x8.c", + "src/f32-vunary/gen/vabs-wasmsimd-x4.c", + "src/f32-vunary/gen/vabs-wasmsimd-x8.c", + "src/f32-vunary/gen/vneg-wasmsimd-x4.c", + "src/f32-vunary/gen/vneg-wasmsimd-x8.c", + "src/f32-vunary/gen/vsqr-wasmsimd-x4.c", + "src/f32-vunary/gen/vsqr-wasmsimd-x8.c", + "src/math/cvt-f16-f32-wasmsimd-int16.c", + "src/math/cvt-f16-f32-wasmsimd-int32.c", + "src/math/cvt-f32-f16-wasmsimd.c", + "src/math/expm1minus-wasmsimd-rr2-lut16-p3-andnot.c", + "src/math/expm1minus-wasmsimd-rr2-lut16-p3-max.c", + "src/math/expm1minus-wasmsimd-rr2-p6-andnot.c", + "src/math/expm1minus-wasmsimd-rr2-p6-max.c", + "src/math/roundd-wasmsimd-addsub.c", + "src/math/roundd-wasmsimd-cvt.c", + "src/math/roundd-wasmsimd-native.c", + "src/math/roundne-wasmsimd-addsub.c", + "src/math/roundne-wasmsimd-native.c", + "src/math/roundu-wasmsimd-addsub.c", + "src/math/roundu-wasmsimd-cvt.c", + "src/math/roundu-wasmsimd-native.c", + "src/math/roundz-wasmsimd-addsub.c", + "src/math/roundz-wasmsimd-cvt.c", + "src/math/roundz-wasmsimd-native.c", + "src/math/sigmoid-wasmsimd-rr2-lut64-p2-div.c", + "src/math/sigmoid-wasmsimd-rr2-p5-div.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-wasmsimd-mul16-add16.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-wasmsimd-mul16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-wasmsimd-mul16-add16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-wasmsimd-mul16.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-wasmsimd-mul16-add16.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-wasmsimd-mul16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-wasmsimd-mul16-add16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-wasmsimd-mul16.c", + "src/qc8-dwconv/gen/up24x9-minmax-fp32-wasmsimd-mul16-add16.c", + "src/qc8-dwconv/gen/up24x9-minmax-fp32-wasmsimd-mul16.c", + "src/qc8-dwconv/gen/up24x25-minmax-fp32-wasmsimd-mul16-add16.c", + "src/qc8-dwconv/gen/up24x25-minmax-fp32-wasmsimd-mul16.c", + "src/qc8-gemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-gemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-gemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-gemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-mul16-ld64.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-mul16-ld128.c", + "src/qc8-gemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-gemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-gemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-gemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-mul16-ld64.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-mul16-ld128.c", + "src/qc8-gemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-gemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-gemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-gemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-mul16-ld64.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-mul16-ld128.c", + "src/qc8-gemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-gemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-gemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-gemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-gemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-gemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-igemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-igemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-igemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-igemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-mul16-ld64.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-mul16-ld128.c", + "src/qc8-igemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-igemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-igemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-igemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-mul16-ld64.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-mul16-ld128.c", + "src/qc8-igemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-igemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-igemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-igemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-mul16-ld64.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-mul16-ld128.c", + "src/qc8-igemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-igemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-igemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-igemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qc8-igemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qc8-igemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-wasmsimd-mul16-add16.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-wasmsimd-mul16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-wasmsimd-mul16-add16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-wasmsimd-mul16.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-wasmsimd-mul16-add16.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-wasmsimd-mul16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-wasmsimd-mul16-add16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-wasmsimd-mul16.c", + "src/qs8-dwconv/gen/up24x9-minmax-fp32-wasmsimd-mul16-add16.c", + "src/qs8-dwconv/gen/up24x9-minmax-fp32-wasmsimd-mul16.c", + "src/qs8-dwconv/gen/up24x25-minmax-fp32-wasmsimd-mul16-add16.c", + "src/qs8-dwconv/gen/up24x25-minmax-fp32-wasmsimd-mul16.c", + "src/qs8-f32-vcvt/gen/vcvt-wasmsimd-x8.c", + "src/qs8-f32-vcvt/gen/vcvt-wasmsimd-x16.c", + "src/qs8-f32-vcvt/gen/vcvt-wasmsimd-x24.c", + "src/qs8-f32-vcvt/gen/vcvt-wasmsimd-x32.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c8.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c16.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c24.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c32.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c8.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c16.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c24.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c32.c", + "src/qs8-gemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-gemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-gemm/gen/1x4c2-xw-minmax-fp32-wasmsimd-dot16x2.c", + "src/qs8-gemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-gemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-mul16-ld64.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-mul16-ld128.c", + "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-wasmsimd-dot16x2.c", + "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-wasmsimd-mul16.c", + "src/qs8-gemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-gemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-gemm/gen/2x4c2-xw-minmax-fp32-wasmsimd-dot16x2.c", + "src/qs8-gemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-gemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-mul16-ld64.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-mul16-ld128.c", + "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-wasmsimd-dot16x2.c", + "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-wasmsimd-mul16.c", + "src/qs8-gemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-gemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-gemm/gen/3x4c2-xw-minmax-fp32-wasmsimd-dot16x2.c", + "src/qs8-gemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-gemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-mul16-ld64.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-mul16-ld128.c", + "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-wasmsimd-dot16x2.c", + "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-wasmsimd-mul16.c", + "src/qs8-gemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-gemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-gemm/gen/4x4c2-xw-minmax-fp32-wasmsimd-dot16x2.c", + "src/qs8-gemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-gemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-gemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-gemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-gemm/gen/4x4c8-xw-minmax-fp32-wasmsimd-dot16x2.c", + "src/qs8-igemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-igemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-igemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-igemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-mul16-ld64.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-mul16-ld128.c", + "src/qs8-igemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-igemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-igemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-igemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-mul16-ld64.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-mul16-ld128.c", + "src/qs8-igemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-igemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-igemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-igemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-mul16-ld64.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-mul16-ld128.c", + "src/qs8-igemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-igemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-igemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-igemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-igemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qs8-igemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qs8-requantization/fp32-wasmsimd.c", + "src/qs8-requantization/gemmlowp-wasmsimd.c", + "src/qs8-vadd/gen/minmax-wasmsimd-x8.c", + "src/qs8-vadd/gen/minmax-wasmsimd-x16.c", + "src/qs8-vadd/gen/minmax-wasmsimd-x24.c", + "src/qs8-vadd/gen/minmax-wasmsimd-x32.c", + "src/qs8-vaddc/gen/minmax-wasmsimd-x8.c", + "src/qs8-vaddc/gen/minmax-wasmsimd-x16.c", + "src/qs8-vaddc/gen/minmax-wasmsimd-x24.c", + "src/qs8-vaddc/gen/minmax-wasmsimd-x32.c", + "src/qs8-vmul/gen/minmax-fp32-wasmsimd-mul32-ld64-x8.c", + "src/qs8-vmul/gen/minmax-fp32-wasmsimd-mul32-ld64-x16.c", + "src/qs8-vmulc/gen/minmax-fp32-wasmsimd-mul32-ld64-x8.c", + "src/qs8-vmulc/gen/minmax-fp32-wasmsimd-mul32-ld64-x16.c", + "src/qu8-dwconv/gen/up8x9-minmax-fp32-wasmsimd-mul16.c", + "src/qu8-dwconv/gen/up8x25-minmax-fp32-wasmsimd-mul16.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-wasmsimd-mul16.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-wasmsimd-mul16.c", + "src/qu8-dwconv/gen/up24x9-minmax-fp32-wasmsimd-mul16.c", + "src/qu8-dwconv/gen/up24x25-minmax-fp32-wasmsimd-mul16.c", + "src/qu8-f32-vcvt/gen/vcvt-wasmsimd-x8.c", + "src/qu8-f32-vcvt/gen/vcvt-wasmsimd-x16.c", + "src/qu8-f32-vcvt/gen/vcvt-wasmsimd-x24.c", + "src/qu8-f32-vcvt/gen/vcvt-wasmsimd-x32.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c8.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c16.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c24.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c32.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c8.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c16.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c24.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c32.c", + "src/qu8-gemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-gemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-gemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-gemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-mul32-ld64.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-mul32-ld128.c", + "src/qu8-gemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-gemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-gemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-gemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-mul32-ld64.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-mul32-ld128.c", + "src/qu8-gemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-gemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-gemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-gemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-mul32-ld64.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-mul32-ld128.c", + "src/qu8-gemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-gemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-gemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-gemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-gemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-gemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-igemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-igemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-igemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-igemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-mul32-ld64.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-mul32-ld128.c", + "src/qu8-igemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-igemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-igemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-igemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-mul32-ld64.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-mul32-ld128.c", + "src/qu8-igemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-igemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-igemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-igemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-mul32-ld64.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-mul32-ld128.c", + "src/qu8-igemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-igemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-igemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-igemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-igemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c", + "src/qu8-igemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c", + "src/qu8-requantization/fp32-wasmsimd.c", + "src/qu8-requantization/gemmlowp-wasmsimd.c", + "src/qu8-vadd/gen/minmax-wasmsimd-x8.c", + "src/qu8-vadd/gen/minmax-wasmsimd-x16.c", + "src/qu8-vadd/gen/minmax-wasmsimd-x32.c", + "src/qu8-vaddc/gen/minmax-wasmsimd-x8.c", + "src/qu8-vaddc/gen/minmax-wasmsimd-x16.c", + "src/qu8-vaddc/gen/minmax-wasmsimd-x32.c", + "src/qu8-vmul/gen/minmax-fp32-wasmsimd-mul32-ld64-x8.c", + "src/qu8-vmul/gen/minmax-fp32-wasmsimd-mul32-ld64-x16.c", + "src/qu8-vmulc/gen/minmax-fp32-wasmsimd-mul32-ld64-x8.c", + "src/qu8-vmulc/gen/minmax-fp32-wasmsimd-mul32-ld64-x16.c", + "src/s8-ibilinear/gen/wasmsimd-dot16x2-c8.c", + "src/s8-ibilinear/gen/wasmsimd-dot16x2-c16.c", + "src/s8-ibilinear/gen/wasmsimd-mul32-c8.c", + "src/s8-ibilinear/gen/wasmsimd-mul32-c16.c", + "src/s8-maxpool/9p8x-minmax-wasmsimd-c16.c", + "src/s8-vclamp/wasmsimd-x64.c", + "src/u8-ibilinear/gen/wasmsimd-dot16x2-c8.c", + "src/u8-ibilinear/gen/wasmsimd-dot16x2-c16.c", + "src/u8-ibilinear/gen/wasmsimd-mul32-c8.c", + "src/u8-ibilinear/gen/wasmsimd-mul32-c16.c", + "src/u8-maxpool/9p8x-minmax-wasmsimd-c16.c", + "src/u8-vclamp/wasmsimd-x64.c", + "src/x8-lut/gen/lut-wasmsimd-x16.c", + "src/x8-lut/gen/lut-wasmsimd-x32.c", + "src/x8-lut/gen/lut-wasmsimd-x48.c", + "src/x8-lut/gen/lut-wasmsimd-x64.c", + "src/x32-packx/x4-wasmsimd.c", + "src/x32-transpose/4x4-wasmsimd.c", + "src/x32-unpool/wasmsimd.c", + "src/x32-zip/x2-wasmsimd.c", + "src/x32-zip/x3-wasmsimd.c", + "src/x32-zip/x4-wasmsimd.c", + "src/x32-zip/xm-wasmsimd.c", + "src/xx-fill/wasmsimd-x64.c", + "src/xx-pad/wasmsimd.c", ] // ISA-specific micro-kernels -NEON_UKERNELS = [ +PROD_NEON_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-neon-int16-x16.c", + "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-conv-hwc2chw/3x3s2p1c3x4-neon-2x2.c", + "src/f32-dwconv/gen/up8x3-minmax-neon.c", + "src/f32-dwconv/gen/up8x4-minmax-neon.c", + "src/f32-dwconv/gen/up8x9-minmax-neon.c", + "src/f32-dwconv/gen/up8x25-minmax-neon-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neon-2x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neon-1x4.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-1x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-1x4.c", + "src/f32-f16-vcvt/gen/vcvt-neon-x8.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", + "src/f32-gemm/gen/4x2-minmax-neon-lane-ld64.c", + "src/f32-gemm/gen/4x8-minmax-neon-lane-ld64.c", + "src/f32-ibilinear-chw/gen/neon-p8.c", + "src/f32-ibilinear/gen/neon-c8.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/4x8-minmax-neon-lane-ld64.c", + "src/f32-maxpool/9p8x-minmax-neon-c4.c", + "src/f32-pavgpool/9p8x-minmax-neon-c4.c", + "src/f32-pavgpool/9x-minmax-neon-c4.c", + "src/f32-prelu/gen/neon-2x8.c", + "src/f32-qs8-vcvt/gen/vcvt-neon-x32.c", + "src/f32-qu8-vcvt/gen/vcvt-neon-x32.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x8.c", + "src/f32-rmax/neon.c", + "src/f32-spmm/gen/32x1-minmax-neon.c", + "src/f32-vbinary/gen/vadd-minmax-neon-x8.c", + "src/f32-vbinary/gen/vaddc-minmax-neon-x8.c", + "src/f32-vbinary/gen/vmax-neon-x8.c", + "src/f32-vbinary/gen/vmaxc-neon-x8.c", + "src/f32-vbinary/gen/vmin-neon-x8.c", + "src/f32-vbinary/gen/vminc-neon-x8.c", + "src/f32-vbinary/gen/vmul-minmax-neon-x8.c", + "src/f32-vbinary/gen/vmulc-minmax-neon-x8.c", + "src/f32-vbinary/gen/vrsubc-minmax-neon-x8.c", + "src/f32-vbinary/gen/vsqrdiff-neon-x8.c", + "src/f32-vbinary/gen/vsqrdiffc-neon-x8.c", + "src/f32-vbinary/gen/vsub-minmax-neon-x8.c", + "src/f32-vbinary/gen/vsubc-minmax-neon-x8.c", + "src/f32-vclamp/gen/vclamp-neon-x8.c", + "src/f32-velu/gen/velu-neon-rr2-lut16-p3-x8.c", + "src/f32-vhswish/gen/vhswish-neon-x16.c", + "src/f32-vlrelu/gen/vlrelu-neon-x8.c", + "src/f32-vmulcaddc/gen/c4-minmax-neon-2x.c", + "src/f32-vrnd/gen/vrndd-neon-x8.c", + "src/f32-vrnd/gen/vrndne-neon-x8.c", + "src/f32-vrnd/gen/vrndu-neon-x8.c", + "src/f32-vrnd/gen/vrndz-neon-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x8.c", + "src/f32-vunary/gen/vabs-neon-x8.c", + "src/f32-vunary/gen/vneg-neon-x8.c", + "src/f32-vunary/gen/vsqr-neon-x8.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-neon-mla8-ld64.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-neon-mla8-ld64.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-neon-mla8-ld64.c", + "src/qc8-gemm/gen/1x8-minmax-fp32-neon-mlal-lane.c", + "src/qc8-gemm/gen/1x8c2s4-minmax-fp32-neon-mlal.c", + "src/qc8-gemm/gen/2x8c2s4-minmax-fp32-neon-mlal.c", + "src/qc8-igemm/gen/1x8-minmax-fp32-neon-mlal-lane.c", + "src/qc8-igemm/gen/1x8c2s4-minmax-fp32-neon-mlal.c", + "src/qc8-igemm/gen/2x8c2s4-minmax-fp32-neon-mlal.c", + "src/qs8-dwconv/gen/up8x25-minmax-rndnu-neon-mla8-ld64.c", + "src/qs8-dwconv/gen/up16x9-minmax-rndnu-neon-mla8-ld64.c", + "src/qs8-dwconv/gen/up16x25-minmax-rndnu-neon-mla8-ld64.c", + "src/qs8-f32-vcvt/gen/vcvt-neon-x32.c", + "src/qs8-gavgpool/gen/7p7x-minmax-rndnu-neon-c8.c", + "src/qs8-gavgpool/gen/7x-minmax-rndnu-neon-c8.c", + "src/qs8-gemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-gemm/gen/1x8c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-gemm/gen/2x8c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-igemm/gen/1x8c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-igemm/gen/2x8c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-vadd/gen/minmax-neon-ld64-x16.c", + "src/qs8-vadd/gen/minmax-neon-ld64-x32.c", + "src/qs8-vaddc/gen/minmax-neon-ld64-x16.c", + "src/qs8-vaddc/gen/minmax-neon-ld64-x32.c", + "src/qs8-vmul/gen/minmax-rndnu-neon-ld64-x16.c", + "src/qs8-vmulc/gen/minmax-rndnu-neon-ld64-x16.c", + "src/qu8-avgpool/9p8x-minmax-neon-c8.c", + "src/qu8-avgpool/9x-minmax-neon-c8.c", + "src/qu8-dwconv/gen/up8x25-minmax-rndnu-neon-mul8.c", + "src/qu8-dwconv/gen/up16x9-minmax-rndnu-neon-mul8.c", + "src/qu8-f32-vcvt/gen/vcvt-neon-x32.c", + "src/qu8-gavgpool/gen/7p7x-minmax-rndnu-neon-c8.c", + "src/qu8-gavgpool/gen/7x-minmax-rndnu-neon-c8.c", + "src/qu8-gemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-gemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-gemm/gen/3x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-gemm/gen/4x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/3x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/4x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-vadd/gen/minmax-neon-ld64-x16.c", + "src/qu8-vadd/gen/minmax-neon-ld64-x32.c", + "src/qu8-vaddc/gen/minmax-neon-ld64-x16.c", + "src/qu8-vaddc/gen/minmax-neon-ld64-x32.c", + "src/qu8-vmul/gen/minmax-rndnu-neon-ld64-x16.c", + "src/qu8-vmulc/gen/minmax-rndnu-neon-ld64-x16.c", + "src/s8-ibilinear/gen/neon-c8.c", + "src/s8-ibilinear/gen/neon-c16.c", + "src/s8-maxpool/9p8x-minmax-neon-c16.c", + "src/s8-vclamp/neon-x64.c", + "src/u8-ibilinear/gen/neon-c8.c", + "src/u8-ibilinear/gen/neon-c16.c", + "src/u8-maxpool/9p8x-minmax-neon-c16.c", + "src/u8-rmax/neon.c", + "src/u8-vclamp/neon-x64.c", + "src/x8-zip/x2-neon.c", + "src/x8-zip/x3-neon.c", + "src/x8-zip/x4-neon.c", + "src/x8-zip/xm-neon.c", + "src/x32-packx/x4-neon-st4.c", + "src/x32-unpool/neon.c", + "src/x32-zip/x2-neon.c", + "src/x32-zip/x3-neon.c", + "src/x32-zip/x4-neon.c", + "src/x32-zip/xm-neon.c", + "src/xx-fill/neon-x64.c", + "src/xx-pad/neon.c", +] + +ALL_NEON_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-neon-int16-x8.c", + "src/f16-f32-vcvt/gen/vcvt-neon-int16-x16.c", + "src/f16-f32-vcvt/gen/vcvt-neon-int16-x24.c", + "src/f16-f32-vcvt/gen/vcvt-neon-int16-x32.c", + "src/f16-f32-vcvt/gen/vcvt-neon-int32-x8.c", + "src/f16-f32-vcvt/gen/vcvt-neon-int32-x16.c", + "src/f16-f32-vcvt/gen/vcvt-neon-int32-x24.c", + "src/f16-f32-vcvt/gen/vcvt-neon-int32-x32.c", "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/3x3s2p0p1c3x4-neon-2x2.c", "src/f32-conv-hwc/gen/3x3s2p0p1c3x8-neon-2x1.c", @@ -538,12 +2730,16 @@ NEON_UKERNELS = [ "src/f32-conv-hwc/gen/3x3s2p1c3x8-neon-2x1.c", "src/f32-conv-hwc/gen/3x3s2p1c3x8-neon-2x2.c", "src/f32-conv-hwc2chw/3x3s2p1c3x4-neon-2x2.c", + "src/f32-dwconv/gen/up4x3-minmax-neon-acc2.c", + "src/f32-dwconv/gen/up4x3-minmax-neon.c", "src/f32-dwconv/gen/up4x4-minmax-neon-acc2.c", "src/f32-dwconv/gen/up4x4-minmax-neon.c", "src/f32-dwconv/gen/up4x9-minmax-neon-acc2.c", "src/f32-dwconv/gen/up4x9-minmax-neon.c", "src/f32-dwconv/gen/up4x25-minmax-neon-acc2.c", "src/f32-dwconv/gen/up4x25-minmax-neon.c", + "src/f32-dwconv/gen/up8x3-minmax-neon-acc2.c", + "src/f32-dwconv/gen/up8x3-minmax-neon.c", "src/f32-dwconv/gen/up8x4-minmax-neon-acc2.c", "src/f32-dwconv/gen/up8x4-minmax-neon.c", "src/f32-dwconv/gen/up8x9-minmax-neon-acc2.c", @@ -591,6 +2787,10 @@ NEON_UKERNELS = [ "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-2x4.c", "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-3x4-acc2.c", "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-3x4.c", + "src/f32-f16-vcvt/gen/vcvt-neon-x8.c", + "src/f32-f16-vcvt/gen/vcvt-neon-x16.c", + "src/f32-f16-vcvt/gen/vcvt-neon-x24.c", + "src/f32-f16-vcvt/gen/vcvt-neon-x32.c", "src/f32-gavgpool-cw/neon-x4.c", "src/f32-gavgpool/7p7x-minmax-neon-c4.c", "src/f32-gavgpool/7x-minmax-neon-c4.c", @@ -625,9 +2825,6 @@ NEON_UKERNELS = [ "src/f32-gemm/gen/6x8-minmax-neon-lane-ld128.c", "src/f32-gemm/gen/6x8s4-minmax-neon.c", "src/f32-gemm/gen/8x8s4-minmax-neon.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-chw/gen/neon-p4.c", "src/f32-ibilinear-chw/gen/neon-p8.c", "src/f32-ibilinear/gen/neon-c4.c", @@ -662,51 +2859,39 @@ NEON_UKERNELS = [ "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-lut64-p2-x4.c", - "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x8-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x8.c", - "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x12-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x12-acc3.c", - "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x12.c", - "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x16-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x16-acc4.c", - "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x16.c", - "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x20-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x20-acc5.c", - "src/f32-raddstoreexpminusmax/gen/neon-lut64-p2-x20.c", - "src/f32-raddstoreexpminusmax/gen/neon-p5-x4.c", - "src/f32-raddstoreexpminusmax/gen/neon-p5-x8-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neon-p5-x8.c", - "src/f32-raddstoreexpminusmax/gen/neon-p5-x12-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neon-p5-x12-acc3.c", - "src/f32-raddstoreexpminusmax/gen/neon-p5-x12.c", - "src/f32-raddstoreexpminusmax/gen/neon-p5-x16-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neon-p5-x16-acc4.c", - "src/f32-raddstoreexpminusmax/gen/neon-p5-x16.c", - "src/f32-raddstoreexpminusmax/gen/neon-p5-x20-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neon-p5-x20-acc5.c", - "src/f32-raddstoreexpminusmax/gen/neon-p5-x20.c", - "src/f32-relu/gen/neon-x4.c", - "src/f32-relu/gen/neon-x8.c", + "src/f32-qs8-vcvt/gen/vcvt-neon-x8.c", + "src/f32-qs8-vcvt/gen/vcvt-neon-x16.c", + "src/f32-qs8-vcvt/gen/vcvt-neon-x24.c", + "src/f32-qs8-vcvt/gen/vcvt-neon-x32.c", + "src/f32-qu8-vcvt/gen/vcvt-neon-x8.c", + "src/f32-qu8-vcvt/gen/vcvt-neon-x16.c", + "src/f32-qu8-vcvt/gen/vcvt-neon-x24.c", + "src/f32-qu8-vcvt/gen/vcvt-neon-x32.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x4.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x8-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x8.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x12-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x12-acc3.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x12.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x16-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x16-acc4.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x16.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x20-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x20-acc5.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x20.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x4.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x8-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x8.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x12-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x12-acc3.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x12.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x16-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x16-acc4.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x16.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x20-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x20-acc5.c", + "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x20.c", "src/f32-rmax/neon.c", - "src/f32-sigmoid/gen/neon-rr2-lut64-p2-nr2recps-x4.c", - "src/f32-sigmoid/gen/neon-rr2-lut64-p2-nr2recps-x8.c", - "src/f32-sigmoid/gen/neon-rr2-lut64-p2-nr2recps-x12.c", - "src/f32-sigmoid/gen/neon-rr2-lut64-p2-nr2recps-x16.c", - "src/f32-sigmoid/gen/neon-rr2-lut64-p2-nr2recps-x20.c", - "src/f32-sigmoid/gen/neon-rr2-lut64-p2-nr2recps-x24.c", - "src/f32-sigmoid/gen/neon-rr2-lut2048-p1-nr2recps-x4.c", - "src/f32-sigmoid/gen/neon-rr2-lut2048-p1-nr2recps-x8.c", - "src/f32-sigmoid/gen/neon-rr2-lut2048-p1-nr2recps-x12.c", - "src/f32-sigmoid/gen/neon-rr2-lut2048-p1-nr2recps-x16.c", - "src/f32-sigmoid/gen/neon-rr2-lut2048-p1-nr2recps-x20.c", - "src/f32-sigmoid/gen/neon-rr2-lut2048-p1-nr2recps-x24.c", - "src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x4.c", - "src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x8.c", - "src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x12.c", - "src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x16.c", - "src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x20.c", - "src/f32-sigmoid/gen/neon-rr2-p5-nr2recps-x24.c", "src/f32-spmm/gen/4x1-minmax-neon-pipelined.c", "src/f32-spmm/gen/4x1-minmax-neon-x2.c", "src/f32-spmm/gen/4x1-minmax-neon.c", @@ -746,6 +2931,8 @@ NEON_UKERNELS = [ "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-vclamp/gen/vclamp-neon-x4.c", + "src/f32-vclamp/gen/vclamp-neon-x8.c", "src/f32-velu/gen/velu-neon-rr2-lut16-p3-x4.c", "src/f32-velu/gen/velu-neon-rr2-lut16-p3-x8.c", "src/f32-velu/gen/velu-neon-rr2-lut16-p3-x12.c", @@ -758,10 +2945,15 @@ NEON_UKERNELS = [ "src/f32-velu/gen/velu-neon-rr2-p6-x16.c", "src/f32-velu/gen/velu-neon-rr2-p6-x20.c", "src/f32-velu/gen/velu-neon-rr2-p6-x24.c", + "src/f32-vhswish/gen/vhswish-neon-x4.c", + "src/f32-vhswish/gen/vhswish-neon-x8.c", + "src/f32-vhswish/gen/vhswish-neon-x16.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/f32-vrelu/gen/vrelu-neon-x4.c", + "src/f32-vrelu/gen/vrelu-neon-x8.c", "src/f32-vrnd/gen/vrndd-neon-x4.c", "src/f32-vrnd/gen/vrndd-neon-x8.c", "src/f32-vrnd/gen/vrndne-neon-x4.c", @@ -770,12 +2962,35 @@ NEON_UKERNELS = [ "src/f32-vrnd/gen/vrndu-neon-x8.c", "src/f32-vrnd/gen/vrndz-neon-x4.c", "src/f32-vrnd/gen/vrndz-neon-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut2048-p1-nr2recps-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut2048-p1-nr2recps-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut2048-p1-nr2recps-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut2048-p1-nr2recps-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut2048-p1-nr2recps-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut2048-p1-nr2recps-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-p5-nr2recps-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-p5-nr2recps-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-p5-nr2recps-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-p5-nr2recps-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-p5-nr2recps-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-p5-nr2recps-x24.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/math/cvt-f16-f32-neon-int16.c", + "src/math/cvt-f16-f32-neon-int32.c", + "src/math/cvt-f32-f16-neon.c", + "src/math/cvt-f32-qs8-neon.c", + "src/math/cvt-f32-qu8-neon.c", "src/math/expm1minus-neon-rr2-lut16-p3.c", "src/math/expm1minus-neon-rr2-p6.c", "src/math/roundd-neon-addsub.c", @@ -791,184 +3006,823 @@ NEON_UKERNELS = [ "src/math/sqrt-neon-nr1rsqrts.c", "src/math/sqrt-neon-nr2rsqrts.c", "src/math/sqrt-neon-nr3rsqrts.c", - "src/qs8-dwconv/gen/up8x9-minmax-neon-mul16.c", - "src/qs8-dwconv/gen/up16x9-minmax-neon-mul16.c", - "src/qs8-dwconv/gen/up24x9-minmax-neon-mul16.c", - "src/qs8-dwconv/gen/up32x9-minmax-neon-mul16.c", - "src/qs8-gavgpool/gen/7p7x-minmax-neon-c8-acc2.c", - "src/qs8-gavgpool/gen/7p7x-minmax-neon-c16-acc2.c", - "src/qs8-gavgpool/gen/7p7x-minmax-neon-c24-acc2.c", - "src/qs8-gavgpool/gen/7p7x-minmax-neon-c32-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-neon-c8-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-neon-c16-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-neon-c24-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-neon-c32-acc2.c", - "src/qs8-gemm/gen/1x8-minmax-neon-mlal-lane.c", - "src/qs8-gemm/gen/1x8-minmax-neon-mull-addw-dup.c", - "src/qs8-gemm/gen/1x8c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-gemm/gen/1x8c2-minmax-neon-mull-padal-dup.c", - "src/qs8-gemm/gen/1x8c8-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/1x8c8-minmax-neon-mull-padal.c", - "src/qs8-gemm/gen/1x8c16-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/1x16-minmax-neon-mlal-lane.c", - "src/qs8-gemm/gen/1x16-minmax-neon-mull-addw-dup.c", - "src/qs8-gemm/gen/1x16c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-gemm/gen/1x16c2-minmax-neon-mull-padal-dup.c", - "src/qs8-gemm/gen/1x16c8-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/1x16c8-minmax-neon-mull-padal.c", - "src/qs8-gemm/gen/1x16c16-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/2x8-minmax-neon-mlal-lane.c", - "src/qs8-gemm/gen/2x8-minmax-neon-mull-addw-dup.c", - "src/qs8-gemm/gen/2x8c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-gemm/gen/2x8c2-minmax-neon-mull-padal-dup.c", - "src/qs8-gemm/gen/2x8c8-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/2x8c8-minmax-neon-mull-padal.c", - "src/qs8-gemm/gen/2x8c16-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/2x16-minmax-neon-mlal-lane.c", - "src/qs8-gemm/gen/2x16-minmax-neon-mull-addw-dup.c", - "src/qs8-gemm/gen/2x16c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-gemm/gen/2x16c2-minmax-neon-mull-padal-dup.c", - "src/qs8-gemm/gen/2x16c8-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/2x16c8-minmax-neon-mull-padal.c", - "src/qs8-gemm/gen/2x16c16-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/3x8-minmax-neon-mlal-lane.c", - "src/qs8-gemm/gen/3x8-minmax-neon-mull-addw-dup.c", - "src/qs8-gemm/gen/3x8c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-gemm/gen/3x8c2-minmax-neon-mull-padal-dup.c", - "src/qs8-gemm/gen/3x8c8-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/3x8c8-minmax-neon-mull-padal.c", - "src/qs8-gemm/gen/3x8c16-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/3x16-minmax-neon-mlal-lane.c", - "src/qs8-gemm/gen/3x16-minmax-neon-mull-addw-dup.c", - "src/qs8-gemm/gen/3x16c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-gemm/gen/3x16c2-minmax-neon-mull-padal-dup.c", - "src/qs8-gemm/gen/3x16c8-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/3x16c8-minmax-neon-mull-padal.c", - "src/qs8-gemm/gen/3x16c16-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/4x8-minmax-neon-mlal-lane.c", - "src/qs8-gemm/gen/4x8-minmax-neon-mull-addw-dup.c", - "src/qs8-gemm/gen/4x8c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-gemm/gen/4x8c2-minmax-neon-mull-padal-dup.c", - "src/qs8-gemm/gen/4x8c8-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/4x8c8-minmax-neon-mull-padal.c", - "src/qs8-gemm/gen/4x8c16-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/4x16-minmax-neon-mlal-lane.c", - "src/qs8-gemm/gen/4x16-minmax-neon-mull-addw-dup.c", - "src/qs8-gemm/gen/4x16c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-gemm/gen/4x16c2-minmax-neon-mull-padal-dup.c", - "src/qs8-gemm/gen/4x16c8-minmax-neon-mlal-padal.c", - "src/qs8-gemm/gen/4x16c8-minmax-neon-mull-padal.c", - "src/qs8-gemm/gen/4x16c16-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/1x8-minmax-neon-mlal-lane.c", - "src/qs8-igemm/gen/1x8-minmax-neon-mull-addw-dup.c", - "src/qs8-igemm/gen/1x8c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-igemm/gen/1x8c2-minmax-neon-mull-padal-dup.c", - "src/qs8-igemm/gen/1x8c8-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/1x8c8-minmax-neon-mull-padal.c", - "src/qs8-igemm/gen/1x8c16-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/1x16-minmax-neon-mlal-lane.c", - "src/qs8-igemm/gen/1x16-minmax-neon-mull-addw-dup.c", - "src/qs8-igemm/gen/1x16c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-igemm/gen/1x16c2-minmax-neon-mull-padal-dup.c", - "src/qs8-igemm/gen/1x16c8-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/1x16c8-minmax-neon-mull-padal.c", - "src/qs8-igemm/gen/1x16c16-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/2x8-minmax-neon-mlal-lane.c", - "src/qs8-igemm/gen/2x8-minmax-neon-mull-addw-dup.c", - "src/qs8-igemm/gen/2x8c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-igemm/gen/2x8c2-minmax-neon-mull-padal-dup.c", - "src/qs8-igemm/gen/2x8c8-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/2x8c8-minmax-neon-mull-padal.c", - "src/qs8-igemm/gen/2x8c16-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/2x16-minmax-neon-mlal-lane.c", - "src/qs8-igemm/gen/2x16-minmax-neon-mull-addw-dup.c", - "src/qs8-igemm/gen/2x16c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-igemm/gen/2x16c2-minmax-neon-mull-padal-dup.c", - "src/qs8-igemm/gen/2x16c8-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/2x16c8-minmax-neon-mull-padal.c", - "src/qs8-igemm/gen/2x16c16-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/3x8-minmax-neon-mlal-lane.c", - "src/qs8-igemm/gen/3x8-minmax-neon-mull-addw-dup.c", - "src/qs8-igemm/gen/3x8c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-igemm/gen/3x8c2-minmax-neon-mull-padal-dup.c", - "src/qs8-igemm/gen/3x8c8-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/3x8c8-minmax-neon-mull-padal.c", - "src/qs8-igemm/gen/3x8c16-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/3x16-minmax-neon-mlal-lane.c", - "src/qs8-igemm/gen/3x16-minmax-neon-mull-addw-dup.c", - "src/qs8-igemm/gen/3x16c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-igemm/gen/3x16c2-minmax-neon-mull-padal-dup.c", - "src/qs8-igemm/gen/3x16c8-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/3x16c8-minmax-neon-mull-padal.c", - "src/qs8-igemm/gen/3x16c16-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/4x8-minmax-neon-mlal-lane.c", - "src/qs8-igemm/gen/4x8-minmax-neon-mull-addw-dup.c", - "src/qs8-igemm/gen/4x8c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-igemm/gen/4x8c2-minmax-neon-mull-padal-dup.c", - "src/qs8-igemm/gen/4x8c8-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/4x8c8-minmax-neon-mull-padal.c", - "src/qs8-igemm/gen/4x8c16-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/4x16-minmax-neon-mlal-lane.c", - "src/qs8-igemm/gen/4x16-minmax-neon-mull-addw-dup.c", - "src/qs8-igemm/gen/4x16c2-minmax-neon-mlal-padal-dup.c", - "src/qs8-igemm/gen/4x16c2-minmax-neon-mull-padal-dup.c", - "src/qs8-igemm/gen/4x16c8-minmax-neon-mlal-padal.c", - "src/qs8-igemm/gen/4x16c8-minmax-neon-mull-padal.c", - "src/qs8-igemm/gen/4x16c16-minmax-neon-mlal-padal.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-neon-mla8-ld64.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-neon-mul8-ld64.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-neon-mul16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-neon-mla8-ld64.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-neon-mul8-ld64.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-neon-mul16.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-neon-mla8-ld64.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-neon-mla8-ld128.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-neon-mul8-ld64.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-neon-mul8-ld128.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-neon-mul16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-neon-mla8-ld64.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-neon-mla8-ld128.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-neon-mul8-ld64.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-neon-mul8-ld128.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-neon-mul16.c", + "src/qc8-dwconv/gen/up24x9-minmax-fp32-neon-mul16.c", + "src/qc8-dwconv/gen/up24x25-minmax-fp32-neon-mul16.c", + "src/qc8-dwconv/gen/up32x9-minmax-fp32-neon-mul16.c", + "src/qc8-dwconv/gen/up32x25-minmax-fp32-neon-mul16.c", + "src/qc8-gemm/gen/1x8-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-gemm/gen/1x8-minmax-fp32-neon-mlal-lane.c", + "src/qc8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-dup.c", + "src/qc8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-ld1r.c", + "src/qc8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-ld2r.c", + "src/qc8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-ld4r.c", + "src/qc8-gemm/gen/1x8c2s4-minmax-fp32-neon-mlal.c", + "src/qc8-gemm/gen/1x8c4-minmax-fp32-neon-mlal-dup.c", + "src/qc8-gemm/gen/1x8c4-minmax-fp32-neon-mlal-ld1r.c", + "src/qc8-gemm/gen/1x8c4-minmax-fp32-neon-mlal-ld2r.c", + "src/qc8-gemm/gen/1x8c4s2-minmax-fp32-neon-mlal.c", + "src/qc8-gemm/gen/1x8c8-minmax-fp32-neon-mlal.c", + "src/qc8-gemm/gen/1x16-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-gemm/gen/1x16-minmax-fp32-neon-mlal-lane.c", + "src/qc8-gemm/gen/2x8-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-gemm/gen/2x8-minmax-fp32-neon-mlal-lane.c", + "src/qc8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-dup.c", + "src/qc8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-ld1r.c", + "src/qc8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-ld2r.c", + "src/qc8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-ld4r.c", + "src/qc8-gemm/gen/2x8c2s4-minmax-fp32-neon-mlal.c", + "src/qc8-gemm/gen/2x8c4-minmax-fp32-neon-mlal-dup.c", + "src/qc8-gemm/gen/2x8c4-minmax-fp32-neon-mlal-ld1r.c", + "src/qc8-gemm/gen/2x8c4-minmax-fp32-neon-mlal-ld2r.c", + "src/qc8-gemm/gen/2x8c4s2-minmax-fp32-neon-mlal.c", + "src/qc8-gemm/gen/2x8c8-minmax-fp32-neon-mlal.c", + "src/qc8-gemm/gen/2x16-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-gemm/gen/2x16-minmax-fp32-neon-mlal-lane.c", + "src/qc8-gemm/gen/3x8-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-gemm/gen/3x8-minmax-fp32-neon-mlal-lane.c", + "src/qc8-gemm/gen/3x16-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-gemm/gen/3x16-minmax-fp32-neon-mlal-lane.c", + "src/qc8-gemm/gen/4x8-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-gemm/gen/4x8-minmax-fp32-neon-mlal-lane.c", + "src/qc8-gemm/gen/4x16-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-gemm/gen/4x16-minmax-fp32-neon-mlal-lane.c", + "src/qc8-gemm/gen/6x8-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-gemm/gen/6x8-minmax-fp32-neon-mlal-lane.c", + "src/qc8-gemm/gen/6x16-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-gemm/gen/6x16-minmax-fp32-neon-mlal-lane.c", + "src/qc8-igemm/gen/1x8-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-igemm/gen/1x8-minmax-fp32-neon-mlal-lane.c", + "src/qc8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-dup.c", + "src/qc8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-ld1r.c", + "src/qc8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-ld2r.c", + "src/qc8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-ld4r.c", + "src/qc8-igemm/gen/1x8c2s4-minmax-fp32-neon-mlal.c", + "src/qc8-igemm/gen/1x8c4-minmax-fp32-neon-mlal-dup.c", + "src/qc8-igemm/gen/1x8c4-minmax-fp32-neon-mlal-ld1r.c", + "src/qc8-igemm/gen/1x8c4-minmax-fp32-neon-mlal-ld2r.c", + "src/qc8-igemm/gen/1x8c4s2-minmax-fp32-neon-mlal.c", + "src/qc8-igemm/gen/1x8c8-minmax-fp32-neon-mlal.c", + "src/qc8-igemm/gen/1x16-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-igemm/gen/1x16-minmax-fp32-neon-mlal-lane.c", + "src/qc8-igemm/gen/2x8-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-igemm/gen/2x8-minmax-fp32-neon-mlal-lane.c", + "src/qc8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-dup.c", + "src/qc8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-ld1r.c", + "src/qc8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-ld2r.c", + "src/qc8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-ld4r.c", + "src/qc8-igemm/gen/2x8c2s4-minmax-fp32-neon-mlal.c", + "src/qc8-igemm/gen/2x8c4-minmax-fp32-neon-mlal-dup.c", + "src/qc8-igemm/gen/2x8c4-minmax-fp32-neon-mlal-ld1r.c", + "src/qc8-igemm/gen/2x8c4-minmax-fp32-neon-mlal-ld2r.c", + "src/qc8-igemm/gen/2x8c4s2-minmax-fp32-neon-mlal.c", + "src/qc8-igemm/gen/2x8c8-minmax-fp32-neon-mlal.c", + "src/qc8-igemm/gen/2x16-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-igemm/gen/2x16-minmax-fp32-neon-mlal-lane.c", + "src/qc8-igemm/gen/3x8-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-igemm/gen/3x8-minmax-fp32-neon-mlal-lane.c", + "src/qc8-igemm/gen/3x16-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-igemm/gen/3x16-minmax-fp32-neon-mlal-lane.c", + "src/qc8-igemm/gen/4x8-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-igemm/gen/4x8-minmax-fp32-neon-mlal-lane.c", + "src/qc8-igemm/gen/4x16-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-igemm/gen/4x16-minmax-fp32-neon-mlal-lane.c", + "src/qc8-igemm/gen/6x8-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-igemm/gen/6x8-minmax-fp32-neon-mlal-lane.c", + "src/qc8-igemm/gen/6x16-minmax-fp32-neon-mlal-lane-prfm.c", + "src/qc8-igemm/gen/6x16-minmax-fp32-neon-mlal-lane.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-neon-mul16.c", + "src/qs8-dwconv/gen/up8x9-minmax-rndnu-neon-mla8-ld64.c", + "src/qs8-dwconv/gen/up8x9-minmax-rndnu-neon-mul8-ld64.c", + "src/qs8-dwconv/gen/up8x9-minmax-rndnu-neon-mul16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-neon-mul16.c", + "src/qs8-dwconv/gen/up8x25-minmax-rndnu-neon-mla8-ld64.c", + "src/qs8-dwconv/gen/up8x25-minmax-rndnu-neon-mul8-ld64.c", + "src/qs8-dwconv/gen/up8x25-minmax-rndnu-neon-mul16.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-neon-mul16.c", + "src/qs8-dwconv/gen/up16x9-minmax-rndnu-neon-mla8-ld64.c", + "src/qs8-dwconv/gen/up16x9-minmax-rndnu-neon-mla8-ld128.c", + "src/qs8-dwconv/gen/up16x9-minmax-rndnu-neon-mul8-ld64.c", + "src/qs8-dwconv/gen/up16x9-minmax-rndnu-neon-mul8-ld128.c", + "src/qs8-dwconv/gen/up16x9-minmax-rndnu-neon-mul16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-neon-mul16.c", + "src/qs8-dwconv/gen/up16x25-minmax-rndnu-neon-mla8-ld64.c", + "src/qs8-dwconv/gen/up16x25-minmax-rndnu-neon-mla8-ld128.c", + "src/qs8-dwconv/gen/up16x25-minmax-rndnu-neon-mul8-ld64.c", + "src/qs8-dwconv/gen/up16x25-minmax-rndnu-neon-mul8-ld128.c", + "src/qs8-dwconv/gen/up16x25-minmax-rndnu-neon-mul16.c", + "src/qs8-dwconv/gen/up24x9-minmax-fp32-neon-mul16.c", + "src/qs8-dwconv/gen/up24x9-minmax-rndnu-neon-mul16.c", + "src/qs8-dwconv/gen/up24x25-minmax-fp32-neon-mul16.c", + "src/qs8-dwconv/gen/up24x25-minmax-rndnu-neon-mul16.c", + "src/qs8-dwconv/gen/up32x9-minmax-fp32-neon-mul16.c", + "src/qs8-dwconv/gen/up32x9-minmax-rndnu-neon-mul16.c", + "src/qs8-dwconv/gen/up32x25-minmax-fp32-neon-mul16.c", + "src/qs8-dwconv/gen/up32x25-minmax-rndnu-neon-mul16.c", + "src/qs8-f32-vcvt/gen/vcvt-neon-x8.c", + "src/qs8-f32-vcvt/gen/vcvt-neon-x16.c", + "src/qs8-f32-vcvt/gen/vcvt-neon-x24.c", + "src/qs8-f32-vcvt/gen/vcvt-neon-x32.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neon-c8.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neon-c16.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neon-c24.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neon-c32.c", + "src/qs8-gavgpool/gen/7p7x-minmax-rndnu-neon-c8.c", + "src/qs8-gavgpool/gen/7p7x-minmax-rndnu-neon-c16.c", + "src/qs8-gavgpool/gen/7p7x-minmax-rndnu-neon-c24.c", + "src/qs8-gavgpool/gen/7p7x-minmax-rndnu-neon-c32.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-neon-c8.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-neon-c16.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-neon-c24.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-neon-c32.c", + "src/qs8-gavgpool/gen/7x-minmax-rndnu-neon-c8.c", + "src/qs8-gavgpool/gen/7x-minmax-rndnu-neon-c16.c", + "src/qs8-gavgpool/gen/7x-minmax-rndnu-neon-c24.c", + "src/qs8-gavgpool/gen/7x-minmax-rndnu-neon-c32.c", + "src/qs8-gemm/gen/1x8-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-gemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-gemm/gen/1x8-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-dup.c", + "src/qs8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-ld4r.c", + "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-gemm/gen/1x8c2s4-minmax-fp32-neon-mlal.c", + "src/qs8-gemm/gen/1x8c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/1x8c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/1x8c4-minmax-fp32-neon-mlal-dup.c", + "src/qs8-gemm/gen/1x8c4-minmax-fp32-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/1x8c4-minmax-fp32-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/1x8c4s2-minmax-fp32-neon-mlal.c", + "src/qs8-gemm/gen/1x8c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/1x8c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/1x8c8-minmax-fp32-neon-mlal.c", + "src/qs8-gemm/gen/1x8c8-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/1x8c8-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/1x8c16-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/1x16-minmax-fp32-neon-mlal-lane.c", + "src/qs8-gemm/gen/1x16-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-gemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-gemm/gen/1x16-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-gemm/gen/1x16c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/1x16c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/1x16c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/1x16c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/1x16c8-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/1x16c8-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/1x16c16-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/2x8-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-gemm/gen/2x8-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-gemm/gen/2x8-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-dup.c", + "src/qs8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-ld4r.c", + "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-gemm/gen/2x8c2s4-minmax-fp32-neon-mlal.c", + "src/qs8-gemm/gen/2x8c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/2x8c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/2x8c4-minmax-fp32-neon-mlal-dup.c", + "src/qs8-gemm/gen/2x8c4-minmax-fp32-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/2x8c4-minmax-fp32-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/2x8c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/2x8c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/2x8c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/2x8c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/2x8c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/2x8c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/2x8c4s2-minmax-fp32-neon-mlal.c", + "src/qs8-gemm/gen/2x8c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/2x8c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/2x8c8-minmax-fp32-neon-mlal.c", + "src/qs8-gemm/gen/2x8c8-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/2x8c8-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/2x8c16-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/2x16-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-gemm/gen/2x16-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-gemm/gen/2x16-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-gemm/gen/2x16c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/2x16c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/2x16c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/2x16c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/2x16c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/2x16c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/2x16c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/2x16c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/2x16c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/2x16c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/2x16c8-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/2x16c8-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/2x16c16-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/3x8-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-gemm/gen/3x8-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-gemm/gen/3x8-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-gemm/gen/3x8c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/3x8c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/3x8c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/3x8c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/3x8c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/3x8c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/3x8c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/3x8c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/3x8c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/3x8c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/3x8c8-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/3x8c8-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/3x8c16-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/3x16-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-gemm/gen/3x16-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-gemm/gen/3x16-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-gemm/gen/3x16c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/3x16c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/3x16c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/3x16c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/3x16c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/3x16c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/3x16c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/3x16c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/3x16c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/3x16c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/3x16c8-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/3x16c8-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/3x16c16-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/4x8-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-gemm/gen/4x8-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-gemm/gen/4x8-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-gemm/gen/4x8c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/4x8c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/4x8c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/4x8c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/4x8c8-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/4x8c8-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/4x8c16-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/4x16-minmax-fp32-neon-mlal-lane.c", + "src/qs8-gemm/gen/4x16-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-gemm/gen/4x16-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-gemm/gen/4x16-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-gemm/gen/4x16c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/4x16c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-gemm/gen/4x16c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/4x16c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/4x16c8-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/4x16c8-minmax-rndnu-neon-mull.c", + "src/qs8-gemm/gen/4x16c16-minmax-rndnu-neon-mlal.c", + "src/qs8-gemm/gen/6x8-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-gemm/gen/6x8-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-gemm/gen/6x16-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-gemm/gen/6x16-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-igemm/gen/1x8-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-igemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-igemm/gen/1x8-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-dup.c", + "src/qs8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-ld4r.c", + "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-igemm/gen/1x8c2s4-minmax-fp32-neon-mlal.c", + "src/qs8-igemm/gen/1x8c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/1x8c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/1x8c4-minmax-fp32-neon-mlal-dup.c", + "src/qs8-igemm/gen/1x8c4-minmax-fp32-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/1x8c4-minmax-fp32-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/1x8c4s2-minmax-fp32-neon-mlal.c", + "src/qs8-igemm/gen/1x8c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/1x8c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/1x8c8-minmax-fp32-neon-mlal.c", + "src/qs8-igemm/gen/1x8c8-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/1x8c8-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/1x8c16-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/1x16-minmax-fp32-neon-mlal-lane.c", + "src/qs8-igemm/gen/1x16-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-igemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-igemm/gen/1x16-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-igemm/gen/1x16c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/1x16c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/1x16c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/1x16c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/1x16c8-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/1x16c8-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/1x16c16-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/2x8-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-igemm/gen/2x8-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-igemm/gen/2x8-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-dup.c", + "src/qs8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-ld4r.c", + "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-igemm/gen/2x8c2s4-minmax-fp32-neon-mlal.c", + "src/qs8-igemm/gen/2x8c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/2x8c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/2x8c4-minmax-fp32-neon-mlal-dup.c", + "src/qs8-igemm/gen/2x8c4-minmax-fp32-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/2x8c4-minmax-fp32-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/2x8c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/2x8c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/2x8c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/2x8c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/2x8c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/2x8c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/2x8c4s2-minmax-fp32-neon-mlal.c", + "src/qs8-igemm/gen/2x8c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/2x8c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/2x8c8-minmax-fp32-neon-mlal.c", + "src/qs8-igemm/gen/2x8c8-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/2x8c8-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/2x8c16-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/2x16-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-igemm/gen/2x16-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-igemm/gen/2x16-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-igemm/gen/2x16c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/2x16c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/2x16c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/2x16c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/2x16c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/2x16c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/2x16c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/2x16c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/2x16c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/2x16c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/2x16c8-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/2x16c8-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/2x16c16-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/3x8-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-igemm/gen/3x8-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-igemm/gen/3x8-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-igemm/gen/3x8c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/3x8c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/3x8c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/3x8c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/3x8c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/3x8c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/3x8c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/3x8c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/3x8c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/3x8c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/3x8c8-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/3x8c8-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/3x8c16-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/3x16-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-igemm/gen/3x16-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-igemm/gen/3x16-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-igemm/gen/3x16c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/3x16c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/3x16c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/3x16c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/3x16c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/3x16c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/3x16c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/3x16c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/3x16c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/3x16c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/3x16c8-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/3x16c8-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/3x16c16-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/4x8-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-igemm/gen/4x8-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-igemm/gen/4x8-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-igemm/gen/4x8c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/4x8c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/4x8c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/4x8c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/4x8c8-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/4x8c8-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/4x8c16-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/4x16-minmax-fp32-neon-mlal-lane.c", + "src/qs8-igemm/gen/4x16-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-igemm/gen/4x16-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-igemm/gen/4x16-minmax-rndnu-neon-mull-addw-dup.c", + "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mlal-ld4r.c", + "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mull-ld4r.c", + "src/qs8-igemm/gen/4x16c2s4-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/4x16c2s4-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neon-mlal-dup.c", + "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neon-mlal-ld1r.c", + "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neon-mlal-ld2r.c", + "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neon-mull-dup.c", + "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neon-mull-ld1r.c", + "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neon-mull-ld2r.c", + "src/qs8-igemm/gen/4x16c4s2-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/4x16c4s2-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/4x16c8-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/4x16c8-minmax-rndnu-neon-mull.c", + "src/qs8-igemm/gen/4x16c16-minmax-rndnu-neon-mlal.c", + "src/qs8-igemm/gen/6x8-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-igemm/gen/6x8-minmax-rndnu-neon-mlal-lane.c", + "src/qs8-igemm/gen/6x16-minmax-rndnu-neon-mlal-lane-prfm.c", + "src/qs8-igemm/gen/6x16-minmax-rndnu-neon-mlal-lane.c", "src/qs8-requantization/fp32-neon.c", - "src/qs8-requantization/precise-neon.c", - "src/qs8-requantization/q31-neon.c", + "src/qs8-requantization/gemmlowp-neon.c", + "src/qs8-requantization/rndna-neon.c", + "src/qs8-requantization/rndnu-neon-mull.c", + "src/qs8-requantization/rndnu-neon-qdmulh.c", "src/qs8-vadd/gen/minmax-neon-ld64-x8.c", "src/qs8-vadd/gen/minmax-neon-ld64-x16.c", "src/qs8-vadd/gen/minmax-neon-ld64-x24.c", "src/qs8-vadd/gen/minmax-neon-ld64-x32.c", + "src/qs8-vadd/gen/minmax-neon-ld128-x16.c", + "src/qs8-vadd/gen/minmax-neon-ld128-x32.c", "src/qs8-vaddc/gen/minmax-neon-ld64-x8.c", "src/qs8-vaddc/gen/minmax-neon-ld64-x16.c", "src/qs8-vaddc/gen/minmax-neon-ld64-x24.c", "src/qs8-vaddc/gen/minmax-neon-ld64-x32.c", + "src/qs8-vaddc/gen/minmax-neon-ld128-x16.c", + "src/qs8-vaddc/gen/minmax-neon-ld128-x32.c", + "src/qs8-vmul/gen/minmax-fp32-neon-ld64-x8.c", + "src/qs8-vmul/gen/minmax-fp32-neon-ld64-x16.c", + "src/qs8-vmul/gen/minmax-fp32-neon-ld128-x16.c", + "src/qs8-vmul/gen/minmax-rndnu-neon-ld64-x8.c", + "src/qs8-vmul/gen/minmax-rndnu-neon-ld64-x16.c", + "src/qs8-vmul/gen/minmax-rndnu-neon-ld128-x16.c", + "src/qs8-vmulc/gen/minmax-fp32-neon-ld64-x8.c", + "src/qs8-vmulc/gen/minmax-fp32-neon-ld64-x16.c", + "src/qs8-vmulc/gen/minmax-fp32-neon-ld128-x16.c", + "src/qs8-vmulc/gen/minmax-rndnu-neon-ld64-x8.c", + "src/qs8-vmulc/gen/minmax-rndnu-neon-ld64-x16.c", + "src/qs8-vmulc/gen/minmax-rndnu-neon-ld128-x16.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-dwconv/gen/up8x9-minmax-fp32-neon-mul16.c", + "src/qu8-dwconv/gen/up8x9-minmax-rndnu-neon-mul8.c", + "src/qu8-dwconv/gen/up8x9-minmax-rndnu-neon-mul16.c", + "src/qu8-dwconv/gen/up8x25-minmax-fp32-neon-mul16.c", + "src/qu8-dwconv/gen/up8x25-minmax-rndnu-neon-mul8.c", + "src/qu8-dwconv/gen/up8x25-minmax-rndnu-neon-mul16.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-neon-mul16.c", + "src/qu8-dwconv/gen/up16x9-minmax-rndnu-neon-mul8.c", + "src/qu8-dwconv/gen/up16x9-minmax-rndnu-neon-mul16.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-neon-mul16.c", + "src/qu8-dwconv/gen/up16x25-minmax-rndnu-neon-mul8.c", + "src/qu8-dwconv/gen/up16x25-minmax-rndnu-neon-mul16.c", + "src/qu8-dwconv/gen/up24x9-minmax-fp32-neon-mul16.c", + "src/qu8-dwconv/gen/up24x9-minmax-rndnu-neon-mul8.c", + "src/qu8-dwconv/gen/up24x9-minmax-rndnu-neon-mul16.c", + "src/qu8-dwconv/gen/up24x25-minmax-fp32-neon-mul16.c", + "src/qu8-dwconv/gen/up24x25-minmax-rndnu-neon-mul8.c", + "src/qu8-dwconv/gen/up24x25-minmax-rndnu-neon-mul16.c", + "src/qu8-dwconv/gen/up32x9-minmax-fp32-neon-mul16.c", + "src/qu8-dwconv/gen/up32x9-minmax-rndnu-neon-mul8.c", + "src/qu8-dwconv/gen/up32x9-minmax-rndnu-neon-mul16.c", + "src/qu8-dwconv/gen/up32x25-minmax-fp32-neon-mul16.c", + "src/qu8-dwconv/gen/up32x25-minmax-rndnu-neon-mul8.c", + "src/qu8-dwconv/gen/up32x25-minmax-rndnu-neon-mul16.c", + "src/qu8-f32-vcvt/gen/vcvt-neon-x8.c", + "src/qu8-f32-vcvt/gen/vcvt-neon-x16.c", + "src/qu8-f32-vcvt/gen/vcvt-neon-x24.c", + "src/qu8-f32-vcvt/gen/vcvt-neon-x32.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neon-c8.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neon-c16.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neon-c24.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neon-c32.c", + "src/qu8-gavgpool/gen/7p7x-minmax-rndnu-neon-c8.c", + "src/qu8-gavgpool/gen/7p7x-minmax-rndnu-neon-c16.c", + "src/qu8-gavgpool/gen/7p7x-minmax-rndnu-neon-c24.c", + "src/qu8-gavgpool/gen/7p7x-minmax-rndnu-neon-c32.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-neon-c8.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-neon-c16.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-neon-c24.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-neon-c32.c", + "src/qu8-gavgpool/gen/7x-minmax-rndnu-neon-c8.c", + "src/qu8-gavgpool/gen/7x-minmax-rndnu-neon-c16.c", + "src/qu8-gavgpool/gen/7x-minmax-rndnu-neon-c24.c", + "src/qu8-gavgpool/gen/7x-minmax-rndnu-neon-c32.c", + "src/qu8-gemm/gen/1x8-minmax-fp32-neon-mlal-lane.c", + "src/qu8-gemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-gemm/gen/1x16-minmax-fp32-neon-mlal-lane.c", + "src/qu8-gemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-gemm/gen/2x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-gemm/gen/2x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-gemm/gen/3x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-gemm/gen/3x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-gemm/gen/4x8-minmax-fp32-neon-mlal-lane.c", + "src/qu8-gemm/gen/4x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-gemm/gen/4x16-minmax-fp32-neon-mlal-lane.c", + "src/qu8-gemm/gen/4x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-gemm/gen/6x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-gemm/gen/6x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/1x8-minmax-fp32-neon-mlal-lane.c", + "src/qu8-igemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/1x16-minmax-fp32-neon-mlal-lane.c", + "src/qu8-igemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/2x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/2x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/3x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/3x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/4x8-minmax-fp32-neon-mlal-lane.c", + "src/qu8-igemm/gen/4x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/4x16-minmax-fp32-neon-mlal-lane.c", + "src/qu8-igemm/gen/4x16-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/6x8-minmax-rndnu-neon-mlal-lane.c", + "src/qu8-igemm/gen/6x16-minmax-rndnu-neon-mlal-lane.c", "src/qu8-requantization/fp32-neon.c", - "src/qu8-requantization/precise-neon.c", - "src/qu8-requantization/q31-neon.c", - "src/qu8-vadd/minmax-neon.c", - "src/u8-clamp/neon-x64.c", + "src/qu8-requantization/gemmlowp-neon.c", + "src/qu8-requantization/rndna-neon.c", + "src/qu8-vadd/gen/minmax-neon-ld64-x8.c", + "src/qu8-vadd/gen/minmax-neon-ld64-x16.c", + "src/qu8-vadd/gen/minmax-neon-ld64-x32.c", + "src/qu8-vadd/gen/minmax-neon-ld128-x16.c", + "src/qu8-vaddc/gen/minmax-neon-ld64-x8.c", + "src/qu8-vaddc/gen/minmax-neon-ld64-x16.c", + "src/qu8-vaddc/gen/minmax-neon-ld64-x32.c", + "src/qu8-vaddc/gen/minmax-neon-ld128-x16.c", + "src/qu8-vmul/gen/minmax-fp32-neon-ld64-x8.c", + "src/qu8-vmul/gen/minmax-fp32-neon-ld64-x16.c", + "src/qu8-vmul/gen/minmax-fp32-neon-ld128-x16.c", + "src/qu8-vmul/gen/minmax-rndnu-neon-ld64-x8.c", + "src/qu8-vmul/gen/minmax-rndnu-neon-ld64-x16.c", + "src/qu8-vmul/gen/minmax-rndnu-neon-ld128-x16.c", + "src/qu8-vmulc/gen/minmax-fp32-neon-ld64-x8.c", + "src/qu8-vmulc/gen/minmax-fp32-neon-ld64-x16.c", + "src/qu8-vmulc/gen/minmax-fp32-neon-ld128-x16.c", + "src/qu8-vmulc/gen/minmax-rndnu-neon-ld64-x8.c", + "src/qu8-vmulc/gen/minmax-rndnu-neon-ld64-x16.c", + "src/qu8-vmulc/gen/minmax-rndnu-neon-ld128-x16.c", + "src/s8-ibilinear/gen/neon-c8.c", + "src/s8-ibilinear/gen/neon-c16.c", + "src/s8-maxpool/9p8x-minmax-neon-c16.c", + "src/s8-vclamp/neon-x64.c", + "src/u8-ibilinear/gen/neon-c8.c", + "src/u8-ibilinear/gen/neon-c16.c", "src/u8-maxpool/9p8x-minmax-neon-c16.c", "src/u8-rmax/neon.c", + "src/u8-vclamp/neon-x64.c", + "src/x8-transpose/gen/16x16-reuse-dec-zip-neon.c", + "src/x8-transpose/gen/16x16-reuse-mov-zip-neon.c", + "src/x8-transpose/gen/16x16-reuse-switch-zip-neon.c", "src/x8-zip/x2-neon.c", "src/x8-zip/x3-neon.c", "src/x8-zip/x4-neon.c", "src/x8-zip/xm-neon.c", - "src/x32-fill/neon.c", + "src/x16-transpose/gen/8x8-multi-dec-zip-neon.c", + "src/x16-transpose/gen/8x8-multi-mov-zip-neon.c", + "src/x16-transpose/gen/8x8-multi-switch-zip-neon.c", + "src/x16-transpose/gen/8x8-reuse-dec-zip-neon.c", + "src/x16-transpose/gen/8x8-reuse-mov-zip-neon.c", + "src/x16-transpose/gen/8x8-reuse-multi-zip-neon.c", + "src/x16-transpose/gen/8x8-reuse-switch-zip-neon.c", "src/x32-packx/x4-neon-st4.c", - "src/x32-pad/neon.c", + "src/x32-transpose/gen/4x4-multi-dec-zip-neon.c", + "src/x32-transpose/gen/4x4-multi-mov-zip-neon.c", + "src/x32-transpose/gen/4x4-multi-multi-zip-neon.c", + "src/x32-transpose/gen/4x4-multi-switch-zip-neon.c", + "src/x32-transpose/gen/4x4-reuse-dec-zip-neon.c", + "src/x32-transpose/gen/4x4-reuse-mov-zip-neon.c", + "src/x32-transpose/gen/4x4-reuse-multi-zip-neon.c", + "src/x32-transpose/gen/4x4-reuse-switch-zip-neon.c", "src/x32-unpool/neon.c", "src/x32-zip/x2-neon.c", "src/x32-zip/x3-neon.c", "src/x32-zip/x4-neon.c", "src/x32-zip/xm-neon.c", + "src/xx-fill/neon-x64.c", + "src/xx-pad/neon.c", ] -NEONFMA_UKERNELS = [ +PROD_NEONFP16_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-neonfp16-x16.c", + "src/f32-f16-vcvt/gen/vcvt-neonfp16-x16.c", +] + +ALL_NEONFP16_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-neonfp16-x8.c", + "src/f16-f32-vcvt/gen/vcvt-neonfp16-x16.c", + "src/f32-f16-vcvt/gen/vcvt-neonfp16-x8.c", + "src/f32-f16-vcvt/gen/vcvt-neonfp16-x16.c", + "src/math/cvt-f16-f32-neonfp16.c", + "src/math/cvt-f32-f16-neonfp16.c", +] + +PROD_NEONFMA_MICROKERNEL_SRCS = [ + "src/f32-dwconv/gen/up8x3-minmax-neonfma.c", + "src/f32-dwconv/gen/up8x4-minmax-neonfma.c", + "src/f32-dwconv/gen/up8x9-minmax-neonfma.c", + "src/f32-dwconv/gen/up8x25-minmax-neonfma-acc2.c", + "src/f32-gemm/gen/1x8s4-minmax-neonfma.c", + "src/f32-gemm/gen/6x8s4-minmax-neonfma.c", + "src/f32-ibilinear-chw/gen/neonfma-p8.c", + "src/f32-ibilinear/gen/neonfma-c8.c", + "src/f32-igemm/gen/1x8s4-minmax-neonfma.c", + "src/f32-igemm/gen/6x8s4-minmax-neonfma.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x16.c", + "src/f32-spmm/gen/32x1-minmax-neonfma-pipelined.c", + "src/f32-velu/gen/velu-neonfma-rr1-lut16-p3-x16.c", + "src/f32-velu/gen/velu-neonfma-rr1-p6-x8.c", + "src/f32-vmulcaddc/gen/c4-minmax-neonfma-2x.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x16.c", +] + +ALL_NEONFMA_MICROKERNEL_SRCS = [ + "src/f32-dwconv/gen/up4x3-minmax-neonfma-acc2.c", + "src/f32-dwconv/gen/up4x3-minmax-neonfma.c", "src/f32-dwconv/gen/up4x4-minmax-neonfma-acc2.c", "src/f32-dwconv/gen/up4x4-minmax-neonfma.c", "src/f32-dwconv/gen/up4x9-minmax-neonfma-acc2.c", "src/f32-dwconv/gen/up4x9-minmax-neonfma.c", "src/f32-dwconv/gen/up4x25-minmax-neonfma-acc2.c", "src/f32-dwconv/gen/up4x25-minmax-neonfma.c", + "src/f32-dwconv/gen/up8x3-minmax-neonfma-acc2.c", + "src/f32-dwconv/gen/up8x3-minmax-neonfma.c", "src/f32-dwconv/gen/up8x4-minmax-neonfma-acc2.c", "src/f32-dwconv/gen/up8x4-minmax-neonfma.c", "src/f32-dwconv/gen/up8x9-minmax-neonfma-acc2.c", "src/f32-dwconv/gen/up8x9-minmax-neonfma.c", "src/f32-dwconv/gen/up8x25-minmax-neonfma-acc2.c", "src/f32-dwconv/gen/up8x25-minmax-neonfma.c", + "src/f32-dwconv/gen/up16x3-minmax-neon-acc2.c", + "src/f32-dwconv/gen/up16x3-minmax-neon.c", + "src/f32-dwconv/gen/up16x3-minmax-neonfma-acc2.c", + "src/f32-dwconv/gen/up16x3-minmax-neonfma.c", + "src/f32-dwconv/gen/up16x4-minmax-neon-acc2.c", + "src/f32-dwconv/gen/up16x4-minmax-neon.c", + "src/f32-dwconv/gen/up16x4-minmax-neonfma-acc2.c", + "src/f32-dwconv/gen/up16x4-minmax-neonfma.c", + "src/f32-dwconv/gen/up16x9-minmax-neon-acc2.c", + "src/f32-dwconv/gen/up16x9-minmax-neon.c", + "src/f32-dwconv/gen/up16x9-minmax-neonfma-acc2.c", + "src/f32-dwconv/gen/up16x9-minmax-neonfma.c", + "src/f32-dwconv/gen/up16x25-minmax-neon-acc2.c", + "src/f32-dwconv/gen/up16x25-minmax-neon.c", + "src/f32-dwconv/gen/up16x25-minmax-neonfma-acc2.c", + "src/f32-dwconv/gen/up16x25-minmax-neonfma.c", "src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-dup-ld64.c", "src/f32-gemm/gen-inc/1x8s4inc-minmax-neonfma.c", "src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld64.c", @@ -1002,84 +3856,30 @@ NEONFMA_UKERNELS = [ "src/f32-igemm/gen/8x8s4-minmax-neonfma.c", "src/f32-ppmm/gen/4x8-minmax-neonfma.c", "src/f32-ppmm/gen/8x8-minmax-neonfma.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x4.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x8-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x8.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x12-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x12-acc3.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x12.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x16-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x16-acc4.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x16.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x20-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x20-acc5.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-lut64-p2-x20.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x4.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x8-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x8.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x12-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x12-acc3.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x12.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x16-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x16-acc4.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x16.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x20-acc2.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x20-acc5.c", - "src/f32-raddstoreexpminusmax/gen/neonfma-p5-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr1recps1fma-x4.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr1recps1fma-x8.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr1recps1fma-x12.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr1recps1fma-x16.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr1recps1fma-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr1recps1fma-x24.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2fma-x4.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2fma-x8.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2fma-x12.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2fma-x16.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2fma-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2fma-x24.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2recps-x4.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2recps-x8.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2recps-x12.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2recps-x16.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2recps-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-nr2recps-x24.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr1recps1fma-x4.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr1recps1fma-x8.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr1recps1fma-x12.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr1recps1fma-x16.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr1recps1fma-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr1recps1fma-x24.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2fma-x4.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2fma-x8.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2fma-x12.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2fma-x16.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2fma-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2fma-x24.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x4.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x8.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x12.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x16.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-nr2recps-x24.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr1recps1fma-x4.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr1recps1fma-x8.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr1recps1fma-x12.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr1recps1fma-x16.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr1recps1fma-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr1recps1fma-x24.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr2fma-x4.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr2fma-x8.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr2fma-x12.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr2fma-x16.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr2fma-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr2fma-x24.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr2recps-x4.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr2recps-x8.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr2recps-x12.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr2recps-x16.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr2recps-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-nr2recps-x24.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x4.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x8-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x8.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x12-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x12-acc3.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x12.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x16-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x16-acc4.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x16.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x20-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x20-acc5.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x20.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x4.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x8-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x8.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x12-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x12-acc3.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x12.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x16-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x16-acc4.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x16.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x20-acc2.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x20-acc5.c", + "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x20.c", "src/f32-spmm/gen/4x1-minmax-neonfma-pipelined.c", "src/f32-spmm/gen/4x1-minmax-neonfma-x2.c", "src/f32-spmm/gen/4x1-minmax-neonfma.c", @@ -1107,6 +3907,60 @@ NEONFMA_UKERNELS = [ "src/f32-velu/gen/velu-neonfma-rr1-p6-x24.c", "src/f32-vmulcaddc/gen/c4-minmax-neonfma-2x.c", "src/f32-vmulcaddc/gen/c8-minmax-neonfma-2x.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr1recps1fma-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr1recps1fma-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr1recps1fma-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr1recps1fma-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr1recps1fma-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr1recps1fma-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2fma-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2fma-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2fma-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2fma-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2fma-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2fma-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2fma-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2fma-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2fma-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2fma-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2fma-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2fma-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2recps-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2recps-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2recps-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2recps-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2recps-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2recps-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr1recps1fma-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr1recps1fma-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr1recps1fma-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr1recps1fma-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr1recps1fma-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr1recps1fma-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2fma-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2fma-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2fma-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2fma-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2fma-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2fma-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2recps-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2recps-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2recps-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2recps-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2recps-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2recps-x24.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", @@ -1159,7 +4013,28 @@ NEONFMA_UKERNELS = [ "src/math/sqrt-neonfma-nr3fma.c", ] -AARCH64_NEONFMA_UKERNELS = [ +PROD_AARCH64_NEON_MICROKERNEL_SRCS = [ + "src/f32-conv-hwc2chw/3x3s2p1c3x4-neonfma-2x2.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neonfma-3x4.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neonfma-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-4x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neonfma-1x4-acc2.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/6x8-minmax-neonfma-lane-ld64.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/6x8-minmax-neonfma-lane-ld64.c", + "src/f32-spmm/gen/32x2-minmax-neonfma.c", + "src/f32-spmm/gen/32x4-minmax-neonfma.c", + "src/f32-vbinary/gen/vdiv-minmax-neon-x8.c", + "src/f32-vbinary/gen/vdivc-minmax-neon-x8.c", + "src/f32-vbinary/gen/vrdivc-minmax-neon-x8.c", + "src/f32-vsqrt/gen/neon-sqrt-x4.c", + "src/x8-lut/gen/lut-neon-tbx128x4-x64.c", +] + +ALL_AARCH64_NEON_MICROKERNEL_SRCS = [ "src/f32-conv-hwc/gen/3x3s2p0p1c3x4-neonfma-2x1.c", "src/f32-conv-hwc/gen/3x3s2p0p1c3x4-neonfma-2x2.c", "src/f32-conv-hwc/gen/3x3s2p0p1c3x8-neonfma-2x1.c", @@ -1230,24 +4105,6 @@ AARCH64_NEONFMA_UKERNELS = [ "src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld128.c", "src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld64.c", "src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld128.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-div-x4.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-div-x8.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-div-x12.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-div-x16.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-div-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut64-p2-div-x24.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-div-x4.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-div-x8.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-div-x12.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-div-x16.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-div-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-lut2048-p1-div-x24.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", - "src/f32-sigmoid/gen/neonfma-rr1-p5-div-x16.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-div-x20.c", - "src/f32-sigmoid/gen/neonfma-rr1-p5-div-x24.c", "src/f32-spmm/gen/4x2-minmax-neonfma.c", "src/f32-spmm/gen/4x4-minmax-neonfma.c", "src/f32-spmm/gen/8x2-minmax-neonfma.c", @@ -1264,6 +4121,24 @@ AARCH64_NEONFMA_UKERNELS = [ "src/f32-vbinary/gen/vdivc-minmax-neon-x8.c", "src/f32-vbinary/gen/vrdivc-minmax-neon-x4.c", "src/f32-vbinary/gen/vrdivc-minmax-neon-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-div-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-div-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-div-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-div-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-div-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-div-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-div-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-div-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-div-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-div-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-div-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-div-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-div-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-div-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-div-x24.c", "src/f32-vsqrt/gen/neon-sqrt-x4.c", "src/f32-vsqrt/gen/neon-sqrt-x8.c", "src/math/sigmoid-neonfma-rr1-lut64-p2-div.c", @@ -1272,9 +4147,50 @@ AARCH64_NEONFMA_UKERNELS = [ "src/math/sigmoid-neonfma-rr2-lut64-p2-div.c", "src/math/sigmoid-neonfma-rr2-lut2048-p1-div.c", "src/math/sigmoid-neonfma-rr2-p5-div.c", + "src/x8-lut/gen/lut-neon-tbx128x4-x16.c", + "src/x8-lut/gen/lut-neon-tbx128x4-x32.c", + "src/x8-lut/gen/lut-neon-tbx128x4-x48.c", + "src/x8-lut/gen/lut-neon-tbx128x4-x64.c", + "src/x32-transpose/4x4-aarch64-tbl.c", ] -NEONV8_UKERNELS = [ +PROD_NEONV8_MICROKERNEL_SRCS = [ + "src/f32-qs8-vcvt/gen/vcvt-neonv8-x32.c", + "src/f32-qu8-vcvt/gen/vcvt-neonv8-x32.c", + "src/f32-vrnd/gen/vrndd-neonv8-x8.c", + "src/f32-vrnd/gen/vrndne-neonv8-x8.c", + "src/f32-vrnd/gen/vrndu-neonv8-x8.c", + "src/f32-vrnd/gen/vrndz-neonv8-x8.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-neonv8-mla8-ld64.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-neonv8-mla8-ld64.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-neonv8-mla8-ld64.c", + "src/qc8-gemm/gen/1x8-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-gemm/gen/1x8-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-gemm/gen/1x8c2s4-minmax-fp32-neonv8-mlal.c", + "src/qc8-gemm/gen/1x8c8-minmax-fp32-neonv8-mlal.c", + "src/qc8-gemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-gemm/gen/2x8c2s4-minmax-fp32-neonv8-mlal.c", + "src/qc8-gemm/gen/2x8c8-minmax-fp32-neonv8-mlal.c", + "src/qc8-gemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/1x8-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-igemm/gen/1x8-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/1x8c2s4-minmax-fp32-neonv8-mlal.c", + "src/qc8-igemm/gen/1x8c8-minmax-fp32-neonv8-mlal.c", + "src/qc8-igemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/2x8c2s4-minmax-fp32-neonv8-mlal.c", + "src/qc8-igemm/gen/2x8c8-minmax-fp32-neonv8-mlal.c", + "src/qc8-igemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c", +] + +ALL_NEONV8_MICROKERNEL_SRCS = [ + "src/f32-qs8-vcvt/gen/vcvt-neonv8-x8.c", + "src/f32-qs8-vcvt/gen/vcvt-neonv8-x16.c", + "src/f32-qs8-vcvt/gen/vcvt-neonv8-x24.c", + "src/f32-qs8-vcvt/gen/vcvt-neonv8-x32.c", + "src/f32-qu8-vcvt/gen/vcvt-neonv8-x8.c", + "src/f32-qu8-vcvt/gen/vcvt-neonv8-x16.c", + "src/f32-qu8-vcvt/gen/vcvt-neonv8-x24.c", + "src/f32-qu8-vcvt/gen/vcvt-neonv8-x32.c", "src/f32-vrnd/gen/vrndd-neonv8-x4.c", "src/f32-vrnd/gen/vrndd-neonv8-x8.c", "src/f32-vrnd/gen/vrndne-neonv8-x4.c", @@ -1283,15 +4199,227 @@ NEONV8_UKERNELS = [ "src/f32-vrnd/gen/vrndu-neonv8-x8.c", "src/f32-vrnd/gen/vrndz-neonv8-x4.c", "src/f32-vrnd/gen/vrndz-neonv8-x8.c", + "src/math/cvt-f32-qs8-neonv8.c", + "src/math/cvt-f32-qu8-neonv8.c", "src/math/roundd-neonv8.c", "src/math/roundne-neonv8.c", "src/math/roundu-neonv8.c", "src/math/roundz-neonv8.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-neonv8-mla8-ld64.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-neonv8-mul8-ld64.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-neonv8-mul16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-neonv8-mla8-ld64.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-neonv8-mul8-ld64.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-neonv8-mul16.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-neonv8-mla8-ld64.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-neonv8-mla8-ld128.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-neonv8-mul8-ld64.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-neonv8-mul8-ld128.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-neonv8-mul16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-neonv8-mla8-ld64.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-neonv8-mla8-ld128.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-neonv8-mul8-ld64.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-neonv8-mul8-ld128.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-neonv8-mul16.c", + "src/qc8-dwconv/gen/up24x9-minmax-fp32-neonv8-mul16.c", + "src/qc8-dwconv/gen/up24x25-minmax-fp32-neonv8-mul16.c", + "src/qc8-dwconv/gen/up32x9-minmax-fp32-neonv8-mul16.c", + "src/qc8-dwconv/gen/up32x25-minmax-fp32-neonv8-mul16.c", + "src/qc8-gemm/gen/1x8-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-gemm/gen/1x8-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-dup.c", + "src/qc8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qc8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qc8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld4r.c", + "src/qc8-gemm/gen/1x8c2s4-minmax-fp32-neonv8-mlal.c", + "src/qc8-gemm/gen/1x8c4-minmax-fp32-neonv8-mlal-dup.c", + "src/qc8-gemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qc8-gemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qc8-gemm/gen/1x8c4s2-minmax-fp32-neonv8-mlal.c", + "src/qc8-gemm/gen/1x8c8-minmax-fp32-neonv8-mlal.c", + "src/qc8-gemm/gen/1x16-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-gemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-gemm/gen/2x8-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-gemm/gen/2x8-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-dup.c", + "src/qc8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qc8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qc8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld4r.c", + "src/qc8-gemm/gen/2x8c2s4-minmax-fp32-neonv8-mlal.c", + "src/qc8-gemm/gen/2x8c4-minmax-fp32-neonv8-mlal-dup.c", + "src/qc8-gemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qc8-gemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qc8-gemm/gen/2x8c4s2-minmax-fp32-neonv8-mlal.c", + "src/qc8-gemm/gen/2x8c8-minmax-fp32-neonv8-mlal.c", + "src/qc8-gemm/gen/2x16-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-gemm/gen/2x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-gemm/gen/3x8-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-gemm/gen/3x8-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-gemm/gen/3x16-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-gemm/gen/3x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-gemm/gen/4x8-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-gemm/gen/4x8-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-gemm/gen/4x16-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-gemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-gemm/gen/6x8-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-gemm/gen/6x8-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-gemm/gen/6x16-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-gemm/gen/6x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/1x8-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-igemm/gen/1x8-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-dup.c", + "src/qc8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qc8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qc8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld4r.c", + "src/qc8-igemm/gen/1x8c2s4-minmax-fp32-neonv8-mlal.c", + "src/qc8-igemm/gen/1x8c4-minmax-fp32-neonv8-mlal-dup.c", + "src/qc8-igemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qc8-igemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qc8-igemm/gen/1x8c4s2-minmax-fp32-neonv8-mlal.c", + "src/qc8-igemm/gen/1x8c8-minmax-fp32-neonv8-mlal.c", + "src/qc8-igemm/gen/1x16-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-igemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/2x8-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-igemm/gen/2x8-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-dup.c", + "src/qc8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qc8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qc8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld4r.c", + "src/qc8-igemm/gen/2x8c2s4-minmax-fp32-neonv8-mlal.c", + "src/qc8-igemm/gen/2x8c4-minmax-fp32-neonv8-mlal-dup.c", + "src/qc8-igemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qc8-igemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qc8-igemm/gen/2x8c4s2-minmax-fp32-neonv8-mlal.c", + "src/qc8-igemm/gen/2x8c8-minmax-fp32-neonv8-mlal.c", + "src/qc8-igemm/gen/2x16-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-igemm/gen/2x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/3x8-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-igemm/gen/3x8-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/3x16-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-igemm/gen/3x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/4x8-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-igemm/gen/4x8-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/4x16-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-igemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/6x8-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-igemm/gen/6x8-minmax-fp32-neonv8-mlal-lane.c", + "src/qc8-igemm/gen/6x16-minmax-fp32-neonv8-mlal-lane-prfm.c", + "src/qc8-igemm/gen/6x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-neonv8-mul16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-neonv8-mul16.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-neonv8-mul16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-neonv8-mul16.c", + "src/qs8-dwconv/gen/up24x9-minmax-fp32-neonv8-mul16.c", + "src/qs8-dwconv/gen/up24x25-minmax-fp32-neonv8-mul16.c", + "src/qs8-dwconv/gen/up32x9-minmax-fp32-neonv8-mul16.c", + "src/qs8-dwconv/gen/up32x25-minmax-fp32-neonv8-mul16.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c8.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c16.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c24.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c32.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-neonv8-c8.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-neonv8-c16.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-neonv8-c24.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-neonv8-c32.c", + "src/qs8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-dup.c", + "src/qs8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qs8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qs8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld4r.c", + "src/qs8-gemm/gen/1x8c2s4-minmax-fp32-neonv8-mlal.c", + "src/qs8-gemm/gen/1x8c4-minmax-fp32-neonv8-mlal-dup.c", + "src/qs8-gemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qs8-gemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qs8-gemm/gen/1x8c4s2-minmax-fp32-neonv8-mlal.c", + "src/qs8-gemm/gen/1x8c8-minmax-fp32-neonv8-mlal.c", + "src/qs8-gemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qs8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-dup.c", + "src/qs8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qs8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qs8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld4r.c", + "src/qs8-gemm/gen/2x8c2s4-minmax-fp32-neonv8-mlal.c", + "src/qs8-gemm/gen/2x8c4-minmax-fp32-neonv8-mlal-dup.c", + "src/qs8-gemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qs8-gemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qs8-gemm/gen/2x8c4s2-minmax-fp32-neonv8-mlal.c", + "src/qs8-gemm/gen/2x8c8-minmax-fp32-neonv8-mlal.c", + "src/qs8-gemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qs8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-dup.c", + "src/qs8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qs8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qs8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld4r.c", + "src/qs8-igemm/gen/1x8c2s4-minmax-fp32-neonv8-mlal.c", + "src/qs8-igemm/gen/1x8c4-minmax-fp32-neonv8-mlal-dup.c", + "src/qs8-igemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qs8-igemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qs8-igemm/gen/1x8c4s2-minmax-fp32-neonv8-mlal.c", + "src/qs8-igemm/gen/1x8c8-minmax-fp32-neonv8-mlal.c", + "src/qs8-igemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qs8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-dup.c", + "src/qs8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qs8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qs8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld4r.c", + "src/qs8-igemm/gen/2x8c2s4-minmax-fp32-neonv8-mlal.c", + "src/qs8-igemm/gen/2x8c4-minmax-fp32-neonv8-mlal-dup.c", + "src/qs8-igemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld1r.c", + "src/qs8-igemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld2r.c", + "src/qs8-igemm/gen/2x8c4s2-minmax-fp32-neonv8-mlal.c", + "src/qs8-igemm/gen/2x8c8-minmax-fp32-neonv8-mlal.c", + "src/qs8-igemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qs8-vmul/gen/minmax-fp32-neonv8-ld64-x8.c", + "src/qs8-vmul/gen/minmax-fp32-neonv8-ld64-x16.c", + "src/qs8-vmul/gen/minmax-fp32-neonv8-ld128-x16.c", + "src/qs8-vmulc/gen/minmax-fp32-neonv8-ld64-x8.c", + "src/qs8-vmulc/gen/minmax-fp32-neonv8-ld64-x16.c", + "src/qs8-vmulc/gen/minmax-fp32-neonv8-ld128-x16.c", + "src/qu8-dwconv/gen/up8x9-minmax-fp32-neonv8-mul16.c", + "src/qu8-dwconv/gen/up8x25-minmax-fp32-neonv8-mul16.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-neonv8-mul16.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-neonv8-mul16.c", + "src/qu8-dwconv/gen/up24x9-minmax-fp32-neonv8-mul16.c", + "src/qu8-dwconv/gen/up24x25-minmax-fp32-neonv8-mul16.c", + "src/qu8-dwconv/gen/up32x9-minmax-fp32-neonv8-mul16.c", + "src/qu8-dwconv/gen/up32x25-minmax-fp32-neonv8-mul16.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c8.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c16.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c24.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c32.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-neonv8-c8.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-neonv8-c16.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-neonv8-c24.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-neonv8-c32.c", + "src/qu8-gemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qu8-gemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qu8-igemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qu8-igemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c", + "src/qu8-vmul/gen/minmax-fp32-neonv8-ld64-x8.c", + "src/qu8-vmul/gen/minmax-fp32-neonv8-ld64-x16.c", + "src/qu8-vmul/gen/minmax-fp32-neonv8-ld128-x16.c", + "src/qu8-vmulc/gen/minmax-fp32-neonv8-ld64-x8.c", + "src/qu8-vmulc/gen/minmax-fp32-neonv8-ld64-x16.c", + "src/qu8-vmulc/gen/minmax-fp32-neonv8-ld128-x16.c", +] + +PROD_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS = [ + "src/f16-dwconv/gen/up8x25-minmax-neonfp16arith-acc2.c", + "src/f16-dwconv/gen/up16x4-minmax-neonfp16arith.c", + "src/f16-dwconv/gen/up16x9-minmax-neonfp16arith.c", + "src/f16-gavgpool/gen/7p7x-minmax-neonfp16arith-c8.c", + "src/f16-gavgpool/gen/7x-minmax-neonfp16arith-c8.c", + "src/f16-gemm/gen/1x16-minmax-neonfp16arith-ld64.c", + "src/f16-gemm/gen/6x16-minmax-neonfp16arith-ld64.c", + "src/f16-igemm/gen/1x16-minmax-neonfp16arith-ld64.c", + "src/f16-igemm/gen/6x16-minmax-neonfp16arith-ld64.c", + "src/f16-maxpool/9p8x-minmax-neonfp16arith-c8.c", + "src/f16-prelu/gen/neonfp16arith-2x16.c", + "src/f16-vbinary/gen/vadd-minmax-neonfp16arith-x16.c", + "src/f16-vbinary/gen/vaddc-minmax-neonfp16arith-x16.c", + "src/f16-vbinary/gen/vmul-minmax-neonfp16arith-x16.c", + "src/f16-vbinary/gen/vmulc-minmax-neonfp16arith-x16.c", + "src/f16-vhswish/gen/vhswish-neonfp16arith-x16.c", + "src/f16-vmulcaddc/gen/c8-minmax-neonfp16arith-2x.c", ] -AARCH64_NEONFP16ARITH_UKERNELS = [ - "src/f16-clamp/gen/neonfp16arith-x8.c", - "src/f16-clamp/gen/neonfp16arith-x16.c", +ALL_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS = [ "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", @@ -1304,8 +4432,20 @@ AARCH64_NEONFP16ARITH_UKERNELS = [ "src/f16-dwconv/gen/up16x9-minmax-neonfp16arith.c", "src/f16-dwconv/gen/up16x25-minmax-neonfp16arith-acc2.c", "src/f16-dwconv/gen/up16x25-minmax-neonfp16arith.c", - "src/f16-gavgpool/7p7x-minmax-neonfp16arith-c8.c", - "src/f16-gavgpool/7x-minmax-neonfp16arith-c8.c", + "src/f16-dwconv/gen/up32x4-minmax-neonfp16arith-acc2.c", + "src/f16-dwconv/gen/up32x4-minmax-neonfp16arith.c", + "src/f16-dwconv/gen/up32x9-minmax-neonfp16arith-acc2.c", + "src/f16-dwconv/gen/up32x9-minmax-neonfp16arith.c", + "src/f16-dwconv/gen/up32x25-minmax-neonfp16arith-acc2.c", + "src/f16-dwconv/gen/up32x25-minmax-neonfp16arith.c", + "src/f16-gavgpool/gen/7p7x-minmax-neonfp16arith-c8.c", + "src/f16-gavgpool/gen/7p7x-minmax-neonfp16arith-c16.c", + "src/f16-gavgpool/gen/7p7x-minmax-neonfp16arith-c24.c", + "src/f16-gavgpool/gen/7p7x-minmax-neonfp16arith-c32.c", + "src/f16-gavgpool/gen/7x-minmax-neonfp16arith-c8.c", + "src/f16-gavgpool/gen/7x-minmax-neonfp16arith-c16.c", + "src/f16-gavgpool/gen/7x-minmax-neonfp16arith-c24.c", + "src/f16-gavgpool/gen/7x-minmax-neonfp16arith-c32.c", "src/f16-gemm/gen-inc/1x8inc-minmax-neonfp16arith-ld64.c", "src/f16-gemm/gen-inc/1x16inc-minmax-neonfp16arith-ld64.c", "src/f16-gemm/gen-inc/4x8inc-minmax-neonfp16arith-ld64.c", @@ -1322,8 +4462,6 @@ AARCH64_NEONFP16ARITH_UKERNELS = [ "src/f16-gemm/gen/6x16-minmax-neonfp16arith-ld64.c", "src/f16-gemm/gen/8x8-minmax-neonfp16arith-ld64.c", "src/f16-gemm/gen/8x16-minmax-neonfp16arith-ld64.c", - "src/f16-hswish/gen/hswish-neonfp16arith-x8.c", - "src/f16-hswish/gen/hswish-neonfp16arith-x16.c", "src/f16-igemm/gen/1x8-minmax-neonfp16arith-ld64.c", "src/f16-igemm/gen/1x16-minmax-neonfp16arith-ld64.c", "src/f16-igemm/gen/4x8-minmax-neonfp16arith-ld64.c", @@ -1332,10 +4470,9 @@ AARCH64_NEONFP16ARITH_UKERNELS = [ "src/f16-igemm/gen/6x16-minmax-neonfp16arith-ld64.c", "src/f16-igemm/gen/8x8-minmax-neonfp16arith-ld64.c", "src/f16-igemm/gen/8x16-minmax-neonfp16arith-ld64.c", + "src/f16-maxpool/9p8x-minmax-neonfp16arith-c8.c", "src/f16-prelu/gen/neonfp16arith-2x8.c", "src/f16-prelu/gen/neonfp16arith-2x16.c", - "src/f16-relu/gen/neonfp16arith-x8.c", - "src/f16-relu/gen/neonfp16arith-x16.c", "src/f16-spmm/gen/8x1-minmax-neonfp16arith-x2.c", "src/f16-spmm/gen/8x1-minmax-neonfp16arith.c", "src/f16-spmm/gen/16x1-minmax-neonfp16arith-x2.c", @@ -1372,42 +4509,188 @@ AARCH64_NEONFP16ARITH_UKERNELS = [ "src/f16-vbinary/gen/vsub-minmax-neonfp16arith-x16.c", "src/f16-vbinary/gen/vsubc-minmax-neonfp16arith-x8.c", "src/f16-vbinary/gen/vsubc-minmax-neonfp16arith-x16.c", + "src/f16-vclamp/gen/vclamp-neonfp16arith-x8.c", + "src/f16-vclamp/gen/vclamp-neonfp16arith-x16.c", + "src/f16-vhswish/gen/vhswish-neonfp16arith-x8.c", + "src/f16-vhswish/gen/vhswish-neonfp16arith-x16.c", "src/f16-vmulcaddc/gen/c8-minmax-neonfp16arith-2x.c", "src/f16-vmulcaddc/gen/c16-minmax-neonfp16arith-2x.c", ] -NEONDOT_UKERNELS = [ - "src/qs8-gemm/gen/1x8c4-minmax-neondot.c", - "src/qs8-gemm/gen/1x16c4-minmax-neondot.c", - "src/qs8-gemm/gen/4x8c4-minmax-neondot.c", - "src/qs8-gemm/gen/4x16c4-minmax-neondot.c", - "src/qs8-gemm/gen/6x8c4-minmax-neondot.c", - "src/qs8-gemm/gen/6x16c4-minmax-neondot.c", - "src/qs8-gemm/gen/8x8c4-minmax-neondot.c", - "src/qs8-gemm/gen/8x16c4-minmax-neondot.c", - "src/qs8-igemm/gen/1x8c4-minmax-neondot.c", - "src/qs8-igemm/gen/1x16c4-minmax-neondot.c", - "src/qs8-igemm/gen/4x8c4-minmax-neondot.c", - "src/qs8-igemm/gen/4x16c4-minmax-neondot.c", - "src/qs8-igemm/gen/6x8c4-minmax-neondot.c", - "src/qs8-igemm/gen/6x16c4-minmax-neondot.c", - "src/qs8-igemm/gen/8x8c4-minmax-neondot.c", - "src/qs8-igemm/gen/8x16c4-minmax-neondot.c", +PROD_NEONDOT_MICROKERNEL_SRCS = [ + "src/qc8-gemm/gen/1x8c4-minmax-fp32-neondot.c", + "src/qc8-gemm/gen/1x16c4-minmax-fp32-neondot.c", + "src/qc8-gemm/gen/4x8c4-minmax-fp32-neondot.c", + "src/qc8-gemm/gen/4x16c4-minmax-fp32-neondot.c", + "src/qc8-igemm/gen/1x8c4-minmax-fp32-neondot.c", + "src/qc8-igemm/gen/1x16c4-minmax-fp32-neondot.c", + "src/qc8-igemm/gen/4x8c4-minmax-fp32-neondot.c", + "src/qc8-igemm/gen/4x16c4-minmax-fp32-neondot.c", + "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neondot.c", + "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neondot.c", + "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neondot.c", + "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neondot.c", + "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neondot.c", + "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neondot.c", + "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neondot.c", + "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/1x8c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/1x16c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/4x8c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/4x16c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/1x8c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/1x16c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/4x8c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/4x16c4-minmax-rndnu-neondot.c", ] -SSE_UKERNELS = [ +ALL_NEONDOT_MICROKERNEL_SRCS = [ + "src/qc8-gemm/gen/1x8c4-minmax-fp32-neondot.c", + "src/qc8-gemm/gen/1x16c4-minmax-fp32-neondot.c", + "src/qc8-gemm/gen/4x8c4-minmax-fp32-neondot.c", + "src/qc8-gemm/gen/4x16c4-minmax-fp32-neondot.c", + "src/qc8-gemm/gen/6x8c4-minmax-fp32-neondot.c", + "src/qc8-gemm/gen/6x16c4-minmax-fp32-neondot.c", + "src/qc8-gemm/gen/8x8c4-minmax-fp32-neondot.c", + "src/qc8-gemm/gen/8x16c4-minmax-fp32-neondot.c", + "src/qc8-igemm/gen/1x8c4-minmax-fp32-neondot.c", + "src/qc8-igemm/gen/1x16c4-minmax-fp32-neondot.c", + "src/qc8-igemm/gen/4x8c4-minmax-fp32-neondot.c", + "src/qc8-igemm/gen/4x16c4-minmax-fp32-neondot.c", + "src/qc8-igemm/gen/6x8c4-minmax-fp32-neondot.c", + "src/qc8-igemm/gen/6x16c4-minmax-fp32-neondot.c", + "src/qc8-igemm/gen/8x8c4-minmax-fp32-neondot.c", + "src/qc8-igemm/gen/8x16c4-minmax-fp32-neondot.c", + "src/qs8-gemm/gen/1x8c4-minmax-fp32-neondot.c", + "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neondot.c", + "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neondot.c", + "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neondot.c", + "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neondot.c", + "src/qs8-gemm/gen/6x8c4-minmax-rndnu-neondot.c", + "src/qs8-gemm/gen/6x16c4-minmax-rndnu-neondot.c", + "src/qs8-gemm/gen/8x8c4-minmax-rndnu-neondot.c", + "src/qs8-gemm/gen/8x16c4-minmax-rndnu-neondot.c", + "src/qs8-igemm/gen/1x8c4-minmax-fp32-neondot.c", + "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neondot.c", + "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neondot.c", + "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neondot.c", + "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neondot.c", + "src/qs8-igemm/gen/6x8c4-minmax-rndnu-neondot.c", + "src/qs8-igemm/gen/6x16c4-minmax-rndnu-neondot.c", + "src/qs8-igemm/gen/8x8c4-minmax-rndnu-neondot.c", + "src/qs8-igemm/gen/8x16c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/1x8c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/1x16c4-minmax-fp32-neondot.c", + "src/qu8-gemm/gen/1x16c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/1x32c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/2x8c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/2x16c4-minmax-fp32-neondot.c", + "src/qu8-gemm/gen/2x16c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/2x32c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/3x8c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/3x16c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/3x32c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/4x8c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/4x16c4-minmax-fp32-neondot.c", + "src/qu8-gemm/gen/4x16c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/5x8c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/5x16c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/6x8c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/6x16c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/8x8c4-minmax-rndnu-neondot.c", + "src/qu8-gemm/gen/8x16c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/1x8c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/1x16c4-minmax-fp32-neondot.c", + "src/qu8-igemm/gen/1x16c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/1x32c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/2x8c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/2x16c4-minmax-fp32-neondot.c", + "src/qu8-igemm/gen/2x16c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/2x32c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/3x8c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/3x16c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/3x32c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/4x8c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/4x16c4-minmax-fp32-neondot.c", + "src/qu8-igemm/gen/4x16c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/5x8c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/5x16c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/6x8c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/6x16c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/8x8c4-minmax-rndnu-neondot.c", + "src/qu8-igemm/gen/8x16c4-minmax-rndnu-neondot.c", +] + +PROD_SSE_MICROKERNEL_SRCS = [ + "src/f32-avgpool/9p8x-minmax-sse-c4.c", + "src/f32-avgpool/9x-minmax-sse-c4.c", + "src/f32-conv-hwc2chw/3x3s2p1c3x4-sse-2x2.c", + "src/f32-dwconv/gen/up8x3-minmax-sse.c", + "src/f32-dwconv/gen/up8x4-minmax-sse.c", + "src/f32-dwconv/gen/up8x9-minmax-sse.c", + "src/f32-dwconv/gen/up8x25-minmax-sse.c", + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-sse-2x4-acc2.c", + "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-sse-1x4-acc3.c", + "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-4x4.c", + "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-sse-2x4.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-load1.c", + "src/f32-gemm/gen/4x2c4-minmax-sse.c", + "src/f32-gemm/gen/4x8-minmax-sse-load1.c", + "src/f32-ibilinear-chw/gen/sse-p8.c", + "src/f32-ibilinear/gen/sse-c8.c", + "src/f32-igemm/gen/1x8-minmax-sse-load1.c", + "src/f32-igemm/gen/4x2c4-minmax-sse.c", + "src/f32-igemm/gen/4x8-minmax-sse-load1.c", + "src/f32-maxpool/9p8x-minmax-sse-c4.c", + "src/f32-pavgpool/9p8x-minmax-sse-c4.c", + "src/f32-pavgpool/9x-minmax-sse-c4.c", + "src/f32-rmax/sse.c", + "src/f32-spmm/gen/32x1-minmax-sse.c", + "src/f32-vbinary/gen/vadd-minmax-sse-x8.c", + "src/f32-vbinary/gen/vaddc-minmax-sse-x8.c", + "src/f32-vbinary/gen/vdiv-minmax-sse-x8.c", + "src/f32-vbinary/gen/vdivc-minmax-sse-x8.c", + "src/f32-vbinary/gen/vmax-sse-x8.c", + "src/f32-vbinary/gen/vmaxc-sse-x8.c", + "src/f32-vbinary/gen/vmin-sse-x8.c", + "src/f32-vbinary/gen/vminc-sse-x8.c", + "src/f32-vbinary/gen/vmul-minmax-sse-x8.c", + "src/f32-vbinary/gen/vmulc-minmax-sse-x8.c", + "src/f32-vbinary/gen/vrdivc-minmax-sse-x8.c", + "src/f32-vbinary/gen/vrsubc-minmax-sse-x8.c", + "src/f32-vbinary/gen/vsqrdiff-sse-x8.c", + "src/f32-vbinary/gen/vsqrdiffc-sse-x8.c", + "src/f32-vbinary/gen/vsub-minmax-sse-x8.c", + "src/f32-vbinary/gen/vsubc-minmax-sse-x8.c", + "src/f32-vclamp/gen/vclamp-sse-x8.c", + "src/f32-vhswish/gen/vhswish-sse-x8.c", + "src/f32-vlrelu/gen/vlrelu-sse-x8.c", + "src/f32-vmulcaddc/gen/c4-minmax-sse-2x.c", + "src/f32-vsqrt/gen/sse-sqrt-x4.c", + "src/f32-vunary/gen/vabs-sse-x8.c", + "src/f32-vunary/gen/vneg-sse-x8.c", + "src/f32-vunary/gen/vsqr-sse-x8.c", + "src/x32-packx/x4-sse.c", +] + +ALL_SSE_MICROKERNEL_SRCS = [ "src/f32-avgpool/9p8x-minmax-sse-c4.c", "src/f32-avgpool/9x-minmax-sse-c4.c", - "src/f32-clamp/gen/sse-x4.c", - "src/f32-clamp/gen/sse-x8.c", "src/f32-conv-hwc2chw/3x3s2p1c3x4-sse-1x1.c", "src/f32-conv-hwc2chw/3x3s2p1c3x4-sse-2x2.c", + "src/f32-dwconv/gen/up4x3-minmax-sse-acc2.c", + "src/f32-dwconv/gen/up4x3-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/up4x25-minmax-sse-acc2.c", "src/f32-dwconv/gen/up4x25-minmax-sse.c", + "src/f32-dwconv/gen/up8x3-minmax-sse-acc2.c", + "src/f32-dwconv/gen/up8x3-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", @@ -1483,8 +4766,8 @@ SSE_UKERNELS = [ "src/f32-gemm/gen/5x8-minmax-sse-dup.c", "src/f32-gemm/gen/5x8-minmax-sse-load1.c", "src/f32-gemm/gen/5x8s4-minmax-sse.c", - "src/f32-hswish/gen/hswish-sse-x4.c", - "src/f32-hswish/gen/hswish-sse-x8.c", + "src/f32-ibilinear-chw/gen/sse-p4.c", + "src/f32-ibilinear-chw/gen/sse-p8.c", "src/f32-ibilinear/gen/sse-c4.c", "src/f32-ibilinear/gen/sse-c8.c", "src/f32-igemm/gen/1x8-minmax-sse-dup.c", @@ -1506,8 +4789,6 @@ SSE_UKERNELS = [ "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", @@ -1545,10 +4826,16 @@ SSE_UKERNELS = [ "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-vclamp/gen/vclamp-sse-x4.c", + "src/f32-vclamp/gen/vclamp-sse-x8.c", + "src/f32-vhswish/gen/vhswish-sse-x4.c", + "src/f32-vhswish/gen/vhswish-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-vrelu/gen/vrelu-sse-x4.c", + "src/f32-vrelu/gen/vrelu-sse-x8.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", @@ -1564,15 +4851,97 @@ SSE_UKERNELS = [ "src/math/sqrt-sse-hh1mac.c", "src/math/sqrt-sse-nr1mac.c", "src/math/sqrt-sse-nr2mac.c", - "src/x32-fill/sse.c", "src/x32-packx/x4-sse.c", - "src/x32-pad/sse.c", + "src/x32-transpose/4x4-sse.c", ] -SSE2_UKERNELS = [ +PROD_SSE2_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-sse2-int16-x32.c", "src/f32-argmaxpool/4x-sse2-c4.c", "src/f32-argmaxpool/9p8x-sse2-c4.c", "src/f32-argmaxpool/9x-sse2-c4.c", + "src/f32-f16-vcvt/gen/vcvt-sse2-x16.c", + "src/f32-prelu/gen/sse2-2x8.c", + "src/f32-qs8-vcvt/gen/vcvt-sse2-x32.c", + "src/f32-qu8-vcvt/gen/vcvt-sse2-x32.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x20-acc2.c", + "src/f32-velu/gen/velu-sse2-rr2-lut16-p3-x12.c", + "src/f32-vlrelu/gen/vlrelu-sse2-x8.c", + "src/f32-vrnd/gen/vrndd-sse2-x8.c", + "src/f32-vrnd/gen/vrndne-sse2-x8.c", + "src/f32-vrnd/gen/vrndu-sse2-x8.c", + "src/f32-vrnd/gen/vrndz-sse2-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x8.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-sse2-ld64.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-sse2-ld64.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-sse2-ld64.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-sse2-ld64.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16-add16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16-add16.c", + "src/qs8-f32-vcvt/gen/vcvt-sse2-x32.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse2-c8.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-sse2-c8.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-sse2-ld64.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-sse2-ld64.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-sse2-ld64.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-sse2-ld64.c", + "src/qs8-vadd/gen/minmax-sse2-mul16-ld64-x8.c", + "src/qs8-vaddc/gen/minmax-sse2-mul16-ld64-x8.c", + "src/qs8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x8.c", + "src/qs8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x8.c", + "src/qu8-avgpool/9p8x-minmax-sse2-c8.c", + "src/qu8-avgpool/9x-minmax-sse2-c8.c", + "src/qu8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16.c", + "src/qu8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16.c", + "src/qu8-f32-vcvt/gen/vcvt-sse2-x32.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse2-c8.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-sse2-c8.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-sse2-ld64.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-sse2-ld64.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-sse2-ld64.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-sse2-ld64.c", + "src/qu8-vadd/gen/minmax-sse2-mul16-ld64-x8.c", + "src/qu8-vaddc/gen/minmax-sse2-mul16-ld64-x8.c", + "src/qu8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x8.c", + "src/qu8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x8.c", + "src/s8-ibilinear/gen/sse2-c8.c", + "src/s8-maxpool/9p8x-minmax-sse2-c16.c", + "src/s8-vclamp/sse2-x64.c", + "src/u8-ibilinear/gen/sse2-c8.c", + "src/u8-maxpool/9p8x-minmax-sse2-c16.c", + "src/u8-rmax/sse2.c", + "src/u8-vclamp/sse2-x64.c", + "src/x8-zip/x2-sse2.c", + "src/x8-zip/x3-sse2.c", + "src/x8-zip/x4-sse2.c", + "src/x8-zip/xm-sse2.c", + "src/x32-unpool/sse2.c", + "src/x32-zip/x2-sse2.c", + "src/x32-zip/x3-sse2.c", + "src/x32-zip/x4-sse2.c", + "src/x32-zip/xm-sse2.c", + "src/xx-fill/sse2-x64.c", + "src/xx-pad/sse2.c", +] + +ALL_SSE2_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-sse2-int16-x8.c", + "src/f16-f32-vcvt/gen/vcvt-sse2-int16-x16.c", + "src/f16-f32-vcvt/gen/vcvt-sse2-int16-x24.c", + "src/f16-f32-vcvt/gen/vcvt-sse2-int16-x32.c", + "src/f16-f32-vcvt/gen/vcvt-sse2-int32-x8.c", + "src/f16-f32-vcvt/gen/vcvt-sse2-int32-x16.c", + "src/f16-f32-vcvt/gen/vcvt-sse2-int32-x24.c", + "src/f16-f32-vcvt/gen/vcvt-sse2-int32-x32.c", + "src/f32-argmaxpool/4x-sse2-c4.c", + "src/f32-argmaxpool/9p8x-sse2-c4.c", + "src/f32-argmaxpool/9x-sse2-c4.c", + "src/f32-f16-vcvt/gen/vcvt-sse2-x8.c", + "src/f32-f16-vcvt/gen/vcvt-sse2-x16.c", + "src/f32-f16-vcvt/gen/vcvt-sse2-x24.c", + "src/f32-f16-vcvt/gen/vcvt-sse2-x32.c", "src/f32-gemm/gen-inc/1x8inc-minmax-sse2-dup.c", "src/f32-gemm/gen-inc/3x8inc-minmax-sse2-dup.c", "src/f32-gemm/gen-inc/4x8inc-minmax-sse2-dup.c", @@ -1587,30 +4956,26 @@ SSE2_UKERNELS = [ "src/f32-igemm/gen/5x8-minmax-sse2-dup.c", "src/f32-prelu/gen/sse2-2x4.c", "src/f32-prelu/gen/sse2-2x8.c", - "src/f32-raddstoreexpminusmax/gen/sse2-p5-x4.c", - "src/f32-raddstoreexpminusmax/gen/sse2-p5-x8-acc2.c", - "src/f32-raddstoreexpminusmax/gen/sse2-p5-x8.c", - "src/f32-raddstoreexpminusmax/gen/sse2-p5-x12-acc2.c", - "src/f32-raddstoreexpminusmax/gen/sse2-p5-x12-acc3.c", - "src/f32-raddstoreexpminusmax/gen/sse2-p5-x12.c", - "src/f32-raddstoreexpminusmax/gen/sse2-p5-x16-acc2.c", - "src/f32-raddstoreexpminusmax/gen/sse2-p5-x16-acc4.c", - "src/f32-raddstoreexpminusmax/gen/sse2-p5-x16.c", - "src/f32-raddstoreexpminusmax/gen/sse2-p5-x20-acc2.c", - "src/f32-raddstoreexpminusmax/gen/sse2-p5-x20-acc5.c", - "src/f32-raddstoreexpminusmax/gen/sse2-p5-x20.c", - "src/f32-sigmoid/gen/sse2-lut64-p2-div-x4.c", - "src/f32-sigmoid/gen/sse2-lut64-p2-div-x8.c", - "src/f32-sigmoid/gen/sse2-lut64-p2-div-x12.c", - "src/f32-sigmoid/gen/sse2-lut64-p2-div-x16.c", - "src/f32-sigmoid/gen/sse2-lut64-p2-div-x20.c", - "src/f32-sigmoid/gen/sse2-lut64-p2-div-x24.c", - "src/f32-sigmoid/gen/sse2-p5-div-x4.c", - "src/f32-sigmoid/gen/sse2-p5-div-x8.c", - "src/f32-sigmoid/gen/sse2-p5-div-x12.c", - "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/f32-qs8-vcvt/gen/vcvt-sse2-x8.c", + "src/f32-qs8-vcvt/gen/vcvt-sse2-x16.c", + "src/f32-qs8-vcvt/gen/vcvt-sse2-x24.c", + "src/f32-qs8-vcvt/gen/vcvt-sse2-x32.c", + "src/f32-qu8-vcvt/gen/vcvt-sse2-x8.c", + "src/f32-qu8-vcvt/gen/vcvt-sse2-x16.c", + "src/f32-qu8-vcvt/gen/vcvt-sse2-x24.c", + "src/f32-qu8-vcvt/gen/vcvt-sse2-x32.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x4.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x8-acc2.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x8.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x12-acc2.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x12-acc3.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x12.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x16-acc2.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x16-acc4.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x16.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x20-acc2.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x20-acc5.c", + "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x20.c", "src/f32-velu/gen/velu-sse2-rr2-lut16-p3-x4.c", "src/f32-velu/gen/velu-sse2-rr2-lut16-p3-x8.c", "src/f32-velu/gen/velu-sse2-rr2-lut16-p3-x12.c", @@ -1633,6 +4998,21 @@ SSE2_UKERNELS = [ "src/f32-vrnd/gen/vrndu-sse2-x8.c", "src/f32-vrnd/gen/vrndz-sse2-x4.c", "src/f32-vrnd/gen/vrndz-sse2-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-p5-div-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-p5-div-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-p5-div-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-p5-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-p5-div-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-p5-div-x24.c", + "src/math/cvt-f16-f32-sse2-int16.c", + "src/math/cvt-f16-f32-sse2-int32.c", + "src/math/cvt-f32-f16-sse2.c", "src/math/exp-sse2-rr2-lut64-p2.c", "src/math/exp-sse2-rr2-p5.c", "src/math/expm1minus-sse2-rr2-lut16-p3.c", @@ -1648,43 +5028,102 @@ SSE2_UKERNELS = [ "src/math/sigmoid-sse2-rr2-p5-div.c", "src/math/sigmoid-sse2-rr2-p5-nr1.c", "src/math/sigmoid-sse2-rr2-p5-nr2.c", - "src/qs8-dwconv/gen/up8x9-minmax-sse2-mul16.c", - "src/qs8-dwconv/gen/up16x9-minmax-sse2-mul16.c", - "src/qs8-dwconv/gen/up24x9-minmax-sse2-mul16.c", - "src/qs8-gavgpool/gen/7p7x-minmax-sse2-c8-acc2.c", - "src/qs8-gavgpool/gen/7p7x-minmax-sse2-c16-acc2.c", - "src/qs8-gavgpool/gen/7p7x-minmax-sse2-c24-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-sse2-c8-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-sse2-c16-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-sse2-c24-acc2.c", - "src/qs8-gemm/gen/1x4c2-minmax-sse2-ld64.c", - "src/qs8-gemm/gen/1x4c2-minmax-sse2-ld128.c", - "src/qs8-gemm/gen/1x4c2-xw-minmax-sse2.c", - "src/qs8-gemm/gen/1x4c8-minmax-sse2-ld64.c", - "src/qs8-gemm/gen/1x4c8-minmax-sse2-ld128.c", - "src/qs8-gemm/gen/1x4c8-xw-minmax-sse2.c", - "src/qs8-gemm/gen/2x4c8-minmax-sse2-ld64.c", - "src/qs8-gemm/gen/2x4c8-minmax-sse2-ld128.c", - "src/qs8-gemm/gen/2x4c8-xw-minmax-sse2.c", - "src/qs8-gemm/gen/3x4c8-minmax-sse2-ld64.c", - "src/qs8-gemm/gen/3x4c8-minmax-sse2-ld128.c", - "src/qs8-gemm/gen/3x4c8-xw-minmax-sse2.c", - "src/qs8-gemm/gen/4x4c2-minmax-sse2-ld64.c", - "src/qs8-gemm/gen/4x4c2-minmax-sse2-ld128.c", - "src/qs8-gemm/gen/4x4c2-xw-minmax-sse2.c", - "src/qs8-igemm/gen/1x4c2-minmax-sse2-ld64.c", - "src/qs8-igemm/gen/1x4c2-minmax-sse2-ld128.c", - "src/qs8-igemm/gen/1x4c8-minmax-sse2-ld64.c", - "src/qs8-igemm/gen/1x4c8-minmax-sse2-ld128.c", - "src/qs8-igemm/gen/2x4c8-minmax-sse2-ld64.c", - "src/qs8-igemm/gen/2x4c8-minmax-sse2-ld128.c", - "src/qs8-igemm/gen/3x4c8-minmax-sse2-ld64.c", - "src/qs8-igemm/gen/3x4c8-minmax-sse2-ld128.c", - "src/qs8-igemm/gen/4x4c2-minmax-sse2-ld64.c", - "src/qs8-igemm/gen/4x4c2-minmax-sse2-ld128.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16-add16.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16-add16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-sse2-mul16-add16.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-sse2-mul16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-sse2-mul16-add16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-sse2-mul16.c", + "src/qc8-dwconv/gen/up24x9-minmax-fp32-sse2-mul16.c", + "src/qc8-dwconv/gen/up24x25-minmax-fp32-sse2-mul16.c", + "src/qc8-gemm/gen/1x4c2-minmax-fp32-sse2-ld64.c", + "src/qc8-gemm/gen/1x4c2-minmax-fp32-sse2-ld128.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-sse2-ld64.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-sse2-ld128.c", + "src/qc8-gemm/gen/2x4c2-minmax-fp32-sse2-ld64.c", + "src/qc8-gemm/gen/2x4c2-minmax-fp32-sse2-ld128.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-sse2-ld64.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-sse2-ld128.c", + "src/qc8-gemm/gen/3x4c2-minmax-fp32-sse2-ld64.c", + "src/qc8-gemm/gen/3x4c2-minmax-fp32-sse2-ld128.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-sse2-ld64.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-sse2-ld128.c", + "src/qc8-gemm/gen/4x4c2-minmax-fp32-sse2-ld64.c", + "src/qc8-gemm/gen/4x4c2-minmax-fp32-sse2-ld128.c", + "src/qc8-igemm/gen/1x4c2-minmax-fp32-sse2-ld64.c", + "src/qc8-igemm/gen/1x4c2-minmax-fp32-sse2-ld128.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-sse2-ld64.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-sse2-ld128.c", + "src/qc8-igemm/gen/2x4c2-minmax-fp32-sse2-ld64.c", + "src/qc8-igemm/gen/2x4c2-minmax-fp32-sse2-ld128.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-sse2-ld64.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-sse2-ld128.c", + "src/qc8-igemm/gen/3x4c2-minmax-fp32-sse2-ld64.c", + "src/qc8-igemm/gen/3x4c2-minmax-fp32-sse2-ld128.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-sse2-ld64.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-sse2-ld128.c", + "src/qc8-igemm/gen/4x4c2-minmax-fp32-sse2-ld64.c", + "src/qc8-igemm/gen/4x4c2-minmax-fp32-sse2-ld128.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16-add16.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16-add16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-sse2-mul16-add16.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-sse2-mul16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-sse2-mul16-add16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-sse2-mul16.c", + "src/qs8-dwconv/gen/up24x9-minmax-fp32-sse2-mul16.c", + "src/qs8-dwconv/gen/up24x25-minmax-fp32-sse2-mul16.c", + "src/qs8-f32-vcvt/gen/vcvt-sse2-x8.c", + "src/qs8-f32-vcvt/gen/vcvt-sse2-x16.c", + "src/qs8-f32-vcvt/gen/vcvt-sse2-x24.c", + "src/qs8-f32-vcvt/gen/vcvt-sse2-x32.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse2-c8.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse2-c16.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse2-c24.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-sse2-c8.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-sse2-c16.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-sse2-c24.c", + "src/qs8-gemm/gen/1x4c2-minmax-fp32-sse2-ld64.c", + "src/qs8-gemm/gen/1x4c2-minmax-fp32-sse2-ld128.c", + "src/qs8-gemm/gen/1x4c2-xw-minmax-fp32-sse2.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-sse2-ld64.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-sse2-ld128.c", + "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-sse2.c", + "src/qs8-gemm/gen/2x4c2-minmax-fp32-sse2-ld64.c", + "src/qs8-gemm/gen/2x4c2-minmax-fp32-sse2-ld128.c", + "src/qs8-gemm/gen/2x4c2-xw-minmax-fp32-sse2.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-sse2-ld64.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-sse2-ld128.c", + "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-sse2.c", + "src/qs8-gemm/gen/3x4c2-minmax-fp32-sse2-ld64.c", + "src/qs8-gemm/gen/3x4c2-minmax-fp32-sse2-ld128.c", + "src/qs8-gemm/gen/3x4c2-xw-minmax-fp32-sse2.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-sse2-ld64.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-sse2-ld128.c", + "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-sse2.c", + "src/qs8-gemm/gen/4x4c2-minmax-fp32-sse2-ld64.c", + "src/qs8-gemm/gen/4x4c2-minmax-fp32-sse2-ld128.c", + "src/qs8-gemm/gen/4x4c2-xw-minmax-fp32-sse2.c", + "src/qs8-igemm/gen/1x4c2-minmax-fp32-sse2-ld64.c", + "src/qs8-igemm/gen/1x4c2-minmax-fp32-sse2-ld128.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-sse2-ld64.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-sse2-ld128.c", + "src/qs8-igemm/gen/2x4c2-minmax-fp32-sse2-ld64.c", + "src/qs8-igemm/gen/2x4c2-minmax-fp32-sse2-ld128.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-sse2-ld64.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-sse2-ld128.c", + "src/qs8-igemm/gen/3x4c2-minmax-fp32-sse2-ld64.c", + "src/qs8-igemm/gen/3x4c2-minmax-fp32-sse2-ld128.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-sse2-ld64.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-sse2-ld128.c", + "src/qs8-igemm/gen/4x4c2-minmax-fp32-sse2-ld64.c", + "src/qs8-igemm/gen/4x4c2-minmax-fp32-sse2-ld128.c", "src/qs8-requantization/fp32-sse2.c", - "src/qs8-requantization/precise-sse2.c", - "src/qs8-requantization/q31-sse2.c", + "src/qs8-requantization/gemmlowp-sse2.c", + "src/qs8-requantization/rndna-sse2.c", "src/qs8-vadd/gen/minmax-sse2-mul16-ld64-x8.c", "src/qs8-vadd/gen/minmax-sse2-mul16-ld64-x16.c", "src/qs8-vadd/gen/minmax-sse2-mul16-ld64-x24.c", @@ -1693,33 +5132,112 @@ SSE2_UKERNELS = [ "src/qs8-vaddc/gen/minmax-sse2-mul16-ld64-x16.c", "src/qs8-vaddc/gen/minmax-sse2-mul16-ld64-x24.c", "src/qs8-vaddc/gen/minmax-sse2-mul16-ld64-x32.c", + "src/qs8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x8.c", + "src/qs8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x16.c", + "src/qs8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x8.c", + "src/qs8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x16.c", "src/qu8-avgpool/9p8x-minmax-sse2-c8.c", "src/qu8-avgpool/9x-minmax-sse2-c8.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-igemm/4x4c2-minmax-sse2.c", + "src/qu8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16.c", + "src/qu8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-sse2-mul16.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-sse2-mul16.c", + "src/qu8-f32-vcvt/gen/vcvt-sse2-x8.c", + "src/qu8-f32-vcvt/gen/vcvt-sse2-x16.c", + "src/qu8-f32-vcvt/gen/vcvt-sse2-x24.c", + "src/qu8-f32-vcvt/gen/vcvt-sse2-x32.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse2-c8.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse2-c16.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse2-c24.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-sse2-c8.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-sse2-c16.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-sse2-c24.c", + "src/qu8-gemm/gen/1x4c2-minmax-fp32-sse2-ld64.c", + "src/qu8-gemm/gen/1x4c2-minmax-fp32-sse2-ld128.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-sse2-ld64.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-sse2-ld128.c", + "src/qu8-gemm/gen/2x4c2-minmax-fp32-sse2-ld64.c", + "src/qu8-gemm/gen/2x4c2-minmax-fp32-sse2-ld128.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-sse2-ld64.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-sse2-ld128.c", + "src/qu8-gemm/gen/3x4c2-minmax-fp32-sse2-ld64.c", + "src/qu8-gemm/gen/3x4c2-minmax-fp32-sse2-ld128.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-sse2-ld64.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-sse2-ld128.c", + "src/qu8-gemm/gen/4x4c2-minmax-fp32-sse2-ld64.c", + "src/qu8-gemm/gen/4x4c2-minmax-fp32-sse2-ld128.c", + "src/qu8-igemm/gen/1x4c2-minmax-fp32-sse2-ld64.c", + "src/qu8-igemm/gen/1x4c2-minmax-fp32-sse2-ld128.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-sse2-ld64.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-sse2-ld128.c", + "src/qu8-igemm/gen/2x4c2-minmax-fp32-sse2-ld64.c", + "src/qu8-igemm/gen/2x4c2-minmax-fp32-sse2-ld128.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-sse2-ld64.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-sse2-ld128.c", + "src/qu8-igemm/gen/3x4c2-minmax-fp32-sse2-ld64.c", + "src/qu8-igemm/gen/3x4c2-minmax-fp32-sse2-ld128.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-sse2-ld64.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-sse2-ld128.c", + "src/qu8-igemm/gen/4x4c2-minmax-fp32-sse2-ld64.c", + "src/qu8-igemm/gen/4x4c2-minmax-fp32-sse2-ld128.c", "src/qu8-requantization/fp32-sse2.c", - "src/qu8-requantization/precise-sse2.c", - "src/qu8-requantization/q31-sse2.c", - "src/qu8-vadd/minmax-sse2.c", - "src/u8-clamp/sse2-x64.c", + "src/qu8-requantization/gemmlowp-sse2.c", + "src/qu8-requantization/rndna-sse2.c", + "src/qu8-vadd/gen/minmax-sse2-mul16-ld64-x8.c", + "src/qu8-vadd/gen/minmax-sse2-mul16-ld64-x16.c", + "src/qu8-vaddc/gen/minmax-sse2-mul16-ld64-x8.c", + "src/qu8-vaddc/gen/minmax-sse2-mul16-ld64-x16.c", + "src/qu8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x8.c", + "src/qu8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x16.c", + "src/qu8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x8.c", + "src/qu8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x16.c", + "src/s8-ibilinear/gen/sse2-c8.c", + "src/s8-ibilinear/gen/sse2-c16.c", + "src/s8-maxpool/9p8x-minmax-sse2-c16.c", + "src/s8-vclamp/sse2-x64.c", + "src/u8-ibilinear/gen/sse2-c8.c", + "src/u8-ibilinear/gen/sse2-c16.c", "src/u8-maxpool/9p8x-minmax-sse2-c16.c", "src/u8-rmax/sse2.c", + "src/u8-vclamp/sse2-x64.c", + "src/x8-transpose/gen/16x16-reuse-mov-sse2.c", + "src/x8-transpose/gen/16x16-reuse-switch-sse2.c", "src/x8-zip/x2-sse2.c", "src/x8-zip/x3-sse2.c", "src/x8-zip/x4-sse2.c", "src/x8-zip/xm-sse2.c", + "src/x16-transpose/4x8-sse2.c", + "src/x16-transpose/gen/8x8-multi-mov-sse2.c", + "src/x16-transpose/gen/8x8-multi-switch-sse2.c", + "src/x16-transpose/gen/8x8-reuse-mov-sse2.c", + "src/x16-transpose/gen/8x8-reuse-multi-sse2.c", + "src/x16-transpose/gen/8x8-reuse-switch-sse2.c", + "src/x32-transpose/gen/4x4-multi-mov-sse2.c", + "src/x32-transpose/gen/4x4-multi-multi-sse2.c", + "src/x32-transpose/gen/4x4-multi-switch-sse2.c", + "src/x32-transpose/gen/4x4-reuse-mov-sse2.c", + "src/x32-transpose/gen/4x4-reuse-multi-sse2.c", + "src/x32-transpose/gen/4x4-reuse-switch-sse2.c", "src/x32-unpool/sse2.c", "src/x32-zip/x2-sse2.c", "src/x32-zip/x3-sse2.c", "src/x32-zip/x4-sse2.c", "src/x32-zip/xm-sse2.c", + "src/x64-transpose/gen/2x2-multi-mov-sse2.c", + "src/x64-transpose/gen/2x2-multi-multi-sse2.c", + "src/x64-transpose/gen/2x2-multi-switch-sse2.c", + "src/x64-transpose/gen/2x2-reuse-mov-sse2.c", + "src/x64-transpose/gen/2x2-reuse-multi-sse2.c", + "src/x64-transpose/gen/2x2-reuse-switch-sse2.c", + "src/xx-fill/sse2-x64.c", + "src/xx-pad/sse2.c", +] + +PROD_SSSE3_MICROKERNEL_SRCS = [ + "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-2x4-acc2.c", ] -SSSE3_UKERNELS = [ +ALL_SSSE3_MICROKERNEL_SRCS = [ "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-1x4-acc2.c", "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-1x4-acc3.c", "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-1x4-acc4.c", @@ -1730,61 +5248,97 @@ SSSE3_UKERNELS = [ "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-4x4.c", "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-5x4.c", "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-6x4.c", - "src/qs8-dwconv/gen/up8x9-minmax-ssse3-mul16.c", - "src/qs8-dwconv/gen/up16x9-minmax-ssse3-mul16.c", - "src/qs8-dwconv/gen/up24x9-minmax-ssse3-mul16.c", - "src/qs8-gavgpool/gen/7p7x-minmax-ssse3-c8-acc2.c", - "src/qs8-gavgpool/gen/7p7x-minmax-ssse3-c16-acc2.c", - "src/qs8-gavgpool/gen/7p7x-minmax-ssse3-c24-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-ssse3-c8-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-ssse3-c16-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-ssse3-c24-acc2.c", - "src/qs8-gemm/gen/1x4c2-minmax-ssse3-ld64.c", - "src/qs8-gemm/gen/1x4c2-minmax-ssse3-ld128.c", - "src/qs8-gemm/gen/1x4c2-xw-minmax-ssse3.c", - "src/qs8-gemm/gen/1x4c8-minmax-ssse3-ld64.c", - "src/qs8-gemm/gen/1x4c8-minmax-ssse3-ld128.c", - "src/qs8-gemm/gen/1x4c8-xw-minmax-ssse3.c", - "src/qs8-gemm/gen/2x4c8-minmax-ssse3-ld64.c", - "src/qs8-gemm/gen/2x4c8-minmax-ssse3-ld128.c", - "src/qs8-gemm/gen/2x4c8-xw-minmax-ssse3.c", - "src/qs8-gemm/gen/3x4c8-minmax-ssse3-ld64.c", - "src/qs8-gemm/gen/3x4c8-minmax-ssse3-ld128.c", - "src/qs8-gemm/gen/3x4c8-xw-minmax-ssse3.c", - "src/qs8-gemm/gen/4x4c2-minmax-ssse3-ld64.c", - "src/qs8-gemm/gen/4x4c2-minmax-ssse3-ld128.c", - "src/qs8-gemm/gen/4x4c2-xw-minmax-ssse3.c", - "src/qs8-igemm/gen/1x4c2-minmax-ssse3-ld64.c", - "src/qs8-igemm/gen/1x4c2-minmax-ssse3-ld128.c", - "src/qs8-igemm/gen/1x4c8-minmax-ssse3-ld64.c", - "src/qs8-igemm/gen/1x4c8-minmax-ssse3-ld128.c", - "src/qs8-igemm/gen/2x4c8-minmax-ssse3-ld64.c", - "src/qs8-igemm/gen/2x4c8-minmax-ssse3-ld128.c", - "src/qs8-igemm/gen/3x4c8-minmax-ssse3-ld64.c", - "src/qs8-igemm/gen/3x4c8-minmax-ssse3-ld128.c", - "src/qs8-igemm/gen/4x4c2-minmax-ssse3-ld64.c", - "src/qs8-igemm/gen/4x4c2-minmax-ssse3-ld128.c", - "src/qs8-requantization/precise-ssse3.c", - "src/qs8-requantization/q31-ssse3.c", - "src/qu8-requantization/precise-ssse3.c", - "src/qu8-requantization/q31-ssse3.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-ssse3-ld64.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-ssse3-ld128.c", + "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-ssse3.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-ssse3-ld64.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-ssse3-ld128.c", + "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-ssse3.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-ssse3-ld64.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-ssse3-ld128.c", + "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-ssse3.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-ssse3-ld64.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-ssse3-ld128.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-ssse3-ld64.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-ssse3-ld128.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-ssse3-ld64.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-ssse3-ld128.c", + "src/qs8-requantization/gemmlowp-ssse3.c", + "src/qs8-requantization/rndna-ssse3.c", + "src/qu8-requantization/gemmlowp-ssse3.c", + "src/qu8-requantization/rndna-ssse3.c", + "src/x8-lut/gen/lut-ssse3-x16.c", + "src/x8-lut/gen/lut-ssse3-x32.c", ] -SSE41_UKERNELS = [ +PROD_SSE41_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-sse41-int16-x16.c", + "src/f32-f16-vcvt/gen/vcvt-sse41-x8.c", + "src/f32-prelu/gen/sse41-2x8.c", + "src/f32-qs8-vcvt/gen/vcvt-sse41-x32.c", + "src/f32-vlrelu/gen/vlrelu-sse41-x8.c", + "src/f32-vrnd/gen/vrndd-sse41-x8.c", + "src/f32-vrnd/gen/vrndne-sse41-x8.c", + "src/f32-vrnd/gen/vrndu-sse41-x8.c", + "src/f32-vrnd/gen/vrndz-sse41-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x8.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-sse41-ld64.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-sse41-ld64.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-sse41-ld64.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-sse41-ld64.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16-add16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16-add16.c", + "src/qs8-f32-vcvt/gen/vcvt-sse41-x16.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse41-c8.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-sse41-c8.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-sse41-ld64.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-sse41-ld64.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-sse41-ld64.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-sse41-ld64.c", + "src/qs8-vadd/gen/minmax-sse41-mul16-ld64-x8.c", + "src/qs8-vaddc/gen/minmax-sse41-mul16-ld64-x8.c", + "src/qs8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x16.c", + "src/qs8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c", + "src/qu8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16.c", + "src/qu8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16.c", + "src/qu8-f32-vcvt/gen/vcvt-sse41-x16.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse41-c8.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-sse41-c8.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-sse41-ld64.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-sse41-ld64.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-sse41-ld64.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-sse41-ld64.c", + "src/qu8-vadd/gen/minmax-sse41-mul16-ld64-x8.c", + "src/qu8-vaddc/gen/minmax-sse41-mul16-ld64-x8.c", + "src/qu8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x16.c", + "src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c", + "src/s8-ibilinear/gen/sse41-c16.c", + "src/s8-maxpool/9p8x-minmax-sse41-c16.c", + "src/s8-vclamp/sse41-x64.c", + "src/u8-ibilinear/gen/sse41-c16.c", +] + +ALL_SSE41_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-sse41-int16-x8.c", + "src/f16-f32-vcvt/gen/vcvt-sse41-int16-x16.c", + "src/f16-f32-vcvt/gen/vcvt-sse41-int16-x24.c", + "src/f16-f32-vcvt/gen/vcvt-sse41-int16-x32.c", + "src/f16-f32-vcvt/gen/vcvt-sse41-int32-x8.c", + "src/f16-f32-vcvt/gen/vcvt-sse41-int32-x16.c", + "src/f16-f32-vcvt/gen/vcvt-sse41-int32-x24.c", + "src/f16-f32-vcvt/gen/vcvt-sse41-int32-x32.c", + "src/f32-f16-vcvt/gen/vcvt-sse41-x8.c", + "src/f32-f16-vcvt/gen/vcvt-sse41-x16.c", + "src/f32-f16-vcvt/gen/vcvt-sse41-x24.c", + "src/f32-f16-vcvt/gen/vcvt-sse41-x32.c", "src/f32-prelu/gen/sse41-2x4.c", "src/f32-prelu/gen/sse41-2x8.c", - "src/f32-sigmoid/gen/sse41-lut64-p2-div-x4.c", - "src/f32-sigmoid/gen/sse41-lut64-p2-div-x8.c", - "src/f32-sigmoid/gen/sse41-lut64-p2-div-x12.c", - "src/f32-sigmoid/gen/sse41-lut64-p2-div-x16.c", - "src/f32-sigmoid/gen/sse41-lut64-p2-div-x20.c", - "src/f32-sigmoid/gen/sse41-lut64-p2-div-x24.c", - "src/f32-sigmoid/gen/sse41-p5-div-x4.c", - "src/f32-sigmoid/gen/sse41-p5-div-x8.c", - "src/f32-sigmoid/gen/sse41-p5-div-x12.c", - "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-qs8-vcvt/gen/vcvt-sse41-x8.c", + "src/f32-qs8-vcvt/gen/vcvt-sse41-x16.c", + "src/f32-qs8-vcvt/gen/vcvt-sse41-x24.c", + "src/f32-qs8-vcvt/gen/vcvt-sse41-x32.c", "src/f32-velu/gen/velu-sse41-rr2-lut16-p3-x4.c", "src/f32-velu/gen/velu-sse41-rr2-lut16-p3-x8.c", "src/f32-velu/gen/velu-sse41-rr2-lut16-p3-x12.c", @@ -1807,47 +5361,135 @@ SSE41_UKERNELS = [ "src/f32-vrnd/gen/vrndu-sse41-x8.c", "src/f32-vrnd/gen/vrndz-sse41-x4.c", "src/f32-vrnd/gen/vrndz-sse41-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-p5-div-x4.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-p5-div-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-p5-div-x12.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-p5-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-p5-div-x20.c", + "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-p5-div-x24.c", + "src/math/cvt-f16-f32-sse41-int16.c", + "src/math/cvt-f16-f32-sse41-int32.c", + "src/math/cvt-f32-f16-sse41.c", "src/math/roundd-sse41.c", "src/math/roundne-sse41.c", "src/math/roundu-sse41.c", "src/math/roundz-sse41.c", - "src/qs8-dwconv/gen/up8x9-minmax-sse41-mul16.c", - "src/qs8-dwconv/gen/up16x9-minmax-sse41-mul16.c", - "src/qs8-dwconv/gen/up24x9-minmax-sse41-mul16.c", - "src/qs8-gavgpool/gen/7p7x-minmax-sse41-c8-acc2.c", - "src/qs8-gavgpool/gen/7p7x-minmax-sse41-c16-acc2.c", - "src/qs8-gavgpool/gen/7p7x-minmax-sse41-c24-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-sse41-c8-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-sse41-c16-acc2.c", - "src/qs8-gavgpool/gen/7x-minmax-sse41-c24-acc2.c", - "src/qs8-gemm/gen/1x4c2-minmax-sse41-ld64.c", - "src/qs8-gemm/gen/1x4c2-minmax-sse41-ld128.c", - "src/qs8-gemm/gen/1x4c2-xw-minmax-sse41.c", - "src/qs8-gemm/gen/1x4c8-minmax-sse41-ld64.c", - "src/qs8-gemm/gen/1x4c8-minmax-sse41-ld128.c", - "src/qs8-gemm/gen/1x4c8-xw-minmax-sse41.c", - "src/qs8-gemm/gen/2x4c8-minmax-sse41-ld64.c", - "src/qs8-gemm/gen/2x4c8-minmax-sse41-ld128.c", - "src/qs8-gemm/gen/2x4c8-xw-minmax-sse41.c", - "src/qs8-gemm/gen/3x4c8-minmax-sse41-ld64.c", - "src/qs8-gemm/gen/3x4c8-minmax-sse41-ld128.c", - "src/qs8-gemm/gen/3x4c8-xw-minmax-sse41.c", - "src/qs8-gemm/gen/4x4c2-minmax-sse41-ld64.c", - "src/qs8-gemm/gen/4x4c2-minmax-sse41-ld128.c", - "src/qs8-gemm/gen/4x4c2-xw-minmax-sse41.c", - "src/qs8-igemm/gen/1x4c2-minmax-sse41-ld64.c", - "src/qs8-igemm/gen/1x4c2-minmax-sse41-ld128.c", - "src/qs8-igemm/gen/1x4c8-minmax-sse41-ld64.c", - "src/qs8-igemm/gen/1x4c8-minmax-sse41-ld128.c", - "src/qs8-igemm/gen/2x4c8-minmax-sse41-ld64.c", - "src/qs8-igemm/gen/2x4c8-minmax-sse41-ld128.c", - "src/qs8-igemm/gen/3x4c8-minmax-sse41-ld64.c", - "src/qs8-igemm/gen/3x4c8-minmax-sse41-ld128.c", - "src/qs8-igemm/gen/4x4c2-minmax-sse41-ld64.c", - "src/qs8-igemm/gen/4x4c2-minmax-sse41-ld128.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16-add16.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse41-mul32.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16-add16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse41-mul32.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-sse41-mul16-add16.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-sse41-mul16.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-sse41-mul32.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-sse41-mul16-add16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-sse41-mul16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-sse41-mul32.c", + "src/qc8-dwconv/gen/up24x9-minmax-fp32-sse41-mul16.c", + "src/qc8-dwconv/gen/up24x9-minmax-fp32-sse41-mul32.c", + "src/qc8-dwconv/gen/up24x25-minmax-fp32-sse41-mul16.c", + "src/qc8-dwconv/gen/up24x25-minmax-fp32-sse41-mul32.c", + "src/qc8-gemm/gen/1x4c2-minmax-fp32-sse41-ld64.c", + "src/qc8-gemm/gen/1x4c2-minmax-fp32-sse41-ld128.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-sse41-ld64.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-sse41-ld128.c", + "src/qc8-gemm/gen/2x4c2-minmax-fp32-sse41-ld64.c", + "src/qc8-gemm/gen/2x4c2-minmax-fp32-sse41-ld128.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-sse41-ld64.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-sse41-ld128.c", + "src/qc8-gemm/gen/3x4c2-minmax-fp32-sse41-ld64.c", + "src/qc8-gemm/gen/3x4c2-minmax-fp32-sse41-ld128.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-sse41-ld64.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-sse41-ld128.c", + "src/qc8-gemm/gen/4x4c2-minmax-fp32-sse41-ld64.c", + "src/qc8-gemm/gen/4x4c2-minmax-fp32-sse41-ld128.c", + "src/qc8-igemm/gen/1x4c2-minmax-fp32-sse41-ld64.c", + "src/qc8-igemm/gen/1x4c2-minmax-fp32-sse41-ld128.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-sse41-ld64.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-sse41-ld128.c", + "src/qc8-igemm/gen/2x4c2-minmax-fp32-sse41-ld64.c", + "src/qc8-igemm/gen/2x4c2-minmax-fp32-sse41-ld128.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-sse41-ld64.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-sse41-ld128.c", + "src/qc8-igemm/gen/3x4c2-minmax-fp32-sse41-ld64.c", + "src/qc8-igemm/gen/3x4c2-minmax-fp32-sse41-ld128.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-sse41-ld64.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-sse41-ld128.c", + "src/qc8-igemm/gen/4x4c2-minmax-fp32-sse41-ld64.c", + "src/qc8-igemm/gen/4x4c2-minmax-fp32-sse41-ld128.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16-add16.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse41-mul32.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16-add16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse41-mul32.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-sse41-mul16-add16.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-sse41-mul16.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-sse41-mul32.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-sse41-mul16-add16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-sse41-mul16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-sse41-mul32.c", + "src/qs8-dwconv/gen/up24x9-minmax-fp32-sse41-mul16.c", + "src/qs8-dwconv/gen/up24x9-minmax-fp32-sse41-mul32.c", + "src/qs8-dwconv/gen/up24x25-minmax-fp32-sse41-mul16.c", + "src/qs8-dwconv/gen/up24x25-minmax-fp32-sse41-mul32.c", + "src/qs8-f32-vcvt/gen/vcvt-sse41-x8.c", + "src/qs8-f32-vcvt/gen/vcvt-sse41-x16.c", + "src/qs8-f32-vcvt/gen/vcvt-sse41-x24.c", + "src/qs8-f32-vcvt/gen/vcvt-sse41-x32.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse41-c8.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse41-c16.c", + "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse41-c24.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-sse41-c8.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-sse41-c16.c", + "src/qs8-gavgpool/gen/7x-minmax-fp32-sse41-c24.c", + "src/qs8-gemm/gen/1x4c2-minmax-fp32-sse41-ld64.c", + "src/qs8-gemm/gen/1x4c2-minmax-fp32-sse41-ld128.c", + "src/qs8-gemm/gen/1x4c2-xw-minmax-fp32-sse41.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-sse41-ld64.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-sse41-ld128.c", + "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-sse41.c", + "src/qs8-gemm/gen/2x4c2-minmax-fp32-sse41-ld64.c", + "src/qs8-gemm/gen/2x4c2-minmax-fp32-sse41-ld128.c", + "src/qs8-gemm/gen/2x4c2-xw-minmax-fp32-sse41.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-sse41-ld64.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-sse41-ld128.c", + "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-sse41.c", + "src/qs8-gemm/gen/3x4c2-minmax-fp32-sse41-ld64.c", + "src/qs8-gemm/gen/3x4c2-minmax-fp32-sse41-ld128.c", + "src/qs8-gemm/gen/3x4c2-xw-minmax-fp32-sse41.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-sse41-ld64.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-sse41-ld128.c", + "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-sse41.c", + "src/qs8-gemm/gen/4x4c2-minmax-fp32-sse41-ld64.c", + "src/qs8-gemm/gen/4x4c2-minmax-fp32-sse41-ld128.c", + "src/qs8-gemm/gen/4x4c2-xw-minmax-fp32-sse41.c", + "src/qs8-igemm/gen/1x4c2-minmax-fp32-sse41-ld64.c", + "src/qs8-igemm/gen/1x4c2-minmax-fp32-sse41-ld128.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-sse41-ld64.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-sse41-ld128.c", + "src/qs8-igemm/gen/2x4c2-minmax-fp32-sse41-ld64.c", + "src/qs8-igemm/gen/2x4c2-minmax-fp32-sse41-ld128.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-sse41-ld64.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-sse41-ld128.c", + "src/qs8-igemm/gen/3x4c2-minmax-fp32-sse41-ld64.c", + "src/qs8-igemm/gen/3x4c2-minmax-fp32-sse41-ld128.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-sse41-ld64.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-sse41-ld128.c", + "src/qs8-igemm/gen/4x4c2-minmax-fp32-sse41-ld64.c", + "src/qs8-igemm/gen/4x4c2-minmax-fp32-sse41-ld128.c", "src/qs8-requantization/fp32-sse4.c", - "src/qs8-requantization/precise-sse4.c", - "src/qs8-requantization/q31-sse4.c", + "src/qs8-requantization/gemmlowp-sse4.c", + "src/qs8-requantization/rndna-sse4.c", + "src/qs8-requantization/rndnu-sse4-sra.c", + "src/qs8-requantization/rndnu-sse4-srl.c", "src/qs8-vadd/gen/minmax-sse41-mul16-ld64-x8.c", "src/qs8-vadd/gen/minmax-sse41-mul16-ld64-x16.c", "src/qs8-vadd/gen/minmax-sse41-mul16-ld64-x24.c", @@ -1864,25 +5506,181 @@ SSE41_UKERNELS = [ "src/qs8-vaddc/gen/minmax-sse41-mul32-ld32-x16.c", "src/qs8-vaddc/gen/minmax-sse41-mul32-ld32-x24.c", "src/qs8-vaddc/gen/minmax-sse41-mul32-ld32-x32.c", - "src/qu8-requantization/precise-sse4.c", - "src/qu8-requantization/q31-sse4.c", + "src/qs8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x8.c", + "src/qs8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x16.c", + "src/qs8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x8.c", + "src/qs8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c", + "src/qu8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16.c", + "src/qu8-dwconv/gen/up8x9-minmax-fp32-sse41-mul32.c", + "src/qu8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16.c", + "src/qu8-dwconv/gen/up8x25-minmax-fp32-sse41-mul32.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-sse41-mul16.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-sse41-mul32.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-sse41-mul16.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-sse41-mul32.c", + "src/qu8-f32-vcvt/gen/vcvt-sse41-x8.c", + "src/qu8-f32-vcvt/gen/vcvt-sse41-x16.c", + "src/qu8-f32-vcvt/gen/vcvt-sse41-x24.c", + "src/qu8-f32-vcvt/gen/vcvt-sse41-x32.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse41-c8.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse41-c16.c", + "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse41-c24.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-sse41-c8.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-sse41-c16.c", + "src/qu8-gavgpool/gen/7x-minmax-fp32-sse41-c24.c", + "src/qu8-gemm/gen/1x4c2-minmax-fp32-sse41-ld64.c", + "src/qu8-gemm/gen/1x4c2-minmax-fp32-sse41-ld128.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-sse41-ld64.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-sse41-ld128.c", + "src/qu8-gemm/gen/2x4c2-minmax-fp32-sse41-ld64.c", + "src/qu8-gemm/gen/2x4c2-minmax-fp32-sse41-ld128.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-sse41-ld64.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-sse41-ld128.c", + "src/qu8-gemm/gen/3x4c2-minmax-fp32-sse41-ld64.c", + "src/qu8-gemm/gen/3x4c2-minmax-fp32-sse41-ld128.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-sse41-ld64.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-sse41-ld128.c", + "src/qu8-gemm/gen/4x4c2-minmax-fp32-sse41-ld64.c", + "src/qu8-gemm/gen/4x4c2-minmax-fp32-sse41-ld128.c", + "src/qu8-igemm/gen/1x4c2-minmax-fp32-sse41-ld64.c", + "src/qu8-igemm/gen/1x4c2-minmax-fp32-sse41-ld128.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-sse41-ld64.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-sse41-ld128.c", + "src/qu8-igemm/gen/2x4c2-minmax-fp32-sse41-ld64.c", + "src/qu8-igemm/gen/2x4c2-minmax-fp32-sse41-ld128.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-sse41-ld64.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-sse41-ld128.c", + "src/qu8-igemm/gen/3x4c2-minmax-fp32-sse41-ld64.c", + "src/qu8-igemm/gen/3x4c2-minmax-fp32-sse41-ld128.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-sse41-ld64.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-sse41-ld128.c", + "src/qu8-igemm/gen/4x4c2-minmax-fp32-sse41-ld64.c", + "src/qu8-igemm/gen/4x4c2-minmax-fp32-sse41-ld128.c", + "src/qu8-requantization/gemmlowp-sse4.c", + "src/qu8-requantization/rndna-sse4.c", + "src/qu8-vadd/gen/minmax-sse41-mul16-ld64-x8.c", + "src/qu8-vadd/gen/minmax-sse41-mul16-ld64-x16.c", + "src/qu8-vadd/gen/minmax-sse41-mul32-ld32-x8.c", + "src/qu8-vadd/gen/minmax-sse41-mul32-ld32-x16.c", + "src/qu8-vaddc/gen/minmax-sse41-mul16-ld64-x8.c", + "src/qu8-vaddc/gen/minmax-sse41-mul16-ld64-x16.c", + "src/qu8-vaddc/gen/minmax-sse41-mul32-ld32-x8.c", + "src/qu8-vaddc/gen/minmax-sse41-mul32-ld32-x16.c", + "src/qu8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x8.c", + "src/qu8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x16.c", + "src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x8.c", + "src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c", + "src/s8-ibilinear/gen/sse41-c8.c", + "src/s8-ibilinear/gen/sse41-c16.c", + "src/s8-maxpool/9p8x-minmax-sse41-c16.c", + "src/s8-vclamp/sse41-x64.c", + "src/u8-ibilinear/gen/sse41-c8.c", + "src/u8-ibilinear/gen/sse41-c16.c", +] + +PROD_AVX_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-avx-int16-x16.c", + "src/f32-dwconv/gen/up8x25-minmax-avx.c", + "src/f32-dwconv/gen/up16x3-minmax-avx.c", + "src/f32-dwconv/gen/up16x4-minmax-avx.c", + "src/f32-dwconv/gen/up16x9-minmax-avx.c", + "src/f32-f16-vcvt/gen/vcvt-avx-x24.c", + "src/f32-gemm/gen/1x16-minmax-avx-broadcast.c", + "src/f32-gemm/gen/5x16-minmax-avx-broadcast.c", + "src/f32-igemm/gen/1x16-minmax-avx-broadcast.c", + "src/f32-igemm/gen/5x16-minmax-avx-broadcast.c", + "src/f32-prelu/gen/avx-2x16.c", + "src/f32-qs8-vcvt/gen/vcvt-avx-x32.c", + "src/f32-qu8-vcvt/gen/vcvt-avx-x32.c", + "src/f32-vbinary/gen/vadd-minmax-avx-x16.c", + "src/f32-vbinary/gen/vaddc-minmax-avx-x16.c", + "src/f32-vbinary/gen/vdiv-minmax-avx-x16.c", + "src/f32-vbinary/gen/vdivc-minmax-avx-x16.c", + "src/f32-vbinary/gen/vmax-avx-x16.c", + "src/f32-vbinary/gen/vmaxc-avx-x16.c", + "src/f32-vbinary/gen/vmin-avx-x16.c", + "src/f32-vbinary/gen/vminc-avx-x16.c", + "src/f32-vbinary/gen/vmul-minmax-avx-x16.c", + "src/f32-vbinary/gen/vmulc-minmax-avx-x16.c", + "src/f32-vbinary/gen/vrdivc-minmax-avx-x16.c", + "src/f32-vbinary/gen/vrsubc-minmax-avx-x16.c", + "src/f32-vbinary/gen/vsqrdiff-avx-x16.c", + "src/f32-vbinary/gen/vsqrdiffc-avx-x16.c", + "src/f32-vbinary/gen/vsub-minmax-avx-x16.c", + "src/f32-vbinary/gen/vsubc-minmax-avx-x16.c", + "src/f32-vclamp/gen/vclamp-avx-x16.c", + "src/f32-velu/gen/velu-avx-rr2-lut4-p4-perm-x32.c", + "src/f32-vhswish/gen/vhswish-avx-x16.c", + "src/f32-vlrelu/gen/vlrelu-avx-x16.c", + "src/f32-vrnd/gen/vrndd-avx-x16.c", + "src/f32-vrnd/gen/vrndne-avx-x16.c", + "src/f32-vrnd/gen/vrndu-avx-x16.c", + "src/f32-vrnd/gen/vrndz-avx-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x40.c", + "src/f32-vsqrt/gen/avx-sqrt-x8.c", + "src/f32-vunary/gen/vabs-avx-x16.c", + "src/f32-vunary/gen/vneg-avx-x16.c", + "src/f32-vunary/gen/vsqr-avx-x16.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx-mul16-add16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx-mul16-add16.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-avx-ld128.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-avx-ld128.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-avx-ld128.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-avx-ld128.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx-mul16-add16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx-mul16-add16.c", + "src/qs8-f32-vcvt/gen/vcvt-avx-x32.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-avx-ld128.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-avx-ld128.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-avx-ld128.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-avx-ld128.c", + "src/qs8-vadd/gen/minmax-avx-mul32-ld32-x8.c", + "src/qs8-vaddc/gen/minmax-avx-mul32-ld32-x8.c", + "src/qs8-vmul/gen/minmax-fp32-avx-mul16-ld64-x16.c", + "src/qs8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x16.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-avx-mul16.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-avx-mul16.c", + "src/qu8-f32-vcvt/gen/vcvt-avx-x32.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-avx-ld128.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-avx-ld128.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-avx-ld128.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-avx-ld128.c", + "src/qu8-vadd/gen/minmax-avx-mul32-ld32-x8.c", + "src/qu8-vaddc/gen/minmax-avx-mul32-ld32-x8.c", + "src/qu8-vmul/gen/minmax-fp32-avx-mul16-ld64-x16.c", + "src/qu8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x16.c", + "src/x8-lut/gen/lut-avx-x64.c", ] -AVX_UKERNELS = [ - "src/f32-clamp/gen/avx-x8.c", - "src/f32-clamp/gen/avx-x16.c", +ALL_AVX_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-avx-int16-x8.c", + "src/f16-f32-vcvt/gen/vcvt-avx-int16-x16.c", + "src/f16-f32-vcvt/gen/vcvt-avx-int16-x24.c", + "src/f16-f32-vcvt/gen/vcvt-avx-int16-x32.c", + "src/f16-f32-vcvt/gen/vcvt-avx-int32-x8.c", + "src/f16-f32-vcvt/gen/vcvt-avx-int32-x16.c", + "src/f16-f32-vcvt/gen/vcvt-avx-int32-x24.c", + "src/f16-f32-vcvt/gen/vcvt-avx-int32-x32.c", + "src/f32-dwconv/gen/up8x3-minmax-avx-acc2.c", + "src/f32-dwconv/gen/up8x3-minmax-avx.c", "src/f32-dwconv/gen/up8x4-minmax-avx-acc2.c", "src/f32-dwconv/gen/up8x4-minmax-avx.c", "src/f32-dwconv/gen/up8x9-minmax-avx-acc2.c", "src/f32-dwconv/gen/up8x9-minmax-avx.c", "src/f32-dwconv/gen/up8x25-minmax-avx-acc2.c", "src/f32-dwconv/gen/up8x25-minmax-avx.c", + "src/f32-dwconv/gen/up16x3-minmax-avx-acc2.c", + "src/f32-dwconv/gen/up16x3-minmax-avx.c", "src/f32-dwconv/gen/up16x4-minmax-avx-acc2.c", "src/f32-dwconv/gen/up16x4-minmax-avx.c", "src/f32-dwconv/gen/up16x9-minmax-avx-acc2.c", "src/f32-dwconv/gen/up16x9-minmax-avx.c", "src/f32-dwconv/gen/up16x25-minmax-avx-acc2.c", "src/f32-dwconv/gen/up16x25-minmax-avx.c", + "src/f32-f16-vcvt/gen/vcvt-avx-x8.c", + "src/f32-f16-vcvt/gen/vcvt-avx-x16.c", + "src/f32-f16-vcvt/gen/vcvt-avx-x24.c", + "src/f32-f16-vcvt/gen/vcvt-avx-x32.c", "src/f32-gemm/gen-inc/1x8inc-minmax-avx-broadcast.c", "src/f32-gemm/gen-inc/1x16inc-minmax-avx-broadcast.c", "src/f32-gemm/gen-inc/3x16inc-minmax-avx-broadcast.c", @@ -1901,8 +5699,6 @@ AVX_UKERNELS = [ "src/f32-gemm/gen/5x16-minmax-avx-broadcast.c", "src/f32-gemm/gen/6x8-minmax-avx-broadcast.c", "src/f32-gemm/gen/7x8-minmax-avx-broadcast.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/1x16-minmax-avx-broadcast.c", "src/f32-igemm/gen/3x16-minmax-avx-broadcast.c", @@ -1914,29 +5710,15 @@ AVX_UKERNELS = [ "src/f32-igemm/gen/7x8-minmax-avx-broadcast.c", "src/f32-prelu/gen/avx-2x8.c", "src/f32-prelu/gen/avx-2x16.c", - "src/f32-relu/gen/avx-x8.c", - "src/f32-relu/gen/avx-x16.c", + "src/f32-qs8-vcvt/gen/vcvt-avx-x8.c", + "src/f32-qs8-vcvt/gen/vcvt-avx-x16.c", + "src/f32-qs8-vcvt/gen/vcvt-avx-x24.c", + "src/f32-qs8-vcvt/gen/vcvt-avx-x32.c", + "src/f32-qu8-vcvt/gen/vcvt-avx-x8.c", + "src/f32-qu8-vcvt/gen/vcvt-avx-x16.c", + "src/f32-qu8-vcvt/gen/vcvt-avx-x24.c", + "src/f32-qu8-vcvt/gen/vcvt-avx-x32.c", "src/f32-rmax/avx.c", - "src/f32-sigmoid/gen/avx-rr2-p5-div-x8.c", - "src/f32-sigmoid/gen/avx-rr2-p5-div-x16.c", - "src/f32-sigmoid/gen/avx-rr2-p5-div-x24.c", - "src/f32-sigmoid/gen/avx-rr2-p5-div-x32.c", - "src/f32-sigmoid/gen/avx-rr2-p5-div-x40.c", - "src/f32-sigmoid/gen/avx-rr2-p5-div-x48.c", - "src/f32-sigmoid/gen/avx-rr2-p5-div-x56.c", - "src/f32-sigmoid/gen/avx-rr2-p5-div-x64.c", - "src/f32-sigmoid/gen/avx-rr2-p5-div-x72.c", - "src/f32-sigmoid/gen/avx-rr2-p5-div-x80.c", - "src/f32-sigmoid/gen/avx-rr2-p5-nr2-x8.c", - "src/f32-sigmoid/gen/avx-rr2-p5-nr2-x16.c", - "src/f32-sigmoid/gen/avx-rr2-p5-nr2-x24.c", - "src/f32-sigmoid/gen/avx-rr2-p5-nr2-x32.c", - "src/f32-sigmoid/gen/avx-rr2-p5-nr2-x40.c", - "src/f32-sigmoid/gen/avx-rr2-p5-nr2-x48.c", - "src/f32-sigmoid/gen/avx-rr2-p5-nr2-x56.c", - "src/f32-sigmoid/gen/avx-rr2-p5-nr2-x64.c", - "src/f32-sigmoid/gen/avx-rr2-p5-nr2-x72.c", - "src/f32-sigmoid/gen/avx-rr2-p5-nr2-x80.c", "src/f32-vbinary/gen/vadd-minmax-avx-x8.c", "src/f32-vbinary/gen/vadd-minmax-avx-x16.c", "src/f32-vbinary/gen/vaddc-minmax-avx-x8.c", @@ -1969,6 +5751,8 @@ AVX_UKERNELS = [ "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-vclamp/gen/vclamp-avx-x8.c", + "src/f32-vclamp/gen/vclamp-avx-x16.c", "src/f32-velu/gen/velu-avx-rr2-lut4-p4-perm-x8.c", "src/f32-velu/gen/velu-avx-rr2-lut4-p4-perm-x16.c", "src/f32-velu/gen/velu-avx-rr2-lut4-p4-perm-x24.c", @@ -1987,8 +5771,12 @@ AVX_UKERNELS = [ "src/f32-velu/gen/velu-avx-rr2-p6-x32.c", "src/f32-velu/gen/velu-avx-rr2-p6-x40.c", "src/f32-velu/gen/velu-avx-rr2-p6-x48.c", + "src/f32-vhswish/gen/vhswish-avx-x8.c", + "src/f32-vhswish/gen/vhswish-avx-x16.c", "src/f32-vlrelu/gen/vlrelu-avx-x8.c", "src/f32-vlrelu/gen/vlrelu-avx-x16.c", + "src/f32-vrelu/gen/vrelu-avx-x8.c", + "src/f32-vrelu/gen/vrelu-avx-x16.c", "src/f32-vrnd/gen/vrndd-avx-x8.c", "src/f32-vrnd/gen/vrndd-avx-x16.c", "src/f32-vrnd/gen/vrndne-avx-x8.c", @@ -1997,7 +5785,26 @@ AVX_UKERNELS = [ "src/f32-vrnd/gen/vrndu-avx-x16.c", "src/f32-vrnd/gen/vrndz-avx-x8.c", "src/f32-vrnd/gen/vrndz-avx-x16.c", - "src/f32-vscale/avx-x32.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x32.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x40.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x48.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x56.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x64.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x72.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x80.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x32.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x40.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x48.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x56.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x64.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x72.c", + "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x80.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", @@ -2014,34 +5821,358 @@ AVX_UKERNELS = [ "src/math/sigmoid-avx-rr2-p5-div.c", "src/math/sigmoid-avx-rr2-p5-nr1.c", "src/math/sigmoid-avx-rr2-p5-nr2.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-avx-mul16-add16.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-avx-mul16.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-avx-mul32.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-avx-mul16-add16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-avx-mul16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-avx-mul32.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx-mul16-add16.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx-mul16.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx-mul32.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx-mul16-add16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx-mul16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx-mul32.c", + "src/qc8-dwconv/gen/up24x9-minmax-fp32-avx-mul16.c", + "src/qc8-dwconv/gen/up24x9-minmax-fp32-avx-mul32.c", + "src/qc8-dwconv/gen/up24x25-minmax-fp32-avx-mul16.c", + "src/qc8-dwconv/gen/up24x25-minmax-fp32-avx-mul32.c", + "src/qc8-gemm/gen/1x4c2-minmax-fp32-avx-ld64.c", + "src/qc8-gemm/gen/1x4c2-minmax-fp32-avx-ld128.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-avx-ld64.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-avx-ld128.c", + "src/qc8-gemm/gen/2x4c2-minmax-fp32-avx-ld64.c", + "src/qc8-gemm/gen/2x4c2-minmax-fp32-avx-ld128.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-avx-ld64.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-avx-ld128.c", + "src/qc8-gemm/gen/3x4c2-minmax-fp32-avx-ld64.c", + "src/qc8-gemm/gen/3x4c2-minmax-fp32-avx-ld128.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-avx-ld64.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-avx-ld128.c", + "src/qc8-gemm/gen/4x4c2-minmax-fp32-avx-ld64.c", + "src/qc8-gemm/gen/4x4c2-minmax-fp32-avx-ld128.c", + "src/qc8-igemm/gen/1x4c2-minmax-fp32-avx-ld64.c", + "src/qc8-igemm/gen/1x4c2-minmax-fp32-avx-ld128.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-avx-ld64.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-avx-ld128.c", + "src/qc8-igemm/gen/2x4c2-minmax-fp32-avx-ld64.c", + "src/qc8-igemm/gen/2x4c2-minmax-fp32-avx-ld128.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-avx-ld64.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-avx-ld128.c", + "src/qc8-igemm/gen/3x4c2-minmax-fp32-avx-ld64.c", + "src/qc8-igemm/gen/3x4c2-minmax-fp32-avx-ld128.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-avx-ld64.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-avx-ld128.c", + "src/qc8-igemm/gen/4x4c2-minmax-fp32-avx-ld64.c", + "src/qc8-igemm/gen/4x4c2-minmax-fp32-avx-ld128.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-avx-mul16-add16.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-avx-mul16.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-avx-mul32.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-avx-mul16-add16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-avx-mul16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-avx-mul32.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx-mul16-add16.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx-mul16.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx-mul32.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx-mul16-add16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx-mul16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx-mul32.c", + "src/qs8-dwconv/gen/up24x9-minmax-fp32-avx-mul16.c", + "src/qs8-dwconv/gen/up24x9-minmax-fp32-avx-mul32.c", + "src/qs8-dwconv/gen/up24x25-minmax-fp32-avx-mul16.c", + "src/qs8-dwconv/gen/up24x25-minmax-fp32-avx-mul32.c", + "src/qs8-f32-vcvt/gen/vcvt-avx-x8.c", + "src/qs8-f32-vcvt/gen/vcvt-avx-x16.c", + "src/qs8-f32-vcvt/gen/vcvt-avx-x24.c", + "src/qs8-f32-vcvt/gen/vcvt-avx-x32.c", + "src/qs8-gemm/gen/1x4c2-minmax-fp32-avx-ld64.c", + "src/qs8-gemm/gen/1x4c2-minmax-fp32-avx-ld128.c", + "src/qs8-gemm/gen/1x4c2-xw-minmax-fp32-avx.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-avx-ld64.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-avx-ld128.c", + "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-avx.c", + "src/qs8-gemm/gen/2x4c2-minmax-fp32-avx-ld64.c", + "src/qs8-gemm/gen/2x4c2-minmax-fp32-avx-ld128.c", + "src/qs8-gemm/gen/2x4c2-xw-minmax-fp32-avx.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-avx-ld64.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-avx-ld128.c", + "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-avx.c", + "src/qs8-gemm/gen/3x4c2-minmax-fp32-avx-ld64.c", + "src/qs8-gemm/gen/3x4c2-minmax-fp32-avx-ld128.c", + "src/qs8-gemm/gen/3x4c2-xw-minmax-fp32-avx.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-avx-ld64.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-avx-ld128.c", + "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-avx.c", + "src/qs8-gemm/gen/4x4c2-minmax-fp32-avx-ld64.c", + "src/qs8-gemm/gen/4x4c2-minmax-fp32-avx-ld128.c", + "src/qs8-gemm/gen/4x4c2-xw-minmax-fp32-avx.c", + "src/qs8-igemm/gen/1x4c2-minmax-fp32-avx-ld64.c", + "src/qs8-igemm/gen/1x4c2-minmax-fp32-avx-ld128.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-avx-ld64.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-avx-ld128.c", + "src/qs8-igemm/gen/2x4c2-minmax-fp32-avx-ld64.c", + "src/qs8-igemm/gen/2x4c2-minmax-fp32-avx-ld128.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-avx-ld64.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-avx-ld128.c", + "src/qs8-igemm/gen/3x4c2-minmax-fp32-avx-ld64.c", + "src/qs8-igemm/gen/3x4c2-minmax-fp32-avx-ld128.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-avx-ld64.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-avx-ld128.c", + "src/qs8-igemm/gen/4x4c2-minmax-fp32-avx-ld64.c", + "src/qs8-igemm/gen/4x4c2-minmax-fp32-avx-ld128.c", + "src/qs8-vadd/gen/minmax-avx-mul16-ld64-x8.c", + "src/qs8-vadd/gen/minmax-avx-mul16-ld64-x16.c", + "src/qs8-vadd/gen/minmax-avx-mul16-ld64-x24.c", + "src/qs8-vadd/gen/minmax-avx-mul16-ld64-x32.c", + "src/qs8-vadd/gen/minmax-avx-mul32-ld32-x8.c", + "src/qs8-vadd/gen/minmax-avx-mul32-ld32-x16.c", + "src/qs8-vadd/gen/minmax-avx-mul32-ld32-x24.c", + "src/qs8-vadd/gen/minmax-avx-mul32-ld32-x32.c", + "src/qs8-vaddc/gen/minmax-avx-mul16-ld64-x8.c", + "src/qs8-vaddc/gen/minmax-avx-mul16-ld64-x16.c", + "src/qs8-vaddc/gen/minmax-avx-mul16-ld64-x24.c", + "src/qs8-vaddc/gen/minmax-avx-mul16-ld64-x32.c", + "src/qs8-vaddc/gen/minmax-avx-mul32-ld32-x8.c", + "src/qs8-vaddc/gen/minmax-avx-mul32-ld32-x16.c", + "src/qs8-vaddc/gen/minmax-avx-mul32-ld32-x24.c", + "src/qs8-vaddc/gen/minmax-avx-mul32-ld32-x32.c", + "src/qs8-vmul/gen/minmax-fp32-avx-mul16-ld64-x8.c", + "src/qs8-vmul/gen/minmax-fp32-avx-mul16-ld64-x16.c", + "src/qs8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x8.c", + "src/qs8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x16.c", + "src/qu8-dwconv/gen/up8x9-minmax-fp32-avx-mul16.c", + "src/qu8-dwconv/gen/up8x9-minmax-fp32-avx-mul32.c", + "src/qu8-dwconv/gen/up8x25-minmax-fp32-avx-mul16.c", + "src/qu8-dwconv/gen/up8x25-minmax-fp32-avx-mul32.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-avx-mul16.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-avx-mul32.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-avx-mul16.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-avx-mul32.c", + "src/qu8-f32-vcvt/gen/vcvt-avx-x8.c", + "src/qu8-f32-vcvt/gen/vcvt-avx-x16.c", + "src/qu8-f32-vcvt/gen/vcvt-avx-x24.c", + "src/qu8-f32-vcvt/gen/vcvt-avx-x32.c", + "src/qu8-gemm/gen/1x4c2-minmax-fp32-avx-ld64.c", + "src/qu8-gemm/gen/1x4c2-minmax-fp32-avx-ld128.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-avx-ld64.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-avx-ld128.c", + "src/qu8-gemm/gen/2x4c2-minmax-fp32-avx-ld64.c", + "src/qu8-gemm/gen/2x4c2-minmax-fp32-avx-ld128.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-avx-ld64.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-avx-ld128.c", + "src/qu8-gemm/gen/3x4c2-minmax-fp32-avx-ld64.c", + "src/qu8-gemm/gen/3x4c2-minmax-fp32-avx-ld128.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-avx-ld64.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-avx-ld128.c", + "src/qu8-gemm/gen/4x4c2-minmax-fp32-avx-ld64.c", + "src/qu8-gemm/gen/4x4c2-minmax-fp32-avx-ld128.c", + "src/qu8-igemm/gen/1x4c2-minmax-fp32-avx-ld64.c", + "src/qu8-igemm/gen/1x4c2-minmax-fp32-avx-ld128.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-avx-ld64.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-avx-ld128.c", + "src/qu8-igemm/gen/2x4c2-minmax-fp32-avx-ld64.c", + "src/qu8-igemm/gen/2x4c2-minmax-fp32-avx-ld128.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-avx-ld64.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-avx-ld128.c", + "src/qu8-igemm/gen/3x4c2-minmax-fp32-avx-ld64.c", + "src/qu8-igemm/gen/3x4c2-minmax-fp32-avx-ld128.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-avx-ld64.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-avx-ld128.c", + "src/qu8-igemm/gen/4x4c2-minmax-fp32-avx-ld64.c", + "src/qu8-igemm/gen/4x4c2-minmax-fp32-avx-ld128.c", + "src/qu8-vadd/gen/minmax-avx-mul16-ld64-x8.c", + "src/qu8-vadd/gen/minmax-avx-mul16-ld64-x16.c", + "src/qu8-vadd/gen/minmax-avx-mul32-ld32-x8.c", + "src/qu8-vadd/gen/minmax-avx-mul32-ld32-x16.c", + "src/qu8-vaddc/gen/minmax-avx-mul16-ld64-x8.c", + "src/qu8-vaddc/gen/minmax-avx-mul16-ld64-x16.c", + "src/qu8-vaddc/gen/minmax-avx-mul32-ld32-x8.c", + "src/qu8-vaddc/gen/minmax-avx-mul32-ld32-x16.c", + "src/qu8-vmul/gen/minmax-fp32-avx-mul16-ld64-x8.c", + "src/qu8-vmul/gen/minmax-fp32-avx-mul16-ld64-x16.c", + "src/qu8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x8.c", + "src/qu8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x16.c", + "src/x8-lut/gen/lut-avx-x16.c", + "src/x8-lut/gen/lut-avx-x32.c", + "src/x8-lut/gen/lut-avx-x48.c", + "src/x8-lut/gen/lut-avx-x64.c", +] + +PROD_F16C_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-f16c-x16.c", + "src/f16-gavgpool/gen/7p7x-minmax-f16c-c8.c", + "src/f16-gavgpool/gen/7x-minmax-f16c-c8.c", + "src/f16-maxpool/9p8x-minmax-f16c-c8.c", + "src/f16-prelu/gen/f16c-2x16.c", + "src/f16-vbinary/gen/vadd-minmax-f16c-x16.c", + "src/f16-vbinary/gen/vaddc-minmax-f16c-x16.c", + "src/f16-vbinary/gen/vmul-minmax-f16c-x16.c", + "src/f16-vbinary/gen/vmulc-minmax-f16c-x16.c", + "src/f16-vhswish/gen/vhswish-f16c-x16.c", + "src/f32-f16-vcvt/gen/vcvt-f16c-x16.c", +] + +ALL_F16C_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-f16c-x8.c", + "src/f16-f32-vcvt/gen/vcvt-f16c-x16.c", + "src/f16-gavgpool/gen/7p7x-minmax-f16c-c8.c", + "src/f16-gavgpool/gen/7p7x-minmax-f16c-c16.c", + "src/f16-gavgpool/gen/7p7x-minmax-f16c-c24.c", + "src/f16-gavgpool/gen/7p7x-minmax-f16c-c32.c", + "src/f16-gavgpool/gen/7x-minmax-f16c-c8.c", + "src/f16-gavgpool/gen/7x-minmax-f16c-c16.c", + "src/f16-gavgpool/gen/7x-minmax-f16c-c24.c", + "src/f16-gavgpool/gen/7x-minmax-f16c-c32.c", + "src/f16-maxpool/9p8x-minmax-f16c-c8.c", + "src/f16-prelu/gen/f16c-2x8.c", + "src/f16-prelu/gen/f16c-2x16.c", + "src/f16-vbinary/gen/vadd-minmax-f16c-x8.c", + "src/f16-vbinary/gen/vadd-minmax-f16c-x16.c", + "src/f16-vbinary/gen/vaddc-minmax-f16c-x8.c", + "src/f16-vbinary/gen/vaddc-minmax-f16c-x16.c", + "src/f16-vbinary/gen/vdiv-minmax-f16c-x8.c", + "src/f16-vbinary/gen/vdiv-minmax-f16c-x16.c", + "src/f16-vbinary/gen/vdivc-minmax-f16c-x8.c", + "src/f16-vbinary/gen/vdivc-minmax-f16c-x16.c", + "src/f16-vbinary/gen/vmax-f16c-x8.c", + "src/f16-vbinary/gen/vmax-f16c-x16.c", + "src/f16-vbinary/gen/vmaxc-f16c-x8.c", + "src/f16-vbinary/gen/vmaxc-f16c-x16.c", + "src/f16-vbinary/gen/vmin-f16c-x8.c", + "src/f16-vbinary/gen/vmin-f16c-x16.c", + "src/f16-vbinary/gen/vminc-f16c-x8.c", + "src/f16-vbinary/gen/vminc-f16c-x16.c", + "src/f16-vbinary/gen/vmul-minmax-f16c-x8.c", + "src/f16-vbinary/gen/vmul-minmax-f16c-x16.c", + "src/f16-vbinary/gen/vmulc-minmax-f16c-x8.c", + "src/f16-vbinary/gen/vmulc-minmax-f16c-x16.c", + "src/f16-vbinary/gen/vrdivc-minmax-f16c-x8.c", + "src/f16-vbinary/gen/vrdivc-minmax-f16c-x16.c", + "src/f16-vbinary/gen/vrsubc-minmax-f16c-x8.c", + "src/f16-vbinary/gen/vrsubc-minmax-f16c-x16.c", + "src/f16-vbinary/gen/vsub-minmax-f16c-x8.c", + "src/f16-vbinary/gen/vsub-minmax-f16c-x16.c", + "src/f16-vbinary/gen/vsubc-minmax-f16c-x8.c", + "src/f16-vbinary/gen/vsubc-minmax-f16c-x16.c", + "src/f16-vclamp/gen/vclamp-f16c-x8.c", + "src/f16-vclamp/gen/vclamp-f16c-x16.c", + "src/f16-vhswish/gen/vhswish-f16c-x8.c", + "src/f16-vhswish/gen/vhswish-f16c-x16.c", + "src/f32-f16-vcvt/gen/vcvt-f16c-x8.c", + "src/f32-f16-vcvt/gen/vcvt-f16c-x16.c", + "src/math/cvt-f16-f32-f16c.c", + "src/math/cvt-f32-f16-f16c.c", +] + +PROD_XOP_MICROKERNEL_SRCS = [ + "src/qc8-dwconv/gen/up16x9-minmax-fp32-xop-mul16-add16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-xop-mul16-add16.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-xop-ld64.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-xop-ld64.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-xop-ld64.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-xop-ld64.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-xop-mul16-add16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-xop-mul16-add16.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-xop-ld64.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-xop-ld64.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-xop-ld64.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-xop-ld64.c", + "src/qs8-vadd/gen/minmax-xop-mul32-ld32-x8.c", + "src/qs8-vaddc/gen/minmax-xop-mul32-ld32-x8.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-xop-mul32.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-xop-mul32.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-xop-ld64.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-xop-ld64.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-xop-ld64.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-xop-ld64.c", + "src/qu8-vadd/gen/minmax-xop-mul32-ld32-x8.c", + "src/qu8-vaddc/gen/minmax-xop-mul32-ld32-x8.c", ] -XOP_UKERNELS = [ - "src/qs8-gemm/gen/1x4c2-minmax-xop-ld64.c", - "src/qs8-gemm/gen/1x4c2-minmax-xop-ld128.c", - "src/qs8-gemm/gen/1x4c2-xw-minmax-xop.c", - "src/qs8-gemm/gen/1x4c8-minmax-xop-ld64.c", - "src/qs8-gemm/gen/1x4c8-minmax-xop-ld128.c", - "src/qs8-gemm/gen/1x4c8-xw-minmax-xop.c", - "src/qs8-gemm/gen/2x4c8-minmax-xop-ld64.c", - "src/qs8-gemm/gen/2x4c8-minmax-xop-ld128.c", - "src/qs8-gemm/gen/2x4c8-xw-minmax-xop.c", - "src/qs8-gemm/gen/3x4c8-minmax-xop-ld64.c", - "src/qs8-gemm/gen/3x4c8-minmax-xop-ld128.c", - "src/qs8-gemm/gen/3x4c8-xw-minmax-xop.c", - "src/qs8-gemm/gen/4x4c2-minmax-xop-ld64.c", - "src/qs8-gemm/gen/4x4c2-minmax-xop-ld128.c", - "src/qs8-gemm/gen/4x4c2-xw-minmax-xop.c", - "src/qs8-igemm/gen/1x4c2-minmax-xop-ld64.c", - "src/qs8-igemm/gen/1x4c2-minmax-xop-ld128.c", - "src/qs8-igemm/gen/1x4c8-minmax-xop-ld64.c", - "src/qs8-igemm/gen/1x4c8-minmax-xop-ld128.c", - "src/qs8-igemm/gen/2x4c8-minmax-xop-ld64.c", - "src/qs8-igemm/gen/2x4c8-minmax-xop-ld128.c", - "src/qs8-igemm/gen/3x4c8-minmax-xop-ld64.c", - "src/qs8-igemm/gen/3x4c8-minmax-xop-ld128.c", - "src/qs8-igemm/gen/4x4c2-minmax-xop-ld64.c", - "src/qs8-igemm/gen/4x4c2-minmax-xop-ld128.c", +ALL_XOP_MICROKERNEL_SRCS = [ + "src/qc8-dwconv/gen/up8x9-minmax-fp32-xop-mul16-add16.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-xop-mul32.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-xop-mul16-add16.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-xop-mul32.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-xop-mul16-add16.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-xop-mul32.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-xop-mul16-add16.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-xop-mul32.c", + "src/qc8-dwconv/gen/up24x9-minmax-fp32-xop-mul32.c", + "src/qc8-dwconv/gen/up24x25-minmax-fp32-xop-mul32.c", + "src/qc8-gemm/gen/1x4c2-minmax-fp32-xop-ld64.c", + "src/qc8-gemm/gen/1x4c2-minmax-fp32-xop-ld128.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-xop-ld64.c", + "src/qc8-gemm/gen/1x4c8-minmax-fp32-xop-ld128.c", + "src/qc8-gemm/gen/2x4c2-minmax-fp32-xop-ld64.c", + "src/qc8-gemm/gen/2x4c2-minmax-fp32-xop-ld128.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-xop-ld64.c", + "src/qc8-gemm/gen/2x4c8-minmax-fp32-xop-ld128.c", + "src/qc8-gemm/gen/3x4c2-minmax-fp32-xop-ld64.c", + "src/qc8-gemm/gen/3x4c2-minmax-fp32-xop-ld128.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-xop-ld64.c", + "src/qc8-gemm/gen/3x4c8-minmax-fp32-xop-ld128.c", + "src/qc8-gemm/gen/4x4c2-minmax-fp32-xop-ld64.c", + "src/qc8-gemm/gen/4x4c2-minmax-fp32-xop-ld128.c", + "src/qc8-igemm/gen/1x4c2-minmax-fp32-xop-ld64.c", + "src/qc8-igemm/gen/1x4c2-minmax-fp32-xop-ld128.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-xop-ld64.c", + "src/qc8-igemm/gen/1x4c8-minmax-fp32-xop-ld128.c", + "src/qc8-igemm/gen/2x4c2-minmax-fp32-xop-ld64.c", + "src/qc8-igemm/gen/2x4c2-minmax-fp32-xop-ld128.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-xop-ld64.c", + "src/qc8-igemm/gen/2x4c8-minmax-fp32-xop-ld128.c", + "src/qc8-igemm/gen/3x4c2-minmax-fp32-xop-ld64.c", + "src/qc8-igemm/gen/3x4c2-minmax-fp32-xop-ld128.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-xop-ld64.c", + "src/qc8-igemm/gen/3x4c8-minmax-fp32-xop-ld128.c", + "src/qc8-igemm/gen/4x4c2-minmax-fp32-xop-ld64.c", + "src/qc8-igemm/gen/4x4c2-minmax-fp32-xop-ld128.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-xop-mul16-add16.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-xop-mul32.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-xop-mul16-add16.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-xop-mul32.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-xop-mul16-add16.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-xop-mul32.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-xop-mul16-add16.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-xop-mul32.c", + "src/qs8-dwconv/gen/up24x9-minmax-fp32-xop-mul32.c", + "src/qs8-dwconv/gen/up24x25-minmax-fp32-xop-mul32.c", + "src/qs8-gemm/gen/1x4c2-minmax-fp32-xop-ld64.c", + "src/qs8-gemm/gen/1x4c2-minmax-fp32-xop-ld128.c", + "src/qs8-gemm/gen/1x4c2-xw-minmax-fp32-xop.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-xop-ld64.c", + "src/qs8-gemm/gen/1x4c8-minmax-fp32-xop-ld128.c", + "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-xop.c", + "src/qs8-gemm/gen/2x4c2-minmax-fp32-xop-ld64.c", + "src/qs8-gemm/gen/2x4c2-minmax-fp32-xop-ld128.c", + "src/qs8-gemm/gen/2x4c2-xw-minmax-fp32-xop.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-xop-ld64.c", + "src/qs8-gemm/gen/2x4c8-minmax-fp32-xop-ld128.c", + "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-xop.c", + "src/qs8-gemm/gen/3x4c2-minmax-fp32-xop-ld64.c", + "src/qs8-gemm/gen/3x4c2-minmax-fp32-xop-ld128.c", + "src/qs8-gemm/gen/3x4c2-xw-minmax-fp32-xop.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-xop-ld64.c", + "src/qs8-gemm/gen/3x4c8-minmax-fp32-xop-ld128.c", + "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-xop.c", + "src/qs8-gemm/gen/4x4c2-minmax-fp32-xop-ld64.c", + "src/qs8-gemm/gen/4x4c2-minmax-fp32-xop-ld128.c", + "src/qs8-gemm/gen/4x4c2-xw-minmax-fp32-xop.c", + "src/qs8-igemm/gen/1x4c2-minmax-fp32-xop-ld64.c", + "src/qs8-igemm/gen/1x4c2-minmax-fp32-xop-ld128.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-xop-ld64.c", + "src/qs8-igemm/gen/1x4c8-minmax-fp32-xop-ld128.c", + "src/qs8-igemm/gen/2x4c2-minmax-fp32-xop-ld64.c", + "src/qs8-igemm/gen/2x4c2-minmax-fp32-xop-ld128.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-xop-ld64.c", + "src/qs8-igemm/gen/2x4c8-minmax-fp32-xop-ld128.c", + "src/qs8-igemm/gen/3x4c2-minmax-fp32-xop-ld64.c", + "src/qs8-igemm/gen/3x4c2-minmax-fp32-xop-ld128.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-xop-ld64.c", + "src/qs8-igemm/gen/3x4c8-minmax-fp32-xop-ld128.c", + "src/qs8-igemm/gen/4x4c2-minmax-fp32-xop-ld64.c", + "src/qs8-igemm/gen/4x4c2-minmax-fp32-xop-ld128.c", "src/qs8-vadd/gen/minmax-xop-mul32-ld32-x8.c", "src/qs8-vadd/gen/minmax-xop-mul32-ld32-x16.c", "src/qs8-vadd/gen/minmax-xop-mul32-ld32-x24.c", @@ -2050,15 +6181,95 @@ XOP_UKERNELS = [ "src/qs8-vaddc/gen/minmax-xop-mul32-ld32-x16.c", "src/qs8-vaddc/gen/minmax-xop-mul32-ld32-x24.c", "src/qs8-vaddc/gen/minmax-xop-mul32-ld32-x32.c", + "src/qu8-dwconv/gen/up8x9-minmax-fp32-xop-mul32.c", + "src/qu8-dwconv/gen/up8x25-minmax-fp32-xop-mul32.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-xop-mul32.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-xop-mul32.c", + "src/qu8-gemm/gen/1x4c2-minmax-fp32-xop-ld64.c", + "src/qu8-gemm/gen/1x4c2-minmax-fp32-xop-ld128.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-xop-ld64.c", + "src/qu8-gemm/gen/1x4c8-minmax-fp32-xop-ld128.c", + "src/qu8-gemm/gen/2x4c2-minmax-fp32-xop-ld64.c", + "src/qu8-gemm/gen/2x4c2-minmax-fp32-xop-ld128.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-xop-ld64.c", + "src/qu8-gemm/gen/2x4c8-minmax-fp32-xop-ld128.c", + "src/qu8-gemm/gen/3x4c2-minmax-fp32-xop-ld64.c", + "src/qu8-gemm/gen/3x4c2-minmax-fp32-xop-ld128.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-xop-ld64.c", + "src/qu8-gemm/gen/3x4c8-minmax-fp32-xop-ld128.c", + "src/qu8-gemm/gen/4x4c2-minmax-fp32-xop-ld64.c", + "src/qu8-gemm/gen/4x4c2-minmax-fp32-xop-ld128.c", + "src/qu8-igemm/gen/1x4c2-minmax-fp32-xop-ld64.c", + "src/qu8-igemm/gen/1x4c2-minmax-fp32-xop-ld128.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-xop-ld64.c", + "src/qu8-igemm/gen/1x4c8-minmax-fp32-xop-ld128.c", + "src/qu8-igemm/gen/2x4c2-minmax-fp32-xop-ld64.c", + "src/qu8-igemm/gen/2x4c2-minmax-fp32-xop-ld128.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-xop-ld64.c", + "src/qu8-igemm/gen/2x4c8-minmax-fp32-xop-ld128.c", + "src/qu8-igemm/gen/3x4c2-minmax-fp32-xop-ld64.c", + "src/qu8-igemm/gen/3x4c2-minmax-fp32-xop-ld128.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-xop-ld64.c", + "src/qu8-igemm/gen/3x4c8-minmax-fp32-xop-ld128.c", + "src/qu8-igemm/gen/4x4c2-minmax-fp32-xop-ld64.c", + "src/qu8-igemm/gen/4x4c2-minmax-fp32-xop-ld128.c", + "src/qu8-vadd/gen/minmax-xop-mul32-ld32-x8.c", + "src/qu8-vadd/gen/minmax-xop-mul32-ld32-x16.c", + "src/qu8-vaddc/gen/minmax-xop-mul32-ld32-x8.c", + "src/qu8-vaddc/gen/minmax-xop-mul32-ld32-x16.c", ] -FMA3_UKERNELS = [ +PROD_FMA3_MICROKERNEL_SRCS = [ + "src/f16-dwconv/gen/up8x25-minmax-fma3-acc2.c", + "src/f16-dwconv/gen/up16x4-minmax-fma3.c", + "src/f16-dwconv/gen/up16x9-minmax-fma3.c", + "src/f16-vmulcaddc/gen/c8-minmax-fma3-2x.c", + "src/f32-dwconv/gen/up8x25-minmax-fma3.c", + "src/f32-dwconv/gen/up16x3-minmax-fma3.c", + "src/f32-dwconv/gen/up16x4-minmax-fma3.c", + "src/f32-dwconv/gen/up16x9-minmax-fma3.c", + "src/f32-gemm/gen/1x16-minmax-fma3-broadcast.c", + "src/f32-gemm/gen/1x16s4-minmax-fma3-broadcast.c", + "src/f32-gemm/gen/4x16s4-minmax-fma3-broadcast.c", + "src/f32-gemm/gen/5x16-minmax-fma3-broadcast.c", + "src/f32-igemm/gen/1x16-minmax-fma3-broadcast.c", + "src/f32-igemm/gen/1x16s4-minmax-fma3-broadcast.c", + "src/f32-igemm/gen/4x16s4-minmax-fma3-broadcast.c", + "src/f32-igemm/gen/5x16-minmax-fma3-broadcast.c", + "src/f32-vhswish/gen/vhswish-fma3-x16.c", +] + +ALL_FMA3_MICROKERNEL_SRCS = [ + "src/f16-dwconv/gen/up8x4-minmax-fma3-acc2.c", + "src/f16-dwconv/gen/up8x4-minmax-fma3.c", + "src/f16-dwconv/gen/up8x9-minmax-fma3-acc2.c", + "src/f16-dwconv/gen/up8x9-minmax-fma3.c", + "src/f16-dwconv/gen/up8x25-minmax-fma3-acc2.c", + "src/f16-dwconv/gen/up8x25-minmax-fma3.c", + "src/f16-dwconv/gen/up16x4-minmax-fma3-acc2.c", + "src/f16-dwconv/gen/up16x4-minmax-fma3.c", + "src/f16-dwconv/gen/up16x9-minmax-fma3-acc2.c", + "src/f16-dwconv/gen/up16x9-minmax-fma3.c", + "src/f16-dwconv/gen/up16x25-minmax-fma3-acc2.c", + "src/f16-dwconv/gen/up16x25-minmax-fma3.c", + "src/f16-dwconv/gen/up32x4-minmax-fma3-acc2.c", + "src/f16-dwconv/gen/up32x4-minmax-fma3.c", + "src/f16-dwconv/gen/up32x9-minmax-fma3-acc2.c", + "src/f16-dwconv/gen/up32x9-minmax-fma3.c", + "src/f16-dwconv/gen/up32x25-minmax-fma3-acc2.c", + "src/f16-dwconv/gen/up32x25-minmax-fma3.c", + "src/f16-vmulcaddc/gen/c8-minmax-fma3-2x.c", + "src/f16-vmulcaddc/gen/c16-minmax-fma3-2x.c", + "src/f32-dwconv/gen/up8x3-minmax-fma3-acc2.c", + "src/f32-dwconv/gen/up8x3-minmax-fma3.c", "src/f32-dwconv/gen/up8x4-minmax-fma3-acc2.c", "src/f32-dwconv/gen/up8x4-minmax-fma3.c", "src/f32-dwconv/gen/up8x9-minmax-fma3-acc2.c", "src/f32-dwconv/gen/up8x9-minmax-fma3.c", "src/f32-dwconv/gen/up8x25-minmax-fma3-acc2.c", "src/f32-dwconv/gen/up8x25-minmax-fma3.c", + "src/f32-dwconv/gen/up16x3-minmax-fma3-acc2.c", + "src/f32-dwconv/gen/up16x3-minmax-fma3.c", "src/f32-dwconv/gen/up16x4-minmax-fma3-acc2.c", "src/f32-dwconv/gen/up16x4-minmax-fma3.c", "src/f32-dwconv/gen/up16x9-minmax-fma3-acc2.c", @@ -2093,8 +6304,6 @@ FMA3_UKERNELS = [ "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-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/1x16-minmax-fma3-broadcast.c", "src/f32-igemm/gen/1x16s4-minmax-fma3-broadcast.c", @@ -2109,6 +6318,8 @@ FMA3_UKERNELS = [ "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-vhswish/gen/vhswish-fma3-x8.c", + "src/f32-vhswish/gen/vhswish-fma3-x16.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", @@ -2122,7 +6333,69 @@ FMA3_UKERNELS = [ "src/math/sqrt-fma3-nr2fma.c", ] -AVX2_UKERNELS = [ +PROD_AVX2_MICROKERNEL_SRCS = [ + "src/f16-gemm/gen/1x16-minmax-avx2-broadcast.c", + "src/f16-gemm/gen/4x16-minmax-avx2-broadcast.c", + "src/f16-igemm/gen/1x16-minmax-avx2-broadcast.c", + "src/f16-igemm/gen/4x16-minmax-avx2-broadcast.c", + "src/f32-qs8-vcvt/gen/vcvt-avx2-x64.c", + "src/f32-qu8-vcvt/gen/vcvt-avx2-x64.c", + "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x56.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x40.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx2-mul32.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx2-mul32.c", + "src/qc8-gemm/gen/1x8c8-minmax-fp32-avx2.c", + "src/qc8-gemm/gen/3x8c8-minmax-fp32-avx2.c", + "src/qc8-igemm/gen/1x8c8-minmax-fp32-avx2.c", + "src/qc8-igemm/gen/3x8c8-minmax-fp32-avx2.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx2-mul32.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx2-mul32.c", + "src/qs8-f32-vcvt/gen/vcvt-avx2-x16.c", + "src/qs8-gemm/gen/1x8c8-minmax-fp32-avx2.c", + "src/qs8-gemm/gen/3x8c8-minmax-fp32-avx2.c", + "src/qs8-igemm/gen/1x8c8-minmax-fp32-avx2.c", + "src/qs8-igemm/gen/3x8c8-minmax-fp32-avx2.c", + "src/qs8-vadd/gen/minmax-avx2-mul32-ld64-x16.c", + "src/qs8-vaddc/gen/minmax-avx2-mul32-ld64-x16.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-avx2-mul32.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-avx2-mul32.c", + "src/qu8-f32-vcvt/gen/vcvt-avx2-x16.c", + "src/qu8-gemm/gen/1x8c8-minmax-fp32-avx2.c", + "src/qu8-gemm/gen/3x8c8-minmax-fp32-avx2.c", + "src/qu8-igemm/gen/1x8c8-minmax-fp32-avx2.c", + "src/qu8-igemm/gen/3x8c8-minmax-fp32-avx2.c", + "src/qu8-vadd/gen/minmax-avx2-mul32-ld64-x16.c", + "src/qu8-vaddc/gen/minmax-avx2-mul32-ld64-x16.c", + "src/x8-lut/gen/lut-avx2-x128.c", +] + +ALL_AVX2_MICROKERNEL_SRCS = [ + "src/f16-gemm/gen/1x8-minmax-avx2-broadcast.c", + "src/f16-gemm/gen/1x16-minmax-avx2-broadcast.c", + "src/f16-gemm/gen/3x16-minmax-avx2-broadcast.c", + "src/f16-gemm/gen/4x8-minmax-avx2-broadcast.c", + "src/f16-gemm/gen/4x16-minmax-avx2-broadcast.c", + "src/f16-gemm/gen/5x8-minmax-avx2-broadcast.c", + "src/f16-gemm/gen/5x16-minmax-avx2-broadcast.c", + "src/f16-gemm/gen/6x8-minmax-avx2-broadcast.c", + "src/f16-gemm/gen/7x8-minmax-avx2-broadcast.c", + "src/f16-igemm/gen/1x8-minmax-avx2-broadcast.c", + "src/f16-igemm/gen/1x16-minmax-avx2-broadcast.c", + "src/f16-igemm/gen/3x16-minmax-avx2-broadcast.c", + "src/f16-igemm/gen/4x8-minmax-avx2-broadcast.c", + "src/f16-igemm/gen/4x16-minmax-avx2-broadcast.c", + "src/f16-igemm/gen/5x8-minmax-avx2-broadcast.c", + "src/f16-igemm/gen/5x16-minmax-avx2-broadcast.c", + "src/f16-igemm/gen/6x8-minmax-avx2-broadcast.c", + "src/f16-igemm/gen/7x8-minmax-avx2-broadcast.c", + "src/f32-qs8-vcvt/gen/vcvt-avx2-x16.c", + "src/f32-qs8-vcvt/gen/vcvt-avx2-x32.c", + "src/f32-qs8-vcvt/gen/vcvt-avx2-x48.c", + "src/f32-qs8-vcvt/gen/vcvt-avx2-x64.c", + "src/f32-qu8-vcvt/gen/vcvt-avx2-x16.c", + "src/f32-qu8-vcvt/gen/vcvt-avx2-x32.c", + "src/f32-qu8-vcvt/gen/vcvt-avx2-x48.c", + "src/f32-qu8-vcvt/gen/vcvt-avx2-x64.c", "src/f32-raddexpminusmax/gen/avx2-p5-x64-acc2.c", "src/f32-raddexpminusmax/gen/avx2-p5-x64-acc4.c", "src/f32-raddexpminusmax/gen/avx2-p5-x64.c", @@ -2147,48 +6420,18 @@ AVX2_UKERNELS = [ "src/f32-raddextexp/gen/avx2-p5-x96-acc3.c", "src/f32-raddextexp/gen/avx2-p5-x96-acc6.c", "src/f32-raddextexp/gen/avx2-p5-x96.c", - "src/f32-raddstoreexpminusmax/gen/avx2-p5-x64-acc2.c", - "src/f32-raddstoreexpminusmax/gen/avx2-p5-x64-acc4.c", - "src/f32-raddstoreexpminusmax/gen/avx2-p5-x64.c", - "src/f32-raddstoreexpminusmax/gen/avx2-p5-x72-acc3.c", - "src/f32-raddstoreexpminusmax/gen/avx2-p5-x72.c", - "src/f32-raddstoreexpminusmax/gen/avx2-p5-x80-acc2.c", - "src/f32-raddstoreexpminusmax/gen/avx2-p5-x80-acc5.c", - "src/f32-raddstoreexpminusmax/gen/avx2-p5-x80.c", - "src/f32-raddstoreexpminusmax/gen/avx2-p5-x96-acc2.c", - "src/f32-raddstoreexpminusmax/gen/avx2-p5-x96-acc3.c", - "src/f32-raddstoreexpminusmax/gen/avx2-p5-x96-acc6.c", - "src/f32-raddstoreexpminusmax/gen/avx2-p5-x96.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-div-x8.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-div-x16.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-div-x24.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-div-x32.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-div-x40.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-div-x48.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-div-x56.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-div-x64.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-div-x72.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-div-x80.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x8.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x16.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x24.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x32.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x40.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x48.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x56.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x64.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x72.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr1fma-x80.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x8.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x16.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x24.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x32.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x40.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x48.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x56.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x64.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x72.c", - "src/f32-sigmoid/gen/avx2-rr1-p5-nr2fma-x80.c", + "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x64-acc2.c", + "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x64-acc4.c", + "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x64.c", + "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x72-acc3.c", + "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x72.c", + "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x80-acc2.c", + "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x80-acc5.c", + "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x80.c", + "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x96-acc2.c", + "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x96-acc3.c", + "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x96-acc6.c", + "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x96.c", "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x8.c", "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x16.c", "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x24.c", @@ -2253,6 +6496,36 @@ AVX2_UKERNELS = [ "src/f32-vscaleextexp/gen/avx2-p5-x80.c", "src/f32-vscaleextexp/gen/avx2-p5-x88.c", "src/f32-vscaleextexp/gen/avx2-p5-x96.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x32.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x40.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x48.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x56.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x64.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x72.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x80.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x32.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x40.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x48.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x56.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x64.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x72.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x80.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x8.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x24.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x32.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x40.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x48.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x56.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x64.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x72.c", + "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x80.c", "src/math/exp-avx2-rr2-lut8-p3-perm.c", "src/math/exp-avx2-rr2-lut8-p4-perm.c", "src/math/exp-avx2-rr2-p5.c", @@ -2260,6 +6533,7 @@ AVX2_UKERNELS = [ "src/math/expm1minus-avx2-rr1-lut8-p4-perm.c", "src/math/expm1minus-avx2-rr1-lut16-p3-gather.c", "src/math/expm1minus-avx2-rr1-p6.c", + "src/math/expminus-avx2-rr1-p5.c", "src/math/expminus-avx2-rr2-p5.c", "src/math/extexp-avx2-p5.c", "src/math/sigmoid-avx2-rr1-lut64-p2-gather-div.c", @@ -2276,21 +6550,68 @@ AVX2_UKERNELS = [ "src/math/sigmoid-avx2-rr2-p5-div.c", "src/math/sigmoid-avx2-rr2-p5-nr1fma.c", "src/math/sigmoid-avx2-rr2-p5-nr2fma.c", - "src/qs8-dwconv/gen/up8x9-minmax-avx2-mul32.c", - "src/qs8-dwconv/gen/up16x9-minmax-avx2-mul16.c", - "src/qs8-dwconv/gen/up16x9-minmax-avx2-mul32.c", - "src/qs8-dwconv/gen/up24x9-minmax-avx2-mul32.c", - "src/qs8-dwconv/gen/up32x9-minmax-avx2-mul16.c", - "src/qs8-dwconv/gen/up32x9-minmax-avx2-mul32.c", - "src/qs8-gemm/gen/1x8c8-minmax-avx2.c", - "src/qs8-gemm/gen/1x8c8-xw-minmax-avx2.c", - "src/qs8-gemm/gen/2x8c8-minmax-avx2.c", - "src/qs8-gemm/gen/2x8c8-xw-minmax-avx2.c", - "src/qs8-gemm/gen/3x8c8-minmax-avx2.c", - "src/qs8-gemm/gen/3x8c8-xw-minmax-avx2.c", - "src/qs8-igemm/gen/1x8c8-minmax-avx2.c", - "src/qs8-igemm/gen/2x8c8-minmax-avx2.c", - "src/qs8-igemm/gen/3x8c8-minmax-avx2.c", + "src/qc8-dwconv/gen/up8x9-minmax-fp32-avx2-mul32.c", + "src/qc8-dwconv/gen/up8x25-minmax-fp32-avx2-mul32.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx2-mul16-add16-vpunpck.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx2-mul16-vpmovsx.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx2-mul16-vpunpck.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx2-mul32.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx2-mul16-add16-vpunpck.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx2-mul16-vpmovsx.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx2-mul16-vpunpck.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx2-mul32.c", + "src/qc8-dwconv/gen/up24x9-minmax-fp32-avx2-mul32.c", + "src/qc8-dwconv/gen/up24x25-minmax-fp32-avx2-mul32.c", + "src/qc8-dwconv/gen/up32x9-minmax-fp32-avx2-mul16-add16-vpunpck.c", + "src/qc8-dwconv/gen/up32x9-minmax-fp32-avx2-mul16-vpmovsx.c", + "src/qc8-dwconv/gen/up32x9-minmax-fp32-avx2-mul16-vpunpck.c", + "src/qc8-dwconv/gen/up32x9-minmax-fp32-avx2-mul32.c", + "src/qc8-dwconv/gen/up32x25-minmax-fp32-avx2-mul16-add16-vpunpck.c", + "src/qc8-dwconv/gen/up32x25-minmax-fp32-avx2-mul16-vpmovsx.c", + "src/qc8-dwconv/gen/up32x25-minmax-fp32-avx2-mul16-vpunpck.c", + "src/qc8-dwconv/gen/up32x25-minmax-fp32-avx2-mul32.c", + "src/qc8-gemm/gen/1x8c8-minmax-fp32-avx2.c", + "src/qc8-gemm/gen/1x8c8-xw-minmax-fp32-avx2.c", + "src/qc8-gemm/gen/2x8c8-minmax-fp32-avx2.c", + "src/qc8-gemm/gen/2x8c8-xw-minmax-fp32-avx2.c", + "src/qc8-gemm/gen/3x8c8-minmax-fp32-avx2.c", + "src/qc8-gemm/gen/3x8c8-xw-minmax-fp32-avx2.c", + "src/qc8-igemm/gen/1x8c8-minmax-fp32-avx2.c", + "src/qc8-igemm/gen/2x8c8-minmax-fp32-avx2.c", + "src/qc8-igemm/gen/3x8c8-minmax-fp32-avx2.c", + "src/qs8-dwconv/gen/up8x9-minmax-fp32-avx2-mul32.c", + "src/qs8-dwconv/gen/up8x25-minmax-fp32-avx2-mul32.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx2-mul16-add16-vpunpck.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx2-mul16-vpmovsx.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx2-mul16-vpunpck.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx2-mul32.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx2-mul16-add16-vpunpck.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx2-mul16-vpmovsx.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx2-mul16-vpunpck.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx2-mul32.c", + "src/qs8-dwconv/gen/up24x9-minmax-fp32-avx2-mul32.c", + "src/qs8-dwconv/gen/up24x25-minmax-fp32-avx2-mul32.c", + "src/qs8-dwconv/gen/up32x9-minmax-fp32-avx2-mul16-add16-vpunpck.c", + "src/qs8-dwconv/gen/up32x9-minmax-fp32-avx2-mul16-vpmovsx.c", + "src/qs8-dwconv/gen/up32x9-minmax-fp32-avx2-mul16-vpunpck.c", + "src/qs8-dwconv/gen/up32x9-minmax-fp32-avx2-mul32.c", + "src/qs8-dwconv/gen/up32x25-minmax-fp32-avx2-mul16-add16-vpunpck.c", + "src/qs8-dwconv/gen/up32x25-minmax-fp32-avx2-mul16-vpmovsx.c", + "src/qs8-dwconv/gen/up32x25-minmax-fp32-avx2-mul16-vpunpck.c", + "src/qs8-dwconv/gen/up32x25-minmax-fp32-avx2-mul32.c", + "src/qs8-f32-vcvt/gen/vcvt-avx2-x8.c", + "src/qs8-f32-vcvt/gen/vcvt-avx2-x16.c", + "src/qs8-f32-vcvt/gen/vcvt-avx2-x24.c", + "src/qs8-f32-vcvt/gen/vcvt-avx2-x32.c", + "src/qs8-gemm/gen/1x8c8-minmax-fp32-avx2.c", + "src/qs8-gemm/gen/1x8c8-xw-minmax-fp32-avx2.c", + "src/qs8-gemm/gen/2x8c8-minmax-fp32-avx2.c", + "src/qs8-gemm/gen/2x8c8-xw-minmax-fp32-avx2.c", + "src/qs8-gemm/gen/3x8c8-minmax-fp32-avx2.c", + "src/qs8-gemm/gen/3x8c8-xw-minmax-fp32-avx2.c", + "src/qs8-igemm/gen/1x8c8-minmax-fp32-avx2.c", + "src/qs8-igemm/gen/2x8c8-minmax-fp32-avx2.c", + "src/qs8-igemm/gen/3x8c8-minmax-fp32-avx2.c", "src/qs8-vadd/gen/minmax-avx2-mul32-ld64-x8.c", "src/qs8-vadd/gen/minmax-avx2-mul32-ld64-x16.c", "src/qs8-vadd/gen/minmax-avx2-mul32-ld64-x24.c", @@ -2299,17 +6620,83 @@ AVX2_UKERNELS = [ "src/qs8-vaddc/gen/minmax-avx2-mul32-ld64-x16.c", "src/qs8-vaddc/gen/minmax-avx2-mul32-ld64-x24.c", "src/qs8-vaddc/gen/minmax-avx2-mul32-ld64-x32.c", + "src/qu8-dwconv/gen/up8x9-minmax-fp32-avx2-mul32.c", + "src/qu8-dwconv/gen/up8x25-minmax-fp32-avx2-mul32.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-avx2-mul32.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-avx2-mul32.c", + "src/qu8-dwconv/gen/up32x9-minmax-fp32-avx2-mul32.c", + "src/qu8-dwconv/gen/up32x25-minmax-fp32-avx2-mul32.c", + "src/qu8-f32-vcvt/gen/vcvt-avx2-x8.c", + "src/qu8-f32-vcvt/gen/vcvt-avx2-x16.c", + "src/qu8-f32-vcvt/gen/vcvt-avx2-x24.c", + "src/qu8-f32-vcvt/gen/vcvt-avx2-x32.c", + "src/qu8-gemm/gen/1x8c8-minmax-fp32-avx2.c", + "src/qu8-gemm/gen/2x8c8-minmax-fp32-avx2.c", + "src/qu8-gemm/gen/3x8c8-minmax-fp32-avx2.c", + "src/qu8-igemm/gen/1x8c8-minmax-fp32-avx2.c", + "src/qu8-igemm/gen/2x8c8-minmax-fp32-avx2.c", + "src/qu8-igemm/gen/3x8c8-minmax-fp32-avx2.c", + "src/qu8-vadd/gen/minmax-avx2-mul32-ld64-x8.c", + "src/qu8-vadd/gen/minmax-avx2-mul32-ld64-x16.c", + "src/qu8-vaddc/gen/minmax-avx2-mul32-ld64-x8.c", + "src/qu8-vaddc/gen/minmax-avx2-mul32-ld64-x16.c", + "src/x8-lut/gen/lut-avx2-x32.c", + "src/x8-lut/gen/lut-avx2-x64.c", + "src/x8-lut/gen/lut-avx2-x96.c", + "src/x8-lut/gen/lut-avx2-x128.c", +] + +PROD_AVX512F_MICROKERNEL_SRCS = [ + "src/f32-dwconv/gen/up16x3-minmax-avx512f.c", + "src/f32-dwconv/gen/up16x4-minmax-avx512f.c", + "src/f32-dwconv/gen/up16x9-minmax-avx512f.c", + "src/f32-dwconv/gen/up16x25-minmax-avx512f.c", + "src/f32-gemm/gen/1x16-minmax-avx512f-broadcast.c", + "src/f32-gemm/gen/7x16-minmax-avx512f-broadcast.c", + "src/f32-igemm/gen/1x16-minmax-avx512f-broadcast.c", + "src/f32-igemm/gen/7x16-minmax-avx512f-broadcast.c", + "src/f32-prelu/gen/avx512f-2x16.c", + "src/f32-vbinary/gen/vadd-minmax-avx512f-x32.c", + "src/f32-vbinary/gen/vaddc-minmax-avx512f-x32.c", + "src/f32-vbinary/gen/vdiv-minmax-avx512f-x32.c", + "src/f32-vbinary/gen/vdivc-minmax-avx512f-x32.c", + "src/f32-vbinary/gen/vmax-avx512f-x32.c", + "src/f32-vbinary/gen/vmaxc-avx512f-x32.c", + "src/f32-vbinary/gen/vmin-avx512f-x32.c", + "src/f32-vbinary/gen/vminc-avx512f-x32.c", + "src/f32-vbinary/gen/vmul-minmax-avx512f-x32.c", + "src/f32-vbinary/gen/vmulc-minmax-avx512f-x32.c", + "src/f32-vbinary/gen/vrdivc-minmax-avx512f-x32.c", + "src/f32-vbinary/gen/vrsubc-minmax-avx512f-x32.c", + "src/f32-vbinary/gen/vsqrdiff-avx512f-x32.c", + "src/f32-vbinary/gen/vsqrdiffc-avx512f-x32.c", + "src/f32-vbinary/gen/vsub-minmax-avx512f-x32.c", + "src/f32-vbinary/gen/vsubc-minmax-avx512f-x32.c", + "src/f32-vclamp/gen/vclamp-avx512f-x16.c", + "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x64.c", + "src/f32-vhswish/gen/vhswish-avx512f-x16.c", + "src/f32-vlrelu/gen/vlrelu-avx512f-x16.c", + "src/f32-vrnd/gen/vrndd-avx512f-x16.c", + "src/f32-vrnd/gen/vrndne-avx512f-x16.c", + "src/f32-vrnd/gen/vrndu-avx512f-x16.c", + "src/f32-vrnd/gen/vrndz-avx512f-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x64.c", + "src/f32-vunary/gen/vabs-avx512f-x16.c", + "src/f32-vunary/gen/vneg-avx512f-x16.c", + "src/f32-vunary/gen/vsqr-avx512f-x16.c", ] -AVX512F_UKERNELS = [ - "src/f32-clamp/gen/avx512f-x16.c", - "src/f32-clamp/gen/avx512f-x32.c", +ALL_AVX512F_MICROKERNEL_SRCS = [ + "src/f32-dwconv/gen/up16x3-minmax-avx512f-acc2.c", + "src/f32-dwconv/gen/up16x3-minmax-avx512f.c", "src/f32-dwconv/gen/up16x4-minmax-avx512f-acc2.c", "src/f32-dwconv/gen/up16x4-minmax-avx512f.c", "src/f32-dwconv/gen/up16x9-minmax-avx512f-acc2.c", "src/f32-dwconv/gen/up16x9-minmax-avx512f.c", "src/f32-dwconv/gen/up16x25-minmax-avx512f-acc2.c", "src/f32-dwconv/gen/up16x25-minmax-avx512f.c", + "src/f32-dwconv/gen/up32x3-minmax-avx512f-acc2.c", + "src/f32-dwconv/gen/up32x3-minmax-avx512f.c", "src/f32-dwconv/gen/up32x4-minmax-avx512f-acc2.c", "src/f32-dwconv/gen/up32x4-minmax-avx512f.c", "src/f32-dwconv/gen/up32x9-minmax-avx512f-acc2.c", @@ -2328,8 +6715,6 @@ AVX512F_UKERNELS = [ "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-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", @@ -2362,69 +6747,19 @@ AVX512F_UKERNELS = [ "src/f32-raddextexp/gen/avx512f-p5-scalef-x192-acc3.c", "src/f32-raddextexp/gen/avx512f-p5-scalef-x192-acc6.c", "src/f32-raddextexp/gen/avx512f-p5-scalef-x192.c", - "src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x128-acc2.c", - "src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x128-acc4.c", - "src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x128.c", - "src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x144-acc3.c", - "src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x144.c", - "src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x160-acc2.c", - "src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x160-acc5.c", - "src/f32-raddstoreexpminusmax/gen/avx512f-p5-scalef-x160.c", - "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-raddstoreexpminusmax/gen/avx512f-p5-scalef-x192.c", - "src/f32-relu/gen/avx512f-x16.c", - "src/f32-relu/gen/avx512f-x32.c", + "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x128-acc2.c", + "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x128-acc4.c", + "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x128.c", + "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x144-acc3.c", + "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x144.c", + "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x160-acc2.c", + "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x160-acc5.c", + "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x160.c", + "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x192-acc2.c", + "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x192-acc3.c", + "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x192-acc6.c", + "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x192.c", "src/f32-rmax/avx512f.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-div-x16.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-div-x32.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-div-x48.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-div-x64.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-div-x80.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-div-x96.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-div-x112.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-div-x128.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x16.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x32.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x48.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x64.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x80.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x96.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x112.c", - "src/f32-sigmoid/gen/avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x128.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-div-x16.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-div-x32.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-div-x48.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-div-x64.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-div-x80.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-div-x96.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-div-x112.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-div-x128.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-nr1fma-x16.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-nr1fma-x32.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-nr1fma-x48.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-nr1fma-x64.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-nr1fma-x80.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-nr1fma-x96.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-nr1fma-x112.c", - "src/f32-sigmoid/gen/avx512f-rr1-p5-scalef-nr1fma-x128.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-div-x16.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-div-x32.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-div-x48.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-div-x64.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-div-x80.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-div-x96.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-div-x112.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-div-x128.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x16.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x32.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x48.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x64.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x80.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x96.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x112.c", - "src/f32-sigmoid/gen/avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x128.c", "src/f32-vbinary/gen/vadd-minmax-avx512f-x16.c", "src/f32-vbinary/gen/vadd-minmax-avx512f-x32.c", "src/f32-vbinary/gen/vaddc-minmax-avx512f-x16.c", @@ -2457,6 +6792,8 @@ AVX512F_UKERNELS = [ "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-vclamp/gen/vclamp-avx512f-x16.c", + "src/f32-vclamp/gen/vclamp-avx512f-x32.c", "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x16.c", "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x32.c", "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x48.c", @@ -2473,8 +6810,12 @@ AVX512F_UKERNELS = [ "src/f32-velu/gen/velu-avx512f-rr1-p6-x96.c", "src/f32-velu/gen/velu-avx512f-rr1-p6-x112.c", "src/f32-velu/gen/velu-avx512f-rr1-p6-x128.c", + "src/f32-vhswish/gen/vhswish-avx512f-x16.c", + "src/f32-vhswish/gen/vhswish-avx512f-x32.c", "src/f32-vlrelu/gen/vlrelu-avx512f-x16.c", "src/f32-vlrelu/gen/vlrelu-avx512f-x32.c", + "src/f32-vrelu/gen/vrelu-avx512f-x16.c", + "src/f32-vrelu/gen/vrelu-avx512f-x32.c", "src/f32-vrnd/gen/vrndd-avx512f-x16.c", "src/f32-vrnd/gen/vrndd-avx512f-x32.c", "src/f32-vrnd/gen/vrndne-avx512f-x16.c", @@ -2483,7 +6824,6 @@ AVX512F_UKERNELS = [ "src/f32-vrnd/gen/vrndu-avx512f-x32.c", "src/f32-vrnd/gen/vrndz-avx512f-x16.c", "src/f32-vrnd/gen/vrndz-avx512f-x32.c", - "src/f32-vscale/avx512f-x64.c", "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x16.c", "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x32.c", "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x48.c", @@ -2508,6 +6848,54 @@ AVX512F_UKERNELS = [ "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-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x32.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x48.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x64.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x80.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x96.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x112.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x128.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x32.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x48.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x64.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x80.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x96.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x112.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x128.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x32.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x48.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x64.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x80.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x96.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x112.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x128.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x32.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x48.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x64.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x80.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x96.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x112.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x128.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x32.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x48.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x64.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x80.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x96.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x112.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x128.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x16.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x32.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x48.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x64.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x80.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x96.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x112.c", + "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x128.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", @@ -2560,20 +6948,116 @@ AVX512F_UKERNELS = [ "src/math/sqrt-avx512f-nr2fma.c", ] -AVX512SKX_UKERNELS = [ - "src/qs8-dwconv/gen/up16x9-minmax-avx512skx-mul32.c", - "src/qs8-dwconv/gen/up32x9-minmax-avx512skx-mul32.c", - "src/qs8-gemm/gen/1x16c8-minmax-avx512skx.c", - "src/qs8-gemm/gen/2x16c8-minmax-avx512skx.c", - "src/qs8-gemm/gen/3x16c8-minmax-avx512skx.c", - "src/qs8-gemm/gen/4x16c8-minmax-avx512skx.c", - "src/qs8-igemm/gen/1x16c8-minmax-avx512skx.c", - "src/qs8-igemm/gen/2x16c8-minmax-avx512skx.c", - "src/qs8-igemm/gen/3x16c8-minmax-avx512skx.c", - "src/qs8-igemm/gen/4x16c8-minmax-avx512skx.c", +PROD_AVX512SKX_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-avx512skx-x16.c", + "src/f32-f16-vcvt/gen/vcvt-avx512skx-x16.c", + "src/f32-qs8-vcvt/gen/vcvt-avx512skx-x128.c", + "src/f32-qu8-vcvt/gen/vcvt-avx512skx-x128.c", + "src/qc8-dwconv/gen/up32x9-minmax-fp32-avx512skx-mul32.c", + "src/qc8-dwconv/gen/up32x25-minmax-fp32-avx512skx-mul32.c", + "src/qc8-gemm/gen/1x16c8-minmax-fp32-avx512skx.c", + "src/qc8-gemm/gen/4x16c8-minmax-fp32-avx512skx.c", + "src/qc8-igemm/gen/1x16c8-minmax-fp32-avx512skx.c", + "src/qc8-igemm/gen/4x16c8-minmax-fp32-avx512skx.c", + "src/qs8-dwconv/gen/up32x9-minmax-fp32-avx512skx-mul32.c", + "src/qs8-dwconv/gen/up32x25-minmax-fp32-avx512skx-mul32.c", + "src/qs8-f32-vcvt/gen/vcvt-avx512skx-x32.c", + "src/qs8-gemm/gen/1x16c8-minmax-fp32-avx512skx.c", + "src/qs8-gemm/gen/4x16c8-minmax-fp32-avx512skx.c", + "src/qs8-igemm/gen/1x16c8-minmax-fp32-avx512skx.c", + "src/qs8-igemm/gen/4x16c8-minmax-fp32-avx512skx.c", + "src/qs8-vadd/gen/minmax-avx512skx-mul32-ld128-x16.c", + "src/qs8-vaddc/gen/minmax-avx512skx-mul32-ld128-x16.c", + "src/qu8-dwconv/gen/up32x9-minmax-fp32-avx512skx-mul32.c", + "src/qu8-dwconv/gen/up32x25-minmax-fp32-avx512skx-mul32.c", + "src/qu8-f32-vcvt/gen/vcvt-avx512skx-x32.c", + "src/qu8-gemm/gen/1x16c8-minmax-fp32-avx512skx.c", + "src/qu8-gemm/gen/4x16c8-minmax-fp32-avx512skx.c", + "src/qu8-igemm/gen/1x16c8-minmax-fp32-avx512skx.c", + "src/qu8-igemm/gen/4x16c8-minmax-fp32-avx512skx.c", + "src/qu8-vadd/gen/minmax-avx512skx-mul32-ld128-x16.c", + "src/qu8-vaddc/gen/minmax-avx512skx-mul32-ld128-x16.c", + "src/x8-lut/gen/lut-avx512skx-vpshufb-x64.c", +] + +ALL_AVX512SKX_MICROKERNEL_SRCS = [ + "src/f16-f32-vcvt/gen/vcvt-avx512skx-x16.c", + "src/f16-f32-vcvt/gen/vcvt-avx512skx-x32.c", + "src/f32-f16-vcvt/gen/vcvt-avx512skx-x16.c", + "src/f32-f16-vcvt/gen/vcvt-avx512skx-x32.c", + "src/f32-qs8-vcvt/gen/vcvt-avx512skx-x32.c", + "src/f32-qs8-vcvt/gen/vcvt-avx512skx-x64.c", + "src/f32-qs8-vcvt/gen/vcvt-avx512skx-x96.c", + "src/f32-qs8-vcvt/gen/vcvt-avx512skx-x128.c", + "src/f32-qu8-vcvt/gen/vcvt-avx512skx-x32.c", + "src/f32-qu8-vcvt/gen/vcvt-avx512skx-x64.c", + "src/f32-qu8-vcvt/gen/vcvt-avx512skx-x96.c", + "src/f32-qu8-vcvt/gen/vcvt-avx512skx-x128.c", + "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx512skx-mul32.c", + "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx512skx-mul32.c", + "src/qc8-dwconv/gen/up32x9-minmax-fp32-avx512skx-mul32.c", + "src/qc8-dwconv/gen/up32x25-minmax-fp32-avx512skx-mul32.c", + "src/qc8-gemm/gen/1x16c8-minmax-fp32-avx512skx.c", + "src/qc8-gemm/gen/2x16c8-minmax-fp32-avx512skx.c", + "src/qc8-gemm/gen/3x16c8-minmax-fp32-avx512skx.c", + "src/qc8-gemm/gen/4x16c8-minmax-fp32-avx512skx.c", + "src/qc8-igemm/gen/1x16c8-minmax-fp32-avx512skx.c", + "src/qc8-igemm/gen/2x16c8-minmax-fp32-avx512skx.c", + "src/qc8-igemm/gen/3x16c8-minmax-fp32-avx512skx.c", + "src/qc8-igemm/gen/4x16c8-minmax-fp32-avx512skx.c", + "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx512skx-mul32.c", + "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx512skx-mul32.c", + "src/qs8-dwconv/gen/up32x9-minmax-fp32-avx512skx-mul32.c", + "src/qs8-dwconv/gen/up32x25-minmax-fp32-avx512skx-mul32.c", + "src/qs8-f32-vcvt/gen/vcvt-avx512skx-x16.c", + "src/qs8-f32-vcvt/gen/vcvt-avx512skx-x32.c", + "src/qs8-f32-vcvt/gen/vcvt-avx512skx-x48.c", + "src/qs8-f32-vcvt/gen/vcvt-avx512skx-x64.c", + "src/qs8-gemm/gen/1x16c8-minmax-fp32-avx512skx.c", + "src/qs8-gemm/gen/2x16c8-minmax-fp32-avx512skx.c", + "src/qs8-gemm/gen/3x16c8-minmax-fp32-avx512skx.c", + "src/qs8-gemm/gen/4x16c8-minmax-fp32-avx512skx.c", + "src/qs8-igemm/gen/1x16c8-minmax-fp32-avx512skx.c", + "src/qs8-igemm/gen/2x16c8-minmax-fp32-avx512skx.c", + "src/qs8-igemm/gen/3x16c8-minmax-fp32-avx512skx.c", + "src/qs8-igemm/gen/4x16c8-minmax-fp32-avx512skx.c", + "src/qs8-vadd/gen/minmax-avx512skx-mul32-ld128-x16.c", + "src/qs8-vadd/gen/minmax-avx512skx-mul32-ld128-x32.c", + "src/qs8-vaddc/gen/minmax-avx512skx-mul32-ld128-x16.c", + "src/qs8-vaddc/gen/minmax-avx512skx-mul32-ld128-x32.c", + "src/qu8-dwconv/gen/up16x9-minmax-fp32-avx512skx-mul32.c", + "src/qu8-dwconv/gen/up16x25-minmax-fp32-avx512skx-mul32.c", + "src/qu8-dwconv/gen/up32x9-minmax-fp32-avx512skx-mul32.c", + "src/qu8-dwconv/gen/up32x25-minmax-fp32-avx512skx-mul32.c", + "src/qu8-f32-vcvt/gen/vcvt-avx512skx-x16.c", + "src/qu8-f32-vcvt/gen/vcvt-avx512skx-x32.c", + "src/qu8-f32-vcvt/gen/vcvt-avx512skx-x48.c", + "src/qu8-f32-vcvt/gen/vcvt-avx512skx-x64.c", + "src/qu8-gemm/gen/1x16c8-minmax-fp32-avx512skx.c", + "src/qu8-gemm/gen/2x16c8-minmax-fp32-avx512skx.c", + "src/qu8-gemm/gen/3x16c8-minmax-fp32-avx512skx.c", + "src/qu8-gemm/gen/4x16c8-minmax-fp32-avx512skx.c", + "src/qu8-igemm/gen/1x16c8-minmax-fp32-avx512skx.c", + "src/qu8-igemm/gen/2x16c8-minmax-fp32-avx512skx.c", + "src/qu8-igemm/gen/3x16c8-minmax-fp32-avx512skx.c", + "src/qu8-igemm/gen/4x16c8-minmax-fp32-avx512skx.c", + "src/qu8-vadd/gen/minmax-avx512skx-mul32-ld128-x16.c", + "src/qu8-vadd/gen/minmax-avx512skx-mul32-ld128-x32.c", + "src/qu8-vaddc/gen/minmax-avx512skx-mul32-ld128-x16.c", + "src/qu8-vaddc/gen/minmax-avx512skx-mul32-ld128-x32.c", + "src/x8-lut/gen/lut-avx512skx-vpshufb-x64.c", + "src/x8-lut/gen/lut-avx512skx-vpshufb-x128.c", + "src/x8-lut/gen/lut-avx512skx-vpshufb-x192.c", + "src/x8-lut/gen/lut-avx512skx-vpshufb-x256.c", ] -AARCH32_ASM_UKERNELS = [ +WASM32_ASM_MICROKERNEL_SRCS = [ + "src/f32-vrelu/wasm_shr_x1.S", + "src/f32-vrelu/wasm_shr_x2.S", + "src/f32-vrelu/wasm_shr_x4.S", +] + +AARCH32_ASM_MICROKERNEL_SRCS = [ "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", @@ -2581,21 +7065,61 @@ AARCH32_ASM_UKERNELS = [ "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/gen/4x8-minmax-aarch32-neon-prfm-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", + "src/f32-igemm/gen/4x8-minmax-aarch32-neon-prfm-cortex-a75.S", + "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-cortex-a7.S", + "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-cortex-a53.S", + "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-ld64.S", + "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-prfm-cortex-a7.S", + "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-prfm-cortex-a53.S", + "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-prfm-ld64.S", + "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-cortex-a53.S", + "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-ld64.S", + "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-prfm-cortex-a53.S", + "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-prfm-ld64.S", + "src/qc8-gemm/gen/4x8c4-minmax-fp32-aarch32-neondot-cortex-a55.S", + "src/qc8-gemm/gen/4x8c4-minmax-fp32-aarch32-neondot-ld64.S", + "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-ld64.S", + "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-prfm-ld64.S", + "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-ld64.S", + "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-prfm-ld64.S", + "src/qc8-igemm/gen/4x8c4-minmax-fp32-aarch32-neondot-cortex-a55.S", + "src/qc8-igemm/gen/4x8c4-minmax-fp32-aarch32-neondot-ld64.S", + "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a7.S", + "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a53.S", + "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-ld64.S", + "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a7.S", + "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a53.S", + "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-ld64.S", + "src/qs8-gemm/gen/4x8c4-minmax-rndnu-aarch32-neondot-cortex-a55.S", + "src/qs8-gemm/gen/4x8c4-minmax-rndnu-aarch32-neondot-ld64.S", + "src/qs8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-ld64.S", + "src/qs8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-ld64.S", + "src/qs8-igemm/gen/4x8c4-minmax-rndnu-aarch32-neondot-cortex-a55.S", + "src/qs8-igemm/gen/4x8c4-minmax-rndnu-aarch32-neondot-ld64.S", + "src/qu8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a7.S", + "src/qu8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a53.S", + "src/qu8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-ld64.S", + "src/qu8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a7.S", + "src/qu8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a53.S", + "src/qu8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-ld64.S", + "src/qu8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-ld64.S", + "src/qu8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-ld64.S", ] -AARCH64_ASM_UKERNELS = [ +AARCH64_ASM_MICROKERNEL_SRCS = [ "src/f16-gemm/gen-inc/1x8inc-minmax-aarch64-neonfp16arith-ld64.S", "src/f16-gemm/gen-inc/1x16inc-minmax-aarch64-neonfp16arith-ld32.S", "src/f16-gemm/gen-inc/4x8inc-minmax-aarch64-neonfp16arith-ld64.S", "src/f16-gemm/gen-inc/4x16inc-minmax-aarch64-neonfp16arith-ld32.S", "src/f16-gemm/gen-inc/6x8inc-minmax-aarch64-neonfp16arith-ld64.S", + "src/f16-gemm/gen-inc/6x16inc-minmax-aarch64-neonfp16arith-cortex-a55.S", + "src/f16-gemm/gen-inc/6x16inc-minmax-aarch64-neonfp16arith-cortex-a75.S", "src/f16-gemm/gen-inc/6x16inc-minmax-aarch64-neonfp16arith-ld32.S", "src/f16-gemm/gen-inc/8x8inc-minmax-aarch64-neonfp16arith-ld64.S", "src/f16-gemm/gen/1x8-minmax-aarch64-neonfp16arith-ld64.S", @@ -2603,52 +7127,54 @@ AARCH64_ASM_UKERNELS = [ "src/f16-gemm/gen/4x8-minmax-aarch64-neonfp16arith-ld64.S", "src/f16-gemm/gen/4x16-minmax-aarch64-neonfp16arith-ld32.S", "src/f16-gemm/gen/6x8-minmax-aarch64-neonfp16arith-ld64.S", + "src/f16-gemm/gen/6x16-minmax-aarch64-neonfp16arith-cortex-a55.S", + "src/f16-gemm/gen/6x16-minmax-aarch64-neonfp16arith-cortex-a75.S", "src/f16-gemm/gen/6x16-minmax-aarch64-neonfp16arith-ld32.S", "src/f16-gemm/gen/8x8-minmax-aarch64-neonfp16arith-ld64.S", "src/f32-dwconv/up4x9-minmax-aarch64-neonfma-cortex-a55.S", "src/f32-dwconv/up4x9-minmax-aarch64-neonfma.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/1x8inc-minmax-aarch64-neonfma-ld64.S", + "src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-prfm-cortex-a75.S", "src/f32-gemm/gen-inc/1x12inc-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-ld64.S", "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld128.S", + "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-prfm-cortex-a75.S", "src/f32-gemm/gen-inc/4x12inc-minmax-aarch64-neonfma-cortex-a53.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/5x8inc-minmax-aarch64-neonfma-prfm-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-a57.S", "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a73.S", "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a75.S", "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld64.S", "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld128.S", + "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-prfm-cortex-a75.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/1x8-minmax-aarch64-neonfma-ld64.S", + "src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-prfm-cortex-a75.S", "src/f32-gemm/gen/1x12-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-ld64.S", "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld128.S", + "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-prfm-cortex-a75.S", "src/f32-gemm/gen/4x12-minmax-aarch64-neonfma-cortex-a53.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/5x8-minmax-aarch64-neonfma-prfm-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-a57.S", "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a73.S", "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S", "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld64.S", "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld128.S", + "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-prfm-cortex-a75.S", "src/f32-igemm/1x8-minmax-aarch64-neonfma-cortex-a53.S", "src/f32-igemm/1x12-minmax-aarch64-neonfma-cortex-a53.S", "src/f32-igemm/4x8-minmax-aarch64-neonfma-cortex-a53.S", @@ -2657,26 +7183,182 @@ AARCH64_ASM_UKERNELS = [ "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/1x8-minmax-aarch64-neonfma-cortex-a57.S", "src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S", - "src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a57.S", + "src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-prfm-cortex-a75.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/4x8-minmax-aarch64-neonfma-ld64.S", + "src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-ld128.S", + "src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-prfm-cortex-a75.S", "src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S", - "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a57.S", + "src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-prfm-cortex-a75.S", "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S", - "src/qs8-gemm/1x16c4-aarch64-neondot-ld32.S", - "src/qs8-gemm/1x16c4-aarch64-neondot-ld64.S", - "src/qs8-gemm/2x8c8-aarch64-neon-mull-padal.S", - "src/qs8-gemm/2x8c8-aarch64-neon-mlal-padal.S", - "src/qs8-gemm/2x8c16-aarch64-neon-mlal-padal.S", - "src/qs8-gemm/4x16c4-aarch64-neondot-cortex-a55.S", - "src/qs8-gemm/4x16c4-aarch64-neondot-ld32.S", - "src/qs8-gemm/4x16c4-aarch64-neondot-ld64.S", - "src/qs8-igemm/2x8c8-aarch64-neon-mlal-padal.S", - "src/qs8-igemm/2x8c16-aarch64-neon-mlal-padal.S", - "src/qs8-igemm/4x16c4-aarch64-neondot-cortex-a55.S", - "src/qs8-igemm/4x16c4-aarch64-neondot-ld64.S", + "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-ld64.S", + "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-ld128.S", + "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-prfm-cortex-a75.S", + "src/qc8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S", + "src/qc8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S", + "src/qc8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S", + "src/qc8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal.S", + "src/qc8-gemm/gen/1x16c4-minmax-fp32-aarch64-neondot-ld32.S", + "src/qc8-gemm/gen/1x16c4-minmax-fp32-aarch64-neondot-ld64.S", + "src/qc8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S", + "src/qc8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S", + "src/qc8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S", + "src/qc8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal.S", + "src/qc8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mull.S", + "src/qc8-gemm/gen/2x8c16-minmax-fp32-aarch64-neon-mlal.S", + "src/qc8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-cortex-a53.S", + "src/qc8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-ld64.S", + "src/qc8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-cortex-a53.S", + "src/qc8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-ld64.S", + "src/qc8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-cortex-a55.S", + "src/qc8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld32.S", + "src/qc8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld64.S", + "src/qc8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld128.S", + "src/qc8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S", + "src/qc8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S", + "src/qc8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S", + "src/qc8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal.S", + "src/qc8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S", + "src/qc8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S", + "src/qc8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S", + "src/qc8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal.S", + "src/qc8-igemm/gen/2x8c16-minmax-fp32-aarch64-neon-mlal.S", + "src/qc8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-cortex-a53.S", + "src/qc8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-ld64.S", + "src/qc8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-cortex-a53.S", + "src/qc8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-ld64.S", + "src/qc8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-cortex-a55.S", + "src/qc8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld64.S", + "src/qc8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld128.S", + "src/qs8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S", + "src/qs8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S", + "src/qs8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S", + "src/qs8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal.S", + "src/qs8-gemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal-cortex-a53.S", + "src/qs8-gemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal-prfm-cortex-a53.S", + "src/qs8-gemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal-prfm.S", + "src/qs8-gemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal.S", + "src/qs8-gemm/gen/1x16c4-minmax-fp32-aarch64-neondot-ld32.S", + "src/qs8-gemm/gen/1x16c4-minmax-fp32-aarch64-neondot-ld64.S", + "src/qs8-gemm/gen/1x16c4-minmax-rndnu-aarch64-neondot-ld32.S", + "src/qs8-gemm/gen/1x16c4-minmax-rndnu-aarch64-neondot-ld64.S", + "src/qs8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S", + "src/qs8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S", + "src/qs8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S", + "src/qs8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal.S", + "src/qs8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mull.S", + "src/qs8-gemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal-cortex-a53.S", + "src/qs8-gemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal-prfm-cortex-a53.S", + "src/qs8-gemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal-prfm.S", + "src/qs8-gemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal.S", + "src/qs8-gemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mull.S", + "src/qs8-gemm/gen/2x8c16-minmax-fp32-aarch64-neon-mlal.S", + "src/qs8-gemm/gen/2x8c16-minmax-rndnu-aarch64-neon-mlal.S", + "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch64-neon-mlal-lane-ld64.S", + "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch64-neon-mlal-lane-prfm-ld64.S", + "src/qs8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-cortex-a53.S", + "src/qs8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-ld64.S", + "src/qs8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-cortex-a53.S", + "src/qs8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-ld64.S", + "src/qs8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-cortex-a53.S", + "src/qs8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-ld64.S", + "src/qs8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-cortex-a53.S", + "src/qs8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-ld64.S", + "src/qs8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-cortex-a55.S", + "src/qs8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld32.S", + "src/qs8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld64.S", + "src/qs8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld128.S", + "src/qs8-gemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-cortex-a55.S", + "src/qs8-gemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld32.S", + "src/qs8-gemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld64.S", + "src/qs8-gemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld128.S", + "src/qs8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S", + "src/qs8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S", + "src/qs8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S", + "src/qs8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal.S", + "src/qs8-igemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal-cortex-a53.S", + "src/qs8-igemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal-prfm-cortex-a53.S", + "src/qs8-igemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal-prfm.S", + "src/qs8-igemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal.S", + "src/qs8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S", + "src/qs8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S", + "src/qs8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S", + "src/qs8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal.S", + "src/qs8-igemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal-cortex-a53.S", + "src/qs8-igemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal-prfm-cortex-a53.S", + "src/qs8-igemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal-prfm.S", + "src/qs8-igemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal.S", + "src/qs8-igemm/gen/2x8c16-minmax-fp32-aarch64-neon-mlal.S", + "src/qs8-igemm/gen/2x8c16-minmax-rndnu-aarch64-neon-mlal.S", + "src/qs8-igemm/gen/4x8-minmax-rndnu-aarch64-neon-mlal-lane-ld64.S", + "src/qs8-igemm/gen/4x8-minmax-rndnu-aarch64-neon-mlal-lane-prfm-ld64.S", + "src/qs8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-cortex-a53.S", + "src/qs8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-ld64.S", + "src/qs8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-cortex-a53.S", + "src/qs8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-ld64.S", + "src/qs8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-cortex-a53.S", + "src/qs8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-ld64.S", + "src/qs8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-cortex-a53.S", + "src/qs8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-ld64.S", + "src/qs8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-cortex-a55.S", + "src/qs8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld64.S", + "src/qs8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld128.S", + "src/qs8-igemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-cortex-a55.S", + "src/qs8-igemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld64.S", + "src/qs8-igemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld128.S", + "src/qu8-gemm/gen/4x8c4-minmax-rndnu-aarch64-neondot-cortex-a55.S", + "src/qu8-gemm/gen/4x8c4-minmax-rndnu-aarch64-neondot-ld128.S", + "src/qu8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-cortex-a53.S", + "src/qu8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-cortex-a75.S", + "src/qu8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-ld64.S", + "src/qu8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-cortex-a53.S", + "src/qu8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-cortex-a75.S", + "src/qu8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-ld64.S", + "src/qu8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-cortex-a55.S", + "src/qu8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld128.S", + "src/qu8-gemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-cortex-a55.S", + "src/qu8-gemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld128.S", + "src/qu8-igemm/gen/4x8c4-minmax-rndnu-aarch64-neondot-cortex-a55.S", + "src/qu8-igemm/gen/4x8c4-minmax-rndnu-aarch64-neondot-ld128.S", + "src/qu8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-cortex-a53.S", + "src/qu8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-cortex-a75.S", + "src/qu8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-ld64.S", + "src/qu8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-cortex-a53.S", + "src/qu8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-cortex-a75.S", + "src/qu8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-ld64.S", + "src/qu8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-cortex-a55.S", + "src/qu8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld128.S", + "src/qu8-igemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-cortex-a55.S", + "src/qu8-igemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld128.S", +] + +JIT_AARCH32_SRCS = [ + "src/f32-gemm/4x8-aarch32-neon-cortex-a7.cc", + "src/f32-gemm/4x8-aarch32-neon-cortex-a53.cc", + "src/f32-gemm/4x8-aarch32-neon-cortex-a55.cc", + "src/f32-gemm/4x8-aarch32-neon-cortex-a75.cc", + "src/f32-gemm/4x8-aarch32-neon-ld64.cc", + "src/f32-igemm/4x8-aarch32-neon-cortex-a7.cc", + "src/f32-igemm/4x8-aarch32-neon-cortex-a53.cc", + "src/f32-igemm/4x8-aarch32-neon-cortex-a55.cc", + "src/f32-igemm/4x8-aarch32-neon-cortex-a75.cc", + "src/f32-igemm/4x8-aarch32-neon-ld64.cc", + "src/qc8-gemm/4x8-fp32-aarch32-neonv8-mlal-lane-ld64.cc", + "src/qc8-gemm/4x8c4-fp32-aarch32-neondot-ld64.cc", + "src/qc8-igemm/4x8-fp32-aarch32-neonv8-mlal-lane-ld64.cc", + "src/qc8-igemm/4x8c4-fp32-aarch32-neondot-ld64.cc", + "src/qs8-gemm/4x8-rndnu-aarch32-neon-mlal-lane-ld64.cc", + "src/qs8-gemm/4x8c4-rndnu-aarch32-neondot-ld64.cc", + "src/qs8-igemm/4x8-rndnu-aarch32-neon-mlal-lane-ld64.cc", + "src/qs8-igemm/4x8c4-rndnu-aarch32-neondot-ld64.cc", +] + +JIT_AARCH64_SRCS = [ + "src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.cc", + "src/f32-gemm/6x8-aarch64-neonfma-cortex-a75.cc", + "src/f32-igemm/1x8-aarch64-neonfma-cortex-a75.cc", + "src/f32-igemm/6x8-aarch64-neonfma-cortex-a75.cc", ] cc_defaults { @@ -2694,6 +7376,7 @@ cc_defaults { "-Wno-missing-field-initializers", "-Wno-pointer-arith", "-Wno-implicit-function-declaration", + "-Wno-ignored-qualifiers", ], stl: "libc++_static", } @@ -2774,6 +7457,43 @@ cc_library_static { } cc_library_static { + name: "xnnpack_jit_memory", + defaults: ["xnnpack_internal_default"], + srcs: [ + "src/jit/memory.c", + ], + static_libs: [ + "libclog", + "libpthreadpool", + "xnnpack_logging_utils", + ], +} + +cc_library_static { + name: "xnnpack_jit", + defaults: ["xnnpack_internal_default"], + srcs: [ + "src/jit/aarch32-assembler.cc", + "src/jit/aarch64-assembler.cc", + "src/jit/assembler.cc", + ], + arch: { + arm: { + srcs: JIT_AARCH32_SRCS, + }, + arm64: { + srcs: JIT_AARCH64_SRCS, + }, + }, + static_libs: [ + "libclog", + "libpthreadpool", + "xnnpack_jit_memory", + "xnnpack_logging_utils", + ], +} + +cc_library_static { name: "xnnpack_operator_run", defaults: ["xnnpack_internal_default"], srcs: [ @@ -2796,7 +7516,7 @@ cc_library_static { name: "xnnpack_operators", defaults: ["xnnpack_internal_default"], srcs: OPERATOR_SRCS + [ - "src/memory.c", + "src/allocator.c", "src/operator-delete.c", ], header_libs: [ @@ -2808,16 +7528,18 @@ cc_library_static { "libpthreadpool", "xnnpack_logging_utils", "xnnpack_packing", + "xnnpack_jit_memory", ], whole_static_libs: [ "xnnpack_indirection", + "xnnpack_operator_run", ], } cc_library_static { - name: "xnnpack_scalar_ukernels", + name: "xnnpack_scalar_bench_microkernels", defaults: ["xnnpack_internal_default"], - srcs: SCALAR_UKERNELS, + srcs: ALL_SCALAR_MICROKERNEL_SRCS, header_libs: [ "fp16_headers", "fxdiv_headers", @@ -2829,18 +7551,44 @@ cc_library_static { } cc_library_static { - name: "xnnpack_neon_ukernels", + name: "xnnpack_scalar_prod_microkernels", defaults: ["xnnpack_internal_default"], + srcs: PROD_SCALAR_PORTABLE_MICROKERNEL_SRCS, arch: { arm: { - srcs: NEON_UKERNELS, + srcs: PROD_SCALAR_AARCH32_MICROKERNEL_SRCS, cflags: [ "-marm", + ], + }, + arm64: { + srcs: PROD_SCALAR_AARCH32_MICROKERNEL_SRCS, + }, + }, + header_libs: [ + "fp16_headers", + "fxdiv_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_neon_bench_microkernels", + defaults: ["xnnpack_internal_default"], + srcs: ALL_NEON_MICROKERNEL_SRCS, + arch: { + arm: { + cflags: [ + "-marm", + "-march=armv7-a", "-mfpu=neon", ], }, arm64: { - srcs: NEON_UKERNELS, + srcs: ALL_AARCH64_NEON_MICROKERNEL_SRCS, }, x86: { enabled: false, }, x86_64: { enabled: false, }, @@ -2855,23 +7603,74 @@ cc_library_static { } cc_library_static { - name: "xnnpack_neondot_ukernels", + name: "xnnpack_neon_prod_microkernels", defaults: ["xnnpack_internal_default"], + srcs: PROD_NEON_MICROKERNEL_SRCS, arch: { arm: { - srcs: NEONDOT_UKERNELS, cflags: [ "-marm", - "-march=armv8.2-a+dotprod", - "-mfpu=neon-fp-armv8", + "-march=armv7-a", + "-mfpu=neon", ], }, arm64: { - srcs: NEONDOT_UKERNELS, + srcs: PROD_AARCH64_NEON_MICROKERNEL_SRCS, + }, + x86: { enabled: false, }, + x86_64: { enabled: false, }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_neonfp16_bench_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { + srcs: ALL_NEONFP16_MICROKERNEL_SRCS, cflags: [ - "-march=armv8.2-a+dotprod", + "-marm", + "-march=armv7-a", + "-mfpu=neon-fp16", + ], + }, + arm64: { + srcs: ALL_NEONFP16_MICROKERNEL_SRCS, + }, + x86: { enabled: false, }, + x86_64: { enabled: false, }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_neonfp16_prod_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { + srcs: PROD_NEONFP16_MICROKERNEL_SRCS, + cflags: [ + "-marm", + "-march=armv7-a", + "-mfpu=neon-fp16", ], }, + arm64: { + srcs: PROD_NEONFP16_MICROKERNEL_SRCS, + }, x86: { enabled: false, }, x86_64: { enabled: false, }, }, @@ -2885,11 +7684,11 @@ cc_library_static { } cc_library_static { - name: "xnnpack_neonfma_ukernels", + name: "xnnpack_neonfma_bench_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { - srcs: NEONFMA_UKERNELS, + srcs: ALL_NEONFMA_MICROKERNEL_SRCS, cflags: [ "-marm", "-march=armv7-a", @@ -2897,7 +7696,7 @@ cc_library_static { ], }, arm64: { - srcs: NEONFMA_UKERNELS + AARCH64_NEONFMA_UKERNELS, + srcs: ALL_NEONFMA_MICROKERNEL_SRCS, }, x86: { enabled: false, }, x86_64: { enabled: false, }, @@ -2912,11 +7711,38 @@ cc_library_static { } cc_library_static { - name: "xnnpack_neonv8_ukernels", + name: "xnnpack_neonfma_prod_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { - srcs: NEONV8_UKERNELS, + srcs: PROD_NEONFMA_MICROKERNEL_SRCS, + cflags: [ + "-marm", + "-march=armv7-a", + "-mfpu=neon-vfpv4", + ], + }, + arm64: { + srcs: PROD_NEONFMA_MICROKERNEL_SRCS, + }, + x86: { enabled: false, }, + x86_64: { enabled: false, }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_neonv8_bench_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { + srcs: ALL_NEONV8_MICROKERNEL_SRCS, cflags: [ "-marm", "-march=armv8-a", @@ -2924,7 +7750,57 @@ cc_library_static { ], }, arm64: { - srcs: NEONV8_UKERNELS, + srcs: ALL_NEONV8_MICROKERNEL_SRCS, + }, + x86: { enabled: false, }, + x86_64: { enabled: false, }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_neonv8_prod_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { + srcs: PROD_NEONV8_MICROKERNEL_SRCS, + cflags: [ + "-marm", + "-march=armv8-a", + "-mfpu=neon-fp-armv8", + ], + }, + arm64: { + srcs: PROD_NEONV8_MICROKERNEL_SRCS, + }, + x86: { enabled: false, }, + x86_64: { enabled: false, }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_neonfp16arith_bench_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { + srcs: ALL_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS, + cflags: [ + "-march=armv8.2-a+fp16", + ], }, x86: { enabled: false, }, x86_64: { enabled: false, }, @@ -2939,12 +7815,12 @@ cc_library_static { } cc_library_static { - name: "xnnpack_neonfp16arith_ukernels", + name: "xnnpack_neonfp16arith_prod_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { enabled: false, }, arm64: { - srcs: AARCH64_NEONFP16ARITH_UKERNELS, + srcs: PROD_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS, cflags: [ "-march=armv8.2-a+fp16", ], @@ -2962,14 +7838,79 @@ cc_library_static { } cc_library_static { - name: "xnnpack_asm_ukernels", + name: "xnnpack_neondot_bench_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { - srcs: AARCH32_ASM_UKERNELS, + srcs: ALL_NEONDOT_MICROKERNEL_SRCS, + cflags: [ + "-marm", + "-march=armv8.2-a+dotprod", + "-mfpu=neon-fp-armv8", + ], }, arm64: { - srcs: AARCH64_ASM_UKERNELS, + srcs: ALL_NEONDOT_MICROKERNEL_SRCS, + cflags: [ + "-march=armv8.2-a+dotprod", + ], + }, + x86: { enabled: false, }, + x86_64: { enabled: false, }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_neondot_prod_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { + srcs: PROD_NEONDOT_MICROKERNEL_SRCS, + cflags: [ + "-marm", + "-march=armv8.2-a+dotprod", + "-mfpu=neon-fp-armv8", + ], + }, + arm64: { + srcs: PROD_NEONDOT_MICROKERNEL_SRCS, + cflags: [ + "-march=armv8.2-a+dotprod", + ], + }, + x86: { enabled: false, }, + x86_64: { enabled: false, }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_asm_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { + srcs: AARCH32_ASM_MICROKERNEL_SRCS, + clang_asflags: [ + "-marm", + "-march=armv8.2-a+dotprod", + "-mfpu=neon-fp-armv8", + ], + }, + arm64: { + srcs: AARCH64_ASM_MICROKERNEL_SRCS, clang_asflags: [ "-march=armv8.2-a+fp16+dotprod", ], @@ -2980,19 +7921,25 @@ cc_library_static { } cc_library_static { - name: "xnnpack_sse2_ukernels", + name: "xnnpack_sse2_amalgam_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { enabled: false, }, arm64: { enabled: false, }, x86: { - srcs: SSE_UKERNELS + SSE2_UKERNELS, + srcs: [ + "src/amalgam/sse.c", + "src/amalgam/sse2.c", + ], cflags: [ "-msse2", ], }, x86_64: { - srcs: SSE_UKERNELS + SSE2_UKERNELS, + srcs: [ + "src/amalgam/sse.c", + "src/amalgam/sse2.c", + ], cflags: [ "-msse2", ], @@ -3008,19 +7955,107 @@ cc_library_static { } cc_library_static { - name: "xnnpack_ssse3_ukernels", + name: "xnnpack_sse2_bench_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: ALL_SSE_MICROKERNEL_SRCS + ALL_SSE2_MICROKERNEL_SRCS, + cflags: [ + "-msse2", + ], + }, + x86_64: { + srcs: ALL_SSE_MICROKERNEL_SRCS + ALL_SSE2_MICROKERNEL_SRCS, + cflags: [ + "-msse2", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_sse2_prod_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: ALL_SSE_MICROKERNEL_SRCS + ALL_SSE2_MICROKERNEL_SRCS, + cflags: [ + "-msse2", + ], + }, + x86_64: { + srcs: ALL_SSE_MICROKERNEL_SRCS + ALL_SSE2_MICROKERNEL_SRCS, + cflags: [ + "-msse2", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_ssse3_amalgam_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: [ + "src/amalgam/ssse3.c", + ], + cflags: [ + "-mssse3", + ], + }, + x86_64: { + srcs: [ + "src/amalgam/ssse3.c", + ], + cflags: [ + "-mssse3", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_ssse3_bench_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { enabled: false, }, arm64: { enabled: false, }, x86: { - srcs: SSSE3_UKERNELS, + srcs: ALL_SSSE3_MICROKERNEL_SRCS, cflags: [ "-mssse3", ], }, x86_64: { - srcs: SSSE3_UKERNELS, + srcs: ALL_SSSE3_MICROKERNEL_SRCS, cflags: [ "-mssse3", ], @@ -3036,19 +8071,79 @@ cc_library_static { } cc_library_static { - name: "xnnpack_sse41_ukernels", + name: "xnnpack_ssse3_prod_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: PROD_SSSE3_MICROKERNEL_SRCS, + cflags: [ + "-mssse3", + ], + }, + x86_64: { + srcs: PROD_SSSE3_MICROKERNEL_SRCS, + cflags: [ + "-mssse3", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_sse41_amalgam_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: [ + "src/amalgam/sse41.c", + ], + cflags: [ + "-msse4.1", + ], + }, + x86_64: { + srcs: [ + "src/amalgam/sse41.c", + ], + cflags: [ + "-msse4.1", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_sse41_bench_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { enabled: false, }, arm64: { enabled: false, }, x86: { - srcs: SSE41_UKERNELS, + srcs: ALL_SSE41_MICROKERNEL_SRCS, cflags: [ "-msse4.1", ], }, x86_64: { - srcs: SSE41_UKERNELS, + srcs: ALL_SSE41_MICROKERNEL_SRCS, cflags: [ "-msse4.1", ], @@ -3064,19 +8159,51 @@ cc_library_static { } cc_library_static { - name: "xnnpack_avx_ukernels", + name: "xnnpack_sse41_prod_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { enabled: false, }, arm64: { enabled: false, }, x86: { - srcs: AVX_UKERNELS, + srcs: PROD_SSE41_MICROKERNEL_SRCS, + cflags: [ + "-msse4.1", + ], + }, + x86_64: { + srcs: PROD_SSE41_MICROKERNEL_SRCS, + cflags: [ + "-msse4.1", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_avx_amalgam_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: [ + "src/amalgam/avx.c", + ], cflags: [ "-mavx", ], }, x86_64: { - srcs: AVX_UKERNELS, + srcs: [ + "src/amalgam/avx.c", + ], cflags: [ "-mavx", ], @@ -3092,19 +8219,191 @@ cc_library_static { } cc_library_static { - name: "xnnpack_xop_ukernels", + name: "xnnpack_avx_bench_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: ALL_AVX_MICROKERNEL_SRCS, + cflags: [ + "-mavx", + ], + }, + x86_64: { + srcs: ALL_AVX_MICROKERNEL_SRCS, + cflags: [ + "-mavx", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_avx_prod_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: PROD_AVX_MICROKERNEL_SRCS, + cflags: [ + "-mavx", + ], + }, + x86_64: { + srcs: PROD_AVX_MICROKERNEL_SRCS, + cflags: [ + "-mavx", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_f16c_amalgam_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: [ + "src/amalgam/f16c.c", + ], + cflags: [ + "-mf16c", + ], + }, + x86_64: { + srcs: [ + "src/amalgam/f16c.c", + ], + cflags: [ + "-mf16c", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_f16c_bench_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: ALL_F16C_MICROKERNEL_SRCS, + cflags: [ + "-mf16c", + ], + }, + x86_64: { + srcs: ALL_F16C_MICROKERNEL_SRCS, + cflags: [ + "-mf16c", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_f16c_prod_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: PROD_F16C_MICROKERNEL_SRCS, + cflags: [ + "-mf16c", + ], + }, + x86_64: { + srcs: PROD_F16C_MICROKERNEL_SRCS, + cflags: [ + "-mf16c", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_xop_bench_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: ALL_XOP_MICROKERNEL_SRCS, + cflags: [ + "-mxop", + ], + }, + x86_64: { + srcs: ALL_XOP_MICROKERNEL_SRCS, + cflags: [ + "-mxop", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_xop_prod_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { enabled: false, }, arm64: { enabled: false, }, x86: { - srcs: XOP_UKERNELS, + srcs: PROD_XOP_MICROKERNEL_SRCS, cflags: [ "-mxop", ], }, x86_64: { - srcs: XOP_UKERNELS, + srcs: PROD_XOP_MICROKERNEL_SRCS, cflags: [ "-mxop", ], @@ -3120,20 +8419,26 @@ cc_library_static { } cc_library_static { - name: "xnnpack_fma3_ukernels", + name: "xnnpack_fma3_amalgam_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { enabled: false, }, arm64: { enabled: false, }, x86: { - srcs: FMA3_UKERNELS, + srcs: [ + "src/amalgam/fma3.c", + ], cflags: [ + "-mf16c", "-mfma", ], }, x86_64: { - srcs: FMA3_UKERNELS, + srcs: [ + "src/amalgam/fma3.c", + ], cflags: [ + "-mf16c", "-mfma", ], }, @@ -3148,21 +8453,87 @@ cc_library_static { } cc_library_static { - name: "xnnpack_avx2_ukernels", + name: "xnnpack_fma3_bench_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { enabled: false, }, arm64: { enabled: false, }, x86: { - srcs: AVX2_UKERNELS, + srcs: ALL_FMA3_MICROKERNEL_SRCS, + cflags: [ + "-mf16c", + "-mfma", + ], + }, + x86_64: { + srcs: ALL_FMA3_MICROKERNEL_SRCS, cflags: [ + "-mf16c", + "-mfma", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_fma3_prod_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: PROD_FMA3_MICROKERNEL_SRCS, + cflags: [ + "-mf16c", + "-mfma", + ], + }, + x86_64: { + srcs: PROD_FMA3_MICROKERNEL_SRCS, + cflags: [ + "-mf16c", + "-mfma", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_avx2_amalgam_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: [ + "src/amalgam/avx2.c", + ], + cflags: [ + "-mf16c", "-mfma", "-mavx2", ], }, x86_64: { - srcs: AVX2_UKERNELS, + srcs: [ + "src/amalgam/avx2.c", + ], cflags: [ + "-mf16c", "-mfma", "-mavx2", ], @@ -3178,13 +8549,153 @@ cc_library_static { } cc_library_static { - name: "xnnpack_avx512skx_ukernels", + name: "xnnpack_avx2_bench_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: ALL_AVX2_MICROKERNEL_SRCS, + cflags: [ + "-mf16c", + "-mfma", + "-mavx2", + ], + }, + x86_64: { + srcs: ALL_AVX2_MICROKERNEL_SRCS, + cflags: [ + "-mf16c", + "-mfma", + "-mavx2", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_avx2_prod_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: PROD_AVX2_MICROKERNEL_SRCS, + cflags: [ + "-mf16c", + "-mfma", + "-mavx2", + ], + }, + x86_64: { + srcs: PROD_AVX2_MICROKERNEL_SRCS, + cflags: [ + "-mf16c", + "-mfma", + "-mavx2", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_avx512skx_amalgam_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: [ + "src/amalgam/avx512skx.c", + ], + cflags: [ + "-mavx512f", + "-mavx512cd", + "-mavx512bw", + "-mavx512dq", + "-mavx512vl", + ], + }, + x86_64: { + srcs: [ + "src/amalgam/avx512skx.c", + ], + cflags: [ + "-mavx512f", + "-mavx512cd", + "-mavx512bw", + "-mavx512dq", + "-mavx512vl", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_avx512skx_bench_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: ALL_AVX512SKX_MICROKERNEL_SRCS, + cflags: [ + "-mavx512f", + "-mavx512cd", + "-mavx512bw", + "-mavx512dq", + "-mavx512vl", + ], + }, + x86_64: { + srcs: ALL_AVX512SKX_MICROKERNEL_SRCS, + cflags: [ + "-mavx512f", + "-mavx512cd", + "-mavx512bw", + "-mavx512dq", + "-mavx512vl", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_avx512skx_prod_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { enabled: false, }, arm64: { enabled: false, }, x86: { - srcs: AVX512SKX_UKERNELS, + srcs: PROD_AVX512SKX_MICROKERNEL_SRCS, cflags: [ "-mavx512f", "-mavx512cd", @@ -3194,7 +8705,7 @@ cc_library_static { ], }, x86_64: { - srcs: AVX512SKX_UKERNELS, + srcs: PROD_AVX512SKX_MICROKERNEL_SRCS, cflags: [ "-mavx512f", "-mavx512cd", @@ -3214,19 +8725,23 @@ cc_library_static { } cc_library_static { - name: "xnnpack_avx512f_ukernels", + name: "xnnpack_avx512f_amalgam_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { enabled: false, }, arm64: { enabled: false, }, x86: { - srcs: AVX512F_UKERNELS, + srcs: [ + "src/amalgam/avx512f.c", + ], cflags: [ "-mavx512f", ], }, x86_64: { - srcs: AVX512F_UKERNELS, + srcs: [ + "src/amalgam/avx512f.c", + ], cflags: [ "-mavx512f", ], @@ -3242,57 +8757,234 @@ cc_library_static { } cc_library_static { - name: "xnnpack_ukernels", + name: "xnnpack_avx512f_bench_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: ALL_AVX512F_MICROKERNEL_SRCS, + cflags: [ + "-mavx512f", + ], + }, + x86_64: { + srcs: ALL_AVX512F_MICROKERNEL_SRCS, + cflags: [ + "-mavx512f", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_avx512f_prod_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { enabled: false, }, + arm64: { enabled: false, }, + x86: { + srcs: PROD_AVX512F_MICROKERNEL_SRCS, + cflags: [ + "-mavx512f", + ], + }, + x86_64: { + srcs: PROD_AVX512F_MICROKERNEL_SRCS, + cflags: [ + "-mavx512f", + ], + }, + }, + header_libs: [ + "fp16_headers", + ], + static_libs: [ + "libpthreadpool", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_amalgam_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { + whole_static_libs: [ + "xnnpack_neon_prod_microkernels", + "xnnpack_neonfp16_prod_microkernels", + "xnnpack_neonfma_prod_microkernels", + "xnnpack_neonv8_prod_microkernels", + "xnnpack_neondot_prod_microkernels", + "xnnpack_asm_microkernels", + ], + }, + arm64: { + whole_static_libs: [ + "xnnpack_neon_prod_microkernels", + "xnnpack_neonfp16_prod_microkernels", + "xnnpack_neonfma_prod_microkernels", + "xnnpack_neonv8_prod_microkernels", + "xnnpack_neonfp16arith_prod_microkernels", + "xnnpack_neondot_prod_microkernels", + "xnnpack_asm_microkernels", + ], + }, + x86: { + whole_static_libs: [ + "xnnpack_sse2_amalgam_microkernels", + "xnnpack_ssse3_amalgam_microkernels", + "xnnpack_sse41_amalgam_microkernels", + "xnnpack_avx_amalgam_microkernels", + "xnnpack_f16c_amalgam_microkernels", + "xnnpack_fma3_amalgam_microkernels", + "xnnpack_avx2_amalgam_microkernels", + "xnnpack_avx512f_amalgam_microkernels", + "xnnpack_avx512skx_amalgam_microkernels", + ], + }, + x86_64: { + whole_static_libs: [ + "xnnpack_sse2_amalgam_microkernels", + "xnnpack_ssse3_amalgam_microkernels", + "xnnpack_sse41_amalgam_microkernels", + "xnnpack_avx_amalgam_microkernels", + "xnnpack_f16c_amalgam_microkernels", + "xnnpack_fma3_amalgam_microkernels", + "xnnpack_avx2_amalgam_microkernels", + "xnnpack_avx512f_amalgam_microkernels", + "xnnpack_avx512skx_amalgam_microkernels", + ], + }, + }, + whole_static_libs: [ + "xnnpack_scalar_prod_microkernels", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_bench_microkernels", defaults: ["xnnpack_internal_default"], arch: { arm: { whole_static_libs: [ - "xnnpack_neon_ukernels", - "xnnpack_neonfma_ukernels", - "xnnpack_neonv8_ukernels", - "xnnpack_neondot_ukernels", - "xnnpack_asm_ukernels", + "xnnpack_neon_bench_microkernels", + "xnnpack_neonfp16_bench_microkernels", + "xnnpack_neonfma_bench_microkernels", + "xnnpack_neonv8_bench_microkernels", + "xnnpack_neondot_bench_microkernels", + "xnnpack_asm_microkernels", ], }, arm64: { whole_static_libs: [ - "xnnpack_neon_ukernels", - "xnnpack_neonfma_ukernels", - "xnnpack_neonv8_ukernels", - "xnnpack_neonfp16arith_ukernels", - "xnnpack_neondot_ukernels", - "xnnpack_asm_ukernels", + "xnnpack_neon_bench_microkernels", + "xnnpack_neonfp16_bench_microkernels", + "xnnpack_neonfma_bench_microkernels", + "xnnpack_neonv8_bench_microkernels", + "xnnpack_neondot_bench_microkernels", + "xnnpack_asm_microkernels", ], }, x86: { whole_static_libs: [ - "xnnpack_sse2_ukernels", - "xnnpack_ssse3_ukernels", - "xnnpack_sse41_ukernels", - "xnnpack_avx_ukernels", - "xnnpack_xop_ukernels", - "xnnpack_fma3_ukernels", - "xnnpack_avx2_ukernels", - "xnnpack_avx512f_ukernels", - "xnnpack_avx512skx_ukernels", + "xnnpack_sse2_bench_microkernels", + "xnnpack_ssse3_bench_microkernels", + "xnnpack_sse41_bench_microkernels", + "xnnpack_avx_bench_microkernels", + "xnnpack_f16c_bench_microkernels", + "xnnpack_xop_bench_microkernels", + "xnnpack_fma3_bench_microkernels", + "xnnpack_avx2_bench_microkernels", + "xnnpack_avx512f_bench_microkernels", + "xnnpack_avx512skx_bench_microkernels", ], }, x86_64: { whole_static_libs: [ - "xnnpack_sse2_ukernels", - "xnnpack_ssse3_ukernels", - "xnnpack_sse41_ukernels", - "xnnpack_avx_ukernels", - "xnnpack_xop_ukernels", - "xnnpack_fma3_ukernels", - "xnnpack_avx2_ukernels", - "xnnpack_avx512f_ukernels", - "xnnpack_avx512skx_ukernels", + "xnnpack_sse2_bench_microkernels", + "xnnpack_ssse3_bench_microkernels", + "xnnpack_sse41_bench_microkernels", + "xnnpack_avx_bench_microkernels", + "xnnpack_f16c_bench_microkernels", + "xnnpack_xop_bench_microkernels", + "xnnpack_fma3_bench_microkernels", + "xnnpack_avx2_bench_microkernels", + "xnnpack_avx512f_bench_microkernels", + "xnnpack_avx512skx_bench_microkernels", ], }, }, whole_static_libs: [ - "xnnpack_scalar_ukernels", + "xnnpack_scalar_bench_microkernels", + "xnnpack_tables", + ], +} + +cc_library_static { + name: "xnnpack_prod_microkernels", + defaults: ["xnnpack_internal_default"], + arch: { + arm: { + whole_static_libs: [ + "xnnpack_neon_prod_microkernels", + "xnnpack_neonfp16_prod_microkernels", + "xnnpack_neonfma_prod_microkernels", + "xnnpack_neonv8_prod_microkernels", + "xnnpack_neondot_prod_microkernels", + "xnnpack_asm_microkernels", + ], + }, + arm64: { + whole_static_libs: [ + "xnnpack_neon_prod_microkernels", + "xnnpack_neonfp16_prod_microkernels", + "xnnpack_neonfma_prod_microkernels", + "xnnpack_neonv8_prod_microkernels", + "xnnpack_neonfp16arith_prod_microkernels", + "xnnpack_neondot_prod_microkernels", + "xnnpack_asm_microkernels", + ], + }, + x86: { + whole_static_libs: [ + "xnnpack_sse2_prod_microkernels", + "xnnpack_ssse3_prod_microkernels", + "xnnpack_sse41_prod_microkernels", + "xnnpack_avx_prod_microkernels", + "xnnpack_f16c_prod_microkernels", + "xnnpack_xop_prod_microkernels", + "xnnpack_fma3_prod_microkernels", + "xnnpack_avx2_prod_microkernels", + "xnnpack_avx512f_prod_microkernels", + "xnnpack_avx512skx_prod_microkernels", + ], + }, + x86_64: { + whole_static_libs: [ + "xnnpack_sse2_prod_microkernels", + "xnnpack_ssse3_prod_microkernels", + "xnnpack_sse41_prod_microkernels", + "xnnpack_avx_prod_microkernels", + "xnnpack_f16c_prod_microkernels", + "xnnpack_xop_prod_microkernels", + "xnnpack_fma3_prod_microkernels", + "xnnpack_avx2_prod_microkernels", + "xnnpack_avx512f_prod_microkernels", + "xnnpack_avx512skx_prod_microkernels", + ], + }, + }, + whole_static_libs: [ + "xnnpack_scalar_prod_microkernels", "xnnpack_tables", ], } @@ -3314,8 +9006,9 @@ cc_library_static { "libclog", "libcpuinfo", "libpthreadpool", - "xnnpack_ukernels", - "xnnpack_operator_run", + "xnnpack_jit", + "xnnpack_jit_memory", + "xnnpack_prod_microkernels", "xnnpack_operators", "xnnpack_logging_utils", "xnnpack_memory_planner", @@ -3369,6 +9062,22 @@ cc_library_static { } cc_library_static { + name: "xnnpack_qc8_mobilenet_v1", + defaults: ["xnnpack_tests_default"], + srcs: [ + "models/qc8-mobilenet-v1.cc", + ], +} + +cc_library_static { + name: "xnnpack_qc8_mobilenet_v2", + defaults: ["xnnpack_tests_default"], + srcs: [ + "models/qc8-mobilenet-v2.cc", + ], +} + +cc_library_static { name: "xnnpack_qs8_mobilenet_v1", defaults: ["xnnpack_tests_default"], srcs: [ @@ -3385,6 +9094,14 @@ cc_library_static { } cc_library_static { + name: "xnnpack_qu8_mobilenet_v2", + defaults: ["xnnpack_tests_default"], + srcs: [ + "models/qu8-mobilenet-v2.cc", + ], +} + +cc_library_static { name: "xnnpack_mobilenet_v1_fp16", defaults: ["xnnpack_tests_default"], srcs: [ @@ -3486,6 +9203,8 @@ cc_benchmark { static_libs: [ "libcpuinfo", "libgoogle-benchmark", + "xnnpack_qc8_mobilenet_v1", + "xnnpack_qc8_mobilenet_v2", "xnnpack_qs8_mobilenet_v1", "xnnpack_mobilenet_v1_fp32", "xnnpack_mobilenet_v1_fp32_sparse", @@ -3501,6 +9220,7 @@ cc_benchmark { "xnnpack_mobilenet_v3_small_fp32_sparse", "xnnpack_mobilenet_v3_small_fp16", "xnnpack_qu8_mobilenet_v1", + "xnnpack_qu8_mobilenet_v2", ], } |