test / BUILD.bazel
Androidonnxfork's picture
Upload folder using huggingface_hub
8b7c501
# Copyright 2020 Google LLC
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.
#
# Description:
# XNNPACK - optimized floating-point neural network operators library
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
load("@bazel_skylib//lib:selects.bzl", "selects")
load(":build_defs.bzl", "xnnpack_aggregate_library", "xnnpack_benchmark", "xnnpack_binary", "xnnpack_cc_library", "xnnpack_gcc_std_copts", "xnnpack_min_size_copts", "xnnpack_msvc_std_copts", "xnnpack_optional_dnnl_copts", "xnnpack_optional_dnnl_deps", "xnnpack_optional_gemmlowp_copts", "xnnpack_optional_gemmlowp_deps", "xnnpack_optional_ruy_copts", "xnnpack_optional_ruy_deps", "xnnpack_optional_tflite_copts", "xnnpack_optional_tflite_deps", "xnnpack_std_cxxopts", "xnnpack_unit_test", "xnnpack_visibility")
load(":microkernels.bzl", "AARCH32_ASM_MICROKERNEL_SRCS", "AARCH32_JIT_MICROKERNEL_SRCS", "AARCH64_ASM_MICROKERNEL_SRCS", "AARCH64_JIT_MICROKERNEL_SRCS", "ALL_ARMSIMD32_MICROKERNEL_SRCS", "ALL_AVX2_MICROKERNEL_SRCS", "ALL_AVX512F_MICROKERNEL_SRCS", "ALL_AVX512SKX_MICROKERNEL_SRCS", "ALL_AVX512VBMI_MICROKERNEL_SRCS", "ALL_AVX_MICROKERNEL_SRCS", "ALL_F16C_MICROKERNEL_SRCS", "ALL_FMA3_MICROKERNEL_SRCS", "ALL_FMA_MICROKERNEL_SRCS", "ALL_FP16ARITH_MICROKERNEL_SRCS", "ALL_HEXAGON_MICROKERNEL_SRCS", "ALL_NEONBF16_AARCH64_MICROKERNEL_SRCS", "ALL_NEONBF16_MICROKERNEL_SRCS", "ALL_NEONDOT_MICROKERNEL_SRCS", "ALL_NEONFMA_AARCH64_MICROKERNEL_SRCS", "ALL_NEONFMA_MICROKERNEL_SRCS", "ALL_NEONFP16ARITH_AARCH64_MICROKERNEL_SRCS", "ALL_NEONFP16ARITH_MICROKERNEL_SRCS", "ALL_NEONFP16_MICROKERNEL_SRCS", "ALL_NEONV8_MICROKERNEL_SRCS", "ALL_NEON_AARCH64_MICROKERNEL_SRCS", "ALL_NEON_MICROKERNEL_SRCS", "ALL_RVV_MICROKERNEL_SRCS", "ALL_SCALAR_MICROKERNEL_SRCS", "ALL_SSE2_MICROKERNEL_SRCS", "ALL_SSE41_MICROKERNEL_SRCS", "ALL_SSE_MICROKERNEL_SRCS", "ALL_SSSE3_MICROKERNEL_SRCS", "ALL_WASMRELAXEDSIMD_MICROKERNEL_SRCS", "ALL_WASMSIMD_MICROKERNEL_SRCS", "ALL_WASM_MICROKERNEL_SRCS", "ALL_XOP_MICROKERNEL_SRCS", "WASM32_ASM_MICROKERNEL_SRCS", "WASM32_JIT_MICROKERNEL_SRCS", "WASMRELAXEDSIMD32_JIT_MICROKERNEL_SRCS", "WASMSIMD32_JIT_MICROKERNEL_SRCS")
licenses(["notice"])
exports_files(["LICENSE"])
OPERATOR_BENCHMARK_DEPS = [
":XNNPACK",
":bench_utils",
":cache",
"@FP16",
]
MICROKERNEL_BENCHMARK_DEPS = [
":aligned_allocator",
":bench_microkernels",
":bench_utils",
":common",
":enable_assembly",
":microkernels_h",
":packing",
":params",
":microparams",
":microparams_init",
":xnnpack_h",
"@FP16",
"@cpuinfo",
]
ACCURACY_EVAL_DEPS = [
":aligned_allocator",
":bench_microkernels",
":bench_utils",
":common",
":isa_checks",
":math",
":math_stubs",
"@FP16",
"@cpuinfo",
"@pthreadpool",
]
MICROKERNEL_TEST_DEPS = [
":aligned_allocator",
":allocator",
":common",
":enable_assembly",
":isa_checks",
":math",
":microkernels_h",
":microparams",
":microparams_init",
":memory",
":params",
":quantization",
":requantization",
":test_microkernels",
":xnnpack_h",
"@FP16",
]
OPERATOR_TEST_DEPS = [
":allocator",
":cache",
":common",
":params",
":quantization",
":XNNPACK_test_mode",
":jit_test_mode",
":normalization_test_mode",
"@pthreadpool",
"@FP16",
]
OPERATOR_SRCS = [
"src/operator-delete.c",
"src/operator-run.c",
"src/operators/argmax-pooling-nhwc.c",
"src/operators/average-pooling-nhwc.c",
"src/operators/batch-matrix-multiply-nc.c",
"src/operators/binary-elementwise-nd.c",
"src/operators/channel-shuffle-nc.c",
"src/operators/constant-pad-nd.c",
"src/operators/convolution-nchw.c",
"src/operators/convolution-nhwc.c",
"src/operators/deconvolution-nhwc.c",
"src/operators/dynamic-fully-connected-nc.c",
"src/operators/fully-connected-nc.c",
"src/operators/global-average-pooling-ncw.c",
"src/operators/global-average-pooling-nwc.c",
"src/operators/lut-elementwise-nc.c",
"src/operators/max-pooling-nhwc.c",
"src/operators/prelu-nc.c",
"src/operators/reduce-nd.c",
"src/operators/resize-bilinear-nchw.c",
"src/operators/resize-bilinear-nhwc.c",
"src/operators/rope-nthc.c",
"src/operators/slice-nd.c",
"src/operators/softmax-nc.c",
"src/operators/transpose-nd.c",
"src/operators/unary-elementwise-nc.c",
"src/operators/unpooling-nhwc.c",
]
SUBGRAPH_SRCS = [
"src/memory-planner.c",
"src/runtime.c",
"src/subgraph.c",
"src/subgraph/abs.c",
"src/subgraph/add2.c",
"src/subgraph/argmax-pooling-2d.c",
"src/subgraph/average-pooling-2d.c",
"src/subgraph/bankers-rounding.c",
"src/subgraph/batch-matrix-multiply.c",
"src/subgraph/ceiling.c",
"src/subgraph/clamp.c",
"src/subgraph/concatenate.c",
"src/subgraph/convert.c",
"src/subgraph/convolution-2d.c",
"src/subgraph/copy.c",
"src/subgraph/deconvolution-2d.c",
"src/subgraph/depth-to-space.c",
"src/subgraph/depthwise-convolution-2d.c",
"src/subgraph/divide.c",
"src/subgraph/elu.c",
"src/subgraph/even-split.c",
"src/subgraph/floor.c",
"src/subgraph/fully-connected-sparse.c",
"src/subgraph/fully-connected.c",
"src/subgraph/global-average-pooling.c",
"src/subgraph/global-sum-pooling.c",
"src/subgraph/hardswish.c",
"src/subgraph/leaky-relu.c",
"src/subgraph/max-pooling-2d.c",
"src/subgraph/maximum2.c",
"src/subgraph/minimum2.c",
"src/subgraph/multiply2.c",
"src/subgraph/negate.c",
"src/subgraph/prelu.c",
"src/subgraph/rope.c",
"src/subgraph/sigmoid.c",
"src/subgraph/softmax.c",
"src/subgraph/space-to-depth-2d.c",
"src/subgraph/square-root.c",
"src/subgraph/square.c",
"src/subgraph/squared-difference.c",
"src/subgraph/static-constant-pad.c",
"src/subgraph/static-mean.c",
"src/subgraph/static-reshape.c",
"src/subgraph/static-resize-bilinear-2d.c",
"src/subgraph/static-slice.c",
"src/subgraph/static-transpose.c",
"src/subgraph/subtract.c",
"src/subgraph/tanh.c",
"src/subgraph/unpooling-2d.c",
"src/subgraph/validation.c",
"src/tensor.c",
]
TABLE_SRCS = [
"src/tables/exp2-k-over-64.c",
"src/tables/exp2-k-over-2048.c",
"src/tables/exp2minus-k-over-4.c",
"src/tables/exp2minus-k-over-8.c",
"src/tables/exp2minus-k-over-16.c",
"src/tables/exp2minus-k-over-32.c",
"src/tables/exp2minus-k-over-64.c",
"src/tables/exp2minus-k-over-2048.c",
"src/tables/vlog.c",
]
PROD_SCALAR_MICROKERNEL_SRCS = [
"src/f16-f32-vcvt/gen/f16-f32-vcvt-scalar-x1.c",
"src/f16-f32-vcvt/gen/f16-f32-vcvt-scalar-x4.c",
"src/f32-argmaxpool/f32-argmaxpool-4x-scalar-c1.c",
"src/f32-argmaxpool/f32-argmaxpool-9p8x-scalar-c1.c",
"src/f32-argmaxpool/f32-argmaxpool-9x-scalar-c1.c",
"src/f32-avgpool/f32-avgpool-9p8x-minmax-scalar-c1.c",
"src/f32-avgpool/f32-avgpool-9x-minmax-scalar-c1.c",
"src/f32-conv-hwc/f32-conv-hwc-3x3s2p0p1c3x4-scalar-1x1.c",
"src/f32-conv-hwc/f32-conv-hwc-3x3s2p1c3x4-scalar-1x1.c",
"src/f32-conv-hwc2chw/f32-conv-hwc2chw-3x3s2p1c3x4-scalar-1x1.c",
"src/f32-dwconv/gen/f32-dwconv-2f2m2l4c1s1r-minmax-scalar-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-3p1c-minmax-scalar-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-3p1c-scalar-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-4p1c-minmax-scalar-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-4p1c-scalar-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-9p1c-minmax-scalar-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-9p1c-scalar-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-25p1c-minmax-scalar-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-25p1c-scalar-acc2.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3p1-minmax-scalar-2x1-acc2.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3p1-minmax-scalar-4x1.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3s2p1-minmax-scalar-1x1-acc2.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3s2p1-minmax-scalar-2x1-acc2.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5p2-minmax-scalar-1x1-acc5.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5p2-minmax-scalar-2x1-acc2.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5s2p2-minmax-scalar-1x1-acc5.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5s2p2-minmax-scalar-2x1-acc2.c",
"src/f32-f16-vcvt/gen/f32-f16-vcvt-scalar-bitcast-x4.c",
"src/f32-f16-vcvt/gen/f32-f16-vcvt-scalar-fabsf-x2.c",
"src/f32-gavgpool-cw/f32-gavgpool-cw-scalar-x1.c",
"src/f32-gavgpool/f32-gavgpool-7p7x-minmax-scalar-c1.c",
"src/f32-gavgpool/f32-gavgpool-7x-minmax-scalar-c1.c",
"src/f32-gemm/gen/f32-gemm-1x4-minmax-scalar.c",
"src/f32-gemm/gen/f32-gemm-1x4-relu-scalar.c",
"src/f32-gemm/gen/f32-gemm-1x4-scalar.c",
"src/f32-gemm/gen/f32-gemm-2x4-minmax-scalar.c",
"src/f32-gemm/gen/f32-gemm-2x4-relu-scalar.c",
"src/f32-gemm/gen/f32-gemm-2x4-scalar.c",
"src/f32-gemm/gen/f32-gemm-4x2-minmax-scalar.c",
"src/f32-gemm/gen/f32-gemm-4x2-scalar.c",
"src/f32-gemm/gen/f32-gemm-4x4-minmax-scalar.c",
"src/f32-gemm/gen/f32-gemm-4x4-relu-scalar.c",
"src/f32-gemm/gen/f32-gemm-4x4-scalar.c",
"src/f32-ibilinear-chw/gen/f32-ibilinear-chw-scalar-p4.c",
"src/f32-ibilinear/gen/f32-ibilinear-scalar-c2.c",
"src/f32-igemm/gen/f32-igemm-1x4-minmax-scalar.c",
"src/f32-igemm/gen/f32-igemm-1x4-relu-scalar.c",
"src/f32-igemm/gen/f32-igemm-1x4-scalar.c",
"src/f32-igemm/gen/f32-igemm-2x4-minmax-scalar.c",
"src/f32-igemm/gen/f32-igemm-2x4-relu-scalar.c",
"src/f32-igemm/gen/f32-igemm-2x4-scalar.c",
"src/f32-igemm/gen/f32-igemm-4x2-minmax-scalar.c",
"src/f32-igemm/gen/f32-igemm-4x2-scalar.c",
"src/f32-igemm/gen/f32-igemm-4x4-minmax-scalar.c",
"src/f32-igemm/gen/f32-igemm-4x4-relu-scalar.c",
"src/f32-igemm/gen/f32-igemm-4x4-scalar.c",
"src/f32-maxpool/f32-maxpool-9p8x-minmax-scalar-c1.c",
"src/f32-pavgpool/f32-pavgpool-9p8x-minmax-scalar-c1.c",
"src/f32-pavgpool/f32-pavgpool-9x-minmax-scalar-c1.c",
"src/f32-prelu/gen/f32-prelu-scalar-2x4.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-1x4-minmax-scalar.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-4x4-minmax-scalar.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x4-minmax-scalar.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x4-minmax-scalar.c",
"src/f32-qs8-vcvt/gen/f32-qs8-vcvt-scalar-imagic-x1.c",
"src/f32-qs8-vcvt/gen/f32-qs8-vcvt-scalar-imagic-x4.c",
"src/f32-qs8-vcvt/gen/f32-qs8-vcvt-scalar-lrintf-x4.c",
"src/f32-qu8-vcvt/gen/f32-qu8-vcvt-scalar-imagic-x1.c",
"src/f32-qu8-vcvt/gen/f32-qu8-vcvt-scalar-imagic-x4.c",
"src/f32-qu8-vcvt/gen/f32-qu8-vcvt-scalar-lrintf-x4.c",
"src/f32-raddstoreexpminusmax/gen/f32-raddstoreexpminusmax-scalar-rr2-p5-x4-acc2.c",
"src/f32-rmax/f32-rmax-scalar.c",
"src/f32-rminmax/gen/f32-rminmax-scalar-x4-acc4.c",
"src/f32-rsum/gen/f32-rsum-scalar-x4-acc4.c",
"src/f32-spmm/gen/f32-spmm-8x1-minmax-scalar.c",
"src/f32-spmm/gen/f32-spmm-8x2-minmax-scalar.c",
"src/f32-spmm/gen/f32-spmm-8x4-minmax-scalar.c",
"src/f32-vbinary/gen/f32-vadd-minmax-scalar-x8.c",
"src/f32-vbinary/gen/f32-vaddc-minmax-scalar-x8.c",
"src/f32-vbinary/gen/f32-vdiv-minmax-scalar-x2.c",
"src/f32-vbinary/gen/f32-vdiv-minmax-scalar-x8.c",
"src/f32-vbinary/gen/f32-vdivc-minmax-scalar-x2.c",
"src/f32-vbinary/gen/f32-vdivc-minmax-scalar-x8.c",
"src/f32-vbinary/gen/f32-vmax-scalar-x8.c",
"src/f32-vbinary/gen/f32-vmaxc-scalar-x8.c",
"src/f32-vbinary/gen/f32-vmin-scalar-x8.c",
"src/f32-vbinary/gen/f32-vminc-scalar-x8.c",
"src/f32-vbinary/gen/f32-vmul-minmax-scalar-x8.c",
"src/f32-vbinary/gen/f32-vmulc-minmax-scalar-x8.c",
"src/f32-vbinary/gen/f32-vrdivc-minmax-scalar-x2.c",
"src/f32-vbinary/gen/f32-vrdivc-minmax-scalar-x8.c",
"src/f32-vbinary/gen/f32-vrsubc-minmax-scalar-x8.c",
"src/f32-vbinary/gen/f32-vsqrdiff-scalar-x8.c",
"src/f32-vbinary/gen/f32-vsqrdiffc-scalar-x8.c",
"src/f32-vbinary/gen/f32-vsub-minmax-scalar-x8.c",
"src/f32-vbinary/gen/f32-vsubc-minmax-scalar-x8.c",
"src/f32-vclamp/gen/f32-vclamp-scalar-x4.c",
"src/f32-vcmul/gen/f32-vcmul-scalar-x4.c",
"src/f32-velu/gen/f32-velu-scalar-rr2-lut16-p3-x2.c",
"src/f32-velu/gen/f32-velu-scalar-rr2-lut16-p3-x4.c",
"src/f32-vhswish/gen/f32-vhswish-scalar-x4.c",
"src/f32-vlrelu/gen/f32-vlrelu-scalar-x4.c",
"src/f32-vmulcaddc/gen/f32-vmulcaddc-c1-minmax-scalar-2x.c",
"src/f32-vrelu/gen/f32-vrelu-scalar-x8.c",
"src/f32-vrnd/gen/f32-vrndd-scalar-libm-x1.c",
"src/f32-vrnd/gen/f32-vrndd-scalar-libm-x4.c",
"src/f32-vrnd/gen/f32-vrndne-scalar-libm-x1.c",
"src/f32-vrnd/gen/f32-vrndne-scalar-libm-x4.c",
"src/f32-vrnd/gen/f32-vrndu-scalar-libm-x1.c",
"src/f32-vrnd/gen/f32-vrndu-scalar-libm-x4.c",
"src/f32-vrnd/gen/f32-vrndz-scalar-libm-x1.c",
"src/f32-vrnd/gen/f32-vrndz-scalar-libm-x4.c",
"src/f32-vsigmoid/gen/f32-vsigmoid-scalar-rr2-lut64-p2-div-x2.c",
"src/f32-vsqrt/gen/f32-vsqrt-scalar-sqrt-x1.c",
"src/f32-vtanh/gen/f32-vtanh-fma-expm1minus-rr1-lut8-p4h3ts-div-x4.c",
"src/f32-vtanh/gen/f32-vtanh-scalar-expm1minus-rr1-lut8-p4h3ts-div-x4.c",
"src/f32-vunary/gen/f32-vabs-scalar-x4.c",
"src/f32-vunary/gen/f32-vneg-scalar-x4.c",
"src/f32-vunary/gen/f32-vsqr-scalar-x4.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x2-minmax-scalar.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-2x2-minmax-scalar.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x4-minmax-scalar.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-4x4-minmax-scalar.c",
"src/qs8-dwconv/gen/qs8-dwconv-9p1c-minmax-fp32-scalar-fmagic.c",
"src/qs8-dwconv/gen/qs8-dwconv-9p2c-minmax-fp32-scalar-imagic.c",
"src/qs8-dwconv/gen/qs8-dwconv-9p2c-minmax-fp32-scalar-lrintf.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p1c-minmax-fp32-scalar-fmagic.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p1c-minmax-fp32-scalar-imagic.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p2c-minmax-fp32-scalar-lrintf.c",
"src/qs8-f32-vcvt/gen/qs8-f32-vcvt-scalar-x1.c",
"src/qs8-f32-vcvt/gen/qs8-f32-vcvt-scalar-x4.c",
"src/qs8-gavgpool/gen/qs8-gavgpool-7p7x-minmax-fp32-scalar-imagic-c1.c",
"src/qs8-gavgpool/gen/qs8-gavgpool-7p7x-minmax-fp32-scalar-imagic-c4.c",
"src/qs8-gavgpool/gen/qs8-gavgpool-7x-minmax-fp32-scalar-imagic-c1.c",
"src/qs8-gavgpool/gen/qs8-gavgpool-7x-minmax-fp32-scalar-imagic-c4.c",
"src/qs8-gemm/gen/qs8-gemm-1x2-minmax-fp32-scalar-fmagic.c",
"src/qs8-gemm/gen/qs8-gemm-1x2-minmax-fp32-scalar-imagic.c",
"src/qs8-gemm/gen/qs8-gemm-1x4-minmax-fp32-scalar-lrintf.c",
"src/qs8-gemm/gen/qs8-gemm-2x2-minmax-fp32-scalar-fmagic.c",
"src/qs8-gemm/gen/qs8-gemm-2x2-minmax-fp32-scalar-imagic.c",
"src/qs8-gemm/gen/qs8-gemm-3x4-minmax-fp32-scalar-lrintf.c",
"src/qs8-igemm/gen/qs8-igemm-1x2-minmax-fp32-scalar-fmagic.c",
"src/qs8-igemm/gen/qs8-igemm-1x2-minmax-fp32-scalar-imagic.c",
"src/qs8-igemm/gen/qs8-igemm-1x4-minmax-fp32-scalar-lrintf.c",
"src/qs8-igemm/gen/qs8-igemm-2x2-minmax-fp32-scalar-fmagic.c",
"src/qs8-igemm/gen/qs8-igemm-2x2-minmax-fp32-scalar-imagic.c",
"src/qs8-igemm/gen/qs8-igemm-3x4-minmax-fp32-scalar-lrintf.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p1c-minmax-fp32-scalar-fmagic.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p2c-minmax-fp32-scalar-imagic.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p2c-minmax-fp32-scalar-lrintf.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p1c-minmax-fp32-scalar-fmagic.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p2c-minmax-fp32-scalar-imagic.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p2c-minmax-fp32-scalar-lrintf.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p1c-minmax-fp32-scalar-fmagic.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p1c-minmax-fp32-scalar-imagic.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p2c-minmax-fp32-scalar-lrintf.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x2-minmax-fp32-scalar-fmagic.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x2-minmax-fp32-scalar-imagic.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x4-minmax-fp32-scalar-lrintf.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-2x2-minmax-fp32-scalar-fmagic.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-2x2-minmax-fp32-scalar-imagic.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-3x4-minmax-fp32-scalar-lrintf.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x2-minmax-fp32-scalar-fmagic.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x2-minmax-fp32-scalar-imagic.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x4-minmax-fp32-scalar-lrintf.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-2x2-minmax-fp32-scalar-fmagic.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-2x2-minmax-fp32-scalar-imagic.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-3x4-minmax-fp32-scalar-lrintf.c",
"src/qs8-vadd/gen/qs8-vadd-minmax-scalar-x1.c",
"src/qs8-vadd/gen/qs8-vadd-minmax-scalar-x4.c",
"src/qs8-vaddc/gen/qs8-vaddc-minmax-scalar-x1.c",
"src/qs8-vaddc/gen/qs8-vaddc-minmax-scalar-x4.c",
"src/qs8-vcvt/gen/qs8-vcvt-scalar-x1.c",
"src/qs8-vcvt/gen/qs8-vcvt-scalar-x4.c",
"src/qs8-vhswish/gen/qs8-vhswish-scalar-x1.c",
"src/qs8-vhswish/gen/qs8-vhswish-scalar-x4.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-scalar-andxor-x4.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-scalar-select-x4.c",
"src/qs8-vmul/gen/qs8-vmul-minmax-fp32-scalar-x4.c",
"src/qs8-vmulc/gen/qs8-vmulc-minmax-fp32-scalar-x4.c",
"src/qs16-qs8-vcvt/gen/qs16-qs8-vcvt-scalar-x4.c",
"src/qu8-avgpool/qu8-avgpool-9p8x-minmax-fp32-scalar-imagic-c1.c",
"src/qu8-avgpool/qu8-avgpool-9x-minmax-fp32-scalar-imagic-c1.c",
"src/qu8-dwconv/gen/qu8-dwconv-9p1c-minmax-fp32-scalar-fmagic.c",
"src/qu8-dwconv/gen/qu8-dwconv-9p2c-minmax-fp32-scalar-imagic.c",
"src/qu8-dwconv/gen/qu8-dwconv-9p2c-minmax-fp32-scalar-lrintf.c",
"src/qu8-dwconv/gen/qu8-dwconv-25p1c-minmax-fp32-scalar-fmagic.c",
"src/qu8-dwconv/gen/qu8-dwconv-25p1c-minmax-fp32-scalar-imagic.c",
"src/qu8-dwconv/gen/qu8-dwconv-25p2c-minmax-fp32-scalar-lrintf.c",
"src/qu8-f32-vcvt/gen/qu8-f32-vcvt-scalar-x1.c",
"src/qu8-f32-vcvt/gen/qu8-f32-vcvt-scalar-x4.c",
"src/qu8-gavgpool/gen/qu8-gavgpool-7p7x-minmax-fp32-scalar-imagic-c1.c",
"src/qu8-gavgpool/gen/qu8-gavgpool-7p7x-minmax-fp32-scalar-imagic-c4.c",
"src/qu8-gavgpool/gen/qu8-gavgpool-7x-minmax-fp32-scalar-imagic-c1.c",
"src/qu8-gavgpool/gen/qu8-gavgpool-7x-minmax-fp32-scalar-imagic-c4.c",
"src/qu8-gemm/gen/qu8-gemm-1x2-minmax-fp32-scalar-fmagic.c",
"src/qu8-gemm/gen/qu8-gemm-1x2-minmax-fp32-scalar-imagic.c",
"src/qu8-gemm/gen/qu8-gemm-1x4-minmax-fp32-scalar-lrintf.c",
"src/qu8-gemm/gen/qu8-gemm-2x2-minmax-fp32-scalar-fmagic.c",
"src/qu8-gemm/gen/qu8-gemm-2x2-minmax-fp32-scalar-imagic.c",
"src/qu8-gemm/gen/qu8-gemm-3x4-minmax-fp32-scalar-lrintf.c",
"src/qu8-igemm/gen/qu8-igemm-1x2-minmax-fp32-scalar-fmagic.c",
"src/qu8-igemm/gen/qu8-igemm-1x2-minmax-fp32-scalar-imagic.c",
"src/qu8-igemm/gen/qu8-igemm-1x4-minmax-fp32-scalar-lrintf.c",
"src/qu8-igemm/gen/qu8-igemm-2x2-minmax-fp32-scalar-fmagic.c",
"src/qu8-igemm/gen/qu8-igemm-2x2-minmax-fp32-scalar-imagic.c",
"src/qu8-igemm/gen/qu8-igemm-3x4-minmax-fp32-scalar-lrintf.c",
"src/qu8-vadd/gen/qu8-vadd-minmax-scalar-x1.c",
"src/qu8-vadd/gen/qu8-vadd-minmax-scalar-x4.c",
"src/qu8-vaddc/gen/qu8-vaddc-minmax-scalar-x1.c",
"src/qu8-vaddc/gen/qu8-vaddc-minmax-scalar-x4.c",
"src/qu8-vcvt/gen/qu8-vcvt-scalar-x1.c",
"src/qu8-vcvt/gen/qu8-vcvt-scalar-x4.c",
"src/qu8-vhswish/gen/qu8-vhswish-scalar-x1.c",
"src/qu8-vhswish/gen/qu8-vhswish-scalar-x4.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-scalar-andxor-x4.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-scalar-select-x4.c",
"src/qu8-vmul/gen/qu8-vmul-minmax-fp32-scalar-x4.c",
"src/qu8-vmulc/gen/qu8-vmulc-minmax-fp32-scalar-x4.c",
"src/s8-ibilinear/gen/s8-ibilinear-scalar-c1.c",
"src/s8-maxpool/s8-maxpool-9p8x-minmax-scalar-c1.c",
"src/s8-vclamp/s8-vclamp-scalar-x4.c",
"src/u8-ibilinear/gen/u8-ibilinear-scalar-c1.c",
"src/u8-lut32norm/u8-lut32norm-scalar.c",
"src/u8-maxpool/u8-maxpool-9p8x-minmax-scalar-c1.c",
"src/u8-rmax/u8-rmax-scalar.c",
"src/u8-vclamp/u8-vclamp-scalar-x4.c",
"src/xx-copy/xx-copy-scalar-memcpy.c",
"src/xx-fill/xx-fill-scalar-x16.c",
"src/xx-pad/xx-pad-scalar.c",
"src/xx-transposev/xx-transposev-1x1-scalar-memcpy.c",
"src/x8-lut/gen/x8-lut-scalar-x1.c",
"src/x8-lut/gen/x8-lut-scalar-x4.c",
"src/x8-packw/gen/x8-packw-x4-gemm-goi-scalar-int-x4.c",
"src/x8-transposec/gen/x8-transposec-2x4-scalar-int.c",
"src/x8-zip/x8-zip-xm-scalar.c",
"src/x8-zip/x8-zip-x2-scalar.c",
"src/x8-zip/x8-zip-x3-scalar.c",
"src/x8-zip/x8-zip-x4-scalar.c",
"src/x16-transposec/gen/x16-transposec-2x4-scalar-int.c",
"src/x24-transposec/gen/x24-transposec-1x2-scalar.c",
"src/x32-packw/gen/x32-packw-x2-gemm-goi-scalar-float-x4.c",
"src/x32-packw/gen/x32-packw-x4-gemm-goi-scalar-float-x4.c",
"src/x32-packx/x32-packx-2x-scalar.c",
"src/x32-packx/x32-packx-3x-scalar.c",
"src/x32-packx/x32-packx-4x-scalar.c",
"src/x32-transposec/gen/x32-transposec-2x4-scalar-int.c",
"src/x32-unpool/x32-unpool-scalar.c",
"src/x32-zip/x32-zip-xm-scalar.c",
"src/x32-zip/x32-zip-x2-scalar.c",
"src/x32-zip/x32-zip-x3-scalar.c",
"src/x32-zip/x32-zip-x4-scalar.c",
]
PROD_ARMSIMD32_MICROKERNEL_SRCS = [
"src/qs8-gemm/gen/qs8-gemm-1x2c4-minmax-fp32-armsimd32.c",
"src/qs8-gemm/gen/qs8-gemm-2x2c4-minmax-fp32-armsimd32.c",
"src/qs8-igemm/gen/qs8-igemm-1x2c4-minmax-fp32-armsimd32.c",
"src/qs8-igemm/gen/qs8-igemm-2x2c4-minmax-fp32-armsimd32.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x2c4-minmax-fp32-armsimd32.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-2x2c4-minmax-fp32-armsimd32.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x2c4-minmax-fp32-armsimd32.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-2x2c4-minmax-fp32-armsimd32.c",
"src/qs8-vcvt/gen/qs8-vcvt-armsimd32-x8.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-armsimd32-x4.c",
"src/qu8-gemm/gen/qu8-gemm-1x2c4-minmax-fp32-armsimd32.c",
"src/qu8-gemm/gen/qu8-gemm-2x2c4-minmax-fp32-armsimd32.c",
"src/qu8-igemm/gen/qu8-igemm-1x2c4-minmax-fp32-armsimd32.c",
"src/qu8-igemm/gen/qu8-igemm-2x2c4-minmax-fp32-armsimd32.c",
"src/qu8-vcvt/gen/qu8-vcvt-armsimd32-x8.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-armsimd32-x4.c",
]
PROD_FP16ARITH_MICROKERNEL_SRCS = [
"src/f16-vbinary/gen/f16-vdiv-minmax-fp16arith-x2.c",
"src/f16-vbinary/gen/f16-vdivc-minmax-fp16arith-x2.c",
"src/f16-vbinary/gen/f16-vrdivc-minmax-fp16arith-x2.c",
]
PROD_NEON_MICROKERNEL_SRCS = [
"src/f16-f32-vcvt/gen/f16-f32-vcvt-neon-int16-x16.c",
"src/f32-argmaxpool/f32-argmaxpool-4x-neon-c4.c",
"src/f32-argmaxpool/f32-argmaxpool-9p8x-neon-c4.c",
"src/f32-argmaxpool/f32-argmaxpool-9x-neon-c4.c",
"src/f32-avgpool/f32-avgpool-9p8x-minmax-neon-c4.c",
"src/f32-avgpool/f32-avgpool-9x-minmax-neon-c4.c",
"src/f32-conv-hwc2chw/f32-conv-hwc2chw-3x3s2p1c3x4-neon-2x2.c",
"src/f32-dwconv/gen/f32-dwconv-3p8c-minmax-neon.c",
"src/f32-dwconv/gen/f32-dwconv-4p8c-minmax-neon.c",
"src/f32-dwconv/gen/f32-dwconv-8f8m9l4c4s4r-minmax-neon-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-9p8c-minmax-neon.c",
"src/f32-dwconv/gen/f32-dwconv-25p8c-minmax-neon-acc2.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3p1-minmax-neon-2x4.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3s2p1-minmax-neon-1x4.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5p2-minmax-neon-1x4.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5s2p2-minmax-neon-1x4.c",
"src/f32-f16-vcvt/gen/f32-f16-vcvt-neon-x8.c",
"src/f32-gavgpool-cw/f32-gavgpool-cw-neon-x4.c",
"src/f32-gavgpool/f32-gavgpool-7p7x-minmax-neon-c4.c",
"src/f32-gavgpool/f32-gavgpool-7x-minmax-neon-c4.c",
"src/f32-gemm/gen/f32-gemm-1x8-minmax-neon-lane-ld64.c",
"src/f32-gemm/gen/f32-gemm-4x2-minmax-neon-lane-ld64.c",
"src/f32-gemm/gen/f32-gemm-4x8-minmax-neon-lane-ld64.c",
"src/f32-gemm/gen/f32-gemm-4x8-minmax-neon-lane-ld128.c",
"src/f32-ibilinear-chw/gen/f32-ibilinear-chw-neon-p8.c",
"src/f32-ibilinear/gen/f32-ibilinear-neon-c8.c",
"src/f32-igemm/gen/f32-igemm-1x8-minmax-neon-lane-ld64.c",
"src/f32-igemm/gen/f32-igemm-4x2-minmax-neon-lane-ld64.c",
"src/f32-igemm/gen/f32-igemm-4x8-minmax-neon-lane-ld64.c",
"src/f32-igemm/gen/f32-igemm-4x8-minmax-neon-lane-ld128.c",
"src/f32-maxpool/f32-maxpool-9p8x-minmax-neon-c4.c",
"src/f32-pavgpool/f32-pavgpool-9p8x-minmax-neon-c4.c",
"src/f32-pavgpool/f32-pavgpool-9x-minmax-neon-c4.c",
"src/f32-prelu/gen/f32-prelu-neon-2x8.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-1x8-minmax-neon-lane-ld64.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-4x8-minmax-neon-lane-ld64.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-minmax-neon-lane-ld64.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x8-minmax-neon-lane-ld64.c",
"src/f32-qs8-vcvt/gen/f32-qs8-vcvt-neon-x32.c",
"src/f32-qu8-vcvt/gen/f32-qu8-vcvt-neon-x32.c",
"src/f32-raddstoreexpminusmax/gen/f32-raddstoreexpminusmax-neon-rr2-lut64-p2-x8.c",
"src/f32-rmax/f32-rmax-neon.c",
"src/f32-rminmax/gen/f32-rminmax-neon-x16-acc4.c",
"src/f32-rsum/gen/f32-rsum-neon-x16-acc4.c",
"src/f32-spmm/gen/f32-spmm-32x1-minmax-neon.c",
"src/f32-vbinary/gen/f32-vadd-minmax-neon-x8.c",
"src/f32-vbinary/gen/f32-vaddc-minmax-neon-x8.c",
"src/f32-vbinary/gen/f32-vmax-neon-x8.c",
"src/f32-vbinary/gen/f32-vmaxc-neon-x8.c",
"src/f32-vbinary/gen/f32-vmin-neon-x8.c",
"src/f32-vbinary/gen/f32-vminc-neon-x8.c",
"src/f32-vbinary/gen/f32-vmul-minmax-neon-x8.c",
"src/f32-vbinary/gen/f32-vmulc-minmax-neon-x8.c",
"src/f32-vbinary/gen/f32-vrsubc-minmax-neon-x8.c",
"src/f32-vbinary/gen/f32-vsqrdiff-neon-x8.c",
"src/f32-vbinary/gen/f32-vsqrdiffc-neon-x8.c",
"src/f32-vbinary/gen/f32-vsub-minmax-neon-x8.c",
"src/f32-vbinary/gen/f32-vsubc-minmax-neon-x8.c",
"src/f32-vclamp/gen/f32-vclamp-neon-x8.c",
"src/f32-vcmul/gen/f32-vcmul-neon-x8.c",
"src/f32-velu/gen/f32-velu-neon-rr2-lut16-p3-x8.c",
"src/f32-vhswish/gen/f32-vhswish-neon-x16.c",
"src/f32-vlrelu/gen/f32-vlrelu-neon-x8.c",
"src/f32-vmulcaddc/gen/f32-vmulcaddc-c4-minmax-neon-2x.c",
"src/f32-vrnd/gen/f32-vrndd-neon-x8.c",
"src/f32-vrnd/gen/f32-vrndne-neon-x8.c",
"src/f32-vrnd/gen/f32-vrndu-neon-x8.c",
"src/f32-vrnd/gen/f32-vrndz-neon-x8.c",
"src/f32-vsigmoid/gen/f32-vsigmoid-neon-rr2-lut64-p2-nr2recps-x8.c",
"src/f32-vtanh/gen/f32-vtanh-neon-expm1minus-rr1-p6h5ts-nr2recps-x8.c",
"src/f32-vunary/gen/f32-vabs-neon-x8.c",
"src/f32-vunary/gen/f32-vneg-neon-x8.c",
"src/f32-vunary/gen/f32-vsqr-neon-x8.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-2x8c2s4-minmax-neon-mlal.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x8c2s4-minmax-neon-mlal.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x16-minmax-neon-mlal-lane.c",
"src/qs8-dwconv/gen/qs8-dwconv-9p16c-minmax-rndnu-neon-mla8-ld64.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p8c-minmax-rndnu-neon-mla8-ld64.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p16c-minmax-rndnu-neon-mla8-ld64.c",
"src/qs8-f32-vcvt/gen/qs8-f32-vcvt-neon-x32.c",
"src/qs8-gavgpool/gen/qs8-gavgpool-7p7x-minmax-rndnu-neon-c8.c",
"src/qs8-gavgpool/gen/qs8-gavgpool-7x-minmax-rndnu-neon-c8.c",
"src/qs8-gemm/gen/qs8-gemm-1x8-minmax-rndnu-neon-mlal-lane.c",
"src/qs8-gemm/gen/qs8-gemm-1x8c2s4-minmax-rndnu-neon-mlal.c",
"src/qs8-gemm/gen/qs8-gemm-1x16-minmax-rndnu-neon-mlal-lane.c",
"src/qs8-gemm/gen/qs8-gemm-2x8c2s4-minmax-rndnu-neon-mlal.c",
"src/qs8-igemm/gen/qs8-igemm-1x8-minmax-rndnu-neon-mlal-lane.c",
"src/qs8-igemm/gen/qs8-igemm-1x8c2s4-minmax-rndnu-neon-mlal.c",
"src/qs8-igemm/gen/qs8-igemm-1x16-minmax-rndnu-neon-mlal-lane.c",
"src/qs8-igemm/gen/qs8-igemm-2x8c2s4-minmax-rndnu-neon-mlal.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p16c-minmax-fp32-neon-mla8-ld128.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p16c-minmax-fp32-neon-mla8-ld64.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p8c-minmax-fp32-neon-mla8-ld64.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p16c-minmax-fp32-neon-mla8-ld64.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x8-minmax-fp32-neon-mlal-lane.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x8c2s4-minmax-fp32-neon-mlal.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-2x8c2s4-minmax-fp32-neon-mlal.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x8-minmax-fp32-neon-mlal-lane.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x8c2s4-minmax-fp32-neon-mlal.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-2x8c2s4-minmax-fp32-neon-mlal.c",
"src/qs8-vadd/gen/qs8-vadd-minmax-neon-ld64-x16.c",
"src/qs8-vadd/gen/qs8-vadd-minmax-neon-ld64-x32.c",
"src/qs8-vaddc/gen/qs8-vaddc-minmax-neon-ld64-x16.c",
"src/qs8-vaddc/gen/qs8-vaddc-minmax-neon-ld64-x32.c",
"src/qs8-vcvt/gen/qs8-vcvt-neon-x32.c",
"src/qs8-vhswish/gen/qs8-vhswish-neon-x8.c",
"src/qs8-vhswish/gen/qs8-vhswish-neon-x16.c",
"src/qs8-vhswish/gen/qs8-vhswish-neon-x32.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-neon-x32.c",
"src/qs8-vmul/gen/qs8-vmul-minmax-rndnu-neon-ld64-x16.c",
"src/qs8-vmulc/gen/qs8-vmulc-minmax-rndnu-neon-ld64-x16.c",
"src/qs16-qs8-vcvt/gen/qs16-qs8-vcvt-neon-x32.c",
"src/qu8-avgpool/qu8-avgpool-9p8x-minmax-fp32-neon-c8.c",
"src/qu8-avgpool/qu8-avgpool-9x-minmax-fp32-neon-c8.c",
"src/qu8-dwconv/gen/qu8-dwconv-9p16c-minmax-rndnu-neon-mul8.c",
"src/qu8-dwconv/gen/qu8-dwconv-25p8c-minmax-rndnu-neon-mul8.c",
"src/qu8-f32-vcvt/gen/qu8-f32-vcvt-neon-x32.c",
"src/qu8-gavgpool/gen/qu8-gavgpool-7p7x-minmax-rndnu-neon-c8.c",
"src/qu8-gavgpool/gen/qu8-gavgpool-7x-minmax-rndnu-neon-c8.c",
"src/qu8-gemm/gen/qu8-gemm-1x8-minmax-rndnu-neon-mlal-lane.c",
"src/qu8-gemm/gen/qu8-gemm-1x16-minmax-rndnu-neon-mlal-lane.c",
"src/qu8-gemm/gen/qu8-gemm-3x8-minmax-rndnu-neon-mlal-lane.c",
"src/qu8-gemm/gen/qu8-gemm-4x16-minmax-rndnu-neon-mlal-lane.c",
"src/qu8-igemm/gen/qu8-igemm-1x8-minmax-rndnu-neon-mlal-lane.c",
"src/qu8-igemm/gen/qu8-igemm-1x16-minmax-rndnu-neon-mlal-lane.c",
"src/qu8-igemm/gen/qu8-igemm-3x8-minmax-rndnu-neon-mlal-lane.c",
"src/qu8-igemm/gen/qu8-igemm-4x16-minmax-rndnu-neon-mlal-lane.c",
"src/qu8-vadd/gen/qu8-vadd-minmax-neon-ld64-x16.c",
"src/qu8-vadd/gen/qu8-vadd-minmax-neon-ld64-x32.c",
"src/qu8-vaddc/gen/qu8-vaddc-minmax-neon-ld64-x16.c",
"src/qu8-vaddc/gen/qu8-vaddc-minmax-neon-ld64-x32.c",
"src/qu8-vcvt/gen/qu8-vcvt-neon-x32.c",
"src/qu8-vhswish/gen/qu8-vhswish-neon-x8.c",
"src/qu8-vhswish/gen/qu8-vhswish-neon-x16.c",
"src/qu8-vhswish/gen/qu8-vhswish-neon-x32.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-neon-x32.c",
"src/qu8-vmul/gen/qu8-vmul-minmax-rndnu-neon-ld64-x16.c",
"src/qu8-vmulc/gen/qu8-vmulc-minmax-rndnu-neon-ld64-x16.c",
"src/s8-ibilinear/gen/s8-ibilinear-neon-c8.c",
"src/s8-ibilinear/gen/s8-ibilinear-neon-c16.c",
"src/s8-maxpool/s8-maxpool-9p8x-minmax-neon-c16.c",
"src/s8-vclamp/s8-vclamp-neon-x64.c",
"src/u8-ibilinear/gen/u8-ibilinear-neon-c8.c",
"src/u8-ibilinear/gen/u8-ibilinear-neon-c16.c",
"src/u8-maxpool/u8-maxpool-9p8x-minmax-neon-c16.c",
"src/u8-rmax/u8-rmax-neon.c",
"src/u8-vclamp/u8-vclamp-neon-x64.c",
"src/xx-fill/xx-fill-neon-x64.c",
"src/xx-pad/xx-pad-neon.c",
"src/x8-transposec/gen/x8-transposec-16x16-reuse-dec-zip-neon.c",
"src/x8-zip/x8-zip-xm-neon.c",
"src/x8-zip/x8-zip-x2-neon.c",
"src/x8-zip/x8-zip-x3-neon.c",
"src/x8-zip/x8-zip-x4-neon.c",
"src/x8-packw/gen/x8-packw-x8-gemm-goi-scalar-int-x4.c",
"src/x16-packw/gen/x16-packw-x8-gemm-goi-neon-ld4lane-x8-prfm.c",
"src/x16-packw/gen/x16-packw-x16-gemm-goi-neon-ld4lane-x8-prfm.c",
"src/x16-transposec/gen/x16-transposec-8x8-reuse-dec-zip-neon.c",
"src/x24-transposec/x24-transposec-2x2-neon-tbl64.c",
"src/x32-packw/gen/x32-packw-x2-gemm-goi-neon-ld2lane-x2-prfm.c",
"src/x32-packw/gen/x32-packw-x8-gemm-goi-neon-ld4lane-x4-prfm.c",
"src/x32-packw/gen/x32-packw-x8s4-gemm-goi-neon-ld4lane-x4-prfm.c",
"src/x32-packx/gen/x32-packx-4x-neon-st4-x4-prfm.c",
"src/x32-transposec/gen/x32-transposec-4x4-reuse-dec-zip-neon.c",
"src/x32-unpool/x32-unpool-neon.c",
"src/x32-zip/x32-zip-xm-neon.c",
"src/x32-zip/x32-zip-x2-neon.c",
"src/x32-zip/x32-zip-x3-neon.c",
"src/x32-zip/x32-zip-x4-neon.c",
]
PROD_NEONFP16_MICROKERNEL_SRCS = [
"src/f16-f32-vcvt/gen/f16-f32-vcvt-neonfp16-x16.c",
"src/f16-f32acc-rsum/gen/f16-f32acc-rsum-neonfp16-x32-acc4.c",
"src/f32-f16-vcvt/gen/f32-f16-vcvt-neonfp16-x16.c",
]
PROD_NEONFMA_MICROKERNEL_SRCS = [
"src/f32-dwconv/gen/f32-dwconv-3p8c-minmax-neonfma.c",
"src/f32-dwconv/gen/f32-dwconv-4p8c-minmax-neonfma.c",
"src/f32-dwconv/gen/f32-dwconv-5f5m5l8c4s4r-minmax-neonfma-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-9p8c-minmax-neonfma.c",
"src/f32-dwconv/gen/f32-dwconv-25p8c-minmax-neonfma-acc2.c",
"src/f32-gemm/gen/f32-gemm-1x8s4-minmax-neonfma.c",
"src/f32-gemm/gen/f32-gemm-4x8s4-minmax-neonfma.c",
"src/f32-gemm/gen/f32-gemm-6x8s4-minmax-neonfma.c",
"src/f32-ibilinear-chw/gen/f32-ibilinear-chw-neonfma-p8.c",
"src/f32-ibilinear/gen/f32-ibilinear-neonfma-c8.c",
"src/f32-igemm/gen/f32-igemm-1x8s4-minmax-neonfma.c",
"src/f32-igemm/gen/f32-igemm-4x8s4-minmax-neonfma.c",
"src/f32-igemm/gen/f32-igemm-6x8s4-minmax-neonfma.c",
"src/f32-raddstoreexpminusmax/gen/f32-raddstoreexpminusmax-neonfma-rr1-lut64-p2-x16.c",
"src/f32-spmm/gen/f32-spmm-32x1-minmax-neonfma-pipelined.c",
"src/f32-velu/gen/f32-velu-neonfma-rr1-lut16-p3-x16.c",
"src/f32-velu/gen/f32-velu-neonfma-rr1-p6-x8.c",
"src/f32-vmulcaddc/gen/f32-vmulcaddc-c4-minmax-neonfma-2x.c",
"src/f32-vsigmoid/gen/f32-vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x16.c",
"src/f32-vtanh/gen/f32-vtanh-neonfma-expm1minus-rr1-p6h5ts-nr2fma-x8.c",
]
PROD_NEON_AARCH64_MICROKERNEL_SRCS = [
"src/f32-conv-hwc2chw/f32-conv-hwc2chw-3x3s2p1c3x4-aarch64-neonfma-2x2.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3p1-minmax-aarch64-neonfma-3x4.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3s2p1-minmax-aarch64-neonfma-2x4-acc2.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5p2-minmax-aarch64-neonfma-4x4.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5s2p2-minmax-aarch64-neonfma-1x4-acc2.c",
"src/f32-gemm/gen/f32-gemm-1x8-minmax-aarch64-neonfma-lane-ld64.c",
"src/f32-gemm/gen/f32-gemm-4x2-minmax-aarch64-neonfma-lane-ld64.c",
"src/f32-gemm/gen/f32-gemm-6x2-minmax-aarch64-neonfma-lane-ld64.c",
"src/f32-gemm/gen/f32-gemm-6x8-minmax-aarch64-neonfma-lane-ld64.c",
"src/f32-igemm/gen/f32-igemm-1x8-minmax-aarch64-neonfma-lane-ld64.c",
"src/f32-igemm/gen/f32-igemm-4x2-minmax-aarch64-neonfma-lane-ld64.c",
"src/f32-igemm/gen/f32-igemm-6x2-minmax-aarch64-neonfma-lane-ld64.c",
"src/f32-igemm/gen/f32-igemm-6x8-minmax-aarch64-neonfma-lane-ld64.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-1x8-minmax-aarch64-neonfma-lane-ld128.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-4x8-minmax-aarch64-neonfma-lane-ld128.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-6x8-minmax-aarch64-neonfma-lane-ld128.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-minmax-aarch64-neonfma-lane-ld64.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-6x8-minmax-aarch64-neonfma-lane-ld64.c",
"src/f32-spmm/gen/f32-spmm-32x2-minmax-aarch64-neonfma.c",
"src/f32-spmm/gen/f32-spmm-32x4-minmax-aarch64-neonfma.c",
"src/f32-vbinary/gen/f32-vdiv-minmax-aarch64-neon-x8.c",
"src/f32-vbinary/gen/f32-vdivc-minmax-aarch64-neon-x8.c",
"src/f32-vbinary/gen/f32-vrdivc-minmax-aarch64-neon-x8.c",
"src/f32-vsqrt/gen/f32-vsqrt-aarch64-neon-sqrt-x4.c",
"src/f32-vtanh/gen/f32-vtanh-aarch64-neonfma-expm1minus-rr1-p6h5ts-div-x16.c",
"src/x8-lut/gen/x8-lut-aarch64-neon-tbx128x4-x64.c",
"src/x24-transposec/x24-transposec-4x4-aarch64-neon-tbl128.c",
"src/x32-transposec/x32-transposec-4x4-aarch64-neon-tbl128.c",
]
PROD_NEONV8_MICROKERNEL_SRCS = [
"src/f32-qs8-vcvt/gen/f32-qs8-vcvt-neonv8-x32.c",
"src/f32-qu8-vcvt/gen/f32-qu8-vcvt-neonv8-x32.c",
"src/f32-vrnd/gen/f32-vrndd-neonv8-x8.c",
"src/f32-vrnd/gen/f32-vrndne-neonv8-x8.c",
"src/f32-vrnd/gen/f32-vrndu-neonv8-x8.c",
"src/f32-vrnd/gen/f32-vrndz-neonv8-x8.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p16c-minmax-fp32-neonv8-mla8-ld128.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p16c-minmax-fp32-neonv8-mla8-ld64.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p8c-minmax-fp32-neonv8-mla8-ld64.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p16c-minmax-fp32-neonv8-mla8-ld64.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x8-minmax-fp32-neonv8-mlal-lane.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x8c2s4-minmax-fp32-neonv8-mlal.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x8c8-minmax-fp32-neonv8-mlal.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x16-minmax-fp32-neonv8-mlal-lane.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-2x8c2s4-minmax-fp32-neonv8-mlal.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-2x8c8-minmax-fp32-neonv8-mlal.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-4x16-minmax-fp32-neonv8-mlal-lane.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x8-minmax-fp32-neonv8-mlal-lane.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x8c2s4-minmax-fp32-neonv8-mlal.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x8c8-minmax-fp32-neonv8-mlal.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x16-minmax-fp32-neonv8-mlal-lane.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-2x8c2s4-minmax-fp32-neonv8-mlal.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-2x8c8-minmax-fp32-neonv8-mlal.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-4x16-minmax-fp32-neonv8-mlal-lane.c",
]
PROD_NEONFP16ARITH_MICROKERNEL_SRCS = [
"src/f16-avgpool/f16-avgpool-9p8x-minmax-neonfp16arith-c8.c",
"src/f16-avgpool/f16-avgpool-9x-minmax-neonfp16arith-c8.c",
"src/f16-conv-hwc2chw/f16-conv-hwc2chw-3x3s2p1c3x4-neonfp16arith-2x2.c",
"src/f16-dwconv/gen/f16-dwconv-3p16c-minmax-neonfp16arith.c",
"src/f16-dwconv/gen/f16-dwconv-4p16c-minmax-neonfp16arith.c",
"src/f16-dwconv/gen/f16-dwconv-9p8c-minmax-neonfp16arith.c",
"src/f16-dwconv/gen/f16-dwconv-9p16c-minmax-neonfp16arith.c",
"src/f16-dwconv/gen/f16-dwconv-25p8c-minmax-neonfp16arith-acc2.c",
"src/f16-dwconv2d-chw/gen/f16-dwconv2d-chw-3x3p1-minmax-neonfp16arith-2x8.c",
"src/f16-dwconv2d-chw/gen/f16-dwconv2d-chw-3x3s2p1-minmax-neonfp16arith-1x8.c",
"src/f16-dwconv2d-chw/gen/f16-dwconv2d-chw-5x5p2-minmax-neonfp16arith-1x8.c",
"src/f16-dwconv2d-chw/gen/f16-dwconv2d-chw-5x5s2p2-minmax-neonfp16arith-1x8.c",
"src/f16-gavgpool-cw/f16-gavgpool-cw-neonfp16arith-x8.c",
"src/f16-gavgpool/gen/f16-gavgpool-7p7x-minmax-neonfp16arith-c8.c",
"src/f16-gavgpool/gen/f16-gavgpool-7x-minmax-neonfp16arith-c8.c",
"src/f16-gemm/gen/f16-gemm-1x8-minmax-neonfp16arith-ld64.c",
"src/f16-gemm/gen/f16-gemm-1x16-minmax-neonfp16arith-ld64.c",
"src/f16-gemm/gen/f16-gemm-6x8-minmax-neonfp16arith-ld64.c",
"src/f16-gemm/gen/f16-gemm-6x16-minmax-neonfp16arith-ld64.c",
"src/f16-ibilinear-chw/gen/f16-ibilinear-chw-neonfp16arith-p8.c",
"src/f16-ibilinear/gen/f16-ibilinear-neonfp16arith-c8.c",
"src/f16-igemm/gen/f16-igemm-1x8-minmax-neonfp16arith-ld64.c",
"src/f16-igemm/gen/f16-igemm-1x16-minmax-neonfp16arith-ld64.c",
"src/f16-igemm/gen/f16-igemm-6x8-minmax-neonfp16arith-ld64.c",
"src/f16-igemm/gen/f16-igemm-6x16-minmax-neonfp16arith-ld64.c",
"src/f16-maxpool/f16-maxpool-9p8x-minmax-neonfp16arith-c8.c",
"src/f16-pavgpool/f16-pavgpool-9p8x-minmax-neonfp16arith-c8.c",
"src/f16-pavgpool/f16-pavgpool-9x-minmax-neonfp16arith-c8.c",
"src/f16-prelu/gen/f16-prelu-neonfp16arith-2x16.c",
"src/f16-raddstoreexpminusmax/gen/f16-raddstoreexpminusmax-neonfp16arith-rr2-p2-x32.c",
"src/f16-raddstoreexpminusmax/gen/f16-raddstoreexpminusmax-neonfp16arith-rr2-p2-x40.c",
"src/f16-rmax/f16-rmax-neonfp16arith.c",
"src/f16-spmm/gen/f16-spmm-32x1-minmax-neonfp16arith-pipelined.c",
"src/f16-vbinary/gen/f16-vadd-minmax-neonfp16arith-x16.c",
"src/f16-vbinary/gen/f16-vaddc-minmax-neonfp16arith-x16.c",
"src/f16-vbinary/gen/f16-vmax-neonfp16arith-x16.c",
"src/f16-vbinary/gen/f16-vmaxc-neonfp16arith-x16.c",
"src/f16-vbinary/gen/f16-vmin-neonfp16arith-x16.c",
"src/f16-vbinary/gen/f16-vminc-neonfp16arith-x16.c",
"src/f16-vbinary/gen/f16-vmul-minmax-neonfp16arith-x16.c",
"src/f16-vbinary/gen/f16-vmulc-minmax-neonfp16arith-x16.c",
"src/f16-vbinary/gen/f16-vrsubc-minmax-neonfp16arith-x16.c",
"src/f16-vbinary/gen/f16-vsqrdiff-neonfp16arith-x16.c",
"src/f16-vbinary/gen/f16-vsqrdiffc-neonfp16arith-x16.c",
"src/f16-vbinary/gen/f16-vsub-minmax-neonfp16arith-x16.c",
"src/f16-vbinary/gen/f16-vsubc-minmax-neonfp16arith-x16.c",
"src/f16-vclamp/gen/f16-vclamp-neonfp16arith-x16.c",
"src/f16-velu/gen/f16-velu-neonfp16arith-rr1-p3-x16.c",
"src/f16-vhswish/gen/f16-vhswish-neonfp16arith-x16.c",
"src/f16-vlrelu/gen/f16-vlrelu-neonfp16arith-x16.c",
"src/f16-vmulcaddc/gen/f16-vmulcaddc-c8-minmax-neonfp16arith-2x.c",
"src/f16-vrnd/gen/f16-vrndd-neonfp16arith-x16.c",
"src/f16-vrnd/gen/f16-vrndne-neonfp16arith-x16.c",
"src/f16-vrnd/gen/f16-vrndu-neonfp16arith-x16.c",
"src/f16-vrnd/gen/f16-vrndz-neonfp16arith-x16.c",
"src/f16-vsigmoid/gen/f16-vsigmoid-neonfp16arith-rr2-p2-nr1fma-x40.c",
"src/f16-vsigmoid/gen/f16-vsigmoid-neonfp16arith-rr2-p2-nr1recps-x16.c",
"src/f16-vsqrt/gen/f16-vsqrt-neonfp16arith-nr1fma1adj-x8.c",
"src/f16-vtanh/gen/f16-vtanh-neonfp16arith-expm1minus-rr1-p3h2ts-nr1fma-x32.c",
"src/f16-vunary/gen/f16-vabs-neonfp16arith-x16.c",
"src/f16-vunary/gen/f16-vneg-neonfp16arith-x16.c",
"src/f16-vunary/gen/f16-vsqr-neonfp16arith-x16.c",
]
PROD_NEONFP16ARITH_AARCH64_MICROKERNEL_SRCS = [
"src/f16-vbinary/gen/f16-vdiv-minmax-aarch64-neonfp16arith-x8.c",
"src/f16-vbinary/gen/f16-vdivc-minmax-aarch64-neonfp16arith-x8.c",
"src/f16-vbinary/gen/f16-vrdivc-minmax-aarch64-neonfp16arith-x8.c",
"src/f16-vsqrt/gen/f16-vsqrt-aarch64-neonfp16arith-sqrt-x8.c",
"src/f16-vtanh/gen/f16-vtanh-aarch64-neonfp16arith-expm1minus-rr1-p3h2ts-div-x32.c",
]
PROD_NEONBF16_MICROKERNEL_SRCS = [
]
PROD_NEONBF16_AARCH64_MICROKERNEL_SRCS = [
]
PROD_NEONDOT_MICROKERNEL_SRCS = [
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x8c4-minmax-neondot.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x16c4-minmax-neondot.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-4x16c4-minmax-neondot.c",
"src/qs8-gemm/gen/qs8-gemm-1x8c4-minmax-rndnu-neondot.c",
"src/qs8-gemm/gen/qs8-gemm-1x16c4-minmax-rndnu-neondot.c",
"src/qs8-gemm/gen/qs8-gemm-4x8c4-minmax-rndnu-neondot.c",
"src/qs8-gemm/gen/qs8-gemm-4x16c4-minmax-rndnu-neondot.c",
"src/qs8-igemm/gen/qs8-igemm-1x8c4-minmax-rndnu-neondot.c",
"src/qs8-igemm/gen/qs8-igemm-1x16c4-minmax-rndnu-neondot.c",
"src/qs8-igemm/gen/qs8-igemm-4x8c4-minmax-rndnu-neondot.c",
"src/qs8-igemm/gen/qs8-igemm-4x16c4-minmax-rndnu-neondot.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x8c4-minmax-fp32-neondot.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x16c4-minmax-fp32-neondot.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-4x8c4-minmax-fp32-neondot.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-4x16c4-minmax-fp32-neondot.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x8c4-minmax-fp32-neondot.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x16c4-minmax-fp32-neondot.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-4x8c4-minmax-fp32-neondot.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-4x16c4-minmax-fp32-neondot.c",
"src/qu8-gemm/gen/qu8-gemm-1x8c4-minmax-rndnu-neondot.c",
"src/qu8-gemm/gen/qu8-gemm-1x16c4-minmax-rndnu-neondot.c",
"src/qu8-gemm/gen/qu8-gemm-4x8c4-minmax-rndnu-neondot.c",
"src/qu8-gemm/gen/qu8-gemm-4x16c4-minmax-rndnu-neondot.c",
"src/qu8-igemm/gen/qu8-igemm-1x8c4-minmax-rndnu-neondot.c",
"src/qu8-igemm/gen/qu8-igemm-1x16c4-minmax-rndnu-neondot.c",
"src/qu8-igemm/gen/qu8-igemm-4x8c4-minmax-rndnu-neondot.c",
"src/qu8-igemm/gen/qu8-igemm-4x16c4-minmax-rndnu-neondot.c",
]
PROD_SSE_MICROKERNEL_SRCS = [
"src/f32-avgpool/f32-avgpool-9p8x-minmax-sse-c4.c",
"src/f32-avgpool/f32-avgpool-9x-minmax-sse-c4.c",
"src/f32-conv-hwc2chw/f32-conv-hwc2chw-3x3s2p1c3x4-sse-2x2.c",
"src/f32-dwconv/gen/f32-dwconv-3p8c-minmax-sse.c",
"src/f32-dwconv/gen/f32-dwconv-4p8c-minmax-sse.c",
"src/f32-dwconv/gen/f32-dwconv-8f8m9l16c4s4r-minmax-sse-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-9p8c-minmax-sse.c",
"src/f32-dwconv/gen/f32-dwconv-25p8c-minmax-sse.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3p1-minmax-sse-2x4-acc2.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3s2p1-minmax-sse-1x4-acc3.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5p2-minmax-sse-4x4.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5s2p2-minmax-sse-2x4.c",
"src/f32-gavgpool-cw/f32-gavgpool-cw-sse-x4.c",
"src/f32-gavgpool/f32-gavgpool-7p7x-minmax-sse-c4.c",
"src/f32-gavgpool/f32-gavgpool-7x-minmax-sse-c4.c",
"src/f32-gemm/gen/f32-gemm-1x8-minmax-sse-load1.c",
"src/f32-gemm/gen/f32-gemm-4x2c4-minmax-sse.c",
"src/f32-gemm/gen/f32-gemm-4x8-minmax-sse-load1.c",
"src/f32-ibilinear-chw/gen/f32-ibilinear-chw-sse-p8.c",
"src/f32-ibilinear/gen/f32-ibilinear-sse-c8.c",
"src/f32-igemm/gen/f32-igemm-1x8-minmax-sse-load1.c",
"src/f32-igemm/gen/f32-igemm-4x2c4-minmax-sse.c",
"src/f32-igemm/gen/f32-igemm-4x8-minmax-sse-load1.c",
"src/f32-maxpool/f32-maxpool-9p8x-minmax-sse-c4.c",
"src/f32-pavgpool/f32-pavgpool-9p8x-minmax-sse-c4.c",
"src/f32-pavgpool/f32-pavgpool-9x-minmax-sse-c4.c",
"src/f32-rmax/f32-rmax-sse.c",
"src/f32-rminmax/gen/f32-rminmax-sse-x16-acc4.c",
"src/f32-rsum/gen/f32-rsum-sse-x16-acc4.c",
"src/f32-spmm/gen/f32-spmm-32x1-minmax-sse.c",
"src/f32-vbinary/gen/f32-vadd-minmax-sse-x8.c",
"src/f32-vbinary/gen/f32-vaddc-minmax-sse-x8.c",
"src/f32-vbinary/gen/f32-vdiv-minmax-sse-x8.c",
"src/f32-vbinary/gen/f32-vdivc-minmax-sse-x8.c",
"src/f32-vbinary/gen/f32-vmax-sse-x8.c",
"src/f32-vbinary/gen/f32-vmaxc-sse-x8.c",
"src/f32-vbinary/gen/f32-vmin-sse-x8.c",
"src/f32-vbinary/gen/f32-vminc-sse-x8.c",
"src/f32-vbinary/gen/f32-vmul-minmax-sse-x8.c",
"src/f32-vbinary/gen/f32-vmulc-minmax-sse-x8.c",
"src/f32-vbinary/gen/f32-vrdivc-minmax-sse-x8.c",
"src/f32-vbinary/gen/f32-vrsubc-minmax-sse-x8.c",
"src/f32-vbinary/gen/f32-vsqrdiff-sse-x8.c",
"src/f32-vbinary/gen/f32-vsqrdiffc-sse-x8.c",
"src/f32-vbinary/gen/f32-vsub-minmax-sse-x8.c",
"src/f32-vbinary/gen/f32-vsubc-minmax-sse-x8.c",
"src/f32-vclamp/gen/f32-vclamp-sse-x8.c",
"src/f32-vcmul/gen/f32-vcmul-sse-x8.c",
"src/f32-vhswish/gen/f32-vhswish-sse-x8.c",
"src/f32-vlrelu/gen/f32-vlrelu-sse-x8.c",
"src/f32-vmulcaddc/gen/f32-vmulcaddc-c4-minmax-sse-2x.c",
"src/f32-vsqrt/gen/f32-vsqrt-sse-sqrt-x4.c",
"src/f32-vunary/gen/f32-vabs-sse-x8.c",
"src/f32-vunary/gen/f32-vneg-sse-x8.c",
"src/f32-vunary/gen/f32-vsqr-sse-x8.c",
"src/x8-packw/gen/x8-packw-x8-gemm-goi-scalar-int-x4.c",
"src/x32-packx/x32-packx-4x-sse.c",
"src/x32-transposec/x32-transposec-4x4-sse.c",
]
PROD_SSE2_MICROKERNEL_SRCS = [
"src/f16-f32-vcvt/gen/f16-f32-vcvt-sse2-int16-x32.c",
"src/f16-vunary/gen/f16-vabs-sse2-x16.c",
"src/f16-vunary/gen/f16-vneg-sse2-x16.c",
"src/f32-argmaxpool/f32-argmaxpool-4x-sse2-c4.c",
"src/f32-argmaxpool/f32-argmaxpool-9p8x-sse2-c4.c",
"src/f32-argmaxpool/f32-argmaxpool-9x-sse2-c4.c",
"src/f32-f16-vcvt/gen/f32-f16-vcvt-sse2-x16.c",
"src/f32-prelu/gen/f32-prelu-sse2-2x8.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-1x8-minmax-sse2-dup.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-4x8-minmax-sse2-dup.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-minmax-sse2-dup.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x8-minmax-sse2-dup.c",
"src/f32-qs8-vcvt/gen/f32-qs8-vcvt-sse2-x32.c",
"src/f32-qu8-vcvt/gen/f32-qu8-vcvt-sse2-x32.c",
"src/f32-raddstoreexpminusmax/gen/f32-raddstoreexpminusmax-sse2-rr2-p5-x20-acc2.c",
"src/f32-velu/gen/f32-velu-sse2-rr2-lut16-p3-x12.c",
"src/f32-vlrelu/gen/f32-vlrelu-sse2-x8.c",
"src/f32-vrnd/gen/f32-vrndd-sse2-x8.c",
"src/f32-vrnd/gen/f32-vrndne-sse2-x8.c",
"src/f32-vrnd/gen/f32-vrndu-sse2-x8.c",
"src/f32-vrnd/gen/f32-vrndz-sse2-x8.c",
"src/f32-vsigmoid/gen/f32-vsigmoid-sse2-rr2-lut64-p2-div-x8.c",
"src/f32-vtanh/gen/f32-vtanh-sse2-expm1minus-rr1-lut8-p4h3ts-div-x16.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x4c8-minmax-sse2-ld64.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-3x4c8-minmax-sse2-ld64.c",
"src/qs8-dwconv/gen/qs8-dwconv-9p8c-minmax-fp32-sse2-mul16-add16.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p8c-minmax-fp32-sse2-mul16-add16.c",
"src/qs8-f32-vcvt/gen/qs8-f32-vcvt-sse2-x32.c",
"src/qs8-gavgpool/gen/qs8-gavgpool-7p7x-minmax-fp32-sse2-c8.c",
"src/qs8-gavgpool/gen/qs8-gavgpool-7x-minmax-fp32-sse2-c8.c",
"src/qs8-gemm/gen/qs8-gemm-1x4c8-minmax-fp32-sse2-ld64.c",
"src/qs8-gemm/gen/qs8-gemm-3x4c8-minmax-fp32-sse2-ld64.c",
"src/qs8-igemm/gen/qs8-igemm-1x4c8-minmax-fp32-sse2-ld64.c",
"src/qs8-igemm/gen/qs8-igemm-3x4c8-minmax-fp32-sse2-ld64.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p8c-minmax-fp32-sse2-mul16.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p8c-minmax-fp32-sse2-mul16.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p8c-minmax-fp32-sse2-mul16.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x4c8-minmax-fp32-sse2-ld64.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-3x4c8-minmax-fp32-sse2-ld64.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x4c8-minmax-fp32-sse2-ld64.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-3x4c8-minmax-fp32-sse2-ld64.c",
"src/qs8-vadd/gen/qs8-vadd-minmax-sse2-mul16-ld64-x8.c",
"src/qs8-vaddc/gen/qs8-vaddc-minmax-sse2-mul16-ld64-x8.c",
"src/qs8-vcvt/gen/qs8-vcvt-sse2-x32.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-sse2-x32.c",
"src/qs8-vmul/gen/qs8-vmul-minmax-fp32-sse2-mul16-ld64-x8.c",
"src/qs8-vmulc/gen/qs8-vmulc-minmax-fp32-sse2-mul16-ld64-x8.c",
"src/qs16-qs8-vcvt/gen/qs16-qs8-vcvt-sse2-x16.c",
"src/qu8-avgpool/qu8-avgpool-9p8x-minmax-fp32-sse2-c8.c",
"src/qu8-avgpool/qu8-avgpool-9x-minmax-fp32-sse2-c8.c",
"src/qu8-dwconv/gen/qu8-dwconv-9p8c-minmax-fp32-sse2-mul16.c",
"src/qu8-dwconv/gen/qu8-dwconv-25p8c-minmax-fp32-sse2-mul16.c",
"src/qu8-f32-vcvt/gen/qu8-f32-vcvt-sse2-x32.c",
"src/qu8-gavgpool/gen/qu8-gavgpool-7p7x-minmax-fp32-sse2-c8.c",
"src/qu8-gavgpool/gen/qu8-gavgpool-7x-minmax-fp32-sse2-c8.c",
"src/qu8-gemm/gen/qu8-gemm-1x4c8-minmax-fp32-sse2-ld64.c",
"src/qu8-gemm/gen/qu8-gemm-3x4c8-minmax-fp32-sse2-ld64.c",
"src/qu8-igemm/gen/qu8-igemm-1x4c8-minmax-fp32-sse2-ld64.c",
"src/qu8-igemm/gen/qu8-igemm-3x4c8-minmax-fp32-sse2-ld64.c",
"src/qu8-vadd/gen/qu8-vadd-minmax-sse2-mul16-ld64-x8.c",
"src/qu8-vaddc/gen/qu8-vaddc-minmax-sse2-mul16-ld64-x8.c",
"src/qu8-vcvt/gen/qu8-vcvt-sse2-x32.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-sse2-x32.c",
"src/qu8-vmul/gen/qu8-vmul-minmax-fp32-sse2-mul16-ld64-x8.c",
"src/qu8-vmulc/gen/qu8-vmulc-minmax-fp32-sse2-mul16-ld64-x8.c",
"src/s8-ibilinear/gen/s8-ibilinear-sse2-c8.c",
"src/s8-maxpool/s8-maxpool-9p8x-minmax-sse2-c16.c",
"src/s8-vclamp/s8-vclamp-sse2-x64.c",
"src/u8-ibilinear/gen/u8-ibilinear-sse2-c8.c",
"src/u8-maxpool/u8-maxpool-9p8x-minmax-sse2-c16.c",
"src/u8-rmax/u8-rmax-sse2.c",
"src/u8-vclamp/u8-vclamp-sse2-x64.c",
"src/xx-fill/xx-fill-sse2-x64.c",
"src/xx-pad/xx-pad-sse2.c",
"src/x8-transposec/gen/x8-transposec-16x16-reuse-mov-sse2.c",
"src/x8-zip/x8-zip-xm-sse2.c",
"src/x8-zip/x8-zip-x2-sse2.c",
"src/x8-zip/x8-zip-x3-sse2.c",
"src/x8-zip/x8-zip-x4-sse2.c",
"src/x16-transposec/gen/x16-transposec-8x8-reuse-multi-sse2.c",
"src/x32-packw/gen/x32-packw-x2c4-gemm-goi-sse2-x4.c",
"src/x32-packw/gen/x32-packw-x8-gemm-goi-sse2-x4.c",
"src/x32-unpool/x32-unpool-sse2.c",
"src/x32-zip/x32-zip-xm-sse2.c",
"src/x32-zip/x32-zip-x2-sse2.c",
"src/x32-zip/x32-zip-x3-sse2.c",
"src/x32-zip/x32-zip-x4-sse2.c",
]
PROD_SSSE3_MICROKERNEL_SRCS = [
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3p1-minmax-ssse3-2x4-acc2.c",
"src/qs8-vcvt/gen/qs8-vcvt-ssse3-x32.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-ssse3-x32.c",
"src/qs16-qs8-vcvt/gen/qs16-qs8-vcvt-ssse3-x16.c",
"src/qu8-vcvt/gen/qu8-vcvt-ssse3-x32.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-ssse3-x32.c",
"src/x24-transposec/x24-transposec-4x4-ssse3.c",
]
PROD_SSE41_MICROKERNEL_SRCS = [
"src/f16-f32-vcvt/gen/f16-f32-vcvt-sse41-int16-x16.c",
"src/f32-f16-vcvt/gen/f32-f16-vcvt-sse41-x8.c",
"src/f32-prelu/gen/f32-prelu-sse41-2x8.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-1x8-minmax-sse41-dup.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-4x8-minmax-sse41-dup.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-minmax-sse41-dup.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x8-minmax-sse41-dup.c",
"src/f32-qs8-vcvt/gen/f32-qs8-vcvt-sse41-x32.c",
"src/f32-vlrelu/gen/f32-vlrelu-sse41-x8.c",
"src/f32-vrnd/gen/f32-vrndd-sse41-x8.c",
"src/f32-vrnd/gen/f32-vrndne-sse41-x8.c",
"src/f32-vrnd/gen/f32-vrndu-sse41-x8.c",
"src/f32-vrnd/gen/f32-vrndz-sse41-x8.c",
"src/f32-vsigmoid/gen/f32-vsigmoid-sse41-rr2-lut64-p2-div-x8.c",
"src/f32-vtanh/gen/f32-vtanh-sse41-expm1minus-rr1-lut8-p4h3ts-div-x20.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x4c8-minmax-sse41-ld64.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-3x4c8-minmax-sse41-ld64.c",
"src/qs8-dwconv/gen/qs8-dwconv-9p8c-minmax-fp32-sse41-mul16-add16.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p8c-minmax-fp32-sse41-mul16-add16.c",
"src/qs8-f32-vcvt/gen/qs8-f32-vcvt-sse41-x16.c",
"src/qs8-gavgpool/gen/qs8-gavgpool-7p7x-minmax-fp32-sse41-c8.c",
"src/qs8-gavgpool/gen/qs8-gavgpool-7x-minmax-fp32-sse41-c8.c",
"src/qs8-gemm/gen/qs8-gemm-1x4c8-minmax-fp32-sse41-ld64.c",
"src/qs8-gemm/gen/qs8-gemm-3x4c8-minmax-fp32-sse41-ld64.c",
"src/qs8-igemm/gen/qs8-igemm-1x4c8-minmax-fp32-sse41-ld64.c",
"src/qs8-igemm/gen/qs8-igemm-3x4c8-minmax-fp32-sse41-ld64.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p8c-minmax-fp32-sse41-mul16.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p8c-minmax-fp32-sse41-mul16.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p8c-minmax-fp32-sse41-mul16.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x4c8-minmax-fp32-sse41-ld64.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-3x4c8-minmax-fp32-sse41-ld64.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x4c8-minmax-fp32-sse41-ld64.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-3x4c8-minmax-fp32-sse41-ld64.c",
"src/qs8-vadd/gen/qs8-vadd-minmax-sse41-mul16-ld64-x8.c",
"src/qs8-vaddc/gen/qs8-vaddc-minmax-sse41-mul16-ld64-x8.c",
"src/qs8-vcvt/gen/qs8-vcvt-sse41-x32.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-sse41-x32.c",
"src/qs8-vmul/gen/qs8-vmul-minmax-fp32-sse41-mul16-ld64-x16.c",
"src/qs8-vmulc/gen/qs8-vmulc-minmax-fp32-sse41-mul16-ld64-x16.c",
"src/qs16-qs8-vcvt/gen/qs16-qs8-vcvt-sse41-x16.c",
"src/qu8-dwconv/gen/qu8-dwconv-9p8c-minmax-fp32-sse41-mul16.c",
"src/qu8-dwconv/gen/qu8-dwconv-25p8c-minmax-fp32-sse41-mul16.c",
"src/qu8-f32-vcvt/gen/qu8-f32-vcvt-sse41-x16.c",
"src/qu8-gavgpool/gen/qu8-gavgpool-7p7x-minmax-fp32-sse41-c8.c",
"src/qu8-gavgpool/gen/qu8-gavgpool-7x-minmax-fp32-sse41-c8.c",
"src/qu8-gemm/gen/qu8-gemm-1x4c8-minmax-fp32-sse41-ld64.c",
"src/qu8-gemm/gen/qu8-gemm-3x4c8-minmax-fp32-sse41-ld64.c",
"src/qu8-igemm/gen/qu8-igemm-1x4c8-minmax-fp32-sse41-ld64.c",
"src/qu8-igemm/gen/qu8-igemm-3x4c8-minmax-fp32-sse41-ld64.c",
"src/qu8-vadd/gen/qu8-vadd-minmax-sse41-mul16-ld64-x8.c",
"src/qu8-vaddc/gen/qu8-vaddc-minmax-sse41-mul16-ld64-x8.c",
"src/qu8-vcvt/gen/qu8-vcvt-sse41-x32.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-sse41-x32.c",
"src/qu8-vmul/gen/qu8-vmul-minmax-fp32-sse41-mul16-ld64-x16.c",
"src/qu8-vmulc/gen/qu8-vmulc-minmax-fp32-sse41-mul16-ld64-x16.c",
"src/s8-ibilinear/gen/s8-ibilinear-sse41-c16.c",
"src/s8-maxpool/s8-maxpool-9p8x-minmax-sse41-c16.c",
"src/s8-vclamp/s8-vclamp-sse41-x64.c",
"src/u8-ibilinear/gen/u8-ibilinear-sse41-c16.c",
"src/x8-packw/gen/x8-packw-x16-gemm-goi-scalar-int-x4.c",
]
PROD_AVX_MICROKERNEL_SRCS = [
"src/f16-f32-vcvt/gen/f16-f32-vcvt-avx-int16-x16.c",
"src/f32-dwconv/gen/f32-dwconv-3p16c-minmax-avx.c",
"src/f32-dwconv/gen/f32-dwconv-4p16c-minmax-avx.c",
"src/f32-dwconv/gen/f32-dwconv-6f6m7l8c8s4r-minmax-avx-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-9p16c-minmax-avx.c",
"src/f32-dwconv/gen/f32-dwconv-25p8c-minmax-avx.c",
"src/f32-f16-vcvt/gen/f32-f16-vcvt-avx-x24.c",
"src/f32-gemm/gen/f32-gemm-1x16-minmax-avx-broadcast.c",
"src/f32-gemm/gen/f32-gemm-5x16-minmax-avx-broadcast.c",
"src/f32-igemm/gen/f32-igemm-1x16-minmax-avx-broadcast.c",
"src/f32-igemm/gen/f32-igemm-5x16-minmax-avx-broadcast.c",
"src/f32-prelu/gen/f32-prelu-avx-2x16.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-1x8-minmax-avx-dup.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-4x8-minmax-avx-dup.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-minmax-avx-dup.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x8-minmax-avx-dup.c",
"src/f32-qs8-vcvt/gen/f32-qs8-vcvt-avx-x32.c",
"src/f32-qu8-vcvt/gen/f32-qu8-vcvt-avx-x32.c",
"src/f32-rsum/gen/f32-rsum-avx-x32-acc4.c",
"src/f32-vbinary/gen/f32-vadd-minmax-avx-x16.c",
"src/f32-vbinary/gen/f32-vaddc-minmax-avx-x16.c",
"src/f32-vbinary/gen/f32-vdiv-minmax-avx-x16.c",
"src/f32-vbinary/gen/f32-vdivc-minmax-avx-x16.c",
"src/f32-vbinary/gen/f32-vmax-avx-x16.c",
"src/f32-vbinary/gen/f32-vmaxc-avx-x16.c",
"src/f32-vbinary/gen/f32-vmin-avx-x16.c",
"src/f32-vbinary/gen/f32-vminc-avx-x16.c",
"src/f32-vbinary/gen/f32-vmul-minmax-avx-x16.c",
"src/f32-vbinary/gen/f32-vmulc-minmax-avx-x16.c",
"src/f32-vbinary/gen/f32-vrdivc-minmax-avx-x16.c",
"src/f32-vbinary/gen/f32-vrsubc-minmax-avx-x16.c",
"src/f32-vbinary/gen/f32-vsqrdiff-avx-x16.c",
"src/f32-vbinary/gen/f32-vsqrdiffc-avx-x16.c",
"src/f32-vbinary/gen/f32-vsub-minmax-avx-x16.c",
"src/f32-vbinary/gen/f32-vsubc-minmax-avx-x16.c",
"src/f32-vclamp/gen/f32-vclamp-avx-x16.c",
"src/f32-velu/gen/f32-velu-avx-rr2-lut4-p4-perm-x32.c",
"src/f32-vhswish/gen/f32-vhswish-avx-x16.c",
"src/f32-vlrelu/gen/f32-vlrelu-avx-x16.c",
"src/f32-vrnd/gen/f32-vrndd-avx-x16.c",
"src/f32-vrnd/gen/f32-vrndne-avx-x16.c",
"src/f32-vrnd/gen/f32-vrndu-avx-x16.c",
"src/f32-vrnd/gen/f32-vrndz-avx-x16.c",
"src/f32-vsigmoid/gen/f32-vsigmoid-avx-rr2-p5-nr2-x40.c",
"src/f32-vsqrt/gen/f32-vsqrt-avx-sqrt-x8.c",
"src/f32-vtanh/gen/f32-vtanh-avx-expm1minus-rr1-lut4-p4h2ts-perm-div-x48.c",
"src/f32-vunary/gen/f32-vabs-avx-x16.c",
"src/f32-vunary/gen/f32-vneg-avx-x16.c",
"src/f32-vunary/gen/f32-vsqr-avx-x16.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x4c8-minmax-avx-ld128.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-2x4c8-minmax-avx-ld128.c",
"src/qs8-dwconv/gen/qs8-dwconv-9p16c-minmax-fp32-avx-mul16-add16.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p16c-minmax-fp32-avx-mul16-add16.c",
"src/qs8-f32-vcvt/gen/qs8-f32-vcvt-avx-x32.c",
"src/qs8-gemm/gen/qs8-gemm-1x4c8-minmax-fp32-avx-ld128.c",
"src/qs8-gemm/gen/qs8-gemm-2x4c8-minmax-fp32-avx-ld128.c",
"src/qs8-igemm/gen/qs8-igemm-1x4c8-minmax-fp32-avx-ld128.c",
"src/qs8-igemm/gen/qs8-igemm-2x4c8-minmax-fp32-avx-ld128.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p16c-minmax-fp32-avx-mul16-add16.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p16c-minmax-fp32-avx-mul16-add16.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p16c-minmax-fp32-avx-mul16-add16.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x4c8-minmax-fp32-avx-ld128.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-2x4c8-minmax-fp32-avx-ld128.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x4c8-minmax-fp32-avx-ld128.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-2x4c8-minmax-fp32-avx-ld128.c",
"src/qs8-vadd/gen/qs8-vadd-minmax-avx-mul32-ld32-x8.c",
"src/qs8-vaddc/gen/qs8-vaddc-minmax-avx-mul32-ld32-x8.c",
"src/qs8-vcvt/gen/qs8-vcvt-avx-x32.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-avx-x32.c",
"src/qs8-vmul/gen/qs8-vmul-minmax-fp32-avx-mul16-ld64-x16.c",
"src/qs8-vmulc/gen/qs8-vmulc-minmax-fp32-avx-mul16-ld64-x16.c",
"src/qs16-qs8-vcvt/gen/qs16-qs8-vcvt-avx-x16.c",
"src/qu8-dwconv/gen/qu8-dwconv-9p16c-minmax-fp32-avx-mul16.c",
"src/qu8-dwconv/gen/qu8-dwconv-25p16c-minmax-fp32-avx-mul16.c",
"src/qu8-f32-vcvt/gen/qu8-f32-vcvt-avx-x32.c",
"src/qu8-gemm/gen/qu8-gemm-1x4c8-minmax-fp32-avx-ld128.c",
"src/qu8-gemm/gen/qu8-gemm-2x4c8-minmax-fp32-avx-ld128.c",
"src/qu8-igemm/gen/qu8-igemm-1x4c8-minmax-fp32-avx-ld128.c",
"src/qu8-igemm/gen/qu8-igemm-2x4c8-minmax-fp32-avx-ld128.c",
"src/qu8-vadd/gen/qu8-vadd-minmax-avx-mul32-ld32-x8.c",
"src/qu8-vaddc/gen/qu8-vaddc-minmax-avx-mul32-ld32-x8.c",
"src/qu8-vcvt/gen/qu8-vcvt-avx-x32.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-avx-x32.c",
"src/qu8-vmul/gen/qu8-vmul-minmax-fp32-avx-mul16-ld64-x16.c",
"src/qu8-vmulc/gen/qu8-vmulc-minmax-fp32-avx-mul16-ld64-x16.c",
"src/x8-lut/gen/x8-lut-avx-x64.c",
"src/x32-packw/gen/x32-packw-x16-gemm-goi-avx-x4.c",
"src/x32-packw/gen/x32-packw-x16s4-gemm-goi-avx-x4.c",
"src/x32-transposec/gen/x32-transposec-8x8-reuse-multi-avx.c",
]
PROD_F16C_MICROKERNEL_SRCS = [
"src/f16-avgpool/f16-avgpool-9p8x-minmax-f16c-c8.c",
"src/f16-avgpool/f16-avgpool-9x-minmax-f16c-c8.c",
"src/f16-f32-vcvt/gen/f16-f32-vcvt-f16c-x16.c",
"src/f16-f32acc-rsum/gen/f16-f32acc-rsum-f16c-x32-acc4.c",
"src/f16-gavgpool/gen/f16-gavgpool-7p7x-minmax-f16c-c8.c",
"src/f16-gavgpool/gen/f16-gavgpool-7x-minmax-f16c-c8.c",
"src/f16-maxpool/f16-maxpool-9p8x-minmax-f16c-c8.c",
"src/f16-prelu/gen/f16-prelu-f16c-2x16.c",
"src/f16-rmax/f16-rmax-f16c.c",
"src/f16-vbinary/gen/f16-vadd-minmax-f16c-x16.c",
"src/f16-vbinary/gen/f16-vaddc-minmax-f16c-x16.c",
"src/f16-vbinary/gen/f16-vdiv-minmax-f16c-x8.c",
"src/f16-vbinary/gen/f16-vdivc-minmax-f16c-x8.c",
"src/f16-vbinary/gen/f16-vmax-f16c-x16.c",
"src/f16-vbinary/gen/f16-vmaxc-f16c-x16.c",
"src/f16-vbinary/gen/f16-vmin-f16c-x16.c",
"src/f16-vbinary/gen/f16-vminc-f16c-x16.c",
"src/f16-vbinary/gen/f16-vmul-minmax-f16c-x16.c",
"src/f16-vbinary/gen/f16-vmulc-minmax-f16c-x16.c",
"src/f16-vbinary/gen/f16-vrdivc-minmax-f16c-x8.c",
"src/f16-vbinary/gen/f16-vrsubc-minmax-f16c-x16.c",
"src/f16-vbinary/gen/f16-vsqrdiff-f16c-x16.c",
"src/f16-vbinary/gen/f16-vsqrdiffc-f16c-x16.c",
"src/f16-vbinary/gen/f16-vsub-minmax-f16c-x16.c",
"src/f16-vbinary/gen/f16-vsubc-minmax-f16c-x16.c",
"src/f16-vclamp/gen/f16-vclamp-f16c-x16.c",
"src/f16-vhswish/gen/f16-vhswish-f16c-x16.c",
"src/f16-vlrelu/gen/f16-vlrelu-f16c-x16.c",
"src/f16-vrnd/gen/f16-vrndd-f16c-x16.c",
"src/f16-vrnd/gen/f16-vrndne-f16c-x16.c",
"src/f16-vrnd/gen/f16-vrndu-f16c-x16.c",
"src/f16-vrnd/gen/f16-vrndz-f16c-x16.c",
"src/f16-vsqrt/gen/f16-vsqrt-f16c-sqrt-x8.c",
"src/f16-vtanh/gen/f16-vtanh-f16c-expm1minus-rr1-p3h2ts-rcp-x72.c",
"src/f16-vunary/gen/f16-vsqr-f16c-x16.c",
"src/f32-f16-vcvt/gen/f32-f16-vcvt-f16c-x16.c",
]
PROD_XOP_MICROKERNEL_SRCS = [
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-2x4c8-minmax-xop-ld64.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x4c8-minmax-xop-ld64.c",
"src/qs8-dwconv/gen/qs8-dwconv-9p16c-minmax-fp32-xop-mul16-add16.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p16c-minmax-fp32-xop-mul16-add16.c",
"src/qs8-gemm/gen/qs8-gemm-1x4c8-minmax-fp32-xop-ld64.c",
"src/qs8-gemm/gen/qs8-gemm-2x4c8-minmax-fp32-xop-ld64.c",
"src/qs8-igemm/gen/qs8-igemm-1x4c8-minmax-fp32-xop-ld64.c",
"src/qs8-igemm/gen/qs8-igemm-2x4c8-minmax-fp32-xop-ld64.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p16c-minmax-fp32-xop-mul16-add16.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p16c-minmax-fp32-xop-mul16-add16.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p16c-minmax-fp32-xop-mul16-add16.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x4c8-minmax-fp32-xop-ld64.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-2x4c8-minmax-fp32-xop-ld64.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x4c8-minmax-fp32-xop-ld64.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-2x4c8-minmax-fp32-xop-ld64.c",
"src/qs8-vadd/gen/qs8-vadd-minmax-xop-mul32-ld32-x8.c",
"src/qs8-vaddc/gen/qs8-vaddc-minmax-xop-mul32-ld32-x8.c",
"src/qu8-dwconv/gen/qu8-dwconv-9p16c-minmax-fp32-xop-mul32.c",
"src/qu8-dwconv/gen/qu8-dwconv-25p16c-minmax-fp32-xop-mul32.c",
"src/qu8-gemm/gen/qu8-gemm-1x4c8-minmax-fp32-xop-ld64.c",
"src/qu8-gemm/gen/qu8-gemm-2x4c8-minmax-fp32-xop-ld64.c",
"src/qu8-igemm/gen/qu8-igemm-1x4c8-minmax-fp32-xop-ld64.c",
"src/qu8-igemm/gen/qu8-igemm-2x4c8-minmax-fp32-xop-ld64.c",
"src/qu8-vadd/gen/qu8-vadd-minmax-xop-mul32-ld32-x8.c",
"src/qu8-vaddc/gen/qu8-vaddc-minmax-xop-mul32-ld32-x8.c",
]
PROD_FMA3_MICROKERNEL_SRCS = [
"src/f16-dwconv/gen/f16-dwconv-3p16c-minmax-fma3.c",
"src/f16-dwconv/gen/f16-dwconv-4p16c-minmax-fma3.c",
"src/f16-dwconv/gen/f16-dwconv-9p16c-minmax-fma3.c",
"src/f16-dwconv/gen/f16-dwconv-25p8c-minmax-fma3-acc2.c",
"src/f16-ibilinear/gen/f16-ibilinear-fma3-c8.c",
"src/f16-vmulcaddc/gen/f16-vmulcaddc-c8-minmax-fma3-2x.c",
"src/f16-vtanh/gen/f16-vtanh-fma3-polynomial-p19h9t2-x32.c",
"src/f32-dwconv/gen/f32-dwconv-3p16c-minmax-fma3.c",
"src/f32-dwconv/gen/f32-dwconv-4p16c-minmax-fma3.c",
"src/f32-dwconv/gen/f32-dwconv-5f5m5l8c8s4r-minmax-fma3.c",
"src/f32-dwconv/gen/f32-dwconv-9p16c-minmax-fma3.c",
"src/f32-dwconv/gen/f32-dwconv-25p8c-minmax-fma3.c",
"src/f32-gemm/gen/f32-gemm-1x16-minmax-fma3-broadcast.c",
"src/f32-gemm/gen/f32-gemm-1x16s4-minmax-fma3-broadcast.c",
"src/f32-gemm/gen/f32-gemm-4x16s4-minmax-fma3-broadcast.c",
"src/f32-gemm/gen/f32-gemm-5x16-minmax-fma3-broadcast.c",
"src/f32-igemm/gen/f32-igemm-1x16-minmax-fma3-broadcast.c",
"src/f32-igemm/gen/f32-igemm-1x16s4-minmax-fma3-broadcast.c",
"src/f32-igemm/gen/f32-igemm-4x16s4-minmax-fma3-broadcast.c",
"src/f32-igemm/gen/f32-igemm-5x16-minmax-fma3-broadcast-prfm.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-1x8-minmax-fma3-dup.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-4x8-minmax-fma3-dup.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-minmax-fma3-dup.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x8-minmax-fma3-dup.c",
"src/f32-vhswish/gen/f32-vhswish-fma3-x16.c",
"src/f32-vtanh/gen/f32-vtanh-fma3-expm1minus-rr1-lut4-p4h3ts-perm-div-x40.c",
]
PROD_AVX2_MICROKERNEL_SRCS = [
"src/f16-gemm/gen/f16-gemm-1x16-minmax-avx2-broadcast.c",
"src/f16-gemm/gen/f16-gemm-4x16-minmax-avx2-broadcast.c",
"src/f16-igemm/gen/f16-igemm-1x16-minmax-avx2-broadcast.c",
"src/f16-igemm/gen/f16-igemm-4x16-minmax-avx2-broadcast.c",
"src/f16-pavgpool/f16-pavgpool-9p8x-minmax-avx2-c8.c",
"src/f16-pavgpool/f16-pavgpool-9x-minmax-avx2-c8.c",
"src/f16-raddstoreexpminusmax/gen/f16-raddstoreexpminusmax-avx2-rr1-p2-x40.c",
"src/f16-velu/gen/f16-velu-avx2-rr1-p3-x16.c",
"src/f16-vsigmoid/gen/f16-vsigmoid-avx2-rr1-p2-rcp-x32.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-1x16-minmax-avx2-broadcast.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-4x16-minmax-avx2-broadcast.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x16-minmax-avx2-broadcast.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-5x16-minmax-avx2-broadcast.c",
"src/f32-qs8-vcvt/gen/f32-qs8-vcvt-avx2-x64.c",
"src/f32-qu8-vcvt/gen/f32-qu8-vcvt-avx2-x64.c",
"src/f32-velu/gen/f32-velu-avx2-rr1-lut4-p4-perm-x56.c",
"src/f32-vsigmoid/gen/f32-vsigmoid-avx2-rr1-p5-div-x40.c",
"src/f32-vtanh/gen/f32-vtanh-avx2-expm1minus-rr1-lut4-p4h3ts-perm-div-x32.c",
"src/qs8-dwconv/gen/qs8-dwconv-9p16c-minmax-fp32-avx2-mul32.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p16c-minmax-fp32-avx2-mul32.c",
"src/qs8-f32-vcvt/gen/qs8-f32-vcvt-avx2-x16.c",
"src/qs8-gemm/gen/qs8-gemm-1x8c8-minmax-fp32-avx2.c",
"src/qs8-gemm/gen/qs8-gemm-3x8c8-minmax-fp32-avx2.c",
"src/qs8-igemm/gen/qs8-igemm-1x8c8-minmax-fp32-avx2.c",
"src/qs8-igemm/gen/qs8-igemm-3x8c8-minmax-fp32-avx2.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p16c-minmax-fp32-avx2-mul32.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p16c-minmax-fp32-avx2-mul32.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p16c-minmax-fp32-avx2-mul32.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x8c8-minmax-fp32-avx2.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-3x8c8-minmax-fp32-avx2.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x8c8-minmax-fp32-avx2.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-3x8c8-minmax-fp32-avx2.c",
"src/qs8-vadd/gen/qs8-vadd-minmax-avx2-mul32-ld64-x16.c",
"src/qs8-vaddc/gen/qs8-vaddc-minmax-avx2-mul32-ld64-x16.c",
"src/qs8-vcvt/gen/qs8-vcvt-avx2-x32.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-avx2-x32.c",
"src/qu8-dwconv/gen/qu8-dwconv-9p16c-minmax-fp32-avx2-mul32.c",
"src/qu8-dwconv/gen/qu8-dwconv-25p16c-minmax-fp32-avx2-mul32.c",
"src/qu8-f32-vcvt/gen/qu8-f32-vcvt-avx2-x16.c",
"src/qu8-gemm/gen/qu8-gemm-1x8c8-minmax-fp32-avx2.c",
"src/qu8-gemm/gen/qu8-gemm-3x8c8-minmax-fp32-avx2.c",
"src/qu8-igemm/gen/qu8-igemm-1x8c8-minmax-fp32-avx2.c",
"src/qu8-igemm/gen/qu8-igemm-3x8c8-minmax-fp32-avx2.c",
"src/qu8-vadd/gen/qu8-vadd-minmax-avx2-mul32-ld64-x16.c",
"src/qu8-vaddc/gen/qu8-vaddc-minmax-avx2-mul32-ld64-x16.c",
"src/qu8-vcvt/gen/qu8-vcvt-avx2-x32.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-avx2-x32.c",
"src/x8-lut/gen/x8-lut-avx2-x128.c",
"src/x8-transposec/gen/x8-transposec-32x32-reuse-switch-avx2.c",
"src/x16-packw/gen/x16-packw-x8-gemm-goi-avx2-x16-prfm.c",
"src/x16-packw/gen/x16-packw-x8-gemm-goi-avx2-x16.c",
"src/x16-packw/gen/x16-packw-x16-gemm-goi-avx2-x16-prfm.c",
"src/x16-packw/gen/x16-packw-x16-gemm-goi-avx2-x16.c",
"src/x16-transposec/gen/x16-transposec-16x16-reuse-switch-avx2.c",
]
PROD_AVX512F_MICROKERNEL_SRCS = [
"src/f32-dwconv/gen/f32-dwconv-3p16c-minmax-avx512f.c",
"src/f32-dwconv/gen/f32-dwconv-4p16c-minmax-avx512f.c",
"src/f32-dwconv/gen/f32-dwconv-5f5m5l32c16s1r-minmax-avx512f-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-9p16c-minmax-avx512f.c",
"src/f32-dwconv/gen/f32-dwconv-25p16c-minmax-avx512f.c",
"src/f32-gemm/gen/f32-gemm-1x16-minmax-avx512f-broadcast.c",
"src/f32-gemm/gen/f32-gemm-7x16-minmax-avx512f-broadcast.c",
"src/f32-igemm/gen/f32-igemm-1x16-minmax-avx512f-broadcast.c",
"src/f32-igemm/gen/f32-igemm-7x16-minmax-avx512f-broadcast.c",
"src/f32-prelu/gen/f32-prelu-avx512f-2x16.c",
"src/f32-vbinary/gen/f32-vadd-minmax-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vaddc-minmax-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vdiv-minmax-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vdivc-minmax-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vmax-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vmaxc-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vmin-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vminc-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vmul-minmax-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vmulc-minmax-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vrdivc-minmax-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vrsubc-minmax-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vsqrdiff-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vsqrdiffc-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vsub-minmax-avx512f-x32.c",
"src/f32-vbinary/gen/f32-vsubc-minmax-avx512f-x32.c",
"src/f32-vclamp/gen/f32-vclamp-avx512f-x16.c",
"src/f32-velu/gen/f32-velu-avx512f-rr1-lut16-p3-perm-x64.c",
"src/f32-vhswish/gen/f32-vhswish-avx512f-x16.c",
"src/f32-vlrelu/gen/f32-vlrelu-avx512f-x16.c",
"src/f32-vrnd/gen/f32-vrndd-avx512f-x16.c",
"src/f32-vrnd/gen/f32-vrndne-avx512f-x16.c",
"src/f32-vrnd/gen/f32-vrndu-avx512f-x16.c",
"src/f32-vrnd/gen/f32-vrndz-avx512f-x16.c",
"src/f32-vsigmoid/gen/f32-vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x64.c",
"src/f32-vunary/gen/f32-vabs-avx512f-x16.c",
"src/f32-vunary/gen/f32-vneg-avx512f-x16.c",
"src/f32-vunary/gen/f32-vsqr-avx512f-x16.c",
"src/x32-packw/gen/x32-packw-x16-gemm-goi-avx512f-x4-prfm.c",
]
PROD_AVX512SKX_MICROKERNEL_SRCS = [
"src/f16-f32-vcvt/gen/f16-f32-vcvt-avx512skx-x16.c",
"src/f32-f16-vcvt/gen/f32-f16-vcvt-avx512skx-x16.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x16-minmax-avx512skx-broadcast.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-7x16-minmax-avx512skx-broadcast.c",
"src/f32-qs8-vcvt/gen/f32-qs8-vcvt-avx512skx-x128.c",
"src/f32-qu8-vcvt/gen/f32-qu8-vcvt-avx512skx-x128.c",
"src/f32-vtanh/gen/f32-vtanh-avx512skx-expm1minus-rr1-lut4-p4h3ts-perm-div-x64.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x16c8-minmax-avx512skx.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-4x16c8-minmax-avx512skx.c",
"src/qs8-dwconv/gen/qs8-dwconv-9p32c-minmax-fp32-avx512skx-mul32.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p32c-minmax-fp32-avx512skx-mul32.c",
"src/qs8-f32-vcvt/gen/qs8-f32-vcvt-avx512skx-x32.c",
"src/qs8-gemm/gen/qs8-gemm-1x16c8-minmax-fp32-avx512skx.c",
"src/qs8-gemm/gen/qs8-gemm-4x16c8-minmax-fp32-avx512skx.c",
"src/qs8-igemm/gen/qs8-igemm-1x16c8-minmax-fp32-avx512skx.c",
"src/qs8-igemm/gen/qs8-igemm-4x16c8-minmax-fp32-avx512skx.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p32c-minmax-fp32-avx512skx-mul32.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p32c-minmax-fp32-avx512skx-mul32.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p32c-minmax-fp32-avx512skx-mul32.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x16c8-minmax-fp32-avx512skx.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-4x16c8-minmax-fp32-avx512skx.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x16c8-minmax-fp32-avx512skx.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-4x16c8-minmax-fp32-avx512skx.c",
"src/qs8-vadd/gen/qs8-vadd-minmax-avx512skx-mul32-ld128-x16.c",
"src/qs8-vaddc/gen/qs8-vaddc-minmax-avx512skx-mul32-ld128-x16.c",
"src/qu8-dwconv/gen/qu8-dwconv-9p32c-minmax-fp32-avx512skx-mul32.c",
"src/qu8-dwconv/gen/qu8-dwconv-25p32c-minmax-fp32-avx512skx-mul32.c",
"src/qu8-f32-vcvt/gen/qu8-f32-vcvt-avx512skx-x32.c",
"src/qu8-gemm/gen/qu8-gemm-1x16c8-minmax-fp32-avx512skx.c",
"src/qu8-gemm/gen/qu8-gemm-4x16c8-minmax-fp32-avx512skx.c",
"src/qu8-igemm/gen/qu8-igemm-1x16c8-minmax-fp32-avx512skx.c",
"src/qu8-igemm/gen/qu8-igemm-4x16c8-minmax-fp32-avx512skx.c",
"src/qu8-vadd/gen/qu8-vadd-minmax-avx512skx-mul32-ld128-x16.c",
"src/qu8-vaddc/gen/qu8-vaddc-minmax-avx512skx-mul32-ld128-x16.c",
"src/x8-lut/gen/x8-lut-avx512skx-vpshufb-x64.c",
]
PROD_AVX512VBMI_MICROKERNEL_SRCS = [
"src/x8-lut/gen/x8-lut-avx512vbmi-vpermx2b-x128.c",
]
PROD_WASM_MICROKERNEL_SRCS = [
"src/f32-avgpool/f32-avgpool-9p8x-minmax-wasm-c1.c",
"src/f32-avgpool/f32-avgpool-9x-minmax-wasm-c1.c",
"src/f32-dwconv/gen/f32-dwconv-3p1c-minmax-wasm-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-4p1c-minmax-wasm-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-5f5m5l1c1s1r-minmax-wasm.c",
"src/f32-dwconv/gen/f32-dwconv-9p1c-minmax-wasm-acc2.c",
"src/f32-dwconv/gen/f32-dwconv-25p1c-minmax-wasm-acc2.c",
"src/f32-gavgpool/f32-gavgpool-7p7x-minmax-wasm-c1.c",
"src/f32-gavgpool/f32-gavgpool-7x-minmax-wasm-c1.c",
"src/f32-gemm/gen/f32-gemm-1x4-minmax-wasm.c",
"src/f32-gemm/gen/f32-gemm-1x4-relu-wasm.c",
"src/f32-gemm/gen/f32-gemm-4x2-minmax-wasm.c",
"src/f32-gemm/gen/f32-gemm-4x4-minmax-wasm.c",
"src/f32-gemm/gen/f32-gemm-4x4-relu-wasm.c",
"src/f32-igemm/gen/f32-igemm-1x4-minmax-wasm.c",
"src/f32-igemm/gen/f32-igemm-1x4-relu-wasm.c",
"src/f32-igemm/gen/f32-igemm-4x2-minmax-wasm.c",
"src/f32-igemm/gen/f32-igemm-4x4-minmax-wasm.c",
"src/f32-igemm/gen/f32-igemm-4x4-relu-wasm.c",
"src/f32-maxpool/f32-maxpool-9p8x-minmax-wasm-c1.c",
"src/f32-pavgpool/f32-pavgpool-9p8x-minmax-wasm-c1.c",
"src/f32-pavgpool/f32-pavgpool-9x-minmax-wasm-c1.c",
"src/f32-prelu/gen/f32-prelu-wasm-2x4.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-1x4-minmax-wasm.c",
"src/f32-qc4w-gemm/gen/f32-qc4w-gemm-4x4-minmax-wasm.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x4-minmax-wasm.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x4-minmax-wasm.c",
"src/f32-qs8-vcvt/gen/f32-qs8-vcvt-wasm-fmagic-x4.c",
"src/f32-qu8-vcvt/gen/f32-qu8-vcvt-wasm-fmagic-x4.c",
"src/f32-vbinary/gen/f32-vadd-minmax-wasm-x8.c",
"src/f32-vbinary/gen/f32-vaddc-minmax-wasm-x8.c",
"src/f32-vbinary/gen/f32-vdiv-minmax-wasm-x8.c",
"src/f32-vbinary/gen/f32-vdivc-minmax-wasm-x8.c",
"src/f32-vbinary/gen/f32-vdivc-relu-wasm-x8.c",
"src/f32-vbinary/gen/f32-vmax-wasm-x8.c",
"src/f32-vbinary/gen/f32-vmaxc-wasm-x8.c",
"src/f32-vbinary/gen/f32-vmin-wasm-x8.c",
"src/f32-vbinary/gen/f32-vminc-wasm-x8.c",
"src/f32-vbinary/gen/f32-vmul-minmax-wasm-x8.c",
"src/f32-vbinary/gen/f32-vmulc-minmax-wasm-x8.c",
"src/f32-vbinary/gen/f32-vmulc-relu-wasm-x8.c",
"src/f32-vbinary/gen/f32-vrdivc-minmax-wasm-x8.c",
"src/f32-vbinary/gen/f32-vrsubc-minmax-wasm-x8.c",
"src/f32-vbinary/gen/f32-vsub-minmax-wasm-x8.c",
"src/f32-vbinary/gen/f32-vsubc-minmax-wasm-x8.c",
"src/f32-vclamp/gen/f32-vclamp-wasm-x4.c",
"src/f32-velu/gen/f32-velu-wasm-rr2-p6-x6.c",
"src/f32-vhswish/gen/f32-vhswish-wasm-x4.c",
"src/f32-vmulcaddc/gen/f32-vmulcaddc-c1-minmax-wasm-2x.c",
"src/f32-vrelu/gen/f32-vrelu-wasm-x8.c",
"src/f32-vtanh/gen/f32-vtanh-wasm-expm1minus-rr1-p6h5ts-div-x4.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x4-minmax-wasm.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-4x4-minmax-wasm.c",
"src/qs8-dwconv/gen/qs8-dwconv-9p2c-minmax-fp32-wasm-fmagic.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p2c-minmax-fp32-wasm-fmagic.c",
"src/qs8-gemm/gen/qs8-gemm-1x4-minmax-fp32-wasm-fmagic.c",
"src/qs8-gemm/gen/qs8-gemm-4x4-minmax-fp32-wasm-fmagic.c",
"src/qs8-igemm/gen/qs8-igemm-1x4-minmax-fp32-wasm-fmagic.c",
"src/qs8-igemm/gen/qs8-igemm-4x4-minmax-fp32-wasm-fmagic.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p2c-minmax-fp32-wasm-fmagic.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p2c-minmax-fp32-wasm-fmagic.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p2c-minmax-fp32-wasm-fmagic.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x4-minmax-fp32-wasm-fmagic.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-4x4-minmax-fp32-wasm-fmagic.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x4-minmax-fp32-wasm-fmagic.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-4x4-minmax-fp32-wasm-fmagic.c",
"src/qu8-dwconv/gen/qu8-dwconv-9p2c-minmax-fp32-wasm-fmagic.c",
"src/qu8-dwconv/gen/qu8-dwconv-25p2c-minmax-fp32-wasm-fmagic.c",
"src/qu8-gemm/gen/qu8-gemm-1x4-minmax-fp32-wasm-fmagic.c",
"src/qu8-gemm/gen/qu8-gemm-4x4-minmax-fp32-wasm-fmagic.c",
"src/qu8-igemm/gen/qu8-igemm-1x4-minmax-fp32-wasm-fmagic.c",
"src/qu8-igemm/gen/qu8-igemm-4x4-minmax-fp32-wasm-fmagic.c",
]
PROD_WASMSIMD_MICROKERNEL_SRCS = [
"src/f16-f32-vcvt/gen/f16-f32-vcvt-wasmsimd-int16-x16.c",
"src/f32-argmaxpool/f32-argmaxpool-4x-wasmsimd-c4.c",
"src/f32-argmaxpool/f32-argmaxpool-9p8x-wasmsimd-c4.c",
"src/f32-argmaxpool/f32-argmaxpool-9x-wasmsimd-c4.c",
"src/f32-avgpool/f32-avgpool-9p8x-minmax-wasmsimd-arm-c4.c",
"src/f32-avgpool/f32-avgpool-9p8x-minmax-wasmsimd-x86-c4.c",
"src/f32-avgpool/f32-avgpool-9x-minmax-wasmsimd-arm-c4.c",
"src/f32-avgpool/f32-avgpool-9x-minmax-wasmsimd-x86-c4.c",
"src/f32-conv-hwc2chw/f32-conv-hwc2chw-3x3s2p1c3x4-wasmsimd-2x2.c",
"src/f32-dwconv/gen/f32-dwconv-3f3m3l4c4s4r-minmax-wasmsimd-arm.c",
"src/f32-dwconv/gen/f32-dwconv-3f3m3l4c4s4r-wasmsimd.c",
"src/f32-dwconv/gen/f32-dwconv-3f3m3l8c4s4r-minmax-wasmsimd-x86.c",
"src/f32-dwconv/gen/f32-dwconv-3f3m3l8c4s4r-wasmsimd.c",
"src/f32-dwconv/gen/f32-dwconv-3p4c-minmax-wasmsimd-arm.c",
"src/f32-dwconv/gen/f32-dwconv-3p4c-wasmsimd.c",
"src/f32-dwconv/gen/f32-dwconv-3p8c-minmax-wasmsimd-x86.c",
"src/f32-dwconv/gen/f32-dwconv-3p8c-wasmsimd.c",
"src/f32-dwconv/gen/f32-dwconv-4p4c-minmax-wasmsimd-arm.c",
"src/f32-dwconv/gen/f32-dwconv-4p4c-wasmsimd.c",
"src/f32-dwconv/gen/f32-dwconv-4p8c-minmax-wasmsimd-x86.c",
"src/f32-dwconv/gen/f32-dwconv-4p8c-wasmsimd.c",
"src/f32-dwconv/gen/f32-dwconv-5f5m5l4c4s4r-minmax-wasmsimd-arm.c",
"src/f32-dwconv/gen/f32-dwconv-5f5m5l4c4s4r-wasmsimd.c",
"src/f32-dwconv/gen/f32-dwconv-9p4c-minmax-wasmsimd-arm.c",
"src/f32-dwconv/gen/f32-dwconv-9p4c-wasmsimd.c",
"src/f32-dwconv/gen/f32-dwconv-9p8c-minmax-wasmsimd-x86.c",
"src/f32-dwconv/gen/f32-dwconv-9p8c-wasmsimd.c",
"src/f32-dwconv/gen/f32-dwconv-25p4c-minmax-wasmsimd-arm.c",
"src/f32-dwconv/gen/f32-dwconv-25p4c-wasmsimd.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3p1-minmax-wasmsimd-arm-loadsplat-2x4.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3p1-minmax-wasmsimd-x86-loadsplat-2x4.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3s2p1-minmax-wasmsimd-arm-splat-1x4-acc4.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-3x3s2p1-minmax-wasmsimd-x86-splat-1x4-acc2.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5p2-minmax-wasmsimd-arm-splat-3x4.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5p2-minmax-wasmsimd-x86-splat-3x4.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5s2p2-minmax-wasmsimd-arm-splat-1x4-acc2.c",
"src/f32-dwconv2d-chw/gen/f32-dwconv2d-chw-5x5s2p2-minmax-wasmsimd-x86-splat-1x4-acc2.c",
"src/f32-f16-vcvt/gen/f32-f16-vcvt-wasmsimd-x24.c",
"src/f32-gavgpool-cw/f32-gavgpool-cw-wasmsimd-arm-x4.c",
"src/f32-gavgpool-cw/f32-gavgpool-cw-wasmsimd-x86-x4.c",
"src/f32-gavgpool/f32-gavgpool-7p7x-minmax-wasmsimd-arm-c4.c",
"src/f32-gavgpool/f32-gavgpool-7p7x-minmax-wasmsimd-x86-c4.c",
"src/f32-gavgpool/f32-gavgpool-7x-minmax-wasmsimd-arm-c4.c",
"src/f32-gavgpool/f32-gavgpool-7x-minmax-wasmsimd-x86-c4.c",
"src/f32-gemm/gen/f32-gemm-1x8-minmax-wasmsimd-arm-splat.c",
"src/f32-gemm/gen/f32-gemm-1x8-minmax-wasmsimd-x86-splat.c",
"src/f32-gemm/gen/f32-gemm-1x8-relu-wasmsimd-splat.c",
"src/f32-gemm/gen/f32-gemm-1x8-wasmsimd-splat.c",
"src/f32-gemm/gen/f32-gemm-4x2c4-minmax-wasmsimd-arm.c",
"src/f32-gemm/gen/f32-gemm-4x2c4-minmax-wasmsimd-x86.c",
"src/f32-gemm/gen/f32-gemm-4x2c4-wasmsimd.c",
"src/f32-gemm/gen/f32-gemm-4x8-minmax-wasmsimd-x86-splat.c",
"src/f32-gemm/gen/f32-gemm-4x8-relu-wasmsimd-splat.c",
"src/f32-gemm/gen/f32-gemm-4x8-wasmsimd-splat.c",
"src/f32-gemm/gen/f32-gemm-5x8-minmax-wasmsimd-arm-splat.c",
"src/f32-gemm/gen/f32-gemm-5x8-relu-wasmsimd-splat.c",
"src/f32-gemm/gen/f32-gemm-5x8-wasmsimd-splat.c",
"src/f32-ibilinear-chw/gen/f32-ibilinear-chw-wasmsimd-p8.c",
"src/f32-ibilinear/gen/f32-ibilinear-wasmsimd-c8.c",
"src/f32-igemm/gen/f32-igemm-1x8-minmax-wasmsimd-arm-splat.c",
"src/f32-igemm/gen/f32-igemm-1x8-minmax-wasmsimd-x86-splat.c",
"src/f32-igemm/gen/f32-igemm-1x8-relu-wasmsimd-splat.c",
"src/f32-igemm/gen/f32-igemm-1x8-wasmsimd-splat.c",
"src/f32-igemm/gen/f32-igemm-4x2c4-minmax-wasmsimd-arm.c",
"src/f32-igemm/gen/f32-igemm-4x2c4-minmax-wasmsimd-x86.c",
"src/f32-igemm/gen/f32-igemm-4x2c4-wasmsimd.c",
"src/f32-igemm/gen/f32-igemm-4x8-minmax-wasmsimd-x86-splat.c",
"src/f32-igemm/gen/f32-igemm-4x8-relu-wasmsimd-splat.c",
"src/f32-igemm/gen/f32-igemm-4x8-wasmsimd-splat.c",
"src/f32-igemm/gen/f32-igemm-5x8-minmax-wasmsimd-arm-splat.c",
"src/f32-igemm/gen/f32-igemm-5x8-relu-wasmsimd-splat.c",
"src/f32-igemm/gen/f32-igemm-5x8-wasmsimd-splat.c",
"src/f32-maxpool/f32-maxpool-9p8x-minmax-wasmsimd-arm-c4.c",
"src/f32-maxpool/f32-maxpool-9p8x-minmax-wasmsimd-x86-c4.c",
"src/f32-pavgpool/f32-pavgpool-9p8x-minmax-wasmsimd-arm-c4.c",
"src/f32-pavgpool/f32-pavgpool-9p8x-minmax-wasmsimd-x86-c4.c",
"src/f32-pavgpool/f32-pavgpool-9x-minmax-wasmsimd-arm-c4.c",
"src/f32-pavgpool/f32-pavgpool-9x-minmax-wasmsimd-x86-c4.c",
"src/f32-prelu/gen/f32-prelu-wasmsimd-iminmax-2x8.c",
"src/f32-prelu/gen/f32-prelu-wasmsimd-laneselect-2x8.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-minmax-wasmsimd-arm-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-minmax-wasmsimd-x86-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-relu-wasmsimd-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-wasmsimd-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x8-minmax-wasmsimd-x86-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x8-relu-wasmsimd-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x8-wasmsimd-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-5x8-minmax-wasmsimd-arm-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-5x8-relu-wasmsimd-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-5x8-wasmsimd-splat.c",
"src/f32-qs8-vcvt/gen/f32-qs8-vcvt-wasmsimd-magic-x32.c",
"src/f32-qu8-vcvt/gen/f32-qu8-vcvt-wasmsimd-magic-x32.c",
"src/f32-raddstoreexpminusmax/gen/f32-raddstoreexpminusmax-wasmsimd-rr2-p5-x16-acc2.c",
"src/f32-rmax/f32-rmax-wasmsimd-arm.c",
"src/f32-rmax/f32-rmax-wasmsimd-x86.c",
"src/f32-rminmax/gen/f32-rminmax-wasmsimd-minmax-x16-acc4.c",
"src/f32-rsum/gen/f32-rsum-wasmsimd-x16-acc4.c",
"src/f32-spmm/gen/f32-spmm-32x1-minmax-wasmsimd-arm.c",
"src/f32-spmm/gen/f32-spmm-32x1-minmax-wasmsimd-x86.c",
"src/f32-vbinary/gen/f32-vadd-minmax-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vadd-minmax-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vadd-wasmsimd-x16.c",
"src/f32-vbinary/gen/f32-vaddc-minmax-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vaddc-minmax-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vaddc-wasmsimd-x16.c",
"src/f32-vbinary/gen/f32-vdiv-minmax-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vdiv-minmax-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vdiv-wasmsimd-x16.c",
"src/f32-vbinary/gen/f32-vdivc-minmax-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vdivc-minmax-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vdivc-wasmsimd-x16.c",
"src/f32-vbinary/gen/f32-vmax-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vmax-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vmaxc-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vmaxc-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vmin-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vmin-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vminc-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vminc-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vmul-minmax-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vmul-minmax-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vmul-wasmsimd-x16.c",
"src/f32-vbinary/gen/f32-vmulc-minmax-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vmulc-minmax-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vmulc-wasmsimd-x16.c",
"src/f32-vbinary/gen/f32-vrdivc-minmax-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vrdivc-minmax-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vrdivc-wasmsimd-x16.c",
"src/f32-vbinary/gen/f32-vrsubc-minmax-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vrsubc-minmax-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vrsubc-wasmsimd-x16.c",
"src/f32-vbinary/gen/f32-vsqrdiff-wasmsimd-x16.c",
"src/f32-vbinary/gen/f32-vsqrdiffc-wasmsimd-x16.c",
"src/f32-vbinary/gen/f32-vsub-minmax-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vsub-minmax-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vsub-wasmsimd-x16.c",
"src/f32-vbinary/gen/f32-vsubc-minmax-wasmsimd-arm-x16.c",
"src/f32-vbinary/gen/f32-vsubc-minmax-wasmsimd-x86-x16.c",
"src/f32-vbinary/gen/f32-vsubc-wasmsimd-x16.c",
"src/f32-vclamp/gen/f32-vclamp-wasmsimd-arm-x8.c",
"src/f32-vclamp/gen/f32-vclamp-wasmsimd-x86-x8.c",
"src/f32-vcmul/gen/f32-vcmul-wasmsimd-x8.c",
"src/f32-velu/gen/f32-velu-wasmsimd-arm-rr2-p6-x20.c",
"src/f32-velu/gen/f32-velu-wasmsimd-x86-rr2-p6-x20.c",
"src/f32-vhswish/gen/f32-vhswish-wasmsimd-x16.c",
"src/f32-vlrelu/gen/f32-vlrelu-wasmsimd-iminmax-x8.c",
"src/f32-vlrelu/gen/f32-vlrelu-wasmsimd-laneselect-x8.c",
"src/f32-vmulcaddc/gen/f32-vmulcaddc-c4-minmax-wasmsimd-arm-2x.c",
"src/f32-vmulcaddc/gen/f32-vmulcaddc-c4-minmax-wasmsimd-x86-2x.c",
"src/f32-vrelu/gen/f32-vrelu-wasmsimd-x16.c",
"src/f32-vrnd/gen/f32-vrndd-wasmsimd-x8.c",
"src/f32-vrnd/gen/f32-vrndne-wasmsimd-x8.c",
"src/f32-vrnd/gen/f32-vrndu-wasmsimd-x8.c",
"src/f32-vrnd/gen/f32-vrndz-wasmsimd-x8.c",
"src/f32-vsigmoid/gen/f32-vsigmoid-wasmsimd-rr2-p5-div-x16.c",
"src/f32-vsqrt/gen/f32-vsqrt-wasmsimd-sqrt-x8.c",
"src/f32-vtanh/gen/f32-vtanh-wasmsimd-expm1minus-rr1-p6h5ts-div-abs-min-x16.c",
"src/f32-vtanh/gen/f32-vtanh-wasmsimd-expm1minus-rr1-p6h5ts-div-nabs-pmax-x16.c",
"src/f32-vunary/gen/f32-vabs-wasmsimd-x8.c",
"src/f32-vunary/gen/f32-vneg-wasmsimd-x8.c",
"src/f32-vunary/gen/f32-vsqr-wasmsimd-x8.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-1x4c2s4-minmax-wasmsimd-dot16x2-ld128.c",
"src/qd8-f32-qc8w-gemm/gen/qd8-f32-qc8w-gemm-4x4c2s4-minmax-wasmsimd-dot16x2-ld128.c",
"src/qs8-dwconv/gen/qs8-dwconv-9p16c-minmax-fp32-wasmsimd-mul16-add16.c",
"src/qs8-dwconv/gen/qs8-dwconv-25p16c-minmax-fp32-wasmsimd-mul16-add16.c",
"src/qs8-f32-vcvt/gen/qs8-f32-vcvt-wasmsimd-x32.c",
"src/qs8-gavgpool/gen/qs8-gavgpool-7p7x-minmax-fp32-wasmsimd-c16.c",
"src/qs8-gavgpool/gen/qs8-gavgpool-7x-minmax-fp32-wasmsimd-c16.c",
"src/qs8-gemm/gen/qs8-gemm-1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
"src/qs8-gemm/gen/qs8-gemm-4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
"src/qs8-igemm/gen/qs8-igemm-1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
"src/qs8-igemm/gen/qs8-igemm-4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-3p16c-minmax-fp32-wasmsimd-mul16-add16.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-9p16c-minmax-fp32-wasmsimd-mul16-add16.c",
"src/qs8-qc8w-dwconv/gen/qs8-qc8w-dwconv-25p16c-minmax-fp32-wasmsimd-mul16-add16.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
"src/qs8-vadd/gen/qs8-vadd-minmax-wasmsimd-x32.c",
"src/qs8-vaddc/gen/qs8-vaddc-minmax-wasmsimd-x32.c",
"src/qs8-vcvt/gen/qs8-vcvt-wasmsimd-x16.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-wasmsimd-arm-x32.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-wasmsimd-x86-x16.c",
"src/qs8-vmul/gen/qs8-vmul-minmax-fp32-wasmsimd-mul32-ld64-x8.c",
"src/qs8-vmulc/gen/qs8-vmulc-minmax-fp32-wasmsimd-mul32-ld64-x8.c",
"src/qs16-qs8-vcvt/gen/qs16-qs8-vcvt-wasmsimd-x16.c",
"src/qu8-dwconv/gen/qu8-dwconv-9p8c-minmax-fp32-wasmsimd-mul16.c",
"src/qu8-dwconv/gen/qu8-dwconv-25p8c-minmax-fp32-wasmsimd-mul16.c",
"src/qu8-f32-vcvt/gen/qu8-f32-vcvt-wasmsimd-x32.c",
"src/qu8-gavgpool/gen/qu8-gavgpool-7p7x-minmax-fp32-wasmsimd-c16.c",
"src/qu8-gavgpool/gen/qu8-gavgpool-7x-minmax-fp32-wasmsimd-c16.c",
"src/qu8-gemm/gen/qu8-gemm-1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
"src/qu8-gemm/gen/qu8-gemm-4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
"src/qu8-igemm/gen/qu8-igemm-1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
"src/qu8-igemm/gen/qu8-igemm-4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
"src/qu8-vadd/gen/qu8-vadd-minmax-wasmsimd-x32.c",
"src/qu8-vaddc/gen/qu8-vaddc-minmax-wasmsimd-x32.c",
"src/qu8-vcvt/gen/qu8-vcvt-wasmsimd-x16.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-wasmsimd-arm-x32.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-wasmsimd-x86-x16.c",
"src/qu8-vmul/gen/qu8-vmul-minmax-fp32-wasmsimd-mul32-ld64-x8.c",
"src/qu8-vmulc/gen/qu8-vmulc-minmax-fp32-wasmsimd-mul32-ld64-x8.c",
"src/s8-ibilinear/gen/s8-ibilinear-wasmsimd-dot16x2-c8.c",
"src/s8-maxpool/s8-maxpool-9p8x-minmax-wasmsimd-c16.c",
"src/s8-vclamp/s8-vclamp-wasmsimd-x64.c",
"src/u8-ibilinear/gen/u8-ibilinear-wasmsimd-dot16x2-c8.c",
"src/u8-maxpool/u8-maxpool-9p8x-minmax-wasmsimd-c16.c",
"src/u8-vclamp/u8-vclamp-wasmsimd-x64.c",
"src/xx-fill/xx-fill-wasmsimd-x64.c",
"src/xx-pad/xx-pad-wasmsimd.c",
"src/x8-lut/gen/x8-lut-wasmsimd-x32.c",
"src/x8-packw/gen/x8-packw-x8-gemm-goi-scalar-int-x4.c",
"src/x8-transposec/gen/x8-transposec-16x16-reuse-mov-wasmsimd.c",
"src/x16-transposec/gen/x16-transposec-8x8-reuse-mov-wasmsimd.c",
"src/x32-packw/gen/x32-packw-x2c4-gemm-goi-wasmsimd-x4.c",
"src/x32-packw/gen/x32-packw-x8-gemm-goi-wasmsimd-x4.c",
"src/x32-transposec/gen/x32-transposec-4x4-reuse-mov-wasmsimd.c",
"src/x32-unpool/x32-unpool-wasmsimd.c",
"src/x32-zip/x32-zip-xm-wasmsimd.c",
"src/x32-zip/x32-zip-x2-wasmsimd.c",
"src/x32-zip/x32-zip-x3-wasmsimd.c",
"src/x32-zip/x32-zip-x4-wasmsimd.c",
]
PROD_WASMRELAXEDSIMD_MICROKERNEL_SRCS = [
"src/f16-f32-vcvt/gen/f16-f32-vcvt-wasmrelaxedsimd-int16-x16.c",
"src/f32-dwconv/gen/f32-dwconv-3p8c-minmax-wasmrelaxedsimd-fma.c",
"src/f32-dwconv/gen/f32-dwconv-3p8c-wasmrelaxedsimd-fma.c",
"src/f32-dwconv/gen/f32-dwconv-4p8c-minmax-wasmrelaxedsimd-fma.c",
"src/f32-dwconv/gen/f32-dwconv-4p8c-wasmrelaxedsimd-fma.c",
"src/f32-dwconv/gen/f32-dwconv-5f5m5l4c4s4r-minmax-wasmrelaxedsimd-fma.c",
"src/f32-dwconv/gen/f32-dwconv-5f5m5l4c4s4r-wasmrelaxedsimd-fma.c",
"src/f32-dwconv/gen/f32-dwconv-9p8c-minmax-wasmrelaxedsimd-fma.c",
"src/f32-dwconv/gen/f32-dwconv-9p8c-wasmrelaxedsimd-fma.c",
"src/f32-dwconv/gen/f32-dwconv-25p8c-minmax-wasmrelaxedsimd-fma.c",
"src/f32-dwconv/gen/f32-dwconv-25p8c-wasmrelaxedsimd-fma.c",
"src/f32-f16-vcvt/gen/f32-f16-vcvt-wasmrelaxedsimd-x24.c",
"src/f32-gemm/gen/f32-gemm-1x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-gemm/gen/f32-gemm-1x8-minmax-wasmrelaxedsimd-fma-splat.c",
"src/f32-gemm/gen/f32-gemm-1x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-gemm/gen/f32-gemm-1x8-relu-wasmrelaxedsimd-fma-splat.c",
"src/f32-gemm/gen/f32-gemm-1x8-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-gemm/gen/f32-gemm-1x8-wasmrelaxedsimd-fma-splat.c",
"src/f32-gemm/gen/f32-gemm-4x2c4-minmax-wasmrelaxedsimd-fma.c",
"src/f32-gemm/gen/f32-gemm-4x2c4-wasmrelaxedsimd-fma.c",
"src/f32-gemm/gen/f32-gemm-4x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-gemm/gen/f32-gemm-4x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-gemm/gen/f32-gemm-4x8-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-gemm/gen/f32-gemm-6x8-minmax-wasmrelaxedsimd-fma-splat.c",
"src/f32-gemm/gen/f32-gemm-6x8-relu-wasmrelaxedsimd-fma-splat.c",
"src/f32-gemm/gen/f32-gemm-6x8-wasmrelaxedsimd-fma-splat.c",
"src/f32-ibilinear/gen/f32-ibilinear-wasmrelaxedsimd-c8.c",
"src/f32-igemm/gen/f32-igemm-1x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-igemm/gen/f32-igemm-1x8-minmax-wasmrelaxedsimd-fma-splat.c",
"src/f32-igemm/gen/f32-igemm-1x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-igemm/gen/f32-igemm-1x8-relu-wasmrelaxedsimd-fma-splat.c",
"src/f32-igemm/gen/f32-igemm-1x8-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-igemm/gen/f32-igemm-1x8-wasmrelaxedsimd-fma-splat.c",
"src/f32-igemm/gen/f32-igemm-4x2c4-minmax-wasmrelaxedsimd-fma.c",
"src/f32-igemm/gen/f32-igemm-4x2c4-wasmrelaxedsimd-fma.c",
"src/f32-igemm/gen/f32-igemm-4x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-igemm/gen/f32-igemm-4x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-igemm/gen/f32-igemm-4x8-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-igemm/gen/f32-igemm-6x8-minmax-wasmrelaxedsimd-fma-splat.c",
"src/f32-igemm/gen/f32-igemm-6x8-relu-wasmrelaxedsimd-fma-splat.c",
"src/f32-igemm/gen/f32-igemm-6x8-wasmrelaxedsimd-fma-splat.c",
"src/f32-prelu/gen/f32-prelu-wasmrelaxedsimd-iminmax-2x4.c",
"src/f32-prelu/gen/f32-prelu-wasmrelaxedsimd-laneselect-2x4.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-minmax-wasmrelaxedsimd-fma-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-relu-wasmrelaxedsimd-fma-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-1x8-wasmrelaxedsimd-fma-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-4x8-wasmrelaxedsimd-fma-loadsplat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-6x8-minmax-wasmrelaxedsimd-fma-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-6x8-relu-wasmrelaxedsimd-fma-splat.c",
"src/f32-qc8w-gemm/gen/f32-qc8w-gemm-6x8-wasmrelaxedsimd-fma-splat.c",
"src/f32-raddstoreexpminusmax/gen/f32-raddstoreexpminusmax-wasmrelaxedsimd-rr2-p5-x16-acc2.c",
"src/f32-velu/gen/f32-velu-wasmrelaxedsimd-fma-rr2-p6-x24.c",
"src/f32-vlrelu/gen/f32-vlrelu-wasmrelaxedsimd-iminmax-x4.c",
"src/f32-vlrelu/gen/f32-vlrelu-wasmrelaxedsimd-laneselect-x4.c",
"src/f32-vmulcaddc/gen/f32-vmulcaddc-c4-minmax-wasmrelaxedsimd-fma-2x.c",
"src/f32-vsigmoid/gen/f32-vsigmoid-wasmrelaxedsimd-fma-rr2-p5-div-x24.c",
"src/qs8-gemm/gen/qs8-gemm-1x4c16-minmax-fp32-wasmsdot.c",
"src/qs8-gemm/gen/qs8-gemm-4x4c16-minmax-fp32-wasmsdot.c",
"src/qs8-igemm/gen/qs8-igemm-1x4c16-minmax-fp32-wasmsdot.c",
"src/qs8-igemm/gen/qs8-igemm-4x4c16-minmax-fp32-wasmsdot.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-1x4c16-minmax-fp32-wasmsdot.c",
"src/qs8-qc8w-gemm/gen/qs8-qc8w-gemm-4x4c16-minmax-fp32-wasmsdot.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-1x4c16-minmax-fp32-wasmsdot.c",
"src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-4x4c16-minmax-fp32-wasmsdot.c",
"src/qs8-vcvt/gen/qs8-vcvt-wasmrelaxedsimd-x32.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-wasmrelaxedsimd-arm-x32.c",
"src/qs8-vlrelu/gen/qs8-vlrelu-wasmrelaxedsimd-x86-x32.c",
"src/qu8-vcvt/gen/qu8-vcvt-wasmrelaxedsimd-x32.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-wasmrelaxedsimd-arm-x32.c",
"src/qu8-vlrelu/gen/qu8-vlrelu-wasmrelaxedsimd-x86-x32.c",
"src/x8-lut/gen/x8-lut-wasmpshufb-x32.c",
]
MICROKERNEL_HDRS = [
"src/xnnpack/argmaxpool.h",
"src/xnnpack/avgpool.h",
"src/xnnpack/conv.h",
"src/xnnpack/dwconv.h",
"src/xnnpack/fft.h",
"src/xnnpack/fill.h",
"src/xnnpack/filterbank.h",
"src/xnnpack/gavgpool.h",
"src/xnnpack/gemm.h",
"src/xnnpack/ibilinear.h",
"src/xnnpack/igemm.h",
"src/xnnpack/lut.h",
"src/xnnpack/maxpool.h",
"src/xnnpack/packb.h",
"src/xnnpack/packw.h",
"src/xnnpack/packx.h",
"src/xnnpack/pad.h",
"src/xnnpack/pavgpool.h",
"src/xnnpack/ppmm.h",
"src/xnnpack/prelu.h",
"src/xnnpack/quantization.h",
"src/xnnpack/raddexpminusmax.h",
"src/xnnpack/raddextexp.h",
"src/xnnpack/raddstoreexpminusmax.h",
"src/xnnpack/reduce.h",
"src/xnnpack/rmax.h",
"src/xnnpack/rmaxabs.h",
"src/xnnpack/spmm.h",
"src/xnnpack/transpose.h",
"src/xnnpack/unpool.h",
"src/xnnpack/vadd.h",
"src/xnnpack/vbinary.h",
"src/xnnpack/vcvt.h",
"src/xnnpack/vhswish.h",
"src/xnnpack/vlog.h",
"src/xnnpack/vlrelu.h",
"src/xnnpack/vlshift.h",
"src/xnnpack/vmul.h",
"src/xnnpack/vmulcaddc.h",
"src/xnnpack/vscaleexpminusmax.h",
"src/xnnpack/vscaleextexp.h",
"src/xnnpack/vsquareabs.h",
"src/xnnpack/vunary.h",
"src/xnnpack/window.h",
"src/xnnpack/zerob.h",
"src/xnnpack/zip.h",
]
INTERNAL_MICROKERNEL_HDRS = MICROKERNEL_HDRS + [
"src/xnnpack/cache.h",
"src/xnnpack/intrinsics-polyfill.h",
"src/xnnpack/math-stubs.h",
"src/xnnpack/requantization-stubs.h",
]
WASM_JIT_LINKOPTS = [
"-sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE=$addFunction",
"-sALLOW_TABLE_GROWTH=1",
]
JIT_WASMSIMD32_COMMONS_SRCS = [
"src/xnnpack/wasmsimd-gemm-igemm-loadsplat-commons.h",
"src/xnnpack/wasmsimd-gemm-igemm-commons.h",
"src/xnnpack/wasmsimd-gemm-igemm-s4-commons.h",
]
JIT_WASMRELAXEDSIMD32_COMMONS_SRCS = []
JIT_WASM32_SRCS = WASM32_JIT_MICROKERNEL_SRCS
JIT_WASMSIMD32_SRCS = JIT_WASM32_SRCS + JIT_WASMSIMD32_COMMONS_SRCS + WASMSIMD32_JIT_MICROKERNEL_SRCS
JIT_WASMRELAXEDSIMD32_SRCS = JIT_WASMSIMD32_SRCS + JIT_WASMRELAXEDSIMD32_COMMONS_SRCS + WASMRELAXEDSIMD32_JIT_MICROKERNEL_SRCS
filegroup(
name = "microkernel_source_files",
data = ALL_NEON_AARCH64_MICROKERNEL_SRCS + ALL_NEONBF16_AARCH64_MICROKERNEL_SRCS + ALL_NEONFMA_AARCH64_MICROKERNEL_SRCS + ALL_NEONFP16ARITH_AARCH64_MICROKERNEL_SRCS + ALL_ARMSIMD32_MICROKERNEL_SRCS + ALL_AVX_MICROKERNEL_SRCS + ALL_AVX2_MICROKERNEL_SRCS + ALL_AVX512F_MICROKERNEL_SRCS + ALL_AVX512SKX_MICROKERNEL_SRCS + ALL_AVX512VBMI_MICROKERNEL_SRCS + ALL_F16C_MICROKERNEL_SRCS + ALL_FMA_MICROKERNEL_SRCS + ALL_FMA3_MICROKERNEL_SRCS + ALL_FP16ARITH_MICROKERNEL_SRCS + ALL_HEXAGON_MICROKERNEL_SRCS + ALL_NEON_MICROKERNEL_SRCS + ALL_NEONBF16_MICROKERNEL_SRCS + ALL_NEONDOT_MICROKERNEL_SRCS + ALL_NEONFMA_MICROKERNEL_SRCS + ALL_NEONFP16_MICROKERNEL_SRCS + ALL_NEONFP16ARITH_MICROKERNEL_SRCS + ALL_NEONV8_MICROKERNEL_SRCS + ALL_SCALAR_MICROKERNEL_SRCS + ALL_SSE_MICROKERNEL_SRCS + ALL_SSE2_MICROKERNEL_SRCS + ALL_SSE41_MICROKERNEL_SRCS + ALL_SSSE3_MICROKERNEL_SRCS + ALL_WASM_MICROKERNEL_SRCS + ALL_WASMRELAXEDSIMD_MICROKERNEL_SRCS + ALL_WASMSIMD_MICROKERNEL_SRCS + ALL_XOP_MICROKERNEL_SRCS + AARCH32_ASM_MICROKERNEL_SRCS + AARCH64_ASM_MICROKERNEL_SRCS + WASM32_ASM_MICROKERNEL_SRCS + ["src/microparams-init.c"],
visibility = xnnpack_visibility(),
)
filegroup(
name = "microkernel_header_files",
data = MICROKERNEL_HDRS + ["src/xnnpack/microparams.h"],
visibility = xnnpack_visibility(),
)
# Collection of internal microkernel related headers that declares all the microkernel functions.
xnnpack_cc_library(
name = "microkernels_h",
hdrs = INTERNAL_MICROKERNEL_HDRS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
)
xnnpack_cc_library(
name = "xnnpack_h",
hdrs = ["include/xnnpack.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "common",
hdrs = ["src/xnnpack/common.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":platform_jit",
],
)
xnnpack_cc_library(
name = "microparams",
hdrs = [
"src/xnnpack/microparams.h",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
],
)
xnnpack_cc_library(
name = "hardware_config",
srcs = ["src/configs/hardware-config.c"],
hdrs = [
"src/xnnpack/config.h",
"src/xnnpack/microfnptr.h",
"src/xnnpack/microparams.h",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":logging",
] + select({
":emscripten": [],
"//conditions:default": ["@cpuinfo"],
}),
)
xnnpack_cc_library(
name = "hardware_config_test_mode",
srcs = ["src/configs/hardware-config.c"],
hdrs = [
"src/xnnpack/config.h",
"src/xnnpack/microfnptr.h",
"src/xnnpack/microparams.h",
],
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":logging",
] + select({
":emscripten": [],
"//conditions:default": ["@cpuinfo"],
}),
)
xnnpack_cc_library(
name = "microkernel_configs",
srcs = [
"src/configs/argmaxpool-config.c",
"src/configs/avgpool-config.c",
"src/configs/binary-elementwise-config.c",
"src/configs/cmul-config.c",
"src/configs/conv-hwc2chw-config.c",
"src/configs/dwconv-config.c",
"src/configs/dwconv2d-chw-config.c",
"src/configs/gavgpool-config.c",
"src/configs/gavgpool-cw-config.c",
"src/configs/gemm-config.c",
"src/configs/ibilinear-chw-config.c",
"src/configs/ibilinear-config.c",
"src/configs/lut32norm-config.c",
"src/configs/maxpool-config.c",
"src/configs/pavgpool-config.c",
"src/configs/prelu-config.c",
"src/configs/raddstoreexpminusmax-config.c",
"src/configs/reduce-config.c",
"src/configs/rmax-config.c",
"src/configs/spmm-config.c",
"src/configs/transpose-config.c",
"src/configs/unary-elementwise-config.c",
"src/configs/unpool-config.c",
"src/configs/vmulcaddc-config.c",
"src/configs/x8-lut-config.c",
"src/configs/xx-fill-config.c",
"src/configs/xx-pad-config.c",
"src/configs/zip-config.c",
],
hdrs = [
"src/xnnpack/config.h",
"src/xnnpack/microfnptr.h",
"src/xnnpack/microparams.h",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":amalgam_microkernels",
":common",
":enable_assembly",
":enable_dwconv_multipass",
":enable_gemm_m_specialization",
":enable_jit",
":hardware_config",
":logging",
":microkernels_h",
":microparams_init",
":packing",
],
)
xnnpack_cc_library(
name = "microkernel_configs_test_mode",
srcs = [
"src/configs/argmaxpool-config.c",
"src/configs/avgpool-config.c",
"src/configs/binary-elementwise-config.c",
"src/configs/cmul-config.c",
"src/configs/conv-hwc2chw-config.c",
"src/configs/dwconv-config.c",
"src/configs/dwconv2d-chw-config.c",
"src/configs/gavgpool-config.c",
"src/configs/gavgpool-cw-config.c",
"src/configs/gemm-config.c",
"src/configs/ibilinear-chw-config.c",
"src/configs/ibilinear-config.c",
"src/configs/lut32norm-config.c",
"src/configs/maxpool-config.c",
"src/configs/pavgpool-config.c",
"src/configs/prelu-config.c",
"src/configs/raddstoreexpminusmax-config.c",
"src/configs/reduce-config.c",
"src/configs/rmax-config.c",
"src/configs/spmm-config.c",
"src/configs/transpose-config.c",
"src/configs/unary-elementwise-config.c",
"src/configs/unpool-config.c",
"src/configs/vmulcaddc-config.c",
"src/configs/x8-lut-config.c",
"src/configs/xx-fill-config.c",
"src/configs/xx-pad-config.c",
"src/configs/zip-config.c",
],
hdrs = [
"src/xnnpack/config.h",
"src/xnnpack/microfnptr.h",
"src/xnnpack/microparams.h",
],
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":enable_assembly",
":enable_dwconv_multipass",
":enable_gemm_m_specialization",
":enable_jit",
":hardware_config_test_mode",
":logging",
":microkernels_h",
":microparams_init",
":packing",
":test_microkernels",
],
)
xnnpack_cc_library(
name = "params",
srcs = ["src/params.c"],
hdrs = [
"src/xnnpack/config.h",
"src/xnnpack/microfnptr.h",
"src/xnnpack/params.h",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":microparams",
":xnnpack_h",
],
)
xnnpack_cc_library(
name = "math",
hdrs = ["src/xnnpack/math.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
],
)
xnnpack_cc_library(
name = "prefetch",
hdrs = ["src/xnnpack/prefetch.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
],
)
xnnpack_cc_library(
name = "unaligned",
hdrs = ["src/xnnpack/unaligned.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
],
)
xnnpack_cc_library(
name = "microparams_init",
srcs = ["src/microparams-init.c"],
hdrs = ["src/xnnpack/microparams-init.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":logging",
":math",
":microparams",
":unaligned",
":xnnpack_h",
"@FP16",
],
)
xnnpack_cc_library(
name = "node_type",
hdrs = ["src/xnnpack/node-type.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
)
xnnpack_cc_library(
name = "operator_type",
hdrs = ["src/xnnpack/operator-type.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
)
xnnpack_cc_library(
name = "microkernel_type",
hdrs = ["src/xnnpack/microkernel-type.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
)
xnnpack_cc_library(
name = "allocator",
srcs = [
"src/allocator.c",
],
hdrs = ["src/xnnpack/allocator.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":logging",
":math",
":params",
":xnnpack_h",
],
)
xnnpack_cc_library(
name = "aligned_allocator",
hdrs = [
"src/xnnpack/aligned-allocator.h",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
)
xnnpack_cc_library(
name = "isa_checks",
hdrs = [
"src/xnnpack/isa-checks.h",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":hardware_config",
],
)
xnnpack_cc_library(
name = "math_stubs",
hdrs = [
"src/xnnpack/math-stubs.h",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
)
xnnpack_cc_library(
name = "memory",
srcs = [
"src/memory.c",
],
hdrs = ["src/xnnpack/memory.h"],
# Do not use xnnpack_gcc_std_copts, as it defines -std=c99, which then makes MAP_ANONYMOUS undefined
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":logging",
":math",
":xnnpack_h",
],
)
xnnpack_cc_library(
name = "quantization",
hdrs = ["src/xnnpack/quantization.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":microparams",
],
)
xnnpack_cc_library(
name = "requantization",
hdrs = ["src/xnnpack/requantization.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microparams",
],
)
xnnpack_cc_library(
name = "requantization_stubs",
hdrs = ["src/xnnpack/requantization-stubs.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
)
xnnpack_cc_library(
name = "tables",
srcs = TABLE_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
],
)
xnnpack_cc_library(
name = "scalar_amalgam_microkernels",
srcs = ["src/amalgam/gen/scalar.c"],
aarch32_copts = ["-marm"],
gcc_copts = xnnpack_gcc_std_copts() + [
"-fno-fast-math",
"-fno-math-errno",
"-ffp-contract=off",
],
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
"@FXdiv",
],
)
xnnpack_cc_library(
name = "scalar_bench_microkernels",
srcs = ALL_FMA_MICROKERNEL_SRCS + ALL_SCALAR_MICROKERNEL_SRCS,
aarch32_copts = ["-marm"],
gcc_copts = xnnpack_gcc_std_copts() + [
"-fno-fast-math",
"-fno-math-errno",
"-ffp-contract=off",
],
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
"@FXdiv",
],
)
xnnpack_cc_library(
name = "scalar_prod_microkernels",
srcs = PROD_SCALAR_MICROKERNEL_SRCS,
aarch32_copts = ["-marm"],
gcc_copts = xnnpack_gcc_std_copts() + [
"-fno-fast-math",
"-fno-math-errno",
"-ffp-contract=off",
],
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
"@FXdiv",
],
)
xnnpack_cc_library(
name = "scalar_test_microkernels",
srcs = ALL_FMA_MICROKERNEL_SRCS + ALL_SCALAR_MICROKERNEL_SRCS,
aarch32_copts = ["-marm"],
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts() + [
"-fno-fast-math",
"-fno-math-errno",
"-ffp-contract=off",
],
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
"@FXdiv",
],
)
xnnpack_cc_library(
name = "wasm_amalgam_microkernels",
gcc_copts = xnnpack_gcc_std_copts() + [
"-fno-fast-math",
"-fno-math-errno",
],
msvc_copts = xnnpack_msvc_std_copts(),
wasm_srcs = ["src/amalgam/gen/wasm.c"],
wasmrelaxedsimd_srcs = [
"src/amalgam/gen/wasm.c",
"src/amalgam/gen/wasmrelaxedsimd.c",
"src/amalgam/gen/wasmsimd.c",
],
wasmsimd_srcs = [
"src/amalgam/gen/wasm.c",
"src/amalgam/gen/wasmsimd.c",
],
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "wasm_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts() + [
"-fno-fast-math",
"-fno-math-errno",
],
msvc_copts = xnnpack_msvc_std_copts(),
wasm_srcs = ALL_WASM_MICROKERNEL_SRCS,
wasmrelaxedsimd_srcs = ALL_WASM_MICROKERNEL_SRCS + ALL_WASMSIMD_MICROKERNEL_SRCS + ALL_WASMRELAXEDSIMD_MICROKERNEL_SRCS,
wasmsimd_srcs = ALL_WASM_MICROKERNEL_SRCS + ALL_WASMSIMD_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "wasm_prod_microkernels",
gcc_copts = xnnpack_gcc_std_copts() + [
"-fno-fast-math",
"-fno-math-errno",
],
msvc_copts = xnnpack_msvc_std_copts(),
wasm_srcs = PROD_WASM_MICROKERNEL_SRCS,
wasmrelaxedsimd_srcs = PROD_WASM_MICROKERNEL_SRCS + PROD_WASMSIMD_MICROKERNEL_SRCS + PROD_WASMRELAXEDSIMD_MICROKERNEL_SRCS,
wasmsimd_srcs = PROD_WASM_MICROKERNEL_SRCS + PROD_WASMSIMD_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "wasm_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts() + [
"-fno-fast-math",
"-fno-math-errno",
],
msvc_copts = xnnpack_msvc_std_copts(),
wasm_srcs = ALL_WASM_MICROKERNEL_SRCS,
wasmrelaxedsimd_srcs = ALL_WASM_MICROKERNEL_SRCS + ALL_WASMSIMD_MICROKERNEL_SRCS + ALL_WASMRELAXEDSIMD_MICROKERNEL_SRCS,
wasmsimd_srcs = ALL_WASM_MICROKERNEL_SRCS + ALL_WASMSIMD_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "armsimd32_amalgam_microkernels",
aarch32_copts = [
"-marm",
"-march=armv6",
"-mfpu=vfp",
"-munaligned-access",
],
aarch32_srcs = ["src/amalgam/gen/armsimd32.c"],
gcc_copts = xnnpack_gcc_std_copts() + [
"-fno-fast-math",
"-fno-math-errno",
],
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "armsimd32_bench_microkernels",
aarch32_copts = [
"-marm",
"-march=armv6",
"-mfpu=vfp",
"-munaligned-access",
],
aarch32_srcs = ALL_ARMSIMD32_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts() + [
"-fno-fast-math",
"-fno-math-errno",
],
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "armsimd32_prod_microkernels",
aarch32_copts = [
"-marm",
"-march=armv6",
"-mfpu=vfp",
"-munaligned-access",
],
aarch32_srcs = PROD_ARMSIMD32_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts() + [
"-fno-fast-math",
"-fno-math-errno",
],
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "armsimd32_test_microkernels",
aarch32_copts = [
"-marm",
"-march=armv6",
"-mfpu=vfp",
"-munaligned-access",
],
aarch32_srcs = ALL_ARMSIMD32_MICROKERNEL_SRCS,
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts() + [
"-fno-fast-math",
"-fno-math-errno",
],
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "fp16arith_amalgam_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8.2-a+fp16",
# GCC emits wrong directives for assembler with -mfpu=fp-armv8
"-mfpu=neon-fp-armv8",
# For vsqrth_f16 polyfill using sqrtf
"-fno-math-errno",
# For vminh_f16/vmaxh_f16 polyfills using compare + select
"-ffinite-math-only",
],
aarch32_srcs = ["src/amalgam/gen/fp16arith.c"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "fp16arith_bench_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8.2-a+fp16",
# GCC emits wrong directives for assembler with -mfpu=fp-armv8
"-mfpu=neon-fp-armv8",
# For vsqrth_f16 polyfill using sqrtf
"-fno-math-errno",
# For vminh_f16/vmaxh_f16 polyfills using compare + select
"-ffinite-math-only",
],
aarch32_srcs = ALL_FP16ARITH_MICROKERNEL_SRCS,
aarch64_copts = ["-march=armv8.2-a+fp16"],
aarch64_srcs = ALL_FP16ARITH_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "fp16arith_prod_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8.2-a+fp16",
# GCC emits wrong directives for assembler with -mfpu=fp-armv8
"-mfpu=neon-fp-armv8",
# For vsqrth_f16 polyfill using sqrtf
"-fno-math-errno",
# For vminh_f16/vmaxh_f16 polyfills using compare + select
"-ffinite-math-only",
],
aarch32_srcs = PROD_FP16ARITH_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "fp16arith_test_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8.2-a+fp16",
# GCC emits wrong directives for assembler with -mfpu=fp-armv8
"-mfpu=neon-fp-armv8",
# For vsqrth_f16 polyfill using sqrtf
"-fno-math-errno",
# For vminh_f16/vmaxh_f16 polyfills using compare + select
"-ffinite-math-only",
],
aarch32_srcs = ALL_FP16ARITH_MICROKERNEL_SRCS,
aarch64_copts = ["-march=armv8.2-a+fp16"],
aarch64_srcs = ALL_FP16ARITH_MICROKERNEL_SRCS,
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neon_amalgam_microkernels",
aarch32_copts = [
"-marm",
"-march=armv7-a",
"-mfpu=neon",
],
aarch32_srcs = ["src/amalgam/gen/neon.c"],
aarch64_srcs = [
"src/amalgam/gen/neon-aarch64.c",
"src/amalgam/gen/neon.c",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neon_bench_microkernels",
aarch32_copts = [
"-marm",
"-march=armv7-a",
"-mfpu=neon",
],
aarch32_srcs = ALL_NEON_MICROKERNEL_SRCS,
aarch64_srcs = ALL_NEON_MICROKERNEL_SRCS + ALL_NEON_AARCH64_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neon_prod_microkernels",
aarch32_copts = [
"-marm",
"-march=armv7-a",
"-mfpu=neon",
],
aarch32_srcs = PROD_NEON_MICROKERNEL_SRCS,
aarch64_srcs = PROD_NEON_MICROKERNEL_SRCS + PROD_NEON_AARCH64_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neon_test_microkernels",
aarch32_copts = [
"-marm",
"-march=armv7-a",
"-mfpu=neon",
],
aarch32_srcs = ALL_NEON_MICROKERNEL_SRCS,
aarch64_srcs = ALL_NEON_MICROKERNEL_SRCS + ALL_NEON_AARCH64_MICROKERNEL_SRCS,
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonfp16_amalgam_microkernels",
aarch32_copts = [
"-marm",
"-march=armv7-a",
"-mfpu=neon-fp16",
],
aarch32_srcs = ["src/amalgam/gen/neonfp16.c"],
aarch64_srcs = ["src/amalgam/gen/neonfp16.c"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonfp16_bench_microkernels",
aarch32_copts = [
"-marm",
"-march=armv7-a",
"-mfpu=neon-fp16",
],
aarch32_srcs = ALL_NEONFP16_MICROKERNEL_SRCS,
aarch64_srcs = ALL_NEONFP16_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonfp16_prod_microkernels",
aarch32_copts = [
"-marm",
"-march=armv7-a",
"-mfpu=neon-fp16",
],
aarch32_srcs = PROD_NEONFP16_MICROKERNEL_SRCS,
aarch64_srcs = PROD_NEONFP16_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonfp16_test_microkernels",
aarch32_copts = [
"-marm",
"-march=armv7-a",
"-mfpu=neon-fp16",
],
aarch32_srcs = ALL_NEONFP16_MICROKERNEL_SRCS,
aarch64_srcs = ALL_NEONFP16_MICROKERNEL_SRCS,
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonfma_amalgam_microkernels",
aarch32_copts = [
"-marm",
"-march=armv7-a",
"-mfpu=neon-vfpv4",
],
aarch32_srcs = ["src/amalgam/gen/neonfma.c"],
aarch64_srcs = ["src/amalgam/gen/neonfma.c"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonfma_bench_microkernels",
aarch32_copts = [
"-marm",
"-march=armv7-a",
"-mfpu=neon-vfpv4",
],
aarch32_srcs = ALL_NEONFMA_MICROKERNEL_SRCS,
aarch64_srcs = ALL_NEONFMA_MICROKERNEL_SRCS + ALL_NEONFMA_AARCH64_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonfma_prod_microkernels",
aarch32_copts = [
"-marm",
"-march=armv7-a",
"-mfpu=neon-vfpv4",
],
aarch32_srcs = PROD_NEONFMA_MICROKERNEL_SRCS,
aarch64_srcs = PROD_NEONFMA_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonfma_test_microkernels",
aarch32_copts = [
"-marm",
"-march=armv7-a",
"-mfpu=neon-vfpv4",
],
aarch32_srcs = ALL_NEONFMA_MICROKERNEL_SRCS,
aarch64_srcs = ALL_NEONFMA_MICROKERNEL_SRCS + ALL_NEONFMA_AARCH64_MICROKERNEL_SRCS,
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonv8_amalgam_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8-a",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = ["src/amalgam/gen/neonv8.c"],
aarch64_srcs = ["src/amalgam/gen/neonv8.c"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonv8_bench_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8-a",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = ALL_NEONV8_MICROKERNEL_SRCS,
aarch64_srcs = ALL_NEONV8_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonv8_prod_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8-a",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = PROD_NEONV8_MICROKERNEL_SRCS,
aarch64_srcs = PROD_NEONV8_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonv8_test_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8-a",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = ALL_NEONV8_MICROKERNEL_SRCS,
aarch64_srcs = ALL_NEONV8_MICROKERNEL_SRCS,
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonfp16arith_amalgam_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8.2-a+fp16",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = ["src/amalgam/gen/neonfp16arith.c"],
aarch64_copts = ["-march=armv8.2-a+fp16"],
aarch64_srcs = [
"src/amalgam/gen/neonfp16arith-aarch64.c",
"src/amalgam/gen/neonfp16arith.c",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonfp16arith_bench_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8.2-a+fp16",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = ALL_NEONFP16ARITH_MICROKERNEL_SRCS,
aarch64_copts = ["-march=armv8.2-a+fp16"],
aarch64_srcs = ALL_NEONFP16ARITH_MICROKERNEL_SRCS + ALL_NEONFP16ARITH_AARCH64_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonfp16arith_prod_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8.2-a+fp16",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = PROD_NEONFP16ARITH_MICROKERNEL_SRCS,
aarch64_copts = ["-march=armv8.2-a+fp16"],
aarch64_srcs = PROD_NEONFP16ARITH_MICROKERNEL_SRCS + PROD_NEONFP16ARITH_AARCH64_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonfp16arith_test_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8.2-a+fp16",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = ALL_NEONFP16ARITH_MICROKERNEL_SRCS,
aarch64_copts = ["-march=armv8.2-a+fp16"],
aarch64_srcs = ALL_NEONFP16ARITH_MICROKERNEL_SRCS + ALL_NEONFP16ARITH_AARCH64_MICROKERNEL_SRCS,
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonbf16_bench_microkernels",
aarch64_copts = ["-march=armv8.2-a+bf16"],
aarch64_srcs = ALL_NEONBF16_MICROKERNEL_SRCS + ALL_NEONBF16_AARCH64_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":params",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonbf16_prod_microkernels",
aarch64_copts = ["-march=armv8.2-a+bf16"],
aarch64_srcs = PROD_NEONBF16_MICROKERNEL_SRCS + PROD_NEONBF16_AARCH64_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":params",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neonbf16_test_microkernels",
aarch64_copts = ["-march=armv8.2-a+bf16"],
aarch64_srcs = ALL_NEONBF16_MICROKERNEL_SRCS + ALL_NEONBF16_AARCH64_MICROKERNEL_SRCS,
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":params",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neondot_amalgam_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8.2-a+dotprod",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = ["src/amalgam/gen/neondot.c"],
aarch64_copts = ["-march=armv8.2-a+dotprod"],
aarch64_srcs = ["src/amalgam/gen/neondot.c"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neondot_bench_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8.2-a+dotprod",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = ALL_NEONDOT_MICROKERNEL_SRCS,
aarch64_copts = ["-march=armv8.2-a+dotprod"],
aarch64_srcs = ALL_NEONDOT_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neondot_prod_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8.2-a+dotprod",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = PROD_NEONDOT_MICROKERNEL_SRCS,
aarch64_copts = ["-march=armv8.2-a+dotprod"],
aarch64_srcs = PROD_NEONDOT_MICROKERNEL_SRCS,
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "neondot_test_microkernels",
aarch32_copts = [
"-marm",
"-march=armv8.2-a+dotprod",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = ALL_NEONDOT_MICROKERNEL_SRCS,
aarch64_copts = ["-march=armv8.2-a+dotprod"],
aarch64_srcs = ALL_NEONDOT_MICROKERNEL_SRCS,
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "sse2_amalgam_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-msse2"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:SSE2"],
x86_srcs = [
"src/amalgam/gen/sse.c",
"src/amalgam/gen/sse2.c",
],
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "sse2_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-msse2"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:SSE2"],
x86_srcs = ALL_SSE_MICROKERNEL_SRCS + ALL_SSE2_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "sse2_prod_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-msse2"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:SSE2"],
x86_srcs = PROD_SSE_MICROKERNEL_SRCS + PROD_SSE2_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "sse2_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-msse2"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:SSE2"],
x86_srcs = ALL_SSE_MICROKERNEL_SRCS + ALL_SSE2_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "ssse3_amalgam_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mssse3"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:SSE2"],
x86_srcs = ["src/amalgam/gen/ssse3.c"],
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "ssse3_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mssse3"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:SSE2"],
x86_srcs = ALL_SSSE3_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "ssse3_prod_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mssse3"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:SSE2"],
x86_srcs = PROD_SSSE3_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "ssse3_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mssse3"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:SSE2"],
x86_srcs = ALL_SSSE3_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "sse41_amalgam_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-msse4.1"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:SSE2"],
x86_srcs = ["src/amalgam/gen/sse41.c"],
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "sse41_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-msse4.1"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:SSE2"],
x86_srcs = ALL_SSE41_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "sse41_prod_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-msse4.1"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:SSE2"],
x86_srcs = PROD_SSE41_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "sse41_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-msse4.1"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:SSE2"],
x86_srcs = ALL_SSE41_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx_amalgam_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mavx"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = ["src/amalgam/gen/avx.c"],
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mavx"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = ALL_AVX_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx_prod_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mavx"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = PROD_AVX_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mavx"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = ALL_AVX_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "f16c_amalgam_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mf16c"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = ["src/amalgam/gen/f16c.c"],
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":unaligned",
],
)
xnnpack_cc_library(
name = "f16c_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mf16c"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = ALL_F16C_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":unaligned",
],
)
xnnpack_cc_library(
name = "f16c_prod_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mf16c"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = PROD_F16C_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":unaligned",
],
)
xnnpack_cc_library(
name = "f16c_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mf16c"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = ALL_F16C_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":unaligned",
],
)
xnnpack_cc_library(
name = "xop_amalgam_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mxop"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = ["src/amalgam/gen/xop.c"],
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "xop_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mxop"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = ALL_XOP_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "xop_prod_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mxop"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = PROD_XOP_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "xop_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mxop"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = ALL_XOP_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "fma3_amalgam_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mf16c",
"-mfma",
],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = ["src/amalgam/gen/fma3.c"],
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "fma3_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mf16c",
"-mfma",
],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = ALL_FMA3_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "fma3_prod_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mf16c",
"-mfma",
],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = PROD_FMA3_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "fma3_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mf16c",
"-mfma",
],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX"],
msvc_x86_64_copts = ["/arch:AVX"],
x86_srcs = ALL_FMA3_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx2_amalgam_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mf16c",
"-mfma",
"-mavx2",
],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX2"],
msvc_x86_64_copts = ["/arch:AVX2"],
x86_srcs = ["src/amalgam/gen/avx2.c"],
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx2_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mf16c",
"-mfma",
"-mavx2",
],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX2"],
msvc_x86_64_copts = ["/arch:AVX2"],
x86_srcs = ALL_AVX2_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx2_prod_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mf16c",
"-mfma",
"-mavx2",
],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX2"],
msvc_x86_64_copts = ["/arch:AVX2"],
x86_srcs = PROD_AVX2_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx2_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mf16c",
"-mfma",
"-mavx2",
],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX2"],
msvc_x86_64_copts = ["/arch:AVX2"],
x86_srcs = ALL_AVX2_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx512f_amalgam_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mavx512f"],
mingw_copts = ["-fno-asynchronous-unwind-tables"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX512"],
msvc_x86_64_copts = ["/arch:AVX512"],
msys_copts = ["-fno-asynchronous-unwind-tables"],
x86_srcs = ["src/amalgam/gen/avx512f.c"],
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx512f_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mavx512f"],
mingw_copts = ["-fno-asynchronous-unwind-tables"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX512"],
msvc_x86_64_copts = ["/arch:AVX512"],
msys_copts = ["-fno-asynchronous-unwind-tables"],
x86_srcs = ALL_AVX512F_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx512f_prod_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mavx512f"],
mingw_copts = ["-fno-asynchronous-unwind-tables"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX512"],
msvc_x86_64_copts = ["/arch:AVX512"],
msys_copts = ["-fno-asynchronous-unwind-tables"],
x86_srcs = PROD_AVX512F_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx512f_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = ["-mavx512f"],
mingw_copts = ["-fno-asynchronous-unwind-tables"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX512"],
msvc_x86_64_copts = ["/arch:AVX512"],
msys_copts = ["-fno-asynchronous-unwind-tables"],
x86_srcs = ALL_AVX512F_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx512skx_amalgam_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
],
mingw_copts = ["-fno-asynchronous-unwind-tables"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX512"],
msvc_x86_64_copts = ["/arch:AVX512"],
msys_copts = ["-fno-asynchronous-unwind-tables"],
x86_srcs = ["src/amalgam/gen/avx512skx.c"],
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx512skx_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
],
mingw_copts = ["-fno-asynchronous-unwind-tables"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX512"],
msvc_x86_64_copts = ["/arch:AVX512"],
msys_copts = ["-fno-asynchronous-unwind-tables"],
x86_srcs = ALL_AVX512SKX_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx512skx_prod_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
],
mingw_copts = ["-fno-asynchronous-unwind-tables"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX512"],
msvc_x86_64_copts = ["/arch:AVX512"],
msys_copts = ["-fno-asynchronous-unwind-tables"],
x86_srcs = PROD_AVX512SKX_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx512skx_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
],
mingw_copts = ["-fno-asynchronous-unwind-tables"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX512"],
msvc_x86_64_copts = ["/arch:AVX512"],
msys_copts = ["-fno-asynchronous-unwind-tables"],
x86_srcs = ALL_AVX512SKX_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx512vbmi_amalgam_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
"-mavx512vbmi",
],
mingw_copts = ["-fno-asynchronous-unwind-tables"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX512"],
msvc_x86_64_copts = ["/arch:AVX512"],
msys_copts = ["-fno-asynchronous-unwind-tables"],
x86_srcs = ["src/amalgam/gen/avx512vbmi.c"],
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx512vbmi_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
"-mavx512vbmi",
],
mingw_copts = ["-fno-asynchronous-unwind-tables"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX512"],
msvc_x86_64_copts = ["/arch:AVX512"],
msys_copts = ["-fno-asynchronous-unwind-tables"],
x86_srcs = ALL_AVX512VBMI_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx512vbmi_prod_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
"-mavx512vbmi",
],
mingw_copts = ["-fno-asynchronous-unwind-tables"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX512"],
msvc_x86_64_copts = ["/arch:AVX512"],
msys_copts = ["-fno-asynchronous-unwind-tables"],
x86_srcs = PROD_AVX512VBMI_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "avx512vbmi_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
gcc_x86_copts = [
"-mavx512f",
"-mavx512cd",
"-mavx512bw",
"-mavx512dq",
"-mavx512vl",
"-mavx512vbmi",
],
mingw_copts = ["-fno-asynchronous-unwind-tables"],
msvc_copts = xnnpack_msvc_std_copts(),
msvc_x86_32_copts = ["/arch:AVX512"],
msvc_x86_64_copts = ["/arch:AVX512"],
msys_copts = ["-fno-asynchronous-unwind-tables"],
x86_srcs = ALL_AVX512VBMI_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "rvv_bench_microkernels",
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
riscv_copts = [
"-march=rv64gcv",
],
riscv_srcs = ALL_RVV_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "rvv_test_microkernels",
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
riscv_copts = [
"-march=rv64gcv",
],
riscv_srcs = ALL_RVV_MICROKERNEL_SRCS,
deps = [
":common",
":math",
":microkernels_h",
":microparams",
":prefetch",
":tables",
":unaligned",
],
)
xnnpack_cc_library(
name = "asm_microkernels",
hdrs = ["src/xnnpack/assembly.h"],
aarch32_copts = [
"-marm",
"-march=armv8.2-a+dotprod",
"-mfpu=neon-fp-armv8",
],
aarch32_srcs = AARCH32_ASM_MICROKERNEL_SRCS,
aarch64_copts = ["-march=armv8.2-a+fp16+dotprod"],
aarch64_srcs = AARCH64_ASM_MICROKERNEL_SRCS,
wasm_srcs = WASM32_ASM_MICROKERNEL_SRCS,
wasmrelaxedsimd_srcs = WASM32_ASM_MICROKERNEL_SRCS,
wasmsimd_srcs = WASM32_ASM_MICROKERNEL_SRCS,
)
xnnpack_cc_library(
name = "log_level_default",
defines = select({
# No logging in optimized mode
":optimized_build": ["XNN_LOG_LEVEL=0"],
# Info logging in debug mode. Use `--define=xnn_log_level=debug` for full logging.
":debug_build": ["XNN_LOG_LEVEL=4"],
# Error-only logging in default (fastbuild) mode
"//conditions:default": ["XNN_LOG_LEVEL=2"],
}),
)
xnnpack_cc_library(
name = "logging",
srcs = [
"src/enums/datatype-strings.c",
"src/enums/microkernel-type.c",
"src/enums/node-type.c",
"src/enums/operator-type.c",
"src/log.c",
],
hdrs = ["src/xnnpack/log.h"],
copts = select({
":debug_build": [],
"//conditions:default": xnnpack_min_size_copts(),
}) + select({
":xnn_log_to_stdio_explicit_true": ["-DXNN_LOG_TO_STDIO=1"],
"//conditions:default": [],
}),
defines = select({
":xnn_log_level_explicit_none": ["XNN_LOG_LEVEL=0"],
":xnn_log_level_explicit_fatal": ["XNN_LOG_LEVEL=1"],
":xnn_log_level_explicit_error": ["XNN_LOG_LEVEL=2"],
":xnn_log_level_explicit_warning": ["XNN_LOG_LEVEL=3"],
":xnn_log_level_explicit_info": ["XNN_LOG_LEVEL=4"],
":xnn_log_level_explicit_debug": ["XNN_LOG_LEVEL=5"],
"//conditions:default": [],
}),
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
visibility = xnnpack_visibility(),
deps = select({
":xnn_log_level_explicit_none": [],
":xnn_log_level_explicit_fatal": [],
":xnn_log_level_explicit_error": [],
":xnn_log_level_explicit_warning": [],
":xnn_log_level_explicit_info": [],
":xnn_log_level_explicit_debug": [],
"//conditions:default": [":log_level_default"],
}) + [
":common",
":microkernel_type",
":node_type",
":operator_type",
":xnnpack_h",
],
)
xnnpack_aggregate_library(
name = "amalgam_microkernels",
aarch32_deps = [
":armsimd32_amalgam_microkernels",
":neon_amalgam_microkernels",
":neonfp16_amalgam_microkernels",
":neonfma_amalgam_microkernels",
":neonv8_amalgam_microkernels",
":asm_microkernels",
],
aarch64_deps = [
":neon_amalgam_microkernels",
":neonfp16_amalgam_microkernels",
":neonfma_amalgam_microkernels",
":neonv8_amalgam_microkernels",
":asm_microkernels",
],
defines = select({
":arm_fp16_scalar_enabled": ["XNN_ENABLE_ARM_FP16_SCALAR=1"],
"//conditions:default": ["XNN_ENABLE_ARM_FP16_SCALAR=0"],
}) + select({
":arm_fp16_vector_enabled": ["XNN_ENABLE_ARM_FP16_VECTOR=1"],
"//conditions:default": ["XNN_ENABLE_ARM_FP16_VECTOR=0"],
}) + select({
":arm_bf16_enabled": ["XNN_ENABLE_ARM_BF16=1"],
"//conditions:default": ["XNN_ENABLE_ARM_BF16=0"],
}) + select({
":arm_dotprod_enabled": ["XNN_ENABLE_ARM_DOTPROD=1"],
"//conditions:default": ["XNN_ENABLE_ARM_DOTPROD=0"],
}),
generic_deps = [
":scalar_amalgam_microkernels",
] + select({
":arm_fp16_scalar_enabled": [":fp16arith_amalgam_microkernels"],
"//conditions:default": [],
}) + select({
":arm_fp16_vector_enabled": [":neonfp16arith_amalgam_microkernels"],
"//conditions:default": [],
}) + select({
":arm_bf16_enabled": [":neonbf16_prod_microkernels"],
"//conditions:default": [],
}) + select({
":arm_dotprod_enabled": [":neondot_amalgam_microkernels"],
"//conditions:default": [],
}),
wasm_deps = [
":wasm_amalgam_microkernels",
":asm_microkernels",
],
wasmrelaxedsimd_deps = [
":wasm_amalgam_microkernels",
":asm_microkernels",
],
wasmsimd_deps = [
":wasm_amalgam_microkernels",
":asm_microkernels",
],
x86_deps = [
":sse2_amalgam_microkernels",
":ssse3_amalgam_microkernels",
":sse41_amalgam_microkernels",
":avx_amalgam_microkernels",
":f16c_amalgam_microkernels",
":xop_amalgam_microkernels",
":fma3_amalgam_microkernels",
":avx2_amalgam_microkernels",
":avx512f_amalgam_microkernels",
":avx512skx_amalgam_microkernels",
":avx512vbmi_amalgam_microkernels",
],
)
xnnpack_aggregate_library(
name = "bench_microkernels",
aarch32_deps = [
":armsimd32_bench_microkernels",
":neon_bench_microkernels",
":neonfp16_bench_microkernels",
":neonfma_bench_microkernels",
":neonv8_bench_microkernels",
":asm_microkernels",
],
aarch64_deps = [
":neon_bench_microkernels",
":neonfp16_bench_microkernels",
":neonfma_bench_microkernels",
":neonv8_bench_microkernels",
":asm_microkernels",
],
defines = select({
":arm_fp16_scalar_enabled": ["XNN_ENABLE_ARM_FP16_SCALAR=1"],
"//conditions:default": ["XNN_ENABLE_ARM_FP16_SCALAR=0"],
}) + select({
":arm_fp16_vector_enabled": ["XNN_ENABLE_ARM_FP16_VECTOR=1"],
"//conditions:default": ["XNN_ENABLE_ARM_FP16_VECTOR=0"],
}) + select({
":arm_bf16_enabled": ["XNN_ENABLE_ARM_BF16=1"],
"//conditions:default": ["XNN_ENABLE_ARM_BF16=0"],
}) + select({
":arm_dotprod_enabled": ["XNN_ENABLE_ARM_DOTPROD=1"],
"//conditions:default": ["XNN_ENABLE_ARM_DOTPROD=0"],
}) + select({
":riscv_vector_enabled": ["XNN_ENABLE_RISCV_VECTOR=1"],
"//conditions:default": ["XNN_ENABLE_RISCV_VECTOR=0"],
}),
generic_deps = [
":scalar_bench_microkernels",
] + select({
":arm_fp16_scalar_enabled": [":fp16arith_bench_microkernels"],
"//conditions:default": [],
}) + select({
":arm_fp16_vector_enabled": [":neonfp16arith_bench_microkernels"],
"//conditions:default": [],
}) + select({
":arm_bf16_enabled": [":neonbf16_bench_microkernels"],
"//conditions:default": [],
}) + select({
":arm_dotprod_enabled": [":neondot_bench_microkernels"],
"//conditions:default": [],
}) + select({
":riscv_vector_enabled": [":rvv_bench_microkernels"],
"//conditions:default": [],
}),
wasm_deps = [
":wasm_bench_microkernels",
":asm_microkernels",
],
wasmrelaxedsimd_deps = [
":wasm_bench_microkernels",
":asm_microkernels",
],
wasmsimd_deps = [
":wasm_bench_microkernels",
":asm_microkernels",
],
x86_deps = [
":sse2_bench_microkernels",
":ssse3_bench_microkernels",
":sse41_bench_microkernels",
":avx_bench_microkernels",
":f16c_bench_microkernels",
":xop_bench_microkernels",
":fma3_bench_microkernels",
":avx2_bench_microkernels",
":avx512f_bench_microkernels",
":avx512skx_bench_microkernels",
":avx512vbmi_bench_microkernels",
],
)
xnnpack_aggregate_library(
name = "prod_microkernels",
aarch32_deps = [
":armsimd32_prod_microkernels",
":neon_prod_microkernels",
":neonfp16_prod_microkernels",
":neonfma_prod_microkernels",
":neonv8_prod_microkernels",
":asm_microkernels",
],
aarch64_deps = [
":neon_prod_microkernels",
":neonfp16_prod_microkernels",
":neonfma_prod_microkernels",
":neonv8_prod_microkernels",
":asm_microkernels",
],
defines = select({
":arm_fp16_scalar_enabled": ["XNN_ENABLE_ARM_FP16_SCALAR=1"],
"//conditions:default": ["XNN_ENABLE_ARM_FP16_SCALAR=0"],
}) + select({
":arm_fp16_vector_enabled": ["XNN_ENABLE_ARM_FP16_VECTOR=1"],
"//conditions:default": ["XNN_ENABLE_ARM_FP16_VECTOR=0"],
}) + select({
":arm_bf16_enabled": ["XNN_ENABLE_ARM_BF16=1"],
"//conditions:default": ["XNN_ENABLE_ARM_BF16=0"],
}) + select({
":arm_dotprod_enabled": ["XNN_ENABLE_ARM_DOTPROD=1"],
"//conditions:default": ["XNN_ENABLE_ARM_DOTPROD=0"],
}),
generic_deps = [
":scalar_prod_microkernels",
] + select({
":arm_fp16_scalar_enabled": [":fp16arith_prod_microkernels"],
"//conditions:default": [],
}) + select({
":arm_fp16_vector_enabled": [":neonfp16arith_prod_microkernels"],
"//conditions:default": [],
}) + select({
":arm_bf16_enabled": [":neonbf16_prod_microkernels"],
"//conditions:default": [],
}) + select({
":arm_dotprod_enabled": [":neondot_prod_microkernels"],
"//conditions:default": [],
}),
wasm_deps = [
":wasm_prod_microkernels",
":asm_microkernels",
],
wasmrelaxedsimd_deps = [
":wasm_prod_microkernels",
":asm_microkernels",
],
wasmsimd_deps = [
":wasm_prod_microkernels",
":asm_microkernels",
],
x86_deps = [
":sse2_prod_microkernels",
":ssse3_prod_microkernels",
":sse41_prod_microkernels",
":avx_prod_microkernels",
":f16c_prod_microkernels",
":xop_prod_microkernels",
":fma3_prod_microkernels",
":avx2_prod_microkernels",
":avx512f_prod_microkernels",
":avx512skx_prod_microkernels",
":avx512vbmi_prod_microkernels",
],
)
xnnpack_aggregate_library(
name = "test_microkernels",
aarch32_deps = [
":armsimd32_test_microkernels",
":neon_test_microkernels",
":neonfp16_test_microkernels",
":neonfma_test_microkernels",
":neonv8_test_microkernels",
":asm_microkernels",
],
aarch64_deps = [
":neon_test_microkernels",
":neonfp16_test_microkernels",
":neonfma_test_microkernels",
":neonv8_test_microkernels",
":asm_microkernels",
],
defines = select({
":arm_fp16_scalar_enabled": ["XNN_ENABLE_ARM_FP16_SCALAR=1"],
"//conditions:default": ["XNN_ENABLE_ARM_FP16_SCALAR=0"],
}) + select({
":arm_fp16_vector_enabled": ["XNN_ENABLE_ARM_FP16_VECTOR=1"],
"//conditions:default": ["XNN_ENABLE_ARM_FP16_VECTOR=0"],
}) + select({
":arm_bf16_enabled": ["XNN_ENABLE_ARM_BF16=1"],
"//conditions:default": ["XNN_ENABLE_ARM_BF16=0"],
}) + select({
":arm_dotprod_enabled": ["XNN_ENABLE_ARM_DOTPROD=1"],
"//conditions:default": ["XNN_ENABLE_ARM_DOTPROD=0"],
}) + select({
":riscv_vector_enabled": ["XNN_ENABLE_RISCV_VECTOR=1"],
"//conditions:default": ["XNN_ENABLE_RISCV_VECTOR=0"],
}),
generic_deps = [
":scalar_test_microkernels",
] + select({
":arm_fp16_scalar_enabled": [":fp16arith_test_microkernels"],
"//conditions:default": [],
}) + select({
":arm_fp16_vector_enabled": [":neonfp16arith_test_microkernels"],
"//conditions:default": [],
}) + select({
":arm_bf16_enabled": [":neonbf16_test_microkernels"],
"//conditions:default": [],
}) + select({
":arm_dotprod_enabled": [":neondot_test_microkernels"],
"//conditions:default": [],
}) + select({
":riscv_vector_enabled": [":rvv_test_microkernels"],
"//conditions:default": [],
}),
wasm_deps = [
":wasm_test_microkernels",
":asm_microkernels",
],
wasmrelaxedsimd_deps = [
":wasm_test_microkernels",
":asm_microkernels",
],
wasmsimd_deps = [
":wasm_test_microkernels",
":asm_microkernels",
],
x86_deps = [
":sse2_test_microkernels",
":ssse3_test_microkernels",
":sse41_test_microkernels",
":avx_test_microkernels",
":f16c_test_microkernels",
":xop_test_microkernels",
":fma3_test_microkernels",
":avx2_test_microkernels",
":avx512f_test_microkernels",
":avx512skx_test_microkernels",
":avx512vbmi_test_microkernels",
],
)
xnnpack_cc_library(
name = "im2col",
srcs = ["src/im2col.c"],
hdrs = [
"src/xnnpack/im2col.h",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [":common"],
)
xnnpack_cc_library(
name = "indirection",
srcs = ["src/indirection.c"],
hdrs = ["src/xnnpack/indirection.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":operator_h",
":xnnpack_h",
"@FP16",
"@FXdiv",
],
)
xnnpack_cc_library(
name = "indirection_test_mode",
srcs = ["src/indirection.c"],
hdrs = ["src/xnnpack/indirection.h"],
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":operator_h",
"@FP16",
"@FXdiv",
],
)
xnnpack_cc_library(
name = "packing",
srcs = ["src/packing.c"],
hdrs = ["src/xnnpack/pack.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":operator_h",
":unaligned",
"@FP16",
],
)
xnnpack_cc_library(
name = "packing_test_mode",
srcs = ["src/packing.c"],
hdrs = ["src/xnnpack/pack.h"],
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":operator_h",
":unaligned",
"@FP16",
],
)
cc_library(
name = "enable_assembly",
defines = select({
":xnn_enable_assembly_explicit_true": ["XNN_ENABLE_ASSEMBLY=1"],
":xnn_enable_assembly_explicit_false": ["XNN_ENABLE_ASSEMBLY=0"],
"//conditions:default": ["XNN_ENABLE_ASSEMBLY=1"],
}),
)
cc_library(
name = "enable_sparse",
defines = select({
":xnn_enable_sparse_explicit_true": ["XNN_ENABLE_SPARSE=1"],
":xnn_enable_sparse_explicit_false": ["XNN_ENABLE_SPARSE=0"],
"//conditions:default": ["XNN_ENABLE_SPARSE=1"],
}),
)
cc_library(
name = "enable_jit",
defines = select({
":xnn_enable_jit_explicit_true": ["XNN_ENABLE_JIT=1"],
":xnn_enable_jit_explicit_false": ["XNN_ENABLE_JIT=0"],
"//conditions:default": ["XNN_ENABLE_JIT=0"],
}),
)
cc_library(
name = "enable_gemm_m_specialization",
defines = select({
":xnn_enable_gemm_m_specialization_explicit_true": ["XNN_ENABLE_GEMM_M_SPECIALIZATION=1"],
":xnn_enable_gemm_m_specialization_explicit_false": ["XNN_ENABLE_GEMM_M_SPECIALIZATION=0"],
"//conditions:default": ["XNN_ENABLE_GEMM_M_SPECIALIZATION=1"],
}),
)
cc_library(
name = "enable_dwconv_multipass",
defines = select({
":xnn_enable_dwconv_multipass_explicit_true": ["XNN_ENABLE_DWCONV_MULTIPASS=1"],
":xnn_enable_dwconv_multipass_explicit_false": ["XNN_ENABLE_DWCONV_MULTIPASS=0"],
"//conditions:default": ["XNN_ENABLE_DWCONV_MULTIPASS=0"],
}),
)
cc_library(
name = "platform_jit",
defines = select({
":xnn_platform_jit_explicit_true": ["XNN_PLATFORM_JIT=1"],
":xnn_platform_jit_explicit_false": ["XNN_PLATFORM_JIT=0"],
# A constant that is ignored and not used anywhere so that by default we set XNN_PLATFORM_JIT based on actual platform values.
"//conditions:default": ["XNN_IGNORED_PLATFORM_JIT=0"],
}),
)
xnnpack_cc_library(
name = "cache",
srcs = ["src/cache.c"],
hdrs = ["src/xnnpack/cache.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":allocator",
":common",
":logging",
":math",
":memory",
":mutex",
":xnnpack_h",
],
)
# Define a library with just the header to remove circular dependencies:
# operator-run (compute) <-> operators.
xnnpack_cc_library(
name = "compute_h",
hdrs = [
"src/xnnpack/compute.h",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":params",
":xnnpack_h",
],
)
xnnpack_cc_library(
name = "microkernel_utils",
srcs = ["src/microkernel-utils.c"],
hdrs = ["src/xnnpack/microkernel-utils.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
],
)
xnnpack_cc_library(
name = "post_operation",
srcs = [
"src/operators/post-operation.c",
],
hdrs = [
"src/xnnpack/post-operation.h",
],
deps = [
":allocator",
":microkernel_configs",
":microparams",
":params",
],
)
xnnpack_cc_library(
name = "post_operation_test_mode",
srcs = [
"src/operators/post-operation.c",
],
hdrs = [
"src/xnnpack/post-operation.h",
],
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
] + select({
":debug_build": [],
"//conditions:default": xnnpack_min_size_copts(),
}),
deps = [
":allocator",
":microkernel_configs_test_mode",
":microparams",
":params",
],
)
# Define a library with just the header to remove circular dependencies:
# indirection <-> operators.
xnnpack_cc_library(
name = "operator_h",
hdrs = [
"src/xnnpack/operator.h",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":allocator",
":cache",
":compute_h",
":microkernel_type",
":operator_type",
":params",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "operator_utils",
srcs = ["src/operator-utils.c"],
hdrs = ["src/xnnpack/operator-utils.h"],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":cache",
":common",
":math",
":operator_h",
":xnnpack_h",
],
)
xnnpack_cc_library(
name = "operators",
srcs = OPERATOR_SRCS,
hdrs = [
"src/xnnpack/compute.h",
"src/xnnpack/operator.h",
],
copts = select({
":debug_build": [],
"//conditions:default": xnnpack_min_size_copts(),
}) + select({
":xnn_enable_hmp_explicit_false": ["-DXNN_MAX_UARCH_TYPES=1"],
"//conditions:default": [],
}),
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":allocator",
":cache",
":common",
":enable_gemm_m_specialization",
":enable_jit",
":indirection",
":jit",
":logging",
":math",
":microkernel_configs",
":microkernel_type",
":microkernel_utils",
":microparams_init",
":normalization",
":operator_type",
":operator_utils",
":packing",
":params",
":post_operation",
":xnnpack_h",
"@FP16",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "operators_test_mode",
srcs = OPERATOR_SRCS,
hdrs = [
"src/xnnpack/compute.h",
"src/xnnpack/operator.h",
],
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
] + select({
":debug_build": [],
"//conditions:default": xnnpack_min_size_copts(),
}) + select({
":xnn_enable_hmp_explicit_false": ["-DXNN_MAX_UARCH_TYPES=1"],
"//conditions:default": [],
}),
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":allocator",
":cache",
":common",
":enable_gemm_m_specialization",
":enable_jit",
":indirection_test_mode",
":jit_test_mode",
":logging",
":math",
":microkernel_configs_test_mode",
":microkernel_type",
":microkernel_utils",
":microparams_init",
":normalization_test_mode",
":operator_utils",
":packing_test_mode",
":params",
":post_operation_test_mode",
":xnnpack_h",
"@FP16",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "jit",
srcs = [
"src/jit/aarch32-assembler.cc",
"src/jit/aarch64-assembler.cc",
"src/jit/assembler.cc",
"src/jit/wasm-assembler.cc",
],
hdrs = [
"src/xnnpack/aarch32-assembler.h",
"src/xnnpack/aarch64-assembler.h",
"src/xnnpack/array-helpers.h",
"src/xnnpack/assembler.h",
"src/xnnpack/leb128.h",
"src/xnnpack/wasm-assembler.h",
],
aarch32_srcs = AARCH32_JIT_MICROKERNEL_SRCS,
aarch64_srcs = AARCH64_JIT_MICROKERNEL_SRCS,
linkopts = select({
"xnn_enable_jit_explicit_true_on_emscripten": WASM_JIT_LINKOPTS,
"//conditions:default": [],
}),
msvc_copts = xnnpack_msvc_std_copts(),
wasm_srcs = JIT_WASM32_SRCS,
wasmrelaxedsimd_srcs = JIT_WASMRELAXEDSIMD32_SRCS,
wasmsimd_srcs = JIT_WASMSIMD32_SRCS,
deps = [
":common",
":logging",
":math",
":memory",
":microkernels_h",
":microparams",
":post_operation",
":xnnpack_h",
],
)
xnnpack_cc_library(
name = "jit_test_mode",
srcs = [
"src/jit/aarch32-assembler.cc",
"src/jit/aarch64-assembler.cc",
"src/jit/assembler.cc",
"src/jit/wasm-assembler.cc",
],
hdrs = [
"src/xnnpack/aarch32-assembler.h",
"src/xnnpack/aarch64-assembler.h",
"src/xnnpack/array-helpers.h",
"src/xnnpack/assembler.h",
"src/xnnpack/leb128.h",
"src/xnnpack/wasm-assembler.h",
],
aarch32_srcs = AARCH32_JIT_MICROKERNEL_SRCS,
aarch64_srcs = AARCH64_JIT_MICROKERNEL_SRCS,
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
linkopts = select({
"emscripten": WASM_JIT_LINKOPTS,
"//conditions:default": [],
}),
msvc_copts = xnnpack_msvc_std_copts(),
wasm_srcs = JIT_WASM32_SRCS,
wasmrelaxedsimd_srcs = JIT_WASMRELAXEDSIMD32_SRCS,
wasmsimd_srcs = JIT_WASMSIMD32_SRCS,
deps = [
":common",
":logging",
":math",
":memory",
":microkernels_h",
":microparams",
":post_operation_test_mode",
":xnnpack_h",
],
)
xnnpack_cc_library(
name = "subgraph",
srcs = SUBGRAPH_SRCS,
hdrs = [
"src/xnnpack/memory-planner.h",
"src/xnnpack/subgraph.h",
"src/xnnpack/subgraph-validation.h",
],
defines = select({
":xnn_enable_memopt_explicit_true": ["XNN_ENABLE_MEMOPT=1"],
":xnn_enable_memopt_explicit_false": ["XNN_ENABLE_MEMOPT=0"],
"//conditions:default": ["XNN_ENABLE_MEMOPT=1"],
}),
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":allocator",
":cache",
":common",
":enable_jit",
":enable_sparse",
":logging",
":math",
":node_type",
":operators",
":params",
":requantization",
":xnnpack_h",
"@FP16",
],
)
xnnpack_cc_library(
name = "subgraph_test_mode",
srcs = SUBGRAPH_SRCS,
hdrs = [
"src/xnnpack/memory-planner.h",
"src/xnnpack/subgraph.h",
"src/xnnpack/subgraph-validation.h",
],
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
defines = select({
":xnn_enable_memopt_explicit_true": ["XNN_ENABLE_MEMOPT=1"],
":xnn_enable_memopt_explicit_false": ["XNN_ENABLE_MEMOPT=0"],
"//conditions:default": ["XNN_ENABLE_MEMOPT=1"],
}),
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":allocator",
":cache",
":common",
":enable_jit",
":enable_sparse",
":logging",
":math",
":node_type",
":operators_test_mode",
":params",
":requantization",
":xnnpack_h",
"@FP16",
],
)
xnnpack_cc_library(
name = "mutex",
srcs = [
"src/mutex.c",
],
hdrs = [
"src/xnnpack/mutex.h",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":logging",
":xnnpack_h",
],
)
xnnpack_cc_library(
name = "mutex_test_mode",
srcs = [
"src/mutex.c",
],
hdrs = [
"src/xnnpack/mutex.h",
],
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":logging",
":xnnpack_h",
],
)
xnnpack_cc_library(
name = "normalization",
srcs = ["src/normalization.c"],
hdrs = [
"src/xnnpack/normalization.h",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":common",
":math",
":xnnpack_h",
],
)
xnnpack_cc_library(
name = "normalization_test_mode",
srcs = ["src/normalization.c"],
hdrs = ["src/xnnpack/normalization.h"],
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
],
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
deps = [
":math",
":xnnpack_h",
],
)
xnnpack_cc_library(
name = "XNNPACK",
srcs = [
"src/init.c",
],
hdrs = ["include/xnnpack.h"],
copts = select({
":debug_build": [],
"//conditions:default": xnnpack_min_size_copts(),
}) + select({
":xnn_enable_hmp_explicit_false": ["-DXNN_MAX_UARCH_TYPES=1"],
"//conditions:default": [],
}),
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
visibility = xnnpack_visibility(),
deps = [
":allocator",
":common",
":hardware_config",
":logging",
":math",
":microkernels_h",
":microparams",
":microparams_init",
":normalization",
":operators",
":params",
":prod_microkernels",
":subgraph",
] + select({
":emscripten": [],
"//conditions:default": ["@cpuinfo"],
}),
)
xnnpack_cc_library(
name = "XNNPACK_test_mode",
srcs = [
"src/init.c",
],
hdrs = ["include/xnnpack.h"],
copts = [
"-UNDEBUG",
"-DXNN_TEST_MODE=1",
] + select({
":debug_build": [],
"//conditions:default": xnnpack_min_size_copts(),
}) + select({
":xnn_enable_hmp_explicit_false": ["-DXNN_MAX_UARCH_TYPES=1"],
"//conditions:default": [],
}),
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
visibility = xnnpack_visibility(),
deps = [
":allocator",
":common",
":hardware_config_test_mode",
":logging",
":math",
":microkernels_h",
":microparams",
":microparams_init",
":operators_test_mode",
":params",
":subgraph_test_mode",
":test_microkernels",
] + select({
":emscripten": [],
"//conditions:default": ["@cpuinfo"],
}),
)
# Specialized XNNPACK version for TensorFlow Lite. Excludes operators currently
# not used by the TensorFlow Lite XNNPACK delegate to minimize code size.
xnnpack_cc_library(
name = "xnnpack_for_tflite",
srcs = [
"src/init.c",
],
hdrs = ["include/xnnpack.h"],
copts = select({
":debug_build": [],
"//conditions:default": xnnpack_min_size_copts(),
}) + select({
":xnn_enable_hmp_explicit_false": ["-DXNN_MAX_UARCH_TYPES=1"],
"//conditions:default": [],
}),
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
visibility = xnnpack_visibility(),
deps = [
":allocator",
":amalgam_microkernels",
":common",
":logging",
":math",
":microkernels_h",
":microparams",
":microparams_init",
":operators",
":params",
":subgraph",
] + select({
":emscripten": [],
"//conditions:default": [
"@cpuinfo",
"@pthreadpool",
],
}),
)
# Specialized XNNPACK version for TensorFlow.js. Excludes operators currently
# not used by the TensorFlow.js WebAssembly backend to minimize code size.
xnnpack_cc_library(
name = "xnnpack_for_tfjs",
srcs = [
"src/init.c",
],
hdrs = ["include/xnnpack.h"],
copts = select({
":debug_build": [],
"//conditions:default": xnnpack_min_size_copts(),
}) + select({
":xnn_enable_hmp_explicit_false": ["-DXNN_MAX_UARCH_TYPES=1"],
"//conditions:default": [],
}),
gcc_copts = xnnpack_gcc_std_copts(),
msvc_copts = xnnpack_msvc_std_copts(),
visibility = xnnpack_visibility(),
deps = [
":allocator",
":common",
":logging",
":math",
":microkernels_h",
":microparams",
":microparams_init",
":operators",
":params",
":prod_microkernels",
] + select({
":emscripten": [],
"//conditions:default": ["@cpuinfo"],
}),
)
xnnpack_cc_library(
name = "bench_utils",
srcs = ["bench/utils.cc"],
hdrs = ["bench/utils.h"],
deps = [
":XNNPACK",
":allocator",
":common",
":params",
"@com_google_benchmark//:benchmark",
"@cpuinfo",
],
)
######################### Benchmarks for micro-kernels #########################
xnnpack_benchmark(
name = "f32_vcmul_bench",
srcs = [
"bench/f32-vcmul.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qs8_dwconv_bench",
srcs = [
"bench/dwconv.h",
"bench/qs8-dwconv.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":indirection",
":microkernel_utils",
":operators",
],
)
xnnpack_benchmark(
name = "qs8_f32_vcvt_bench",
srcs = [
"bench/qs8-f32-vcvt.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qs8_gemm_bench",
srcs = [
"bench/gemm.h",
"bench/qs8-gemm.cc",
],
copts = xnnpack_optional_ruy_copts() + xnnpack_optional_gemmlowp_copts(),
deps = MICROKERNEL_BENCHMARK_DEPS + [
":enable_jit",
":math",
] + xnnpack_optional_ruy_deps() + xnnpack_optional_gemmlowp_deps(),
)
xnnpack_benchmark(
name = "qs8_requantization_bench",
srcs = [
"bench/qs8-requantization.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [":requantization_stubs"],
)
xnnpack_benchmark(
name = "qs8_vadd_bench",
srcs = [
"bench/qs8-vadd.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qs8_vaddc_bench",
srcs = [
"bench/qs8-vaddc.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qs8_vcvt_bench",
srcs = [
"bench/qs8-vcvt.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qs16_qs8_vcvt_bench",
srcs = [
"bench/qs16-qs8-vcvt.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qs8_vhswish_bench",
srcs = [
"bench/qs8-vhswish.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qs8_vlrelu_bench",
srcs = [
"bench/qs8-vlrelu.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qs8_vmul_bench",
srcs = [
"bench/qs8-vmul.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qs8_vmulc_bench",
srcs = [
"bench/qs8-vmulc.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qu8_f32_vcvt_bench",
srcs = [
"bench/qu8-f32-vcvt.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qu8_gemm_bench",
srcs = [
"bench/gemm.h",
"bench/qu8-gemm.cc",
],
copts = xnnpack_optional_ruy_copts() + xnnpack_optional_gemmlowp_copts(),
deps = MICROKERNEL_BENCHMARK_DEPS + [
":math",
] + xnnpack_optional_ruy_deps() + xnnpack_optional_gemmlowp_deps(),
)
xnnpack_benchmark(
name = "qu8_requantization_bench",
srcs = [
"bench/qu8-requantization.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [":requantization_stubs"],
)
xnnpack_benchmark(
name = "qu8_vadd_bench",
srcs = [
"bench/qu8-vadd.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qu8_vaddc_bench",
srcs = [
"bench/qu8-vaddc.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qu8_vcvt_bench",
srcs = [
"bench/qu8-vcvt.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qu8_vhswish_bench",
srcs = [
"bench/qu8-vhswish.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qu8_vlrelu_bench",
srcs = [
"bench/qu8-vlrelu.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qu8_vmul_bench",
srcs = [
"bench/qu8-vmul.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "qu8_vmulc_bench",
srcs = [
"bench/qu8-vmulc.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "bf16_gemm_bench",
srcs = [
"bench/bf16-gemm.cc",
"bench/gemm.h",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":math",
],
)
xnnpack_benchmark(
name = "f16_f32acc_igemm_bench",
srcs = [
"bench/conv.h",
"bench/f16-f32acc-igemm.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":indirection",
":operators",
],
)
xnnpack_benchmark(
name = "f16_igemm_bench",
srcs = [
"bench/conv.h",
"bench/f16-igemm.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":indirection",
":operators",
],
)
xnnpack_benchmark(
name = "f16_f32acc_gemm_bench",
srcs = [
"bench/f16-f32acc-gemm.cc",
"bench/gemm.h",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":math",
],
)
xnnpack_benchmark(
name = "f16_gemm_bench",
srcs = [
"bench/f16-gemm.cc",
"bench/gemm.h",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":math",
],
)
xnnpack_benchmark(
name = "f16_raddstoreexpminusmax_bench",
srcs = [
"bench/f16-raddstoreexpminusmax.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f16_rsum_bench",
srcs = [
"bench/f16-rsum.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f16_f32acc_rsum_bench",
srcs = [
"bench/f16-f32acc-rsum.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f16_spmm_bench",
srcs = [
"bench/f16-spmm.cc",
"bench/spmm.h",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f16_vsigmoid_bench",
srcs = [
"bench/f16-vsigmoid.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f16_vtanh_bench",
srcs = [
"bench/f16-vtanh.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f16_f32_vcvt_bench",
srcs = [
"bench/f16-f32-vcvt.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_igemm_bench",
srcs = [
"bench/conv.h",
"bench/f32-igemm.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":indirection",
":operators",
],
)
xnnpack_benchmark(
name = "f32_conv_hwc_bench",
srcs = [
"bench/dconv.h",
"bench/f32-conv-hwc.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
],
)
xnnpack_benchmark(
name = "f16_conv_hwc2chw_bench",
srcs = [
"bench/dconv.h",
"bench/f16-conv-hwc2chw.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
],
)
xnnpack_benchmark(
name = "f16_gavgpool_cw_bench",
srcs = [
"bench/f16-gavgpool-cw.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_gavgpool_cw_bench",
srcs = [
"bench/f32-gavgpool-cw.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_conv_hwc2chw_bench",
srcs = [
"bench/dconv.h",
"bench/f32-conv-hwc2chw.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
],
)
xnnpack_benchmark(
name = "f16_dwconv_bench",
srcs = [
"bench/dwconv.h",
"bench/f16-dwconv.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":indirection",
":microkernel_utils",
":operators",
],
)
xnnpack_benchmark(
name = "f32_dwconv_bench",
srcs = [
"bench/dwconv.h",
"bench/f32-dwconv.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":indirection",
":microkernel_utils",
":operators",
],
)
xnnpack_benchmark(
name = "f32_dwconv2d_chw_bench",
srcs = [
"bench/dwconv.h",
"bench/f32-dwconv2d-chw.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":indirection",
":operators",
],
)
xnnpack_benchmark(
name = "f16_dwconv2d_chw_bench",
srcs = [
"bench/dwconv.h",
"bench/f16-dwconv2d-chw.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":indirection",
":operators",
],
)
xnnpack_benchmark(
name = "f32_f16_vcvt_bench",
srcs = [
"bench/f32-f16-vcvt.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "xx_transposev_bench",
srcs = [
"bench/xx-transposev.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "x8_transpose_bench",
srcs = [
"bench/x8-transpose.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "x16_transpose_bench",
srcs = [
"bench/x16-transpose.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "x24_transpose_bench",
srcs = [
"bench/x24-transpose.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "x32_transpose_bench",
srcs = [
"bench/x32-transpose.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "x64_transpose_bench",
srcs = [
"bench/x64-transpose.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_bgemm_bench",
srcs = [
"bench/bgemm.h",
"bench/f32-bgemm.cc",
],
copts = xnnpack_optional_ruy_copts(),
deps = MICROKERNEL_BENCHMARK_DEPS + [
":allocator",
":math",
] + xnnpack_optional_ruy_deps(),
)
xnnpack_benchmark(
name = "f32_gemm_bench",
srcs = [
"bench/f32-gemm.cc",
"bench/gemm.h",
],
copts = xnnpack_optional_ruy_copts(),
deps = MICROKERNEL_BENCHMARK_DEPS + [
":allocator",
":math",
] + xnnpack_optional_ruy_deps(),
)
xnnpack_benchmark(
name = "f32_qc4w_gemm_bench",
srcs = [
"bench/f32-qc4w-gemm.cc",
"bench/gemm.h",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":allocator",
":math",
],
)
xnnpack_benchmark(
name = "f32_qc8w_gemm_bench",
srcs = [
"bench/f32-qc8w-gemm.cc",
"bench/gemm.h",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":allocator",
":math",
],
)
xnnpack_benchmark(
name = "f32_qs8_vcvt_bench",
srcs = [
"bench/f32-qs8-vcvt.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_qu8_vcvt_bench",
srcs = [
"bench/f32-qu8-vcvt.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_raddexpminusmax_bench",
srcs = [
"bench/f32-raddexpminusmax.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_raddextexp_bench",
srcs = [
"bench/f32-raddextexp.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_raddstoreexpminusmax_bench",
srcs = [
"bench/f32-raddstoreexpminusmax.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_rmax_bench",
srcs = [
"bench/f32-rmax.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_rminmax_bench",
srcs = [
"bench/f32-rminmax.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_rmin_bench",
srcs = [
"bench/f32-rmin.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_rsum_bench",
srcs = [
"bench/f32-rsum.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_spmm_bench",
srcs = [
"bench/f32-spmm.cc",
"bench/spmm.h",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_softmax_bench",
srcs = [
"bench/f32-softmax.cc",
],
copts = xnnpack_optional_dnnl_copts(),
deps = MICROKERNEL_BENCHMARK_DEPS + xnnpack_optional_dnnl_deps(),
)
xnnpack_benchmark(
name = "f16_velu_bench",
srcs = [
"bench/f16-velu.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_velu_bench",
srcs = [
"bench/f32-velu.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_vhswish_bench",
srcs = [
"bench/f32-vhswish.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_vlrelu_bench",
srcs = [
"bench/f32-vlrelu.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_vrelu_bench",
srcs = [
"bench/f32-vrelu.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [":jit_test_mode"],
)
xnnpack_benchmark(
name = "f32_vscaleexpminusmax_bench",
srcs = [
"bench/f32-vscaleexpminusmax.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_vscaleextexp_bench",
srcs = [
"bench/f32-vscaleextexp.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_vsigmoid_bench",
srcs = [
"bench/f32-vsigmoid.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f16_vsqrt_bench",
srcs = [
"bench/f16-vsqrt.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_vsqrt_bench",
srcs = [
"bench/f32-vsqrt.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_vtanh_bench",
srcs = [
"bench/f32-vtanh.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "f32_im2col_gemm_bench",
srcs = [
"bench/conv.h",
"bench/f32-im2col-gemm.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":im2col",
":math",
],
)
xnnpack_benchmark(
name = "rounding_bench",
srcs = [
"bench/rounding.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "s16_rmaxabs_bench",
srcs = [
"bench/s16-rmaxabs.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "s16_window_bench",
srcs = [
"bench/s16-window.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "u32_filterbank_accumulate_bench",
srcs = [
"bench/u32-filterbank-accumulate.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "u32_filterbank_subtract_bench",
srcs = [
"bench/u32-filterbank-subtract.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "u32_vlog_bench",
srcs = [
"bench/u32-vlog.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "u64_u32_vsqrtshift_bench",
srcs = [
"bench/u64-u32-vsqrtshift.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "i16_vlshift_bench",
srcs = [
"bench/i16-vlshift.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "cs16_vsquareabs_bench",
srcs = [
"bench/cs16-vsquareabs.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "cs16_bfly4_bench",
srcs = [
"bench/cs16-bfly4.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "cs16_fftr_bench",
srcs = [
"bench/cs16-fftr.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "x8_lut_bench",
srcs = [
"bench/x8-lut.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "x8_packw_bench",
srcs = [
"bench/bgemm.h",
"bench/x8-packw.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":allocator",
":math",
],
)
xnnpack_benchmark(
name = "x16_packw_bench",
srcs = [
"bench/bgemm.h",
"bench/x16-packw.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":allocator",
":math",
],
)
xnnpack_benchmark(
name = "x32_packw_bench",
srcs = [
"bench/bgemm.h",
"bench/x32-packw.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":allocator",
":math",
],
)
########################### Benchmarks for operators ###########################
xnnpack_benchmark(
name = "abs_bench",
srcs = ["bench/abs.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "average_pooling_bench",
srcs = ["bench/average-pooling.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "bankers_rounding_bench",
srcs = ["bench/bankers-rounding.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "batch_matrix_multiply_bench",
srcs = ["bench/batch-matrix-multiply.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "ceiling_bench",
srcs = ["bench/ceiling.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "channel_shuffle_bench",
srcs = ["bench/channel-shuffle.cc"],
deps = OPERATOR_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "convert_bench",
srcs = [
"bench/convert.cc",
],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "convolution_bench",
srcs = ["bench/convolution.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "deconvolution_bench",
srcs = ["bench/deconvolution.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "elu_bench",
srcs = ["bench/elu.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "floor_bench",
srcs = ["bench/floor.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "fully_connected_bench",
srcs = ["bench/fully-connected.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "global_average_pooling_bench",
srcs = ["bench/global-average-pooling.cc"],
deps = OPERATOR_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "hardswish_bench",
srcs = ["bench/hardswish.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "leaky_relu_bench",
srcs = ["bench/leaky-relu.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "max_pooling_bench",
srcs = ["bench/max-pooling.cc"],
deps = OPERATOR_BENCHMARK_DEPS,
)
xnnpack_benchmark(
name = "negate_bench",
srcs = ["bench/negate.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "prelu_bench",
srcs = ["bench/prelu.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "sigmoid_bench",
srcs = ["bench/sigmoid.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "softmax_bench",
srcs = ["bench/softmax.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "square_bench",
srcs = ["bench/square.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "square_root_bench",
srcs = ["bench/square-root.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "tanh_bench",
srcs = ["bench/tanh.cc"],
copts = xnnpack_optional_tflite_copts(),
tags = ["nowin32"],
deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
)
xnnpack_benchmark(
name = "truncation_bench",
srcs = ["bench/truncation.cc"],
deps = OPERATOR_BENCHMARK_DEPS,
)
############################# End-to-end benchmarks ############################
xnnpack_cc_library(
name = "fp16_mobilenet_v1",
srcs = ["models/fp16-mobilenet-v1.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@FP16",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp32_mobilenet_v1",
srcs = ["models/fp32-mobilenet-v1.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp16_sparse_mobilenet_v1",
srcs = ["models/fp16-sparse-mobilenet-v1.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp32_sparse_mobilenet_v1",
srcs = ["models/fp32-sparse-mobilenet-v1.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "qs8_qc8w_mobilenet_v1",
srcs = ["models/qs8-qc8w-mobilenet-v1.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "qs8_qc8w_mobilenet_v2",
srcs = ["models/qs8-qc8w-mobilenet-v2.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "qs8_mobilenet_v1",
srcs = ["models/qs8-mobilenet-v1.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "qs8_mobilenet_v2",
srcs = ["models/qs8-mobilenet-v2.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "qu8_mobilenet_v1",
srcs = ["models/qu8-mobilenet-v1.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "qu8_mobilenet_v2",
srcs = ["models/qu8-mobilenet-v2.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp16_mobilenet_v2",
srcs = ["models/fp16-mobilenet-v2.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@FP16",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp32_mobilenet_v2",
srcs = ["models/fp32-mobilenet-v2.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp16_sparse_mobilenet_v2",
srcs = ["models/fp16-sparse-mobilenet-v2.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp32_sparse_mobilenet_v2",
srcs = ["models/fp32-sparse-mobilenet-v2.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp16_mobilenet_v3_large",
srcs = ["models/fp16-mobilenet-v3-large.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@FP16",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp32_mobilenet_v3_large",
srcs = ["models/fp32-mobilenet-v3-large.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp16_sparse_mobilenet_v3_large",
srcs = ["models/fp16-sparse-mobilenet-v3-large.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp32_sparse_mobilenet_v3_large",
srcs = ["models/fp32-sparse-mobilenet-v3-large.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp16_mobilenet_v3_small",
srcs = ["models/fp16-mobilenet-v3-small.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@FP16",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp32_mobilenet_v3_small",
srcs = ["models/fp32-mobilenet-v3-small.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp32_mobilenet_v3_small_fused",
srcs = ["models/fp32-mobilenet-v3-small-fused.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
":post_operation",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp16_sparse_mobilenet_v3_small",
srcs = ["models/fp16-sparse-mobilenet-v3-small.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_cc_library(
name = "fp32_sparse_mobilenet_v3_small",
srcs = ["models/fp32-sparse-mobilenet-v3-small.cc"],
hdrs = ["src/xnnpack/models.h"],
copts = xnnpack_std_cxxopts(),
deps = [
":XNNPACK",
":cache",
"@pthreadpool",
],
)
xnnpack_benchmark(
name = "f16_dwconv_e2e_bench",
srcs = [
"bench/end2end.h",
"bench/f16-dwconv-e2e.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":XNNPACK",
":fp16_mobilenet_v1",
":fp16_mobilenet_v2",
":fp16_mobilenet_v3_large",
":fp16_mobilenet_v3_small",
],
)
xnnpack_benchmark(
name = "f16_gemm_e2e_bench",
srcs = [
"bench/end2end.h",
"bench/f16-gemm-e2e.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":XNNPACK",
":fp16_mobilenet_v1",
":fp16_mobilenet_v2",
":fp16_mobilenet_v3_large",
":fp16_mobilenet_v3_small",
],
)
xnnpack_benchmark(
name = "f32_dwconv_e2e_bench",
srcs = [
"bench/end2end.h",
"bench/f32-dwconv-e2e.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":XNNPACK",
":fp32_mobilenet_v1",
":fp32_mobilenet_v2",
":fp32_mobilenet_v3_large",
":fp32_mobilenet_v3_small",
],
)
xnnpack_benchmark(
name = "f32_gemm_e2e_bench",
srcs = [
"bench/end2end.h",
"bench/f32-gemm-e2e.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":XNNPACK",
":fp32_mobilenet_v1",
":fp32_mobilenet_v2",
":fp32_mobilenet_v3_large",
":fp32_mobilenet_v3_small",
],
)
xnnpack_benchmark(
name = "qs8_dwconv_e2e_bench",
srcs = [
"bench/end2end.h",
"bench/qs8-dwconv-e2e.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":XNNPACK",
":qs8_mobilenet_v1",
":qs8_mobilenet_v2",
],
)
xnnpack_benchmark(
name = "qs8_gemm_e2e_bench",
srcs = [
"bench/end2end.h",
"bench/qs8-gemm-e2e.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":XNNPACK",
":qs8_mobilenet_v1",
":qs8_mobilenet_v2",
],
)
xnnpack_benchmark(
name = "qu8_gemm_e2e_bench",
srcs = [
"bench/end2end.h",
"bench/qu8-gemm-e2e.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":XNNPACK",
":qu8_mobilenet_v1",
":qu8_mobilenet_v2",
],
)
xnnpack_benchmark(
name = "qu8_dwconv_e2e_bench",
srcs = [
"bench/end2end.h",
"bench/qu8-dwconv-e2e.cc",
],
deps = MICROKERNEL_BENCHMARK_DEPS + [
":XNNPACK",
":qu8_mobilenet_v1",
":qu8_mobilenet_v2",
],
)
xnnpack_benchmark(
name = "end2end_bench",
srcs = ["bench/end2end.cc"],
deps = [
":XNNPACK",
":bench_utils",
":fp16_mobilenet_v1",
":fp16_mobilenet_v2",
":fp16_mobilenet_v3_large",
":fp16_mobilenet_v3_small",
":fp16_sparse_mobilenet_v1",
":fp16_sparse_mobilenet_v2",
":fp16_sparse_mobilenet_v3_large",
":fp16_sparse_mobilenet_v3_small",
":fp32_mobilenet_v1",
":fp32_mobilenet_v2",
":fp32_mobilenet_v3_large",
":fp32_mobilenet_v3_small",
":fp32_mobilenet_v3_small_fused",
":fp32_sparse_mobilenet_v1",
":fp32_sparse_mobilenet_v2",
":fp32_sparse_mobilenet_v3_large",
":fp32_sparse_mobilenet_v3_small",
":qs8_mobilenet_v1",
":qs8_mobilenet_v2",
":qs8_qc8w_mobilenet_v1",
":qs8_qc8w_mobilenet_v2",
":qu8_mobilenet_v1",
":qu8_mobilenet_v2",
"@pthreadpool",
],
)
#################### Accuracy evaluation for math functions ####################
xnnpack_benchmark(
name = "f16_exp_ulp_eval",
srcs = [
"eval/f16-exp-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_benchmark(
name = "f16_expminus_ulp_eval",
srcs = [
"eval/f16-expminus-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_benchmark(
name = "f16_expm1minus_ulp_eval",
srcs = [
"eval/f16-expm1minus-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_benchmark(
name = "f16_sigmoid_ulp_eval",
srcs = [
"eval/f16-sigmoid-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_benchmark(
name = "f16_sqrt_ulp_eval",
srcs = [
"eval/f16-sqrt-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_benchmark(
name = "f16_tanh_ulp_eval",
srcs = [
"eval/f16-tanh-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_benchmark(
name = "f32_exp_ulp_eval",
srcs = [
"eval/f32-exp-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_benchmark(
name = "f32_expminus_ulp_eval",
srcs = [
"eval/f32-expminus-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_benchmark(
name = "f32_expm1minus_ulp_eval",
srcs = [
"eval/f32-expm1minus-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_benchmark(
name = "f32_extexp_ulp_eval",
srcs = [
"eval/f32-extexp-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_benchmark(
name = "f32_sigmoid_ulp_eval",
srcs = [
"eval/f32-sigmoid-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_benchmark(
name = "f32_sqrt_ulp_eval",
srcs = [
"eval/f32-sqrt-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_benchmark(
name = "f32_tanh_ulp_eval",
srcs = [
"eval/f32-tanh-ulp.cc",
],
deps = ACCURACY_EVAL_DEPS,
)
############################### Other benchmarks ###############################
xnnpack_benchmark(
name = "jit_bench",
srcs = ["bench/jit.cc"],
deps = OPERATOR_BENCHMARK_DEPS + [
":memory",
":microkernels_h",
":microparams",
],
)
################### Accuracy verification for math functions ##################
xnnpack_cc_library(
name = "math_evaluation_tester",
testonly = True,
srcs = ["eval/math-evaluation-tester.cc"],
hdrs = ["eval/math-evaluation-tester.h"],
deps = [
":aligned_allocator",
":common",
":math",
":math_stubs",
"@FP16",
"@pthreadpool",
"@com_google_googletest//:gtest_main",
],
)
xnnpack_unit_test(
name = "f16_sqrt_eval",
srcs = [
"eval/f16-sqrt.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_unit_test(
name = "f16_tanh_eval",
srcs = [
"eval/f16-tanh.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS + [
":math_evaluation_tester",
],
)
xnnpack_unit_test(
name = "f16_f32_cvt_eval",
srcs = [
"eval/f16-f32-cvt.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_unit_test(
name = "f32_f16_cvt_eval",
srcs = [
"eval/f32-f16-cvt.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_unit_test(
name = "f32_qs8_cvt_eval",
srcs = [
"eval/f32-qs8-cvt.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_unit_test(
name = "f32_qu8_cvt_eval",
srcs = [
"eval/f32-qu8-cvt.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_unit_test(
name = "f32_exp_eval",
srcs = [
"eval/f32-exp.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS + [
":math_evaluation_tester",
],
)
xnnpack_unit_test(
name = "f32_expm1minus_eval",
srcs = [
"eval/f32-expm1minus.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS + [
":math_evaluation_tester",
],
)
xnnpack_unit_test(
name = "f32_expminus_eval",
srcs = [
"eval/f32-expminus.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS + [
":math_evaluation_tester",
],
)
xnnpack_unit_test(
name = "f32_roundne_eval",
srcs = [
"eval/f32-roundne.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_unit_test(
name = "f32_roundd_eval",
srcs = [
"eval/f32-roundd.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_unit_test(
name = "f32_roundu_eval",
srcs = [
"eval/f32-roundu.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_unit_test(
name = "f32_roundz_eval",
srcs = [
"eval/f32-roundz.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_unit_test(
name = "f32_tanh_eval",
srcs = [
"eval/f32-tanh.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS + [
":math_evaluation_tester",
],
)
xnnpack_unit_test(
name = "u32_sqrt_eval",
srcs = [
"eval/u32-sqrt.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS,
)
xnnpack_unit_test(
name = "u64_sqrt_eval",
srcs = [
"eval/u64-sqrt.cc",
],
automatic = False,
deps = ACCURACY_EVAL_DEPS,
)
######################### Unit tests for micro-kernels #########################
xnnpack_cc_library(
name = "gemm_microkernel_tester",
testonly = True,
srcs = ["test/gemm-microkernel-tester.cc"],
hdrs = ["test/gemm-microkernel-tester.h"],
deps = MICROKERNEL_TEST_DEPS + [
":XNNPACK_test_mode",
":packing",
"@com_google_googletest//:gtest_main",
],
)
xnnpack_unit_test(
name = "bf16_gemm_minmax_test",
srcs = [
"test/bf16-gemm-minmax.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f16_f32_vcvt_test",
srcs = [
"test/f16-f32-vcvt.cc",
"test/vcvt-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_avgpool_minmax_test",
srcs = [
"test/avgpool-microkernel-tester.h",
"test/f16-avgpool-minmax.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_dwconv_minmax_multipass_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/f16-dwconv-minmax-multipass.cc",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "f16_dwconv_minmax_unipass_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/f16-dwconv-minmax-unipass.cc",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "f16_gavgpool_cw_test",
srcs = [
"test/f16-gavgpool-cw.cc",
"test/gavgpool-cw-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_gavgpool_minmax_test",
srcs = [
"test/f16-gavgpool-minmax.cc",
"test/gavgpool-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_f32acc_gemm_minmax_test",
srcs = [
"test/f16-f32acc-gemm-minmax.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f16_gemm_jit_test",
srcs = [
"test/f16-gemm-jit.cc",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f16_gemm_minmax_test",
srcs = [
"test/f16-gemm-minmax.cc",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f16_ibilinear_test",
srcs = [
"test/f16-ibilinear.cc",
"test/ibilinear-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_ibilinear_chw_test",
srcs = [
"test/f16-ibilinear-chw.cc",
"test/ibilinear-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_igemm_jit_test",
srcs = [
"test/f16-igemm-jit.cc",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f16_f32acc_igemm_minmax_test",
srcs = [
"test/f16-f32acc-igemm-minmax.cc",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f16_igemm_minmax_test",
srcs = [
"test/f16-igemm-minmax.cc",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f16_maxpool_minmax_test",
srcs = [
"test/f16-maxpool-minmax.cc",
"test/maxpool-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_pavgpool_minmax_test",
srcs = [
"test/avgpool-microkernel-tester.h",
"test/f16-pavgpool-minmax.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_prelu_test",
srcs = [
"test/f16-prelu.cc",
"test/prelu-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_spmm_minmax_test",
srcs = [
"test/f16-spmm-minmax.cc",
"test/spmm-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vabs_test",
srcs = [
"test/f16-vabs.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vadd_minmax_test",
srcs = [
"test/f16-vadd-minmax.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vaddc_minmax_test",
srcs = [
"test/f16-vaddc-minmax.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vclamp_test",
srcs = [
"test/f16-vclamp.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vdiv_minmax_test",
srcs = [
"test/f16-vdiv-minmax.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vdivc_minmax_test",
srcs = [
"test/f16-vdivc-minmax.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vrdivc_minmax_test",
srcs = [
"test/f16-vrdivc-minmax.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_velu_test",
srcs = [
"test/f16-velu.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vhswish_test",
srcs = [
"test/f16-vhswish.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vlrelu_test",
srcs = [
"test/f16-vlrelu.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vmax_test",
srcs = [
"test/f16-vmax.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vmaxc_test",
srcs = [
"test/f16-vmaxc.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vmin_test",
srcs = [
"test/f16-vmin.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vminc_test",
srcs = [
"test/f16-vminc.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vmul_minmax_test",
srcs = [
"test/f16-vmul-minmax.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vmulc_minmax_test",
srcs = [
"test/f16-vmulc-minmax.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vmulcaddc_minmax_test",
srcs = [
"test/f16-vmulcaddc-minmax.cc",
"test/vmulcaddc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS + [":packing"],
)
xnnpack_unit_test(
name = "f16_vneg_test",
srcs = [
"test/f16-vneg.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vrndne_test",
srcs = [
"test/f16-vrndne.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vrndz_test",
srcs = [
"test/f16-vrndz.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vrndu_test",
srcs = [
"test/f16-vrndu.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vrndd_test",
srcs = [
"test/f16-vrndd.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vsqrt_test",
srcs = [
"test/f16-vsqrt.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_raddstoreexpminusmax_test",
srcs = [
"test/f16-raddstoreexpminusmax.cc",
"test/raddstoreexpminusmax-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_rmax_test",
srcs = [
"test/f16-rmax.cc",
"test/rmax-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_rsum_test",
srcs = [
"test/f16-rsum.cc",
"test/rsum-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_f32acc_rsum_test",
srcs = [
"test/f16-f32acc-rsum.cc",
"test/rsum-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vsigmoid_test",
srcs = [
"test/f16-vsigmoid.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vsqr_test",
srcs = [
"test/f16-vsqr.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vsub_minmax_test",
srcs = [
"test/f16-vsub-minmax.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vsubc_minmax_test",
srcs = [
"test/f16-vsubc-minmax.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vrsubc_minmax_test",
srcs = [
"test/f16-vrsubc-minmax.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f16_vtanh_test",
srcs = [
"test/f16-vtanh.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_argmaxpool_test",
srcs = [
"test/argmaxpool-microkernel-tester.h",
"test/f32-argmaxpool.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_avgpool_minmax_test",
srcs = [
"test/avgpool-microkernel-tester.h",
"test/f32-avgpool-minmax.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_ibilinear_test",
srcs = [
"test/f32-ibilinear.cc",
"test/ibilinear-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_ibilinear_chw_test",
srcs = [
"test/f32-ibilinear-chw.cc",
"test/ibilinear-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_igemm_test",
srcs = [
"test/f32-igemm.cc",
"test/f32-igemm-2.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f32_igemm_relu_test",
srcs = [
"test/f32-igemm-relu.cc",
"test/f32-igemm-relu-2.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f32_igemm_minmax_test",
srcs = [
"test/f32-igemm-minmax.cc",
"test/f32-igemm-minmax-2.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f32_igemm_jit_test",
srcs = [
"test/f32-igemm-jit.cc",
],
shard_count = 10,
tags = ["not_run:arm"],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
":jit_test_mode",
],
)
xnnpack_unit_test(
name = "f32_conv_hwc_test",
srcs = [
"test/conv-hwc-microkernel-tester.h",
"test/f32-conv-hwc.cc",
],
deps = MICROKERNEL_TEST_DEPS + [":packing"],
)
xnnpack_unit_test(
name = "f16_conv_hwc2chw_test",
srcs = [
"test/conv-hwc2chw-microkernel-tester.h",
"test/f16-conv-hwc2chw.cc",
],
deps = MICROKERNEL_TEST_DEPS + [":packing"],
)
xnnpack_unit_test(
name = "f32_conv_hwc2chw_test",
srcs = [
"test/conv-hwc2chw-microkernel-tester.h",
"test/f32-conv-hwc2chw.cc",
],
deps = MICROKERNEL_TEST_DEPS + [":packing"],
)
xnnpack_unit_test(
name = "f32_dwconv_unipass_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/f32-dwconv-unipass.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "f32_dwconv_multipass_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/f32-dwconv-multipass.cc",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "f32_dwconv_minmax_multipass_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/f32-dwconv-minmax-multipass.cc",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "f32_dwconv_minmax_unipass_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/f32-dwconv-minmax-unipass.cc",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "f16_dwconv2d_chw_test",
srcs = [
"test/dwconv2d-microkernel-tester.h",
"test/f16-dwconv2d-chw.cc",
],
deps = MICROKERNEL_TEST_DEPS + [":packing"],
)
xnnpack_unit_test(
name = "f32_dwconv2d_chw_test",
srcs = [
"test/dwconv2d-microkernel-tester.h",
"test/f32-dwconv2d-chw.cc",
],
deps = MICROKERNEL_TEST_DEPS + [":packing"],
)
xnnpack_unit_test(
name = "f32_f16_vcvt_test",
srcs = [
"test/f32-f16-vcvt.cc",
"test/vcvt-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_gavgpool_minmax_test",
srcs = [
"test/f32-gavgpool-minmax.cc",
"test/gavgpool-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_gavgpool_cw_test",
srcs = [
"test/f32-gavgpool-cw.cc",
"test/gavgpool-cw-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_gemm_test",
srcs = [
"test/f32-gemm.cc",
"test/f32-gemm-2.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f32_gemm_relu_test",
srcs = [
"test/f32-gemm-relu.cc",
"test/f32-gemm-relu-2.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f32_gemm_minmax_test",
srcs = [
"test/f32-gemm-minmax.cc",
"test/f32-gemm-minmax-2.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
":jit_test_mode",
],
)
xnnpack_unit_test(
name = "f32_gemm_goi_minmax_test",
srcs = [
"test/f32-gemm-goi-minmax.cc",
"test/gemm-goi-microkernel-tester.h",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":packing",
],
)
xnnpack_unit_test(
name = "f32_qc8w_gemm_test",
srcs = [
"test/f32-qc8w-gemm.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f32_qc8w_gemm_relu_test",
srcs = [
"test/f32-qc8w-gemm-relu.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f32_qc4w_gemm_minmax_test",
srcs = [
"test/f32-qc4w-gemm-minmax.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f32_qc8w_gemm_minmax_test",
srcs = [
"test/f32-qc8w-gemm-minmax.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f32_gemm_jit_test",
srcs = [
"test/f32-gemm-jit.cc",
],
shard_count = 10,
tags = ["not_run:arm"],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
":jit_test_mode",
],
)
xnnpack_unit_test(
name = "f32_gemminc_minmax_test",
srcs = [
"test/f32-gemminc-minmax.cc",
"test/f32-gemminc-minmax-2.cc",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f32_vhswish_test",
srcs = [
"test/f32-vhswish.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_maxpool_minmax_test",
srcs = [
"test/f32-maxpool-minmax.cc",
"test/maxpool-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_pavgpool_minmax_test",
srcs = [
"test/avgpool-microkernel-tester.h",
"test/f32-pavgpool-minmax.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_ppmm_minmax_test",
srcs = [
"test/f32-ppmm-minmax.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "f32_prelu_test",
srcs = [
"test/f32-prelu.cc",
"test/prelu-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_qs8_vcvt_test",
srcs = [
"test/f32-qs8-vcvt.cc",
"test/vcvt-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_qu8_vcvt_test",
srcs = [
"test/f32-qu8-vcvt.cc",
"test/vcvt-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_raddexpminusmax_test",
srcs = [
"test/f32-raddexpminusmax.cc",
"test/raddexpminusmax-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_raddextexp_test",
srcs = [
"test/f32-raddextexp.cc",
"test/raddextexp-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_raddstoreexpminusmax_test",
srcs = [
"test/f32-raddstoreexpminusmax.cc",
"test/raddstoreexpminusmax-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_rmax_test",
srcs = [
"test/f32-rmax.cc",
"test/reduce-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_rminmax_test",
srcs = [
"test/f32-rminmax.cc",
"test/reduce-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_rmin_test",
srcs = [
"test/f32-rmin.cc",
"test/reduce-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_rsum_test",
srcs = [
"test/f32-rsum.cc",
"test/rsum-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_spmm_minmax_test",
srcs = [
"test/f32-spmm-minmax.cc",
"test/spmm-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vabs_test",
srcs = [
"test/f32-vabs.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vadd_test",
srcs = [
"test/f32-vadd.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vadd_minmax_test",
srcs = [
"test/f32-vadd-minmax.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vadd_relu_test",
srcs = [
"test/f32-vadd-relu.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vaddc_test",
srcs = [
"test/f32-vaddc.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vaddc_minmax_test",
srcs = [
"test/f32-vaddc-minmax.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vaddc_relu_test",
srcs = [
"test/f32-vaddc-relu.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vclamp_test",
srcs = [
"test/f32-vclamp.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vcmul_test",
srcs = [
"test/f32-vcmul.cc",
"test/vcmul-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vdiv_test",
srcs = [
"test/f32-vdiv.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vdiv_minmax_test",
srcs = [
"test/f32-vdiv-minmax.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vdiv_relu_test",
srcs = [
"test/f32-vdiv-relu.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vdivc_test",
srcs = [
"test/f32-vdivc.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vdivc_minmax_test",
srcs = [
"test/f32-vdivc-minmax.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vdivc_relu_test",
srcs = [
"test/f32-vdivc-relu.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vrdivc_test",
srcs = [
"test/f32-vrdivc.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vrdivc_minmax_test",
srcs = [
"test/f32-vrdivc-minmax.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vrdivc_relu_test",
srcs = [
"test/f32-vrdivc-relu.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_velu_test",
srcs = [
"test/f32-velu.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vmax_test",
srcs = [
"test/f32-vmax.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vmaxc_test",
srcs = [
"test/f32-vmaxc.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vmin_test",
srcs = [
"test/f32-vmin.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vminc_test",
srcs = [
"test/f32-vminc.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vmul_test",
srcs = [
"test/f32-vmul.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vmul_minmax_test",
srcs = [
"test/f32-vmul-minmax.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vmul_relu_test",
srcs = [
"test/f32-vmul-relu.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vmulc_test",
srcs = [
"test/f32-vmulc.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vmulc_minmax_test",
srcs = [
"test/f32-vmulc-minmax.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vmulc_relu_test",
srcs = [
"test/f32-vmulc-relu.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vmulcaddc_minmax_test",
srcs = [
"test/f32-vmulcaddc-minmax.cc",
"test/vmulcaddc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS + [":packing"],
)
xnnpack_unit_test(
name = "f32_vlrelu_test",
srcs = [
"test/f32-vlrelu.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vneg_test",
srcs = [
"test/f32-vneg.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vrelu_test",
srcs = [
"test/f32-vrelu.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS + [":jit_test_mode"],
)
xnnpack_unit_test(
name = "f32_vrndne_test",
srcs = [
"test/f32-vrndne.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vrndz_test",
srcs = [
"test/f32-vrndz.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vrndu_test",
srcs = [
"test/f32-vrndu.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vrndd_test",
srcs = [
"test/f32-vrndd.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vscaleexpminusmax_test",
srcs = [
"test/f32-vscaleexpminusmax.cc",
"test/vscaleexpminusmax-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vscaleextexp_test",
srcs = [
"test/f32-vscaleextexp.cc",
"test/vscaleextexp-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vsigmoid_test",
srcs = [
"test/f32-vsigmoid.cc",
"test/vunary-microkernel-tester.h",
],
shard_count = 3,
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vsqr_test",
srcs = [
"test/f32-vsqr.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vsqrdiff_test",
srcs = [
"test/f32-vsqrdiff.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vsqrdiffc_test",
srcs = [
"test/f32-vsqrdiffc.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vsqrt_test",
srcs = [
"test/f32-vsqrt.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vsub_test",
srcs = [
"test/f32-vsub.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vsub_minmax_test",
srcs = [
"test/f32-vsub-minmax.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vsub_relu_test",
srcs = [
"test/f32-vsub-relu.cc",
"test/vbinary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vsubc_test",
srcs = [
"test/f32-vsubc.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vsubc_minmax_test",
srcs = [
"test/f32-vsubc-minmax.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vsubc_relu_test",
srcs = [
"test/f32-vsubc-relu.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vrsubc_test",
srcs = [
"test/f32-vrsubc.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vrsubc_minmax_test",
srcs = [
"test/f32-vrsubc-minmax.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vrsubc_relu_test",
srcs = [
"test/f32-vrsubc-relu.cc",
"test/vbinaryc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "f32_vtanh_test",
srcs = [
"test/f32-vtanh.cc",
"test/vunary-microkernel-tester.h",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qd8_f32_qc8w_gemm_minmax_test",
timeout = "moderate",
srcs = [
"test/qd8-f32-qc8w-gemm-minmax.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qs8_qc8w_dwconv_minmax_multipass_fp32_test",
timeout = "moderate",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/qs8-qc8w-dwconv-minmax-multipass-fp32.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "qs8_qc8w_dwconv_minmax_unipass_fp32_test",
timeout = "moderate",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/qs8-qc8w-dwconv-minmax-unipass-fp32.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "qs8_qc8w_gemm_jit_fp32_test",
srcs = [
"test/qs8-qc8w-gemm-jit-fp32.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
":jit_test_mode",
],
)
xnnpack_unit_test(
name = "qs8_qc8w_gemm_minmax_fp32_test",
timeout = "moderate",
srcs = [
"test/qs8-qc8w-gemm-minmax-fp32.cc",
"test/qs8-qc8w-gemm-minmax-fp32-2.cc",
"test/qs8-qc8w-gemm-minmax-fp32-3.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qs8_qc8w_igemm_jit_fp32_test",
srcs = [
"test/qs8-qc8w-igemm-jit-fp32.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
":jit_test_mode",
],
)
xnnpack_unit_test(
name = "qs8_qc8w_igemm_minmax_fp32_test",
timeout = "moderate",
srcs = [
"test/qs8-qc8w-igemm-minmax-fp32.cc",
"test/qs8-qc8w-igemm-minmax-fp32-2.cc",
"test/qs8-qc8w-igemm-minmax-fp32-3.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qs8_dwconv_minmax_multipass_fp32_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/qs8-dwconv-minmax-multipass-fp32.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "qs8_dwconv_minmax_multipass_rndnu_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/qs8-dwconv-minmax-multipass-rndnu.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "qs8_dwconv_minmax_unipass_fp32_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/qs8-dwconv-minmax-unipass-fp32.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "qs8_dwconv_minmax_unipass_rndnu_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/qs8-dwconv-minmax-unipass-rndnu.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "qs8_f32_vcvt_test",
srcs = [
"test/qs8-f32-vcvt.cc",
"test/vcvt-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qs8_gavgpool_minmax_fp32_test",
srcs = [
"test/gavgpool-microkernel-tester.h",
"test/qs8-gavgpool-minmax-fp32.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qs8_gavgpool_minmax_rndnu_test",
srcs = [
"test/gavgpool-microkernel-tester.h",
"test/qs8-gavgpool-minmax-rndnu.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qs8_gemm_minmax_fp32_test",
timeout = "moderate",
srcs = [
"test/qs8-gemm-minmax-fp32.cc",
"test/qs8-gemm-minmax-fp32-2.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qs8_gemm_jit_rndnu_test",
srcs = [
"test/qs8-gemm-jit-rndnu.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
":jit_test_mode",
],
)
xnnpack_unit_test(
name = "qs8_gemm_minmax_rndnu_test",
timeout = "moderate",
srcs = [
"test/qs8-gemm-minmax-rndnu.cc",
"test/qs8-gemm-minmax-rndnu-2.cc",
"test/qs8-gemm-minmax-rndnu-3.cc",
"test/qs8-gemm-minmax-rndnu-4.cc",
"test/qs8-gemm-minmax-rndnu-5.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qs8_igemm_minmax_fp32_test",
timeout = "moderate",
srcs = [
"test/qs8-igemm-minmax-fp32.cc",
"test/qs8-igemm-minmax-fp32-2.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qs8_igemm_jit_rndnu_test",
srcs = [
"test/qs8-igemm-jit-rndnu.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
":jit_test_mode",
],
)
xnnpack_unit_test(
name = "qs8_igemm_minmax_rndnu_test",
timeout = "moderate",
srcs = [
"test/qs8-igemm-minmax-rndnu.cc",
"test/qs8-igemm-minmax-rndnu-2.cc",
"test/qs8-igemm-minmax-rndnu-3.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qs8_requantization_test",
srcs = [
"test/qs8-requantization.cc",
"test/requantization-tester.h",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [":requantization_stubs"],
)
xnnpack_unit_test(
name = "qs8_vadd_minmax_test",
srcs = [
"test/qs8-vadd-minmax.cc",
"test/vadd-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qs8_vaddc_minmax_test",
srcs = [
"test/qs8-vaddc-minmax.cc",
"test/vaddc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qs8_vcvt_test",
srcs = [
"test/qs8-vcvt.cc",
"test/vcvt-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qs16_qs8_vcvt_test",
srcs = [
"test/qs16-qs8-vcvt.cc",
"test/vcvt-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qs8_vhswish_test",
srcs = [
"test/qs8-vhswish.cc",
"test/vhswish-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qs8_vlrelu_test",
srcs = [
"test/qs8-vlrelu.cc",
"test/vlrelu-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qs8_vmul_minmax_fp32_test",
srcs = [
"test/qs8-vmul-minmax-fp32.cc",
"test/vmul-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qs8_vmul_minmax_rndnu_test",
srcs = [
"test/qs8-vmul-minmax-rndnu.cc",
"test/vmul-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qs8_vmulc_minmax_fp32_test",
srcs = [
"test/qs8-vmulc-minmax-fp32.cc",
"test/vmulc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qs8_vmulc_minmax_rndnu_test",
srcs = [
"test/qs8-vmulc-minmax-rndnu.cc",
"test/vmulc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_avgpool_minmax_fp32_test",
srcs = [
"test/avgpool-microkernel-tester.h",
"test/qu8-avgpool-minmax-fp32.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_dwconv_minmax_multipass_fp32_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/qu8-dwconv-minmax-multipass-fp32.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "qu8_dwconv_minmax_multipass_rndnu_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/qu8-dwconv-minmax-multipass-rndnu.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "qu8_dwconv_minmax_unipass_fp32_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/qu8-dwconv-minmax-unipass-fp32.cc",
],
shard_count = 5,
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "qu8_dwconv_minmax_unipass_rndnu_test",
srcs = [
"test/dwconv-microkernel-tester.h",
"test/qu8-dwconv-minmax-unipass-rndnu.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":packing",
],
)
xnnpack_unit_test(
name = "qu8_f32_vcvt_test",
srcs = [
"test/qu8-f32-vcvt.cc",
"test/vcvt-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_gavgpool_minmax_fp32_test",
srcs = [
"test/gavgpool-microkernel-tester.h",
"test/qu8-gavgpool-minmax-fp32.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_gavgpool_minmax_rndnu_test",
srcs = [
"test/gavgpool-microkernel-tester.h",
"test/qu8-gavgpool-minmax-rndnu.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_gemm_minmax_fp32_test",
srcs = [
"test/qu8-gemm-minmax-fp32.cc",
"test/qu8-gemm-minmax-fp32-2.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qu8_gemm_minmax_rndnu_test",
srcs = [
"test/qu8-gemm-minmax-rndnu.cc",
"test/qu8-gemm-minmax-rndnu-2.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qu8_igemm_minmax_fp32_test",
srcs = [
"test/qu8-igemm-minmax-fp32.cc",
"test/qu8-igemm-minmax-fp32-2.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qu8_igemm_minmax_rndnu_test",
srcs = [
"test/qu8-igemm-minmax-rndnu.cc",
"test/qu8-igemm-minmax-rndnu-2.cc",
],
shard_count = 10,
deps = MICROKERNEL_TEST_DEPS + [
":gemm_microkernel_tester",
],
)
xnnpack_unit_test(
name = "qu8_requantization_test",
srcs = [
"test/qu8-requantization.cc",
"test/requantization-tester.h",
],
deps = MICROKERNEL_TEST_DEPS + [":requantization_stubs"],
)
xnnpack_unit_test(
name = "qu8_vadd_minmax_test",
srcs = [
"test/qu8-vadd-minmax.cc",
"test/vadd-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_vaddc_minmax_test",
srcs = [
"test/qu8-vaddc-minmax.cc",
"test/vaddc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_vcvt_test",
srcs = [
"test/qu8-vcvt.cc",
"test/vcvt-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_vhswish_test",
srcs = [
"test/qu8-vhswish.cc",
"test/vhswish-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_vlrelu_test",
srcs = [
"test/qu8-vlrelu.cc",
"test/vlrelu-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_vmul_minmax_fp32_test",
srcs = [
"test/qu8-vmul-minmax-fp32.cc",
"test/vmul-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_vmul_minmax_rndnu_test",
srcs = [
"test/qu8-vmul-minmax-rndnu.cc",
"test/vmul-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_vmulc_minmax_fp32_test",
srcs = [
"test/qu8-vmulc-minmax-fp32.cc",
"test/vmulc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "qu8_vmulc_minmax_rndnu_test",
srcs = [
"test/qu8-vmulc-minmax-rndnu.cc",
"test/vmulc-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "s16_rmaxabs_test",
srcs = [
"test/rmaxabs-microkernel-tester.h",
"test/s16-rmaxabs.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "s16_window_test",
srcs = [
"test/s16-window.cc",
"test/window-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "u32_filterbank_accumulate_test",
srcs = [
"test/filterbank-accumulate-microkernel-tester.h",
"test/u32-filterbank-accumulate.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "u32_filterbank_subtract_test",
srcs = [
"test/filterbank-subtract-microkernel-tester.h",
"test/u32-filterbank-subtract.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "u32_vlog_test",
srcs = [
"test/u32-vlog.cc",
"test/vlog-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "i16_vlshift_test",
srcs = [
"test/i16-vlshift.cc",
"test/vlshift-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "cs16_vsquareabs_test",
srcs = [
"test/cs16-vsquareabs.cc",
"test/vsquareabs-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "cs16_bfly4_test",
srcs = [
"test/bfly4-microkernel-tester.h",
"test/cs16-bfly4.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "cs16_fftr_test",
srcs = [
"test/cs16-fftr.cc",
"test/fftr-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "s8_ibilinear_test",
srcs = [
"test/ibilinear-microkernel-tester.h",
"test/s8-ibilinear.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "s8_maxpool_minmax_test",
srcs = [
"test/maxpool-microkernel-tester.h",
"test/s8-maxpool-minmax.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "s8_vclamp_test",
srcs = [
"test/s8-vclamp.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "u8_ibilinear_test",
srcs = [
"test/ibilinear-microkernel-tester.h",
"test/u8-ibilinear.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "u8_lut32norm_test",
srcs = [
"test/lut-norm-microkernel-tester.h",
"test/u8-lut32norm.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "u8_maxpool_minmax_test",
srcs = [
"test/maxpool-microkernel-tester.h",
"test/u8-maxpool-minmax.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "u8_rmax_test",
srcs = [
"test/rmax-microkernel-tester.h",
"test/u8-rmax.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "u8_vclamp_test",
srcs = [
"test/u8-vclamp.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "u64_u32_vsqrtshift_test",
srcs = [
"test/u64-u32-vsqrtshift.cc",
"test/vunary-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "x8_lut_test",
srcs = [
"test/lut-microkernel-tester.h",
"test/x8-lut.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "x8_zip_test",
srcs = [
"test/x8-zip.cc",
"test/zip-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "x32_packb_test",
srcs = [
"test/packb-microkernel-tester.h",
"test/x32-packb.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":packing",
],
)
xnnpack_unit_test(
name = "x8_packw_test",
srcs = [
"test/packw-microkernel-tester.h",
"test/x8-packw.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":packing",
],
)
xnnpack_unit_test(
name = "x16_packw_test",
srcs = [
"test/packw-microkernel-tester.h",
"test/x16-packw.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":packing",
],
)
xnnpack_unit_test(
name = "x32_packw_test",
srcs = [
"test/packw-microkernel-tester.h",
"test/x32-packw.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":packing",
],
)
xnnpack_unit_test(
name = "x32_packx_test",
srcs = [
"test/pack-microkernel-tester.h",
"test/x32-packx.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "x8_transpose_test",
srcs = [
"test/transpose-microkernel-tester.h",
"test/x8-transpose.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "x16_transpose_test",
srcs = [
"test/transpose-microkernel-tester.h",
"test/x16-transpose.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "x24_transpose_test",
srcs = [
"test/transpose-microkernel-tester.h",
"test/x24-transpose.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "x32_transpose_test",
srcs = [
"test/transpose-microkernel-tester.h",
"test/x32-transpose.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "x64_transpose_test",
srcs = [
"test/transpose-microkernel-tester.h",
"test/x64-transpose.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "xx_transposev_test",
srcs = [
"test/transpose-microkernel-tester.h",
"test/xx-transposev.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "x32_unpool_test",
srcs = [
"test/unpool-microkernel-tester.h",
"test/x32-unpool.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "x32_zerob_test",
srcs = [
"test/packb-microkernel-tester.h",
"test/x32-zerob.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":packing",
],
)
xnnpack_unit_test(
name = "x32_zip_test",
srcs = [
"test/x32-zip.cc",
"test/zip-microkernel-tester.h",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "xx_fill_test",
srcs = [
"test/fill-microkernel-tester.h",
"test/xx-fill.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
xnnpack_unit_test(
name = "xx_pad_test",
srcs = [
"test/pad-microkernel-tester.h",
"test/xx-pad.cc",
],
deps = MICROKERNEL_TEST_DEPS,
)
########################## Size tests for the library #########################
xnnpack_binary(
name = "operator_size_test",
srcs = ["test/operator-size.c"],
deps = [":xnnpack_for_tfjs"],
)
xnnpack_binary(
name = "subgraph_size_test",
srcs = ["test/subgraph-size.c"],
deps = [
":XNNPACK",
],
)
########################### Unit tests for operators ##########################
xnnpack_unit_test(
name = "abs_nc_test",
srcs = [
"test/abs-nc.cc",
"test/abs-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "abs_nc_eager_test",
srcs = [
"test/abs-nc-eager.cc",
"test/abs-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "add_nd_test",
timeout = "moderate",
srcs = [
"test/add-nd.cc",
"test/binary-elementwise-operator-tester.h",
],
shard_count = 5,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "add_nd_eager_test",
timeout = "moderate",
srcs = [
"test/add-nd-eager.cc",
"test/binary-elementwise-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "argmax_pooling_nhwc_test",
srcs = [
"test/argmax-pooling-nhwc.cc",
"test/argmax-pooling-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "average_pooling_nhwc_test",
srcs = [
"test/average-pooling-nhwc.cc",
"test/average-pooling-operator-tester.h",
],
shard_count = 5,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "bankers_rounding_nc_test",
srcs = [
"test/bankers-rounding-nc.cc",
"test/bankers-rounding-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "bankers_rounding_nc_eager_test",
srcs = [
"test/bankers-rounding-nc-eager.cc",
"test/bankers-rounding-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "batch_matrix_multiply_nc_test",
srcs = [
"test/batch-matrix-multiply-nc.cc",
"test/batch-matrix-multiply-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS + [":aligned_allocator"],
)
xnnpack_unit_test(
name = "ceiling_nc_test",
srcs = [
"test/ceiling-nc.cc",
"test/ceiling-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "ceiling_nc_eager_test",
srcs = [
"test/ceiling-nc-eager.cc",
"test/ceiling-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "channel_shuffle_nc_test",
srcs = [
"test/channel-shuffle-nc.cc",
"test/channel-shuffle-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "clamp_nc_test",
srcs = [
"test/clamp-nc.cc",
"test/clamp-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "clamp_nc_eager_test",
srcs = [
"test/clamp-nc-eager.cc",
"test/clamp-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "constant_pad_nd_test",
srcs = [
"test/constant-pad-nd.cc",
"test/constant-pad-operator-tester.h",
],
shard_count = 5,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "constant_pad_nd_eager_test",
srcs = [
"test/constant-pad-nd-eager.cc",
"test/constant-pad-operator-tester.h",
],
shard_count = 5,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "convert_nc_test",
srcs = [
"test/convert-nc.cc",
"test/convert-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "convert_nc_eager_test",
srcs = [
"test/convert-nc-eager.cc",
"test/convert-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS + [":math"],
)
xnnpack_unit_test(
name = "convolution_nhwc_test",
timeout = "moderate",
srcs = [
"test/convolution-nhwc.cc",
"test/convolution-operator-tester.h",
],
shard_count = 10,
deps = OPERATOR_TEST_DEPS + [
":convolution_test_helpers",
],
)
xnnpack_unit_test(
name = "convolution_nchw_test",
timeout = "moderate",
srcs = [
"test/convolution-nchw.cc",
"test/convolution-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS + [
":convolution_test_helpers",
],
)
xnnpack_unit_test(
name = "copy_nc_test",
srcs = [
"test/copy-nc.cc",
"test/copy-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "copy_nc_eager_test",
srcs = [
"test/copy-nc-eager.cc",
"test/copy-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "deconvolution_nhwc_test",
timeout = "moderate",
srcs = [
"test/deconvolution-nhwc.cc",
"test/deconvolution-operator-tester.h",
],
shard_count = 10,
deps = OPERATOR_TEST_DEPS + [
":convolution_test_helpers",
],
)
xnnpack_unit_test(
name = "depth_to_space_nchw2nhwc_test",
srcs = [
"test/depth-to-space-nchw2nhwc.cc",
"test/depth-to-space-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "depth_to_space_nhwc_test",
srcs = [
"test/depth-to-space-nhwc.cc",
"test/depth-to-space-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "divide_nd_test",
srcs = [
"test/binary-elementwise-operator-tester.h",
"test/divide-nd.cc",
],
shard_count = 5,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "divide_nd_eager_test",
srcs = [
"test/binary-elementwise-operator-tester.h",
"test/divide-nd-eager.cc",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "dynamic_fully_connected_nc_test",
srcs = [
"test/dynamic-fully-connected-nc.cc",
"test/dynamic-fully-connected-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS + [":aligned_allocator"],
)
xnnpack_unit_test(
name = "elu_nc_test",
srcs = [
"test/elu-nc.cc",
"test/elu-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "elu_nc_eager_test",
srcs = [
"test/elu-nc-eager.cc",
"test/elu-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "fully_connected_nc_test",
srcs = [
"test/fully-connected-nc.cc",
"test/fully-connected-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "floor_nc_test",
srcs = [
"test/floor-nc.cc",
"test/floor-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "floor_nc_eager_test",
srcs = [
"test/floor-nc-eager.cc",
"test/floor-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "global_average_pooling_nwc_test",
srcs = [
"test/global-average-pooling-nwc.cc",
"test/global-average-pooling-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "global_average_pooling_ncw_test",
srcs = [
"test/global-average-pooling-ncw.cc",
"test/global-average-pooling-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "global_sum_pooling_nwc_test",
srcs = [
"test/global-sum-pooling-nwc.cc",
"test/global-sum-pooling-operator-tester.h",
],
shard_count = 10,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "hardswish_nc_test",
srcs = [
"test/hardswish-nc.cc",
"test/hardswish-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "hardswish_nc_eager_test",
srcs = [
"test/hardswish-nc-eager.cc",
"test/hardswish-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "leaky_relu_nc_test",
srcs = [
"test/leaky-relu-nc.cc",
"test/leaky-relu-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "leaky_relu_nc_eager_test",
srcs = [
"test/leaky-relu-nc-eager.cc",
"test/leaky-relu-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "max_pooling_nhwc_test",
timeout = "moderate",
srcs = [
"test/max-pooling-nhwc.cc",
"test/max-pooling-operator-tester.h",
],
shard_count = 10,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "maximum_nd_test",
srcs = [
"test/binary-elementwise-operator-tester.h",
"test/maximum-nd.cc",
],
shard_count = 5,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "maximum_nd_eager_test",
srcs = [
"test/binary-elementwise-operator-tester.h",
"test/maximum-nd-eager.cc",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "mean_nd_test",
timeout = "moderate",
srcs = [
"test/mean-nd.cc",
"test/mean-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "minimum_nd_test",
srcs = [
"test/binary-elementwise-operator-tester.h",
"test/minimum-nd.cc",
],
shard_count = 5,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "minimum_nd_eager_test",
srcs = [
"test/binary-elementwise-operator-tester.h",
"test/minimum-nd-eager.cc",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "multiply_nd_test",
timeout = "moderate",
srcs = [
"test/binary-elementwise-operator-tester.h",
"test/multiply-nd.cc",
],
shard_count = 5,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "multiply_nd_eager_test",
timeout = "moderate",
srcs = [
"test/binary-elementwise-operator-tester.h",
"test/multiply-nd-eager.cc",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "negate_nc_test",
srcs = [
"test/negate-nc.cc",
"test/negate-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "negate_nc_eager_test",
srcs = [
"test/negate-nc-eager.cc",
"test/negate-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "slice_normalization_test",
srcs = [
"test/slice-normalization.cc",
"test/slice-normalization-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "reduce_normalization_test",
srcs = [
"test/reduce-normalization.cc",
"test/reduce-normalization-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "transpose_normalization_test",
srcs = [
"test/transpose-normalization.cc",
"test/transpose-normalization-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "prelu_nc_test",
srcs = [
"test/prelu-nc.cc",
"test/prelu-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "resize_bilinear_nhwc_test",
srcs = [
"test/resize-bilinear-nhwc.cc",
"test/resize-bilinear-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "resize_bilinear_nchw_test",
srcs = [
"test/resize-bilinear-nchw.cc",
"test/resize-bilinear-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "rope_nthc_test",
srcs = [
"test/rope-nthc.cc",
"test/rope-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "sigmoid_nc_test",
srcs = [
"test/sigmoid-nc.cc",
"test/sigmoid-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "sigmoid_nc_eager_test",
srcs = [
"test/sigmoid-nc-eager.cc",
"test/sigmoid-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "slice_nd_test",
timeout = "moderate",
srcs = [
"test/slice-nd.cc",
"test/slice-operator-tester.h",
],
shard_count = 5,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "slice_nd_eager_test",
timeout = "moderate",
srcs = [
"test/slice-nd-eager.cc",
"test/slice-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "softmax_nc_test",
srcs = [
"test/softmax-nc.cc",
"test/softmax-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "space_to_depth_nhwc_test",
srcs = [
"test/space-to-depth-nhwc.cc",
"test/space-to-depth-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "square_nc_test",
srcs = [
"test/square-nc.cc",
"test/square-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "square_nc_eager_test",
srcs = [
"test/square-nc-eager.cc",
"test/square-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "square_root_nc_test",
srcs = [
"test/square-root-nc.cc",
"test/square-root-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "square_root_nc_eager_test",
srcs = [
"test/square-root-nc-eager.cc",
"test/square-root-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "squared_difference_nd_test",
srcs = [
"test/binary-elementwise-operator-tester.h",
"test/squared-difference-nd.cc",
],
shard_count = 5,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "squared_difference_nd_eager_test",
srcs = [
"test/binary-elementwise-operator-tester.h",
"test/squared-difference-nd-eager.cc",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "subtract_nd_test",
srcs = [
"test/binary-elementwise-operator-tester.h",
"test/subtract-nd.cc",
],
shard_count = 10,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "subtract_nd_eager_test",
srcs = [
"test/binary-elementwise-operator-tester.h",
"test/subtract-nd-eager.cc",
],
shard_count = 5,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "tanh_nc_test",
srcs = [
"test/tanh-nc.cc",
"test/tanh-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "tanh_nc_eager_test",
srcs = [
"test/tanh-nc-eager.cc",
"test/tanh-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "transpose_nd_test",
srcs = [
"test/transpose-nd.cc",
"test/transpose-operator-tester.h",
],
shard_count = 10,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "transpose_nd_eager_test",
srcs = [
"test/transpose-nd-eager.cc",
"test/transpose-operator-tester.h",
],
shard_count = 5,
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "truncation_nc_test",
srcs = [
"test/truncation-nc.cc",
"test/truncation-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "truncation_nc_eager_test",
srcs = [
"test/truncation-nc-eager.cc",
"test/truncation-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
xnnpack_unit_test(
name = "unpooling_nhwc_test",
srcs = [
"test/unpooling-nhwc.cc",
"test/unpooling-operator-tester.h",
],
deps = OPERATOR_TEST_DEPS,
)
########################### Unit tests for subgraph ###########################
xnnpack_cc_library(
name = "convolution_test_helpers",
testonly = True,
srcs = [
"test/convolution-test-helpers.cc",
],
hdrs = [
"test/convolution-test-helpers.h",
],
)
xnnpack_cc_library(
name = "subgraph_unary_tester",
testonly = True,
hdrs = [
"test/subgraph-unary-tester.h",
],
deps = [
":node_type",
":operators_test_mode",
":requantization",
":subgraph_test_mode",
":xnnpack_h",
"@com_google_googletest//:gtest_main",
],
)
xnnpack_cc_library(
name = "subgraph_binary_tester",
testonly = True,
hdrs = [
"test/subgraph-binary-tester.h",
],
deps = [
":node_type",
":operators_test_mode",
":requantization",
":subgraph_test_mode",
":xnnpack_h",
"@com_google_googletest//:gtest_main",
],
)
xnnpack_unit_test(
name = "workspace_test",
srcs = [
"test/workspace.cc",
],
deps = [
":XNNPACK_test_mode",
":math",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "abs_test",
srcs = [
"test/abs.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "add2_test",
srcs = [
"test/add2.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_binary_tester",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "argmax_pooling_2d_test",
srcs = [
"test/argmax-pooling-2d.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "average_pooling_2d_test",
srcs = [
"test/average-pooling-2d.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operator_utils",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "bankers_rounding_test",
srcs = [
"test/bankers-rounding.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "batch_matrix_multiply_test",
srcs = [
"test/batch-matrix-multiply.cc",
],
deps = [
":XNNPACK_test_mode",
":aligned_allocator",
":common",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "ceiling_test",
srcs = [
"test/ceiling.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "clamp_test",
srcs = [
"test/clamp.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "concatenate2_test",
srcs = [
"test/concatenate2.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "concatenate3_test",
srcs = [
"test/concatenate3.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "concatenate4_test",
srcs = [
"test/concatenate4.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "convert_test",
srcs = [
"test/convert.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "convolution_2d_test",
srcs = [
"test/convolution-2d.cc",
],
deps = [
":XNNPACK_test_mode",
":convolution_test_helpers",
":operator_utils",
":operators_test_mode",
":requantization",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "copy_test",
srcs = [
"test/copy.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "deconvolution_2d_test",
timeout = "moderate",
srcs = [
"test/deconvolution-2d.cc",
],
shard_count = 5,
deps = [
":XNNPACK_test_mode",
":operator_utils",
":operators_test_mode",
":requantization",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "depth_to_space_test",
srcs = [
"test/depth-to-space.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "depthwise_convolution_2d_test",
srcs = [
"test/depthwise-convolution-2d.cc",
],
deps = [
":XNNPACK_test_mode",
":convolution_test_helpers",
":operator_utils",
":operators_test_mode",
":requantization",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "divide2_test",
srcs = [
"test/divide2.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_binary_tester",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "elu_test",
srcs = [
"test/elu.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "even_split2_test",
srcs = [
"test/even-split2.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "even_split3_test",
srcs = [
"test/even-split3.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "even_split4_test",
srcs = [
"test/even-split4.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "floor_test",
srcs = [
"test/floor.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "fully_connected_test",
srcs = [
"test/fully-connected.cc",
],
deps = [
":XNNPACK_test_mode",
":aligned_allocator",
":common",
":operators_test_mode",
":requantization",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "global_average_pooling_1d_test",
srcs = [
"test/global-average-pooling-1d.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":requantization",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "global_average_pooling_2d_test",
srcs = [
"test/global-average-pooling-2d.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":requantization",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "global_sum_pooling_1d_test",
srcs = [
"test/global-sum-pooling-1d.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "global_sum_pooling_2d_test",
srcs = [
"test/global-sum-pooling-2d.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "hardswish_test",
srcs = [
"test/hardswish.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "leaky_relu_test",
srcs = [
"test/leaky-relu.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "max_pooling_2d_test",
srcs = [
"test/max-pooling-2d.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operator_utils",
":operators_test_mode",
":requantization",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "maximum2_test",
srcs = [
"test/maximum2.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_binary_tester",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "minimum2_test",
srcs = [
"test/minimum2.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_binary_tester",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "multiply2_test",
srcs = [
"test/multiply2.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_binary_tester",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "negate_test",
srcs = [
"test/negate.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "prelu_test",
srcs = [
"test/prelu.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "rope_test",
srcs = [
"test/rope.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":requantization",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "sigmoid_test",
srcs = [
"test/sigmoid.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "softmax_test",
srcs = [
"test/softmax.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "space_to_depth_2d_test",
srcs = [
"test/space-to-depth-2d.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "square_test",
srcs = [
"test/square.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "square_root_test",
srcs = [
"test/square-root.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "squared_difference_test",
srcs = [
"test/squared-difference.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_binary_tester",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "static_constant_pad_test",
srcs = [
"test/static-constant-pad.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
"@FP16",
],
)
xnnpack_unit_test(
name = "static_mean_test",
srcs = [
"test/static-mean.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "static_reshape_test",
srcs = [
"test/static-reshape.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "static_resize_bilinear_2d_test",
srcs = [
"test/static-resize-bilinear-2d.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "static_slice_test",
srcs = [
"test/static-slice.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "static_transpose_test",
srcs = [
"test/static-transpose.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "subtract2_test",
srcs = [
"test/subtract2.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_binary_tester",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "tanh_test",
srcs = [
"test/tanh.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operators_test_mode",
":subgraph_test_mode",
":subgraph_unary_tester",
],
)
xnnpack_unit_test(
name = "unpooling_2d_test",
srcs = [
"test/unpooling-2d.cc",
],
deps = [
":XNNPACK_test_mode",
":node_type",
":operator_utils",
":operators_test_mode",
":requantization",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "fusion_test",
srcs = [
"test/fusion.cc",
"test/runtime-tester.h",
"test/subgraph-tester.h",
],
deps = [
":XNNPACK_test_mode",
":subgraph_test_mode",
],
)
############################### Misc unit tests ###############################
xnnpack_unit_test(
name = "subgraph_test",
srcs = [
"test/runtime-tester.h",
"test/subgraph.cc",
"test/subgraph-tester.h",
],
deps = [
":XNNPACK",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "memory_planner_test",
srcs = [
"test/memory-planner-test.cc",
"test/runtime-tester.h",
"test/subgraph-tester.h",
],
deps = [
":XNNPACK",
":common",
":math",
":node_type",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "subgraph_nchw_test",
srcs = [
"test/subgraph-nchw.cc",
"test/subgraph-tester.h",
],
deps = [
":XNNPACK",
":subgraph_test_mode",
],
)
xnnpack_unit_test(
name = "subgraph_fp16_test",
srcs = [
"test/mock-allocator.h",
"test/runtime-tester.h",
"test/subgraph-fp16.cc",
"test/subgraph-tester.h",
],
deps = [
":XNNPACK",
":allocator",
":node_type",
":subgraph_test_mode",
"@FP16",
],
)
xnnpack_unit_test(
name = "jit_test",
srcs = [
"test/jit.cc",
],
deps = [
":common",
":jit_test_mode",
":memory",
],
)
xnnpack_unit_test(
name = "aarch32_assembler_test",
srcs = [
"test/aarch32-assembler.cc",
"test/assembler-helpers.h",
],
deps = [
":common",
":jit_test_mode",
":memory",
":microparams",
":microparams_init",
],
)
xnnpack_unit_test(
name = "aarch64_assembler_test",
srcs = [
"test/aarch64-assembler.cc",
"test/assembler-helpers.h",
],
deps = [
":common",
":jit_test_mode",
":memory",
":microparams",
":microparams_init",
],
)
xnnpack_unit_test(
name = "wasm_assembler_test",
srcs = [
"test/wasm-assembler.cc",
],
deps = [
":common",
":jit_test_mode",
":memory",
],
)
xnnpack_unit_test(
name = "code_cache_test",
srcs = ["test/code-cache.cc"],
deps = [
":XNNPACK",
":cache",
],
)
xnnpack_unit_test(
name = "weights_cache_test",
srcs = ["test/weights-cache.cc"],
deps = [
":XNNPACK",
":cache",
":common",
],
)
xnnpack_unit_test(
name = "mutex_test",
srcs = ["test/mutex.cc"],
deps = [
":common",
":mutex_test_mode",
":xnnpack_h",
],
)
xnnpack_unit_test(
name = "microkernel_utils_test",
srcs = ["test/microkernel-utils.cc"],
deps = [
":common",
":microkernel_utils",
":params",
],
)
xnnpack_unit_test(
name = "operator_utils_test",
srcs = ["test/operator-utils.cc"],
deps = [
":common",
":operator_utils",
":operators_test_mode",
":params",
],
)
xnnpack_unit_test(
name = "packing_test",
srcs = [
"test/packing.cc",
],
deps = MICROKERNEL_TEST_DEPS + [
":microkernel_utils",
":operator_utils",
":packing_test_mode",
],
)
xnnpack_unit_test(
name = "indirection_test",
srcs = [
"test/indirection.cc",
],
deps = [
":allocator",
":indirection_test_mode",
":operator_utils",
":operators_test_mode",
":xnnpack_h",
],
)
############################# Build configurations #############################
# Enables usage of ARM FP16 (FP16 arithmetics) scalar kernels.
config_setting(
name = "xnn_enable_arm_fp16_scalar_explicit_true",
define_values = {"xnn_enable_arm_fp16_scalar": "true"},
)
# Disables usage of ARM FP16 (FP16 arithmetics) scalar kernels.
config_setting(
name = "xnn_enable_arm_fp16_scalar_explicit_false",
define_values = {"xnn_enable_arm_fp16_scalar": "false"},
)
# Enables usage of ARM FP16 (FP16 arithmetics) vector kernels.
config_setting(
name = "xnn_enable_arm_fp16_vector_explicit_true",
define_values = {"xnn_enable_arm_fp16_vector": "true"},
)
# Disables usage of ARM FP16 (FP16 arithmetics) vector kernels.
config_setting(
name = "xnn_enable_arm_fp16_vector_explicit_false",
define_values = {"xnn_enable_arm_fp16_vector": "false"},
)
# Enables usage of ARM BF16 (BF16 arithmetics) kernels.
config_setting(
name = "xnn_enable_arm_bf16_explicit_true",
define_values = {"xnn_enable_arm_bf16": "true"},
)
# Disables usage of ARM BF16 (BF16 arithmetics) kernels.
config_setting(
name = "xnn_enable_arm_bf16_explicit_false",
define_values = {"xnn_enable_arm_bf16": "false"},
)
# Enables usage of ARM DotProd (integer dot product) kernels.
config_setting(
name = "xnn_enable_arm_dotprod_explicit_true",
define_values = {"xnn_enable_arm_dotprod": "true"},
)
# Disables usage of ARM DotProd (integer dot product) kernels.
config_setting(
name = "xnn_enable_arm_dotprod_explicit_false",
define_values = {"xnn_enable_arm_dotprod": "false"},
)
# Enables usage of RISC-V Vector kernels.
config_setting(
name = "xnn_enable_riscv_vector_explicit_true",
define_values = {"xnn_enable_riscv_vector": "true"},
)
# Disables usage of RISC-V Vector kernels.
config_setting(
name = "xnn_enable_riscv_vector_explicit_false",
define_values = {"xnn_enable_riscv_vector": "false"},
)
# Enables usage of assembly kernels.
config_setting(
name = "xnn_enable_assembly_explicit_true",
define_values = {"xnn_enable_assembly": "true"},
)
# Disables usage of assembly kernels.
config_setting(
name = "xnn_enable_assembly_explicit_false",
define_values = {"xnn_enable_assembly": "false"},
)
# Enables usage of sparse inference.
config_setting(
name = "xnn_enable_sparse_explicit_true",
define_values = {"xnn_enable_sparse": "true"},
)
# Disables usage of sparse inference.
config_setting(
name = "xnn_enable_sparse_explicit_false",
define_values = {"xnn_enable_sparse": "false"},
)
# Disables usage of HMP-aware optimizations.
config_setting(
name = "xnn_enable_hmp_explicit_false",
define_values = {"xnn_enable_hmp": "false"},
)
# Enable usage of optimized memory allocation
config_setting(
name = "xnn_enable_memopt_explicit_true",
define_values = {"xnn_enable_memopt": "true"},
)
# Disable usage of optimized memory allocation
config_setting(
name = "xnn_enable_memopt_explicit_false",
define_values = {"xnn_enable_memopt": "false"},
)
# Enable QS8 inference in TFLite-specific version
config_setting(
name = "xnn_enable_qs8_explicit_true",
define_values = {"xnn_enable_qs8": "true"},
)
# Disable QS8 inference in TFLite-specific version
config_setting(
name = "xnn_enable_qs8_explicit_false",
define_values = {"xnn_enable_qs8": "false"},
)
# Enable QU8 inference in TFLite-specific version
config_setting(
name = "xnn_enable_qu8_explicit_true",
define_values = {"xnn_enable_qu8": "true"},
)
# Disable QU8 inference in TFLite-specific version
config_setting(
name = "xnn_enable_qu8_explicit_false",
define_values = {"xnn_enable_qu8": "false"},
)
# Enables usage of JIT kernels.
config_setting(
name = "xnn_enable_jit_explicit_true",
define_values = {"xnn_enable_jit": "true"},
)
selects.config_setting_group(
name = "xnn_enable_jit_explicit_true_on_emscripten",
match_all = [
":xnn_enable_jit_explicit_true",
":emscripten",
],
)
# Disables usage of JIT kernels.
config_setting(
name = "xnn_enable_jit_explicit_false",
define_values = {"xnn_enable_jit": "false"},
)
# Enables usage of mr heuristic to select microkernels.
config_setting(
name = "xnn_enable_gemm_m_specialization_explicit_true",
define_values = {"xnn_enable_gemm_m_specialization": "true"},
)
# Disables usage of mr heuristic to select microkernels.
config_setting(
name = "xnn_enable_gemm_m_specialization_explicit_false",
define_values = {"xnn_enable_gemm_m_specialization": "false"},
)
# Enables usage of DWCONV multipass kernels.
config_setting(
name = "xnn_enable_dwconv_multipass_explicit_true",
define_values = {"xnn_enable_dwconv_multipass": "true"},
)
# Disables usage of DWCONV multipass kernels.
config_setting(
name = "xnn_enable_dwconv_multipass_explicit_false",
define_values = {"xnn_enable_dwconv_multipass": "false"},
)
# Force logging to stderr/stdout
config_setting(
name = "xnn_log_to_stdio_explicit_true",
define_values = {"xnn_log_to_stdio": "true"},
)
# Fully disable logging
config_setting(
name = "xnn_log_level_explicit_none",
define_values = {"xnn_log_level": "none"},
)
# Log fatal errors only
config_setting(
name = "xnn_log_level_explicit_fatal",
define_values = {"xnn_log_level": "fatal"},
)
# Log fatal and non-fatal errors
config_setting(
name = "xnn_log_level_explicit_error",
define_values = {"xnn_log_level": "error"},
)
# Log warnings and errors
config_setting(
name = "xnn_log_level_explicit_warning",
define_values = {"xnn_log_level": "warning"},
)
# Log information messages, warnings and errors
config_setting(
name = "xnn_log_level_explicit_info",
define_values = {"xnn_log_level": "info"},
)
# Log all messages, including debug messages
config_setting(
name = "xnn_log_level_explicit_debug",
define_values = {"xnn_log_level": "debug"},
)
config_setting(
name = "xnn_platform_jit_explicit_true",
define_values = {"xnn_platform_jit": "true"},
)
config_setting(
name = "xnn_platform_jit_explicit_false",
define_values = {"xnn_platform_jit": "false"},
)
# Builds with -c dbg
config_setting(
name = "debug_build",
values = {
"compilation_mode": "dbg",
},
)
# Builds with -c opt
config_setting(
name = "optimized_build",
values = {
"compilation_mode": "opt",
},
)
config_setting(
name = "linux_arm64",
values = {"cpu": "aarch64"},
)
config_setting(
name = "linux_k8",
values = {"cpu": "k8"},
)
config_setting(
name = "linux_arm",
values = {"cpu": "arm"},
)
config_setting(
name = "linux_armeabi",
values = {"cpu": "armeabi"},
)
config_setting(
name = "linux_armhf",
values = {"cpu": "armhf"},
)
config_setting(
name = "linux_armv7a",
values = {"cpu": "armv7a"},
)
config_setting(
name = "linux_riscv64",
values = {"cpu": "riscv64"},
)
config_setting(
name = "android",
values = {"crosstool_top": "//external:android/crosstool"},
)
config_setting(
name = "android_armv7",
values = {
"crosstool_top": "//external:android/crosstool",
"cpu": "armeabi-v7a",
},
)
config_setting(
name = "android_arm64",
values = {
"crosstool_top": "//external:android/crosstool",
"cpu": "arm64-v8a",
},
)
config_setting(
name = "android_x86",
values = {
"crosstool_top": "//external:android/crosstool",
"cpu": "x86",
},
)
config_setting(
name = "android_x86_64",
values = {
"crosstool_top": "//external:android/crosstool",
"cpu": "x86_64",
},
)
config_setting(
name = "windows_x86_64",
values = {"cpu": "x64_windows"},
)
config_setting(
name = "windows_x86_64_clang",
values = {
"compiler": "clang-cl",
"cpu": "x64_windows",
},
)
config_setting(
name = "windows_x86_64_mingw",
values = {
"compiler": "mingw-gcc",
"cpu": "x64_windows",
},
)
config_setting(
name = "windows_x86_64_msys",
values = {
"compiler": "msys-gcc",
"cpu": "x64_windows",
},
)
config_setting(
name = "macos_x86_64",
values = {
"apple_platform_type": "macos",
"cpu": "darwin",
},
)
config_setting(
name = "macos_arm64",
values = {
"apple_platform_type": "macos",
"cpu": "darwin_arm64",
},
)
config_setting(
name = "emscripten",
values = {"crosstool_top": "@emsdk//emscripten_toolchain:everything"},
)
config_setting(
name = "emscripten_wasm",
values = {
"crosstool_top": "@emsdk//emscripten_toolchain:everything",
"cpu": "wasm",
},
)
config_setting(
name = "emscripten_wasmsimd",
values = {
"crosstool_top": "@emsdk//emscripten_toolchain:everything",
"cpu": "wasm",
"features": "wasm_simd",
},
)
config_setting(
name = "emscripten_wasmrelaxedsimd",
values = {
"crosstool_top": "@emsdk//emscripten_toolchain:everything",
"cpu": "wasm",
"features": "wasm_relaxed_simd",
},
)
config_setting(
name = "ios_arm64",
values = {
"apple_platform_type": "ios",
"cpu": "ios_arm64",
},
)
config_setting(
name = "ios_arm64e",
values = {
"apple_platform_type": "ios",
"cpu": "ios_arm64e",
},
)
config_setting(
name = "ios_sim_arm64",
values = {
"apple_platform_type": "ios",
"cpu": "ios_sim_arm64",
},
)
config_setting(
name = "ios_x86_64",
values = {
"apple_platform_type": "ios",
"cpu": "ios_x86_64",
},
)
config_setting(
name = "watchos_arm64_32",
values = {
"apple_platform_type": "watchos",
"cpu": "watchos_arm64_32",
},
)
config_setting(
name = "watchos_x86_64",
values = {
"apple_platform_type": "watchos",
"cpu": "watchos_x86_64",
},
)
config_setting(
name = "tvos_arm64",
values = {
"apple_platform_type": "tvos",
"cpu": "tvos_arm64",
},
)
config_setting(
name = "tvos_x86_64",
values = {
"apple_platform_type": "tvos",
"cpu": "tvos_x86_64",
},
)
######################## Composite build configurations #######################
selects.config_setting_group(
name = "aarch32",
match_any = [
":android_armv7",
":linux_arm",
":linux_armeabi",
":linux_armhf",
":linux_armv7a",
],
)
selects.config_setting_group(
name = "aarch64",
match_any = [
":android_arm64",
":ios_arm64",
":ios_arm64e",
":ios_sim_arm64",
":linux_arm64",
":macos_arm64",
":tvos_arm64",
":watchos_arm64_32",
],
)
selects.config_setting_group(
name = "x86",
match_any = [
":android_x86",
":android_x86_64",
":ios_x86_64",
":linux_k8",
":macos_x86_64",
":tvos_x86_64",
":watchos_x86_64",
":windows_x86_64",
":windows_x86_64_clang",
":windows_x86_64_mingw",
":windows_x86_64_msys",
],
)
selects.config_setting_group(
name = "riscv",
match_any = [":linux_riscv64"],
)
selects.config_setting_group(
name = "arm_fp16_scalar_enabled_by_default",
match_any = [
":aarch32",
":aarch64",
],
)
selects.config_setting_group(
name = "arm_fp16_vector_enabled_by_default",
match_any = [
":aarch32",
":aarch64",
],
)
alias(
name = "arm_fp16_scalar_enabled",
actual = select({
":xnn_enable_arm_fp16_scalar_explicit_true": ":xnn_enable_arm_fp16_scalar_explicit_true",
":xnn_enable_arm_fp16_scalar_explicit_false": ":xnn_enable_arm_fp16_scalar_explicit_true",
"//conditions:default": ":arm_fp16_scalar_enabled_by_default",
}),
)
alias(
name = "arm_fp16_vector_enabled",
actual = select({
":xnn_enable_arm_fp16_vector_explicit_true": ":xnn_enable_arm_fp16_vector_explicit_true",
":xnn_enable_arm_fp16_vector_explicit_false": ":xnn_enable_arm_fp16_vector_explicit_true",
"//conditions:default": ":arm_fp16_vector_enabled_by_default",
}),
)
selects.config_setting_group(
name = "arm_bf16_enabled_by_default",
match_any = [
":aarch64",
],
)
alias(
name = "arm_bf16_enabled",
actual = select({
":xnn_enable_arm_bf16_explicit_true": ":xnn_enable_arm_bf16_explicit_true",
":xnn_enable_arm_bf16_explicit_false": ":xnn_enable_arm_bf16_explicit_true",
"//conditions:default": ":arm_bf16_enabled_by_default",
}),
)
selects.config_setting_group(
name = "arm_dotprod_enabled_by_default",
match_any = [
":aarch32",
":aarch64",
],
)
alias(
name = "arm_dotprod_enabled",
actual = select({
":xnn_enable_arm_dotprod_explicit_true": ":xnn_enable_arm_dotprod_explicit_true",
":xnn_enable_arm_dotprod_explicit_false": ":xnn_enable_arm_dotprod_explicit_true",
"//conditions:default": ":arm_dotprod_enabled_by_default",
}),
)
selects.config_setting_group(
name = "riscv_vector_enabled_by_default",
match_any = [
":riscv",
],
)
alias(
name = "riscv_vector_enabled",
actual = select({
":xnn_enable_riscv_vector_explicit_true": ":xnn_enable_riscv_vector_explicit_true",
":xnn_enable_riscv_vector_explicit_false": ":xnn_enable_riscv_vector_explicit_true",
"//conditions:default": ":riscv_vector_enabled_by_default",
}),
)
bzl_library(
name = "build_defs_bzl",
srcs = ["build_defs.bzl"],
visibility = ["//visibility:private"],
)