xref: /aosp_15_r20/external/XNNPACK/BUILD.bazel (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1# Copyright 2020 Google LLC
2#
3# This source code is licensed under the BSD-style license found in the
4# LICENSE file in the root directory of this source tree.
5#
6# Description:
7#   XNNPACK - optimized floating-point neural network operators library
8
9load("//tools/build_defs/testing:bzl_library.bzl", "bzl_library")
10load("@bazel_skylib//lib:selects.bzl", "selects")
11load(":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")
12
13licenses(["notice"])
14
15exports_files(["LICENSE"])
16
17OPERATOR_BENCHMARK_DEPS = [
18    ":XNNPACK",
19    ":bench_utils",
20    ":cache",
21    "@FP16",
22]
23
24MICROKERNEL_BENCHMARK_DEPS = [
25    ":aligned_allocator",
26    ":bench_microkernels",
27    ":bench_utils",
28    ":common",
29    ":enable_assembly",
30    ":microkernels_h",
31    ":params",
32    ":microparams",
33    ":microparams_init",
34    ":xnnpack_h",
35    "@FP16",
36    "@cpuinfo",
37]
38
39ACCURACY_EVAL_DEPS = [
40    ":aligned_allocator",
41    ":bench_microkernels",
42    ":bench_utils",
43    ":common",
44    ":isa_checks",
45    ":math",
46    ":math_stubs",
47    "@FP16",
48    "@cpuinfo",
49    "@pthreadpool",
50]
51
52MICROKERNEL_TEST_DEPS = [
53    ":aligned_allocator",
54    ":allocator",
55    ":common",
56    ":enable_assembly",
57    ":isa_checks",
58    ":math",
59    ":microkernels_h",
60    ":microparams",
61    ":microparams_init",
62    ":params",
63    ":requantization",
64    ":test_microkernels",
65    ":xnnpack_h",
66    "@FP16",
67]
68
69OPERATOR_TEST_DEPS = [
70    ":allocator",
71    ":cache",
72    ":common",
73    ":params",
74    ":XNNPACK_test_mode",
75    ":jit_test_mode",
76    ":normalization_test_mode",
77    "@pthreadpool",
78    "@FP16",
79]
80
81OPERATOR_SRCS = [
82    "src/operator-delete.c",
83    "src/operator-run.c",
84    "src/operator-utils.c",
85    "src/operators/argmax-pooling-nhwc.c",
86    "src/operators/average-pooling-nhwc.c",
87    "src/operators/binary-elementwise-nd.c",
88    "src/operators/channel-shuffle-nc.c",
89    "src/operators/constant-pad-nd.c",
90    "src/operators/convolution-nchw.c",
91    "src/operators/convolution-nhwc.c",
92    "src/operators/deconvolution-nhwc.c",
93    "src/operators/fully-connected-nc.c",
94    "src/operators/global-average-pooling-ncw.c",
95    "src/operators/global-average-pooling-nwc.c",
96    "src/operators/lut-elementwise-nc.c",
97    "src/operators/max-pooling-nhwc.c",
98    "src/operators/prelu-nc.c",
99    "src/operators/resize-bilinear-nchw.c",
100    "src/operators/resize-bilinear-nhwc.c",
101    "src/operators/softmax-nc.c",
102    "src/operators/transpose-nd.c",
103    "src/operators/unary-elementwise-nc.c",
104    "src/operators/unpooling-nhwc.c",
105]
106
107SUBGRAPH_SRCS = [
108    "src/memory-planner.c",
109    "src/runtime.c",
110    "src/subgraph.c",
111    "src/subgraph/abs.c",
112    "src/subgraph/add2.c",
113    "src/subgraph/argmax-pooling-2d.c",
114    "src/subgraph/average-pooling-2d.c",
115    "src/subgraph/bankers-rounding.c",
116    "src/subgraph/ceiling.c",
117    "src/subgraph/clamp.c",
118    "src/subgraph/concatenate.c",
119    "src/subgraph/convert.c",
120    "src/subgraph/convolution-2d.c",
121    "src/subgraph/deconvolution-2d.c",
122    "src/subgraph/depth-to-space.c",
123    "src/subgraph/depthwise-convolution-2d.c",
124    "src/subgraph/divide.c",
125    "src/subgraph/elu.c",
126    "src/subgraph/even-split.c",
127    "src/subgraph/floor.c",
128    "src/subgraph/fully-connected.c",
129    "src/subgraph/global-average-pooling.c",
130    "src/subgraph/hardswish.c",
131    "src/subgraph/leaky-relu.c",
132    "src/subgraph/max-pooling-2d.c",
133    "src/subgraph/maximum2.c",
134    "src/subgraph/minimum2.c",
135    "src/subgraph/multiply2.c",
136    "src/subgraph/negate.c",
137    "src/subgraph/prelu.c",
138    "src/subgraph/sigmoid.c",
139    "src/subgraph/softmax.c",
140    "src/subgraph/square-root.c",
141    "src/subgraph/square.c",
142    "src/subgraph/squared-difference.c",
143    "src/subgraph/static-constant-pad.c",
144    "src/subgraph/static-reshape.c",
145    "src/subgraph/static-resize-bilinear-2d.c",
146    "src/subgraph/static-transpose.c",
147    "src/subgraph/subtract.c",
148    "src/subgraph/unpooling-2d.c",
149    "src/subgraph/validation.c",
150    "src/tensor.c",
151]
152
153TABLE_SRCS = [
154    "src/tables/exp2-k-over-64.c",
155    "src/tables/exp2-k-over-2048.c",
156    "src/tables/exp2minus-k-over-4.c",
157    "src/tables/exp2minus-k-over-8.c",
158    "src/tables/exp2minus-k-over-16.c",
159    "src/tables/exp2minus-k-over-64.c",
160    "src/tables/exp2minus-k-over-2048.c",
161    "src/tables/vlog.c",
162]
163
164PROD_SCALAR_PORTABLE_MICROKERNEL_SRCS = [
165    "src/u8-lut32norm/scalar.c",
166    "src/xx-copy/memcpy.c",
167    "src/xx-transpose/1x1-memcpy.c",
168    "src/x8-lut/gen/lut-scalar-x4.c",
169]
170
171PROD_SCALAR_AARCH32_MICROKERNEL_SRCS = [
172    "src/f16-f32-vcvt/gen/vcvt-scalar-x4.c",
173    "src/f32-argmaxpool/4x-scalar-c1.c",
174    "src/f32-argmaxpool/9p8x-scalar-c1.c",
175    "src/f32-argmaxpool/9x-scalar-c1.c",
176    "src/f32-avgpool/9p8x-minmax-scalar-c1.c",
177    "src/f32-avgpool/9x-minmax-scalar-c1.c",
178    "src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c",
179    "src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c",
180    "src/f32-conv-hwc2chw/3x3s2p1c3x4-scalar-1x1.c",
181    "src/f32-dwconv/gen/up1x3-minmax-scalar-acc2.c",
182    "src/f32-dwconv/gen/up1x3-scalar-acc2.c",
183    "src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c",
184    "src/f32-dwconv/gen/up1x4-scalar-acc2.c",
185    "src/f32-dwconv/gen/up1x9-minmax-scalar-acc2.c",
186    "src/f32-dwconv/gen/up1x9-scalar-acc2.c",
187    "src/f32-dwconv/gen/up1x25-minmax-scalar-acc2.c",
188    "src/f32-dwconv/gen/up1x25-scalar-acc2.c",
189    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-4x1.c",
190    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-2x1-acc2.c",
191    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-2x1-acc2.c",
192    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-2x1-acc2.c",
193    "src/f32-f16-vcvt/gen/vcvt-scalar-fabsf-x2.c",
194    "src/f32-gavgpool-cw/scalar-x1.c",
195    "src/f32-gavgpool/7p7x-minmax-scalar-c1.c",
196    "src/f32-gavgpool/7x-minmax-scalar-c1.c",
197    "src/f32-gemm/gen/1x4-minmax-scalar.c",
198    "src/f32-gemm/gen/1x4-relu-scalar.c",
199    "src/f32-gemm/gen/1x4-scalar.c",
200    "src/f32-gemm/gen/4x2-minmax-scalar.c",
201    "src/f32-gemm/gen/4x2-scalar.c",
202    "src/f32-gemm/gen/4x4-minmax-scalar.c",
203    "src/f32-gemm/gen/4x4-relu-scalar.c",
204    "src/f32-gemm/gen/4x4-scalar.c",
205    "src/f32-ibilinear-chw/gen/scalar-p4.c",
206    "src/f32-ibilinear/gen/scalar-c2.c",
207    "src/f32-igemm/gen/1x4-minmax-scalar.c",
208    "src/f32-igemm/gen/1x4-relu-scalar.c",
209    "src/f32-igemm/gen/1x4-scalar.c",
210    "src/f32-igemm/gen/4x2-minmax-scalar.c",
211    "src/f32-igemm/gen/4x2-scalar.c",
212    "src/f32-igemm/gen/4x4-minmax-scalar.c",
213    "src/f32-igemm/gen/4x4-relu-scalar.c",
214    "src/f32-igemm/gen/4x4-scalar.c",
215    "src/f32-maxpool/9p8x-minmax-scalar-c1.c",
216    "src/f32-pavgpool/9p8x-minmax-scalar-c1.c",
217    "src/f32-pavgpool/9x-minmax-scalar-c1.c",
218    "src/f32-prelu/gen/scalar-2x4.c",
219    "src/f32-qs8-vcvt/gen/vcvt-scalar-imagic-x4.c",
220    "src/f32-qu8-vcvt/gen/vcvt-scalar-imagic-x4.c",
221    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x4-acc2.c",
222    "src/f32-rmax/scalar.c",
223    "src/f32-spmm/gen/8x1-minmax-scalar.c",
224    "src/f32-spmm/gen/8x2-minmax-scalar.c",
225    "src/f32-spmm/gen/8x4-minmax-scalar.c",
226    "src/f32-vbinary/gen/vadd-minmax-scalar-x8.c",
227    "src/f32-vbinary/gen/vaddc-minmax-scalar-x8.c",
228    "src/f32-vbinary/gen/vdiv-minmax-scalar-x2.c",
229    "src/f32-vbinary/gen/vdivc-minmax-scalar-x2.c",
230    "src/f32-vbinary/gen/vmax-scalar-x8.c",
231    "src/f32-vbinary/gen/vmaxc-scalar-x8.c",
232    "src/f32-vbinary/gen/vmin-scalar-x8.c",
233    "src/f32-vbinary/gen/vminc-scalar-x8.c",
234    "src/f32-vbinary/gen/vmul-minmax-scalar-x8.c",
235    "src/f32-vbinary/gen/vmulc-minmax-scalar-x8.c",
236    "src/f32-vbinary/gen/vrdivc-minmax-scalar-x2.c",
237    "src/f32-vbinary/gen/vrsubc-minmax-scalar-x8.c",
238    "src/f32-vbinary/gen/vsqrdiff-scalar-x8.c",
239    "src/f32-vbinary/gen/vsqrdiffc-scalar-x8.c",
240    "src/f32-vbinary/gen/vsub-minmax-scalar-x8.c",
241    "src/f32-vbinary/gen/vsubc-minmax-scalar-x8.c",
242    "src/f32-vclamp/gen/vclamp-scalar-x4.c",
243    "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x4.c",
244    "src/f32-vhswish/gen/vhswish-scalar-x4.c",
245    "src/f32-vlrelu/gen/vlrelu-scalar-x4.c",
246    "src/f32-vmulcaddc/gen/c1-minmax-scalar-2x.c",
247    "src/f32-vrelu/gen/vrelu-scalar-x8.c",
248    "src/f32-vrnd/gen/vrndd-scalar-libm-x1.c",
249    "src/f32-vrnd/gen/vrndne-scalar-libm-x1.c",
250    "src/f32-vrnd/gen/vrndu-scalar-libm-x1.c",
251    "src/f32-vrnd/gen/vrndz-scalar-libm-x1.c",
252    "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut64-p2-div-x2.c",
253    "src/f32-vsqrt/gen/scalar-sqrt-x1.c",
254    "src/f32-vunary/gen/vabs-scalar-x4.c",
255    "src/f32-vunary/gen/vneg-scalar-x4.c",
256    "src/f32-vunary/gen/vsqr-scalar-x4.c",
257    "src/qc8-dwconv/gen/up1x3-minmax-fp32-scalar-fmagic.c",
258    "src/qc8-dwconv/gen/up1x9-minmax-fp32-scalar-fmagic.c",
259    "src/qc8-dwconv/gen/up1x25-minmax-fp32-scalar-fmagic.c",
260    "src/qc8-gemm/gen/1x2-minmax-fp32-scalar-fmagic.c",
261    "src/qc8-gemm/gen/2x2-minmax-fp32-scalar-fmagic.c",
262    "src/qc8-igemm/gen/1x2-minmax-fp32-scalar-fmagic.c",
263    "src/qc8-igemm/gen/2x2-minmax-fp32-scalar-fmagic.c",
264    "src/qs8-dwconv/gen/up1x9-minmax-fp32-scalar-fmagic.c",
265    "src/qs8-dwconv/gen/up1x25-minmax-fp32-scalar-fmagic.c",
266    "src/qs8-f32-vcvt/gen/vcvt-scalar-x4.c",
267    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c1.c",
268    "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c1.c",
269    "src/qs8-gemm/gen/1x2-minmax-fp32-scalar-fmagic.c",
270    "src/qs8-gemm/gen/2x2-minmax-fp32-scalar-fmagic.c",
271    "src/qs8-igemm/gen/1x2-minmax-fp32-scalar-fmagic.c",
272    "src/qs8-igemm/gen/2x2-minmax-fp32-scalar-fmagic.c",
273    "src/qs8-vadd/gen/minmax-scalar-x1.c",
274    "src/qs8-vaddc/gen/minmax-scalar-x1.c",
275    "src/qs8-vmul/gen/minmax-fp32-scalar-x4.c",
276    "src/qs8-vmulc/gen/minmax-fp32-scalar-x4.c",
277    "src/qu8-avgpool/9p8x-minmax-scalar-c1.c",
278    "src/qu8-avgpool/9x-minmax-scalar-c1.c",
279    "src/qu8-dwconv/gen/up1x9-minmax-fp32-scalar-fmagic.c",
280    "src/qu8-dwconv/gen/up1x25-minmax-fp32-scalar-fmagic.c",
281    "src/qu8-f32-vcvt/gen/vcvt-scalar-x4.c",
282    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c1.c",
283    "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c1.c",
284    "src/qu8-gemm/gen/1x2-minmax-fp32-scalar-fmagic.c",
285    "src/qu8-gemm/gen/2x2-minmax-fp32-scalar-fmagic.c",
286    "src/qu8-igemm/gen/1x2-minmax-fp32-scalar-fmagic.c",
287    "src/qu8-igemm/gen/2x2-minmax-fp32-scalar-fmagic.c",
288    "src/qu8-vadd/gen/minmax-scalar-x1.c",
289    "src/qu8-vaddc/gen/minmax-scalar-x1.c",
290    "src/qu8-vmul/gen/minmax-fp32-scalar-x4.c",
291    "src/qu8-vmulc/gen/minmax-fp32-scalar-x4.c",
292    "src/s8-ibilinear/gen/scalar-c1.c",
293    "src/s8-maxpool/9p8x-minmax-scalar-c1.c",
294    "src/s8-vclamp/scalar-x4.c",
295    "src/u8-ibilinear/gen/scalar-c1.c",
296    "src/u8-maxpool/9p8x-minmax-scalar-c1.c",
297    "src/u8-rmax/scalar.c",
298    "src/u8-vclamp/scalar-x4.c",
299    "src/xx-fill/scalar-x16.c",
300    "src/xx-pad/scalar.c",
301    "src/x8-transposec/gen/2x4-scalar-int.c",
302    "src/x8-zip/xm-scalar.c",
303    "src/x8-zip/x2-scalar.c",
304    "src/x8-zip/x3-scalar.c",
305    "src/x8-zip/x4-scalar.c",
306    "src/x16-transposec/gen/2x4-scalar-int.c",
307    "src/x32-packx/x2-scalar.c",
308    "src/x32-packx/x3-scalar.c",
309    "src/x32-packx/x4-scalar.c",
310    "src/x32-transposec/gen/2x4-scalar-int.c",
311    "src/x32-unpool/scalar.c",
312    "src/x32-zip/xm-scalar.c",
313    "src/x32-zip/x2-scalar.c",
314    "src/x32-zip/x3-scalar.c",
315    "src/x32-zip/x4-scalar.c",
316]
317
318PROD_SCALAR_WASM_MICROKERNEL_SRCS = [
319    "src/f16-f32-vcvt/gen/vcvt-scalar-x1.c",
320    "src/f32-argmaxpool/4x-scalar-c1.c",
321    "src/f32-argmaxpool/9p8x-scalar-c1.c",
322    "src/f32-argmaxpool/9x-scalar-c1.c",
323    "src/f32-avgpool/9p8x-minmax-scalar-c1.c",
324    "src/f32-avgpool/9x-minmax-scalar-c1.c",
325    "src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c",
326    "src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c",
327    "src/f32-conv-hwc2chw/3x3s2p1c3x4-scalar-1x1.c",
328    "src/f32-dwconv/gen/up1x3-minmax-scalar-acc2.c",
329    "src/f32-dwconv/gen/up1x3-scalar-acc2.c",
330    "src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c",
331    "src/f32-dwconv/gen/up1x4-scalar-acc2.c",
332    "src/f32-dwconv/gen/up1x9-minmax-scalar-acc2.c",
333    "src/f32-dwconv/gen/up1x9-scalar-acc2.c",
334    "src/f32-dwconv/gen/up1x25-minmax-scalar-acc2.c",
335    "src/f32-dwconv/gen/up1x25-scalar-acc2.c",
336    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-2x1-acc2.c",
337    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-1x1-acc2.c",
338    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-1x1-acc5.c",
339    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-1x1-acc5.c",
340    "src/f32-f16-vcvt/gen/vcvt-scalar-bitcast-x4.c",
341    "src/f32-gavgpool-cw/scalar-x1.c",
342    "src/f32-gavgpool/7p7x-minmax-scalar-c1.c",
343    "src/f32-gavgpool/7x-minmax-scalar-c1.c",
344    "src/f32-gemm/gen/1x4-scalar.c",
345    "src/f32-gemm/gen/2x4-minmax-scalar.c",
346    "src/f32-gemm/gen/2x4-relu-scalar.c",
347    "src/f32-gemm/gen/2x4-scalar.c",
348    "src/f32-gemm/gen/4x2-scalar.c",
349    "src/f32-gemm/gen/4x4-scalar.c",
350    "src/f32-ibilinear-chw/gen/scalar-p4.c",
351    "src/f32-ibilinear/gen/scalar-c2.c",
352    "src/f32-igemm/gen/1x4-scalar.c",
353    "src/f32-igemm/gen/2x4-minmax-scalar.c",
354    "src/f32-igemm/gen/2x4-relu-scalar.c",
355    "src/f32-igemm/gen/2x4-scalar.c",
356    "src/f32-igemm/gen/4x2-scalar.c",
357    "src/f32-igemm/gen/4x4-scalar.c",
358    "src/f32-maxpool/9p8x-minmax-scalar-c1.c",
359    "src/f32-pavgpool/9p8x-minmax-scalar-c1.c",
360    "src/f32-pavgpool/9x-minmax-scalar-c1.c",
361    "src/f32-prelu/gen/scalar-2x4.c",
362    "src/f32-qs8-vcvt/gen/vcvt-scalar-imagic-x1.c",
363    "src/f32-qu8-vcvt/gen/vcvt-scalar-imagic-x1.c",
364    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x4-acc2.c",
365    "src/f32-rmax/scalar.c",
366    "src/f32-spmm/gen/8x1-minmax-scalar.c",
367    "src/f32-spmm/gen/8x2-minmax-scalar.c",
368    "src/f32-spmm/gen/8x4-minmax-scalar.c",
369    "src/f32-vbinary/gen/vadd-minmax-scalar-x8.c",
370    "src/f32-vbinary/gen/vaddc-minmax-scalar-x8.c",
371    "src/f32-vbinary/gen/vdiv-minmax-scalar-x8.c",
372    "src/f32-vbinary/gen/vdivc-minmax-scalar-x8.c",
373    "src/f32-vbinary/gen/vmax-scalar-x8.c",
374    "src/f32-vbinary/gen/vmaxc-scalar-x8.c",
375    "src/f32-vbinary/gen/vmin-scalar-x8.c",
376    "src/f32-vbinary/gen/vminc-scalar-x8.c",
377    "src/f32-vbinary/gen/vmul-minmax-scalar-x8.c",
378    "src/f32-vbinary/gen/vmulc-minmax-scalar-x8.c",
379    "src/f32-vbinary/gen/vrdivc-minmax-scalar-x8.c",
380    "src/f32-vbinary/gen/vrsubc-minmax-scalar-x8.c",
381    "src/f32-vbinary/gen/vsqrdiff-scalar-x8.c",
382    "src/f32-vbinary/gen/vsqrdiffc-scalar-x8.c",
383    "src/f32-vbinary/gen/vsub-minmax-scalar-x8.c",
384    "src/f32-vbinary/gen/vsubc-minmax-scalar-x8.c",
385    "src/f32-vclamp/gen/vclamp-scalar-x4.c",
386    "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x2.c",
387    "src/f32-vhswish/gen/vhswish-scalar-x4.c",
388    "src/f32-vlrelu/gen/vlrelu-scalar-x4.c",
389    "src/f32-vmulcaddc/gen/c1-minmax-scalar-2x.c",
390    "src/f32-vrelu/gen/vrelu-scalar-x8.c",
391    "src/f32-vrnd/gen/vrndd-scalar-libm-x4.c",
392    "src/f32-vrnd/gen/vrndne-scalar-libm-x4.c",
393    "src/f32-vrnd/gen/vrndu-scalar-libm-x4.c",
394    "src/f32-vrnd/gen/vrndz-scalar-libm-x4.c",
395    "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut64-p2-div-x2.c",
396    "src/f32-vsqrt/gen/scalar-sqrt-x1.c",
397    "src/f32-vunary/gen/vabs-scalar-x4.c",
398    "src/f32-vunary/gen/vneg-scalar-x4.c",
399    "src/f32-vunary/gen/vsqr-scalar-x4.c",
400    "src/qc8-dwconv/gen/up1x25-minmax-fp32-scalar-imagic.c",
401    "src/qc8-dwconv/gen/up2x3-minmax-fp32-scalar-imagic.c",
402    "src/qc8-dwconv/gen/up2x9-minmax-fp32-scalar-imagic.c",
403    "src/qc8-gemm/gen/1x2-minmax-fp32-scalar-imagic.c",
404    "src/qc8-gemm/gen/2x2-minmax-fp32-scalar-imagic.c",
405    "src/qc8-igemm/gen/1x2-minmax-fp32-scalar-imagic.c",
406    "src/qc8-igemm/gen/2x2-minmax-fp32-scalar-imagic.c",
407    "src/qs8-dwconv/gen/up1x25-minmax-fp32-scalar-imagic.c",
408    "src/qs8-dwconv/gen/up2x9-minmax-fp32-scalar-imagic.c",
409    "src/qs8-f32-vcvt/gen/vcvt-scalar-x1.c",
410    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c4.c",
411    "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c4.c",
412    "src/qs8-gemm/gen/1x2-minmax-fp32-scalar-imagic.c",
413    "src/qs8-gemm/gen/2x2-minmax-fp32-scalar-imagic.c",
414    "src/qs8-igemm/gen/1x2-minmax-fp32-scalar-imagic.c",
415    "src/qs8-igemm/gen/2x2-minmax-fp32-scalar-imagic.c",
416    "src/qs8-vadd/gen/minmax-scalar-x4.c",
417    "src/qs8-vaddc/gen/minmax-scalar-x4.c",
418    "src/qs8-vcvt/gen/vcvt-scalar-x1.c",
419    "src/qs8-vcvt/gen/vcvt-scalar-x4.c",
420    "src/qs8-vlrelu/gen/vlrelu-scalar-andxor-x4.c",
421    "src/qs8-vlrelu/gen/vlrelu-scalar-select-x4.c",
422    "src/qs8-vmul/gen/minmax-fp32-scalar-x4.c",
423    "src/qs8-vmulc/gen/minmax-fp32-scalar-x4.c",
424    "src/qu8-avgpool/9p8x-minmax-scalar-c1.c",
425    "src/qu8-avgpool/9x-minmax-scalar-c1.c",
426    "src/qu8-dwconv/gen/up1x25-minmax-fp32-scalar-imagic.c",
427    "src/qu8-dwconv/gen/up2x9-minmax-fp32-scalar-imagic.c",
428    "src/qu8-f32-vcvt/gen/vcvt-scalar-x1.c",
429    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c4.c",
430    "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c4.c",
431    "src/qu8-gemm/gen/1x2-minmax-fp32-scalar-imagic.c",
432    "src/qu8-gemm/gen/2x2-minmax-fp32-scalar-imagic.c",
433    "src/qu8-igemm/gen/1x2-minmax-fp32-scalar-imagic.c",
434    "src/qu8-igemm/gen/2x2-minmax-fp32-scalar-imagic.c",
435    "src/qu8-vadd/gen/minmax-scalar-x4.c",
436    "src/qu8-vaddc/gen/minmax-scalar-x4.c",
437    "src/qu8-vcvt/gen/vcvt-scalar-x1.c",
438    "src/qu8-vcvt/gen/vcvt-scalar-x4.c",
439    "src/qu8-vlrelu/gen/vlrelu-scalar-andxor-x4.c",
440    "src/qu8-vlrelu/gen/vlrelu-scalar-select-x4.c",
441    "src/qu8-vmul/gen/minmax-fp32-scalar-x4.c",
442    "src/qu8-vmulc/gen/minmax-fp32-scalar-x4.c",
443    "src/s8-ibilinear/gen/scalar-c1.c",
444    "src/s8-maxpool/9p8x-minmax-scalar-c1.c",
445    "src/s8-vclamp/scalar-x4.c",
446    "src/u8-ibilinear/gen/scalar-c1.c",
447    "src/u8-maxpool/9p8x-minmax-scalar-c1.c",
448    "src/u8-rmax/scalar.c",
449    "src/u8-vclamp/scalar-x4.c",
450    "src/xx-fill/scalar-x16.c",
451    "src/xx-pad/scalar.c",
452    "src/x8-transposec/gen/2x4-scalar-int.c",
453    "src/x8-zip/xm-scalar.c",
454    "src/x8-zip/x2-scalar.c",
455    "src/x8-zip/x3-scalar.c",
456    "src/x8-zip/x4-scalar.c",
457    "src/x16-transposec/gen/2x4-scalar-int.c",
458    "src/x32-packx/x2-scalar.c",
459    "src/x32-packx/x3-scalar.c",
460    "src/x32-packx/x4-scalar.c",
461    "src/x32-transposec/gen/2x4-scalar-int.c",
462    "src/x32-unpool/scalar.c",
463    "src/x32-zip/xm-scalar.c",
464    "src/x32-zip/x2-scalar.c",
465    "src/x32-zip/x3-scalar.c",
466    "src/x32-zip/x4-scalar.c",
467]
468
469PROD_SCALAR_RISCV_MICROKERNEL_SRCS = [
470    "src/f16-f32-vcvt/gen/vcvt-scalar-x4.c",
471    "src/f32-argmaxpool/4x-scalar-c1.c",
472    "src/f32-argmaxpool/9p8x-scalar-c1.c",
473    "src/f32-argmaxpool/9x-scalar-c1.c",
474    "src/f32-avgpool/9p8x-minmax-scalar-c1.c",
475    "src/f32-avgpool/9x-minmax-scalar-c1.c",
476    "src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c",
477    "src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c",
478    "src/f32-conv-hwc2chw/3x3s2p1c3x4-scalar-1x1.c",
479    "src/f32-dwconv/gen/up1x3-minmax-scalar-acc2.c",
480    "src/f32-dwconv/gen/up1x3-scalar-acc2.c",
481    "src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c",
482    "src/f32-dwconv/gen/up1x4-scalar-acc2.c",
483    "src/f32-dwconv/gen/up1x9-minmax-scalar-acc2.c",
484    "src/f32-dwconv/gen/up1x9-scalar-acc2.c",
485    "src/f32-dwconv/gen/up1x25-minmax-scalar-acc2.c",
486    "src/f32-dwconv/gen/up1x25-scalar-acc2.c",
487    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-2x1-acc2.c",
488    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-1x1-acc2.c",
489    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-1x1-acc5.c",
490    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-1x1-acc5.c",
491    "src/f32-f16-vcvt/gen/vcvt-scalar-fabsf-x2.c",
492    "src/f32-gavgpool-cw/scalar-x1.c",
493    "src/f32-gavgpool/7p7x-minmax-scalar-c1.c",
494    "src/f32-gavgpool/7x-minmax-scalar-c1.c",
495    "src/f32-gemm/gen/1x4-minmax-scalar.c",
496    "src/f32-gemm/gen/1x4-relu-scalar.c",
497    "src/f32-gemm/gen/1x4-scalar.c",
498    "src/f32-gemm/gen/4x2-minmax-scalar.c",
499    "src/f32-gemm/gen/4x2-scalar.c",
500    "src/f32-gemm/gen/4x4-minmax-scalar.c",
501    "src/f32-gemm/gen/4x4-relu-scalar.c",
502    "src/f32-gemm/gen/4x4-scalar.c",
503    "src/f32-ibilinear-chw/gen/scalar-p4.c",
504    "src/f32-ibilinear/gen/scalar-c2.c",
505    "src/f32-igemm/gen/1x4-minmax-scalar.c",
506    "src/f32-igemm/gen/1x4-relu-scalar.c",
507    "src/f32-igemm/gen/1x4-scalar.c",
508    "src/f32-igemm/gen/4x2-minmax-scalar.c",
509    "src/f32-igemm/gen/4x2-scalar.c",
510    "src/f32-igemm/gen/4x4-minmax-scalar.c",
511    "src/f32-igemm/gen/4x4-relu-scalar.c",
512    "src/f32-igemm/gen/4x4-scalar.c",
513    "src/f32-maxpool/9p8x-minmax-scalar-c1.c",
514    "src/f32-pavgpool/9p8x-minmax-scalar-c1.c",
515    "src/f32-pavgpool/9x-minmax-scalar-c1.c",
516    "src/f32-prelu/gen/scalar-2x4.c",
517    "src/f32-qs8-vcvt/gen/vcvt-scalar-lrintf-x4.c",
518    "src/f32-qu8-vcvt/gen/vcvt-scalar-lrintf-x4.c",
519    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x4-acc2.c",
520    "src/f32-rmax/scalar.c",
521    "src/f32-spmm/gen/8x1-minmax-scalar.c",
522    "src/f32-spmm/gen/8x2-minmax-scalar.c",
523    "src/f32-spmm/gen/8x4-minmax-scalar.c",
524    "src/f32-vbinary/gen/vadd-minmax-scalar-x8.c",
525    "src/f32-vbinary/gen/vaddc-minmax-scalar-x8.c",
526    "src/f32-vbinary/gen/vdiv-minmax-scalar-x2.c",
527    "src/f32-vbinary/gen/vdivc-minmax-scalar-x2.c",
528    "src/f32-vbinary/gen/vmax-scalar-x8.c",
529    "src/f32-vbinary/gen/vmaxc-scalar-x8.c",
530    "src/f32-vbinary/gen/vmin-scalar-x8.c",
531    "src/f32-vbinary/gen/vminc-scalar-x8.c",
532    "src/f32-vbinary/gen/vmul-minmax-scalar-x8.c",
533    "src/f32-vbinary/gen/vmulc-minmax-scalar-x8.c",
534    "src/f32-vbinary/gen/vrdivc-minmax-scalar-x2.c",
535    "src/f32-vbinary/gen/vrsubc-minmax-scalar-x8.c",
536    "src/f32-vbinary/gen/vsqrdiff-scalar-x8.c",
537    "src/f32-vbinary/gen/vsqrdiffc-scalar-x8.c",
538    "src/f32-vbinary/gen/vsub-minmax-scalar-x8.c",
539    "src/f32-vbinary/gen/vsubc-minmax-scalar-x8.c",
540    "src/f32-vclamp/gen/vclamp-scalar-x4.c",
541    "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x4.c",
542    "src/f32-vhswish/gen/vhswish-scalar-x4.c",
543    "src/f32-vlrelu/gen/vlrelu-scalar-x4.c",
544    "src/f32-vmulcaddc/gen/c1-minmax-scalar-2x.c",
545    "src/f32-vrelu/gen/vrelu-scalar-x8.c",
546    "src/f32-vrnd/gen/vrndd-scalar-libm-x1.c",
547    "src/f32-vrnd/gen/vrndne-scalar-libm-x1.c",
548    "src/f32-vrnd/gen/vrndu-scalar-libm-x1.c",
549    "src/f32-vrnd/gen/vrndz-scalar-libm-x1.c",
550    "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut64-p2-div-x2.c",
551    "src/f32-vsqrt/gen/scalar-sqrt-x1.c",
552    "src/f32-vunary/gen/vabs-scalar-x4.c",
553    "src/f32-vunary/gen/vneg-scalar-x4.c",
554    "src/f32-vunary/gen/vsqr-scalar-x4.c",
555    "src/qc8-dwconv/gen/up2x3-minmax-fp32-scalar-lrintf.c",
556    "src/qc8-dwconv/gen/up2x9-minmax-fp32-scalar-lrintf.c",
557    "src/qc8-dwconv/gen/up2x25-minmax-fp32-scalar-lrintf.c",
558    "src/qc8-gemm/gen/1x4-minmax-fp32-scalar-lrintf.c",
559    "src/qc8-gemm/gen/3x4-minmax-fp32-scalar-lrintf.c",
560    "src/qc8-igemm/gen/1x4-minmax-fp32-scalar-lrintf.c",
561    "src/qc8-igemm/gen/3x4-minmax-fp32-scalar-lrintf.c",
562    "src/qs8-dwconv/gen/up2x9-minmax-fp32-scalar-lrintf.c",
563    "src/qs8-dwconv/gen/up2x25-minmax-fp32-scalar-lrintf.c",
564    "src/qs8-f32-vcvt/gen/vcvt-scalar-x4.c",
565    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c1.c",
566    "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c1.c",
567    "src/qs8-gemm/gen/1x4-minmax-fp32-scalar-lrintf.c",
568    "src/qs8-gemm/gen/3x4-minmax-fp32-scalar-lrintf.c",
569    "src/qs8-igemm/gen/1x4-minmax-fp32-scalar-lrintf.c",
570    "src/qs8-igemm/gen/3x4-minmax-fp32-scalar-lrintf.c",
571    "src/qs8-vadd/gen/minmax-scalar-x4.c",
572    "src/qs8-vaddc/gen/minmax-scalar-x4.c",
573    "src/qs8-vcvt/gen/vcvt-scalar-x4.c",
574    "src/qs8-vlrelu/gen/vlrelu-scalar-andxor-x4.c",
575    "src/qs8-vmul/gen/minmax-fp32-scalar-x4.c",
576    "src/qs8-vmulc/gen/minmax-fp32-scalar-x4.c",
577    "src/qu8-avgpool/9p8x-minmax-scalar-c1.c",
578    "src/qu8-avgpool/9x-minmax-scalar-c1.c",
579    "src/qu8-dwconv/gen/up2x9-minmax-fp32-scalar-lrintf.c",
580    "src/qu8-dwconv/gen/up2x25-minmax-fp32-scalar-lrintf.c",
581    "src/qu8-f32-vcvt/gen/vcvt-scalar-x4.c",
582    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c1.c",
583    "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c1.c",
584    "src/qu8-gemm/gen/1x4-minmax-fp32-scalar-lrintf.c",
585    "src/qu8-gemm/gen/3x4-minmax-fp32-scalar-lrintf.c",
586    "src/qu8-igemm/gen/1x4-minmax-fp32-scalar-lrintf.c",
587    "src/qu8-igemm/gen/3x4-minmax-fp32-scalar-lrintf.c",
588    "src/qu8-vadd/gen/minmax-scalar-x4.c",
589    "src/qu8-vaddc/gen/minmax-scalar-x4.c",
590    "src/qu8-vcvt/gen/vcvt-scalar-x4.c",
591    "src/qu8-vlrelu/gen/vlrelu-scalar-andxor-x4.c",
592    "src/qu8-vmul/gen/minmax-fp32-scalar-x4.c",
593    "src/qu8-vmulc/gen/minmax-fp32-scalar-x4.c",
594    "src/s8-ibilinear/gen/scalar-c1.c",
595    "src/s8-maxpool/9p8x-minmax-scalar-c1.c",
596    "src/s8-vclamp/scalar-x4.c",
597    "src/u8-ibilinear/gen/scalar-c1.c",
598    "src/u8-maxpool/9p8x-minmax-scalar-c1.c",
599    "src/u8-rmax/scalar.c",
600    "src/u8-vclamp/scalar-x4.c",
601    "src/xx-fill/scalar-x16.c",
602    "src/xx-pad/scalar.c",
603    "src/x8-transposec/gen/2x4-scalar-int.c",
604    "src/x8-zip/xm-scalar.c",
605    "src/x8-zip/x2-scalar.c",
606    "src/x8-zip/x3-scalar.c",
607    "src/x8-zip/x4-scalar.c",
608    "src/x16-transposec/gen/2x4-scalar-int.c",
609    "src/x32-packx/x2-scalar.c",
610    "src/x32-packx/x3-scalar.c",
611    "src/x32-packx/x4-scalar.c",
612    "src/x32-transposec/gen/2x4-scalar-int.c",
613    "src/x32-unpool/scalar.c",
614    "src/x32-zip/xm-scalar.c",
615    "src/x32-zip/x2-scalar.c",
616    "src/x32-zip/x3-scalar.c",
617    "src/x32-zip/x4-scalar.c",
618]
619
620ALL_SCALAR_MICROKERNEL_SRCS = [
621    "src/cs16-bfly4/gen/scalar-x1.c",
622    "src/cs16-bfly4/gen/scalar-x2.c",
623    "src/cs16-bfly4/gen/scalar-x3.c",
624    "src/cs16-bfly4/gen/scalar-x4.c",
625    "src/cs16-bfly4/samples1-scalar.c",
626    "src/cs16-fftr/gen/scalar-x1.c",
627    "src/cs16-fftr/gen/scalar-x2.c",
628    "src/cs16-fftr/gen/scalar-x3.c",
629    "src/cs16-fftr/gen/scalar-x4.c",
630    "src/cs16-vsquareabs/gen/scalar-x1.c",
631    "src/cs16-vsquareabs/gen/scalar-x2.c",
632    "src/cs16-vsquareabs/gen/scalar-x3.c",
633    "src/cs16-vsquareabs/gen/scalar-x4.c",
634    "src/f16-f32-vcvt/gen/vcvt-scalar-x1.c",
635    "src/f16-f32-vcvt/gen/vcvt-scalar-x2.c",
636    "src/f16-f32-vcvt/gen/vcvt-scalar-x3.c",
637    "src/f16-f32-vcvt/gen/vcvt-scalar-x4.c",
638    "src/f32-argmaxpool/4x-scalar-c1.c",
639    "src/f32-argmaxpool/9p8x-scalar-c1.c",
640    "src/f32-argmaxpool/9x-scalar-c1.c",
641    "src/f32-avgpool/9p8x-minmax-scalar-c1.c",
642    "src/f32-avgpool/9x-minmax-scalar-c1.c",
643    "src/f32-conv-hwc/3x3s2p0p1c3x4-scalar-1x1.c",
644    "src/f32-conv-hwc/3x3s2p1c3x4-scalar-1x1.c",
645    "src/f32-conv-hwc2chw/3x3s2p1c3x4-scalar-1x1.c",
646    "src/f32-dwconv/gen/up1x3-minmax-scalar-acc2.c",
647    "src/f32-dwconv/gen/up1x3-minmax-scalar.c",
648    "src/f32-dwconv/gen/up1x3-scalar-acc2.c",
649    "src/f32-dwconv/gen/up1x3-scalar.c",
650    "src/f32-dwconv/gen/up1x4-minmax-scalar-acc2.c",
651    "src/f32-dwconv/gen/up1x4-minmax-scalar.c",
652    "src/f32-dwconv/gen/up1x4-scalar-acc2.c",
653    "src/f32-dwconv/gen/up1x4-scalar.c",
654    "src/f32-dwconv/gen/up1x9-minmax-scalar-acc2.c",
655    "src/f32-dwconv/gen/up1x9-minmax-scalar.c",
656    "src/f32-dwconv/gen/up1x9-scalar-acc2.c",
657    "src/f32-dwconv/gen/up1x9-scalar.c",
658    "src/f32-dwconv/gen/up1x25-minmax-scalar-acc2.c",
659    "src/f32-dwconv/gen/up1x25-minmax-scalar.c",
660    "src/f32-dwconv/gen/up1x25-scalar-acc2.c",
661    "src/f32-dwconv/gen/up1x25-scalar.c",
662    "src/f32-dwconv/gen/up2x3-minmax-scalar-acc2.c",
663    "src/f32-dwconv/gen/up2x3-minmax-scalar.c",
664    "src/f32-dwconv/gen/up2x3-scalar-acc2.c",
665    "src/f32-dwconv/gen/up2x3-scalar.c",
666    "src/f32-dwconv/gen/up2x4-minmax-scalar-acc2.c",
667    "src/f32-dwconv/gen/up2x4-minmax-scalar.c",
668    "src/f32-dwconv/gen/up2x4-scalar-acc2.c",
669    "src/f32-dwconv/gen/up2x4-scalar.c",
670    "src/f32-dwconv/gen/up2x9-minmax-scalar-acc2.c",
671    "src/f32-dwconv/gen/up2x9-minmax-scalar.c",
672    "src/f32-dwconv/gen/up2x9-scalar-acc2.c",
673    "src/f32-dwconv/gen/up2x9-scalar.c",
674    "src/f32-dwconv/gen/up2x25-minmax-scalar-acc2.c",
675    "src/f32-dwconv/gen/up2x25-minmax-scalar.c",
676    "src/f32-dwconv/gen/up2x25-scalar-acc2.c",
677    "src/f32-dwconv/gen/up2x25-scalar.c",
678    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-1x1-acc2.c",
679    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-1x1-acc3.c",
680    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-1x1-acc4.c",
681    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-1x1.c",
682    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-2x1-acc2.c",
683    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-2x1.c",
684    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-3x1.c",
685    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-4x1.c",
686    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-5x1.c",
687    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-scalar-6x1.c",
688    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-1x1-acc2.c",
689    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-1x1-acc3.c",
690    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-1x1-acc4.c",
691    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-1x1.c",
692    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-2x1-acc2.c",
693    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-2x1.c",
694    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-3x1.c",
695    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-scalar-4x1.c",
696    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-1x1-acc2.c",
697    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-1x1-acc3.c",
698    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-1x1-acc4.c",
699    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-1x1-acc5.c",
700    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-1x1.c",
701    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-2x1-acc2.c",
702    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-2x1-acc3.c",
703    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-2x1.c",
704    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-3x1-acc2.c",
705    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-scalar-3x1.c",
706    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-1x1-acc2.c",
707    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-1x1-acc3.c",
708    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-1x1-acc4.c",
709    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-1x1-acc5.c",
710    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-1x1.c",
711    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-2x1-acc2.c",
712    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-2x1-acc3.c",
713    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-2x1.c",
714    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-3x1-acc2.c",
715    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-scalar-3x1.c",
716    "src/f32-f16-vcvt/gen/vcvt-scalar-bitcast-x1.c",
717    "src/f32-f16-vcvt/gen/vcvt-scalar-bitcast-x2.c",
718    "src/f32-f16-vcvt/gen/vcvt-scalar-bitcast-x3.c",
719    "src/f32-f16-vcvt/gen/vcvt-scalar-bitcast-x4.c",
720    "src/f32-f16-vcvt/gen/vcvt-scalar-fabsf-x1.c",
721    "src/f32-f16-vcvt/gen/vcvt-scalar-fabsf-x2.c",
722    "src/f32-f16-vcvt/gen/vcvt-scalar-fabsf-x3.c",
723    "src/f32-f16-vcvt/gen/vcvt-scalar-fabsf-x4.c",
724    "src/f32-gavgpool-cw/scalar-x1.c",
725    "src/f32-gavgpool/7p7x-minmax-scalar-c1.c",
726    "src/f32-gavgpool/7x-minmax-scalar-c1.c",
727    "src/f32-gemm/gen-inc/1x4inc-minmax-scalar.c",
728    "src/f32-gemm/gen-inc/2x4inc-minmax-scalar.c",
729    "src/f32-gemm/gen-inc/4x4inc-minmax-scalar.c",
730    "src/f32-gemm/gen/1x4-minmax-scalar.c",
731    "src/f32-gemm/gen/1x4-relu-scalar.c",
732    "src/f32-gemm/gen/1x4-scalar.c",
733    "src/f32-gemm/gen/2x4-minmax-scalar.c",
734    "src/f32-gemm/gen/2x4-relu-scalar.c",
735    "src/f32-gemm/gen/2x4-scalar.c",
736    "src/f32-gemm/gen/4x2-minmax-scalar.c",
737    "src/f32-gemm/gen/4x2-relu-scalar.c",
738    "src/f32-gemm/gen/4x2-scalar.c",
739    "src/f32-gemm/gen/4x4-minmax-scalar.c",
740    "src/f32-gemm/gen/4x4-relu-scalar.c",
741    "src/f32-gemm/gen/4x4-scalar.c",
742    "src/f32-ibilinear-chw/gen/scalar-p1.c",
743    "src/f32-ibilinear-chw/gen/scalar-p2.c",
744    "src/f32-ibilinear-chw/gen/scalar-p4.c",
745    "src/f32-ibilinear/gen/scalar-c1.c",
746    "src/f32-ibilinear/gen/scalar-c2.c",
747    "src/f32-ibilinear/gen/scalar-c4.c",
748    "src/f32-igemm/gen/1x4-minmax-scalar.c",
749    "src/f32-igemm/gen/1x4-relu-scalar.c",
750    "src/f32-igemm/gen/1x4-scalar.c",
751    "src/f32-igemm/gen/2x4-minmax-scalar.c",
752    "src/f32-igemm/gen/2x4-relu-scalar.c",
753    "src/f32-igemm/gen/2x4-scalar.c",
754    "src/f32-igemm/gen/4x2-minmax-scalar.c",
755    "src/f32-igemm/gen/4x2-relu-scalar.c",
756    "src/f32-igemm/gen/4x2-scalar.c",
757    "src/f32-igemm/gen/4x4-minmax-scalar.c",
758    "src/f32-igemm/gen/4x4-relu-scalar.c",
759    "src/f32-igemm/gen/4x4-scalar.c",
760    "src/f32-maxpool/9p8x-minmax-scalar-c1.c",
761    "src/f32-pavgpool/9p8x-minmax-scalar-c1.c",
762    "src/f32-pavgpool/9x-minmax-scalar-c1.c",
763    "src/f32-ppmm/gen/2x4-minmax-scalar.c",
764    "src/f32-ppmm/gen/3x3-minmax-scalar.c",
765    "src/f32-ppmm/gen/4x2-minmax-scalar.c",
766    "src/f32-ppmm/gen/4x4-minmax-scalar.c",
767    "src/f32-prelu/gen/scalar-2x1.c",
768    "src/f32-prelu/gen/scalar-2x4.c",
769    "src/f32-qs8-vcvt/gen/vcvt-scalar-fmagic-x1.c",
770    "src/f32-qs8-vcvt/gen/vcvt-scalar-fmagic-x2.c",
771    "src/f32-qs8-vcvt/gen/vcvt-scalar-fmagic-x3.c",
772    "src/f32-qs8-vcvt/gen/vcvt-scalar-fmagic-x4.c",
773    "src/f32-qs8-vcvt/gen/vcvt-scalar-imagic-x1.c",
774    "src/f32-qs8-vcvt/gen/vcvt-scalar-imagic-x2.c",
775    "src/f32-qs8-vcvt/gen/vcvt-scalar-imagic-x3.c",
776    "src/f32-qs8-vcvt/gen/vcvt-scalar-imagic-x4.c",
777    "src/f32-qs8-vcvt/gen/vcvt-scalar-lrintf-x1.c",
778    "src/f32-qs8-vcvt/gen/vcvt-scalar-lrintf-x2.c",
779    "src/f32-qs8-vcvt/gen/vcvt-scalar-lrintf-x3.c",
780    "src/f32-qs8-vcvt/gen/vcvt-scalar-lrintf-x4.c",
781    "src/f32-qu8-vcvt/gen/vcvt-scalar-fmagic-x1.c",
782    "src/f32-qu8-vcvt/gen/vcvt-scalar-fmagic-x2.c",
783    "src/f32-qu8-vcvt/gen/vcvt-scalar-fmagic-x3.c",
784    "src/f32-qu8-vcvt/gen/vcvt-scalar-fmagic-x4.c",
785    "src/f32-qu8-vcvt/gen/vcvt-scalar-imagic-x1.c",
786    "src/f32-qu8-vcvt/gen/vcvt-scalar-imagic-x2.c",
787    "src/f32-qu8-vcvt/gen/vcvt-scalar-imagic-x3.c",
788    "src/f32-qu8-vcvt/gen/vcvt-scalar-imagic-x4.c",
789    "src/f32-qu8-vcvt/gen/vcvt-scalar-lrintf-x1.c",
790    "src/f32-qu8-vcvt/gen/vcvt-scalar-lrintf-x2.c",
791    "src/f32-qu8-vcvt/gen/vcvt-scalar-lrintf-x3.c",
792    "src/f32-qu8-vcvt/gen/vcvt-scalar-lrintf-x4.c",
793    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-lut64-p2-x1.c",
794    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-lut64-p2-x2-acc2.c",
795    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-lut64-p2-x2.c",
796    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-lut64-p2-x4-acc2.c",
797    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-lut64-p2-x4-acc4.c",
798    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-lut64-p2-x4.c",
799    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x1.c",
800    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x2-acc2.c",
801    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x2.c",
802    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x4-acc2.c",
803    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x4-acc4.c",
804    "src/f32-raddstoreexpminusmax/gen/scalar-rr2-p5-x4.c",
805    "src/f32-rmax/scalar.c",
806    "src/f32-spmm/gen/1x1-minmax-scalar-pipelined.c",
807    "src/f32-spmm/gen/1x1-minmax-scalar.c",
808    "src/f32-spmm/gen/2x1-minmax-scalar-pipelined.c",
809    "src/f32-spmm/gen/2x1-minmax-scalar.c",
810    "src/f32-spmm/gen/4x1-minmax-scalar-pipelined.c",
811    "src/f32-spmm/gen/4x1-minmax-scalar.c",
812    "src/f32-spmm/gen/8x1-minmax-scalar-pipelined.c",
813    "src/f32-spmm/gen/8x1-minmax-scalar.c",
814    "src/f32-spmm/gen/8x2-minmax-scalar.c",
815    "src/f32-spmm/gen/8x4-minmax-scalar.c",
816    "src/f32-vbinary/gen/vadd-minmax-scalar-x1.c",
817    "src/f32-vbinary/gen/vadd-minmax-scalar-x2.c",
818    "src/f32-vbinary/gen/vadd-minmax-scalar-x4.c",
819    "src/f32-vbinary/gen/vadd-minmax-scalar-x8.c",
820    "src/f32-vbinary/gen/vadd-relu-scalar-x1.c",
821    "src/f32-vbinary/gen/vadd-relu-scalar-x2.c",
822    "src/f32-vbinary/gen/vadd-relu-scalar-x4.c",
823    "src/f32-vbinary/gen/vadd-relu-scalar-x8.c",
824    "src/f32-vbinary/gen/vadd-scalar-x1.c",
825    "src/f32-vbinary/gen/vadd-scalar-x2.c",
826    "src/f32-vbinary/gen/vadd-scalar-x4.c",
827    "src/f32-vbinary/gen/vadd-scalar-x8.c",
828    "src/f32-vbinary/gen/vaddc-minmax-scalar-x1.c",
829    "src/f32-vbinary/gen/vaddc-minmax-scalar-x2.c",
830    "src/f32-vbinary/gen/vaddc-minmax-scalar-x4.c",
831    "src/f32-vbinary/gen/vaddc-minmax-scalar-x8.c",
832    "src/f32-vbinary/gen/vaddc-relu-scalar-x1.c",
833    "src/f32-vbinary/gen/vaddc-relu-scalar-x2.c",
834    "src/f32-vbinary/gen/vaddc-relu-scalar-x4.c",
835    "src/f32-vbinary/gen/vaddc-relu-scalar-x8.c",
836    "src/f32-vbinary/gen/vaddc-scalar-x1.c",
837    "src/f32-vbinary/gen/vaddc-scalar-x2.c",
838    "src/f32-vbinary/gen/vaddc-scalar-x4.c",
839    "src/f32-vbinary/gen/vaddc-scalar-x8.c",
840    "src/f32-vbinary/gen/vdiv-minmax-scalar-x1.c",
841    "src/f32-vbinary/gen/vdiv-minmax-scalar-x2.c",
842    "src/f32-vbinary/gen/vdiv-minmax-scalar-x4.c",
843    "src/f32-vbinary/gen/vdiv-minmax-scalar-x8.c",
844    "src/f32-vbinary/gen/vdiv-relu-scalar-x1.c",
845    "src/f32-vbinary/gen/vdiv-relu-scalar-x2.c",
846    "src/f32-vbinary/gen/vdiv-relu-scalar-x4.c",
847    "src/f32-vbinary/gen/vdiv-relu-scalar-x8.c",
848    "src/f32-vbinary/gen/vdiv-scalar-x1.c",
849    "src/f32-vbinary/gen/vdiv-scalar-x2.c",
850    "src/f32-vbinary/gen/vdiv-scalar-x4.c",
851    "src/f32-vbinary/gen/vdiv-scalar-x8.c",
852    "src/f32-vbinary/gen/vdivc-minmax-scalar-x1.c",
853    "src/f32-vbinary/gen/vdivc-minmax-scalar-x2.c",
854    "src/f32-vbinary/gen/vdivc-minmax-scalar-x4.c",
855    "src/f32-vbinary/gen/vdivc-minmax-scalar-x8.c",
856    "src/f32-vbinary/gen/vdivc-relu-scalar-x1.c",
857    "src/f32-vbinary/gen/vdivc-relu-scalar-x2.c",
858    "src/f32-vbinary/gen/vdivc-relu-scalar-x4.c",
859    "src/f32-vbinary/gen/vdivc-relu-scalar-x8.c",
860    "src/f32-vbinary/gen/vdivc-scalar-x1.c",
861    "src/f32-vbinary/gen/vdivc-scalar-x2.c",
862    "src/f32-vbinary/gen/vdivc-scalar-x4.c",
863    "src/f32-vbinary/gen/vdivc-scalar-x8.c",
864    "src/f32-vbinary/gen/vmax-scalar-x1.c",
865    "src/f32-vbinary/gen/vmax-scalar-x2.c",
866    "src/f32-vbinary/gen/vmax-scalar-x4.c",
867    "src/f32-vbinary/gen/vmax-scalar-x8.c",
868    "src/f32-vbinary/gen/vmaxc-scalar-x1.c",
869    "src/f32-vbinary/gen/vmaxc-scalar-x2.c",
870    "src/f32-vbinary/gen/vmaxc-scalar-x4.c",
871    "src/f32-vbinary/gen/vmaxc-scalar-x8.c",
872    "src/f32-vbinary/gen/vmin-scalar-x1.c",
873    "src/f32-vbinary/gen/vmin-scalar-x2.c",
874    "src/f32-vbinary/gen/vmin-scalar-x4.c",
875    "src/f32-vbinary/gen/vmin-scalar-x8.c",
876    "src/f32-vbinary/gen/vminc-scalar-x1.c",
877    "src/f32-vbinary/gen/vminc-scalar-x2.c",
878    "src/f32-vbinary/gen/vminc-scalar-x4.c",
879    "src/f32-vbinary/gen/vminc-scalar-x8.c",
880    "src/f32-vbinary/gen/vmul-minmax-scalar-x1.c",
881    "src/f32-vbinary/gen/vmul-minmax-scalar-x2.c",
882    "src/f32-vbinary/gen/vmul-minmax-scalar-x4.c",
883    "src/f32-vbinary/gen/vmul-minmax-scalar-x8.c",
884    "src/f32-vbinary/gen/vmul-relu-scalar-x1.c",
885    "src/f32-vbinary/gen/vmul-relu-scalar-x2.c",
886    "src/f32-vbinary/gen/vmul-relu-scalar-x4.c",
887    "src/f32-vbinary/gen/vmul-relu-scalar-x8.c",
888    "src/f32-vbinary/gen/vmul-scalar-x1.c",
889    "src/f32-vbinary/gen/vmul-scalar-x2.c",
890    "src/f32-vbinary/gen/vmul-scalar-x4.c",
891    "src/f32-vbinary/gen/vmul-scalar-x8.c",
892    "src/f32-vbinary/gen/vmulc-minmax-scalar-x1.c",
893    "src/f32-vbinary/gen/vmulc-minmax-scalar-x2.c",
894    "src/f32-vbinary/gen/vmulc-minmax-scalar-x4.c",
895    "src/f32-vbinary/gen/vmulc-minmax-scalar-x8.c",
896    "src/f32-vbinary/gen/vmulc-relu-scalar-x1.c",
897    "src/f32-vbinary/gen/vmulc-relu-scalar-x2.c",
898    "src/f32-vbinary/gen/vmulc-relu-scalar-x4.c",
899    "src/f32-vbinary/gen/vmulc-relu-scalar-x8.c",
900    "src/f32-vbinary/gen/vmulc-scalar-x1.c",
901    "src/f32-vbinary/gen/vmulc-scalar-x2.c",
902    "src/f32-vbinary/gen/vmulc-scalar-x4.c",
903    "src/f32-vbinary/gen/vmulc-scalar-x8.c",
904    "src/f32-vbinary/gen/vrdivc-minmax-scalar-x1.c",
905    "src/f32-vbinary/gen/vrdivc-minmax-scalar-x2.c",
906    "src/f32-vbinary/gen/vrdivc-minmax-scalar-x4.c",
907    "src/f32-vbinary/gen/vrdivc-minmax-scalar-x8.c",
908    "src/f32-vbinary/gen/vrdivc-relu-scalar-x1.c",
909    "src/f32-vbinary/gen/vrdivc-relu-scalar-x2.c",
910    "src/f32-vbinary/gen/vrdivc-relu-scalar-x4.c",
911    "src/f32-vbinary/gen/vrdivc-relu-scalar-x8.c",
912    "src/f32-vbinary/gen/vrdivc-scalar-x1.c",
913    "src/f32-vbinary/gen/vrdivc-scalar-x2.c",
914    "src/f32-vbinary/gen/vrdivc-scalar-x4.c",
915    "src/f32-vbinary/gen/vrdivc-scalar-x8.c",
916    "src/f32-vbinary/gen/vrsubc-minmax-scalar-x1.c",
917    "src/f32-vbinary/gen/vrsubc-minmax-scalar-x2.c",
918    "src/f32-vbinary/gen/vrsubc-minmax-scalar-x4.c",
919    "src/f32-vbinary/gen/vrsubc-minmax-scalar-x8.c",
920    "src/f32-vbinary/gen/vrsubc-relu-scalar-x1.c",
921    "src/f32-vbinary/gen/vrsubc-relu-scalar-x2.c",
922    "src/f32-vbinary/gen/vrsubc-relu-scalar-x4.c",
923    "src/f32-vbinary/gen/vrsubc-relu-scalar-x8.c",
924    "src/f32-vbinary/gen/vrsubc-scalar-x1.c",
925    "src/f32-vbinary/gen/vrsubc-scalar-x2.c",
926    "src/f32-vbinary/gen/vrsubc-scalar-x4.c",
927    "src/f32-vbinary/gen/vrsubc-scalar-x8.c",
928    "src/f32-vbinary/gen/vsqrdiff-scalar-x1.c",
929    "src/f32-vbinary/gen/vsqrdiff-scalar-x2.c",
930    "src/f32-vbinary/gen/vsqrdiff-scalar-x4.c",
931    "src/f32-vbinary/gen/vsqrdiff-scalar-x8.c",
932    "src/f32-vbinary/gen/vsqrdiffc-scalar-x1.c",
933    "src/f32-vbinary/gen/vsqrdiffc-scalar-x2.c",
934    "src/f32-vbinary/gen/vsqrdiffc-scalar-x4.c",
935    "src/f32-vbinary/gen/vsqrdiffc-scalar-x8.c",
936    "src/f32-vbinary/gen/vsub-minmax-scalar-x1.c",
937    "src/f32-vbinary/gen/vsub-minmax-scalar-x2.c",
938    "src/f32-vbinary/gen/vsub-minmax-scalar-x4.c",
939    "src/f32-vbinary/gen/vsub-minmax-scalar-x8.c",
940    "src/f32-vbinary/gen/vsub-relu-scalar-x1.c",
941    "src/f32-vbinary/gen/vsub-relu-scalar-x2.c",
942    "src/f32-vbinary/gen/vsub-relu-scalar-x4.c",
943    "src/f32-vbinary/gen/vsub-relu-scalar-x8.c",
944    "src/f32-vbinary/gen/vsub-scalar-x1.c",
945    "src/f32-vbinary/gen/vsub-scalar-x2.c",
946    "src/f32-vbinary/gen/vsub-scalar-x4.c",
947    "src/f32-vbinary/gen/vsub-scalar-x8.c",
948    "src/f32-vbinary/gen/vsubc-minmax-scalar-x1.c",
949    "src/f32-vbinary/gen/vsubc-minmax-scalar-x2.c",
950    "src/f32-vbinary/gen/vsubc-minmax-scalar-x4.c",
951    "src/f32-vbinary/gen/vsubc-minmax-scalar-x8.c",
952    "src/f32-vbinary/gen/vsubc-relu-scalar-x1.c",
953    "src/f32-vbinary/gen/vsubc-relu-scalar-x2.c",
954    "src/f32-vbinary/gen/vsubc-relu-scalar-x4.c",
955    "src/f32-vbinary/gen/vsubc-relu-scalar-x8.c",
956    "src/f32-vbinary/gen/vsubc-scalar-x1.c",
957    "src/f32-vbinary/gen/vsubc-scalar-x2.c",
958    "src/f32-vbinary/gen/vsubc-scalar-x4.c",
959    "src/f32-vbinary/gen/vsubc-scalar-x8.c",
960    "src/f32-vclamp/gen/vclamp-scalar-x1.c",
961    "src/f32-vclamp/gen/vclamp-scalar-x2.c",
962    "src/f32-vclamp/gen/vclamp-scalar-x4.c",
963    "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x1.c",
964    "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x2.c",
965    "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x3.c",
966    "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x4.c",
967    "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x5.c",
968    "src/f32-velu/gen/velu-scalar-rr2-lut16-p3-x6.c",
969    "src/f32-velu/gen/velu-scalar-rr2-p6-x1.c",
970    "src/f32-velu/gen/velu-scalar-rr2-p6-x2.c",
971    "src/f32-velu/gen/velu-scalar-rr2-p6-x3.c",
972    "src/f32-velu/gen/velu-scalar-rr2-p6-x4.c",
973    "src/f32-velu/gen/velu-scalar-rr2-p6-x5.c",
974    "src/f32-velu/gen/velu-scalar-rr2-p6-x6.c",
975    "src/f32-vhswish/gen/vhswish-scalar-x1.c",
976    "src/f32-vhswish/gen/vhswish-scalar-x2.c",
977    "src/f32-vhswish/gen/vhswish-scalar-x4.c",
978    "src/f32-vlrelu/gen/vlrelu-scalar-x1.c",
979    "src/f32-vlrelu/gen/vlrelu-scalar-x2.c",
980    "src/f32-vlrelu/gen/vlrelu-scalar-x4.c",
981    "src/f32-vmulcaddc/gen/c1-minmax-scalar-2x.c",
982    "src/f32-vmulcaddc/gen/c2-minmax-scalar-2x.c",
983    "src/f32-vmulcaddc/gen/c4-minmax-scalar-2x.c",
984    "src/f32-vrelu/gen/vrelu-scalar-x1.c",
985    "src/f32-vrelu/gen/vrelu-scalar-x2.c",
986    "src/f32-vrelu/gen/vrelu-scalar-x4.c",
987    "src/f32-vrelu/gen/vrelu-scalar-x8.c",
988    "src/f32-vrnd/gen/vrndd-scalar-libm-x1.c",
989    "src/f32-vrnd/gen/vrndd-scalar-libm-x2.c",
990    "src/f32-vrnd/gen/vrndd-scalar-libm-x4.c",
991    "src/f32-vrnd/gen/vrndne-scalar-libm-x1.c",
992    "src/f32-vrnd/gen/vrndne-scalar-libm-x2.c",
993    "src/f32-vrnd/gen/vrndne-scalar-libm-x4.c",
994    "src/f32-vrnd/gen/vrndu-scalar-libm-x1.c",
995    "src/f32-vrnd/gen/vrndu-scalar-libm-x2.c",
996    "src/f32-vrnd/gen/vrndu-scalar-libm-x4.c",
997    "src/f32-vrnd/gen/vrndz-scalar-libm-x1.c",
998    "src/f32-vrnd/gen/vrndz-scalar-libm-x2.c",
999    "src/f32-vrnd/gen/vrndz-scalar-libm-x4.c",
1000    "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut64-p2-div-x1.c",
1001    "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut64-p2-div-x2.c",
1002    "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut64-p2-div-x4.c",
1003    "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut2048-p1-div-x1.c",
1004    "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut2048-p1-div-x2.c",
1005    "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-lut2048-p1-div-x4.c",
1006    "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-p5-div-x1.c",
1007    "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-p5-div-x2.c",
1008    "src/f32-vsigmoid/gen/vsigmoid-scalar-rr2-p5-div-x4.c",
1009    "src/f32-vsqrt/gen/scalar-sqrt-x1.c",
1010    "src/f32-vsqrt/gen/scalar-sqrt-x2.c",
1011    "src/f32-vsqrt/gen/scalar-sqrt-x4.c",
1012    "src/f32-vunary/gen/vabs-scalar-x1.c",
1013    "src/f32-vunary/gen/vabs-scalar-x2.c",
1014    "src/f32-vunary/gen/vabs-scalar-x4.c",
1015    "src/f32-vunary/gen/vneg-scalar-x1.c",
1016    "src/f32-vunary/gen/vneg-scalar-x2.c",
1017    "src/f32-vunary/gen/vneg-scalar-x4.c",
1018    "src/f32-vunary/gen/vsqr-scalar-x1.c",
1019    "src/f32-vunary/gen/vsqr-scalar-x2.c",
1020    "src/f32-vunary/gen/vsqr-scalar-x4.c",
1021    "src/math/cvt-f32-f16-scalar-bitcast.c",
1022    "src/math/cvt-f32-f16-scalar-fabsf.c",
1023    "src/math/expminus-f32-scalar-rr2-lut64-p2.c",
1024    "src/math/expminus-f32-scalar-rr2-lut2048-p1.c",
1025    "src/math/expminus-f32-scalar-rr2-p5.c",
1026    "src/math/expm1minus-f32-scalar-rr2-lut4-p4.c",
1027    "src/math/expm1minus-f32-scalar-rr2-lut8-p3.c",
1028    "src/math/expm1minus-f32-scalar-rr2-lut8-p4.c",
1029    "src/math/expm1minus-f32-scalar-rr2-lut16-p3.c",
1030    "src/math/expm1minus-f32-scalar-rr2-lut16-p4.c",
1031    "src/math/expm1minus-f32-scalar-rr2-p5.c",
1032    "src/math/expm1minus-f32-scalar-rr2-p6.c",
1033    "src/math/roundd-scalar-addsub.c",
1034    "src/math/roundd-scalar-cvt.c",
1035    "src/math/roundd-scalar-floor.c",
1036    "src/math/roundne-scalar-addsub.c",
1037    "src/math/roundne-scalar-nearbyint.c",
1038    "src/math/roundne-scalar-rint.c",
1039    "src/math/roundu-scalar-addsub.c",
1040    "src/math/roundu-scalar-ceil.c",
1041    "src/math/roundu-scalar-cvt.c",
1042    "src/math/roundz-scalar-addsub.c",
1043    "src/math/roundz-scalar-cvt.c",
1044    "src/math/roundz-scalar-trunc.c",
1045    "src/math/sigmoid-f32-scalar-rr2-lut64-p2-div.c",
1046    "src/math/sigmoid-f32-scalar-rr2-lut2048-p1-div.c",
1047    "src/math/sigmoid-f32-scalar-rr2-p5-div.c",
1048    "src/math/sqrt-u32-scalar-bitmanip.c",
1049    "src/math/sqrt-u32-scalar-clz-binsearch.c",
1050    "src/math/sqrt-u32-scalar-clz-newton.c",
1051    "src/math/sqrt-u32-scalar-cvti32-sqrt-lrint.c",
1052    "src/math/sqrt-u32-scalar-cvti64-sqrt-lrint.c",
1053    "src/math/sqrt-u32-scalar-cvti64-sqrtf-lrintf.c",
1054    "src/math/sqrt-u32-scalar-cvtu32-sqrt-lrint.c",
1055    "src/math/sqrt-u32-scalar-cvtu32-sqrtf-lrintf.c",
1056    "src/math/sqrt-u32-scalar-hashemian.c",
1057    "src/math/sqrt-u32-scalar-tflm.c",
1058    "src/math/sqrt-u64-scalar-cvtu32-sqrt-cvtsatu32f64.c",
1059    "src/math/sqrt-u64-scalar-cvtu32-sqrt-llrint.c",
1060    "src/math/sqrt-u64-scalar-cvtu64-sqrt-llrint.c",
1061    "src/qc8-dwconv/gen/up1x3-minmax-fp32-scalar-fmagic.c",
1062    "src/qc8-dwconv/gen/up1x9-minmax-fp32-scalar-fmagic.c",
1063    "src/qc8-dwconv/gen/up1x9-minmax-fp32-scalar-imagic.c",
1064    "src/qc8-dwconv/gen/up1x9-minmax-fp32-scalar-lrintf.c",
1065    "src/qc8-dwconv/gen/up1x25-minmax-fp32-scalar-fmagic.c",
1066    "src/qc8-dwconv/gen/up1x25-minmax-fp32-scalar-imagic.c",
1067    "src/qc8-dwconv/gen/up1x25-minmax-fp32-scalar-lrintf.c",
1068    "src/qc8-dwconv/gen/up2x3-minmax-fp32-scalar-imagic.c",
1069    "src/qc8-dwconv/gen/up2x3-minmax-fp32-scalar-lrintf.c",
1070    "src/qc8-dwconv/gen/up2x9-minmax-fp32-scalar-fmagic.c",
1071    "src/qc8-dwconv/gen/up2x9-minmax-fp32-scalar-imagic.c",
1072    "src/qc8-dwconv/gen/up2x9-minmax-fp32-scalar-lrintf.c",
1073    "src/qc8-dwconv/gen/up2x25-minmax-fp32-scalar-fmagic.c",
1074    "src/qc8-dwconv/gen/up2x25-minmax-fp32-scalar-imagic.c",
1075    "src/qc8-dwconv/gen/up2x25-minmax-fp32-scalar-lrintf.c",
1076    "src/qc8-dwconv/gen/up4x9-minmax-fp32-scalar-fmagic.c",
1077    "src/qc8-dwconv/gen/up4x9-minmax-fp32-scalar-imagic.c",
1078    "src/qc8-dwconv/gen/up4x9-minmax-fp32-scalar-lrintf.c",
1079    "src/qc8-dwconv/gen/up4x25-minmax-fp32-scalar-fmagic.c",
1080    "src/qc8-dwconv/gen/up4x25-minmax-fp32-scalar-imagic.c",
1081    "src/qc8-dwconv/gen/up4x25-minmax-fp32-scalar-lrintf.c",
1082    "src/qc8-gemm/gen/1x2-minmax-fp32-scalar-fmagic.c",
1083    "src/qc8-gemm/gen/1x2-minmax-fp32-scalar-imagic.c",
1084    "src/qc8-gemm/gen/1x2-minmax-fp32-scalar-lrintf.c",
1085    "src/qc8-gemm/gen/1x4-minmax-fp32-scalar-fmagic.c",
1086    "src/qc8-gemm/gen/1x4-minmax-fp32-scalar-imagic.c",
1087    "src/qc8-gemm/gen/1x4-minmax-fp32-scalar-lrintf.c",
1088    "src/qc8-gemm/gen/2x2-minmax-fp32-scalar-fmagic.c",
1089    "src/qc8-gemm/gen/2x2-minmax-fp32-scalar-imagic.c",
1090    "src/qc8-gemm/gen/2x2-minmax-fp32-scalar-lrintf.c",
1091    "src/qc8-gemm/gen/2x4-minmax-fp32-scalar-fmagic.c",
1092    "src/qc8-gemm/gen/2x4-minmax-fp32-scalar-imagic.c",
1093    "src/qc8-gemm/gen/2x4-minmax-fp32-scalar-lrintf.c",
1094    "src/qc8-gemm/gen/3x2-minmax-fp32-scalar-fmagic.c",
1095    "src/qc8-gemm/gen/3x2-minmax-fp32-scalar-imagic.c",
1096    "src/qc8-gemm/gen/3x2-minmax-fp32-scalar-lrintf.c",
1097    "src/qc8-gemm/gen/3x4-minmax-fp32-scalar-fmagic.c",
1098    "src/qc8-gemm/gen/3x4-minmax-fp32-scalar-imagic.c",
1099    "src/qc8-gemm/gen/3x4-minmax-fp32-scalar-lrintf.c",
1100    "src/qc8-gemm/gen/4x2-minmax-fp32-scalar-fmagic.c",
1101    "src/qc8-gemm/gen/4x2-minmax-fp32-scalar-imagic.c",
1102    "src/qc8-gemm/gen/4x2-minmax-fp32-scalar-lrintf.c",
1103    "src/qc8-gemm/gen/4x4-minmax-fp32-scalar-fmagic.c",
1104    "src/qc8-gemm/gen/4x4-minmax-fp32-scalar-imagic.c",
1105    "src/qc8-gemm/gen/4x4-minmax-fp32-scalar-lrintf.c",
1106    "src/qc8-igemm/gen/1x2-minmax-fp32-scalar-fmagic.c",
1107    "src/qc8-igemm/gen/1x2-minmax-fp32-scalar-imagic.c",
1108    "src/qc8-igemm/gen/1x2-minmax-fp32-scalar-lrintf.c",
1109    "src/qc8-igemm/gen/1x4-minmax-fp32-scalar-fmagic.c",
1110    "src/qc8-igemm/gen/1x4-minmax-fp32-scalar-imagic.c",
1111    "src/qc8-igemm/gen/1x4-minmax-fp32-scalar-lrintf.c",
1112    "src/qc8-igemm/gen/2x2-minmax-fp32-scalar-fmagic.c",
1113    "src/qc8-igemm/gen/2x2-minmax-fp32-scalar-imagic.c",
1114    "src/qc8-igemm/gen/2x2-minmax-fp32-scalar-lrintf.c",
1115    "src/qc8-igemm/gen/2x4-minmax-fp32-scalar-fmagic.c",
1116    "src/qc8-igemm/gen/2x4-minmax-fp32-scalar-imagic.c",
1117    "src/qc8-igemm/gen/2x4-minmax-fp32-scalar-lrintf.c",
1118    "src/qc8-igemm/gen/3x2-minmax-fp32-scalar-fmagic.c",
1119    "src/qc8-igemm/gen/3x2-minmax-fp32-scalar-imagic.c",
1120    "src/qc8-igemm/gen/3x2-minmax-fp32-scalar-lrintf.c",
1121    "src/qc8-igemm/gen/3x4-minmax-fp32-scalar-fmagic.c",
1122    "src/qc8-igemm/gen/3x4-minmax-fp32-scalar-imagic.c",
1123    "src/qc8-igemm/gen/3x4-minmax-fp32-scalar-lrintf.c",
1124    "src/qc8-igemm/gen/4x2-minmax-fp32-scalar-fmagic.c",
1125    "src/qc8-igemm/gen/4x2-minmax-fp32-scalar-imagic.c",
1126    "src/qc8-igemm/gen/4x2-minmax-fp32-scalar-lrintf.c",
1127    "src/qc8-igemm/gen/4x4-minmax-fp32-scalar-fmagic.c",
1128    "src/qc8-igemm/gen/4x4-minmax-fp32-scalar-imagic.c",
1129    "src/qc8-igemm/gen/4x4-minmax-fp32-scalar-lrintf.c",
1130    "src/qs8-dwconv/gen/up1x9-minmax-fp32-scalar-fmagic.c",
1131    "src/qs8-dwconv/gen/up1x9-minmax-fp32-scalar-imagic.c",
1132    "src/qs8-dwconv/gen/up1x9-minmax-fp32-scalar-lrintf.c",
1133    "src/qs8-dwconv/gen/up1x25-minmax-fp32-scalar-fmagic.c",
1134    "src/qs8-dwconv/gen/up1x25-minmax-fp32-scalar-imagic.c",
1135    "src/qs8-dwconv/gen/up1x25-minmax-fp32-scalar-lrintf.c",
1136    "src/qs8-dwconv/gen/up2x9-minmax-fp32-scalar-fmagic.c",
1137    "src/qs8-dwconv/gen/up2x9-minmax-fp32-scalar-imagic.c",
1138    "src/qs8-dwconv/gen/up2x9-minmax-fp32-scalar-lrintf.c",
1139    "src/qs8-dwconv/gen/up2x25-minmax-fp32-scalar-fmagic.c",
1140    "src/qs8-dwconv/gen/up2x25-minmax-fp32-scalar-imagic.c",
1141    "src/qs8-dwconv/gen/up2x25-minmax-fp32-scalar-lrintf.c",
1142    "src/qs8-dwconv/gen/up4x9-minmax-fp32-scalar-fmagic.c",
1143    "src/qs8-dwconv/gen/up4x9-minmax-fp32-scalar-imagic.c",
1144    "src/qs8-dwconv/gen/up4x9-minmax-fp32-scalar-lrintf.c",
1145    "src/qs8-dwconv/gen/up4x25-minmax-fp32-scalar-fmagic.c",
1146    "src/qs8-dwconv/gen/up4x25-minmax-fp32-scalar-imagic.c",
1147    "src/qs8-dwconv/gen/up4x25-minmax-fp32-scalar-lrintf.c",
1148    "src/qs8-f32-vcvt/gen/vcvt-scalar-x1.c",
1149    "src/qs8-f32-vcvt/gen/vcvt-scalar-x2.c",
1150    "src/qs8-f32-vcvt/gen/vcvt-scalar-x3.c",
1151    "src/qs8-f32-vcvt/gen/vcvt-scalar-x4.c",
1152    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-fmagic-c1.c",
1153    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-fmagic-c2.c",
1154    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-fmagic-c4.c",
1155    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c1.c",
1156    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c2.c",
1157    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c4.c",
1158    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-lrintf-c1.c",
1159    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-lrintf-c2.c",
1160    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-scalar-lrintf-c4.c",
1161    "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-fmagic-c1.c",
1162    "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-fmagic-c2.c",
1163    "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-fmagic-c4.c",
1164    "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c1.c",
1165    "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c2.c",
1166    "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c4.c",
1167    "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-lrintf-c1.c",
1168    "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-lrintf-c2.c",
1169    "src/qs8-gavgpool/gen/7x-minmax-fp32-scalar-lrintf-c4.c",
1170    "src/qs8-gemm/gen/1x2-minmax-fp32-scalar-fmagic.c",
1171    "src/qs8-gemm/gen/1x2-minmax-fp32-scalar-imagic.c",
1172    "src/qs8-gemm/gen/1x2-minmax-fp32-scalar-lrintf.c",
1173    "src/qs8-gemm/gen/1x4-minmax-fp32-scalar-fmagic.c",
1174    "src/qs8-gemm/gen/1x4-minmax-fp32-scalar-imagic.c",
1175    "src/qs8-gemm/gen/1x4-minmax-fp32-scalar-lrintf.c",
1176    "src/qs8-gemm/gen/2x2-minmax-fp32-scalar-fmagic.c",
1177    "src/qs8-gemm/gen/2x2-minmax-fp32-scalar-imagic.c",
1178    "src/qs8-gemm/gen/2x2-minmax-fp32-scalar-lrintf.c",
1179    "src/qs8-gemm/gen/2x4-minmax-fp32-scalar-fmagic.c",
1180    "src/qs8-gemm/gen/2x4-minmax-fp32-scalar-imagic.c",
1181    "src/qs8-gemm/gen/2x4-minmax-fp32-scalar-lrintf.c",
1182    "src/qs8-gemm/gen/3x2-minmax-fp32-scalar-fmagic.c",
1183    "src/qs8-gemm/gen/3x2-minmax-fp32-scalar-imagic.c",
1184    "src/qs8-gemm/gen/3x2-minmax-fp32-scalar-lrintf.c",
1185    "src/qs8-gemm/gen/3x4-minmax-fp32-scalar-fmagic.c",
1186    "src/qs8-gemm/gen/3x4-minmax-fp32-scalar-imagic.c",
1187    "src/qs8-gemm/gen/3x4-minmax-fp32-scalar-lrintf.c",
1188    "src/qs8-gemm/gen/4x2-minmax-fp32-scalar-fmagic.c",
1189    "src/qs8-gemm/gen/4x2-minmax-fp32-scalar-imagic.c",
1190    "src/qs8-gemm/gen/4x2-minmax-fp32-scalar-lrintf.c",
1191    "src/qs8-gemm/gen/4x4-minmax-fp32-scalar-fmagic.c",
1192    "src/qs8-gemm/gen/4x4-minmax-fp32-scalar-imagic.c",
1193    "src/qs8-gemm/gen/4x4-minmax-fp32-scalar-lrintf.c",
1194    "src/qs8-igemm/gen/1x2-minmax-fp32-scalar-fmagic.c",
1195    "src/qs8-igemm/gen/1x2-minmax-fp32-scalar-imagic.c",
1196    "src/qs8-igemm/gen/1x2-minmax-fp32-scalar-lrintf.c",
1197    "src/qs8-igemm/gen/1x4-minmax-fp32-scalar-fmagic.c",
1198    "src/qs8-igemm/gen/1x4-minmax-fp32-scalar-imagic.c",
1199    "src/qs8-igemm/gen/1x4-minmax-fp32-scalar-lrintf.c",
1200    "src/qs8-igemm/gen/2x2-minmax-fp32-scalar-fmagic.c",
1201    "src/qs8-igemm/gen/2x2-minmax-fp32-scalar-imagic.c",
1202    "src/qs8-igemm/gen/2x2-minmax-fp32-scalar-lrintf.c",
1203    "src/qs8-igemm/gen/2x4-minmax-fp32-scalar-fmagic.c",
1204    "src/qs8-igemm/gen/2x4-minmax-fp32-scalar-imagic.c",
1205    "src/qs8-igemm/gen/2x4-minmax-fp32-scalar-lrintf.c",
1206    "src/qs8-igemm/gen/3x2-minmax-fp32-scalar-fmagic.c",
1207    "src/qs8-igemm/gen/3x2-minmax-fp32-scalar-imagic.c",
1208    "src/qs8-igemm/gen/3x2-minmax-fp32-scalar-lrintf.c",
1209    "src/qs8-igemm/gen/3x4-minmax-fp32-scalar-fmagic.c",
1210    "src/qs8-igemm/gen/3x4-minmax-fp32-scalar-imagic.c",
1211    "src/qs8-igemm/gen/3x4-minmax-fp32-scalar-lrintf.c",
1212    "src/qs8-igemm/gen/4x2-minmax-fp32-scalar-fmagic.c",
1213    "src/qs8-igemm/gen/4x2-minmax-fp32-scalar-imagic.c",
1214    "src/qs8-igemm/gen/4x2-minmax-fp32-scalar-lrintf.c",
1215    "src/qs8-igemm/gen/4x4-minmax-fp32-scalar-fmagic.c",
1216    "src/qs8-igemm/gen/4x4-minmax-fp32-scalar-imagic.c",
1217    "src/qs8-igemm/gen/4x4-minmax-fp32-scalar-lrintf.c",
1218    "src/qs8-requantization/fp32-scalar-fmagic.c",
1219    "src/qs8-requantization/fp32-scalar-lrintf.c",
1220    "src/qs8-requantization/gemmlowp-scalar.c",
1221    "src/qs8-requantization/rndna-scalar-signed64.c",
1222    "src/qs8-requantization/rndna-scalar-unsigned32.c",
1223    "src/qs8-requantization/rndna-scalar-unsigned64.c",
1224    "src/qs8-requantization/rndnu-scalar.c",
1225    "src/qs8-vadd/gen/minmax-scalar-x1.c",
1226    "src/qs8-vadd/gen/minmax-scalar-x2.c",
1227    "src/qs8-vadd/gen/minmax-scalar-x4.c",
1228    "src/qs8-vaddc/gen/minmax-scalar-x1.c",
1229    "src/qs8-vaddc/gen/minmax-scalar-x2.c",
1230    "src/qs8-vaddc/gen/minmax-scalar-x4.c",
1231    "src/qs8-vcvt/gen/vcvt-scalar-x1.c",
1232    "src/qs8-vcvt/gen/vcvt-scalar-x2.c",
1233    "src/qs8-vcvt/gen/vcvt-scalar-x4.c",
1234    "src/qs8-vlrelu/gen/vlrelu-scalar-andxor-x1.c",
1235    "src/qs8-vlrelu/gen/vlrelu-scalar-andxor-x2.c",
1236    "src/qs8-vlrelu/gen/vlrelu-scalar-andxor-x4.c",
1237    "src/qs8-vlrelu/gen/vlrelu-scalar-select-x1.c",
1238    "src/qs8-vlrelu/gen/vlrelu-scalar-select-x2.c",
1239    "src/qs8-vlrelu/gen/vlrelu-scalar-select-x4.c",
1240    "src/qs8-vmul/gen/minmax-fp32-scalar-x1.c",
1241    "src/qs8-vmul/gen/minmax-fp32-scalar-x2.c",
1242    "src/qs8-vmul/gen/minmax-fp32-scalar-x4.c",
1243    "src/qs8-vmulc/gen/minmax-fp32-scalar-x1.c",
1244    "src/qs8-vmulc/gen/minmax-fp32-scalar-x2.c",
1245    "src/qs8-vmulc/gen/minmax-fp32-scalar-x4.c",
1246    "src/qu8-avgpool/9p8x-minmax-scalar-c1.c",
1247    "src/qu8-avgpool/9x-minmax-scalar-c1.c",
1248    "src/qu8-dwconv/gen/up1x9-minmax-fp32-scalar-fmagic.c",
1249    "src/qu8-dwconv/gen/up1x9-minmax-fp32-scalar-imagic.c",
1250    "src/qu8-dwconv/gen/up1x9-minmax-fp32-scalar-lrintf.c",
1251    "src/qu8-dwconv/gen/up1x25-minmax-fp32-scalar-fmagic.c",
1252    "src/qu8-dwconv/gen/up1x25-minmax-fp32-scalar-imagic.c",
1253    "src/qu8-dwconv/gen/up1x25-minmax-fp32-scalar-lrintf.c",
1254    "src/qu8-dwconv/gen/up2x9-minmax-fp32-scalar-fmagic.c",
1255    "src/qu8-dwconv/gen/up2x9-minmax-fp32-scalar-imagic.c",
1256    "src/qu8-dwconv/gen/up2x9-minmax-fp32-scalar-lrintf.c",
1257    "src/qu8-dwconv/gen/up2x25-minmax-fp32-scalar-fmagic.c",
1258    "src/qu8-dwconv/gen/up2x25-minmax-fp32-scalar-imagic.c",
1259    "src/qu8-dwconv/gen/up2x25-minmax-fp32-scalar-lrintf.c",
1260    "src/qu8-dwconv/gen/up4x9-minmax-fp32-scalar-fmagic.c",
1261    "src/qu8-dwconv/gen/up4x9-minmax-fp32-scalar-imagic.c",
1262    "src/qu8-dwconv/gen/up4x9-minmax-fp32-scalar-lrintf.c",
1263    "src/qu8-dwconv/gen/up4x25-minmax-fp32-scalar-fmagic.c",
1264    "src/qu8-dwconv/gen/up4x25-minmax-fp32-scalar-imagic.c",
1265    "src/qu8-dwconv/gen/up4x25-minmax-fp32-scalar-lrintf.c",
1266    "src/qu8-f32-vcvt/gen/vcvt-scalar-x1.c",
1267    "src/qu8-f32-vcvt/gen/vcvt-scalar-x2.c",
1268    "src/qu8-f32-vcvt/gen/vcvt-scalar-x3.c",
1269    "src/qu8-f32-vcvt/gen/vcvt-scalar-x4.c",
1270    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-fmagic-c1.c",
1271    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-fmagic-c2.c",
1272    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-fmagic-c4.c",
1273    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c1.c",
1274    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c2.c",
1275    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-imagic-c4.c",
1276    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-lrintf-c1.c",
1277    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-lrintf-c2.c",
1278    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-scalar-lrintf-c4.c",
1279    "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-fmagic-c1.c",
1280    "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-fmagic-c2.c",
1281    "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-fmagic-c4.c",
1282    "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c1.c",
1283    "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c2.c",
1284    "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-imagic-c4.c",
1285    "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-lrintf-c1.c",
1286    "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-lrintf-c2.c",
1287    "src/qu8-gavgpool/gen/7x-minmax-fp32-scalar-lrintf-c4.c",
1288    "src/qu8-gemm/gen/1x2-minmax-fp32-scalar-fmagic.c",
1289    "src/qu8-gemm/gen/1x2-minmax-fp32-scalar-imagic.c",
1290    "src/qu8-gemm/gen/1x2-minmax-fp32-scalar-lrintf.c",
1291    "src/qu8-gemm/gen/1x4-minmax-fp32-scalar-fmagic.c",
1292    "src/qu8-gemm/gen/1x4-minmax-fp32-scalar-imagic.c",
1293    "src/qu8-gemm/gen/1x4-minmax-fp32-scalar-lrintf.c",
1294    "src/qu8-gemm/gen/2x2-minmax-fp32-scalar-fmagic.c",
1295    "src/qu8-gemm/gen/2x2-minmax-fp32-scalar-imagic.c",
1296    "src/qu8-gemm/gen/2x2-minmax-fp32-scalar-lrintf.c",
1297    "src/qu8-gemm/gen/2x4-minmax-fp32-scalar-fmagic.c",
1298    "src/qu8-gemm/gen/2x4-minmax-fp32-scalar-imagic.c",
1299    "src/qu8-gemm/gen/2x4-minmax-fp32-scalar-lrintf.c",
1300    "src/qu8-gemm/gen/3x2-minmax-fp32-scalar-fmagic.c",
1301    "src/qu8-gemm/gen/3x2-minmax-fp32-scalar-imagic.c",
1302    "src/qu8-gemm/gen/3x2-minmax-fp32-scalar-lrintf.c",
1303    "src/qu8-gemm/gen/3x4-minmax-fp32-scalar-fmagic.c",
1304    "src/qu8-gemm/gen/3x4-minmax-fp32-scalar-imagic.c",
1305    "src/qu8-gemm/gen/3x4-minmax-fp32-scalar-lrintf.c",
1306    "src/qu8-gemm/gen/4x2-minmax-fp32-scalar-fmagic.c",
1307    "src/qu8-gemm/gen/4x2-minmax-fp32-scalar-imagic.c",
1308    "src/qu8-gemm/gen/4x2-minmax-fp32-scalar-lrintf.c",
1309    "src/qu8-gemm/gen/4x4-minmax-fp32-scalar-fmagic.c",
1310    "src/qu8-gemm/gen/4x4-minmax-fp32-scalar-imagic.c",
1311    "src/qu8-gemm/gen/4x4-minmax-fp32-scalar-lrintf.c",
1312    "src/qu8-igemm/gen/1x2-minmax-fp32-scalar-fmagic.c",
1313    "src/qu8-igemm/gen/1x2-minmax-fp32-scalar-imagic.c",
1314    "src/qu8-igemm/gen/1x2-minmax-fp32-scalar-lrintf.c",
1315    "src/qu8-igemm/gen/1x4-minmax-fp32-scalar-fmagic.c",
1316    "src/qu8-igemm/gen/1x4-minmax-fp32-scalar-imagic.c",
1317    "src/qu8-igemm/gen/1x4-minmax-fp32-scalar-lrintf.c",
1318    "src/qu8-igemm/gen/2x2-minmax-fp32-scalar-fmagic.c",
1319    "src/qu8-igemm/gen/2x2-minmax-fp32-scalar-imagic.c",
1320    "src/qu8-igemm/gen/2x2-minmax-fp32-scalar-lrintf.c",
1321    "src/qu8-igemm/gen/2x4-minmax-fp32-scalar-fmagic.c",
1322    "src/qu8-igemm/gen/2x4-minmax-fp32-scalar-imagic.c",
1323    "src/qu8-igemm/gen/2x4-minmax-fp32-scalar-lrintf.c",
1324    "src/qu8-igemm/gen/3x2-minmax-fp32-scalar-fmagic.c",
1325    "src/qu8-igemm/gen/3x2-minmax-fp32-scalar-imagic.c",
1326    "src/qu8-igemm/gen/3x2-minmax-fp32-scalar-lrintf.c",
1327    "src/qu8-igemm/gen/3x4-minmax-fp32-scalar-fmagic.c",
1328    "src/qu8-igemm/gen/3x4-minmax-fp32-scalar-imagic.c",
1329    "src/qu8-igemm/gen/3x4-minmax-fp32-scalar-lrintf.c",
1330    "src/qu8-igemm/gen/4x2-minmax-fp32-scalar-fmagic.c",
1331    "src/qu8-igemm/gen/4x2-minmax-fp32-scalar-imagic.c",
1332    "src/qu8-igemm/gen/4x2-minmax-fp32-scalar-lrintf.c",
1333    "src/qu8-igemm/gen/4x4-minmax-fp32-scalar-fmagic.c",
1334    "src/qu8-igemm/gen/4x4-minmax-fp32-scalar-imagic.c",
1335    "src/qu8-igemm/gen/4x4-minmax-fp32-scalar-lrintf.c",
1336    "src/qu8-requantization/fp32-scalar-fmagic.c",
1337    "src/qu8-requantization/fp32-scalar-lrintf.c",
1338    "src/qu8-requantization/gemmlowp-scalar.c",
1339    "src/qu8-requantization/rndna-scalar-signed64.c",
1340    "src/qu8-requantization/rndna-scalar-unsigned32.c",
1341    "src/qu8-requantization/rndna-scalar-unsigned64.c",
1342    "src/qu8-vadd/gen/minmax-scalar-x1.c",
1343    "src/qu8-vadd/gen/minmax-scalar-x2.c",
1344    "src/qu8-vadd/gen/minmax-scalar-x4.c",
1345    "src/qu8-vaddc/gen/minmax-scalar-x1.c",
1346    "src/qu8-vaddc/gen/minmax-scalar-x2.c",
1347    "src/qu8-vaddc/gen/minmax-scalar-x4.c",
1348    "src/qu8-vcvt/gen/vcvt-scalar-x1.c",
1349    "src/qu8-vcvt/gen/vcvt-scalar-x2.c",
1350    "src/qu8-vcvt/gen/vcvt-scalar-x4.c",
1351    "src/qu8-vlrelu/gen/vlrelu-scalar-andxor-x1.c",
1352    "src/qu8-vlrelu/gen/vlrelu-scalar-andxor-x2.c",
1353    "src/qu8-vlrelu/gen/vlrelu-scalar-andxor-x4.c",
1354    "src/qu8-vlrelu/gen/vlrelu-scalar-select-x1.c",
1355    "src/qu8-vlrelu/gen/vlrelu-scalar-select-x2.c",
1356    "src/qu8-vlrelu/gen/vlrelu-scalar-select-x4.c",
1357    "src/qu8-vmul/gen/minmax-fp32-scalar-x1.c",
1358    "src/qu8-vmul/gen/minmax-fp32-scalar-x2.c",
1359    "src/qu8-vmul/gen/minmax-fp32-scalar-x4.c",
1360    "src/qu8-vmulc/gen/minmax-fp32-scalar-x1.c",
1361    "src/qu8-vmulc/gen/minmax-fp32-scalar-x2.c",
1362    "src/qu8-vmulc/gen/minmax-fp32-scalar-x4.c",
1363    "src/s8-ibilinear/gen/scalar-c1.c",
1364    "src/s8-ibilinear/gen/scalar-c2.c",
1365    "src/s8-ibilinear/gen/scalar-c4.c",
1366    "src/s8-maxpool/9p8x-minmax-scalar-c1.c",
1367    "src/s8-vclamp/scalar-x4.c",
1368    "src/s16-rmaxabs/gen/scalar-x1.c",
1369    "src/s16-rmaxabs/gen/scalar-x2.c",
1370    "src/s16-rmaxabs/gen/scalar-x3.c",
1371    "src/s16-rmaxabs/gen/scalar-x4.c",
1372    "src/s16-vlshift/gen/scalar-x1.c",
1373    "src/s16-vlshift/gen/scalar-x2.c",
1374    "src/s16-vlshift/gen/scalar-x3.c",
1375    "src/s16-vlshift/gen/scalar-x4.c",
1376    "src/s16-window/gen/scalar-x1.c",
1377    "src/s16-window/gen/scalar-x2.c",
1378    "src/s16-window/gen/scalar-x3.c",
1379    "src/s16-window/gen/scalar-x4.c",
1380    "src/u8-ibilinear/gen/scalar-c1.c",
1381    "src/u8-ibilinear/gen/scalar-c2.c",
1382    "src/u8-ibilinear/gen/scalar-c4.c",
1383    "src/u8-lut32norm/scalar.c",
1384    "src/u8-maxpool/9p8x-minmax-scalar-c1.c",
1385    "src/u8-rmax/scalar.c",
1386    "src/u8-vclamp/scalar-x4.c",
1387    "src/u32-filterbank-accumulate/gen/scalar-x1.c",
1388    "src/u32-filterbank-subtract/scalar-x2.c",
1389    "src/u32-vlog/gen/scalar-x1.c",
1390    "src/u32-vlog/gen/scalar-x2.c",
1391    "src/u32-vlog/gen/scalar-x3.c",
1392    "src/u32-vlog/gen/scalar-x4.c",
1393    "src/u64-u32-vsqrtshift/scalar-cvtu32-sqrt-cvtu32f64-x1.c",
1394    "src/xx-copy/memcpy.c",
1395    "src/xx-fill/scalar-x16.c",
1396    "src/xx-pad/scalar.c",
1397    "src/xx-transpose/1x1-memcpy.c",
1398    "src/x8-lut/gen/lut-scalar-x1.c",
1399    "src/x8-lut/gen/lut-scalar-x2.c",
1400    "src/x8-lut/gen/lut-scalar-x4.c",
1401    "src/x8-lut/gen/lut-scalar-x8.c",
1402    "src/x8-lut/gen/lut-scalar-x16.c",
1403    "src/x8-transposec/gen/1x2-scalar-int.c",
1404    "src/x8-transposec/gen/1x4-scalar-int.c",
1405    "src/x8-transposec/gen/2x1-scalar-int.c",
1406    "src/x8-transposec/gen/2x2-scalar-int.c",
1407    "src/x8-transposec/gen/2x4-scalar-int.c",
1408    "src/x8-transposec/gen/4x1-scalar-int.c",
1409    "src/x8-transposec/gen/4x2-scalar-int.c",
1410    "src/x8-transposec/gen/4x4-scalar-int.c",
1411    "src/x8-zip/xm-scalar.c",
1412    "src/x8-zip/x2-scalar.c",
1413    "src/x8-zip/x3-scalar.c",
1414    "src/x8-zip/x4-scalar.c",
1415    "src/x16-transposec/gen/1x2-scalar-int.c",
1416    "src/x16-transposec/gen/1x4-scalar-int.c",
1417    "src/x16-transposec/gen/2x1-scalar-int.c",
1418    "src/x16-transposec/gen/2x2-scalar-int.c",
1419    "src/x16-transposec/gen/2x4-scalar-int.c",
1420    "src/x16-transposec/gen/4x1-scalar-int.c",
1421    "src/x16-transposec/gen/4x2-scalar-int.c",
1422    "src/x16-transposec/gen/4x4-scalar-int.c",
1423    "src/x24-transposec/gen/1x2-scalar.c",
1424    "src/x24-transposec/gen/1x4-scalar.c",
1425    "src/x24-transposec/gen/2x1-scalar.c",
1426    "src/x24-transposec/gen/2x2-scalar.c",
1427    "src/x24-transposec/gen/2x4-scalar.c",
1428    "src/x24-transposec/gen/4x1-scalar.c",
1429    "src/x24-transposec/gen/4x2-scalar.c",
1430    "src/x24-transposec/gen/4x4-scalar.c",
1431    "src/x32-packx/x2-scalar.c",
1432    "src/x32-packx/x3-scalar.c",
1433    "src/x32-packx/x4-scalar.c",
1434    "src/x32-transposec/gen/1x2-scalar-float.c",
1435    "src/x32-transposec/gen/1x2-scalar-int.c",
1436    "src/x32-transposec/gen/1x4-scalar-float.c",
1437    "src/x32-transposec/gen/1x4-scalar-int.c",
1438    "src/x32-transposec/gen/2x1-scalar-float.c",
1439    "src/x32-transposec/gen/2x1-scalar-int.c",
1440    "src/x32-transposec/gen/2x2-scalar-float.c",
1441    "src/x32-transposec/gen/2x2-scalar-int.c",
1442    "src/x32-transposec/gen/2x4-scalar-float.c",
1443    "src/x32-transposec/gen/2x4-scalar-int.c",
1444    "src/x32-transposec/gen/4x1-scalar-float.c",
1445    "src/x32-transposec/gen/4x1-scalar-int.c",
1446    "src/x32-transposec/gen/4x2-scalar-float.c",
1447    "src/x32-transposec/gen/4x2-scalar-int.c",
1448    "src/x32-transposec/gen/4x4-scalar-float.c",
1449    "src/x32-transposec/gen/4x4-scalar-int.c",
1450    "src/x32-unpool/scalar.c",
1451    "src/x32-zip/xm-scalar.c",
1452    "src/x32-zip/x2-scalar.c",
1453    "src/x32-zip/x3-scalar.c",
1454    "src/x32-zip/x4-scalar.c",
1455    "src/x64-transposec/gen/1x2-scalar-float.c",
1456    "src/x64-transposec/gen/1x2-scalar-int.c",
1457    "src/x64-transposec/gen/2x1-scalar-float.c",
1458    "src/x64-transposec/gen/2x1-scalar-int.c",
1459    "src/x64-transposec/gen/2x2-scalar-float.c",
1460    "src/x64-transposec/gen/2x2-scalar-int.c",
1461    "src/x64-transposec/gen/4x1-scalar-float.c",
1462    "src/x64-transposec/gen/4x1-scalar-int.c",
1463    "src/x64-transposec/gen/4x2-scalar-float.c",
1464    "src/x64-transposec/gen/4x2-scalar-int.c",
1465]
1466
1467ALL_WASM_MICROKERNEL_SRCS = [
1468    "src/f32-avgpool/9p8x-minmax-wasm-c1.c",
1469    "src/f32-avgpool/9x-minmax-wasm-c1.c",
1470    "src/f32-dwconv/gen/up1x3-minmax-wasm-acc2.c",
1471    "src/f32-dwconv/gen/up1x3-minmax-wasm.c",
1472    "src/f32-dwconv/gen/up1x4-minmax-wasm-acc2.c",
1473    "src/f32-dwconv/gen/up1x4-minmax-wasm.c",
1474    "src/f32-dwconv/gen/up1x9-minmax-wasm-acc2.c",
1475    "src/f32-dwconv/gen/up1x9-minmax-wasm.c",
1476    "src/f32-dwconv/gen/up1x25-minmax-wasm-acc2.c",
1477    "src/f32-dwconv/gen/up1x25-minmax-wasm.c",
1478    "src/f32-dwconv/gen/up2x3-minmax-wasm-acc2.c",
1479    "src/f32-dwconv/gen/up2x3-minmax-wasm.c",
1480    "src/f32-dwconv/gen/up2x4-minmax-wasm-acc2.c",
1481    "src/f32-dwconv/gen/up2x4-minmax-wasm.c",
1482    "src/f32-dwconv/gen/up2x9-minmax-wasm-acc2.c",
1483    "src/f32-dwconv/gen/up2x9-minmax-wasm.c",
1484    "src/f32-dwconv/gen/up2x25-minmax-wasm-acc2.c",
1485    "src/f32-dwconv/gen/up2x25-minmax-wasm.c",
1486    "src/f32-gavgpool/7p7x-minmax-wasm-c1.c",
1487    "src/f32-gavgpool/7x-minmax-wasm-c1.c",
1488    "src/f32-gemm/gen-inc/1x4inc-minmax-wasm.c",
1489    "src/f32-gemm/gen-inc/2x4inc-minmax-wasm.c",
1490    "src/f32-gemm/gen-inc/4x4inc-minmax-wasm.c",
1491    "src/f32-gemm/gen/1x4-minmax-wasm.c",
1492    "src/f32-gemm/gen/1x4-relu-wasm.c",
1493    "src/f32-gemm/gen/2x4-minmax-wasm.c",
1494    "src/f32-gemm/gen/2x4-relu-wasm.c",
1495    "src/f32-gemm/gen/4x2-minmax-wasm.c",
1496    "src/f32-gemm/gen/4x2-relu-wasm.c",
1497    "src/f32-gemm/gen/4x4-minmax-wasm.c",
1498    "src/f32-gemm/gen/4x4-relu-wasm.c",
1499    "src/f32-igemm/gen/1x4-minmax-wasm.c",
1500    "src/f32-igemm/gen/1x4-relu-wasm.c",
1501    "src/f32-igemm/gen/2x4-minmax-wasm.c",
1502    "src/f32-igemm/gen/2x4-relu-wasm.c",
1503    "src/f32-igemm/gen/4x2-minmax-wasm.c",
1504    "src/f32-igemm/gen/4x2-relu-wasm.c",
1505    "src/f32-igemm/gen/4x4-minmax-wasm.c",
1506    "src/f32-igemm/gen/4x4-relu-wasm.c",
1507    "src/f32-maxpool/9p8x-minmax-wasm-c1.c",
1508    "src/f32-pavgpool/9p8x-minmax-wasm-c1.c",
1509    "src/f32-pavgpool/9x-minmax-wasm-c1.c",
1510    "src/f32-prelu/gen/wasm-2x1.c",
1511    "src/f32-prelu/gen/wasm-2x4.c",
1512    "src/f32-qs8-vcvt/gen/vcvt-wasm-fmagic-x1.c",
1513    "src/f32-qs8-vcvt/gen/vcvt-wasm-fmagic-x2.c",
1514    "src/f32-qs8-vcvt/gen/vcvt-wasm-fmagic-x3.c",
1515    "src/f32-qs8-vcvt/gen/vcvt-wasm-fmagic-x4.c",
1516    "src/f32-qu8-vcvt/gen/vcvt-wasm-fmagic-x1.c",
1517    "src/f32-qu8-vcvt/gen/vcvt-wasm-fmagic-x2.c",
1518    "src/f32-qu8-vcvt/gen/vcvt-wasm-fmagic-x3.c",
1519    "src/f32-qu8-vcvt/gen/vcvt-wasm-fmagic-x4.c",
1520    "src/f32-vbinary/gen/vadd-minmax-wasm-x1.c",
1521    "src/f32-vbinary/gen/vadd-minmax-wasm-x2.c",
1522    "src/f32-vbinary/gen/vadd-minmax-wasm-x4.c",
1523    "src/f32-vbinary/gen/vadd-minmax-wasm-x8.c",
1524    "src/f32-vbinary/gen/vadd-relu-wasm-x1.c",
1525    "src/f32-vbinary/gen/vadd-relu-wasm-x2.c",
1526    "src/f32-vbinary/gen/vadd-relu-wasm-x4.c",
1527    "src/f32-vbinary/gen/vadd-relu-wasm-x8.c",
1528    "src/f32-vbinary/gen/vaddc-minmax-wasm-x1.c",
1529    "src/f32-vbinary/gen/vaddc-minmax-wasm-x2.c",
1530    "src/f32-vbinary/gen/vaddc-minmax-wasm-x4.c",
1531    "src/f32-vbinary/gen/vaddc-minmax-wasm-x8.c",
1532    "src/f32-vbinary/gen/vaddc-relu-wasm-x1.c",
1533    "src/f32-vbinary/gen/vaddc-relu-wasm-x2.c",
1534    "src/f32-vbinary/gen/vaddc-relu-wasm-x4.c",
1535    "src/f32-vbinary/gen/vaddc-relu-wasm-x8.c",
1536    "src/f32-vbinary/gen/vdiv-minmax-wasm-x1.c",
1537    "src/f32-vbinary/gen/vdiv-minmax-wasm-x2.c",
1538    "src/f32-vbinary/gen/vdiv-minmax-wasm-x4.c",
1539    "src/f32-vbinary/gen/vdiv-minmax-wasm-x8.c",
1540    "src/f32-vbinary/gen/vdiv-relu-wasm-x1.c",
1541    "src/f32-vbinary/gen/vdiv-relu-wasm-x2.c",
1542    "src/f32-vbinary/gen/vdiv-relu-wasm-x4.c",
1543    "src/f32-vbinary/gen/vdiv-relu-wasm-x8.c",
1544    "src/f32-vbinary/gen/vdivc-minmax-wasm-x1.c",
1545    "src/f32-vbinary/gen/vdivc-minmax-wasm-x2.c",
1546    "src/f32-vbinary/gen/vdivc-minmax-wasm-x4.c",
1547    "src/f32-vbinary/gen/vdivc-minmax-wasm-x8.c",
1548    "src/f32-vbinary/gen/vdivc-relu-wasm-x1.c",
1549    "src/f32-vbinary/gen/vdivc-relu-wasm-x2.c",
1550    "src/f32-vbinary/gen/vdivc-relu-wasm-x4.c",
1551    "src/f32-vbinary/gen/vdivc-relu-wasm-x8.c",
1552    "src/f32-vbinary/gen/vmax-wasm-x1.c",
1553    "src/f32-vbinary/gen/vmax-wasm-x2.c",
1554    "src/f32-vbinary/gen/vmax-wasm-x4.c",
1555    "src/f32-vbinary/gen/vmax-wasm-x8.c",
1556    "src/f32-vbinary/gen/vmaxc-wasm-x1.c",
1557    "src/f32-vbinary/gen/vmaxc-wasm-x2.c",
1558    "src/f32-vbinary/gen/vmaxc-wasm-x4.c",
1559    "src/f32-vbinary/gen/vmaxc-wasm-x8.c",
1560    "src/f32-vbinary/gen/vmin-wasm-x1.c",
1561    "src/f32-vbinary/gen/vmin-wasm-x2.c",
1562    "src/f32-vbinary/gen/vmin-wasm-x4.c",
1563    "src/f32-vbinary/gen/vmin-wasm-x8.c",
1564    "src/f32-vbinary/gen/vminc-wasm-x1.c",
1565    "src/f32-vbinary/gen/vminc-wasm-x2.c",
1566    "src/f32-vbinary/gen/vminc-wasm-x4.c",
1567    "src/f32-vbinary/gen/vminc-wasm-x8.c",
1568    "src/f32-vbinary/gen/vmul-minmax-wasm-x1.c",
1569    "src/f32-vbinary/gen/vmul-minmax-wasm-x2.c",
1570    "src/f32-vbinary/gen/vmul-minmax-wasm-x4.c",
1571    "src/f32-vbinary/gen/vmul-minmax-wasm-x8.c",
1572    "src/f32-vbinary/gen/vmul-relu-wasm-x1.c",
1573    "src/f32-vbinary/gen/vmul-relu-wasm-x2.c",
1574    "src/f32-vbinary/gen/vmul-relu-wasm-x4.c",
1575    "src/f32-vbinary/gen/vmul-relu-wasm-x8.c",
1576    "src/f32-vbinary/gen/vmulc-minmax-wasm-x1.c",
1577    "src/f32-vbinary/gen/vmulc-minmax-wasm-x2.c",
1578    "src/f32-vbinary/gen/vmulc-minmax-wasm-x4.c",
1579    "src/f32-vbinary/gen/vmulc-minmax-wasm-x8.c",
1580    "src/f32-vbinary/gen/vmulc-relu-wasm-x1.c",
1581    "src/f32-vbinary/gen/vmulc-relu-wasm-x2.c",
1582    "src/f32-vbinary/gen/vmulc-relu-wasm-x4.c",
1583    "src/f32-vbinary/gen/vmulc-relu-wasm-x8.c",
1584    "src/f32-vbinary/gen/vrdivc-minmax-wasm-x1.c",
1585    "src/f32-vbinary/gen/vrdivc-minmax-wasm-x2.c",
1586    "src/f32-vbinary/gen/vrdivc-minmax-wasm-x4.c",
1587    "src/f32-vbinary/gen/vrdivc-minmax-wasm-x8.c",
1588    "src/f32-vbinary/gen/vrdivc-relu-wasm-x1.c",
1589    "src/f32-vbinary/gen/vrdivc-relu-wasm-x2.c",
1590    "src/f32-vbinary/gen/vrdivc-relu-wasm-x4.c",
1591    "src/f32-vbinary/gen/vrdivc-relu-wasm-x8.c",
1592    "src/f32-vbinary/gen/vrsubc-minmax-wasm-x1.c",
1593    "src/f32-vbinary/gen/vrsubc-minmax-wasm-x2.c",
1594    "src/f32-vbinary/gen/vrsubc-minmax-wasm-x4.c",
1595    "src/f32-vbinary/gen/vrsubc-minmax-wasm-x8.c",
1596    "src/f32-vbinary/gen/vrsubc-relu-wasm-x1.c",
1597    "src/f32-vbinary/gen/vrsubc-relu-wasm-x2.c",
1598    "src/f32-vbinary/gen/vrsubc-relu-wasm-x4.c",
1599    "src/f32-vbinary/gen/vrsubc-relu-wasm-x8.c",
1600    "src/f32-vbinary/gen/vsub-minmax-wasm-x1.c",
1601    "src/f32-vbinary/gen/vsub-minmax-wasm-x2.c",
1602    "src/f32-vbinary/gen/vsub-minmax-wasm-x4.c",
1603    "src/f32-vbinary/gen/vsub-minmax-wasm-x8.c",
1604    "src/f32-vbinary/gen/vsub-relu-wasm-x1.c",
1605    "src/f32-vbinary/gen/vsub-relu-wasm-x2.c",
1606    "src/f32-vbinary/gen/vsub-relu-wasm-x4.c",
1607    "src/f32-vbinary/gen/vsub-relu-wasm-x8.c",
1608    "src/f32-vbinary/gen/vsubc-minmax-wasm-x1.c",
1609    "src/f32-vbinary/gen/vsubc-minmax-wasm-x2.c",
1610    "src/f32-vbinary/gen/vsubc-minmax-wasm-x4.c",
1611    "src/f32-vbinary/gen/vsubc-minmax-wasm-x8.c",
1612    "src/f32-vbinary/gen/vsubc-relu-wasm-x1.c",
1613    "src/f32-vbinary/gen/vsubc-relu-wasm-x2.c",
1614    "src/f32-vbinary/gen/vsubc-relu-wasm-x4.c",
1615    "src/f32-vbinary/gen/vsubc-relu-wasm-x8.c",
1616    "src/f32-vclamp/gen/vclamp-wasm-x1.c",
1617    "src/f32-vclamp/gen/vclamp-wasm-x2.c",
1618    "src/f32-vclamp/gen/vclamp-wasm-x4.c",
1619    "src/f32-velu/gen/velu-wasm-rr2-lut16-p3-x1.c",
1620    "src/f32-velu/gen/velu-wasm-rr2-lut16-p3-x2.c",
1621    "src/f32-velu/gen/velu-wasm-rr2-lut16-p3-x3.c",
1622    "src/f32-velu/gen/velu-wasm-rr2-lut16-p3-x4.c",
1623    "src/f32-velu/gen/velu-wasm-rr2-lut16-p3-x5.c",
1624    "src/f32-velu/gen/velu-wasm-rr2-lut16-p3-x6.c",
1625    "src/f32-velu/gen/velu-wasm-rr2-p6-x1.c",
1626    "src/f32-velu/gen/velu-wasm-rr2-p6-x2.c",
1627    "src/f32-velu/gen/velu-wasm-rr2-p6-x3.c",
1628    "src/f32-velu/gen/velu-wasm-rr2-p6-x4.c",
1629    "src/f32-velu/gen/velu-wasm-rr2-p6-x5.c",
1630    "src/f32-velu/gen/velu-wasm-rr2-p6-x6.c",
1631    "src/f32-vhswish/gen/vhswish-wasm-x1.c",
1632    "src/f32-vhswish/gen/vhswish-wasm-x2.c",
1633    "src/f32-vhswish/gen/vhswish-wasm-x4.c",
1634    "src/f32-vlrelu/gen/vlrelu-wasm-x1.c",
1635    "src/f32-vlrelu/gen/vlrelu-wasm-x2.c",
1636    "src/f32-vlrelu/gen/vlrelu-wasm-x4.c",
1637    "src/f32-vmulcaddc/gen/c1-minmax-wasm-2x.c",
1638    "src/f32-vmulcaddc/gen/c2-minmax-wasm-2x.c",
1639    "src/f32-vmulcaddc/gen/c4-minmax-wasm-2x.c",
1640    "src/f32-vrelu/gen/vrelu-wasm-x1.c",
1641    "src/f32-vrelu/gen/vrelu-wasm-x2.c",
1642    "src/f32-vrelu/gen/vrelu-wasm-x4.c",
1643    "src/f32-vrelu/gen/vrelu-wasm-x8.c",
1644    "src/qc8-dwconv/gen/up1x9-minmax-fp32-wasm-fmagic.c",
1645    "src/qc8-dwconv/gen/up1x25-minmax-fp32-wasm-fmagic.c",
1646    "src/qc8-dwconv/gen/up2x3-minmax-fp32-wasm-fmagic.c",
1647    "src/qc8-dwconv/gen/up2x9-minmax-fp32-wasm-fmagic.c",
1648    "src/qc8-dwconv/gen/up2x25-minmax-fp32-wasm-fmagic.c",
1649    "src/qc8-dwconv/gen/up4x9-minmax-fp32-wasm-fmagic.c",
1650    "src/qc8-dwconv/gen/up4x25-minmax-fp32-wasm-fmagic.c",
1651    "src/qc8-gemm/gen/1x2-minmax-fp32-wasm-fmagic.c",
1652    "src/qc8-gemm/gen/1x4-minmax-fp32-wasm-fmagic.c",
1653    "src/qc8-gemm/gen/2x2-minmax-fp32-wasm-fmagic.c",
1654    "src/qc8-gemm/gen/2x4-minmax-fp32-wasm-fmagic.c",
1655    "src/qc8-gemm/gen/3x2-minmax-fp32-wasm-fmagic.c",
1656    "src/qc8-gemm/gen/3x4-minmax-fp32-wasm-fmagic.c",
1657    "src/qc8-gemm/gen/4x2-minmax-fp32-wasm-fmagic.c",
1658    "src/qc8-gemm/gen/4x4-minmax-fp32-wasm-fmagic.c",
1659    "src/qc8-igemm/gen/1x2-minmax-fp32-wasm-fmagic.c",
1660    "src/qc8-igemm/gen/1x4-minmax-fp32-wasm-fmagic.c",
1661    "src/qc8-igemm/gen/2x2-minmax-fp32-wasm-fmagic.c",
1662    "src/qc8-igemm/gen/2x4-minmax-fp32-wasm-fmagic.c",
1663    "src/qc8-igemm/gen/3x2-minmax-fp32-wasm-fmagic.c",
1664    "src/qc8-igemm/gen/3x4-minmax-fp32-wasm-fmagic.c",
1665    "src/qc8-igemm/gen/4x2-minmax-fp32-wasm-fmagic.c",
1666    "src/qc8-igemm/gen/4x4-minmax-fp32-wasm-fmagic.c",
1667    "src/qs8-dwconv/gen/up1x9-minmax-fp32-wasm-fmagic.c",
1668    "src/qs8-dwconv/gen/up1x25-minmax-fp32-wasm-fmagic.c",
1669    "src/qs8-dwconv/gen/up2x9-minmax-fp32-wasm-fmagic.c",
1670    "src/qs8-dwconv/gen/up2x25-minmax-fp32-wasm-fmagic.c",
1671    "src/qs8-dwconv/gen/up4x9-minmax-fp32-wasm-fmagic.c",
1672    "src/qs8-dwconv/gen/up4x25-minmax-fp32-wasm-fmagic.c",
1673    "src/qs8-gemm/gen/1x2-minmax-fp32-wasm-fmagic.c",
1674    "src/qs8-gemm/gen/1x4-minmax-fp32-wasm-fmagic.c",
1675    "src/qs8-gemm/gen/2x2-minmax-fp32-wasm-fmagic.c",
1676    "src/qs8-gemm/gen/2x4-minmax-fp32-wasm-fmagic.c",
1677    "src/qs8-gemm/gen/3x2-minmax-fp32-wasm-fmagic.c",
1678    "src/qs8-gemm/gen/3x4-minmax-fp32-wasm-fmagic.c",
1679    "src/qs8-gemm/gen/4x2-minmax-fp32-wasm-fmagic.c",
1680    "src/qs8-gemm/gen/4x4-minmax-fp32-wasm-fmagic.c",
1681    "src/qs8-igemm/gen/1x2-minmax-fp32-wasm-fmagic.c",
1682    "src/qs8-igemm/gen/1x4-minmax-fp32-wasm-fmagic.c",
1683    "src/qs8-igemm/gen/2x2-minmax-fp32-wasm-fmagic.c",
1684    "src/qs8-igemm/gen/2x4-minmax-fp32-wasm-fmagic.c",
1685    "src/qs8-igemm/gen/3x2-minmax-fp32-wasm-fmagic.c",
1686    "src/qs8-igemm/gen/3x4-minmax-fp32-wasm-fmagic.c",
1687    "src/qs8-igemm/gen/4x2-minmax-fp32-wasm-fmagic.c",
1688    "src/qs8-igemm/gen/4x4-minmax-fp32-wasm-fmagic.c",
1689    "src/qu8-dwconv/gen/up1x9-minmax-fp32-wasm-fmagic.c",
1690    "src/qu8-dwconv/gen/up1x25-minmax-fp32-wasm-fmagic.c",
1691    "src/qu8-dwconv/gen/up2x9-minmax-fp32-wasm-fmagic.c",
1692    "src/qu8-dwconv/gen/up2x25-minmax-fp32-wasm-fmagic.c",
1693    "src/qu8-dwconv/gen/up4x9-minmax-fp32-wasm-fmagic.c",
1694    "src/qu8-dwconv/gen/up4x25-minmax-fp32-wasm-fmagic.c",
1695    "src/qu8-gemm/gen/1x2-minmax-fp32-wasm-fmagic.c",
1696    "src/qu8-gemm/gen/1x4-minmax-fp32-wasm-fmagic.c",
1697    "src/qu8-gemm/gen/2x2-minmax-fp32-wasm-fmagic.c",
1698    "src/qu8-gemm/gen/2x4-minmax-fp32-wasm-fmagic.c",
1699    "src/qu8-gemm/gen/3x2-minmax-fp32-wasm-fmagic.c",
1700    "src/qu8-gemm/gen/3x4-minmax-fp32-wasm-fmagic.c",
1701    "src/qu8-gemm/gen/4x2-minmax-fp32-wasm-fmagic.c",
1702    "src/qu8-gemm/gen/4x4-minmax-fp32-wasm-fmagic.c",
1703    "src/qu8-igemm/gen/1x2-minmax-fp32-wasm-fmagic.c",
1704    "src/qu8-igemm/gen/1x4-minmax-fp32-wasm-fmagic.c",
1705    "src/qu8-igemm/gen/2x2-minmax-fp32-wasm-fmagic.c",
1706    "src/qu8-igemm/gen/2x4-minmax-fp32-wasm-fmagic.c",
1707    "src/qu8-igemm/gen/3x2-minmax-fp32-wasm-fmagic.c",
1708    "src/qu8-igemm/gen/3x4-minmax-fp32-wasm-fmagic.c",
1709    "src/qu8-igemm/gen/4x2-minmax-fp32-wasm-fmagic.c",
1710    "src/qu8-igemm/gen/4x4-minmax-fp32-wasm-fmagic.c",
1711]
1712
1713ALL_WASMSIMD_MICROKERNEL_SRCS = [
1714    "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int16-x8.c",
1715    "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int16-x16.c",
1716    "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int16-x24.c",
1717    "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int16-x32.c",
1718    "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int32-x8.c",
1719    "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int32-x16.c",
1720    "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int32-x24.c",
1721    "src/f16-f32-vcvt/gen/vcvt-wasmsimd-int32-x32.c",
1722    "src/f32-argmaxpool/4x-wasmsimd-c4.c",
1723    "src/f32-argmaxpool/9p8x-wasmsimd-c4.c",
1724    "src/f32-argmaxpool/9x-wasmsimd-c4.c",
1725    "src/f32-avgpool/9p8x-minmax-wasmsimd-arm-c4.c",
1726    "src/f32-avgpool/9p8x-minmax-wasmsimd-x86-c4.c",
1727    "src/f32-avgpool/9x-minmax-wasmsimd-arm-c4.c",
1728    "src/f32-avgpool/9x-minmax-wasmsimd-x86-c4.c",
1729    "src/f32-conv-hwc2chw/3x3s2p1c3x4-wasmsimd-2x2.c",
1730    "src/f32-dwconv/gen/up4x3-minmax-wasmsimd-arm-acc2.c",
1731    "src/f32-dwconv/gen/up4x3-minmax-wasmsimd-arm.c",
1732    "src/f32-dwconv/gen/up4x3-minmax-wasmsimd-x86-acc2.c",
1733    "src/f32-dwconv/gen/up4x3-minmax-wasmsimd-x86.c",
1734    "src/f32-dwconv/gen/up4x3-wasmsimd.c",
1735    "src/f32-dwconv/gen/up4x4-minmax-wasmsimd-arm-acc2.c",
1736    "src/f32-dwconv/gen/up4x4-minmax-wasmsimd-arm.c",
1737    "src/f32-dwconv/gen/up4x4-minmax-wasmsimd-x86-acc2.c",
1738    "src/f32-dwconv/gen/up4x4-minmax-wasmsimd-x86.c",
1739    "src/f32-dwconv/gen/up4x4-wasmsimd.c",
1740    "src/f32-dwconv/gen/up4x9-minmax-wasmsimd-arm-acc2.c",
1741    "src/f32-dwconv/gen/up4x9-minmax-wasmsimd-arm.c",
1742    "src/f32-dwconv/gen/up4x9-minmax-wasmsimd-x86-acc2.c",
1743    "src/f32-dwconv/gen/up4x9-minmax-wasmsimd-x86.c",
1744    "src/f32-dwconv/gen/up4x9-wasmsimd-acc2.c",
1745    "src/f32-dwconv/gen/up4x9-wasmsimd.c",
1746    "src/f32-dwconv/gen/up4x25-minmax-wasmsimd-arm-acc2.c",
1747    "src/f32-dwconv/gen/up4x25-minmax-wasmsimd-arm.c",
1748    "src/f32-dwconv/gen/up4x25-minmax-wasmsimd-x86-acc2.c",
1749    "src/f32-dwconv/gen/up4x25-minmax-wasmsimd-x86.c",
1750    "src/f32-dwconv/gen/up4x25-wasmsimd.c",
1751    "src/f32-dwconv/gen/up8x3-minmax-wasmsimd-arm-acc2.c",
1752    "src/f32-dwconv/gen/up8x3-minmax-wasmsimd-arm.c",
1753    "src/f32-dwconv/gen/up8x3-minmax-wasmsimd-x86-acc2.c",
1754    "src/f32-dwconv/gen/up8x3-minmax-wasmsimd-x86.c",
1755    "src/f32-dwconv/gen/up8x3-wasmsimd.c",
1756    "src/f32-dwconv/gen/up8x4-minmax-wasmsimd-arm-acc2.c",
1757    "src/f32-dwconv/gen/up8x4-minmax-wasmsimd-arm.c",
1758    "src/f32-dwconv/gen/up8x4-minmax-wasmsimd-x86-acc2.c",
1759    "src/f32-dwconv/gen/up8x4-minmax-wasmsimd-x86.c",
1760    "src/f32-dwconv/gen/up8x4-wasmsimd.c",
1761    "src/f32-dwconv/gen/up8x9-minmax-wasmsimd-arm-acc2.c",
1762    "src/f32-dwconv/gen/up8x9-minmax-wasmsimd-arm.c",
1763    "src/f32-dwconv/gen/up8x9-minmax-wasmsimd-x86-acc2.c",
1764    "src/f32-dwconv/gen/up8x9-minmax-wasmsimd-x86.c",
1765    "src/f32-dwconv/gen/up8x9-wasmsimd-acc2.c",
1766    "src/f32-dwconv/gen/up8x9-wasmsimd.c",
1767    "src/f32-dwconv/gen/up8x25-minmax-wasmsimd-arm-acc2.c",
1768    "src/f32-dwconv/gen/up8x25-minmax-wasmsimd-arm.c",
1769    "src/f32-dwconv/gen/up8x25-minmax-wasmsimd-x86-acc2.c",
1770    "src/f32-dwconv/gen/up8x25-minmax-wasmsimd-x86.c",
1771    "src/f32-dwconv/gen/up8x25-wasmsimd.c",
1772    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-1x4-acc2.c",
1773    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-1x4-acc3.c",
1774    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-1x4-acc4.c",
1775    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-1x4.c",
1776    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-2x4-acc2.c",
1777    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-2x4.c",
1778    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-3x4.c",
1779    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-4x4.c",
1780    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-5x4.c",
1781    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-loadsplat-6x4.c",
1782    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-1x4-acc2.c",
1783    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-1x4-acc3.c",
1784    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-1x4-acc4.c",
1785    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-1x4.c",
1786    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-2x4-acc2.c",
1787    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-2x4.c",
1788    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-3x4.c",
1789    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-4x4.c",
1790    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-5x4.c",
1791    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-arm-splat-6x4.c",
1792    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-1x4-acc2.c",
1793    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-1x4-acc3.c",
1794    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-1x4-acc4.c",
1795    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-1x4.c",
1796    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-2x4-acc2.c",
1797    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-2x4.c",
1798    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-3x4.c",
1799    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-4x4.c",
1800    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-5x4.c",
1801    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-loadsplat-6x4.c",
1802    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-1x4-acc2.c",
1803    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-1x4-acc3.c",
1804    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-1x4-acc4.c",
1805    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-1x4.c",
1806    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-2x4-acc2.c",
1807    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-2x4.c",
1808    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-3x4.c",
1809    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-4x4.c",
1810    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-5x4.c",
1811    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-wasmsimd-x86-splat-6x4.c",
1812    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-1x4-acc2.c",
1813    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-1x4-acc3.c",
1814    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-1x4-acc4.c",
1815    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-1x4.c",
1816    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-2x4-acc2.c",
1817    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-2x4.c",
1818    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-3x4.c",
1819    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-loadsplat-4x4.c",
1820    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-1x4-acc2.c",
1821    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-1x4-acc3.c",
1822    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-1x4-acc4.c",
1823    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-1x4.c",
1824    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-2x4-acc2.c",
1825    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-2x4.c",
1826    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-3x4.c",
1827    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-arm-splat-4x4.c",
1828    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-1x4-acc2.c",
1829    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-1x4-acc3.c",
1830    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-1x4-acc4.c",
1831    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-1x4.c",
1832    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-2x4-acc2.c",
1833    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-2x4.c",
1834    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-3x4.c",
1835    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-loadsplat-4x4.c",
1836    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-1x4-acc2.c",
1837    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-1x4-acc3.c",
1838    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-1x4-acc4.c",
1839    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-1x4.c",
1840    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-2x4-acc2.c",
1841    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-2x4.c",
1842    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-3x4.c",
1843    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-wasmsimd-x86-splat-4x4.c",
1844    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-1x4-acc2.c",
1845    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-1x4-acc3.c",
1846    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-1x4-acc4.c",
1847    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-1x4-acc5.c",
1848    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-1x4.c",
1849    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-2x4-acc2.c",
1850    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-2x4-acc3.c",
1851    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-2x4.c",
1852    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-3x4-acc2.c",
1853    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-3x4.c",
1854    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-4x4-acc2.c",
1855    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-4x4.c",
1856    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-loadsplat-5x4.c",
1857    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-1x4-acc2.c",
1858    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-1x4-acc3.c",
1859    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-1x4-acc4.c",
1860    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-1x4-acc5.c",
1861    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-1x4.c",
1862    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-2x4-acc2.c",
1863    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-2x4-acc3.c",
1864    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-2x4.c",
1865    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-3x4-acc2.c",
1866    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-3x4.c",
1867    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-4x4-acc2.c",
1868    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-4x4.c",
1869    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-arm-splat-5x4.c",
1870    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-1x4-acc2.c",
1871    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-1x4-acc3.c",
1872    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-1x4-acc4.c",
1873    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-1x4-acc5.c",
1874    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-1x4.c",
1875    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-2x4-acc2.c",
1876    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-2x4-acc3.c",
1877    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-2x4.c",
1878    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-3x4-acc2.c",
1879    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-3x4.c",
1880    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-4x4-acc2.c",
1881    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-4x4.c",
1882    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-loadsplat-5x4.c",
1883    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-1x4-acc2.c",
1884    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-1x4-acc3.c",
1885    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-1x4-acc4.c",
1886    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-1x4-acc5.c",
1887    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-1x4.c",
1888    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-2x4-acc2.c",
1889    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-2x4-acc3.c",
1890    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-2x4.c",
1891    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-3x4-acc2.c",
1892    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-3x4.c",
1893    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-4x4-acc2.c",
1894    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-4x4.c",
1895    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-wasmsimd-x86-splat-5x4.c",
1896    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-1x4-acc2.c",
1897    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-1x4-acc3.c",
1898    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-1x4-acc4.c",
1899    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-1x4-acc5.c",
1900    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-1x4.c",
1901    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-2x4-acc2.c",
1902    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-2x4-acc3.c",
1903    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-2x4.c",
1904    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-3x4-acc2.c",
1905    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-loadsplat-3x4.c",
1906    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-1x4-acc2.c",
1907    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-1x4-acc3.c",
1908    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-1x4-acc4.c",
1909    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-1x4-acc5.c",
1910    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-1x4.c",
1911    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-2x4-acc2.c",
1912    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-2x4-acc3.c",
1913    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-2x4.c",
1914    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-3x4-acc2.c",
1915    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-arm-splat-3x4.c",
1916    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-1x4-acc2.c",
1917    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-1x4-acc3.c",
1918    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-1x4-acc4.c",
1919    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-1x4-acc5.c",
1920    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-1x4.c",
1921    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-2x4-acc2.c",
1922    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-2x4-acc3.c",
1923    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-2x4.c",
1924    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-3x4-acc2.c",
1925    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-loadsplat-3x4.c",
1926    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-1x4-acc2.c",
1927    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-1x4-acc3.c",
1928    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-1x4-acc4.c",
1929    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-1x4-acc5.c",
1930    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-1x4.c",
1931    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-2x4-acc2.c",
1932    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-2x4-acc3.c",
1933    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-2x4.c",
1934    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-3x4-acc2.c",
1935    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-wasmsimd-x86-splat-3x4.c",
1936    "src/f32-f16-vcvt/gen/vcvt-wasmsimd-x8.c",
1937    "src/f32-f16-vcvt/gen/vcvt-wasmsimd-x16.c",
1938    "src/f32-f16-vcvt/gen/vcvt-wasmsimd-x24.c",
1939    "src/f32-f16-vcvt/gen/vcvt-wasmsimd-x32.c",
1940    "src/f32-gavgpool-cw/wasmsimd-arm-x4.c",
1941    "src/f32-gavgpool-cw/wasmsimd-x86-x4.c",
1942    "src/f32-gavgpool/7p7x-minmax-wasmsimd-arm-c4.c",
1943    "src/f32-gavgpool/7p7x-minmax-wasmsimd-x86-c4.c",
1944    "src/f32-gavgpool/7x-minmax-wasmsimd-arm-c4.c",
1945    "src/f32-gavgpool/7x-minmax-wasmsimd-x86-c4.c",
1946    "src/f32-gemm/gen-inc/1x8inc-minmax-wasmsimd-arm-loadsplat.c",
1947    "src/f32-gemm/gen-inc/1x8inc-minmax-wasmsimd-arm-splat.c",
1948    "src/f32-gemm/gen-inc/1x8inc-minmax-wasmsimd-x86-loadsplat.c",
1949    "src/f32-gemm/gen-inc/1x8inc-minmax-wasmsimd-x86-splat.c",
1950    "src/f32-gemm/gen-inc/1x8s4inc-minmax-wasmsimd-arm.c",
1951    "src/f32-gemm/gen-inc/1x8s4inc-minmax-wasmsimd-x86.c",
1952    "src/f32-gemm/gen-inc/3x8inc-minmax-wasmsimd-arm-loadsplat.c",
1953    "src/f32-gemm/gen-inc/3x8inc-minmax-wasmsimd-arm-splat.c",
1954    "src/f32-gemm/gen-inc/3x8inc-minmax-wasmsimd-x86-loadsplat.c",
1955    "src/f32-gemm/gen-inc/3x8inc-minmax-wasmsimd-x86-splat.c",
1956    "src/f32-gemm/gen-inc/3x8s4inc-minmax-wasmsimd-arm.c",
1957    "src/f32-gemm/gen-inc/3x8s4inc-minmax-wasmsimd-x86.c",
1958    "src/f32-gemm/gen-inc/4x8inc-minmax-wasmsimd-arm-loadsplat.c",
1959    "src/f32-gemm/gen-inc/4x8inc-minmax-wasmsimd-arm-splat.c",
1960    "src/f32-gemm/gen-inc/4x8inc-minmax-wasmsimd-x86-loadsplat.c",
1961    "src/f32-gemm/gen-inc/4x8inc-minmax-wasmsimd-x86-splat.c",
1962    "src/f32-gemm/gen-inc/4x8s4inc-minmax-wasmsimd-arm.c",
1963    "src/f32-gemm/gen-inc/4x8s4inc-minmax-wasmsimd-x86.c",
1964    "src/f32-gemm/gen-inc/5x8inc-minmax-wasmsimd-arm-loadsplat.c",
1965    "src/f32-gemm/gen-inc/5x8inc-minmax-wasmsimd-arm-splat.c",
1966    "src/f32-gemm/gen-inc/5x8inc-minmax-wasmsimd-x86-loadsplat.c",
1967    "src/f32-gemm/gen-inc/5x8inc-minmax-wasmsimd-x86-splat.c",
1968    "src/f32-gemm/gen-inc/5x8s4inc-minmax-wasmsimd-arm.c",
1969    "src/f32-gemm/gen-inc/5x8s4inc-minmax-wasmsimd-x86.c",
1970    "src/f32-gemm/gen-inc/6x8inc-minmax-wasmsimd-arm-loadsplat.c",
1971    "src/f32-gemm/gen-inc/6x8inc-minmax-wasmsimd-arm-splat.c",
1972    "src/f32-gemm/gen-inc/6x8inc-minmax-wasmsimd-x86-loadsplat.c",
1973    "src/f32-gemm/gen-inc/6x8inc-minmax-wasmsimd-x86-splat.c",
1974    "src/f32-gemm/gen-inc/6x8s4inc-minmax-wasmsimd-arm.c",
1975    "src/f32-gemm/gen-inc/6x8s4inc-minmax-wasmsimd-x86.c",
1976    "src/f32-gemm/gen/1x8-minmax-wasmsimd-arm-loadsplat.c",
1977    "src/f32-gemm/gen/1x8-minmax-wasmsimd-arm-splat.c",
1978    "src/f32-gemm/gen/1x8-minmax-wasmsimd-x86-loadsplat.c",
1979    "src/f32-gemm/gen/1x8-minmax-wasmsimd-x86-splat.c",
1980    "src/f32-gemm/gen/1x8-relu-wasmsimd-loadsplat.c",
1981    "src/f32-gemm/gen/1x8-relu-wasmsimd-splat.c",
1982    "src/f32-gemm/gen/1x8-wasmsimd-loadsplat.c",
1983    "src/f32-gemm/gen/1x8-wasmsimd-splat.c",
1984    "src/f32-gemm/gen/1x8s4-minmax-wasmsimd-arm.c",
1985    "src/f32-gemm/gen/1x8s4-minmax-wasmsimd-x86.c",
1986    "src/f32-gemm/gen/1x8s4-relu-wasmsimd.c",
1987    "src/f32-gemm/gen/1x8s4-wasmsimd.c",
1988    "src/f32-gemm/gen/3x8-minmax-wasmsimd-arm-loadsplat.c",
1989    "src/f32-gemm/gen/3x8-minmax-wasmsimd-arm-splat.c",
1990    "src/f32-gemm/gen/3x8-minmax-wasmsimd-x86-loadsplat.c",
1991    "src/f32-gemm/gen/3x8-minmax-wasmsimd-x86-splat.c",
1992    "src/f32-gemm/gen/3x8-relu-wasmsimd-loadsplat.c",
1993    "src/f32-gemm/gen/3x8-relu-wasmsimd-splat.c",
1994    "src/f32-gemm/gen/3x8-wasmsimd-loadsplat.c",
1995    "src/f32-gemm/gen/3x8-wasmsimd-splat.c",
1996    "src/f32-gemm/gen/3x8s4-minmax-wasmsimd-arm.c",
1997    "src/f32-gemm/gen/3x8s4-minmax-wasmsimd-x86.c",
1998    "src/f32-gemm/gen/3x8s4-relu-wasmsimd.c",
1999    "src/f32-gemm/gen/3x8s4-wasmsimd.c",
2000    "src/f32-gemm/gen/4x2c4-minmax-wasmsimd-arm.c",
2001    "src/f32-gemm/gen/4x2c4-minmax-wasmsimd-x86.c",
2002    "src/f32-gemm/gen/4x2c4-relu-wasmsimd.c",
2003    "src/f32-gemm/gen/4x2c4-wasmsimd.c",
2004    "src/f32-gemm/gen/4x8-minmax-wasmsimd-arm-loadsplat.c",
2005    "src/f32-gemm/gen/4x8-minmax-wasmsimd-arm-splat.c",
2006    "src/f32-gemm/gen/4x8-minmax-wasmsimd-x86-loadsplat.c",
2007    "src/f32-gemm/gen/4x8-minmax-wasmsimd-x86-splat.c",
2008    "src/f32-gemm/gen/4x8-relu-wasmsimd-loadsplat.c",
2009    "src/f32-gemm/gen/4x8-relu-wasmsimd-splat.c",
2010    "src/f32-gemm/gen/4x8-wasmsimd-loadsplat.c",
2011    "src/f32-gemm/gen/4x8-wasmsimd-splat.c",
2012    "src/f32-gemm/gen/4x8s4-minmax-wasmsimd-arm.c",
2013    "src/f32-gemm/gen/4x8s4-minmax-wasmsimd-x86.c",
2014    "src/f32-gemm/gen/4x8s4-relu-wasmsimd.c",
2015    "src/f32-gemm/gen/4x8s4-wasmsimd.c",
2016    "src/f32-gemm/gen/5x8-minmax-wasmsimd-arm-loadsplat.c",
2017    "src/f32-gemm/gen/5x8-minmax-wasmsimd-arm-splat.c",
2018    "src/f32-gemm/gen/5x8-minmax-wasmsimd-x86-loadsplat.c",
2019    "src/f32-gemm/gen/5x8-minmax-wasmsimd-x86-splat.c",
2020    "src/f32-gemm/gen/5x8-relu-wasmsimd-loadsplat.c",
2021    "src/f32-gemm/gen/5x8-relu-wasmsimd-splat.c",
2022    "src/f32-gemm/gen/5x8-wasmsimd-loadsplat.c",
2023    "src/f32-gemm/gen/5x8-wasmsimd-splat.c",
2024    "src/f32-gemm/gen/5x8s4-minmax-wasmsimd-arm.c",
2025    "src/f32-gemm/gen/5x8s4-minmax-wasmsimd-x86.c",
2026    "src/f32-gemm/gen/5x8s4-relu-wasmsimd.c",
2027    "src/f32-gemm/gen/5x8s4-wasmsimd.c",
2028    "src/f32-gemm/gen/6x8-minmax-wasmsimd-arm-loadsplat.c",
2029    "src/f32-gemm/gen/6x8-minmax-wasmsimd-arm-splat.c",
2030    "src/f32-gemm/gen/6x8-minmax-wasmsimd-x86-loadsplat.c",
2031    "src/f32-gemm/gen/6x8-minmax-wasmsimd-x86-splat.c",
2032    "src/f32-gemm/gen/6x8-relu-wasmsimd-loadsplat.c",
2033    "src/f32-gemm/gen/6x8-relu-wasmsimd-splat.c",
2034    "src/f32-gemm/gen/6x8-wasmsimd-loadsplat.c",
2035    "src/f32-gemm/gen/6x8-wasmsimd-splat.c",
2036    "src/f32-gemm/gen/6x8s4-minmax-wasmsimd-arm.c",
2037    "src/f32-gemm/gen/6x8s4-minmax-wasmsimd-x86.c",
2038    "src/f32-gemm/gen/6x8s4-relu-wasmsimd.c",
2039    "src/f32-gemm/gen/6x8s4-wasmsimd.c",
2040    "src/f32-ibilinear-chw/gen/wasmsimd-p4.c",
2041    "src/f32-ibilinear-chw/gen/wasmsimd-p8.c",
2042    "src/f32-ibilinear/gen/wasmsimd-c4.c",
2043    "src/f32-ibilinear/gen/wasmsimd-c8.c",
2044    "src/f32-igemm/gen/1x8-minmax-wasmsimd-arm-loadsplat.c",
2045    "src/f32-igemm/gen/1x8-minmax-wasmsimd-arm-splat.c",
2046    "src/f32-igemm/gen/1x8-minmax-wasmsimd-x86-loadsplat.c",
2047    "src/f32-igemm/gen/1x8-minmax-wasmsimd-x86-splat.c",
2048    "src/f32-igemm/gen/1x8-relu-wasmsimd-loadsplat.c",
2049    "src/f32-igemm/gen/1x8-relu-wasmsimd-splat.c",
2050    "src/f32-igemm/gen/1x8-wasmsimd-loadsplat.c",
2051    "src/f32-igemm/gen/1x8-wasmsimd-splat.c",
2052    "src/f32-igemm/gen/1x8s4-minmax-wasmsimd-arm.c",
2053    "src/f32-igemm/gen/1x8s4-minmax-wasmsimd-x86.c",
2054    "src/f32-igemm/gen/1x8s4-relu-wasmsimd.c",
2055    "src/f32-igemm/gen/1x8s4-wasmsimd.c",
2056    "src/f32-igemm/gen/3x8-minmax-wasmsimd-arm-loadsplat.c",
2057    "src/f32-igemm/gen/3x8-minmax-wasmsimd-arm-splat.c",
2058    "src/f32-igemm/gen/3x8-minmax-wasmsimd-x86-loadsplat.c",
2059    "src/f32-igemm/gen/3x8-minmax-wasmsimd-x86-splat.c",
2060    "src/f32-igemm/gen/3x8-relu-wasmsimd-loadsplat.c",
2061    "src/f32-igemm/gen/3x8-relu-wasmsimd-splat.c",
2062    "src/f32-igemm/gen/3x8-wasmsimd-loadsplat.c",
2063    "src/f32-igemm/gen/3x8-wasmsimd-splat.c",
2064    "src/f32-igemm/gen/3x8s4-minmax-wasmsimd-arm.c",
2065    "src/f32-igemm/gen/3x8s4-minmax-wasmsimd-x86.c",
2066    "src/f32-igemm/gen/3x8s4-relu-wasmsimd.c",
2067    "src/f32-igemm/gen/3x8s4-wasmsimd.c",
2068    "src/f32-igemm/gen/4x2c4-minmax-wasmsimd-arm.c",
2069    "src/f32-igemm/gen/4x2c4-minmax-wasmsimd-x86.c",
2070    "src/f32-igemm/gen/4x2c4-relu-wasmsimd.c",
2071    "src/f32-igemm/gen/4x2c4-wasmsimd.c",
2072    "src/f32-igemm/gen/4x8-minmax-wasmsimd-arm-loadsplat.c",
2073    "src/f32-igemm/gen/4x8-minmax-wasmsimd-arm-splat.c",
2074    "src/f32-igemm/gen/4x8-minmax-wasmsimd-x86-loadsplat.c",
2075    "src/f32-igemm/gen/4x8-minmax-wasmsimd-x86-splat.c",
2076    "src/f32-igemm/gen/4x8-relu-wasmsimd-loadsplat.c",
2077    "src/f32-igemm/gen/4x8-relu-wasmsimd-splat.c",
2078    "src/f32-igemm/gen/4x8-wasmsimd-loadsplat.c",
2079    "src/f32-igemm/gen/4x8-wasmsimd-splat.c",
2080    "src/f32-igemm/gen/4x8s4-minmax-wasmsimd-arm.c",
2081    "src/f32-igemm/gen/4x8s4-minmax-wasmsimd-x86.c",
2082    "src/f32-igemm/gen/4x8s4-relu-wasmsimd.c",
2083    "src/f32-igemm/gen/4x8s4-wasmsimd.c",
2084    "src/f32-igemm/gen/5x8-minmax-wasmsimd-arm-loadsplat.c",
2085    "src/f32-igemm/gen/5x8-minmax-wasmsimd-arm-splat.c",
2086    "src/f32-igemm/gen/5x8-minmax-wasmsimd-x86-loadsplat.c",
2087    "src/f32-igemm/gen/5x8-minmax-wasmsimd-x86-splat.c",
2088    "src/f32-igemm/gen/5x8-relu-wasmsimd-loadsplat.c",
2089    "src/f32-igemm/gen/5x8-relu-wasmsimd-splat.c",
2090    "src/f32-igemm/gen/5x8-wasmsimd-loadsplat.c",
2091    "src/f32-igemm/gen/5x8-wasmsimd-splat.c",
2092    "src/f32-igemm/gen/5x8s4-minmax-wasmsimd-arm.c",
2093    "src/f32-igemm/gen/5x8s4-minmax-wasmsimd-x86.c",
2094    "src/f32-igemm/gen/5x8s4-relu-wasmsimd.c",
2095    "src/f32-igemm/gen/5x8s4-wasmsimd.c",
2096    "src/f32-igemm/gen/6x8-minmax-wasmsimd-arm-loadsplat.c",
2097    "src/f32-igemm/gen/6x8-minmax-wasmsimd-arm-splat.c",
2098    "src/f32-igemm/gen/6x8-minmax-wasmsimd-x86-loadsplat.c",
2099    "src/f32-igemm/gen/6x8-minmax-wasmsimd-x86-splat.c",
2100    "src/f32-igemm/gen/6x8-relu-wasmsimd-loadsplat.c",
2101    "src/f32-igemm/gen/6x8-relu-wasmsimd-splat.c",
2102    "src/f32-igemm/gen/6x8-wasmsimd-loadsplat.c",
2103    "src/f32-igemm/gen/6x8-wasmsimd-splat.c",
2104    "src/f32-igemm/gen/6x8s4-minmax-wasmsimd-arm.c",
2105    "src/f32-igemm/gen/6x8s4-minmax-wasmsimd-x86.c",
2106    "src/f32-igemm/gen/6x8s4-relu-wasmsimd.c",
2107    "src/f32-igemm/gen/6x8s4-wasmsimd.c",
2108    "src/f32-maxpool/9p8x-minmax-wasmsimd-arm-c4.c",
2109    "src/f32-maxpool/9p8x-minmax-wasmsimd-x86-c4.c",
2110    "src/f32-pavgpool/9p8x-minmax-wasmsimd-arm-c4.c",
2111    "src/f32-pavgpool/9p8x-minmax-wasmsimd-x86-c4.c",
2112    "src/f32-pavgpool/9x-minmax-wasmsimd-arm-c4.c",
2113    "src/f32-pavgpool/9x-minmax-wasmsimd-x86-c4.c",
2114    "src/f32-ppmm/gen/4x8-minmax-wasmsimd-arm-splat.c",
2115    "src/f32-ppmm/gen/4x8-minmax-wasmsimd-x86-splat.c",
2116    "src/f32-prelu/gen/wasmsimd-bitselect-1x4.c",
2117    "src/f32-prelu/gen/wasmsimd-bitselect-1x8.c",
2118    "src/f32-prelu/gen/wasmsimd-bitselect-1x16.c",
2119    "src/f32-prelu/gen/wasmsimd-bitselect-2x4.c",
2120    "src/f32-prelu/gen/wasmsimd-bitselect-2x8.c",
2121    "src/f32-prelu/gen/wasmsimd-bitselect-2x16.c",
2122    "src/f32-prelu/gen/wasmsimd-bitselect-4x4.c",
2123    "src/f32-prelu/gen/wasmsimd-bitselect-4x8.c",
2124    "src/f32-prelu/gen/wasmsimd-bitselect-4x16.c",
2125    "src/f32-prelu/gen/wasmsimd-minmax-1x4.c",
2126    "src/f32-prelu/gen/wasmsimd-minmax-1x8.c",
2127    "src/f32-prelu/gen/wasmsimd-minmax-1x16.c",
2128    "src/f32-prelu/gen/wasmsimd-minmax-2x4.c",
2129    "src/f32-prelu/gen/wasmsimd-minmax-2x8.c",
2130    "src/f32-prelu/gen/wasmsimd-minmax-2x16.c",
2131    "src/f32-prelu/gen/wasmsimd-minmax-4x4.c",
2132    "src/f32-prelu/gen/wasmsimd-minmax-4x8.c",
2133    "src/f32-prelu/gen/wasmsimd-minmax-4x16.c",
2134    "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-cvt-x8.c",
2135    "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-cvt-x16.c",
2136    "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-cvt-x24.c",
2137    "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-cvt-x32.c",
2138    "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-magic-x8.c",
2139    "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-magic-x16.c",
2140    "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-magic-x24.c",
2141    "src/f32-qs8-vcvt/gen/vcvt-wasmsimd-magic-x32.c",
2142    "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-cvt-x8.c",
2143    "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-cvt-x16.c",
2144    "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-cvt-x24.c",
2145    "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-cvt-x32.c",
2146    "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-magic-x8.c",
2147    "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-magic-x16.c",
2148    "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-magic-x24.c",
2149    "src/f32-qu8-vcvt/gen/vcvt-wasmsimd-magic-x32.c",
2150    "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x4.c",
2151    "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x8-acc2.c",
2152    "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x8.c",
2153    "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x12-acc2.c",
2154    "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x12-acc3.c",
2155    "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x12.c",
2156    "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x16-acc2.c",
2157    "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x16-acc4.c",
2158    "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x16.c",
2159    "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x20-acc2.c",
2160    "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x20-acc5.c",
2161    "src/f32-raddstoreexpminusmax/gen/wasmsimd-rr2-p5-x20.c",
2162    "src/f32-rmax/wasmsimd-arm.c",
2163    "src/f32-rmax/wasmsimd-x86.c",
2164    "src/f32-spmm/gen/4x1-minmax-wasmsimd-arm-pipelined-x2.c",
2165    "src/f32-spmm/gen/4x1-minmax-wasmsimd-arm-pipelined.c",
2166    "src/f32-spmm/gen/4x1-minmax-wasmsimd-arm-x2.c",
2167    "src/f32-spmm/gen/4x1-minmax-wasmsimd-arm-x4.c",
2168    "src/f32-spmm/gen/4x1-minmax-wasmsimd-arm.c",
2169    "src/f32-spmm/gen/4x1-minmax-wasmsimd-x86-pipelined-x2.c",
2170    "src/f32-spmm/gen/4x1-minmax-wasmsimd-x86-pipelined.c",
2171    "src/f32-spmm/gen/4x1-minmax-wasmsimd-x86-x2.c",
2172    "src/f32-spmm/gen/4x1-minmax-wasmsimd-x86-x4.c",
2173    "src/f32-spmm/gen/4x1-minmax-wasmsimd-x86.c",
2174    "src/f32-spmm/gen/8x1-minmax-wasmsimd-arm-pipelined-x2.c",
2175    "src/f32-spmm/gen/8x1-minmax-wasmsimd-arm-pipelined.c",
2176    "src/f32-spmm/gen/8x1-minmax-wasmsimd-arm-x2.c",
2177    "src/f32-spmm/gen/8x1-minmax-wasmsimd-arm-x4.c",
2178    "src/f32-spmm/gen/8x1-minmax-wasmsimd-arm.c",
2179    "src/f32-spmm/gen/8x1-minmax-wasmsimd-x86-pipelined-x2.c",
2180    "src/f32-spmm/gen/8x1-minmax-wasmsimd-x86-pipelined.c",
2181    "src/f32-spmm/gen/8x1-minmax-wasmsimd-x86-x2.c",
2182    "src/f32-spmm/gen/8x1-minmax-wasmsimd-x86-x4.c",
2183    "src/f32-spmm/gen/8x1-minmax-wasmsimd-x86.c",
2184    "src/f32-spmm/gen/16x1-minmax-wasmsimd-arm-pipelined-x2.c",
2185    "src/f32-spmm/gen/16x1-minmax-wasmsimd-arm-pipelined.c",
2186    "src/f32-spmm/gen/16x1-minmax-wasmsimd-arm-x2.c",
2187    "src/f32-spmm/gen/16x1-minmax-wasmsimd-arm-x4.c",
2188    "src/f32-spmm/gen/16x1-minmax-wasmsimd-arm.c",
2189    "src/f32-spmm/gen/16x1-minmax-wasmsimd-x86-pipelined-x2.c",
2190    "src/f32-spmm/gen/16x1-minmax-wasmsimd-x86-pipelined.c",
2191    "src/f32-spmm/gen/16x1-minmax-wasmsimd-x86-x2.c",
2192    "src/f32-spmm/gen/16x1-minmax-wasmsimd-x86-x4.c",
2193    "src/f32-spmm/gen/16x1-minmax-wasmsimd-x86.c",
2194    "src/f32-spmm/gen/32x1-minmax-wasmsimd-arm-pipelined-x2.c",
2195    "src/f32-spmm/gen/32x1-minmax-wasmsimd-arm-pipelined.c",
2196    "src/f32-spmm/gen/32x1-minmax-wasmsimd-arm-x2.c",
2197    "src/f32-spmm/gen/32x1-minmax-wasmsimd-arm-x4.c",
2198    "src/f32-spmm/gen/32x1-minmax-wasmsimd-arm.c",
2199    "src/f32-spmm/gen/32x1-minmax-wasmsimd-x86-pipelined-x2.c",
2200    "src/f32-spmm/gen/32x1-minmax-wasmsimd-x86-pipelined.c",
2201    "src/f32-spmm/gen/32x1-minmax-wasmsimd-x86-x2.c",
2202    "src/f32-spmm/gen/32x1-minmax-wasmsimd-x86-x4.c",
2203    "src/f32-spmm/gen/32x1-minmax-wasmsimd-x86.c",
2204    "src/f32-vbinary/gen/vadd-minmax-wasmsimd-arm-x4.c",
2205    "src/f32-vbinary/gen/vadd-minmax-wasmsimd-arm-x8.c",
2206    "src/f32-vbinary/gen/vadd-minmax-wasmsimd-arm-x16.c",
2207    "src/f32-vbinary/gen/vadd-minmax-wasmsimd-x86-x4.c",
2208    "src/f32-vbinary/gen/vadd-minmax-wasmsimd-x86-x8.c",
2209    "src/f32-vbinary/gen/vadd-minmax-wasmsimd-x86-x16.c",
2210    "src/f32-vbinary/gen/vadd-relu-wasmsimd-x4.c",
2211    "src/f32-vbinary/gen/vadd-relu-wasmsimd-x8.c",
2212    "src/f32-vbinary/gen/vadd-relu-wasmsimd-x16.c",
2213    "src/f32-vbinary/gen/vadd-wasmsimd-x4.c",
2214    "src/f32-vbinary/gen/vadd-wasmsimd-x8.c",
2215    "src/f32-vbinary/gen/vadd-wasmsimd-x16.c",
2216    "src/f32-vbinary/gen/vaddc-minmax-wasmsimd-arm-x4.c",
2217    "src/f32-vbinary/gen/vaddc-minmax-wasmsimd-arm-x8.c",
2218    "src/f32-vbinary/gen/vaddc-minmax-wasmsimd-arm-x16.c",
2219    "src/f32-vbinary/gen/vaddc-minmax-wasmsimd-x86-x4.c",
2220    "src/f32-vbinary/gen/vaddc-minmax-wasmsimd-x86-x8.c",
2221    "src/f32-vbinary/gen/vaddc-minmax-wasmsimd-x86-x16.c",
2222    "src/f32-vbinary/gen/vaddc-relu-wasmsimd-x4.c",
2223    "src/f32-vbinary/gen/vaddc-relu-wasmsimd-x8.c",
2224    "src/f32-vbinary/gen/vaddc-relu-wasmsimd-x16.c",
2225    "src/f32-vbinary/gen/vaddc-wasmsimd-x4.c",
2226    "src/f32-vbinary/gen/vaddc-wasmsimd-x8.c",
2227    "src/f32-vbinary/gen/vaddc-wasmsimd-x16.c",
2228    "src/f32-vbinary/gen/vdiv-minmax-wasmsimd-arm-x4.c",
2229    "src/f32-vbinary/gen/vdiv-minmax-wasmsimd-arm-x8.c",
2230    "src/f32-vbinary/gen/vdiv-minmax-wasmsimd-arm-x16.c",
2231    "src/f32-vbinary/gen/vdiv-minmax-wasmsimd-x86-x4.c",
2232    "src/f32-vbinary/gen/vdiv-minmax-wasmsimd-x86-x8.c",
2233    "src/f32-vbinary/gen/vdiv-minmax-wasmsimd-x86-x16.c",
2234    "src/f32-vbinary/gen/vdiv-relu-wasmsimd-x4.c",
2235    "src/f32-vbinary/gen/vdiv-relu-wasmsimd-x8.c",
2236    "src/f32-vbinary/gen/vdiv-relu-wasmsimd-x16.c",
2237    "src/f32-vbinary/gen/vdiv-wasmsimd-x4.c",
2238    "src/f32-vbinary/gen/vdiv-wasmsimd-x8.c",
2239    "src/f32-vbinary/gen/vdiv-wasmsimd-x16.c",
2240    "src/f32-vbinary/gen/vdivc-minmax-wasmsimd-arm-x4.c",
2241    "src/f32-vbinary/gen/vdivc-minmax-wasmsimd-arm-x8.c",
2242    "src/f32-vbinary/gen/vdivc-minmax-wasmsimd-arm-x16.c",
2243    "src/f32-vbinary/gen/vdivc-minmax-wasmsimd-x86-x4.c",
2244    "src/f32-vbinary/gen/vdivc-minmax-wasmsimd-x86-x8.c",
2245    "src/f32-vbinary/gen/vdivc-minmax-wasmsimd-x86-x16.c",
2246    "src/f32-vbinary/gen/vdivc-relu-wasmsimd-x4.c",
2247    "src/f32-vbinary/gen/vdivc-relu-wasmsimd-x8.c",
2248    "src/f32-vbinary/gen/vdivc-relu-wasmsimd-x16.c",
2249    "src/f32-vbinary/gen/vdivc-wasmsimd-x4.c",
2250    "src/f32-vbinary/gen/vdivc-wasmsimd-x8.c",
2251    "src/f32-vbinary/gen/vdivc-wasmsimd-x16.c",
2252    "src/f32-vbinary/gen/vmax-wasmsimd-arm-x4.c",
2253    "src/f32-vbinary/gen/vmax-wasmsimd-arm-x8.c",
2254    "src/f32-vbinary/gen/vmax-wasmsimd-arm-x16.c",
2255    "src/f32-vbinary/gen/vmax-wasmsimd-x86-x4.c",
2256    "src/f32-vbinary/gen/vmax-wasmsimd-x86-x8.c",
2257    "src/f32-vbinary/gen/vmax-wasmsimd-x86-x16.c",
2258    "src/f32-vbinary/gen/vmaxc-wasmsimd-arm-x4.c",
2259    "src/f32-vbinary/gen/vmaxc-wasmsimd-arm-x8.c",
2260    "src/f32-vbinary/gen/vmaxc-wasmsimd-arm-x16.c",
2261    "src/f32-vbinary/gen/vmaxc-wasmsimd-x86-x4.c",
2262    "src/f32-vbinary/gen/vmaxc-wasmsimd-x86-x8.c",
2263    "src/f32-vbinary/gen/vmaxc-wasmsimd-x86-x16.c",
2264    "src/f32-vbinary/gen/vmin-wasmsimd-arm-x4.c",
2265    "src/f32-vbinary/gen/vmin-wasmsimd-arm-x8.c",
2266    "src/f32-vbinary/gen/vmin-wasmsimd-arm-x16.c",
2267    "src/f32-vbinary/gen/vmin-wasmsimd-x86-x4.c",
2268    "src/f32-vbinary/gen/vmin-wasmsimd-x86-x8.c",
2269    "src/f32-vbinary/gen/vmin-wasmsimd-x86-x16.c",
2270    "src/f32-vbinary/gen/vminc-wasmsimd-arm-x4.c",
2271    "src/f32-vbinary/gen/vminc-wasmsimd-arm-x8.c",
2272    "src/f32-vbinary/gen/vminc-wasmsimd-arm-x16.c",
2273    "src/f32-vbinary/gen/vminc-wasmsimd-x86-x4.c",
2274    "src/f32-vbinary/gen/vminc-wasmsimd-x86-x8.c",
2275    "src/f32-vbinary/gen/vminc-wasmsimd-x86-x16.c",
2276    "src/f32-vbinary/gen/vmul-minmax-wasmsimd-arm-x4.c",
2277    "src/f32-vbinary/gen/vmul-minmax-wasmsimd-arm-x8.c",
2278    "src/f32-vbinary/gen/vmul-minmax-wasmsimd-arm-x16.c",
2279    "src/f32-vbinary/gen/vmul-minmax-wasmsimd-x86-x4.c",
2280    "src/f32-vbinary/gen/vmul-minmax-wasmsimd-x86-x8.c",
2281    "src/f32-vbinary/gen/vmul-minmax-wasmsimd-x86-x16.c",
2282    "src/f32-vbinary/gen/vmul-relu-wasmsimd-x4.c",
2283    "src/f32-vbinary/gen/vmul-relu-wasmsimd-x8.c",
2284    "src/f32-vbinary/gen/vmul-relu-wasmsimd-x16.c",
2285    "src/f32-vbinary/gen/vmul-wasmsimd-x4.c",
2286    "src/f32-vbinary/gen/vmul-wasmsimd-x8.c",
2287    "src/f32-vbinary/gen/vmul-wasmsimd-x16.c",
2288    "src/f32-vbinary/gen/vmulc-minmax-wasmsimd-arm-x4.c",
2289    "src/f32-vbinary/gen/vmulc-minmax-wasmsimd-arm-x8.c",
2290    "src/f32-vbinary/gen/vmulc-minmax-wasmsimd-arm-x16.c",
2291    "src/f32-vbinary/gen/vmulc-minmax-wasmsimd-x86-x4.c",
2292    "src/f32-vbinary/gen/vmulc-minmax-wasmsimd-x86-x8.c",
2293    "src/f32-vbinary/gen/vmulc-minmax-wasmsimd-x86-x16.c",
2294    "src/f32-vbinary/gen/vmulc-relu-wasmsimd-x4.c",
2295    "src/f32-vbinary/gen/vmulc-relu-wasmsimd-x8.c",
2296    "src/f32-vbinary/gen/vmulc-relu-wasmsimd-x16.c",
2297    "src/f32-vbinary/gen/vmulc-wasmsimd-x4.c",
2298    "src/f32-vbinary/gen/vmulc-wasmsimd-x8.c",
2299    "src/f32-vbinary/gen/vmulc-wasmsimd-x16.c",
2300    "src/f32-vbinary/gen/vrdivc-minmax-wasmsimd-arm-x4.c",
2301    "src/f32-vbinary/gen/vrdivc-minmax-wasmsimd-arm-x8.c",
2302    "src/f32-vbinary/gen/vrdivc-minmax-wasmsimd-arm-x16.c",
2303    "src/f32-vbinary/gen/vrdivc-minmax-wasmsimd-x86-x4.c",
2304    "src/f32-vbinary/gen/vrdivc-minmax-wasmsimd-x86-x8.c",
2305    "src/f32-vbinary/gen/vrdivc-minmax-wasmsimd-x86-x16.c",
2306    "src/f32-vbinary/gen/vrdivc-relu-wasmsimd-x4.c",
2307    "src/f32-vbinary/gen/vrdivc-relu-wasmsimd-x8.c",
2308    "src/f32-vbinary/gen/vrdivc-relu-wasmsimd-x16.c",
2309    "src/f32-vbinary/gen/vrdivc-wasmsimd-x4.c",
2310    "src/f32-vbinary/gen/vrdivc-wasmsimd-x8.c",
2311    "src/f32-vbinary/gen/vrdivc-wasmsimd-x16.c",
2312    "src/f32-vbinary/gen/vrsubc-minmax-wasmsimd-arm-x4.c",
2313    "src/f32-vbinary/gen/vrsubc-minmax-wasmsimd-arm-x8.c",
2314    "src/f32-vbinary/gen/vrsubc-minmax-wasmsimd-arm-x16.c",
2315    "src/f32-vbinary/gen/vrsubc-minmax-wasmsimd-x86-x4.c",
2316    "src/f32-vbinary/gen/vrsubc-minmax-wasmsimd-x86-x8.c",
2317    "src/f32-vbinary/gen/vrsubc-minmax-wasmsimd-x86-x16.c",
2318    "src/f32-vbinary/gen/vrsubc-relu-wasmsimd-x4.c",
2319    "src/f32-vbinary/gen/vrsubc-relu-wasmsimd-x8.c",
2320    "src/f32-vbinary/gen/vrsubc-relu-wasmsimd-x16.c",
2321    "src/f32-vbinary/gen/vrsubc-wasmsimd-x4.c",
2322    "src/f32-vbinary/gen/vrsubc-wasmsimd-x8.c",
2323    "src/f32-vbinary/gen/vrsubc-wasmsimd-x16.c",
2324    "src/f32-vbinary/gen/vsqrdiff-wasmsimd-x4.c",
2325    "src/f32-vbinary/gen/vsqrdiff-wasmsimd-x8.c",
2326    "src/f32-vbinary/gen/vsqrdiff-wasmsimd-x16.c",
2327    "src/f32-vbinary/gen/vsqrdiffc-wasmsimd-x4.c",
2328    "src/f32-vbinary/gen/vsqrdiffc-wasmsimd-x8.c",
2329    "src/f32-vbinary/gen/vsqrdiffc-wasmsimd-x16.c",
2330    "src/f32-vbinary/gen/vsub-minmax-wasmsimd-arm-x4.c",
2331    "src/f32-vbinary/gen/vsub-minmax-wasmsimd-arm-x8.c",
2332    "src/f32-vbinary/gen/vsub-minmax-wasmsimd-arm-x16.c",
2333    "src/f32-vbinary/gen/vsub-minmax-wasmsimd-x86-x4.c",
2334    "src/f32-vbinary/gen/vsub-minmax-wasmsimd-x86-x8.c",
2335    "src/f32-vbinary/gen/vsub-minmax-wasmsimd-x86-x16.c",
2336    "src/f32-vbinary/gen/vsub-relu-wasmsimd-x4.c",
2337    "src/f32-vbinary/gen/vsub-relu-wasmsimd-x8.c",
2338    "src/f32-vbinary/gen/vsub-relu-wasmsimd-x16.c",
2339    "src/f32-vbinary/gen/vsub-wasmsimd-x4.c",
2340    "src/f32-vbinary/gen/vsub-wasmsimd-x8.c",
2341    "src/f32-vbinary/gen/vsub-wasmsimd-x16.c",
2342    "src/f32-vbinary/gen/vsubc-minmax-wasmsimd-arm-x4.c",
2343    "src/f32-vbinary/gen/vsubc-minmax-wasmsimd-arm-x8.c",
2344    "src/f32-vbinary/gen/vsubc-minmax-wasmsimd-arm-x16.c",
2345    "src/f32-vbinary/gen/vsubc-minmax-wasmsimd-x86-x4.c",
2346    "src/f32-vbinary/gen/vsubc-minmax-wasmsimd-x86-x8.c",
2347    "src/f32-vbinary/gen/vsubc-minmax-wasmsimd-x86-x16.c",
2348    "src/f32-vbinary/gen/vsubc-relu-wasmsimd-x4.c",
2349    "src/f32-vbinary/gen/vsubc-relu-wasmsimd-x8.c",
2350    "src/f32-vbinary/gen/vsubc-relu-wasmsimd-x16.c",
2351    "src/f32-vbinary/gen/vsubc-wasmsimd-x4.c",
2352    "src/f32-vbinary/gen/vsubc-wasmsimd-x8.c",
2353    "src/f32-vbinary/gen/vsubc-wasmsimd-x16.c",
2354    "src/f32-vclamp/gen/vclamp-wasmsimd-arm-x4.c",
2355    "src/f32-vclamp/gen/vclamp-wasmsimd-arm-x8.c",
2356    "src/f32-vclamp/gen/vclamp-wasmsimd-x86-x4.c",
2357    "src/f32-vclamp/gen/vclamp-wasmsimd-x86-x8.c",
2358    "src/f32-velu/gen/velu-wasmsimd-arm-rr2-lut16-p3-x4.c",
2359    "src/f32-velu/gen/velu-wasmsimd-arm-rr2-lut16-p3-x8.c",
2360    "src/f32-velu/gen/velu-wasmsimd-arm-rr2-lut16-p3-x12.c",
2361    "src/f32-velu/gen/velu-wasmsimd-arm-rr2-lut16-p3-x16.c",
2362    "src/f32-velu/gen/velu-wasmsimd-arm-rr2-lut16-p3-x20.c",
2363    "src/f32-velu/gen/velu-wasmsimd-arm-rr2-lut16-p3-x24.c",
2364    "src/f32-velu/gen/velu-wasmsimd-arm-rr2-p6-x4.c",
2365    "src/f32-velu/gen/velu-wasmsimd-arm-rr2-p6-x8.c",
2366    "src/f32-velu/gen/velu-wasmsimd-arm-rr2-p6-x12.c",
2367    "src/f32-velu/gen/velu-wasmsimd-arm-rr2-p6-x16.c",
2368    "src/f32-velu/gen/velu-wasmsimd-arm-rr2-p6-x20.c",
2369    "src/f32-velu/gen/velu-wasmsimd-arm-rr2-p6-x24.c",
2370    "src/f32-velu/gen/velu-wasmsimd-x86-rr2-lut16-p3-x4.c",
2371    "src/f32-velu/gen/velu-wasmsimd-x86-rr2-lut16-p3-x8.c",
2372    "src/f32-velu/gen/velu-wasmsimd-x86-rr2-lut16-p3-x12.c",
2373    "src/f32-velu/gen/velu-wasmsimd-x86-rr2-lut16-p3-x16.c",
2374    "src/f32-velu/gen/velu-wasmsimd-x86-rr2-lut16-p3-x20.c",
2375    "src/f32-velu/gen/velu-wasmsimd-x86-rr2-lut16-p3-x24.c",
2376    "src/f32-velu/gen/velu-wasmsimd-x86-rr2-p6-x4.c",
2377    "src/f32-velu/gen/velu-wasmsimd-x86-rr2-p6-x8.c",
2378    "src/f32-velu/gen/velu-wasmsimd-x86-rr2-p6-x12.c",
2379    "src/f32-velu/gen/velu-wasmsimd-x86-rr2-p6-x16.c",
2380    "src/f32-velu/gen/velu-wasmsimd-x86-rr2-p6-x20.c",
2381    "src/f32-velu/gen/velu-wasmsimd-x86-rr2-p6-x24.c",
2382    "src/f32-vhswish/gen/vhswish-wasmsimd-x4.c",
2383    "src/f32-vhswish/gen/vhswish-wasmsimd-x8.c",
2384    "src/f32-vhswish/gen/vhswish-wasmsimd-x16.c",
2385    "src/f32-vlrelu/gen/vlrelu-wasmsimd-bitselect-x4.c",
2386    "src/f32-vlrelu/gen/vlrelu-wasmsimd-bitselect-x8.c",
2387    "src/f32-vlrelu/gen/vlrelu-wasmsimd-minmax-x4.c",
2388    "src/f32-vlrelu/gen/vlrelu-wasmsimd-minmax-x8.c",
2389    "src/f32-vmulcaddc/gen/c4-minmax-wasmsimd-arm-2x.c",
2390    "src/f32-vmulcaddc/gen/c4-minmax-wasmsimd-x86-2x.c",
2391    "src/f32-vmulcaddc/gen/c8-minmax-wasmsimd-arm-2x.c",
2392    "src/f32-vmulcaddc/gen/c8-minmax-wasmsimd-x86-2x.c",
2393    "src/f32-vrelu/gen/vrelu-wasmsimd-x4.c",
2394    "src/f32-vrelu/gen/vrelu-wasmsimd-x8.c",
2395    "src/f32-vrelu/gen/vrelu-wasmsimd-x16.c",
2396    "src/f32-vrnd/gen/vrndd-wasmsimd-x4.c",
2397    "src/f32-vrnd/gen/vrndd-wasmsimd-x8.c",
2398    "src/f32-vrnd/gen/vrndne-wasmsimd-x4.c",
2399    "src/f32-vrnd/gen/vrndne-wasmsimd-x8.c",
2400    "src/f32-vrnd/gen/vrndu-wasmsimd-x4.c",
2401    "src/f32-vrnd/gen/vrndu-wasmsimd-x8.c",
2402    "src/f32-vrnd/gen/vrndz-wasmsimd-x4.c",
2403    "src/f32-vrnd/gen/vrndz-wasmsimd-x8.c",
2404    "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-lut64-p2-div-x4.c",
2405    "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-lut64-p2-div-x8.c",
2406    "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-lut64-p2-div-x12.c",
2407    "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-lut64-p2-div-x16.c",
2408    "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-lut64-p2-div-x20.c",
2409    "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-lut64-p2-div-x24.c",
2410    "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-p5-div-x4.c",
2411    "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-p5-div-x8.c",
2412    "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-p5-div-x12.c",
2413    "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-p5-div-x16.c",
2414    "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-p5-div-x20.c",
2415    "src/f32-vsigmoid/gen/vsigmoid-wasmsimd-rr2-p5-div-x24.c",
2416    "src/f32-vsqrt/gen/wasmsimd-sqrt-x4.c",
2417    "src/f32-vsqrt/gen/wasmsimd-sqrt-x8.c",
2418    "src/f32-vunary/gen/vabs-wasmsimd-x4.c",
2419    "src/f32-vunary/gen/vabs-wasmsimd-x8.c",
2420    "src/f32-vunary/gen/vneg-wasmsimd-x4.c",
2421    "src/f32-vunary/gen/vneg-wasmsimd-x8.c",
2422    "src/f32-vunary/gen/vsqr-wasmsimd-x4.c",
2423    "src/f32-vunary/gen/vsqr-wasmsimd-x8.c",
2424    "src/math/cvt-f16-f32-wasmsimd-int16.c",
2425    "src/math/cvt-f16-f32-wasmsimd-int32.c",
2426    "src/math/cvt-f32-f16-wasmsimd.c",
2427    "src/math/cvt-f32-qs8-wasmsimd.c",
2428    "src/math/cvt-f32-qu8-wasmsimd.c",
2429    "src/math/expm1minus-f32-wasmsimd-rr2-lut16-p3-andnot.c",
2430    "src/math/expm1minus-f32-wasmsimd-rr2-lut16-p3-max.c",
2431    "src/math/expm1minus-f32-wasmsimd-rr2-p6-andnot.c",
2432    "src/math/expm1minus-f32-wasmsimd-rr2-p6-max.c",
2433    "src/math/roundd-wasmsimd-addsub.c",
2434    "src/math/roundd-wasmsimd-cvt.c",
2435    "src/math/roundd-wasmsimd-native.c",
2436    "src/math/roundne-wasmsimd-addsub.c",
2437    "src/math/roundne-wasmsimd-native.c",
2438    "src/math/roundu-wasmsimd-addsub.c",
2439    "src/math/roundu-wasmsimd-cvt.c",
2440    "src/math/roundu-wasmsimd-native.c",
2441    "src/math/roundz-wasmsimd-addsub.c",
2442    "src/math/roundz-wasmsimd-cvt.c",
2443    "src/math/roundz-wasmsimd-native.c",
2444    "src/math/sigmoid-f32-wasmsimd-rr2-lut64-p2-div.c",
2445    "src/math/sigmoid-f32-wasmsimd-rr2-p5-div.c",
2446    "src/qc8-dwconv/gen/up8x9-minmax-fp32-wasmsimd-mul16-add16.c",
2447    "src/qc8-dwconv/gen/up8x9-minmax-fp32-wasmsimd-mul16.c",
2448    "src/qc8-dwconv/gen/up8x25-minmax-fp32-wasmsimd-mul16-add16.c",
2449    "src/qc8-dwconv/gen/up8x25-minmax-fp32-wasmsimd-mul16.c",
2450    "src/qc8-dwconv/gen/up16x3-minmax-fp32-wasmsimd-mul16-add16.c",
2451    "src/qc8-dwconv/gen/up16x9-minmax-fp32-wasmsimd-mul16-add16.c",
2452    "src/qc8-dwconv/gen/up16x9-minmax-fp32-wasmsimd-mul16.c",
2453    "src/qc8-dwconv/gen/up16x25-minmax-fp32-wasmsimd-mul16-add16.c",
2454    "src/qc8-dwconv/gen/up16x25-minmax-fp32-wasmsimd-mul16.c",
2455    "src/qc8-dwconv/gen/up24x9-minmax-fp32-wasmsimd-mul16-add16.c",
2456    "src/qc8-dwconv/gen/up24x9-minmax-fp32-wasmsimd-mul16.c",
2457    "src/qc8-dwconv/gen/up24x25-minmax-fp32-wasmsimd-mul16-add16.c",
2458    "src/qc8-dwconv/gen/up24x25-minmax-fp32-wasmsimd-mul16.c",
2459    "src/qc8-gemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2460    "src/qc8-gemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2461    "src/qc8-gemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2462    "src/qc8-gemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2463    "src/qc8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2464    "src/qc8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2465    "src/qc8-gemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2466    "src/qc8-gemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2467    "src/qc8-gemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2468    "src/qc8-gemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2469    "src/qc8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2470    "src/qc8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2471    "src/qc8-gemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2472    "src/qc8-gemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2473    "src/qc8-gemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2474    "src/qc8-gemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2475    "src/qc8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2476    "src/qc8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2477    "src/qc8-gemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2478    "src/qc8-gemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2479    "src/qc8-gemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2480    "src/qc8-gemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2481    "src/qc8-gemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2482    "src/qc8-gemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2483    "src/qc8-igemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2484    "src/qc8-igemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2485    "src/qc8-igemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2486    "src/qc8-igemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2487    "src/qc8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2488    "src/qc8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2489    "src/qc8-igemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2490    "src/qc8-igemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2491    "src/qc8-igemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2492    "src/qc8-igemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2493    "src/qc8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2494    "src/qc8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2495    "src/qc8-igemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2496    "src/qc8-igemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2497    "src/qc8-igemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2498    "src/qc8-igemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2499    "src/qc8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2500    "src/qc8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2501    "src/qc8-igemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2502    "src/qc8-igemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2503    "src/qc8-igemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2504    "src/qc8-igemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2505    "src/qc8-igemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2506    "src/qc8-igemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2507    "src/qs8-dwconv/gen/up8x9-minmax-fp32-wasmsimd-mul16-add16.c",
2508    "src/qs8-dwconv/gen/up8x9-minmax-fp32-wasmsimd-mul16.c",
2509    "src/qs8-dwconv/gen/up8x25-minmax-fp32-wasmsimd-mul16-add16.c",
2510    "src/qs8-dwconv/gen/up8x25-minmax-fp32-wasmsimd-mul16.c",
2511    "src/qs8-dwconv/gen/up16x9-minmax-fp32-wasmsimd-mul16-add16.c",
2512    "src/qs8-dwconv/gen/up16x9-minmax-fp32-wasmsimd-mul16.c",
2513    "src/qs8-dwconv/gen/up16x25-minmax-fp32-wasmsimd-mul16-add16.c",
2514    "src/qs8-dwconv/gen/up16x25-minmax-fp32-wasmsimd-mul16.c",
2515    "src/qs8-dwconv/gen/up24x9-minmax-fp32-wasmsimd-mul16-add16.c",
2516    "src/qs8-dwconv/gen/up24x9-minmax-fp32-wasmsimd-mul16.c",
2517    "src/qs8-dwconv/gen/up24x25-minmax-fp32-wasmsimd-mul16-add16.c",
2518    "src/qs8-dwconv/gen/up24x25-minmax-fp32-wasmsimd-mul16.c",
2519    "src/qs8-f32-vcvt/gen/vcvt-wasmsimd-x8.c",
2520    "src/qs8-f32-vcvt/gen/vcvt-wasmsimd-x16.c",
2521    "src/qs8-f32-vcvt/gen/vcvt-wasmsimd-x24.c",
2522    "src/qs8-f32-vcvt/gen/vcvt-wasmsimd-x32.c",
2523    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c8.c",
2524    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c16.c",
2525    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c24.c",
2526    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c32.c",
2527    "src/qs8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c8.c",
2528    "src/qs8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c16.c",
2529    "src/qs8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c24.c",
2530    "src/qs8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c32.c",
2531    "src/qs8-gemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2532    "src/qs8-gemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2533    "src/qs8-gemm/gen/1x4c2-xw-minmax-fp32-wasmsimd-dot16x2.c",
2534    "src/qs8-gemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2535    "src/qs8-gemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2536    "src/qs8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2537    "src/qs8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2538    "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-wasmsimd-dot16x2.c",
2539    "src/qs8-gemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2540    "src/qs8-gemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2541    "src/qs8-gemm/gen/2x4c2-xw-minmax-fp32-wasmsimd-dot16x2.c",
2542    "src/qs8-gemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2543    "src/qs8-gemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2544    "src/qs8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2545    "src/qs8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2546    "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-wasmsimd-dot16x2.c",
2547    "src/qs8-gemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2548    "src/qs8-gemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2549    "src/qs8-gemm/gen/3x4c2-xw-minmax-fp32-wasmsimd-dot16x2.c",
2550    "src/qs8-gemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2551    "src/qs8-gemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2552    "src/qs8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2553    "src/qs8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2554    "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-wasmsimd-dot16x2.c",
2555    "src/qs8-gemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2556    "src/qs8-gemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2557    "src/qs8-gemm/gen/4x4c2-xw-minmax-fp32-wasmsimd-dot16x2.c",
2558    "src/qs8-gemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2559    "src/qs8-gemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2560    "src/qs8-gemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2561    "src/qs8-gemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2562    "src/qs8-gemm/gen/4x4c8-xw-minmax-fp32-wasmsimd-dot16x2.c",
2563    "src/qs8-igemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2564    "src/qs8-igemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2565    "src/qs8-igemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2566    "src/qs8-igemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2567    "src/qs8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2568    "src/qs8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2569    "src/qs8-igemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2570    "src/qs8-igemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2571    "src/qs8-igemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2572    "src/qs8-igemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2573    "src/qs8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2574    "src/qs8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2575    "src/qs8-igemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2576    "src/qs8-igemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2577    "src/qs8-igemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2578    "src/qs8-igemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2579    "src/qs8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2580    "src/qs8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2581    "src/qs8-igemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2582    "src/qs8-igemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2583    "src/qs8-igemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2584    "src/qs8-igemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2585    "src/qs8-igemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2586    "src/qs8-igemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2587    "src/qs8-requantization/fp32-wasmsimd.c",
2588    "src/qs8-requantization/gemmlowp-wasmsimd.c",
2589    "src/qs8-vadd/gen/minmax-wasmsimd-x8.c",
2590    "src/qs8-vadd/gen/minmax-wasmsimd-x16.c",
2591    "src/qs8-vadd/gen/minmax-wasmsimd-x24.c",
2592    "src/qs8-vadd/gen/minmax-wasmsimd-x32.c",
2593    "src/qs8-vaddc/gen/minmax-wasmsimd-x8.c",
2594    "src/qs8-vaddc/gen/minmax-wasmsimd-x16.c",
2595    "src/qs8-vaddc/gen/minmax-wasmsimd-x24.c",
2596    "src/qs8-vaddc/gen/minmax-wasmsimd-x32.c",
2597    "src/qs8-vcvt/gen/vcvt-wasmsimd-x8.c",
2598    "src/qs8-vcvt/gen/vcvt-wasmsimd-x16.c",
2599    "src/qs8-vcvt/gen/vcvt-wasmsimd-x32.c",
2600    "src/qs8-vlrelu/gen/vlrelu-wasmsimd-arm-x16.c",
2601    "src/qs8-vlrelu/gen/vlrelu-wasmsimd-arm-x32.c",
2602    "src/qs8-vlrelu/gen/vlrelu-wasmsimd-x86-x8.c",
2603    "src/qs8-vlrelu/gen/vlrelu-wasmsimd-x86-x16.c",
2604    "src/qs8-vlrelu/gen/vlrelu-wasmsimd-x86-x32.c",
2605    "src/qs8-vmul/gen/minmax-fp32-wasmsimd-mul32-ld64-x8.c",
2606    "src/qs8-vmul/gen/minmax-fp32-wasmsimd-mul32-ld64-x16.c",
2607    "src/qs8-vmulc/gen/minmax-fp32-wasmsimd-mul32-ld64-x8.c",
2608    "src/qs8-vmulc/gen/minmax-fp32-wasmsimd-mul32-ld64-x16.c",
2609    "src/qu8-dwconv/gen/up8x9-minmax-fp32-wasmsimd-mul16.c",
2610    "src/qu8-dwconv/gen/up8x25-minmax-fp32-wasmsimd-mul16.c",
2611    "src/qu8-dwconv/gen/up16x9-minmax-fp32-wasmsimd-mul16.c",
2612    "src/qu8-dwconv/gen/up16x25-minmax-fp32-wasmsimd-mul16.c",
2613    "src/qu8-dwconv/gen/up24x9-minmax-fp32-wasmsimd-mul16.c",
2614    "src/qu8-dwconv/gen/up24x25-minmax-fp32-wasmsimd-mul16.c",
2615    "src/qu8-f32-vcvt/gen/vcvt-wasmsimd-x8.c",
2616    "src/qu8-f32-vcvt/gen/vcvt-wasmsimd-x16.c",
2617    "src/qu8-f32-vcvt/gen/vcvt-wasmsimd-x24.c",
2618    "src/qu8-f32-vcvt/gen/vcvt-wasmsimd-x32.c",
2619    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c8.c",
2620    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c16.c",
2621    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c24.c",
2622    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-wasmsimd-c32.c",
2623    "src/qu8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c8.c",
2624    "src/qu8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c16.c",
2625    "src/qu8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c24.c",
2626    "src/qu8-gavgpool/gen/7x-minmax-fp32-wasmsimd-c32.c",
2627    "src/qu8-gemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2628    "src/qu8-gemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2629    "src/qu8-gemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2630    "src/qu8-gemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2631    "src/qu8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2632    "src/qu8-gemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2633    "src/qu8-gemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2634    "src/qu8-gemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2635    "src/qu8-gemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2636    "src/qu8-gemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2637    "src/qu8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2638    "src/qu8-gemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2639    "src/qu8-gemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2640    "src/qu8-gemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2641    "src/qu8-gemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2642    "src/qu8-gemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2643    "src/qu8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2644    "src/qu8-gemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2645    "src/qu8-gemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2646    "src/qu8-gemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2647    "src/qu8-gemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2648    "src/qu8-gemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2649    "src/qu8-gemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2650    "src/qu8-gemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2651    "src/qu8-igemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2652    "src/qu8-igemm/gen/1x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2653    "src/qu8-igemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2654    "src/qu8-igemm/gen/1x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2655    "src/qu8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2656    "src/qu8-igemm/gen/1x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2657    "src/qu8-igemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2658    "src/qu8-igemm/gen/2x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2659    "src/qu8-igemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2660    "src/qu8-igemm/gen/2x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2661    "src/qu8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2662    "src/qu8-igemm/gen/2x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2663    "src/qu8-igemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2664    "src/qu8-igemm/gen/3x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2665    "src/qu8-igemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2666    "src/qu8-igemm/gen/3x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2667    "src/qu8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2668    "src/qu8-igemm/gen/3x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2669    "src/qu8-igemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2670    "src/qu8-igemm/gen/4x4c2-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2671    "src/qu8-igemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2672    "src/qu8-igemm/gen/4x4c2s4-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2673    "src/qu8-igemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld64.c",
2674    "src/qu8-igemm/gen/4x4c8-minmax-fp32-wasmsimd-dot16x2-ld128.c",
2675    "src/qu8-requantization/fp32-wasmsimd.c",
2676    "src/qu8-requantization/gemmlowp-wasmsimd.c",
2677    "src/qu8-vadd/gen/minmax-wasmsimd-x8.c",
2678    "src/qu8-vadd/gen/minmax-wasmsimd-x16.c",
2679    "src/qu8-vadd/gen/minmax-wasmsimd-x32.c",
2680    "src/qu8-vaddc/gen/minmax-wasmsimd-x8.c",
2681    "src/qu8-vaddc/gen/minmax-wasmsimd-x16.c",
2682    "src/qu8-vaddc/gen/minmax-wasmsimd-x32.c",
2683    "src/qu8-vcvt/gen/vcvt-wasmsimd-x8.c",
2684    "src/qu8-vcvt/gen/vcvt-wasmsimd-x16.c",
2685    "src/qu8-vcvt/gen/vcvt-wasmsimd-x32.c",
2686    "src/qu8-vlrelu/gen/vlrelu-wasmsimd-arm-x16.c",
2687    "src/qu8-vlrelu/gen/vlrelu-wasmsimd-arm-x32.c",
2688    "src/qu8-vlrelu/gen/vlrelu-wasmsimd-x86-x8.c",
2689    "src/qu8-vlrelu/gen/vlrelu-wasmsimd-x86-x16.c",
2690    "src/qu8-vlrelu/gen/vlrelu-wasmsimd-x86-x32.c",
2691    "src/qu8-vmul/gen/minmax-fp32-wasmsimd-mul32-ld64-x8.c",
2692    "src/qu8-vmul/gen/minmax-fp32-wasmsimd-mul32-ld64-x16.c",
2693    "src/qu8-vmulc/gen/minmax-fp32-wasmsimd-mul32-ld64-x8.c",
2694    "src/qu8-vmulc/gen/minmax-fp32-wasmsimd-mul32-ld64-x16.c",
2695    "src/s8-ibilinear/gen/wasmsimd-dot16x2-c8.c",
2696    "src/s8-ibilinear/gen/wasmsimd-dot16x2-c16.c",
2697    "src/s8-ibilinear/gen/wasmsimd-mul32-c8.c",
2698    "src/s8-ibilinear/gen/wasmsimd-mul32-c16.c",
2699    "src/s8-maxpool/9p8x-minmax-wasmsimd-c16.c",
2700    "src/s8-vclamp/wasmsimd-x64.c",
2701    "src/u8-ibilinear/gen/wasmsimd-dot16x2-c8.c",
2702    "src/u8-ibilinear/gen/wasmsimd-dot16x2-c16.c",
2703    "src/u8-ibilinear/gen/wasmsimd-mul32-c8.c",
2704    "src/u8-ibilinear/gen/wasmsimd-mul32-c16.c",
2705    "src/u8-maxpool/9p8x-minmax-wasmsimd-c16.c",
2706    "src/u8-vclamp/wasmsimd-x64.c",
2707    "src/xx-fill/wasmsimd-x64.c",
2708    "src/xx-pad/wasmsimd.c",
2709    "src/x8-lut/gen/lut-wasmsimd-x16.c",
2710    "src/x8-lut/gen/lut-wasmsimd-x32.c",
2711    "src/x8-lut/gen/lut-wasmsimd-x48.c",
2712    "src/x8-lut/gen/lut-wasmsimd-x64.c",
2713    "src/x8-transposec/gen/16x16-reuse-mov-wasmsimd.c",
2714    "src/x8-transposec/gen/16x16-reuse-switch-wasmsimd.c",
2715    "src/x16-transposec/gen/8x8-multi-mov-wasmsimd.c",
2716    "src/x16-transposec/gen/8x8-multi-switch-wasmsimd.c",
2717    "src/x16-transposec/gen/8x8-reuse-mov-wasmsimd.c",
2718    "src/x16-transposec/gen/8x8-reuse-multi-wasmsimd.c",
2719    "src/x16-transposec/gen/8x8-reuse-switch-wasmsimd.c",
2720    "src/x32-packx/x4-wasmsimd.c",
2721    "src/x32-transposec/gen/4x4-multi-mov-wasmsimd.c",
2722    "src/x32-transposec/gen/4x4-multi-multi-wasmsimd.c",
2723    "src/x32-transposec/gen/4x4-multi-switch-wasmsimd.c",
2724    "src/x32-transposec/gen/4x4-reuse-mov-wasmsimd.c",
2725    "src/x32-transposec/gen/4x4-reuse-multi-wasmsimd.c",
2726    "src/x32-transposec/gen/4x4-reuse-switch-wasmsimd.c",
2727    "src/x32-unpool/wasmsimd.c",
2728    "src/x32-zip/xm-wasmsimd.c",
2729    "src/x32-zip/x2-wasmsimd.c",
2730    "src/x32-zip/x3-wasmsimd.c",
2731    "src/x32-zip/x4-wasmsimd.c",
2732]
2733
2734ALL_WASMRELAXEDSIMD_MICROKERNEL_SRCS = [
2735    "src/f32-dwconv/gen/up4x3-minmax-wasmrelaxedsimd-acc2.c",
2736    "src/f32-dwconv/gen/up4x3-minmax-wasmrelaxedsimd-fma-acc2.c",
2737    "src/f32-dwconv/gen/up4x3-minmax-wasmrelaxedsimd-fma.c",
2738    "src/f32-dwconv/gen/up4x3-minmax-wasmrelaxedsimd.c",
2739    "src/f32-dwconv/gen/up4x3-wasmrelaxedsimd-fma.c",
2740    "src/f32-dwconv/gen/up4x4-minmax-wasmrelaxedsimd-acc2.c",
2741    "src/f32-dwconv/gen/up4x4-minmax-wasmrelaxedsimd-fma-acc2.c",
2742    "src/f32-dwconv/gen/up4x4-minmax-wasmrelaxedsimd-fma.c",
2743    "src/f32-dwconv/gen/up4x4-minmax-wasmrelaxedsimd.c",
2744    "src/f32-dwconv/gen/up4x4-wasmrelaxedsimd-fma.c",
2745    "src/f32-dwconv/gen/up4x9-minmax-wasmrelaxedsimd-acc2.c",
2746    "src/f32-dwconv/gen/up4x9-minmax-wasmrelaxedsimd-fma-acc2.c",
2747    "src/f32-dwconv/gen/up4x9-minmax-wasmrelaxedsimd-fma.c",
2748    "src/f32-dwconv/gen/up4x9-minmax-wasmrelaxedsimd.c",
2749    "src/f32-dwconv/gen/up4x9-wasmrelaxedsimd-fma.c",
2750    "src/f32-dwconv/gen/up4x25-minmax-wasmrelaxedsimd-acc2.c",
2751    "src/f32-dwconv/gen/up4x25-minmax-wasmrelaxedsimd-fma-acc2.c",
2752    "src/f32-dwconv/gen/up4x25-minmax-wasmrelaxedsimd-fma.c",
2753    "src/f32-dwconv/gen/up4x25-minmax-wasmrelaxedsimd.c",
2754    "src/f32-dwconv/gen/up4x25-wasmrelaxedsimd-fma.c",
2755    "src/f32-dwconv/gen/up8x3-minmax-wasmrelaxedsimd-acc2.c",
2756    "src/f32-dwconv/gen/up8x3-minmax-wasmrelaxedsimd-fma-acc2.c",
2757    "src/f32-dwconv/gen/up8x3-minmax-wasmrelaxedsimd-fma.c",
2758    "src/f32-dwconv/gen/up8x3-minmax-wasmrelaxedsimd.c",
2759    "src/f32-dwconv/gen/up8x3-wasmrelaxedsimd-fma.c",
2760    "src/f32-dwconv/gen/up8x4-minmax-wasmrelaxedsimd-acc2.c",
2761    "src/f32-dwconv/gen/up8x4-minmax-wasmrelaxedsimd-fma-acc2.c",
2762    "src/f32-dwconv/gen/up8x4-minmax-wasmrelaxedsimd-fma.c",
2763    "src/f32-dwconv/gen/up8x4-minmax-wasmrelaxedsimd.c",
2764    "src/f32-dwconv/gen/up8x4-wasmrelaxedsimd-fma.c",
2765    "src/f32-dwconv/gen/up8x9-minmax-wasmrelaxedsimd-acc2.c",
2766    "src/f32-dwconv/gen/up8x9-minmax-wasmrelaxedsimd-fma-acc2.c",
2767    "src/f32-dwconv/gen/up8x9-minmax-wasmrelaxedsimd-fma.c",
2768    "src/f32-dwconv/gen/up8x9-minmax-wasmrelaxedsimd.c",
2769    "src/f32-dwconv/gen/up8x9-wasmrelaxedsimd-fma.c",
2770    "src/f32-dwconv/gen/up8x25-minmax-wasmrelaxedsimd-acc2.c",
2771    "src/f32-dwconv/gen/up8x25-minmax-wasmrelaxedsimd-fma-acc2.c",
2772    "src/f32-dwconv/gen/up8x25-minmax-wasmrelaxedsimd-fma.c",
2773    "src/f32-dwconv/gen/up8x25-minmax-wasmrelaxedsimd.c",
2774    "src/f32-dwconv/gen/up8x25-wasmrelaxedsimd-fma.c",
2775    "src/f32-gemm/gen-inc/1x8inc-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2776    "src/f32-gemm/gen-inc/1x8inc-minmax-wasmrelaxedsimd-fma-splat.c",
2777    "src/f32-gemm/gen-inc/1x8inc-minmax-wasmrelaxedsimd-loadsplat.c",
2778    "src/f32-gemm/gen-inc/1x8inc-minmax-wasmrelaxedsimd-splat.c",
2779    "src/f32-gemm/gen-inc/1x8s4inc-minmax-wasmrelaxedsimd-fma.c",
2780    "src/f32-gemm/gen-inc/1x8s4inc-minmax-wasmrelaxedsimd.c",
2781    "src/f32-gemm/gen-inc/3x8inc-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2782    "src/f32-gemm/gen-inc/3x8inc-minmax-wasmrelaxedsimd-fma-splat.c",
2783    "src/f32-gemm/gen-inc/3x8inc-minmax-wasmrelaxedsimd-loadsplat.c",
2784    "src/f32-gemm/gen-inc/3x8inc-minmax-wasmrelaxedsimd-splat.c",
2785    "src/f32-gemm/gen-inc/3x8s4inc-minmax-wasmrelaxedsimd-fma.c",
2786    "src/f32-gemm/gen-inc/3x8s4inc-minmax-wasmrelaxedsimd.c",
2787    "src/f32-gemm/gen-inc/4x8inc-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2788    "src/f32-gemm/gen-inc/4x8inc-minmax-wasmrelaxedsimd-fma-splat.c",
2789    "src/f32-gemm/gen-inc/4x8inc-minmax-wasmrelaxedsimd-loadsplat.c",
2790    "src/f32-gemm/gen-inc/4x8inc-minmax-wasmrelaxedsimd-splat.c",
2791    "src/f32-gemm/gen-inc/4x8s4inc-minmax-wasmrelaxedsimd-fma.c",
2792    "src/f32-gemm/gen-inc/4x8s4inc-minmax-wasmrelaxedsimd.c",
2793    "src/f32-gemm/gen-inc/5x8inc-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2794    "src/f32-gemm/gen-inc/5x8inc-minmax-wasmrelaxedsimd-fma-splat.c",
2795    "src/f32-gemm/gen-inc/5x8inc-minmax-wasmrelaxedsimd-loadsplat.c",
2796    "src/f32-gemm/gen-inc/5x8inc-minmax-wasmrelaxedsimd-splat.c",
2797    "src/f32-gemm/gen-inc/5x8s4inc-minmax-wasmrelaxedsimd-fma.c",
2798    "src/f32-gemm/gen-inc/5x8s4inc-minmax-wasmrelaxedsimd.c",
2799    "src/f32-gemm/gen-inc/6x8inc-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2800    "src/f32-gemm/gen-inc/6x8inc-minmax-wasmrelaxedsimd-fma-splat.c",
2801    "src/f32-gemm/gen-inc/6x8inc-minmax-wasmrelaxedsimd-loadsplat.c",
2802    "src/f32-gemm/gen-inc/6x8inc-minmax-wasmrelaxedsimd-splat.c",
2803    "src/f32-gemm/gen-inc/6x8s4inc-minmax-wasmrelaxedsimd-fma.c",
2804    "src/f32-gemm/gen-inc/6x8s4inc-minmax-wasmrelaxedsimd.c",
2805    "src/f32-gemm/gen/1x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2806    "src/f32-gemm/gen/1x8-minmax-wasmrelaxedsimd-fma-splat.c",
2807    "src/f32-gemm/gen/1x8-minmax-wasmrelaxedsimd-loadsplat.c",
2808    "src/f32-gemm/gen/1x8-minmax-wasmrelaxedsimd-splat.c",
2809    "src/f32-gemm/gen/1x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
2810    "src/f32-gemm/gen/1x8-relu-wasmrelaxedsimd-fma-splat.c",
2811    "src/f32-gemm/gen/1x8-wasmrelaxedsimd-fma-loadsplat.c",
2812    "src/f32-gemm/gen/1x8-wasmrelaxedsimd-fma-splat.c",
2813    "src/f32-gemm/gen/1x8s4-minmax-wasmrelaxedsimd-fma.c",
2814    "src/f32-gemm/gen/1x8s4-minmax-wasmrelaxedsimd.c",
2815    "src/f32-gemm/gen/1x8s4-relu-wasmrelaxedsimd-fma.c",
2816    "src/f32-gemm/gen/1x8s4-wasmrelaxedsimd-fma.c",
2817    "src/f32-gemm/gen/3x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2818    "src/f32-gemm/gen/3x8-minmax-wasmrelaxedsimd-fma-splat.c",
2819    "src/f32-gemm/gen/3x8-minmax-wasmrelaxedsimd-loadsplat.c",
2820    "src/f32-gemm/gen/3x8-minmax-wasmrelaxedsimd-splat.c",
2821    "src/f32-gemm/gen/3x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
2822    "src/f32-gemm/gen/3x8-relu-wasmrelaxedsimd-fma-splat.c",
2823    "src/f32-gemm/gen/3x8-wasmrelaxedsimd-fma-loadsplat.c",
2824    "src/f32-gemm/gen/3x8-wasmrelaxedsimd-fma-splat.c",
2825    "src/f32-gemm/gen/3x8s4-minmax-wasmrelaxedsimd-fma.c",
2826    "src/f32-gemm/gen/3x8s4-minmax-wasmrelaxedsimd.c",
2827    "src/f32-gemm/gen/3x8s4-relu-wasmrelaxedsimd-fma.c",
2828    "src/f32-gemm/gen/3x8s4-wasmrelaxedsimd-fma.c",
2829    "src/f32-gemm/gen/4x2c4-minmax-wasmrelaxedsimd-fma.c",
2830    "src/f32-gemm/gen/4x2c4-minmax-wasmrelaxedsimd.c",
2831    "src/f32-gemm/gen/4x2c4-relu-wasmrelaxedsimd-fma.c",
2832    "src/f32-gemm/gen/4x2c4-wasmrelaxedsimd-fma.c",
2833    "src/f32-gemm/gen/4x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2834    "src/f32-gemm/gen/4x8-minmax-wasmrelaxedsimd-fma-splat.c",
2835    "src/f32-gemm/gen/4x8-minmax-wasmrelaxedsimd-loadsplat.c",
2836    "src/f32-gemm/gen/4x8-minmax-wasmrelaxedsimd-splat.c",
2837    "src/f32-gemm/gen/4x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
2838    "src/f32-gemm/gen/4x8-relu-wasmrelaxedsimd-fma-splat.c",
2839    "src/f32-gemm/gen/4x8-wasmrelaxedsimd-fma-loadsplat.c",
2840    "src/f32-gemm/gen/4x8-wasmrelaxedsimd-fma-splat.c",
2841    "src/f32-gemm/gen/4x8s4-minmax-wasmrelaxedsimd-fma.c",
2842    "src/f32-gemm/gen/4x8s4-minmax-wasmrelaxedsimd.c",
2843    "src/f32-gemm/gen/4x8s4-relu-wasmrelaxedsimd-fma.c",
2844    "src/f32-gemm/gen/4x8s4-wasmrelaxedsimd-fma.c",
2845    "src/f32-gemm/gen/5x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2846    "src/f32-gemm/gen/5x8-minmax-wasmrelaxedsimd-fma-splat.c",
2847    "src/f32-gemm/gen/5x8-minmax-wasmrelaxedsimd-loadsplat.c",
2848    "src/f32-gemm/gen/5x8-minmax-wasmrelaxedsimd-splat.c",
2849    "src/f32-gemm/gen/5x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
2850    "src/f32-gemm/gen/5x8-relu-wasmrelaxedsimd-fma-splat.c",
2851    "src/f32-gemm/gen/5x8-wasmrelaxedsimd-fma-loadsplat.c",
2852    "src/f32-gemm/gen/5x8-wasmrelaxedsimd-fma-splat.c",
2853    "src/f32-gemm/gen/5x8s4-minmax-wasmrelaxedsimd-fma.c",
2854    "src/f32-gemm/gen/5x8s4-minmax-wasmrelaxedsimd.c",
2855    "src/f32-gemm/gen/5x8s4-relu-wasmrelaxedsimd-fma.c",
2856    "src/f32-gemm/gen/5x8s4-wasmrelaxedsimd-fma.c",
2857    "src/f32-gemm/gen/6x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2858    "src/f32-gemm/gen/6x8-minmax-wasmrelaxedsimd-fma-splat.c",
2859    "src/f32-gemm/gen/6x8-minmax-wasmrelaxedsimd-loadsplat.c",
2860    "src/f32-gemm/gen/6x8-minmax-wasmrelaxedsimd-splat.c",
2861    "src/f32-gemm/gen/6x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
2862    "src/f32-gemm/gen/6x8-relu-wasmrelaxedsimd-fma-splat.c",
2863    "src/f32-gemm/gen/6x8-wasmrelaxedsimd-fma-loadsplat.c",
2864    "src/f32-gemm/gen/6x8-wasmrelaxedsimd-fma-splat.c",
2865    "src/f32-gemm/gen/6x8s4-minmax-wasmrelaxedsimd-fma.c",
2866    "src/f32-gemm/gen/6x8s4-minmax-wasmrelaxedsimd.c",
2867    "src/f32-gemm/gen/6x8s4-relu-wasmrelaxedsimd-fma.c",
2868    "src/f32-gemm/gen/6x8s4-wasmrelaxedsimd-fma.c",
2869    "src/f32-igemm/gen/1x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2870    "src/f32-igemm/gen/1x8-minmax-wasmrelaxedsimd-fma-splat.c",
2871    "src/f32-igemm/gen/1x8-minmax-wasmrelaxedsimd-loadsplat.c",
2872    "src/f32-igemm/gen/1x8-minmax-wasmrelaxedsimd-splat.c",
2873    "src/f32-igemm/gen/1x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
2874    "src/f32-igemm/gen/1x8-relu-wasmrelaxedsimd-fma-splat.c",
2875    "src/f32-igemm/gen/1x8-wasmrelaxedsimd-fma-loadsplat.c",
2876    "src/f32-igemm/gen/1x8-wasmrelaxedsimd-fma-splat.c",
2877    "src/f32-igemm/gen/1x8s4-minmax-wasmrelaxedsimd-fma.c",
2878    "src/f32-igemm/gen/1x8s4-minmax-wasmrelaxedsimd.c",
2879    "src/f32-igemm/gen/1x8s4-relu-wasmrelaxedsimd-fma.c",
2880    "src/f32-igemm/gen/1x8s4-wasmrelaxedsimd-fma.c",
2881    "src/f32-igemm/gen/3x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2882    "src/f32-igemm/gen/3x8-minmax-wasmrelaxedsimd-fma-splat.c",
2883    "src/f32-igemm/gen/3x8-minmax-wasmrelaxedsimd-loadsplat.c",
2884    "src/f32-igemm/gen/3x8-minmax-wasmrelaxedsimd-splat.c",
2885    "src/f32-igemm/gen/3x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
2886    "src/f32-igemm/gen/3x8-relu-wasmrelaxedsimd-fma-splat.c",
2887    "src/f32-igemm/gen/3x8-wasmrelaxedsimd-fma-loadsplat.c",
2888    "src/f32-igemm/gen/3x8-wasmrelaxedsimd-fma-splat.c",
2889    "src/f32-igemm/gen/3x8s4-minmax-wasmrelaxedsimd-fma.c",
2890    "src/f32-igemm/gen/3x8s4-minmax-wasmrelaxedsimd.c",
2891    "src/f32-igemm/gen/3x8s4-relu-wasmrelaxedsimd-fma.c",
2892    "src/f32-igemm/gen/3x8s4-wasmrelaxedsimd-fma.c",
2893    "src/f32-igemm/gen/4x2c4-minmax-wasmrelaxedsimd-fma.c",
2894    "src/f32-igemm/gen/4x2c4-minmax-wasmrelaxedsimd.c",
2895    "src/f32-igemm/gen/4x2c4-relu-wasmrelaxedsimd-fma.c",
2896    "src/f32-igemm/gen/4x2c4-wasmrelaxedsimd-fma.c",
2897    "src/f32-igemm/gen/4x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2898    "src/f32-igemm/gen/4x8-minmax-wasmrelaxedsimd-fma-splat.c",
2899    "src/f32-igemm/gen/4x8-minmax-wasmrelaxedsimd-loadsplat.c",
2900    "src/f32-igemm/gen/4x8-minmax-wasmrelaxedsimd-splat.c",
2901    "src/f32-igemm/gen/4x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
2902    "src/f32-igemm/gen/4x8-relu-wasmrelaxedsimd-fma-splat.c",
2903    "src/f32-igemm/gen/4x8-wasmrelaxedsimd-fma-loadsplat.c",
2904    "src/f32-igemm/gen/4x8-wasmrelaxedsimd-fma-splat.c",
2905    "src/f32-igemm/gen/4x8s4-minmax-wasmrelaxedsimd-fma.c",
2906    "src/f32-igemm/gen/4x8s4-minmax-wasmrelaxedsimd.c",
2907    "src/f32-igemm/gen/4x8s4-relu-wasmrelaxedsimd-fma.c",
2908    "src/f32-igemm/gen/4x8s4-wasmrelaxedsimd-fma.c",
2909    "src/f32-igemm/gen/5x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2910    "src/f32-igemm/gen/5x8-minmax-wasmrelaxedsimd-fma-splat.c",
2911    "src/f32-igemm/gen/5x8-minmax-wasmrelaxedsimd-loadsplat.c",
2912    "src/f32-igemm/gen/5x8-minmax-wasmrelaxedsimd-splat.c",
2913    "src/f32-igemm/gen/5x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
2914    "src/f32-igemm/gen/5x8-relu-wasmrelaxedsimd-fma-splat.c",
2915    "src/f32-igemm/gen/5x8-wasmrelaxedsimd-fma-loadsplat.c",
2916    "src/f32-igemm/gen/5x8-wasmrelaxedsimd-fma-splat.c",
2917    "src/f32-igemm/gen/5x8s4-minmax-wasmrelaxedsimd-fma.c",
2918    "src/f32-igemm/gen/5x8s4-minmax-wasmrelaxedsimd.c",
2919    "src/f32-igemm/gen/5x8s4-relu-wasmrelaxedsimd-fma.c",
2920    "src/f32-igemm/gen/5x8s4-wasmrelaxedsimd-fma.c",
2921    "src/f32-igemm/gen/6x8-minmax-wasmrelaxedsimd-fma-loadsplat.c",
2922    "src/f32-igemm/gen/6x8-minmax-wasmrelaxedsimd-fma-splat.c",
2923    "src/f32-igemm/gen/6x8-minmax-wasmrelaxedsimd-loadsplat.c",
2924    "src/f32-igemm/gen/6x8-minmax-wasmrelaxedsimd-splat.c",
2925    "src/f32-igemm/gen/6x8-relu-wasmrelaxedsimd-fma-loadsplat.c",
2926    "src/f32-igemm/gen/6x8-relu-wasmrelaxedsimd-fma-splat.c",
2927    "src/f32-igemm/gen/6x8-wasmrelaxedsimd-fma-loadsplat.c",
2928    "src/f32-igemm/gen/6x8-wasmrelaxedsimd-fma-splat.c",
2929    "src/f32-igemm/gen/6x8s4-minmax-wasmrelaxedsimd-fma.c",
2930    "src/f32-igemm/gen/6x8s4-minmax-wasmrelaxedsimd.c",
2931    "src/f32-igemm/gen/6x8s4-relu-wasmrelaxedsimd-fma.c",
2932    "src/f32-igemm/gen/6x8s4-wasmrelaxedsimd-fma.c",
2933    "src/f32-vmulcaddc/gen/c4-minmax-wasmrelaxedsimd-fma-2x.c",
2934    "src/f32-vmulcaddc/gen/c4-minmax-wasmrelaxedsimd-2x.c",
2935    "src/f32-vmulcaddc/gen/c8-minmax-wasmrelaxedsimd-fma-2x.c",
2936    "src/f32-vmulcaddc/gen/c8-minmax-wasmrelaxedsimd-2x.c",
2937    "src/qs8-vcvt/gen/vcvt-wasmrelaxedsimd-x8.c",
2938    "src/qs8-vcvt/gen/vcvt-wasmrelaxedsimd-x16.c",
2939    "src/qs8-vcvt/gen/vcvt-wasmrelaxedsimd-x32.c",
2940    "src/qs8-vlrelu/gen/vlrelu-wasmrelaxedsimd-arm-x16.c",
2941    "src/qs8-vlrelu/gen/vlrelu-wasmrelaxedsimd-arm-x32.c",
2942    "src/qs8-vlrelu/gen/vlrelu-wasmrelaxedsimd-x86-x8.c",
2943    "src/qs8-vlrelu/gen/vlrelu-wasmrelaxedsimd-x86-x16.c",
2944    "src/qs8-vlrelu/gen/vlrelu-wasmrelaxedsimd-x86-x32.c",
2945    "src/qu8-vcvt/gen/vcvt-wasmrelaxedsimd-x8.c",
2946    "src/qu8-vcvt/gen/vcvt-wasmrelaxedsimd-x16.c",
2947    "src/qu8-vcvt/gen/vcvt-wasmrelaxedsimd-x32.c",
2948    "src/qu8-vlrelu/gen/vlrelu-wasmrelaxedsimd-arm-x16.c",
2949    "src/qu8-vlrelu/gen/vlrelu-wasmrelaxedsimd-arm-x32.c",
2950    "src/qu8-vlrelu/gen/vlrelu-wasmrelaxedsimd-x86-x8.c",
2951    "src/qu8-vlrelu/gen/vlrelu-wasmrelaxedsimd-x86-x16.c",
2952    "src/qu8-vlrelu/gen/vlrelu-wasmrelaxedsimd-x86-x32.c",
2953]
2954
2955PROD_ARMSIMD32_MICROKERNEL_SRCS = [
2956    "src/qc8-gemm/gen/1x2c4-minmax-fp32-armsimd32.c",
2957    "src/qc8-gemm/gen/2x2c4-minmax-fp32-armsimd32.c",
2958    "src/qc8-igemm/gen/1x2c4-minmax-fp32-armsimd32.c",
2959    "src/qc8-igemm/gen/2x2c4-minmax-fp32-armsimd32.c",
2960    "src/qs8-gemm/gen/1x2c4-minmax-fp32-armsimd32.c",
2961    "src/qs8-gemm/gen/2x2c4-minmax-fp32-armsimd32.c",
2962    "src/qs8-igemm/gen/1x2c4-minmax-fp32-armsimd32.c",
2963    "src/qs8-igemm/gen/2x2c4-minmax-fp32-armsimd32.c",
2964    "src/qs8-vcvt/gen/vcvt-armsimd32-x8.c",
2965    "src/qs8-vlrelu/gen/vlrelu-armsimd32-x4.c",
2966    "src/qu8-gemm/gen/1x2c4-minmax-fp32-armsimd32.c",
2967    "src/qu8-gemm/gen/2x2c4-minmax-fp32-armsimd32.c",
2968    "src/qu8-igemm/gen/1x2c4-minmax-fp32-armsimd32.c",
2969    "src/qu8-igemm/gen/2x2c4-minmax-fp32-armsimd32.c",
2970    "src/qu8-vcvt/gen/vcvt-armsimd32-x8.c",
2971    "src/qu8-vlrelu/gen/vlrelu-armsimd32-x4.c",
2972]
2973
2974ALL_ARMSIMD32_MICROKERNEL_SRCS = [
2975    "src/qc8-gemm/gen/1x1c4-minmax-fp32-armsimd32.c",
2976    "src/qc8-gemm/gen/1x2c4-minmax-fp32-armsimd32.c",
2977    "src/qc8-gemm/gen/2x1c4-minmax-fp32-armsimd32.c",
2978    "src/qc8-gemm/gen/2x2c4-minmax-fp32-armsimd32.c",
2979    "src/qc8-igemm/gen/1x1c4-minmax-fp32-armsimd32.c",
2980    "src/qc8-igemm/gen/1x2c4-minmax-fp32-armsimd32.c",
2981    "src/qc8-igemm/gen/2x1c4-minmax-fp32-armsimd32.c",
2982    "src/qc8-igemm/gen/2x2c4-minmax-fp32-armsimd32.c",
2983    "src/qs8-gemm/gen/1x1c4-minmax-fp32-armsimd32.c",
2984    "src/qs8-gemm/gen/1x2c4-minmax-fp32-armsimd32.c",
2985    "src/qs8-gemm/gen/2x1c4-minmax-fp32-armsimd32.c",
2986    "src/qs8-gemm/gen/2x2c4-minmax-fp32-armsimd32.c",
2987    "src/qs8-igemm/gen/1x1c4-minmax-fp32-armsimd32.c",
2988    "src/qs8-igemm/gen/1x2c4-minmax-fp32-armsimd32.c",
2989    "src/qs8-igemm/gen/2x1c4-minmax-fp32-armsimd32.c",
2990    "src/qs8-igemm/gen/2x2c4-minmax-fp32-armsimd32.c",
2991    "src/qs8-vcvt/gen/vcvt-armsimd32-x4.c",
2992    "src/qs8-vcvt/gen/vcvt-armsimd32-x8.c",
2993    "src/qs8-vlrelu/gen/vlrelu-armsimd32-x4.c",
2994    "src/qs8-vlrelu/gen/vlrelu-armsimd32-x8.c",
2995    "src/qu8-gemm/gen/1x1c4-minmax-fp32-armsimd32.c",
2996    "src/qu8-gemm/gen/1x2c4-minmax-fp32-armsimd32.c",
2997    "src/qu8-gemm/gen/2x1c4-minmax-fp32-armsimd32.c",
2998    "src/qu8-gemm/gen/2x2c4-minmax-fp32-armsimd32.c",
2999    "src/qu8-igemm/gen/1x1c4-minmax-fp32-armsimd32.c",
3000    "src/qu8-igemm/gen/1x2c4-minmax-fp32-armsimd32.c",
3001    "src/qu8-igemm/gen/2x1c4-minmax-fp32-armsimd32.c",
3002    "src/qu8-igemm/gen/2x2c4-minmax-fp32-armsimd32.c",
3003    "src/qu8-vcvt/gen/vcvt-armsimd32-x4.c",
3004    "src/qu8-vcvt/gen/vcvt-armsimd32-x8.c",
3005    "src/qu8-vlrelu/gen/vlrelu-armsimd32-x4.c",
3006    "src/qu8-vlrelu/gen/vlrelu-armsimd32-x8.c",
3007]
3008
3009PROD_NEON_MICROKERNEL_SRCS = [
3010    "src/f16-f32-vcvt/gen/vcvt-neon-int16-x16.c",
3011    "src/f32-argmaxpool/4x-neon-c4.c",
3012    "src/f32-argmaxpool/9p8x-neon-c4.c",
3013    "src/f32-argmaxpool/9x-neon-c4.c",
3014    "src/f32-avgpool/9p8x-minmax-neon-c4.c",
3015    "src/f32-avgpool/9x-minmax-neon-c4.c",
3016    "src/f32-conv-hwc2chw/3x3s2p1c3x4-neon-2x2.c",
3017    "src/f32-dwconv/gen/up8x3-minmax-neon.c",
3018    "src/f32-dwconv/gen/up8x4-minmax-neon.c",
3019    "src/f32-dwconv/gen/up8x9-minmax-neon.c",
3020    "src/f32-dwconv/gen/up8x25-minmax-neon-acc2.c",
3021    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neon-2x4.c",
3022    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neon-1x4.c",
3023    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-1x4.c",
3024    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-1x4.c",
3025    "src/f32-f16-vcvt/gen/vcvt-neon-x8.c",
3026    "src/f32-gavgpool-cw/neon-x4.c",
3027    "src/f32-gavgpool/7p7x-minmax-neon-c4.c",
3028    "src/f32-gavgpool/7x-minmax-neon-c4.c",
3029    "src/f32-gemm/gen/1x8-minmax-neon-lane-ld64.c",
3030    "src/f32-gemm/gen/4x2-minmax-neon-lane-ld64.c",
3031    "src/f32-gemm/gen/4x8-minmax-neon-lane-ld64.c",
3032    "src/f32-gemm/gen/4x8-minmax-neon-lane-ld128.c",
3033    "src/f32-ibilinear-chw/gen/neon-p8.c",
3034    "src/f32-ibilinear/gen/neon-c8.c",
3035    "src/f32-igemm/gen/1x8-minmax-neon-lane-ld64.c",
3036    "src/f32-igemm/gen/4x2-minmax-neon-lane-ld64.c",
3037    "src/f32-igemm/gen/4x8-minmax-neon-lane-ld64.c",
3038    "src/f32-igemm/gen/4x8-minmax-neon-lane-ld128.c",
3039    "src/f32-maxpool/9p8x-minmax-neon-c4.c",
3040    "src/f32-pavgpool/9p8x-minmax-neon-c4.c",
3041    "src/f32-pavgpool/9x-minmax-neon-c4.c",
3042    "src/f32-prelu/gen/neon-2x8.c",
3043    "src/f32-qs8-vcvt/gen/vcvt-neon-x32.c",
3044    "src/f32-qu8-vcvt/gen/vcvt-neon-x32.c",
3045    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x8.c",
3046    "src/f32-rmax/neon.c",
3047    "src/f32-spmm/gen/32x1-minmax-neon.c",
3048    "src/f32-vbinary/gen/vadd-minmax-neon-x8.c",
3049    "src/f32-vbinary/gen/vaddc-minmax-neon-x8.c",
3050    "src/f32-vbinary/gen/vmax-neon-x8.c",
3051    "src/f32-vbinary/gen/vmaxc-neon-x8.c",
3052    "src/f32-vbinary/gen/vmin-neon-x8.c",
3053    "src/f32-vbinary/gen/vminc-neon-x8.c",
3054    "src/f32-vbinary/gen/vmul-minmax-neon-x8.c",
3055    "src/f32-vbinary/gen/vmulc-minmax-neon-x8.c",
3056    "src/f32-vbinary/gen/vrsubc-minmax-neon-x8.c",
3057    "src/f32-vbinary/gen/vsqrdiff-neon-x8.c",
3058    "src/f32-vbinary/gen/vsqrdiffc-neon-x8.c",
3059    "src/f32-vbinary/gen/vsub-minmax-neon-x8.c",
3060    "src/f32-vbinary/gen/vsubc-minmax-neon-x8.c",
3061    "src/f32-vclamp/gen/vclamp-neon-x8.c",
3062    "src/f32-velu/gen/velu-neon-rr2-lut16-p3-x8.c",
3063    "src/f32-vhswish/gen/vhswish-neon-x16.c",
3064    "src/f32-vlrelu/gen/vlrelu-neon-x8.c",
3065    "src/f32-vmulcaddc/gen/c4-minmax-neon-2x.c",
3066    "src/f32-vrnd/gen/vrndd-neon-x8.c",
3067    "src/f32-vrnd/gen/vrndne-neon-x8.c",
3068    "src/f32-vrnd/gen/vrndu-neon-x8.c",
3069    "src/f32-vrnd/gen/vrndz-neon-x8.c",
3070    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x8.c",
3071    "src/f32-vunary/gen/vabs-neon-x8.c",
3072    "src/f32-vunary/gen/vneg-neon-x8.c",
3073    "src/f32-vunary/gen/vsqr-neon-x8.c",
3074    "src/qc8-dwconv/gen/up8x25-minmax-fp32-neon-mla8-ld64.c",
3075    "src/qc8-dwconv/gen/up16x3-minmax-fp32-neon-mla8-ld128.c",
3076    "src/qc8-dwconv/gen/up16x9-minmax-fp32-neon-mla8-ld64.c",
3077    "src/qc8-dwconv/gen/up16x25-minmax-fp32-neon-mla8-ld64.c",
3078    "src/qc8-gemm/gen/1x8-minmax-fp32-neon-mlal-lane.c",
3079    "src/qc8-gemm/gen/1x8c2s4-minmax-fp32-neon-mlal.c",
3080    "src/qc8-gemm/gen/2x8c2s4-minmax-fp32-neon-mlal.c",
3081    "src/qc8-igemm/gen/1x8-minmax-fp32-neon-mlal-lane.c",
3082    "src/qc8-igemm/gen/1x8c2s4-minmax-fp32-neon-mlal.c",
3083    "src/qc8-igemm/gen/2x8c2s4-minmax-fp32-neon-mlal.c",
3084    "src/qs8-dwconv/gen/up8x25-minmax-rndnu-neon-mla8-ld64.c",
3085    "src/qs8-dwconv/gen/up16x9-minmax-rndnu-neon-mla8-ld64.c",
3086    "src/qs8-dwconv/gen/up16x25-minmax-rndnu-neon-mla8-ld64.c",
3087    "src/qs8-f32-vcvt/gen/vcvt-neon-x32.c",
3088    "src/qs8-gavgpool/gen/7p7x-minmax-rndnu-neon-c8.c",
3089    "src/qs8-gavgpool/gen/7x-minmax-rndnu-neon-c8.c",
3090    "src/qs8-gemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c",
3091    "src/qs8-gemm/gen/1x8c2s4-minmax-rndnu-neon-mlal.c",
3092    "src/qs8-gemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c",
3093    "src/qs8-gemm/gen/2x8c2s4-minmax-rndnu-neon-mlal.c",
3094    "src/qs8-igemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c",
3095    "src/qs8-igemm/gen/1x8c2s4-minmax-rndnu-neon-mlal.c",
3096    "src/qs8-igemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c",
3097    "src/qs8-igemm/gen/2x8c2s4-minmax-rndnu-neon-mlal.c",
3098    "src/qs8-vadd/gen/minmax-neon-ld64-x16.c",
3099    "src/qs8-vadd/gen/minmax-neon-ld64-x32.c",
3100    "src/qs8-vaddc/gen/minmax-neon-ld64-x16.c",
3101    "src/qs8-vaddc/gen/minmax-neon-ld64-x32.c",
3102    "src/qs8-vcvt/gen/vcvt-neon-x32.c",
3103    "src/qs8-vlrelu/gen/vlrelu-neon-x32.c",
3104    "src/qs8-vmul/gen/minmax-rndnu-neon-ld64-x16.c",
3105    "src/qs8-vmulc/gen/minmax-rndnu-neon-ld64-x16.c",
3106    "src/qu8-avgpool/9p8x-minmax-neon-c8.c",
3107    "src/qu8-avgpool/9x-minmax-neon-c8.c",
3108    "src/qu8-dwconv/gen/up8x25-minmax-rndnu-neon-mul8.c",
3109    "src/qu8-dwconv/gen/up16x9-minmax-rndnu-neon-mul8.c",
3110    "src/qu8-f32-vcvt/gen/vcvt-neon-x32.c",
3111    "src/qu8-gavgpool/gen/7p7x-minmax-rndnu-neon-c8.c",
3112    "src/qu8-gavgpool/gen/7x-minmax-rndnu-neon-c8.c",
3113    "src/qu8-gemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c",
3114    "src/qu8-gemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c",
3115    "src/qu8-gemm/gen/3x8-minmax-rndnu-neon-mlal-lane.c",
3116    "src/qu8-gemm/gen/4x16-minmax-rndnu-neon-mlal-lane.c",
3117    "src/qu8-igemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c",
3118    "src/qu8-igemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c",
3119    "src/qu8-igemm/gen/3x8-minmax-rndnu-neon-mlal-lane.c",
3120    "src/qu8-igemm/gen/4x16-minmax-rndnu-neon-mlal-lane.c",
3121    "src/qu8-vadd/gen/minmax-neon-ld64-x16.c",
3122    "src/qu8-vadd/gen/minmax-neon-ld64-x32.c",
3123    "src/qu8-vaddc/gen/minmax-neon-ld64-x16.c",
3124    "src/qu8-vaddc/gen/minmax-neon-ld64-x32.c",
3125    "src/qu8-vcvt/gen/vcvt-neon-x32.c",
3126    "src/qu8-vlrelu/gen/vlrelu-neon-x32.c",
3127    "src/qu8-vmul/gen/minmax-rndnu-neon-ld64-x16.c",
3128    "src/qu8-vmulc/gen/minmax-rndnu-neon-ld64-x16.c",
3129    "src/s8-ibilinear/gen/neon-c8.c",
3130    "src/s8-ibilinear/gen/neon-c16.c",
3131    "src/s8-maxpool/9p8x-minmax-neon-c16.c",
3132    "src/s8-vclamp/neon-x64.c",
3133    "src/u8-ibilinear/gen/neon-c8.c",
3134    "src/u8-ibilinear/gen/neon-c16.c",
3135    "src/u8-maxpool/9p8x-minmax-neon-c16.c",
3136    "src/u8-rmax/neon.c",
3137    "src/u8-vclamp/neon-x64.c",
3138    "src/xx-fill/neon-x64.c",
3139    "src/xx-pad/neon.c",
3140    "src/x8-transposec/gen/16x16-reuse-dec-zip-neon.c",
3141    "src/x8-zip/xm-neon.c",
3142    "src/x8-zip/x2-neon.c",
3143    "src/x8-zip/x3-neon.c",
3144    "src/x8-zip/x4-neon.c",
3145    "src/x16-transposec/gen/8x8-reuse-dec-zip-neon.c",
3146    "src/x32-packx/x4-neon-st4.c",
3147    "src/x32-transposec/gen/4x4-reuse-dec-zip-neon.c",
3148    "src/x32-unpool/neon.c",
3149    "src/x32-zip/xm-neon.c",
3150    "src/x32-zip/x2-neon.c",
3151    "src/x32-zip/x3-neon.c",
3152    "src/x32-zip/x4-neon.c",
3153]
3154
3155ALL_NEON_MICROKERNEL_SRCS = [
3156    "src/cs16-bfly4/samples1-neon.c",
3157    "src/cs16-vsquareabs/gen/neon-mlal-ld128-x4.c",
3158    "src/cs16-vsquareabs/gen/neon-mlal-ld128-x8.c",
3159    "src/cs16-vsquareabs/gen/neon-mlal-ld128-x12.c",
3160    "src/cs16-vsquareabs/gen/neon-mlal-ld128-x16.c",
3161    "src/f16-f32-vcvt/gen/vcvt-neon-int16-x8.c",
3162    "src/f16-f32-vcvt/gen/vcvt-neon-int16-x16.c",
3163    "src/f16-f32-vcvt/gen/vcvt-neon-int16-x24.c",
3164    "src/f16-f32-vcvt/gen/vcvt-neon-int16-x32.c",
3165    "src/f16-f32-vcvt/gen/vcvt-neon-int32-x8.c",
3166    "src/f16-f32-vcvt/gen/vcvt-neon-int32-x16.c",
3167    "src/f16-f32-vcvt/gen/vcvt-neon-int32-x24.c",
3168    "src/f16-f32-vcvt/gen/vcvt-neon-int32-x32.c",
3169    "src/f32-argmaxpool/4x-neon-c4.c",
3170    "src/f32-argmaxpool/9p8x-neon-c4.c",
3171    "src/f32-argmaxpool/9x-neon-c4.c",
3172    "src/f32-avgpool/9p8x-minmax-neon-c4.c",
3173    "src/f32-avgpool/9x-minmax-neon-c4.c",
3174    "src/f32-conv-hwc/gen/3x3s2p0p1c3x4-neon-2x1.c",
3175    "src/f32-conv-hwc/gen/3x3s2p0p1c3x4-neon-2x2.c",
3176    "src/f32-conv-hwc/gen/3x3s2p0p1c3x8-neon-2x1.c",
3177    "src/f32-conv-hwc/gen/3x3s2p0p1c3x8-neon-2x2.c",
3178    "src/f32-conv-hwc/gen/3x3s2p1c3x4-neon-2x1.c",
3179    "src/f32-conv-hwc/gen/3x3s2p1c3x4-neon-2x2.c",
3180    "src/f32-conv-hwc/gen/3x3s2p1c3x8-neon-2x1.c",
3181    "src/f32-conv-hwc/gen/3x3s2p1c3x8-neon-2x2.c",
3182    "src/f32-conv-hwc2chw/3x3s2p1c3x4-neon-2x2.c",
3183    "src/f32-dwconv/gen/up4x3-minmax-neon-acc2.c",
3184    "src/f32-dwconv/gen/up4x3-minmax-neon.c",
3185    "src/f32-dwconv/gen/up4x4-minmax-neon-acc2.c",
3186    "src/f32-dwconv/gen/up4x4-minmax-neon.c",
3187    "src/f32-dwconv/gen/up4x9-minmax-neon-acc2.c",
3188    "src/f32-dwconv/gen/up4x9-minmax-neon.c",
3189    "src/f32-dwconv/gen/up4x25-minmax-neon-acc2.c",
3190    "src/f32-dwconv/gen/up4x25-minmax-neon.c",
3191    "src/f32-dwconv/gen/up8x3-minmax-neon-acc2.c",
3192    "src/f32-dwconv/gen/up8x3-minmax-neon.c",
3193    "src/f32-dwconv/gen/up8x4-minmax-neon-acc2.c",
3194    "src/f32-dwconv/gen/up8x4-minmax-neon.c",
3195    "src/f32-dwconv/gen/up8x9-minmax-neon-acc2.c",
3196    "src/f32-dwconv/gen/up8x9-minmax-neon.c",
3197    "src/f32-dwconv/gen/up8x25-minmax-neon-acc2.c",
3198    "src/f32-dwconv/gen/up8x25-minmax-neon.c",
3199    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neon-1x4-acc2.c",
3200    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neon-1x4-acc3.c",
3201    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neon-1x4-acc4.c",
3202    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neon-1x4.c",
3203    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neon-2x4-acc2.c",
3204    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neon-2x4.c",
3205    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neon-3x4.c",
3206    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neon-4x4.c",
3207    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neon-5x4.c",
3208    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neon-6x4.c",
3209    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neon-1x4-acc2.c",
3210    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neon-1x4-acc3.c",
3211    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neon-1x4-acc4.c",
3212    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neon-1x4.c",
3213    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neon-2x4-acc2.c",
3214    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neon-2x4.c",
3215    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neon-3x4.c",
3216    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neon-4x4.c",
3217    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-1x4-acc2.c",
3218    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-1x4-acc3.c",
3219    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-1x4-acc4.c",
3220    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-1x4-acc5.c",
3221    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-1x4.c",
3222    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-2x4-acc2.c",
3223    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-2x4-acc3.c",
3224    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-2x4.c",
3225    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-3x4-acc2.c",
3226    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-3x4.c",
3227    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-4x4-acc2.c",
3228    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-4x4.c",
3229    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neon-5x4.c",
3230    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-1x4-acc2.c",
3231    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-1x4-acc3.c",
3232    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-1x4-acc4.c",
3233    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-1x4-acc5.c",
3234    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-1x4.c",
3235    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-2x4-acc2.c",
3236    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-2x4-acc3.c",
3237    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-2x4.c",
3238    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-3x4-acc2.c",
3239    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neon-3x4.c",
3240    "src/f32-f16-vcvt/gen/vcvt-neon-x8.c",
3241    "src/f32-f16-vcvt/gen/vcvt-neon-x16.c",
3242    "src/f32-f16-vcvt/gen/vcvt-neon-x24.c",
3243    "src/f32-f16-vcvt/gen/vcvt-neon-x32.c",
3244    "src/f32-gavgpool-cw/neon-x4.c",
3245    "src/f32-gavgpool/7p7x-minmax-neon-c4.c",
3246    "src/f32-gavgpool/7x-minmax-neon-c4.c",
3247    "src/f32-gemm/gen-inc/1x8inc-minmax-neon-dup-ld64.c",
3248    "src/f32-gemm/gen-inc/1x8inc-minmax-neon-lane-ld64.c",
3249    "src/f32-gemm/gen-inc/1x8s4inc-minmax-neon.c",
3250    "src/f32-gemm/gen-inc/4x8inc-minmax-neon-dup-ld64.c",
3251    "src/f32-gemm/gen-inc/4x8inc-minmax-neon-dup-ld128.c",
3252    "src/f32-gemm/gen-inc/4x8inc-minmax-neon-lane-ld64.c",
3253    "src/f32-gemm/gen-inc/4x8inc-minmax-neon-lane-ld128.c",
3254    "src/f32-gemm/gen-inc/4x8s4inc-minmax-neon.c",
3255    "src/f32-gemm/gen-inc/5x8inc-minmax-neon-lane-ld64.c",
3256    "src/f32-gemm/gen-inc/6x8inc-minmax-neon-dup-ld64.c",
3257    "src/f32-gemm/gen-inc/6x8inc-minmax-neon-dup-ld128.c",
3258    "src/f32-gemm/gen-inc/6x8inc-minmax-neon-lane-ld64.c",
3259    "src/f32-gemm/gen-inc/6x8inc-minmax-neon-lane-ld128.c",
3260    "src/f32-gemm/gen-inc/6x8s4inc-minmax-neon.c",
3261    "src/f32-gemm/gen-inc/8x8s4inc-minmax-neon.c",
3262    "src/f32-gemm/gen/1x8-minmax-neon-dup-ld64.c",
3263    "src/f32-gemm/gen/1x8-minmax-neon-lane-ld64.c",
3264    "src/f32-gemm/gen/1x8s4-minmax-neon.c",
3265    "src/f32-gemm/gen/4x2-minmax-neon-lane-ld64.c",
3266    "src/f32-gemm/gen/4x8-minmax-neon-dup-ld64.c",
3267    "src/f32-gemm/gen/4x8-minmax-neon-dup-ld128.c",
3268    "src/f32-gemm/gen/4x8-minmax-neon-lane-ld64.c",
3269    "src/f32-gemm/gen/4x8-minmax-neon-lane-ld128.c",
3270    "src/f32-gemm/gen/4x8s4-minmax-neon.c",
3271    "src/f32-gemm/gen/5x8-minmax-neon-lane-ld64.c",
3272    "src/f32-gemm/gen/6x2-minmax-neon-lane-ld64.c",
3273    "src/f32-gemm/gen/6x8-minmax-neon-dup-ld64.c",
3274    "src/f32-gemm/gen/6x8-minmax-neon-dup-ld128.c",
3275    "src/f32-gemm/gen/6x8-minmax-neon-lane-ld64.c",
3276    "src/f32-gemm/gen/6x8-minmax-neon-lane-ld128.c",
3277    "src/f32-gemm/gen/6x8s4-minmax-neon.c",
3278    "src/f32-gemm/gen/8x8s4-minmax-neon.c",
3279    "src/f32-ibilinear-chw/gen/neon-p4.c",
3280    "src/f32-ibilinear-chw/gen/neon-p8.c",
3281    "src/f32-ibilinear-chw/gen/neon-p16.c",
3282    "src/f32-ibilinear/gen/neon-c4.c",
3283    "src/f32-ibilinear/gen/neon-c8.c",
3284    "src/f32-igemm/gen/1x8-minmax-neon-dup-ld64.c",
3285    "src/f32-igemm/gen/1x8-minmax-neon-lane-ld64.c",
3286    "src/f32-igemm/gen/1x8s4-minmax-neon.c",
3287    "src/f32-igemm/gen/4x2-minmax-neon-lane-ld64.c",
3288    "src/f32-igemm/gen/4x4-minmax-neon-lane-ld64.c",
3289    "src/f32-igemm/gen/4x8-minmax-neon-dup-ld64.c",
3290    "src/f32-igemm/gen/4x8-minmax-neon-dup-ld128.c",
3291    "src/f32-igemm/gen/4x8-minmax-neon-lane-ld64.c",
3292    "src/f32-igemm/gen/4x8-minmax-neon-lane-ld128.c",
3293    "src/f32-igemm/gen/4x8s4-minmax-neon.c",
3294    "src/f32-igemm/gen/6x2-minmax-neon-lane-ld64.c",
3295    "src/f32-igemm/gen/6x8-minmax-neon-dup-ld64.c",
3296    "src/f32-igemm/gen/6x8-minmax-neon-dup-ld128.c",
3297    "src/f32-igemm/gen/6x8-minmax-neon-lane-ld64.c",
3298    "src/f32-igemm/gen/6x8-minmax-neon-lane-ld128.c",
3299    "src/f32-igemm/gen/6x8s4-minmax-neon.c",
3300    "src/f32-igemm/gen/8x8s4-minmax-neon.c",
3301    "src/f32-maxpool/9p8x-minmax-neon-c4.c",
3302    "src/f32-pavgpool/9p8x-minmax-neon-c4.c",
3303    "src/f32-pavgpool/9x-minmax-neon-c4.c",
3304    "src/f32-ppmm/gen/4x8-minmax-neon.c",
3305    "src/f32-ppmm/gen/8x8-minmax-neon.c",
3306    "src/f32-prelu/gen/neon-1x4.c",
3307    "src/f32-prelu/gen/neon-1x8.c",
3308    "src/f32-prelu/gen/neon-1x16.c",
3309    "src/f32-prelu/gen/neon-2x4.c",
3310    "src/f32-prelu/gen/neon-2x8.c",
3311    "src/f32-prelu/gen/neon-2x16.c",
3312    "src/f32-prelu/gen/neon-4x4.c",
3313    "src/f32-prelu/gen/neon-4x8.c",
3314    "src/f32-prelu/gen/neon-4x16.c",
3315    "src/f32-qs8-vcvt/gen/vcvt-neon-x8.c",
3316    "src/f32-qs8-vcvt/gen/vcvt-neon-x16.c",
3317    "src/f32-qs8-vcvt/gen/vcvt-neon-x24.c",
3318    "src/f32-qs8-vcvt/gen/vcvt-neon-x32.c",
3319    "src/f32-qu8-vcvt/gen/vcvt-neon-x8.c",
3320    "src/f32-qu8-vcvt/gen/vcvt-neon-x16.c",
3321    "src/f32-qu8-vcvt/gen/vcvt-neon-x24.c",
3322    "src/f32-qu8-vcvt/gen/vcvt-neon-x32.c",
3323    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x4.c",
3324    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x8-acc2.c",
3325    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x8.c",
3326    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x12-acc2.c",
3327    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x12-acc3.c",
3328    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x12.c",
3329    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x16-acc2.c",
3330    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x16-acc4.c",
3331    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x16.c",
3332    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x20-acc2.c",
3333    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x20-acc5.c",
3334    "src/f32-raddstoreexpminusmax/gen/neon-rr2-lut64-p2-x20.c",
3335    "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x4.c",
3336    "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x8-acc2.c",
3337    "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x8.c",
3338    "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x12-acc2.c",
3339    "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x12-acc3.c",
3340    "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x12.c",
3341    "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x16-acc2.c",
3342    "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x16-acc4.c",
3343    "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x16.c",
3344    "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x20-acc2.c",
3345    "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x20-acc5.c",
3346    "src/f32-raddstoreexpminusmax/gen/neon-rr2-p5-x20.c",
3347    "src/f32-rmax/neon.c",
3348    "src/f32-spmm/gen/4x1-minmax-neon-pipelined.c",
3349    "src/f32-spmm/gen/4x1-minmax-neon-x2.c",
3350    "src/f32-spmm/gen/4x1-minmax-neon.c",
3351    "src/f32-spmm/gen/8x1-minmax-neon-pipelined.c",
3352    "src/f32-spmm/gen/8x1-minmax-neon-x2.c",
3353    "src/f32-spmm/gen/8x1-minmax-neon.c",
3354    "src/f32-spmm/gen/12x1-minmax-neon.c",
3355    "src/f32-spmm/gen/16x1-minmax-neon-pipelined.c",
3356    "src/f32-spmm/gen/16x1-minmax-neon-x2.c",
3357    "src/f32-spmm/gen/16x1-minmax-neon.c",
3358    "src/f32-spmm/gen/32x1-minmax-neon-pipelined.c",
3359    "src/f32-spmm/gen/32x1-minmax-neon-x2.c",
3360    "src/f32-spmm/gen/32x1-minmax-neon.c",
3361    "src/f32-vbinary/gen/vadd-minmax-neon-x4.c",
3362    "src/f32-vbinary/gen/vadd-minmax-neon-x8.c",
3363    "src/f32-vbinary/gen/vaddc-minmax-neon-x4.c",
3364    "src/f32-vbinary/gen/vaddc-minmax-neon-x8.c",
3365    "src/f32-vbinary/gen/vmax-neon-x4.c",
3366    "src/f32-vbinary/gen/vmax-neon-x8.c",
3367    "src/f32-vbinary/gen/vmaxc-neon-x4.c",
3368    "src/f32-vbinary/gen/vmaxc-neon-x8.c",
3369    "src/f32-vbinary/gen/vmin-neon-x4.c",
3370    "src/f32-vbinary/gen/vmin-neon-x8.c",
3371    "src/f32-vbinary/gen/vminc-neon-x4.c",
3372    "src/f32-vbinary/gen/vminc-neon-x8.c",
3373    "src/f32-vbinary/gen/vmul-minmax-neon-x4.c",
3374    "src/f32-vbinary/gen/vmul-minmax-neon-x8.c",
3375    "src/f32-vbinary/gen/vmulc-minmax-neon-x4.c",
3376    "src/f32-vbinary/gen/vmulc-minmax-neon-x8.c",
3377    "src/f32-vbinary/gen/vrsubc-minmax-neon-x4.c",
3378    "src/f32-vbinary/gen/vrsubc-minmax-neon-x8.c",
3379    "src/f32-vbinary/gen/vsqrdiff-neon-x4.c",
3380    "src/f32-vbinary/gen/vsqrdiff-neon-x8.c",
3381    "src/f32-vbinary/gen/vsqrdiffc-neon-x4.c",
3382    "src/f32-vbinary/gen/vsqrdiffc-neon-x8.c",
3383    "src/f32-vbinary/gen/vsub-minmax-neon-x4.c",
3384    "src/f32-vbinary/gen/vsub-minmax-neon-x8.c",
3385    "src/f32-vbinary/gen/vsubc-minmax-neon-x4.c",
3386    "src/f32-vbinary/gen/vsubc-minmax-neon-x8.c",
3387    "src/f32-vclamp/gen/vclamp-neon-x4.c",
3388    "src/f32-vclamp/gen/vclamp-neon-x8.c",
3389    "src/f32-velu/gen/velu-neon-rr2-lut16-p3-x4.c",
3390    "src/f32-velu/gen/velu-neon-rr2-lut16-p3-x8.c",
3391    "src/f32-velu/gen/velu-neon-rr2-lut16-p3-x12.c",
3392    "src/f32-velu/gen/velu-neon-rr2-lut16-p3-x16.c",
3393    "src/f32-velu/gen/velu-neon-rr2-lut16-p3-x20.c",
3394    "src/f32-velu/gen/velu-neon-rr2-lut16-p3-x24.c",
3395    "src/f32-velu/gen/velu-neon-rr2-p6-x4.c",
3396    "src/f32-velu/gen/velu-neon-rr2-p6-x8.c",
3397    "src/f32-velu/gen/velu-neon-rr2-p6-x12.c",
3398    "src/f32-velu/gen/velu-neon-rr2-p6-x16.c",
3399    "src/f32-velu/gen/velu-neon-rr2-p6-x20.c",
3400    "src/f32-velu/gen/velu-neon-rr2-p6-x24.c",
3401    "src/f32-vhswish/gen/vhswish-neon-x4.c",
3402    "src/f32-vhswish/gen/vhswish-neon-x8.c",
3403    "src/f32-vhswish/gen/vhswish-neon-x16.c",
3404    "src/f32-vlrelu/gen/vlrelu-neon-x4.c",
3405    "src/f32-vlrelu/gen/vlrelu-neon-x8.c",
3406    "src/f32-vmulcaddc/gen/c4-minmax-neon-2x.c",
3407    "src/f32-vmulcaddc/gen/c8-minmax-neon-2x.c",
3408    "src/f32-vrelu/gen/vrelu-neon-x4.c",
3409    "src/f32-vrelu/gen/vrelu-neon-x8.c",
3410    "src/f32-vrnd/gen/vrndd-neon-x4.c",
3411    "src/f32-vrnd/gen/vrndd-neon-x8.c",
3412    "src/f32-vrnd/gen/vrndne-neon-x4.c",
3413    "src/f32-vrnd/gen/vrndne-neon-x8.c",
3414    "src/f32-vrnd/gen/vrndu-neon-x4.c",
3415    "src/f32-vrnd/gen/vrndu-neon-x8.c",
3416    "src/f32-vrnd/gen/vrndz-neon-x4.c",
3417    "src/f32-vrnd/gen/vrndz-neon-x8.c",
3418    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x4.c",
3419    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x8.c",
3420    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x12.c",
3421    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x16.c",
3422    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x20.c",
3423    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut64-p2-nr2recps-x24.c",
3424    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut2048-p1-nr2recps-x4.c",
3425    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut2048-p1-nr2recps-x8.c",
3426    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut2048-p1-nr2recps-x12.c",
3427    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut2048-p1-nr2recps-x16.c",
3428    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut2048-p1-nr2recps-x20.c",
3429    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-lut2048-p1-nr2recps-x24.c",
3430    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-p5-nr2recps-x4.c",
3431    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-p5-nr2recps-x8.c",
3432    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-p5-nr2recps-x12.c",
3433    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-p5-nr2recps-x16.c",
3434    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-p5-nr2recps-x20.c",
3435    "src/f32-vsigmoid/gen/vsigmoid-neon-rr2-p5-nr2recps-x24.c",
3436    "src/f32-vunary/gen/vabs-neon-x4.c",
3437    "src/f32-vunary/gen/vabs-neon-x8.c",
3438    "src/f32-vunary/gen/vneg-neon-x4.c",
3439    "src/f32-vunary/gen/vneg-neon-x8.c",
3440    "src/f32-vunary/gen/vsqr-neon-x4.c",
3441    "src/f32-vunary/gen/vsqr-neon-x8.c",
3442    "src/math/cvt-f16-f32-neon-int16.c",
3443    "src/math/cvt-f16-f32-neon-int32.c",
3444    "src/math/cvt-f32-f16-neon.c",
3445    "src/math/cvt-f32-qs8-neon.c",
3446    "src/math/cvt-f32-qu8-neon.c",
3447    "src/math/expm1minus-f32-neon-rr2-lut16-p3.c",
3448    "src/math/expm1minus-f32-neon-rr2-p6.c",
3449    "src/math/roundd-neon-addsub.c",
3450    "src/math/roundd-neon-cvt.c",
3451    "src/math/roundne-neon-addsub.c",
3452    "src/math/roundu-neon-addsub.c",
3453    "src/math/roundu-neon-cvt.c",
3454    "src/math/roundz-neon-addsub.c",
3455    "src/math/roundz-neon-cvt.c",
3456    "src/math/sigmoid-f32-neon-rr2-lut64-p2-nr2recps.c",
3457    "src/math/sigmoid-f32-neon-rr2-lut2048-p1-nr2recps.c",
3458    "src/math/sigmoid-f32-neon-rr2-p5-nr2recps.c",
3459    "src/math/sqrt-neon-nr1rsqrts.c",
3460    "src/math/sqrt-neon-nr2rsqrts.c",
3461    "src/math/sqrt-neon-nr3rsqrts.c",
3462    "src/qc8-dwconv/gen/up8x3-minmax-fp32-neon-mla8-ld64.c",
3463    "src/qc8-dwconv/gen/up8x9-minmax-fp32-neon-mla8-ld64.c",
3464    "src/qc8-dwconv/gen/up8x9-minmax-fp32-neon-mul8-ld64.c",
3465    "src/qc8-dwconv/gen/up8x9-minmax-fp32-neon-mul16.c",
3466    "src/qc8-dwconv/gen/up8x25-minmax-fp32-neon-mla8-ld64.c",
3467    "src/qc8-dwconv/gen/up8x25-minmax-fp32-neon-mul8-ld64.c",
3468    "src/qc8-dwconv/gen/up8x25-minmax-fp32-neon-mul16.c",
3469    "src/qc8-dwconv/gen/up16x3-minmax-fp32-neon-mla8-ld64.c",
3470    "src/qc8-dwconv/gen/up16x3-minmax-fp32-neon-mla8-ld128.c",
3471    "src/qc8-dwconv/gen/up16x9-minmax-fp32-neon-mla8-ld64.c",
3472    "src/qc8-dwconv/gen/up16x9-minmax-fp32-neon-mla8-ld128.c",
3473    "src/qc8-dwconv/gen/up16x9-minmax-fp32-neon-mul8-ld64.c",
3474    "src/qc8-dwconv/gen/up16x9-minmax-fp32-neon-mul8-ld128.c",
3475    "src/qc8-dwconv/gen/up16x9-minmax-fp32-neon-mul16.c",
3476    "src/qc8-dwconv/gen/up16x25-minmax-fp32-neon-mla8-ld64.c",
3477    "src/qc8-dwconv/gen/up16x25-minmax-fp32-neon-mla8-ld128.c",
3478    "src/qc8-dwconv/gen/up16x25-minmax-fp32-neon-mul8-ld64.c",
3479    "src/qc8-dwconv/gen/up16x25-minmax-fp32-neon-mul8-ld128.c",
3480    "src/qc8-dwconv/gen/up16x25-minmax-fp32-neon-mul16.c",
3481    "src/qc8-dwconv/gen/up24x9-minmax-fp32-neon-mul16.c",
3482    "src/qc8-dwconv/gen/up24x25-minmax-fp32-neon-mul16.c",
3483    "src/qc8-dwconv/gen/up32x9-minmax-fp32-neon-mul16.c",
3484    "src/qc8-dwconv/gen/up32x25-minmax-fp32-neon-mul16.c",
3485    "src/qc8-gemm/gen/1x8-minmax-fp32-neon-mlal-lane-prfm.c",
3486    "src/qc8-gemm/gen/1x8-minmax-fp32-neon-mlal-lane.c",
3487    "src/qc8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-dup.c",
3488    "src/qc8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-ld1r.c",
3489    "src/qc8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-ld2r.c",
3490    "src/qc8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-ld4r.c",
3491    "src/qc8-gemm/gen/1x8c2s4-minmax-fp32-neon-mlal.c",
3492    "src/qc8-gemm/gen/1x8c4-minmax-fp32-neon-mlal-dup.c",
3493    "src/qc8-gemm/gen/1x8c4-minmax-fp32-neon-mlal-ld1r.c",
3494    "src/qc8-gemm/gen/1x8c4-minmax-fp32-neon-mlal-ld2r.c",
3495    "src/qc8-gemm/gen/1x8c4s2-minmax-fp32-neon-mlal.c",
3496    "src/qc8-gemm/gen/1x8c8-minmax-fp32-neon-mlal.c",
3497    "src/qc8-gemm/gen/1x16-minmax-fp32-neon-mlal-lane-prfm.c",
3498    "src/qc8-gemm/gen/1x16-minmax-fp32-neon-mlal-lane.c",
3499    "src/qc8-gemm/gen/2x8-minmax-fp32-neon-mlal-lane-prfm.c",
3500    "src/qc8-gemm/gen/2x8-minmax-fp32-neon-mlal-lane.c",
3501    "src/qc8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-dup.c",
3502    "src/qc8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-ld1r.c",
3503    "src/qc8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-ld2r.c",
3504    "src/qc8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-ld4r.c",
3505    "src/qc8-gemm/gen/2x8c2s4-minmax-fp32-neon-mlal.c",
3506    "src/qc8-gemm/gen/2x8c4-minmax-fp32-neon-mlal-dup.c",
3507    "src/qc8-gemm/gen/2x8c4-minmax-fp32-neon-mlal-ld1r.c",
3508    "src/qc8-gemm/gen/2x8c4-minmax-fp32-neon-mlal-ld2r.c",
3509    "src/qc8-gemm/gen/2x8c4s2-minmax-fp32-neon-mlal.c",
3510    "src/qc8-gemm/gen/2x8c8-minmax-fp32-neon-mlal.c",
3511    "src/qc8-gemm/gen/2x16-minmax-fp32-neon-mlal-lane-prfm.c",
3512    "src/qc8-gemm/gen/2x16-minmax-fp32-neon-mlal-lane.c",
3513    "src/qc8-gemm/gen/3x8-minmax-fp32-neon-mlal-lane-prfm.c",
3514    "src/qc8-gemm/gen/3x8-minmax-fp32-neon-mlal-lane.c",
3515    "src/qc8-gemm/gen/3x16-minmax-fp32-neon-mlal-lane-prfm.c",
3516    "src/qc8-gemm/gen/3x16-minmax-fp32-neon-mlal-lane.c",
3517    "src/qc8-gemm/gen/4x8-minmax-fp32-neon-mlal-lane-prfm.c",
3518    "src/qc8-gemm/gen/4x8-minmax-fp32-neon-mlal-lane.c",
3519    "src/qc8-gemm/gen/4x16-minmax-fp32-neon-mlal-lane-prfm.c",
3520    "src/qc8-gemm/gen/4x16-minmax-fp32-neon-mlal-lane.c",
3521    "src/qc8-gemm/gen/6x8-minmax-fp32-neon-mlal-lane-prfm.c",
3522    "src/qc8-gemm/gen/6x8-minmax-fp32-neon-mlal-lane.c",
3523    "src/qc8-gemm/gen/6x16-minmax-fp32-neon-mlal-lane-prfm.c",
3524    "src/qc8-gemm/gen/6x16-minmax-fp32-neon-mlal-lane.c",
3525    "src/qc8-igemm/gen/1x8-minmax-fp32-neon-mlal-lane-prfm.c",
3526    "src/qc8-igemm/gen/1x8-minmax-fp32-neon-mlal-lane.c",
3527    "src/qc8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-dup.c",
3528    "src/qc8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-ld1r.c",
3529    "src/qc8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-ld2r.c",
3530    "src/qc8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-ld4r.c",
3531    "src/qc8-igemm/gen/1x8c2s4-minmax-fp32-neon-mlal.c",
3532    "src/qc8-igemm/gen/1x8c4-minmax-fp32-neon-mlal-dup.c",
3533    "src/qc8-igemm/gen/1x8c4-minmax-fp32-neon-mlal-ld1r.c",
3534    "src/qc8-igemm/gen/1x8c4-minmax-fp32-neon-mlal-ld2r.c",
3535    "src/qc8-igemm/gen/1x8c4s2-minmax-fp32-neon-mlal.c",
3536    "src/qc8-igemm/gen/1x8c8-minmax-fp32-neon-mlal.c",
3537    "src/qc8-igemm/gen/1x16-minmax-fp32-neon-mlal-lane-prfm.c",
3538    "src/qc8-igemm/gen/1x16-minmax-fp32-neon-mlal-lane.c",
3539    "src/qc8-igemm/gen/2x8-minmax-fp32-neon-mlal-lane-prfm.c",
3540    "src/qc8-igemm/gen/2x8-minmax-fp32-neon-mlal-lane.c",
3541    "src/qc8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-dup.c",
3542    "src/qc8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-ld1r.c",
3543    "src/qc8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-ld2r.c",
3544    "src/qc8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-ld4r.c",
3545    "src/qc8-igemm/gen/2x8c2s4-minmax-fp32-neon-mlal.c",
3546    "src/qc8-igemm/gen/2x8c4-minmax-fp32-neon-mlal-dup.c",
3547    "src/qc8-igemm/gen/2x8c4-minmax-fp32-neon-mlal-ld1r.c",
3548    "src/qc8-igemm/gen/2x8c4-minmax-fp32-neon-mlal-ld2r.c",
3549    "src/qc8-igemm/gen/2x8c4s2-minmax-fp32-neon-mlal.c",
3550    "src/qc8-igemm/gen/2x8c8-minmax-fp32-neon-mlal.c",
3551    "src/qc8-igemm/gen/2x16-minmax-fp32-neon-mlal-lane-prfm.c",
3552    "src/qc8-igemm/gen/2x16-minmax-fp32-neon-mlal-lane.c",
3553    "src/qc8-igemm/gen/3x8-minmax-fp32-neon-mlal-lane-prfm.c",
3554    "src/qc8-igemm/gen/3x8-minmax-fp32-neon-mlal-lane.c",
3555    "src/qc8-igemm/gen/3x16-minmax-fp32-neon-mlal-lane-prfm.c",
3556    "src/qc8-igemm/gen/3x16-minmax-fp32-neon-mlal-lane.c",
3557    "src/qc8-igemm/gen/4x8-minmax-fp32-neon-mlal-lane-prfm.c",
3558    "src/qc8-igemm/gen/4x8-minmax-fp32-neon-mlal-lane.c",
3559    "src/qc8-igemm/gen/4x16-minmax-fp32-neon-mlal-lane-prfm.c",
3560    "src/qc8-igemm/gen/4x16-minmax-fp32-neon-mlal-lane.c",
3561    "src/qc8-igemm/gen/6x8-minmax-fp32-neon-mlal-lane-prfm.c",
3562    "src/qc8-igemm/gen/6x8-minmax-fp32-neon-mlal-lane.c",
3563    "src/qc8-igemm/gen/6x16-minmax-fp32-neon-mlal-lane-prfm.c",
3564    "src/qc8-igemm/gen/6x16-minmax-fp32-neon-mlal-lane.c",
3565    "src/qs8-dwconv/gen/up8x9-minmax-fp32-neon-mul16.c",
3566    "src/qs8-dwconv/gen/up8x9-minmax-rndnu-neon-mla8-ld64.c",
3567    "src/qs8-dwconv/gen/up8x9-minmax-rndnu-neon-mul8-ld64.c",
3568    "src/qs8-dwconv/gen/up8x9-minmax-rndnu-neon-mul16.c",
3569    "src/qs8-dwconv/gen/up8x25-minmax-fp32-neon-mul16.c",
3570    "src/qs8-dwconv/gen/up8x25-minmax-rndnu-neon-mla8-ld64.c",
3571    "src/qs8-dwconv/gen/up8x25-minmax-rndnu-neon-mul8-ld64.c",
3572    "src/qs8-dwconv/gen/up8x25-minmax-rndnu-neon-mul16.c",
3573    "src/qs8-dwconv/gen/up16x9-minmax-fp32-neon-mul16.c",
3574    "src/qs8-dwconv/gen/up16x9-minmax-rndnu-neon-mla8-ld64.c",
3575    "src/qs8-dwconv/gen/up16x9-minmax-rndnu-neon-mla8-ld128.c",
3576    "src/qs8-dwconv/gen/up16x9-minmax-rndnu-neon-mul8-ld64.c",
3577    "src/qs8-dwconv/gen/up16x9-minmax-rndnu-neon-mul8-ld128.c",
3578    "src/qs8-dwconv/gen/up16x9-minmax-rndnu-neon-mul16.c",
3579    "src/qs8-dwconv/gen/up16x25-minmax-fp32-neon-mul16.c",
3580    "src/qs8-dwconv/gen/up16x25-minmax-rndnu-neon-mla8-ld64.c",
3581    "src/qs8-dwconv/gen/up16x25-minmax-rndnu-neon-mla8-ld128.c",
3582    "src/qs8-dwconv/gen/up16x25-minmax-rndnu-neon-mul8-ld64.c",
3583    "src/qs8-dwconv/gen/up16x25-minmax-rndnu-neon-mul8-ld128.c",
3584    "src/qs8-dwconv/gen/up16x25-minmax-rndnu-neon-mul16.c",
3585    "src/qs8-dwconv/gen/up24x9-minmax-fp32-neon-mul16.c",
3586    "src/qs8-dwconv/gen/up24x9-minmax-rndnu-neon-mul16.c",
3587    "src/qs8-dwconv/gen/up24x25-minmax-fp32-neon-mul16.c",
3588    "src/qs8-dwconv/gen/up24x25-minmax-rndnu-neon-mul16.c",
3589    "src/qs8-dwconv/gen/up32x9-minmax-fp32-neon-mul16.c",
3590    "src/qs8-dwconv/gen/up32x9-minmax-rndnu-neon-mul16.c",
3591    "src/qs8-dwconv/gen/up32x25-minmax-fp32-neon-mul16.c",
3592    "src/qs8-dwconv/gen/up32x25-minmax-rndnu-neon-mul16.c",
3593    "src/qs8-f32-vcvt/gen/vcvt-neon-x8.c",
3594    "src/qs8-f32-vcvt/gen/vcvt-neon-x16.c",
3595    "src/qs8-f32-vcvt/gen/vcvt-neon-x24.c",
3596    "src/qs8-f32-vcvt/gen/vcvt-neon-x32.c",
3597    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neon-c8.c",
3598    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neon-c16.c",
3599    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neon-c24.c",
3600    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neon-c32.c",
3601    "src/qs8-gavgpool/gen/7p7x-minmax-rndnu-neon-c8.c",
3602    "src/qs8-gavgpool/gen/7p7x-minmax-rndnu-neon-c16.c",
3603    "src/qs8-gavgpool/gen/7p7x-minmax-rndnu-neon-c24.c",
3604    "src/qs8-gavgpool/gen/7p7x-minmax-rndnu-neon-c32.c",
3605    "src/qs8-gavgpool/gen/7x-minmax-fp32-neon-c8.c",
3606    "src/qs8-gavgpool/gen/7x-minmax-fp32-neon-c16.c",
3607    "src/qs8-gavgpool/gen/7x-minmax-fp32-neon-c24.c",
3608    "src/qs8-gavgpool/gen/7x-minmax-fp32-neon-c32.c",
3609    "src/qs8-gavgpool/gen/7x-minmax-rndnu-neon-c8.c",
3610    "src/qs8-gavgpool/gen/7x-minmax-rndnu-neon-c16.c",
3611    "src/qs8-gavgpool/gen/7x-minmax-rndnu-neon-c24.c",
3612    "src/qs8-gavgpool/gen/7x-minmax-rndnu-neon-c32.c",
3613    "src/qs8-gemm/gen/1x8-minmax-rndnu-neon-mlal-lane-prfm.c",
3614    "src/qs8-gemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c",
3615    "src/qs8-gemm/gen/1x8-minmax-rndnu-neon-mull-addw-dup.c",
3616    "src/qs8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-dup.c",
3617    "src/qs8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-ld1r.c",
3618    "src/qs8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-ld2r.c",
3619    "src/qs8-gemm/gen/1x8c2-minmax-fp32-neon-mlal-ld4r.c",
3620    "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mlal-dup.c",
3621    "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mlal-ld1r.c",
3622    "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mlal-ld2r.c",
3623    "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mlal-ld4r.c",
3624    "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mull-dup.c",
3625    "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mull-ld1r.c",
3626    "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mull-ld2r.c",
3627    "src/qs8-gemm/gen/1x8c2-minmax-rndnu-neon-mull-ld4r.c",
3628    "src/qs8-gemm/gen/1x8c2s4-minmax-fp32-neon-mlal.c",
3629    "src/qs8-gemm/gen/1x8c2s4-minmax-rndnu-neon-mlal.c",
3630    "src/qs8-gemm/gen/1x8c2s4-minmax-rndnu-neon-mull.c",
3631    "src/qs8-gemm/gen/1x8c4-minmax-fp32-neon-mlal-dup.c",
3632    "src/qs8-gemm/gen/1x8c4-minmax-fp32-neon-mlal-ld1r.c",
3633    "src/qs8-gemm/gen/1x8c4-minmax-fp32-neon-mlal-ld2r.c",
3634    "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neon-mlal-dup.c",
3635    "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neon-mlal-ld1r.c",
3636    "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neon-mlal-ld2r.c",
3637    "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neon-mull-dup.c",
3638    "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neon-mull-ld1r.c",
3639    "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neon-mull-ld2r.c",
3640    "src/qs8-gemm/gen/1x8c4s2-minmax-fp32-neon-mlal.c",
3641    "src/qs8-gemm/gen/1x8c4s2-minmax-rndnu-neon-mlal.c",
3642    "src/qs8-gemm/gen/1x8c4s2-minmax-rndnu-neon-mull.c",
3643    "src/qs8-gemm/gen/1x8c8-minmax-fp32-neon-mlal.c",
3644    "src/qs8-gemm/gen/1x8c8-minmax-rndnu-neon-mlal.c",
3645    "src/qs8-gemm/gen/1x8c8-minmax-rndnu-neon-mull.c",
3646    "src/qs8-gemm/gen/1x8c16-minmax-rndnu-neon-mlal.c",
3647    "src/qs8-gemm/gen/1x16-minmax-fp32-neon-mlal-lane.c",
3648    "src/qs8-gemm/gen/1x16-minmax-rndnu-neon-mlal-lane-prfm.c",
3649    "src/qs8-gemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c",
3650    "src/qs8-gemm/gen/1x16-minmax-rndnu-neon-mull-addw-dup.c",
3651    "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mlal-dup.c",
3652    "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mlal-ld1r.c",
3653    "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mlal-ld2r.c",
3654    "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mlal-ld4r.c",
3655    "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mull-dup.c",
3656    "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mull-ld1r.c",
3657    "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mull-ld2r.c",
3658    "src/qs8-gemm/gen/1x16c2-minmax-rndnu-neon-mull-ld4r.c",
3659    "src/qs8-gemm/gen/1x16c2s4-minmax-rndnu-neon-mlal.c",
3660    "src/qs8-gemm/gen/1x16c2s4-minmax-rndnu-neon-mull.c",
3661    "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neon-mlal-dup.c",
3662    "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neon-mlal-ld1r.c",
3663    "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neon-mlal-ld2r.c",
3664    "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neon-mull-dup.c",
3665    "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neon-mull-ld1r.c",
3666    "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neon-mull-ld2r.c",
3667    "src/qs8-gemm/gen/1x16c4s2-minmax-rndnu-neon-mlal.c",
3668    "src/qs8-gemm/gen/1x16c4s2-minmax-rndnu-neon-mull.c",
3669    "src/qs8-gemm/gen/1x16c8-minmax-rndnu-neon-mlal.c",
3670    "src/qs8-gemm/gen/1x16c8-minmax-rndnu-neon-mull.c",
3671    "src/qs8-gemm/gen/1x16c16-minmax-rndnu-neon-mlal.c",
3672    "src/qs8-gemm/gen/2x8-minmax-rndnu-neon-mlal-lane-prfm.c",
3673    "src/qs8-gemm/gen/2x8-minmax-rndnu-neon-mlal-lane.c",
3674    "src/qs8-gemm/gen/2x8-minmax-rndnu-neon-mull-addw-dup.c",
3675    "src/qs8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-dup.c",
3676    "src/qs8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-ld1r.c",
3677    "src/qs8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-ld2r.c",
3678    "src/qs8-gemm/gen/2x8c2-minmax-fp32-neon-mlal-ld4r.c",
3679    "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mlal-dup.c",
3680    "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mlal-ld1r.c",
3681    "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mlal-ld2r.c",
3682    "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mlal-ld4r.c",
3683    "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mull-dup.c",
3684    "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mull-ld1r.c",
3685    "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mull-ld2r.c",
3686    "src/qs8-gemm/gen/2x8c2-minmax-rndnu-neon-mull-ld4r.c",
3687    "src/qs8-gemm/gen/2x8c2s4-minmax-fp32-neon-mlal.c",
3688    "src/qs8-gemm/gen/2x8c2s4-minmax-rndnu-neon-mlal.c",
3689    "src/qs8-gemm/gen/2x8c2s4-minmax-rndnu-neon-mull.c",
3690    "src/qs8-gemm/gen/2x8c4-minmax-fp32-neon-mlal-dup.c",
3691    "src/qs8-gemm/gen/2x8c4-minmax-fp32-neon-mlal-ld1r.c",
3692    "src/qs8-gemm/gen/2x8c4-minmax-fp32-neon-mlal-ld2r.c",
3693    "src/qs8-gemm/gen/2x8c4-minmax-rndnu-neon-mlal-dup.c",
3694    "src/qs8-gemm/gen/2x8c4-minmax-rndnu-neon-mlal-ld1r.c",
3695    "src/qs8-gemm/gen/2x8c4-minmax-rndnu-neon-mlal-ld2r.c",
3696    "src/qs8-gemm/gen/2x8c4-minmax-rndnu-neon-mull-dup.c",
3697    "src/qs8-gemm/gen/2x8c4-minmax-rndnu-neon-mull-ld1r.c",
3698    "src/qs8-gemm/gen/2x8c4-minmax-rndnu-neon-mull-ld2r.c",
3699    "src/qs8-gemm/gen/2x8c4s2-minmax-fp32-neon-mlal.c",
3700    "src/qs8-gemm/gen/2x8c4s2-minmax-rndnu-neon-mlal.c",
3701    "src/qs8-gemm/gen/2x8c4s2-minmax-rndnu-neon-mull.c",
3702    "src/qs8-gemm/gen/2x8c8-minmax-fp32-neon-mlal.c",
3703    "src/qs8-gemm/gen/2x8c8-minmax-rndnu-neon-mlal.c",
3704    "src/qs8-gemm/gen/2x8c8-minmax-rndnu-neon-mull.c",
3705    "src/qs8-gemm/gen/2x8c16-minmax-rndnu-neon-mlal.c",
3706    "src/qs8-gemm/gen/2x16-minmax-rndnu-neon-mlal-lane-prfm.c",
3707    "src/qs8-gemm/gen/2x16-minmax-rndnu-neon-mlal-lane.c",
3708    "src/qs8-gemm/gen/2x16-minmax-rndnu-neon-mull-addw-dup.c",
3709    "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mlal-dup.c",
3710    "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mlal-ld1r.c",
3711    "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mlal-ld2r.c",
3712    "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mlal-ld4r.c",
3713    "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mull-dup.c",
3714    "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mull-ld1r.c",
3715    "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mull-ld2r.c",
3716    "src/qs8-gemm/gen/2x16c2-minmax-rndnu-neon-mull-ld4r.c",
3717    "src/qs8-gemm/gen/2x16c2s4-minmax-rndnu-neon-mlal.c",
3718    "src/qs8-gemm/gen/2x16c2s4-minmax-rndnu-neon-mull.c",
3719    "src/qs8-gemm/gen/2x16c4-minmax-rndnu-neon-mlal-dup.c",
3720    "src/qs8-gemm/gen/2x16c4-minmax-rndnu-neon-mlal-ld1r.c",
3721    "src/qs8-gemm/gen/2x16c4-minmax-rndnu-neon-mlal-ld2r.c",
3722    "src/qs8-gemm/gen/2x16c4-minmax-rndnu-neon-mull-dup.c",
3723    "src/qs8-gemm/gen/2x16c4-minmax-rndnu-neon-mull-ld1r.c",
3724    "src/qs8-gemm/gen/2x16c4-minmax-rndnu-neon-mull-ld2r.c",
3725    "src/qs8-gemm/gen/2x16c4s2-minmax-rndnu-neon-mlal.c",
3726    "src/qs8-gemm/gen/2x16c4s2-minmax-rndnu-neon-mull.c",
3727    "src/qs8-gemm/gen/2x16c8-minmax-rndnu-neon-mlal.c",
3728    "src/qs8-gemm/gen/2x16c8-minmax-rndnu-neon-mull.c",
3729    "src/qs8-gemm/gen/2x16c16-minmax-rndnu-neon-mlal.c",
3730    "src/qs8-gemm/gen/3x8-minmax-rndnu-neon-mlal-lane-prfm.c",
3731    "src/qs8-gemm/gen/3x8-minmax-rndnu-neon-mlal-lane.c",
3732    "src/qs8-gemm/gen/3x8-minmax-rndnu-neon-mull-addw-dup.c",
3733    "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mlal-dup.c",
3734    "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mlal-ld1r.c",
3735    "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mlal-ld2r.c",
3736    "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mlal-ld4r.c",
3737    "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mull-dup.c",
3738    "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mull-ld1r.c",
3739    "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mull-ld2r.c",
3740    "src/qs8-gemm/gen/3x8c2-minmax-rndnu-neon-mull-ld4r.c",
3741    "src/qs8-gemm/gen/3x8c2s4-minmax-rndnu-neon-mlal.c",
3742    "src/qs8-gemm/gen/3x8c2s4-minmax-rndnu-neon-mull.c",
3743    "src/qs8-gemm/gen/3x8c4-minmax-rndnu-neon-mlal-dup.c",
3744    "src/qs8-gemm/gen/3x8c4-minmax-rndnu-neon-mlal-ld1r.c",
3745    "src/qs8-gemm/gen/3x8c4-minmax-rndnu-neon-mlal-ld2r.c",
3746    "src/qs8-gemm/gen/3x8c4-minmax-rndnu-neon-mull-dup.c",
3747    "src/qs8-gemm/gen/3x8c4-minmax-rndnu-neon-mull-ld1r.c",
3748    "src/qs8-gemm/gen/3x8c4-minmax-rndnu-neon-mull-ld2r.c",
3749    "src/qs8-gemm/gen/3x8c4s2-minmax-rndnu-neon-mlal.c",
3750    "src/qs8-gemm/gen/3x8c4s2-minmax-rndnu-neon-mull.c",
3751    "src/qs8-gemm/gen/3x8c8-minmax-rndnu-neon-mlal.c",
3752    "src/qs8-gemm/gen/3x8c8-minmax-rndnu-neon-mull.c",
3753    "src/qs8-gemm/gen/3x8c16-minmax-rndnu-neon-mlal.c",
3754    "src/qs8-gemm/gen/3x16-minmax-rndnu-neon-mlal-lane-prfm.c",
3755    "src/qs8-gemm/gen/3x16-minmax-rndnu-neon-mlal-lane.c",
3756    "src/qs8-gemm/gen/3x16-minmax-rndnu-neon-mull-addw-dup.c",
3757    "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mlal-dup.c",
3758    "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mlal-ld1r.c",
3759    "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mlal-ld2r.c",
3760    "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mlal-ld4r.c",
3761    "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mull-dup.c",
3762    "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mull-ld1r.c",
3763    "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mull-ld2r.c",
3764    "src/qs8-gemm/gen/3x16c2-minmax-rndnu-neon-mull-ld4r.c",
3765    "src/qs8-gemm/gen/3x16c2s4-minmax-rndnu-neon-mlal.c",
3766    "src/qs8-gemm/gen/3x16c2s4-minmax-rndnu-neon-mull.c",
3767    "src/qs8-gemm/gen/3x16c4-minmax-rndnu-neon-mlal-dup.c",
3768    "src/qs8-gemm/gen/3x16c4-minmax-rndnu-neon-mlal-ld1r.c",
3769    "src/qs8-gemm/gen/3x16c4-minmax-rndnu-neon-mlal-ld2r.c",
3770    "src/qs8-gemm/gen/3x16c4-minmax-rndnu-neon-mull-dup.c",
3771    "src/qs8-gemm/gen/3x16c4-minmax-rndnu-neon-mull-ld1r.c",
3772    "src/qs8-gemm/gen/3x16c4-minmax-rndnu-neon-mull-ld2r.c",
3773    "src/qs8-gemm/gen/3x16c4s2-minmax-rndnu-neon-mlal.c",
3774    "src/qs8-gemm/gen/3x16c4s2-minmax-rndnu-neon-mull.c",
3775    "src/qs8-gemm/gen/3x16c8-minmax-rndnu-neon-mlal.c",
3776    "src/qs8-gemm/gen/3x16c8-minmax-rndnu-neon-mull.c",
3777    "src/qs8-gemm/gen/3x16c16-minmax-rndnu-neon-mlal.c",
3778    "src/qs8-gemm/gen/4x8-minmax-rndnu-neon-mlal-lane-prfm.c",
3779    "src/qs8-gemm/gen/4x8-minmax-rndnu-neon-mlal-lane.c",
3780    "src/qs8-gemm/gen/4x8-minmax-rndnu-neon-mull-addw-dup.c",
3781    "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mlal-dup.c",
3782    "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mlal-ld1r.c",
3783    "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mlal-ld2r.c",
3784    "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mlal-ld4r.c",
3785    "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mull-dup.c",
3786    "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mull-ld1r.c",
3787    "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mull-ld2r.c",
3788    "src/qs8-gemm/gen/4x8c2-minmax-rndnu-neon-mull-ld4r.c",
3789    "src/qs8-gemm/gen/4x8c2s4-minmax-rndnu-neon-mlal.c",
3790    "src/qs8-gemm/gen/4x8c2s4-minmax-rndnu-neon-mull.c",
3791    "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neon-mlal-dup.c",
3792    "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neon-mlal-ld1r.c",
3793    "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neon-mlal-ld2r.c",
3794    "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neon-mull-dup.c",
3795    "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neon-mull-ld1r.c",
3796    "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neon-mull-ld2r.c",
3797    "src/qs8-gemm/gen/4x8c4s2-minmax-rndnu-neon-mlal.c",
3798    "src/qs8-gemm/gen/4x8c4s2-minmax-rndnu-neon-mull.c",
3799    "src/qs8-gemm/gen/4x8c8-minmax-rndnu-neon-mlal.c",
3800    "src/qs8-gemm/gen/4x8c8-minmax-rndnu-neon-mull.c",
3801    "src/qs8-gemm/gen/4x8c16-minmax-rndnu-neon-mlal.c",
3802    "src/qs8-gemm/gen/4x16-minmax-fp32-neon-mlal-lane.c",
3803    "src/qs8-gemm/gen/4x16-minmax-rndnu-neon-mlal-lane-prfm.c",
3804    "src/qs8-gemm/gen/4x16-minmax-rndnu-neon-mlal-lane.c",
3805    "src/qs8-gemm/gen/4x16-minmax-rndnu-neon-mull-addw-dup.c",
3806    "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mlal-dup.c",
3807    "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mlal-ld1r.c",
3808    "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mlal-ld2r.c",
3809    "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mlal-ld4r.c",
3810    "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mull-dup.c",
3811    "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mull-ld1r.c",
3812    "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mull-ld2r.c",
3813    "src/qs8-gemm/gen/4x16c2-minmax-rndnu-neon-mull-ld4r.c",
3814    "src/qs8-gemm/gen/4x16c2s4-minmax-rndnu-neon-mlal.c",
3815    "src/qs8-gemm/gen/4x16c2s4-minmax-rndnu-neon-mull.c",
3816    "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neon-mlal-dup.c",
3817    "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neon-mlal-ld1r.c",
3818    "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neon-mlal-ld2r.c",
3819    "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neon-mull-dup.c",
3820    "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neon-mull-ld1r.c",
3821    "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neon-mull-ld2r.c",
3822    "src/qs8-gemm/gen/4x16c4s2-minmax-rndnu-neon-mlal.c",
3823    "src/qs8-gemm/gen/4x16c4s2-minmax-rndnu-neon-mull.c",
3824    "src/qs8-gemm/gen/4x16c8-minmax-rndnu-neon-mlal.c",
3825    "src/qs8-gemm/gen/4x16c8-minmax-rndnu-neon-mull.c",
3826    "src/qs8-gemm/gen/4x16c16-minmax-rndnu-neon-mlal.c",
3827    "src/qs8-gemm/gen/6x8-minmax-rndnu-neon-mlal-lane-prfm.c",
3828    "src/qs8-gemm/gen/6x8-minmax-rndnu-neon-mlal-lane.c",
3829    "src/qs8-gemm/gen/6x16-minmax-rndnu-neon-mlal-lane-prfm.c",
3830    "src/qs8-gemm/gen/6x16-minmax-rndnu-neon-mlal-lane.c",
3831    "src/qs8-igemm/gen/1x8-minmax-rndnu-neon-mlal-lane-prfm.c",
3832    "src/qs8-igemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c",
3833    "src/qs8-igemm/gen/1x8-minmax-rndnu-neon-mull-addw-dup.c",
3834    "src/qs8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-dup.c",
3835    "src/qs8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-ld1r.c",
3836    "src/qs8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-ld2r.c",
3837    "src/qs8-igemm/gen/1x8c2-minmax-fp32-neon-mlal-ld4r.c",
3838    "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mlal-dup.c",
3839    "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mlal-ld1r.c",
3840    "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mlal-ld2r.c",
3841    "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mlal-ld4r.c",
3842    "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mull-dup.c",
3843    "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mull-ld1r.c",
3844    "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mull-ld2r.c",
3845    "src/qs8-igemm/gen/1x8c2-minmax-rndnu-neon-mull-ld4r.c",
3846    "src/qs8-igemm/gen/1x8c2s4-minmax-fp32-neon-mlal.c",
3847    "src/qs8-igemm/gen/1x8c2s4-minmax-rndnu-neon-mlal.c",
3848    "src/qs8-igemm/gen/1x8c2s4-minmax-rndnu-neon-mull.c",
3849    "src/qs8-igemm/gen/1x8c4-minmax-fp32-neon-mlal-dup.c",
3850    "src/qs8-igemm/gen/1x8c4-minmax-fp32-neon-mlal-ld1r.c",
3851    "src/qs8-igemm/gen/1x8c4-minmax-fp32-neon-mlal-ld2r.c",
3852    "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neon-mlal-dup.c",
3853    "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neon-mlal-ld1r.c",
3854    "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neon-mlal-ld2r.c",
3855    "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neon-mull-dup.c",
3856    "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neon-mull-ld1r.c",
3857    "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neon-mull-ld2r.c",
3858    "src/qs8-igemm/gen/1x8c4s2-minmax-fp32-neon-mlal.c",
3859    "src/qs8-igemm/gen/1x8c4s2-minmax-rndnu-neon-mlal.c",
3860    "src/qs8-igemm/gen/1x8c4s2-minmax-rndnu-neon-mull.c",
3861    "src/qs8-igemm/gen/1x8c8-minmax-fp32-neon-mlal.c",
3862    "src/qs8-igemm/gen/1x8c8-minmax-rndnu-neon-mlal.c",
3863    "src/qs8-igemm/gen/1x8c8-minmax-rndnu-neon-mull.c",
3864    "src/qs8-igemm/gen/1x8c16-minmax-rndnu-neon-mlal.c",
3865    "src/qs8-igemm/gen/1x16-minmax-fp32-neon-mlal-lane.c",
3866    "src/qs8-igemm/gen/1x16-minmax-rndnu-neon-mlal-lane-prfm.c",
3867    "src/qs8-igemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c",
3868    "src/qs8-igemm/gen/1x16-minmax-rndnu-neon-mull-addw-dup.c",
3869    "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mlal-dup.c",
3870    "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mlal-ld1r.c",
3871    "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mlal-ld2r.c",
3872    "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mlal-ld4r.c",
3873    "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mull-dup.c",
3874    "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mull-ld1r.c",
3875    "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mull-ld2r.c",
3876    "src/qs8-igemm/gen/1x16c2-minmax-rndnu-neon-mull-ld4r.c",
3877    "src/qs8-igemm/gen/1x16c2s4-minmax-rndnu-neon-mlal.c",
3878    "src/qs8-igemm/gen/1x16c2s4-minmax-rndnu-neon-mull.c",
3879    "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neon-mlal-dup.c",
3880    "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neon-mlal-ld1r.c",
3881    "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neon-mlal-ld2r.c",
3882    "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neon-mull-dup.c",
3883    "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neon-mull-ld1r.c",
3884    "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neon-mull-ld2r.c",
3885    "src/qs8-igemm/gen/1x16c4s2-minmax-rndnu-neon-mlal.c",
3886    "src/qs8-igemm/gen/1x16c4s2-minmax-rndnu-neon-mull.c",
3887    "src/qs8-igemm/gen/1x16c8-minmax-rndnu-neon-mlal.c",
3888    "src/qs8-igemm/gen/1x16c8-minmax-rndnu-neon-mull.c",
3889    "src/qs8-igemm/gen/1x16c16-minmax-rndnu-neon-mlal.c",
3890    "src/qs8-igemm/gen/2x8-minmax-rndnu-neon-mlal-lane-prfm.c",
3891    "src/qs8-igemm/gen/2x8-minmax-rndnu-neon-mlal-lane.c",
3892    "src/qs8-igemm/gen/2x8-minmax-rndnu-neon-mull-addw-dup.c",
3893    "src/qs8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-dup.c",
3894    "src/qs8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-ld1r.c",
3895    "src/qs8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-ld2r.c",
3896    "src/qs8-igemm/gen/2x8c2-minmax-fp32-neon-mlal-ld4r.c",
3897    "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mlal-dup.c",
3898    "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mlal-ld1r.c",
3899    "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mlal-ld2r.c",
3900    "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mlal-ld4r.c",
3901    "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mull-dup.c",
3902    "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mull-ld1r.c",
3903    "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mull-ld2r.c",
3904    "src/qs8-igemm/gen/2x8c2-minmax-rndnu-neon-mull-ld4r.c",
3905    "src/qs8-igemm/gen/2x8c2s4-minmax-fp32-neon-mlal.c",
3906    "src/qs8-igemm/gen/2x8c2s4-minmax-rndnu-neon-mlal.c",
3907    "src/qs8-igemm/gen/2x8c2s4-minmax-rndnu-neon-mull.c",
3908    "src/qs8-igemm/gen/2x8c4-minmax-fp32-neon-mlal-dup.c",
3909    "src/qs8-igemm/gen/2x8c4-minmax-fp32-neon-mlal-ld1r.c",
3910    "src/qs8-igemm/gen/2x8c4-minmax-fp32-neon-mlal-ld2r.c",
3911    "src/qs8-igemm/gen/2x8c4-minmax-rndnu-neon-mlal-dup.c",
3912    "src/qs8-igemm/gen/2x8c4-minmax-rndnu-neon-mlal-ld1r.c",
3913    "src/qs8-igemm/gen/2x8c4-minmax-rndnu-neon-mlal-ld2r.c",
3914    "src/qs8-igemm/gen/2x8c4-minmax-rndnu-neon-mull-dup.c",
3915    "src/qs8-igemm/gen/2x8c4-minmax-rndnu-neon-mull-ld1r.c",
3916    "src/qs8-igemm/gen/2x8c4-minmax-rndnu-neon-mull-ld2r.c",
3917    "src/qs8-igemm/gen/2x8c4s2-minmax-fp32-neon-mlal.c",
3918    "src/qs8-igemm/gen/2x8c4s2-minmax-rndnu-neon-mlal.c",
3919    "src/qs8-igemm/gen/2x8c4s2-minmax-rndnu-neon-mull.c",
3920    "src/qs8-igemm/gen/2x8c8-minmax-fp32-neon-mlal.c",
3921    "src/qs8-igemm/gen/2x8c8-minmax-rndnu-neon-mlal.c",
3922    "src/qs8-igemm/gen/2x8c8-minmax-rndnu-neon-mull.c",
3923    "src/qs8-igemm/gen/2x8c16-minmax-rndnu-neon-mlal.c",
3924    "src/qs8-igemm/gen/2x16-minmax-rndnu-neon-mlal-lane-prfm.c",
3925    "src/qs8-igemm/gen/2x16-minmax-rndnu-neon-mlal-lane.c",
3926    "src/qs8-igemm/gen/2x16-minmax-rndnu-neon-mull-addw-dup.c",
3927    "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mlal-dup.c",
3928    "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mlal-ld1r.c",
3929    "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mlal-ld2r.c",
3930    "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mlal-ld4r.c",
3931    "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mull-dup.c",
3932    "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mull-ld1r.c",
3933    "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mull-ld2r.c",
3934    "src/qs8-igemm/gen/2x16c2-minmax-rndnu-neon-mull-ld4r.c",
3935    "src/qs8-igemm/gen/2x16c2s4-minmax-rndnu-neon-mlal.c",
3936    "src/qs8-igemm/gen/2x16c2s4-minmax-rndnu-neon-mull.c",
3937    "src/qs8-igemm/gen/2x16c4-minmax-rndnu-neon-mlal-dup.c",
3938    "src/qs8-igemm/gen/2x16c4-minmax-rndnu-neon-mlal-ld1r.c",
3939    "src/qs8-igemm/gen/2x16c4-minmax-rndnu-neon-mlal-ld2r.c",
3940    "src/qs8-igemm/gen/2x16c4-minmax-rndnu-neon-mull-dup.c",
3941    "src/qs8-igemm/gen/2x16c4-minmax-rndnu-neon-mull-ld1r.c",
3942    "src/qs8-igemm/gen/2x16c4-minmax-rndnu-neon-mull-ld2r.c",
3943    "src/qs8-igemm/gen/2x16c4s2-minmax-rndnu-neon-mlal.c",
3944    "src/qs8-igemm/gen/2x16c4s2-minmax-rndnu-neon-mull.c",
3945    "src/qs8-igemm/gen/2x16c8-minmax-rndnu-neon-mlal.c",
3946    "src/qs8-igemm/gen/2x16c8-minmax-rndnu-neon-mull.c",
3947    "src/qs8-igemm/gen/2x16c16-minmax-rndnu-neon-mlal.c",
3948    "src/qs8-igemm/gen/3x8-minmax-rndnu-neon-mlal-lane-prfm.c",
3949    "src/qs8-igemm/gen/3x8-minmax-rndnu-neon-mlal-lane.c",
3950    "src/qs8-igemm/gen/3x8-minmax-rndnu-neon-mull-addw-dup.c",
3951    "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mlal-dup.c",
3952    "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mlal-ld1r.c",
3953    "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mlal-ld2r.c",
3954    "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mlal-ld4r.c",
3955    "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mull-dup.c",
3956    "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mull-ld1r.c",
3957    "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mull-ld2r.c",
3958    "src/qs8-igemm/gen/3x8c2-minmax-rndnu-neon-mull-ld4r.c",
3959    "src/qs8-igemm/gen/3x8c2s4-minmax-rndnu-neon-mlal.c",
3960    "src/qs8-igemm/gen/3x8c2s4-minmax-rndnu-neon-mull.c",
3961    "src/qs8-igemm/gen/3x8c4-minmax-rndnu-neon-mlal-dup.c",
3962    "src/qs8-igemm/gen/3x8c4-minmax-rndnu-neon-mlal-ld1r.c",
3963    "src/qs8-igemm/gen/3x8c4-minmax-rndnu-neon-mlal-ld2r.c",
3964    "src/qs8-igemm/gen/3x8c4-minmax-rndnu-neon-mull-dup.c",
3965    "src/qs8-igemm/gen/3x8c4-minmax-rndnu-neon-mull-ld1r.c",
3966    "src/qs8-igemm/gen/3x8c4-minmax-rndnu-neon-mull-ld2r.c",
3967    "src/qs8-igemm/gen/3x8c4s2-minmax-rndnu-neon-mlal.c",
3968    "src/qs8-igemm/gen/3x8c4s2-minmax-rndnu-neon-mull.c",
3969    "src/qs8-igemm/gen/3x8c8-minmax-rndnu-neon-mlal.c",
3970    "src/qs8-igemm/gen/3x8c8-minmax-rndnu-neon-mull.c",
3971    "src/qs8-igemm/gen/3x8c16-minmax-rndnu-neon-mlal.c",
3972    "src/qs8-igemm/gen/3x16-minmax-rndnu-neon-mlal-lane-prfm.c",
3973    "src/qs8-igemm/gen/3x16-minmax-rndnu-neon-mlal-lane.c",
3974    "src/qs8-igemm/gen/3x16-minmax-rndnu-neon-mull-addw-dup.c",
3975    "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mlal-dup.c",
3976    "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mlal-ld1r.c",
3977    "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mlal-ld2r.c",
3978    "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mlal-ld4r.c",
3979    "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mull-dup.c",
3980    "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mull-ld1r.c",
3981    "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mull-ld2r.c",
3982    "src/qs8-igemm/gen/3x16c2-minmax-rndnu-neon-mull-ld4r.c",
3983    "src/qs8-igemm/gen/3x16c2s4-minmax-rndnu-neon-mlal.c",
3984    "src/qs8-igemm/gen/3x16c2s4-minmax-rndnu-neon-mull.c",
3985    "src/qs8-igemm/gen/3x16c4-minmax-rndnu-neon-mlal-dup.c",
3986    "src/qs8-igemm/gen/3x16c4-minmax-rndnu-neon-mlal-ld1r.c",
3987    "src/qs8-igemm/gen/3x16c4-minmax-rndnu-neon-mlal-ld2r.c",
3988    "src/qs8-igemm/gen/3x16c4-minmax-rndnu-neon-mull-dup.c",
3989    "src/qs8-igemm/gen/3x16c4-minmax-rndnu-neon-mull-ld1r.c",
3990    "src/qs8-igemm/gen/3x16c4-minmax-rndnu-neon-mull-ld2r.c",
3991    "src/qs8-igemm/gen/3x16c4s2-minmax-rndnu-neon-mlal.c",
3992    "src/qs8-igemm/gen/3x16c4s2-minmax-rndnu-neon-mull.c",
3993    "src/qs8-igemm/gen/3x16c8-minmax-rndnu-neon-mlal.c",
3994    "src/qs8-igemm/gen/3x16c8-minmax-rndnu-neon-mull.c",
3995    "src/qs8-igemm/gen/3x16c16-minmax-rndnu-neon-mlal.c",
3996    "src/qs8-igemm/gen/4x8-minmax-rndnu-neon-mlal-lane-prfm.c",
3997    "src/qs8-igemm/gen/4x8-minmax-rndnu-neon-mlal-lane.c",
3998    "src/qs8-igemm/gen/4x8-minmax-rndnu-neon-mull-addw-dup.c",
3999    "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mlal-dup.c",
4000    "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mlal-ld1r.c",
4001    "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mlal-ld2r.c",
4002    "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mlal-ld4r.c",
4003    "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mull-dup.c",
4004    "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mull-ld1r.c",
4005    "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mull-ld2r.c",
4006    "src/qs8-igemm/gen/4x8c2-minmax-rndnu-neon-mull-ld4r.c",
4007    "src/qs8-igemm/gen/4x8c2s4-minmax-rndnu-neon-mlal.c",
4008    "src/qs8-igemm/gen/4x8c2s4-minmax-rndnu-neon-mull.c",
4009    "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neon-mlal-dup.c",
4010    "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neon-mlal-ld1r.c",
4011    "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neon-mlal-ld2r.c",
4012    "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neon-mull-dup.c",
4013    "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neon-mull-ld1r.c",
4014    "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neon-mull-ld2r.c",
4015    "src/qs8-igemm/gen/4x8c4s2-minmax-rndnu-neon-mlal.c",
4016    "src/qs8-igemm/gen/4x8c4s2-minmax-rndnu-neon-mull.c",
4017    "src/qs8-igemm/gen/4x8c8-minmax-rndnu-neon-mlal.c",
4018    "src/qs8-igemm/gen/4x8c8-minmax-rndnu-neon-mull.c",
4019    "src/qs8-igemm/gen/4x8c16-minmax-rndnu-neon-mlal.c",
4020    "src/qs8-igemm/gen/4x16-minmax-fp32-neon-mlal-lane.c",
4021    "src/qs8-igemm/gen/4x16-minmax-rndnu-neon-mlal-lane-prfm.c",
4022    "src/qs8-igemm/gen/4x16-minmax-rndnu-neon-mlal-lane.c",
4023    "src/qs8-igemm/gen/4x16-minmax-rndnu-neon-mull-addw-dup.c",
4024    "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mlal-dup.c",
4025    "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mlal-ld1r.c",
4026    "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mlal-ld2r.c",
4027    "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mlal-ld4r.c",
4028    "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mull-dup.c",
4029    "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mull-ld1r.c",
4030    "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mull-ld2r.c",
4031    "src/qs8-igemm/gen/4x16c2-minmax-rndnu-neon-mull-ld4r.c",
4032    "src/qs8-igemm/gen/4x16c2s4-minmax-rndnu-neon-mlal.c",
4033    "src/qs8-igemm/gen/4x16c2s4-minmax-rndnu-neon-mull.c",
4034    "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neon-mlal-dup.c",
4035    "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neon-mlal-ld1r.c",
4036    "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neon-mlal-ld2r.c",
4037    "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neon-mull-dup.c",
4038    "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neon-mull-ld1r.c",
4039    "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neon-mull-ld2r.c",
4040    "src/qs8-igemm/gen/4x16c4s2-minmax-rndnu-neon-mlal.c",
4041    "src/qs8-igemm/gen/4x16c4s2-minmax-rndnu-neon-mull.c",
4042    "src/qs8-igemm/gen/4x16c8-minmax-rndnu-neon-mlal.c",
4043    "src/qs8-igemm/gen/4x16c8-minmax-rndnu-neon-mull.c",
4044    "src/qs8-igemm/gen/4x16c16-minmax-rndnu-neon-mlal.c",
4045    "src/qs8-igemm/gen/6x8-minmax-rndnu-neon-mlal-lane-prfm.c",
4046    "src/qs8-igemm/gen/6x8-minmax-rndnu-neon-mlal-lane.c",
4047    "src/qs8-igemm/gen/6x16-minmax-rndnu-neon-mlal-lane-prfm.c",
4048    "src/qs8-igemm/gen/6x16-minmax-rndnu-neon-mlal-lane.c",
4049    "src/qs8-requantization/fp32-neon.c",
4050    "src/qs8-requantization/gemmlowp-neon.c",
4051    "src/qs8-requantization/rndna-neon.c",
4052    "src/qs8-requantization/rndnu-neon-mull.c",
4053    "src/qs8-requantization/rndnu-neon-qdmulh.c",
4054    "src/qs8-vadd/gen/minmax-neon-ld64-x8.c",
4055    "src/qs8-vadd/gen/minmax-neon-ld64-x16.c",
4056    "src/qs8-vadd/gen/minmax-neon-ld64-x24.c",
4057    "src/qs8-vadd/gen/minmax-neon-ld64-x32.c",
4058    "src/qs8-vadd/gen/minmax-neon-ld128-x16.c",
4059    "src/qs8-vadd/gen/minmax-neon-ld128-x32.c",
4060    "src/qs8-vaddc/gen/minmax-neon-ld64-x8.c",
4061    "src/qs8-vaddc/gen/minmax-neon-ld64-x16.c",
4062    "src/qs8-vaddc/gen/minmax-neon-ld64-x24.c",
4063    "src/qs8-vaddc/gen/minmax-neon-ld64-x32.c",
4064    "src/qs8-vaddc/gen/minmax-neon-ld128-x16.c",
4065    "src/qs8-vaddc/gen/minmax-neon-ld128-x32.c",
4066    "src/qs8-vcvt/gen/vcvt-neon-x8.c",
4067    "src/qs8-vcvt/gen/vcvt-neon-x16.c",
4068    "src/qs8-vcvt/gen/vcvt-neon-x32.c",
4069    "src/qs8-vlrelu/gen/vlrelu-neon-x8.c",
4070    "src/qs8-vlrelu/gen/vlrelu-neon-x16.c",
4071    "src/qs8-vlrelu/gen/vlrelu-neon-x32.c",
4072    "src/qs8-vmul/gen/minmax-fp32-neon-ld64-x8.c",
4073    "src/qs8-vmul/gen/minmax-fp32-neon-ld64-x16.c",
4074    "src/qs8-vmul/gen/minmax-fp32-neon-ld128-x16.c",
4075    "src/qs8-vmul/gen/minmax-rndnu-neon-ld64-x8.c",
4076    "src/qs8-vmul/gen/minmax-rndnu-neon-ld64-x16.c",
4077    "src/qs8-vmul/gen/minmax-rndnu-neon-ld128-x16.c",
4078    "src/qs8-vmulc/gen/minmax-fp32-neon-ld64-x8.c",
4079    "src/qs8-vmulc/gen/minmax-fp32-neon-ld64-x16.c",
4080    "src/qs8-vmulc/gen/minmax-fp32-neon-ld128-x16.c",
4081    "src/qs8-vmulc/gen/minmax-rndnu-neon-ld64-x8.c",
4082    "src/qs8-vmulc/gen/minmax-rndnu-neon-ld64-x16.c",
4083    "src/qs8-vmulc/gen/minmax-rndnu-neon-ld128-x16.c",
4084    "src/qu8-avgpool/9p8x-minmax-neon-c8.c",
4085    "src/qu8-avgpool/9x-minmax-neon-c8.c",
4086    "src/qu8-dwconv/gen/up8x9-minmax-fp32-neon-mul16.c",
4087    "src/qu8-dwconv/gen/up8x9-minmax-rndnu-neon-mul8.c",
4088    "src/qu8-dwconv/gen/up8x9-minmax-rndnu-neon-mul16.c",
4089    "src/qu8-dwconv/gen/up8x25-minmax-fp32-neon-mul16.c",
4090    "src/qu8-dwconv/gen/up8x25-minmax-rndnu-neon-mul8.c",
4091    "src/qu8-dwconv/gen/up8x25-minmax-rndnu-neon-mul16.c",
4092    "src/qu8-dwconv/gen/up16x9-minmax-fp32-neon-mul16.c",
4093    "src/qu8-dwconv/gen/up16x9-minmax-rndnu-neon-mul8.c",
4094    "src/qu8-dwconv/gen/up16x9-minmax-rndnu-neon-mul16.c",
4095    "src/qu8-dwconv/gen/up16x25-minmax-fp32-neon-mul16.c",
4096    "src/qu8-dwconv/gen/up16x25-minmax-rndnu-neon-mul8.c",
4097    "src/qu8-dwconv/gen/up16x25-minmax-rndnu-neon-mul16.c",
4098    "src/qu8-dwconv/gen/up24x9-minmax-fp32-neon-mul16.c",
4099    "src/qu8-dwconv/gen/up24x9-minmax-rndnu-neon-mul8.c",
4100    "src/qu8-dwconv/gen/up24x9-minmax-rndnu-neon-mul16.c",
4101    "src/qu8-dwconv/gen/up24x25-minmax-fp32-neon-mul16.c",
4102    "src/qu8-dwconv/gen/up24x25-minmax-rndnu-neon-mul8.c",
4103    "src/qu8-dwconv/gen/up24x25-minmax-rndnu-neon-mul16.c",
4104    "src/qu8-dwconv/gen/up32x9-minmax-fp32-neon-mul16.c",
4105    "src/qu8-dwconv/gen/up32x9-minmax-rndnu-neon-mul8.c",
4106    "src/qu8-dwconv/gen/up32x9-minmax-rndnu-neon-mul16.c",
4107    "src/qu8-dwconv/gen/up32x25-minmax-fp32-neon-mul16.c",
4108    "src/qu8-dwconv/gen/up32x25-minmax-rndnu-neon-mul8.c",
4109    "src/qu8-dwconv/gen/up32x25-minmax-rndnu-neon-mul16.c",
4110    "src/qu8-f32-vcvt/gen/vcvt-neon-x8.c",
4111    "src/qu8-f32-vcvt/gen/vcvt-neon-x16.c",
4112    "src/qu8-f32-vcvt/gen/vcvt-neon-x24.c",
4113    "src/qu8-f32-vcvt/gen/vcvt-neon-x32.c",
4114    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neon-c8.c",
4115    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neon-c16.c",
4116    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neon-c24.c",
4117    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neon-c32.c",
4118    "src/qu8-gavgpool/gen/7p7x-minmax-rndnu-neon-c8.c",
4119    "src/qu8-gavgpool/gen/7p7x-minmax-rndnu-neon-c16.c",
4120    "src/qu8-gavgpool/gen/7p7x-minmax-rndnu-neon-c24.c",
4121    "src/qu8-gavgpool/gen/7p7x-minmax-rndnu-neon-c32.c",
4122    "src/qu8-gavgpool/gen/7x-minmax-fp32-neon-c8.c",
4123    "src/qu8-gavgpool/gen/7x-minmax-fp32-neon-c16.c",
4124    "src/qu8-gavgpool/gen/7x-minmax-fp32-neon-c24.c",
4125    "src/qu8-gavgpool/gen/7x-minmax-fp32-neon-c32.c",
4126    "src/qu8-gavgpool/gen/7x-minmax-rndnu-neon-c8.c",
4127    "src/qu8-gavgpool/gen/7x-minmax-rndnu-neon-c16.c",
4128    "src/qu8-gavgpool/gen/7x-minmax-rndnu-neon-c24.c",
4129    "src/qu8-gavgpool/gen/7x-minmax-rndnu-neon-c32.c",
4130    "src/qu8-gemm/gen/1x8-minmax-fp32-neon-mlal-lane.c",
4131    "src/qu8-gemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c",
4132    "src/qu8-gemm/gen/1x16-minmax-fp32-neon-mlal-lane.c",
4133    "src/qu8-gemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c",
4134    "src/qu8-gemm/gen/2x8-minmax-rndnu-neon-mlal-lane.c",
4135    "src/qu8-gemm/gen/2x16-minmax-rndnu-neon-mlal-lane.c",
4136    "src/qu8-gemm/gen/3x8-minmax-rndnu-neon-mlal-lane.c",
4137    "src/qu8-gemm/gen/3x16-minmax-rndnu-neon-mlal-lane.c",
4138    "src/qu8-gemm/gen/4x8-minmax-fp32-neon-mlal-lane.c",
4139    "src/qu8-gemm/gen/4x8-minmax-rndnu-neon-mlal-lane.c",
4140    "src/qu8-gemm/gen/4x16-minmax-fp32-neon-mlal-lane.c",
4141    "src/qu8-gemm/gen/4x16-minmax-rndnu-neon-mlal-lane.c",
4142    "src/qu8-gemm/gen/6x8-minmax-rndnu-neon-mlal-lane.c",
4143    "src/qu8-gemm/gen/6x16-minmax-rndnu-neon-mlal-lane.c",
4144    "src/qu8-igemm/gen/1x8-minmax-fp32-neon-mlal-lane.c",
4145    "src/qu8-igemm/gen/1x8-minmax-rndnu-neon-mlal-lane.c",
4146    "src/qu8-igemm/gen/1x16-minmax-fp32-neon-mlal-lane.c",
4147    "src/qu8-igemm/gen/1x16-minmax-rndnu-neon-mlal-lane.c",
4148    "src/qu8-igemm/gen/2x8-minmax-rndnu-neon-mlal-lane.c",
4149    "src/qu8-igemm/gen/2x16-minmax-rndnu-neon-mlal-lane.c",
4150    "src/qu8-igemm/gen/3x8-minmax-rndnu-neon-mlal-lane.c",
4151    "src/qu8-igemm/gen/3x16-minmax-rndnu-neon-mlal-lane.c",
4152    "src/qu8-igemm/gen/4x8-minmax-fp32-neon-mlal-lane.c",
4153    "src/qu8-igemm/gen/4x8-minmax-rndnu-neon-mlal-lane.c",
4154    "src/qu8-igemm/gen/4x16-minmax-fp32-neon-mlal-lane.c",
4155    "src/qu8-igemm/gen/4x16-minmax-rndnu-neon-mlal-lane.c",
4156    "src/qu8-igemm/gen/6x8-minmax-rndnu-neon-mlal-lane.c",
4157    "src/qu8-igemm/gen/6x16-minmax-rndnu-neon-mlal-lane.c",
4158    "src/qu8-requantization/fp32-neon.c",
4159    "src/qu8-requantization/gemmlowp-neon.c",
4160    "src/qu8-requantization/rndna-neon.c",
4161    "src/qu8-vadd/gen/minmax-neon-ld64-x8.c",
4162    "src/qu8-vadd/gen/minmax-neon-ld64-x16.c",
4163    "src/qu8-vadd/gen/minmax-neon-ld64-x32.c",
4164    "src/qu8-vadd/gen/minmax-neon-ld128-x16.c",
4165    "src/qu8-vaddc/gen/minmax-neon-ld64-x8.c",
4166    "src/qu8-vaddc/gen/minmax-neon-ld64-x16.c",
4167    "src/qu8-vaddc/gen/minmax-neon-ld64-x32.c",
4168    "src/qu8-vaddc/gen/minmax-neon-ld128-x16.c",
4169    "src/qu8-vcvt/gen/vcvt-neon-x8.c",
4170    "src/qu8-vcvt/gen/vcvt-neon-x16.c",
4171    "src/qu8-vcvt/gen/vcvt-neon-x32.c",
4172    "src/qu8-vlrelu/gen/vlrelu-neon-x8.c",
4173    "src/qu8-vlrelu/gen/vlrelu-neon-x16.c",
4174    "src/qu8-vlrelu/gen/vlrelu-neon-x32.c",
4175    "src/qu8-vmul/gen/minmax-fp32-neon-ld64-x8.c",
4176    "src/qu8-vmul/gen/minmax-fp32-neon-ld64-x16.c",
4177    "src/qu8-vmul/gen/minmax-fp32-neon-ld128-x16.c",
4178    "src/qu8-vmul/gen/minmax-rndnu-neon-ld64-x8.c",
4179    "src/qu8-vmul/gen/minmax-rndnu-neon-ld64-x16.c",
4180    "src/qu8-vmul/gen/minmax-rndnu-neon-ld128-x16.c",
4181    "src/qu8-vmulc/gen/minmax-fp32-neon-ld64-x8.c",
4182    "src/qu8-vmulc/gen/minmax-fp32-neon-ld64-x16.c",
4183    "src/qu8-vmulc/gen/minmax-fp32-neon-ld128-x16.c",
4184    "src/qu8-vmulc/gen/minmax-rndnu-neon-ld64-x8.c",
4185    "src/qu8-vmulc/gen/minmax-rndnu-neon-ld64-x16.c",
4186    "src/qu8-vmulc/gen/minmax-rndnu-neon-ld128-x16.c",
4187    "src/s8-ibilinear/gen/neon-c8.c",
4188    "src/s8-ibilinear/gen/neon-c16.c",
4189    "src/s8-maxpool/2p2x-minmax-neon-c16.c",
4190    "src/s8-maxpool/4p3x-minmax-neon-c16.c",
4191    "src/s8-maxpool/9p8x-minmax-neon-c16.c",
4192    "src/s8-vclamp/neon-x64.c",
4193    "src/s16-rmaxabs/gen/neon-x8.c",
4194    "src/s16-rmaxabs/gen/neon-x16.c",
4195    "src/s16-rmaxabs/gen/neon-x24.c",
4196    "src/s16-rmaxabs/gen/neon-x32.c",
4197    "src/s16-vlshift/gen/neon-x8.c",
4198    "src/s16-vlshift/gen/neon-x16.c",
4199    "src/s16-vlshift/gen/neon-x24.c",
4200    "src/s16-vlshift/gen/neon-x32.c",
4201    "src/s16-window/gen/neon-shift12-x8.c",
4202    "src/s16-window/gen/neon-shift12-x16.c",
4203    "src/s16-window/gen/neon-shift12-x24.c",
4204    "src/s16-window/gen/neon-shift12-x32.c",
4205    "src/s16-window/gen/neon-shift15-x8.c",
4206    "src/s16-window/gen/neon-shift15-x16.c",
4207    "src/s16-window/gen/neon-shift15-x24.c",
4208    "src/s16-window/gen/neon-shift15-x32.c",
4209    "src/s16-window/gen/neon-x8.c",
4210    "src/s16-window/gen/neon-x16.c",
4211    "src/s16-window/gen/neon-x24.c",
4212    "src/s16-window/gen/neon-x32.c",
4213    "src/u8-ibilinear/gen/neon-c8.c",
4214    "src/u8-ibilinear/gen/neon-c16.c",
4215    "src/u8-maxpool/9p8x-minmax-neon-c16.c",
4216    "src/u8-rmax/neon.c",
4217    "src/u8-vclamp/neon-x64.c",
4218    "src/u32-filterbank-accumulate/gen/neon-x1.c",
4219    "src/u32-filterbank-accumulate/gen/neon-x2.c",
4220    "src/xx-fill/neon-x64.c",
4221    "src/xx-pad/neon.c",
4222    "src/x8-transposec/gen/8x8-multi-dec-zip-neon.c",
4223    "src/x8-transposec/gen/8x8-multi-mov-zip-neon.c",
4224    "src/x8-transposec/gen/8x8-multi-switch-zip-neon.c",
4225    "src/x8-transposec/gen/8x8-reuse-dec-zip-neon.c",
4226    "src/x8-transposec/gen/8x8-reuse-mov-zip-neon.c",
4227    "src/x8-transposec/gen/8x8-reuse-multi-zip-neon.c",
4228    "src/x8-transposec/gen/8x8-reuse-switch-zip-neon.c",
4229    "src/x8-transposec/gen/16x16-reuse-dec-zip-neon.c",
4230    "src/x8-transposec/gen/16x16-reuse-mov-zip-neon.c",
4231    "src/x8-transposec/gen/16x16-reuse-switch-zip-neon.c",
4232    "src/x8-zip/xm-neon.c",
4233    "src/x8-zip/x2-neon.c",
4234    "src/x8-zip/x3-neon.c",
4235    "src/x8-zip/x4-neon.c",
4236    "src/x16-transposec/gen/4x4-multi-dec-zip-neon.c",
4237    "src/x16-transposec/gen/4x4-multi-mov-zip-neon.c",
4238    "src/x16-transposec/gen/4x4-multi-multi-zip-neon.c",
4239    "src/x16-transposec/gen/4x4-multi-switch-zip-neon.c",
4240    "src/x16-transposec/gen/4x4-reuse-dec-zip-neon.c",
4241    "src/x16-transposec/gen/4x4-reuse-mov-zip-neon.c",
4242    "src/x16-transposec/gen/4x4-reuse-multi-zip-neon.c",
4243    "src/x16-transposec/gen/4x4-reuse-switch-zip-neon.c",
4244    "src/x16-transposec/gen/8x8-multi-dec-zip-neon.c",
4245    "src/x16-transposec/gen/8x8-multi-mov-zip-neon.c",
4246    "src/x16-transposec/gen/8x8-multi-switch-zip-neon.c",
4247    "src/x16-transposec/gen/8x8-reuse-dec-zip-neon.c",
4248    "src/x16-transposec/gen/8x8-reuse-mov-zip-neon.c",
4249    "src/x16-transposec/gen/8x8-reuse-multi-zip-neon.c",
4250    "src/x16-transposec/gen/8x8-reuse-switch-zip-neon.c",
4251    "src/x24-transposec/2x2-neon-tbl.c",
4252    "src/x32-packx/x4-neon-st4.c",
4253    "src/x32-transposec/gen/2x2-multi-dec-zip-neon.c",
4254    "src/x32-transposec/gen/2x2-multi-mov-zip-neon.c",
4255    "src/x32-transposec/gen/2x2-multi-multi-zip-neon.c",
4256    "src/x32-transposec/gen/2x2-multi-switch-zip-neon.c",
4257    "src/x32-transposec/gen/2x2-reuse-dec-zip-neon.c",
4258    "src/x32-transposec/gen/2x2-reuse-mov-zip-neon.c",
4259    "src/x32-transposec/gen/2x2-reuse-multi-zip-neon.c",
4260    "src/x32-transposec/gen/2x2-reuse-switch-zip-neon.c",
4261    "src/x32-transposec/gen/4x4-multi-dec-zip-neon.c",
4262    "src/x32-transposec/gen/4x4-multi-mov-zip-neon.c",
4263    "src/x32-transposec/gen/4x4-multi-multi-zip-neon.c",
4264    "src/x32-transposec/gen/4x4-multi-switch-zip-neon.c",
4265    "src/x32-transposec/gen/4x4-reuse-dec-zip-neon.c",
4266    "src/x32-transposec/gen/4x4-reuse-mov-zip-neon.c",
4267    "src/x32-transposec/gen/4x4-reuse-multi-zip-neon.c",
4268    "src/x32-transposec/gen/4x4-reuse-switch-zip-neon.c",
4269    "src/x32-unpool/neon.c",
4270    "src/x32-zip/xm-neon.c",
4271    "src/x32-zip/x2-neon.c",
4272    "src/x32-zip/x3-neon.c",
4273    "src/x32-zip/x4-neon.c",
4274]
4275
4276PROD_NEONFP16_MICROKERNEL_SRCS = [
4277    "src/f16-f32-vcvt/gen/vcvt-neonfp16-x16.c",
4278    "src/f32-f16-vcvt/gen/vcvt-neonfp16-x16.c",
4279]
4280
4281ALL_NEONFP16_MICROKERNEL_SRCS = [
4282    "src/f16-f32-vcvt/gen/vcvt-neonfp16-x8.c",
4283    "src/f16-f32-vcvt/gen/vcvt-neonfp16-x16.c",
4284    "src/f32-f16-vcvt/gen/vcvt-neonfp16-x8.c",
4285    "src/f32-f16-vcvt/gen/vcvt-neonfp16-x16.c",
4286    "src/math/cvt-f16-f32-neonfp16.c",
4287    "src/math/cvt-f32-f16-neonfp16.c",
4288]
4289
4290PROD_NEONFMA_MICROKERNEL_SRCS = [
4291    "src/f32-dwconv/gen/up8x3-minmax-neonfma.c",
4292    "src/f32-dwconv/gen/up8x4-minmax-neonfma.c",
4293    "src/f32-dwconv/gen/up8x9-minmax-neonfma.c",
4294    "src/f32-dwconv/gen/up8x25-minmax-neonfma-acc2.c",
4295    "src/f32-gemm/gen/1x8s4-minmax-neonfma.c",
4296    "src/f32-gemm/gen/6x8s4-minmax-neonfma.c",
4297    "src/f32-ibilinear-chw/gen/neonfma-p8.c",
4298    "src/f32-ibilinear/gen/neonfma-c8.c",
4299    "src/f32-igemm/gen/1x8s4-minmax-neonfma.c",
4300    "src/f32-igemm/gen/6x8s4-minmax-neonfma.c",
4301    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x16.c",
4302    "src/f32-spmm/gen/32x1-minmax-neonfma-pipelined.c",
4303    "src/f32-velu/gen/velu-neonfma-rr1-lut16-p3-x16.c",
4304    "src/f32-velu/gen/velu-neonfma-rr1-p6-x8.c",
4305    "src/f32-vmulcaddc/gen/c4-minmax-neonfma-2x.c",
4306    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x16.c",
4307]
4308
4309ALL_NEONFMA_MICROKERNEL_SRCS = [
4310    "src/bf16-gemm/gen/1x4c8-minmax-neonfma-shland.c",
4311    "src/bf16-gemm/gen/2x4c8-minmax-neonfma-shland.c",
4312    "src/bf16-gemm/gen/3x4c8-minmax-neonfma-shland.c",
4313    "src/bf16-gemm/gen/4x4c8-minmax-neonfma-shland.c",
4314    "src/bf16-gemm/gen/5x4c8-minmax-neonfma-shland.c",
4315    "src/f32-dwconv/gen/up4x3-minmax-neonfma-acc2.c",
4316    "src/f32-dwconv/gen/up4x3-minmax-neonfma.c",
4317    "src/f32-dwconv/gen/up4x4-minmax-neonfma-acc2.c",
4318    "src/f32-dwconv/gen/up4x4-minmax-neonfma.c",
4319    "src/f32-dwconv/gen/up4x9-minmax-neonfma-acc2.c",
4320    "src/f32-dwconv/gen/up4x9-minmax-neonfma.c",
4321    "src/f32-dwconv/gen/up4x25-minmax-neonfma-acc2.c",
4322    "src/f32-dwconv/gen/up4x25-minmax-neonfma.c",
4323    "src/f32-dwconv/gen/up8x3-minmax-neonfma-acc2.c",
4324    "src/f32-dwconv/gen/up8x3-minmax-neonfma.c",
4325    "src/f32-dwconv/gen/up8x4-minmax-neonfma-acc2.c",
4326    "src/f32-dwconv/gen/up8x4-minmax-neonfma.c",
4327    "src/f32-dwconv/gen/up8x9-minmax-neonfma-acc2.c",
4328    "src/f32-dwconv/gen/up8x9-minmax-neonfma.c",
4329    "src/f32-dwconv/gen/up8x25-minmax-neonfma-acc2.c",
4330    "src/f32-dwconv/gen/up8x25-minmax-neonfma.c",
4331    "src/f32-dwconv/gen/up16x3-minmax-neon-acc2.c",
4332    "src/f32-dwconv/gen/up16x3-minmax-neon.c",
4333    "src/f32-dwconv/gen/up16x3-minmax-neonfma-acc2.c",
4334    "src/f32-dwconv/gen/up16x3-minmax-neonfma.c",
4335    "src/f32-dwconv/gen/up16x4-minmax-neon-acc2.c",
4336    "src/f32-dwconv/gen/up16x4-minmax-neon.c",
4337    "src/f32-dwconv/gen/up16x4-minmax-neonfma-acc2.c",
4338    "src/f32-dwconv/gen/up16x4-minmax-neonfma.c",
4339    "src/f32-dwconv/gen/up16x9-minmax-neon-acc2.c",
4340    "src/f32-dwconv/gen/up16x9-minmax-neon.c",
4341    "src/f32-dwconv/gen/up16x9-minmax-neonfma-acc2.c",
4342    "src/f32-dwconv/gen/up16x9-minmax-neonfma.c",
4343    "src/f32-dwconv/gen/up16x25-minmax-neon-acc2.c",
4344    "src/f32-dwconv/gen/up16x25-minmax-neon.c",
4345    "src/f32-dwconv/gen/up16x25-minmax-neonfma-acc2.c",
4346    "src/f32-dwconv/gen/up16x25-minmax-neonfma.c",
4347    "src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-dup-ld64.c",
4348    "src/f32-gemm/gen-inc/1x8s4inc-minmax-neonfma.c",
4349    "src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld64.c",
4350    "src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-dup-ld128.c",
4351    "src/f32-gemm/gen-inc/4x8s4inc-minmax-neonfma.c",
4352    "src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-dup-ld64.c",
4353    "src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-dup-ld128.c",
4354    "src/f32-gemm/gen-inc/6x8s4inc-minmax-neonfma.c",
4355    "src/f32-gemm/gen-inc/8x8s4inc-minmax-neonfma.c",
4356    "src/f32-gemm/gen/1x8-minmax-neonfma-dup-ld64.c",
4357    "src/f32-gemm/gen/1x8s4-minmax-neonfma.c",
4358    "src/f32-gemm/gen/4x8-minmax-neonfma-dup-ld64.c",
4359    "src/f32-gemm/gen/4x8-minmax-neonfma-dup-ld128.c",
4360    "src/f32-gemm/gen/4x8s4-minmax-neonfma.c",
4361    "src/f32-gemm/gen/6x8-minmax-neonfma-dup-ld64.c",
4362    "src/f32-gemm/gen/6x8-minmax-neonfma-dup-ld128.c",
4363    "src/f32-gemm/gen/6x8s4-minmax-neonfma.c",
4364    "src/f32-gemm/gen/8x8s4-minmax-neonfma.c",
4365    "src/f32-ibilinear-chw/gen/neonfma-p4.c",
4366    "src/f32-ibilinear-chw/gen/neonfma-p8.c",
4367    "src/f32-ibilinear-chw/gen/neonfma-p16.c",
4368    "src/f32-ibilinear/gen/neonfma-c4.c",
4369    "src/f32-ibilinear/gen/neonfma-c8.c",
4370    "src/f32-igemm/gen/1x8-minmax-neonfma-dup-ld64.c",
4371    "src/f32-igemm/gen/1x8s4-minmax-neonfma.c",
4372    "src/f32-igemm/gen/4x8-minmax-neonfma-dup-ld64.c",
4373    "src/f32-igemm/gen/4x8-minmax-neonfma-dup-ld128.c",
4374    "src/f32-igemm/gen/4x8s4-minmax-neonfma.c",
4375    "src/f32-igemm/gen/6x8-minmax-neonfma-dup-ld64.c",
4376    "src/f32-igemm/gen/6x8-minmax-neonfma-dup-ld128.c",
4377    "src/f32-igemm/gen/6x8s4-minmax-neonfma.c",
4378    "src/f32-igemm/gen/8x8s4-minmax-neonfma.c",
4379    "src/f32-ppmm/gen/4x8-minmax-neonfma.c",
4380    "src/f32-ppmm/gen/8x8-minmax-neonfma.c",
4381    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x4.c",
4382    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x8-acc2.c",
4383    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x8.c",
4384    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x12-acc2.c",
4385    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x12-acc3.c",
4386    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x12.c",
4387    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x16-acc2.c",
4388    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x16-acc4.c",
4389    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x16.c",
4390    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x20-acc2.c",
4391    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x20-acc5.c",
4392    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-lut64-p2-x20.c",
4393    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x4.c",
4394    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x8-acc2.c",
4395    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x8.c",
4396    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x12-acc2.c",
4397    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x12-acc3.c",
4398    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x12.c",
4399    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x16-acc2.c",
4400    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x16-acc4.c",
4401    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x16.c",
4402    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x20-acc2.c",
4403    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x20-acc5.c",
4404    "src/f32-raddstoreexpminusmax/gen/neonfma-rr1-p5-x20.c",
4405    "src/f32-spmm/gen/4x1-minmax-neonfma-pipelined.c",
4406    "src/f32-spmm/gen/4x1-minmax-neonfma-x2.c",
4407    "src/f32-spmm/gen/4x1-minmax-neonfma.c",
4408    "src/f32-spmm/gen/8x1-minmax-neonfma-pipelined.c",
4409    "src/f32-spmm/gen/8x1-minmax-neonfma-x2.c",
4410    "src/f32-spmm/gen/8x1-minmax-neonfma.c",
4411    "src/f32-spmm/gen/12x1-minmax-neonfma.c",
4412    "src/f32-spmm/gen/16x1-minmax-neonfma-pipelined.c",
4413    "src/f32-spmm/gen/16x1-minmax-neonfma-x2.c",
4414    "src/f32-spmm/gen/16x1-minmax-neonfma.c",
4415    "src/f32-spmm/gen/32x1-minmax-neonfma-pipelined.c",
4416    "src/f32-spmm/gen/32x1-minmax-neonfma-x2.c",
4417    "src/f32-spmm/gen/32x1-minmax-neonfma.c",
4418    "src/f32-velu/gen/velu-neonfma-rr1-lut16-p3-x4.c",
4419    "src/f32-velu/gen/velu-neonfma-rr1-lut16-p3-x8.c",
4420    "src/f32-velu/gen/velu-neonfma-rr1-lut16-p3-x12.c",
4421    "src/f32-velu/gen/velu-neonfma-rr1-lut16-p3-x16.c",
4422    "src/f32-velu/gen/velu-neonfma-rr1-lut16-p3-x20.c",
4423    "src/f32-velu/gen/velu-neonfma-rr1-lut16-p3-x24.c",
4424    "src/f32-velu/gen/velu-neonfma-rr1-p6-x4.c",
4425    "src/f32-velu/gen/velu-neonfma-rr1-p6-x8.c",
4426    "src/f32-velu/gen/velu-neonfma-rr1-p6-x12.c",
4427    "src/f32-velu/gen/velu-neonfma-rr1-p6-x16.c",
4428    "src/f32-velu/gen/velu-neonfma-rr1-p6-x20.c",
4429    "src/f32-velu/gen/velu-neonfma-rr1-p6-x24.c",
4430    "src/f32-vmulcaddc/gen/c4-minmax-neonfma-2x.c",
4431    "src/f32-vmulcaddc/gen/c8-minmax-neonfma-2x.c",
4432    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr1recps1fma-x4.c",
4433    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr1recps1fma-x8.c",
4434    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr1recps1fma-x12.c",
4435    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr1recps1fma-x16.c",
4436    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr1recps1fma-x20.c",
4437    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr1recps1fma-x24.c",
4438    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2fma-x4.c",
4439    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2fma-x8.c",
4440    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2fma-x12.c",
4441    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2fma-x16.c",
4442    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2fma-x20.c",
4443    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2fma-x24.c",
4444    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x4.c",
4445    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x8.c",
4446    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x12.c",
4447    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x16.c",
4448    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x20.c",
4449    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-nr2recps-x24.c",
4450    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma-x4.c",
4451    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma-x8.c",
4452    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma-x12.c",
4453    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma-x16.c",
4454    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma-x20.c",
4455    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr1recps1fma-x24.c",
4456    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2fma-x4.c",
4457    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2fma-x8.c",
4458    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2fma-x12.c",
4459    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2fma-x16.c",
4460    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2fma-x20.c",
4461    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2fma-x24.c",
4462    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2recps-x4.c",
4463    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2recps-x8.c",
4464    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2recps-x12.c",
4465    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2recps-x16.c",
4466    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2recps-x20.c",
4467    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-nr2recps-x24.c",
4468    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr1recps1fma-x4.c",
4469    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr1recps1fma-x8.c",
4470    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr1recps1fma-x12.c",
4471    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr1recps1fma-x16.c",
4472    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr1recps1fma-x20.c",
4473    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr1recps1fma-x24.c",
4474    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2fma-x4.c",
4475    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2fma-x8.c",
4476    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2fma-x12.c",
4477    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2fma-x16.c",
4478    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2fma-x20.c",
4479    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2fma-x24.c",
4480    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2recps-x4.c",
4481    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2recps-x8.c",
4482    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2recps-x12.c",
4483    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2recps-x16.c",
4484    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2recps-x20.c",
4485    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-nr2recps-x24.c",
4486    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x4.c",
4487    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x8.c",
4488    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x12.c",
4489    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x16.c",
4490    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x20.c",
4491    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x24.c",
4492    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x28.c",
4493    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x32.c",
4494    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x36.c",
4495    "src/f32-vsqrt/gen/neonfma-nr1rsqrts1fma1adj-x40.c",
4496    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x4.c",
4497    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x8.c",
4498    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x12.c",
4499    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x16.c",
4500    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x20.c",
4501    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x24.c",
4502    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x28.c",
4503    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x32.c",
4504    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x36.c",
4505    "src/f32-vsqrt/gen/neonfma-nr2fma1adj-x40.c",
4506    "src/math/exp-f32-neonfma-rr2-lut64-p2.c",
4507    "src/math/exp-f32-neonfma-rr2-p5.c",
4508    "src/math/expminus-f32-neonfma-rr2-lut64-p2.c",
4509    "src/math/expminus-f32-neonfma-rr2-lut2048-p1.c",
4510    "src/math/expminus-f32-neonfma-rr2-p5.c",
4511    "src/math/expm1minus-f32-neonfma-rr1-lut16-p3.c",
4512    "src/math/expm1minus-f32-neonfma-rr1-p6.c",
4513    "src/math/sigmoid-f32-neonfma-rr1-lut64-p2-nr1recps1fma.c",
4514    "src/math/sigmoid-f32-neonfma-rr1-lut64-p2-nr2fma.c",
4515    "src/math/sigmoid-f32-neonfma-rr1-lut64-p2-nr2recps.c",
4516    "src/math/sigmoid-f32-neonfma-rr1-lut2048-p1-nr1recps1fma.c",
4517    "src/math/sigmoid-f32-neonfma-rr1-lut2048-p1-nr2fma.c",
4518    "src/math/sigmoid-f32-neonfma-rr1-lut2048-p1-nr2recps.c",
4519    "src/math/sigmoid-f32-neonfma-rr1-p5-nr1recps1fma.c",
4520    "src/math/sigmoid-f32-neonfma-rr1-p5-nr2fma.c",
4521    "src/math/sigmoid-f32-neonfma-rr1-p5-nr2recps.c",
4522    "src/math/sigmoid-f32-neonfma-rr2-lut64-p2-nr1recps1fma.c",
4523    "src/math/sigmoid-f32-neonfma-rr2-lut64-p2-nr2fma.c",
4524    "src/math/sigmoid-f32-neonfma-rr2-lut64-p2-nr2recps.c",
4525    "src/math/sigmoid-f32-neonfma-rr2-lut2048-p1-nr1recps1fma.c",
4526    "src/math/sigmoid-f32-neonfma-rr2-lut2048-p1-nr2fma.c",
4527    "src/math/sigmoid-f32-neonfma-rr2-lut2048-p1-nr2recps.c",
4528    "src/math/sigmoid-f32-neonfma-rr2-p5-nr1recps1fma.c",
4529    "src/math/sigmoid-f32-neonfma-rr2-p5-nr2fma.c",
4530    "src/math/sigmoid-f32-neonfma-rr2-p5-nr2recps.c",
4531    "src/math/sqrt-neonfma-nr1fma.c",
4532    "src/math/sqrt-neonfma-nr1rsqrts1fma1adj.c",
4533    "src/math/sqrt-neonfma-nr2fma.c",
4534    "src/math/sqrt-neonfma-nr2fma1adj.c",
4535    "src/math/sqrt-neonfma-nr3fma.c",
4536]
4537
4538PROD_AARCH64_NEON_MICROKERNEL_SRCS = [
4539    "src/f32-conv-hwc2chw/3x3s2p1c3x4-neonfma-2x2.c",
4540    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neonfma-3x4.c",
4541    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neonfma-2x4-acc2.c",
4542    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-4x4.c",
4543    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neonfma-1x4-acc2.c",
4544    "src/f32-gemm/gen/1x8-minmax-neonfma-lane-ld64.c",
4545    "src/f32-gemm/gen/6x2-minmax-neonfma-lane-ld64.c",
4546    "src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld64.c",
4547    "src/f32-igemm/gen/1x8-minmax-neonfma-lane-ld64.c",
4548    "src/f32-igemm/gen/6x2-minmax-neonfma-lane-ld64.c",
4549    "src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld64.c",
4550    "src/f32-spmm/gen/32x2-minmax-neonfma.c",
4551    "src/f32-spmm/gen/32x4-minmax-neonfma.c",
4552    "src/f32-vbinary/gen/vdiv-minmax-neon-x8.c",
4553    "src/f32-vbinary/gen/vdivc-minmax-neon-x8.c",
4554    "src/f32-vbinary/gen/vrdivc-minmax-neon-x8.c",
4555    "src/f32-vsqrt/gen/neon-sqrt-x4.c",
4556    "src/x8-lut/gen/lut-neon-tbx128x4-x64.c",
4557    "src/x32-transposec/4x4-aarch64-tbl.c",
4558]
4559
4560ALL_AARCH64_NEON_MICROKERNEL_SRCS = [
4561    "src/bf16-gemm/gen/1x4c8-minmax-neonfma-zip.c",
4562    "src/bf16-gemm/gen/2x4c8-minmax-neonfma-zip.c",
4563    "src/bf16-gemm/gen/3x4c8-minmax-neonfma-zip.c",
4564    "src/bf16-gemm/gen/4x4c8-minmax-neonfma-zip.c",
4565    "src/bf16-gemm/gen/5x4c8-minmax-neonfma-zip.c",
4566    "src/f32-conv-hwc/gen/3x3s2p0p1c3x4-neonfma-2x1.c",
4567    "src/f32-conv-hwc/gen/3x3s2p0p1c3x4-neonfma-2x2.c",
4568    "src/f32-conv-hwc/gen/3x3s2p0p1c3x8-neonfma-2x1.c",
4569    "src/f32-conv-hwc/gen/3x3s2p0p1c3x8-neonfma-2x2.c",
4570    "src/f32-conv-hwc/gen/3x3s2p1c3x4-neonfma-2x1.c",
4571    "src/f32-conv-hwc/gen/3x3s2p1c3x4-neonfma-2x2.c",
4572    "src/f32-conv-hwc/gen/3x3s2p1c3x8-neonfma-2x1.c",
4573    "src/f32-conv-hwc/gen/3x3s2p1c3x8-neonfma-2x2.c",
4574    "src/f32-conv-hwc2chw/3x3s2p1c3x4-neonfma-2x2.c",
4575    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neonfma-1x4-acc2.c",
4576    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neonfma-1x4-acc3.c",
4577    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neonfma-1x4-acc4.c",
4578    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neonfma-1x4.c",
4579    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neonfma-2x4-acc2.c",
4580    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neonfma-2x4.c",
4581    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neonfma-3x4.c",
4582    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neonfma-4x4.c",
4583    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neonfma-5x4.c",
4584    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-neonfma-6x4.c",
4585    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neonfma-1x4-acc2.c",
4586    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neonfma-1x4-acc3.c",
4587    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neonfma-1x4-acc4.c",
4588    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neonfma-1x4.c",
4589    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neonfma-2x4-acc2.c",
4590    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neonfma-2x4.c",
4591    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neonfma-3x4.c",
4592    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-neonfma-4x4.c",
4593    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-1x4-acc2.c",
4594    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-1x4-acc3.c",
4595    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-1x4-acc4.c",
4596    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-1x4-acc5.c",
4597    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-1x4.c",
4598    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-2x4-acc2.c",
4599    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-2x4-acc3.c",
4600    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-2x4.c",
4601    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-3x4-acc2.c",
4602    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-3x4.c",
4603    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-4x4-acc2.c",
4604    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-4x4.c",
4605    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-neonfma-5x4.c",
4606    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neonfma-1x4-acc2.c",
4607    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neonfma-1x4-acc3.c",
4608    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neonfma-1x4-acc4.c",
4609    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neonfma-1x4-acc5.c",
4610    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neonfma-1x4.c",
4611    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neonfma-2x4-acc2.c",
4612    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neonfma-2x4-acc3.c",
4613    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neonfma-2x4.c",
4614    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neonfma-3x4-acc2.c",
4615    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-neonfma-3x4.c",
4616    "src/f32-gemm/gen-inc/1x8inc-minmax-neonfma-lane-ld64.c",
4617    "src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-lane-ld64.c",
4618    "src/f32-gemm/gen-inc/4x8inc-minmax-neonfma-lane-ld128.c",
4619    "src/f32-gemm/gen-inc/5x8inc-minmax-neonfma-lane-ld64.c",
4620    "src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-lane-ld64.c",
4621    "src/f32-gemm/gen-inc/6x8inc-minmax-neonfma-lane-ld128.c",
4622    "src/f32-gemm/gen/1x8-minmax-neonfma-lane-ld64.c",
4623    "src/f32-gemm/gen/4x2-minmax-neonfma-lane-ld64.c",
4624    "src/f32-gemm/gen/4x8-minmax-neonfma-lane-ld64.c",
4625    "src/f32-gemm/gen/4x8-minmax-neonfma-lane-ld128.c",
4626    "src/f32-gemm/gen/5x8-minmax-neonfma-lane-ld64.c",
4627    "src/f32-gemm/gen/6x2-minmax-neonfma-lane-ld64.c",
4628    "src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld64.c",
4629    "src/f32-gemm/gen/6x8-minmax-neonfma-lane-ld128.c",
4630    "src/f32-igemm/gen/1x8-minmax-neonfma-lane-ld64.c",
4631    "src/f32-igemm/gen/4x2-minmax-neonfma-lane-ld64.c",
4632    "src/f32-igemm/gen/4x4-minmax-neonfma-lane-ld64.c",
4633    "src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld64.c",
4634    "src/f32-igemm/gen/4x8-minmax-neonfma-lane-ld128.c",
4635    "src/f32-igemm/gen/6x2-minmax-neonfma-lane-ld64.c",
4636    "src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld64.c",
4637    "src/f32-igemm/gen/6x8-minmax-neonfma-lane-ld128.c",
4638    "src/f32-spmm/gen/4x2-minmax-neonfma.c",
4639    "src/f32-spmm/gen/4x4-minmax-neonfma.c",
4640    "src/f32-spmm/gen/8x2-minmax-neonfma.c",
4641    "src/f32-spmm/gen/8x4-minmax-neonfma.c",
4642    "src/f32-spmm/gen/12x2-minmax-neonfma.c",
4643    "src/f32-spmm/gen/12x4-minmax-neonfma.c",
4644    "src/f32-spmm/gen/16x2-minmax-neonfma.c",
4645    "src/f32-spmm/gen/16x4-minmax-neonfma.c",
4646    "src/f32-spmm/gen/32x2-minmax-neonfma.c",
4647    "src/f32-spmm/gen/32x4-minmax-neonfma.c",
4648    "src/f32-vbinary/gen/vdiv-minmax-neon-x4.c",
4649    "src/f32-vbinary/gen/vdiv-minmax-neon-x8.c",
4650    "src/f32-vbinary/gen/vdivc-minmax-neon-x4.c",
4651    "src/f32-vbinary/gen/vdivc-minmax-neon-x8.c",
4652    "src/f32-vbinary/gen/vrdivc-minmax-neon-x4.c",
4653    "src/f32-vbinary/gen/vrdivc-minmax-neon-x8.c",
4654    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-div-x4.c",
4655    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-div-x8.c",
4656    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-div-x12.c",
4657    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-div-x16.c",
4658    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-div-x20.c",
4659    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut64-p2-div-x24.c",
4660    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-div-x4.c",
4661    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-div-x8.c",
4662    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-div-x12.c",
4663    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-div-x16.c",
4664    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-div-x20.c",
4665    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-lut2048-p1-div-x24.c",
4666    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-div-x4.c",
4667    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-div-x8.c",
4668    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-div-x12.c",
4669    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-div-x16.c",
4670    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-div-x20.c",
4671    "src/f32-vsigmoid/gen/vsigmoid-neonfma-rr1-p5-div-x24.c",
4672    "src/f32-vsqrt/gen/neon-sqrt-x4.c",
4673    "src/f32-vsqrt/gen/neon-sqrt-x8.c",
4674    "src/math/sigmoid-f32-neonfma-rr1-lut64-p2-div.c",
4675    "src/math/sigmoid-f32-neonfma-rr1-lut2048-p1-div.c",
4676    "src/math/sigmoid-f32-neonfma-rr1-p5-div.c",
4677    "src/math/sigmoid-f32-neonfma-rr2-lut64-p2-div.c",
4678    "src/math/sigmoid-f32-neonfma-rr2-lut2048-p1-div.c",
4679    "src/math/sigmoid-f32-neonfma-rr2-p5-div.c",
4680    "src/x8-lut/gen/lut-neon-tbx128x4-x16.c",
4681    "src/x8-lut/gen/lut-neon-tbx128x4-x32.c",
4682    "src/x8-lut/gen/lut-neon-tbx128x4-x48.c",
4683    "src/x8-lut/gen/lut-neon-tbx128x4-x64.c",
4684    "src/x24-transposec/4x4-aarch64-tbl.c",
4685    "src/x32-transposec/4x4-aarch64-tbl.c",
4686]
4687
4688PROD_NEONV8_MICROKERNEL_SRCS = [
4689    "src/f32-qs8-vcvt/gen/vcvt-neonv8-x32.c",
4690    "src/f32-qu8-vcvt/gen/vcvt-neonv8-x32.c",
4691    "src/f32-vrnd/gen/vrndd-neonv8-x8.c",
4692    "src/f32-vrnd/gen/vrndne-neonv8-x8.c",
4693    "src/f32-vrnd/gen/vrndu-neonv8-x8.c",
4694    "src/f32-vrnd/gen/vrndz-neonv8-x8.c",
4695    "src/qc8-dwconv/gen/up8x25-minmax-fp32-neonv8-mla8-ld64.c",
4696    "src/qc8-dwconv/gen/up16x3-minmax-fp32-neonv8-mla8-ld128.c",
4697    "src/qc8-dwconv/gen/up16x9-minmax-fp32-neonv8-mla8-ld64.c",
4698    "src/qc8-dwconv/gen/up16x25-minmax-fp32-neonv8-mla8-ld64.c",
4699    "src/qc8-gemm/gen/1x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
4700    "src/qc8-gemm/gen/1x8-minmax-fp32-neonv8-mlal-lane.c",
4701    "src/qc8-gemm/gen/1x8c2s4-minmax-fp32-neonv8-mlal.c",
4702    "src/qc8-gemm/gen/1x8c8-minmax-fp32-neonv8-mlal.c",
4703    "src/qc8-gemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c",
4704    "src/qc8-gemm/gen/2x8c2s4-minmax-fp32-neonv8-mlal.c",
4705    "src/qc8-gemm/gen/2x8c8-minmax-fp32-neonv8-mlal.c",
4706    "src/qc8-gemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c",
4707    "src/qc8-igemm/gen/1x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
4708    "src/qc8-igemm/gen/1x8-minmax-fp32-neonv8-mlal-lane.c",
4709    "src/qc8-igemm/gen/1x8c2s4-minmax-fp32-neonv8-mlal.c",
4710    "src/qc8-igemm/gen/1x8c8-minmax-fp32-neonv8-mlal.c",
4711    "src/qc8-igemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c",
4712    "src/qc8-igemm/gen/2x8c2s4-minmax-fp32-neonv8-mlal.c",
4713    "src/qc8-igemm/gen/2x8c8-minmax-fp32-neonv8-mlal.c",
4714    "src/qc8-igemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c",
4715]
4716
4717ALL_NEONV8_MICROKERNEL_SRCS = [
4718    "src/f32-qs8-vcvt/gen/vcvt-neonv8-x8.c",
4719    "src/f32-qs8-vcvt/gen/vcvt-neonv8-x16.c",
4720    "src/f32-qs8-vcvt/gen/vcvt-neonv8-x24.c",
4721    "src/f32-qs8-vcvt/gen/vcvt-neonv8-x32.c",
4722    "src/f32-qu8-vcvt/gen/vcvt-neonv8-x8.c",
4723    "src/f32-qu8-vcvt/gen/vcvt-neonv8-x16.c",
4724    "src/f32-qu8-vcvt/gen/vcvt-neonv8-x24.c",
4725    "src/f32-qu8-vcvt/gen/vcvt-neonv8-x32.c",
4726    "src/f32-vrnd/gen/vrndd-neonv8-x4.c",
4727    "src/f32-vrnd/gen/vrndd-neonv8-x8.c",
4728    "src/f32-vrnd/gen/vrndne-neonv8-x4.c",
4729    "src/f32-vrnd/gen/vrndne-neonv8-x8.c",
4730    "src/f32-vrnd/gen/vrndu-neonv8-x4.c",
4731    "src/f32-vrnd/gen/vrndu-neonv8-x8.c",
4732    "src/f32-vrnd/gen/vrndz-neonv8-x4.c",
4733    "src/f32-vrnd/gen/vrndz-neonv8-x8.c",
4734    "src/math/cvt-f32-qs8-neonv8.c",
4735    "src/math/cvt-f32-qu8-neonv8.c",
4736    "src/math/roundd-neonv8.c",
4737    "src/math/roundne-neonv8.c",
4738    "src/math/roundu-neonv8.c",
4739    "src/math/roundz-neonv8.c",
4740    "src/qc8-dwconv/gen/up8x3-minmax-fp32-neonv8-mla8-ld64.c",
4741    "src/qc8-dwconv/gen/up8x9-minmax-fp32-neonv8-mla8-ld64.c",
4742    "src/qc8-dwconv/gen/up8x9-minmax-fp32-neonv8-mul8-ld64.c",
4743    "src/qc8-dwconv/gen/up8x9-minmax-fp32-neonv8-mul16.c",
4744    "src/qc8-dwconv/gen/up8x25-minmax-fp32-neonv8-mla8-ld64.c",
4745    "src/qc8-dwconv/gen/up8x25-minmax-fp32-neonv8-mul8-ld64.c",
4746    "src/qc8-dwconv/gen/up8x25-minmax-fp32-neonv8-mul16.c",
4747    "src/qc8-dwconv/gen/up16x3-minmax-fp32-neonv8-mla8-ld64.c",
4748    "src/qc8-dwconv/gen/up16x3-minmax-fp32-neonv8-mla8-ld128.c",
4749    "src/qc8-dwconv/gen/up16x9-minmax-fp32-neonv8-mla8-ld64.c",
4750    "src/qc8-dwconv/gen/up16x9-minmax-fp32-neonv8-mla8-ld128.c",
4751    "src/qc8-dwconv/gen/up16x9-minmax-fp32-neonv8-mul8-ld64.c",
4752    "src/qc8-dwconv/gen/up16x9-minmax-fp32-neonv8-mul8-ld128.c",
4753    "src/qc8-dwconv/gen/up16x9-minmax-fp32-neonv8-mul16.c",
4754    "src/qc8-dwconv/gen/up16x25-minmax-fp32-neonv8-mla8-ld64.c",
4755    "src/qc8-dwconv/gen/up16x25-minmax-fp32-neonv8-mla8-ld128.c",
4756    "src/qc8-dwconv/gen/up16x25-minmax-fp32-neonv8-mul8-ld64.c",
4757    "src/qc8-dwconv/gen/up16x25-minmax-fp32-neonv8-mul8-ld128.c",
4758    "src/qc8-dwconv/gen/up16x25-minmax-fp32-neonv8-mul16.c",
4759    "src/qc8-dwconv/gen/up24x9-minmax-fp32-neonv8-mul16.c",
4760    "src/qc8-dwconv/gen/up24x25-minmax-fp32-neonv8-mul16.c",
4761    "src/qc8-dwconv/gen/up32x9-minmax-fp32-neonv8-mul16.c",
4762    "src/qc8-dwconv/gen/up32x25-minmax-fp32-neonv8-mul16.c",
4763    "src/qc8-gemm/gen/1x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
4764    "src/qc8-gemm/gen/1x8-minmax-fp32-neonv8-mlal-lane.c",
4765    "src/qc8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-dup.c",
4766    "src/qc8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld1r.c",
4767    "src/qc8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld2r.c",
4768    "src/qc8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld4r.c",
4769    "src/qc8-gemm/gen/1x8c2s4-minmax-fp32-neonv8-mlal.c",
4770    "src/qc8-gemm/gen/1x8c4-minmax-fp32-neonv8-mlal-dup.c",
4771    "src/qc8-gemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld1r.c",
4772    "src/qc8-gemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld2r.c",
4773    "src/qc8-gemm/gen/1x8c4s2-minmax-fp32-neonv8-mlal.c",
4774    "src/qc8-gemm/gen/1x8c8-minmax-fp32-neonv8-mlal.c",
4775    "src/qc8-gemm/gen/1x16-minmax-fp32-neonv8-mlal-lane-prfm.c",
4776    "src/qc8-gemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c",
4777    "src/qc8-gemm/gen/2x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
4778    "src/qc8-gemm/gen/2x8-minmax-fp32-neonv8-mlal-lane.c",
4779    "src/qc8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-dup.c",
4780    "src/qc8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld1r.c",
4781    "src/qc8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld2r.c",
4782    "src/qc8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld4r.c",
4783    "src/qc8-gemm/gen/2x8c2s4-minmax-fp32-neonv8-mlal.c",
4784    "src/qc8-gemm/gen/2x8c4-minmax-fp32-neonv8-mlal-dup.c",
4785    "src/qc8-gemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld1r.c",
4786    "src/qc8-gemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld2r.c",
4787    "src/qc8-gemm/gen/2x8c4s2-minmax-fp32-neonv8-mlal.c",
4788    "src/qc8-gemm/gen/2x8c8-minmax-fp32-neonv8-mlal.c",
4789    "src/qc8-gemm/gen/2x16-minmax-fp32-neonv8-mlal-lane-prfm.c",
4790    "src/qc8-gemm/gen/2x16-minmax-fp32-neonv8-mlal-lane.c",
4791    "src/qc8-gemm/gen/3x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
4792    "src/qc8-gemm/gen/3x8-minmax-fp32-neonv8-mlal-lane.c",
4793    "src/qc8-gemm/gen/3x16-minmax-fp32-neonv8-mlal-lane-prfm.c",
4794    "src/qc8-gemm/gen/3x16-minmax-fp32-neonv8-mlal-lane.c",
4795    "src/qc8-gemm/gen/4x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
4796    "src/qc8-gemm/gen/4x8-minmax-fp32-neonv8-mlal-lane.c",
4797    "src/qc8-gemm/gen/4x16-minmax-fp32-neonv8-mlal-lane-prfm.c",
4798    "src/qc8-gemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c",
4799    "src/qc8-gemm/gen/6x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
4800    "src/qc8-gemm/gen/6x8-minmax-fp32-neonv8-mlal-lane.c",
4801    "src/qc8-gemm/gen/6x16-minmax-fp32-neonv8-mlal-lane-prfm.c",
4802    "src/qc8-gemm/gen/6x16-minmax-fp32-neonv8-mlal-lane.c",
4803    "src/qc8-igemm/gen/1x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
4804    "src/qc8-igemm/gen/1x8-minmax-fp32-neonv8-mlal-lane.c",
4805    "src/qc8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-dup.c",
4806    "src/qc8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld1r.c",
4807    "src/qc8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld2r.c",
4808    "src/qc8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld4r.c",
4809    "src/qc8-igemm/gen/1x8c2s4-minmax-fp32-neonv8-mlal.c",
4810    "src/qc8-igemm/gen/1x8c4-minmax-fp32-neonv8-mlal-dup.c",
4811    "src/qc8-igemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld1r.c",
4812    "src/qc8-igemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld2r.c",
4813    "src/qc8-igemm/gen/1x8c4s2-minmax-fp32-neonv8-mlal.c",
4814    "src/qc8-igemm/gen/1x8c8-minmax-fp32-neonv8-mlal.c",
4815    "src/qc8-igemm/gen/1x16-minmax-fp32-neonv8-mlal-lane-prfm.c",
4816    "src/qc8-igemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c",
4817    "src/qc8-igemm/gen/2x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
4818    "src/qc8-igemm/gen/2x8-minmax-fp32-neonv8-mlal-lane.c",
4819    "src/qc8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-dup.c",
4820    "src/qc8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld1r.c",
4821    "src/qc8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld2r.c",
4822    "src/qc8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld4r.c",
4823    "src/qc8-igemm/gen/2x8c2s4-minmax-fp32-neonv8-mlal.c",
4824    "src/qc8-igemm/gen/2x8c4-minmax-fp32-neonv8-mlal-dup.c",
4825    "src/qc8-igemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld1r.c",
4826    "src/qc8-igemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld2r.c",
4827    "src/qc8-igemm/gen/2x8c4s2-minmax-fp32-neonv8-mlal.c",
4828    "src/qc8-igemm/gen/2x8c8-minmax-fp32-neonv8-mlal.c",
4829    "src/qc8-igemm/gen/2x16-minmax-fp32-neonv8-mlal-lane-prfm.c",
4830    "src/qc8-igemm/gen/2x16-minmax-fp32-neonv8-mlal-lane.c",
4831    "src/qc8-igemm/gen/3x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
4832    "src/qc8-igemm/gen/3x8-minmax-fp32-neonv8-mlal-lane.c",
4833    "src/qc8-igemm/gen/3x16-minmax-fp32-neonv8-mlal-lane-prfm.c",
4834    "src/qc8-igemm/gen/3x16-minmax-fp32-neonv8-mlal-lane.c",
4835    "src/qc8-igemm/gen/4x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
4836    "src/qc8-igemm/gen/4x8-minmax-fp32-neonv8-mlal-lane.c",
4837    "src/qc8-igemm/gen/4x16-minmax-fp32-neonv8-mlal-lane-prfm.c",
4838    "src/qc8-igemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c",
4839    "src/qc8-igemm/gen/6x8-minmax-fp32-neonv8-mlal-lane-prfm.c",
4840    "src/qc8-igemm/gen/6x8-minmax-fp32-neonv8-mlal-lane.c",
4841    "src/qc8-igemm/gen/6x16-minmax-fp32-neonv8-mlal-lane-prfm.c",
4842    "src/qc8-igemm/gen/6x16-minmax-fp32-neonv8-mlal-lane.c",
4843    "src/qs8-dwconv/gen/up8x9-minmax-fp32-neonv8-mul16.c",
4844    "src/qs8-dwconv/gen/up8x25-minmax-fp32-neonv8-mul16.c",
4845    "src/qs8-dwconv/gen/up16x9-minmax-fp32-neonv8-mul16.c",
4846    "src/qs8-dwconv/gen/up16x25-minmax-fp32-neonv8-mul16.c",
4847    "src/qs8-dwconv/gen/up24x9-minmax-fp32-neonv8-mul16.c",
4848    "src/qs8-dwconv/gen/up24x25-minmax-fp32-neonv8-mul16.c",
4849    "src/qs8-dwconv/gen/up32x9-minmax-fp32-neonv8-mul16.c",
4850    "src/qs8-dwconv/gen/up32x25-minmax-fp32-neonv8-mul16.c",
4851    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c8.c",
4852    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c16.c",
4853    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c24.c",
4854    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c32.c",
4855    "src/qs8-gavgpool/gen/7x-minmax-fp32-neonv8-c8.c",
4856    "src/qs8-gavgpool/gen/7x-minmax-fp32-neonv8-c16.c",
4857    "src/qs8-gavgpool/gen/7x-minmax-fp32-neonv8-c24.c",
4858    "src/qs8-gavgpool/gen/7x-minmax-fp32-neonv8-c32.c",
4859    "src/qs8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-dup.c",
4860    "src/qs8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld1r.c",
4861    "src/qs8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld2r.c",
4862    "src/qs8-gemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld4r.c",
4863    "src/qs8-gemm/gen/1x8c2s4-minmax-fp32-neonv8-mlal.c",
4864    "src/qs8-gemm/gen/1x8c4-minmax-fp32-neonv8-mlal-dup.c",
4865    "src/qs8-gemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld1r.c",
4866    "src/qs8-gemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld2r.c",
4867    "src/qs8-gemm/gen/1x8c4s2-minmax-fp32-neonv8-mlal.c",
4868    "src/qs8-gemm/gen/1x8c8-minmax-fp32-neonv8-mlal.c",
4869    "src/qs8-gemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c",
4870    "src/qs8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-dup.c",
4871    "src/qs8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld1r.c",
4872    "src/qs8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld2r.c",
4873    "src/qs8-gemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld4r.c",
4874    "src/qs8-gemm/gen/2x8c2s4-minmax-fp32-neonv8-mlal.c",
4875    "src/qs8-gemm/gen/2x8c4-minmax-fp32-neonv8-mlal-dup.c",
4876    "src/qs8-gemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld1r.c",
4877    "src/qs8-gemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld2r.c",
4878    "src/qs8-gemm/gen/2x8c4s2-minmax-fp32-neonv8-mlal.c",
4879    "src/qs8-gemm/gen/2x8c8-minmax-fp32-neonv8-mlal.c",
4880    "src/qs8-gemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c",
4881    "src/qs8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-dup.c",
4882    "src/qs8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld1r.c",
4883    "src/qs8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld2r.c",
4884    "src/qs8-igemm/gen/1x8c2-minmax-fp32-neonv8-mlal-ld4r.c",
4885    "src/qs8-igemm/gen/1x8c2s4-minmax-fp32-neonv8-mlal.c",
4886    "src/qs8-igemm/gen/1x8c4-minmax-fp32-neonv8-mlal-dup.c",
4887    "src/qs8-igemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld1r.c",
4888    "src/qs8-igemm/gen/1x8c4-minmax-fp32-neonv8-mlal-ld2r.c",
4889    "src/qs8-igemm/gen/1x8c4s2-minmax-fp32-neonv8-mlal.c",
4890    "src/qs8-igemm/gen/1x8c8-minmax-fp32-neonv8-mlal.c",
4891    "src/qs8-igemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c",
4892    "src/qs8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-dup.c",
4893    "src/qs8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld1r.c",
4894    "src/qs8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld2r.c",
4895    "src/qs8-igemm/gen/2x8c2-minmax-fp32-neonv8-mlal-ld4r.c",
4896    "src/qs8-igemm/gen/2x8c2s4-minmax-fp32-neonv8-mlal.c",
4897    "src/qs8-igemm/gen/2x8c4-minmax-fp32-neonv8-mlal-dup.c",
4898    "src/qs8-igemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld1r.c",
4899    "src/qs8-igemm/gen/2x8c4-minmax-fp32-neonv8-mlal-ld2r.c",
4900    "src/qs8-igemm/gen/2x8c4s2-minmax-fp32-neonv8-mlal.c",
4901    "src/qs8-igemm/gen/2x8c8-minmax-fp32-neonv8-mlal.c",
4902    "src/qs8-igemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c",
4903    "src/qs8-vmul/gen/minmax-fp32-neonv8-ld64-x8.c",
4904    "src/qs8-vmul/gen/minmax-fp32-neonv8-ld64-x16.c",
4905    "src/qs8-vmul/gen/minmax-fp32-neonv8-ld128-x16.c",
4906    "src/qs8-vmulc/gen/minmax-fp32-neonv8-ld64-x8.c",
4907    "src/qs8-vmulc/gen/minmax-fp32-neonv8-ld64-x16.c",
4908    "src/qs8-vmulc/gen/minmax-fp32-neonv8-ld128-x16.c",
4909    "src/qu8-dwconv/gen/up8x9-minmax-fp32-neonv8-mul16.c",
4910    "src/qu8-dwconv/gen/up8x25-minmax-fp32-neonv8-mul16.c",
4911    "src/qu8-dwconv/gen/up16x9-minmax-fp32-neonv8-mul16.c",
4912    "src/qu8-dwconv/gen/up16x25-minmax-fp32-neonv8-mul16.c",
4913    "src/qu8-dwconv/gen/up24x9-minmax-fp32-neonv8-mul16.c",
4914    "src/qu8-dwconv/gen/up24x25-minmax-fp32-neonv8-mul16.c",
4915    "src/qu8-dwconv/gen/up32x9-minmax-fp32-neonv8-mul16.c",
4916    "src/qu8-dwconv/gen/up32x25-minmax-fp32-neonv8-mul16.c",
4917    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c8.c",
4918    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c16.c",
4919    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c24.c",
4920    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-neonv8-c32.c",
4921    "src/qu8-gavgpool/gen/7x-minmax-fp32-neonv8-c8.c",
4922    "src/qu8-gavgpool/gen/7x-minmax-fp32-neonv8-c16.c",
4923    "src/qu8-gavgpool/gen/7x-minmax-fp32-neonv8-c24.c",
4924    "src/qu8-gavgpool/gen/7x-minmax-fp32-neonv8-c32.c",
4925    "src/qu8-gemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c",
4926    "src/qu8-gemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c",
4927    "src/qu8-igemm/gen/1x16-minmax-fp32-neonv8-mlal-lane.c",
4928    "src/qu8-igemm/gen/4x16-minmax-fp32-neonv8-mlal-lane.c",
4929    "src/qu8-vmul/gen/minmax-fp32-neonv8-ld64-x8.c",
4930    "src/qu8-vmul/gen/minmax-fp32-neonv8-ld64-x16.c",
4931    "src/qu8-vmul/gen/minmax-fp32-neonv8-ld128-x16.c",
4932    "src/qu8-vmulc/gen/minmax-fp32-neonv8-ld64-x8.c",
4933    "src/qu8-vmulc/gen/minmax-fp32-neonv8-ld64-x16.c",
4934    "src/qu8-vmulc/gen/minmax-fp32-neonv8-ld128-x16.c",
4935]
4936
4937PROD_NEONFP16ARITH_MICROKERNEL_SRCS = [
4938    "src/f16-avgpool/9p8x-minmax-neonfp16arith-c8.c",
4939    "src/f16-avgpool/9x-minmax-neonfp16arith-c8.c",
4940    "src/f16-dwconv/gen/up8x25-minmax-neonfp16arith-acc2.c",
4941    "src/f16-dwconv/gen/up16x3-minmax-neonfp16arith.c",
4942    "src/f16-dwconv/gen/up16x4-minmax-neonfp16arith.c",
4943    "src/f16-dwconv/gen/up16x9-minmax-neonfp16arith.c",
4944    "src/f16-gavgpool-cw/neonfp16arith-x4.c",
4945    "src/f16-gavgpool/gen/7p7x-minmax-neonfp16arith-c8.c",
4946    "src/f16-gavgpool/gen/7x-minmax-neonfp16arith-c8.c",
4947    "src/f16-gemm/gen/1x16-minmax-neonfp16arith-ld64.c",
4948    "src/f16-gemm/gen/6x16-minmax-neonfp16arith-ld64.c",
4949    "src/f16-ibilinear-chw/gen/neonfp16arith-p8.c",
4950    "src/f16-ibilinear/gen/neonfp16arith-c8.c",
4951    "src/f16-igemm/gen/1x16-minmax-neonfp16arith-ld64.c",
4952    "src/f16-igemm/gen/6x16-minmax-neonfp16arith-ld64.c",
4953    "src/f16-maxpool/9p8x-minmax-neonfp16arith-c8.c",
4954    "src/f16-pavgpool/9p8x-minmax-neonfp16arith-c8.c",
4955    "src/f16-pavgpool/9x-minmax-neonfp16arith-c8.c",
4956    "src/f16-prelu/gen/neonfp16arith-2x16.c",
4957    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x40.c",
4958    "src/f16-rmax/neonfp16arith.c",
4959    "src/f16-spmm/gen/32x1-minmax-neonfp16arith.c",
4960    "src/f16-vbinary/gen/vadd-minmax-neonfp16arith-x16.c",
4961    "src/f16-vbinary/gen/vaddc-minmax-neonfp16arith-x16.c",
4962    "src/f16-vbinary/gen/vmax-neonfp16arith-x16.c",
4963    "src/f16-vbinary/gen/vmaxc-neonfp16arith-x16.c",
4964    "src/f16-vbinary/gen/vmin-neonfp16arith-x16.c",
4965    "src/f16-vbinary/gen/vminc-neonfp16arith-x16.c",
4966    "src/f16-vbinary/gen/vmul-minmax-neonfp16arith-x16.c",
4967    "src/f16-vbinary/gen/vmulc-minmax-neonfp16arith-x16.c",
4968    "src/f16-vbinary/gen/vrsubc-minmax-neonfp16arith-x16.c",
4969    "src/f16-vbinary/gen/vsqrdiff-neonfp16arith-x16.c",
4970    "src/f16-vbinary/gen/vsqrdiffc-neonfp16arith-x16.c",
4971    "src/f16-vbinary/gen/vsub-minmax-neonfp16arith-x16.c",
4972    "src/f16-vbinary/gen/vsubc-minmax-neonfp16arith-x16.c",
4973    "src/f16-vclamp/gen/vclamp-neonfp16arith-x16.c",
4974    "src/f16-velu/gen/velu-neonfp16arith-rr1-p3-x16.c",
4975    "src/f16-vhswish/gen/vhswish-neonfp16arith-x16.c",
4976    "src/f16-vlrelu/gen/vlrelu-neonfp16arith-x16.c",
4977    "src/f16-vmulcaddc/gen/c8-minmax-neonfp16arith-2x.c",
4978    "src/f16-vrnd/gen/vrndd-neonfp16arith-x16.c",
4979    "src/f16-vrnd/gen/vrndne-neonfp16arith-x16.c",
4980    "src/f16-vrnd/gen/vrndu-neonfp16arith-x16.c",
4981    "src/f16-vrnd/gen/vrndz-neonfp16arith-x16.c",
4982    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1fma-x40.c",
4983    "src/f16-vunary/gen/vabs-neonfp16arith-x16.c",
4984    "src/f16-vunary/gen/vneg-neonfp16arith-x16.c",
4985    "src/f16-vunary/gen/vsqr-neonfp16arith-x16.c",
4986]
4987
4988ALL_NEONFP16ARITH_MICROKERNEL_SRCS = [
4989    "src/f16-avgpool/9p8x-minmax-neonfp16arith-c8.c",
4990    "src/f16-avgpool/9x-minmax-neonfp16arith-c8.c",
4991    "src/f16-dwconv/gen/up8x3-minmax-neonfp16arith-acc2.c",
4992    "src/f16-dwconv/gen/up8x3-minmax-neonfp16arith.c",
4993    "src/f16-dwconv/gen/up8x4-minmax-neonfp16arith-acc2.c",
4994    "src/f16-dwconv/gen/up8x4-minmax-neonfp16arith.c",
4995    "src/f16-dwconv/gen/up8x9-minmax-neonfp16arith-acc2.c",
4996    "src/f16-dwconv/gen/up8x9-minmax-neonfp16arith.c",
4997    "src/f16-dwconv/gen/up8x25-minmax-neonfp16arith-acc2.c",
4998    "src/f16-dwconv/gen/up8x25-minmax-neonfp16arith.c",
4999    "src/f16-dwconv/gen/up16x3-minmax-neonfp16arith-acc2.c",
5000    "src/f16-dwconv/gen/up16x3-minmax-neonfp16arith.c",
5001    "src/f16-dwconv/gen/up16x4-minmax-neonfp16arith-acc2.c",
5002    "src/f16-dwconv/gen/up16x4-minmax-neonfp16arith.c",
5003    "src/f16-dwconv/gen/up16x9-minmax-neonfp16arith-acc2.c",
5004    "src/f16-dwconv/gen/up16x9-minmax-neonfp16arith.c",
5005    "src/f16-dwconv/gen/up16x25-minmax-neonfp16arith-acc2.c",
5006    "src/f16-dwconv/gen/up16x25-minmax-neonfp16arith.c",
5007    "src/f16-dwconv/gen/up32x3-minmax-neonfp16arith-acc2.c",
5008    "src/f16-dwconv/gen/up32x3-minmax-neonfp16arith.c",
5009    "src/f16-dwconv/gen/up32x4-minmax-neonfp16arith-acc2.c",
5010    "src/f16-dwconv/gen/up32x4-minmax-neonfp16arith.c",
5011    "src/f16-dwconv/gen/up32x9-minmax-neonfp16arith-acc2.c",
5012    "src/f16-dwconv/gen/up32x9-minmax-neonfp16arith.c",
5013    "src/f16-dwconv/gen/up32x25-minmax-neonfp16arith-acc2.c",
5014    "src/f16-dwconv/gen/up32x25-minmax-neonfp16arith.c",
5015    "src/f16-gavgpool-cw/neonfp16arith-x4.c",
5016    "src/f16-gavgpool-cw/neonfp16arith-x8.c",
5017    "src/f16-gavgpool/gen/7p7x-minmax-neonfp16arith-c8.c",
5018    "src/f16-gavgpool/gen/7p7x-minmax-neonfp16arith-c16.c",
5019    "src/f16-gavgpool/gen/7p7x-minmax-neonfp16arith-c24.c",
5020    "src/f16-gavgpool/gen/7p7x-minmax-neonfp16arith-c32.c",
5021    "src/f16-gavgpool/gen/7x-minmax-neonfp16arith-c8.c",
5022    "src/f16-gavgpool/gen/7x-minmax-neonfp16arith-c16.c",
5023    "src/f16-gavgpool/gen/7x-minmax-neonfp16arith-c24.c",
5024    "src/f16-gavgpool/gen/7x-minmax-neonfp16arith-c32.c",
5025    "src/f16-gemm/gen-inc/1x8inc-minmax-neonfp16arith-ld64.c",
5026    "src/f16-gemm/gen-inc/1x16inc-minmax-neonfp16arith-ld64.c",
5027    "src/f16-gemm/gen-inc/4x8inc-minmax-neonfp16arith-ld64.c",
5028    "src/f16-gemm/gen-inc/4x16inc-minmax-neonfp16arith-ld64.c",
5029    "src/f16-gemm/gen-inc/6x8inc-minmax-neonfp16arith-ld64.c",
5030    "src/f16-gemm/gen-inc/6x16inc-minmax-neonfp16arith-ld64.c",
5031    "src/f16-gemm/gen-inc/8x8inc-minmax-neonfp16arith-ld64.c",
5032    "src/f16-gemm/gen-inc/8x16inc-minmax-neonfp16arith-ld64.c",
5033    "src/f16-gemm/gen/1x8-minmax-neonfp16arith-ld64.c",
5034    "src/f16-gemm/gen/1x16-minmax-neonfp16arith-ld64.c",
5035    "src/f16-gemm/gen/4x8-minmax-neonfp16arith-ld64.c",
5036    "src/f16-gemm/gen/4x16-minmax-neonfp16arith-ld64.c",
5037    "src/f16-gemm/gen/6x8-minmax-neonfp16arith-ld64.c",
5038    "src/f16-gemm/gen/6x16-minmax-neonfp16arith-ld64.c",
5039    "src/f16-gemm/gen/8x8-minmax-neonfp16arith-ld64.c",
5040    "src/f16-gemm/gen/8x16-minmax-neonfp16arith-ld64.c",
5041    "src/f16-ibilinear-chw/gen/neonfp16arith-p4.c",
5042    "src/f16-ibilinear-chw/gen/neonfp16arith-p8.c",
5043    "src/f16-ibilinear-chw/gen/neonfp16arith-p16.c",
5044    "src/f16-ibilinear/gen/neonfp16arith-c8.c",
5045    "src/f16-ibilinear/gen/neonfp16arith-c16.c",
5046    "src/f16-igemm/gen/1x8-minmax-neonfp16arith-ld64.c",
5047    "src/f16-igemm/gen/1x16-minmax-neonfp16arith-ld64.c",
5048    "src/f16-igemm/gen/4x8-minmax-neonfp16arith-ld64.c",
5049    "src/f16-igemm/gen/4x16-minmax-neonfp16arith-ld64.c",
5050    "src/f16-igemm/gen/6x8-minmax-neonfp16arith-ld64.c",
5051    "src/f16-igemm/gen/6x16-minmax-neonfp16arith-ld64.c",
5052    "src/f16-igemm/gen/8x8-minmax-neonfp16arith-ld64.c",
5053    "src/f16-igemm/gen/8x16-minmax-neonfp16arith-ld64.c",
5054    "src/f16-maxpool/9p8x-minmax-neonfp16arith-c8.c",
5055    "src/f16-pavgpool/9p8x-minmax-neonfp16arith-c8.c",
5056    "src/f16-pavgpool/9x-minmax-neonfp16arith-c8.c",
5057    "src/f16-prelu/gen/neonfp16arith-2x8.c",
5058    "src/f16-prelu/gen/neonfp16arith-2x16.c",
5059    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x32-acc2.c",
5060    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x32-acc4.c",
5061    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x32.c",
5062    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x40-acc2.c",
5063    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x40-acc5.c",
5064    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x40.c",
5065    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x48-acc2.c",
5066    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x48-acc3.c",
5067    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x48.c",
5068    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x64-acc2.c",
5069    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x64-acc4.c",
5070    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x64.c",
5071    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x72-acc3.c",
5072    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x72.c",
5073    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x80-acc2.c",
5074    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x80-acc5.c",
5075    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x80.c",
5076    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x96-acc2.c",
5077    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x96-acc3.c",
5078    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x96-acc6.c",
5079    "src/f16-raddstoreexpminusmax/gen/neonfp16arith-rr2-p2-x96.c",
5080    "src/f16-rmax/neonfp16arith.c",
5081    "src/f16-spmm/gen/8x1-minmax-neonfp16arith-x2.c",
5082    "src/f16-spmm/gen/8x1-minmax-neonfp16arith.c",
5083    "src/f16-spmm/gen/16x1-minmax-neonfp16arith-x2.c",
5084    "src/f16-spmm/gen/16x1-minmax-neonfp16arith.c",
5085    "src/f16-spmm/gen/24x1-minmax-neonfp16arith-x2.c",
5086    "src/f16-spmm/gen/24x1-minmax-neonfp16arith.c",
5087    "src/f16-spmm/gen/32x1-minmax-neonfp16arith-x2.c",
5088    "src/f16-spmm/gen/32x1-minmax-neonfp16arith.c",
5089    "src/f16-vbinary/gen/vadd-minmax-neonfp16arith-x8.c",
5090    "src/f16-vbinary/gen/vadd-minmax-neonfp16arith-x16.c",
5091    "src/f16-vbinary/gen/vaddc-minmax-neonfp16arith-x8.c",
5092    "src/f16-vbinary/gen/vaddc-minmax-neonfp16arith-x16.c",
5093    "src/f16-vbinary/gen/vmax-neonfp16arith-x8.c",
5094    "src/f16-vbinary/gen/vmax-neonfp16arith-x16.c",
5095    "src/f16-vbinary/gen/vmaxc-neonfp16arith-x8.c",
5096    "src/f16-vbinary/gen/vmaxc-neonfp16arith-x16.c",
5097    "src/f16-vbinary/gen/vmin-neonfp16arith-x8.c",
5098    "src/f16-vbinary/gen/vmin-neonfp16arith-x16.c",
5099    "src/f16-vbinary/gen/vminc-neonfp16arith-x8.c",
5100    "src/f16-vbinary/gen/vminc-neonfp16arith-x16.c",
5101    "src/f16-vbinary/gen/vmul-minmax-neonfp16arith-x8.c",
5102    "src/f16-vbinary/gen/vmul-minmax-neonfp16arith-x16.c",
5103    "src/f16-vbinary/gen/vmulc-minmax-neonfp16arith-x8.c",
5104    "src/f16-vbinary/gen/vmulc-minmax-neonfp16arith-x16.c",
5105    "src/f16-vbinary/gen/vrsubc-minmax-neonfp16arith-x8.c",
5106    "src/f16-vbinary/gen/vrsubc-minmax-neonfp16arith-x16.c",
5107    "src/f16-vbinary/gen/vsqrdiff-neonfp16arith-x8.c",
5108    "src/f16-vbinary/gen/vsqrdiff-neonfp16arith-x16.c",
5109    "src/f16-vbinary/gen/vsqrdiffc-neonfp16arith-x8.c",
5110    "src/f16-vbinary/gen/vsqrdiffc-neonfp16arith-x16.c",
5111    "src/f16-vbinary/gen/vsub-minmax-neonfp16arith-x8.c",
5112    "src/f16-vbinary/gen/vsub-minmax-neonfp16arith-x16.c",
5113    "src/f16-vbinary/gen/vsubc-minmax-neonfp16arith-x8.c",
5114    "src/f16-vbinary/gen/vsubc-minmax-neonfp16arith-x16.c",
5115    "src/f16-vclamp/gen/vclamp-neonfp16arith-x8.c",
5116    "src/f16-vclamp/gen/vclamp-neonfp16arith-x16.c",
5117    "src/f16-velu/gen/velu-neonfp16arith-rr1-p3-x8.c",
5118    "src/f16-velu/gen/velu-neonfp16arith-rr1-p3-x16.c",
5119    "src/f16-vhswish/gen/vhswish-neonfp16arith-x8.c",
5120    "src/f16-vhswish/gen/vhswish-neonfp16arith-x16.c",
5121    "src/f16-vlrelu/gen/vlrelu-neonfp16arith-x8.c",
5122    "src/f16-vlrelu/gen/vlrelu-neonfp16arith-x16.c",
5123    "src/f16-vmulcaddc/gen/c8-minmax-neonfp16arith-2x.c",
5124    "src/f16-vmulcaddc/gen/c16-minmax-neonfp16arith-2x.c",
5125    "src/f16-vrnd/gen/vrndd-neonfp16arith-x8.c",
5126    "src/f16-vrnd/gen/vrndd-neonfp16arith-x16.c",
5127    "src/f16-vrnd/gen/vrndne-neonfp16arith-x8.c",
5128    "src/f16-vrnd/gen/vrndne-neonfp16arith-x16.c",
5129    "src/f16-vrnd/gen/vrndu-neonfp16arith-x8.c",
5130    "src/f16-vrnd/gen/vrndu-neonfp16arith-x16.c",
5131    "src/f16-vrnd/gen/vrndz-neonfp16arith-x8.c",
5132    "src/f16-vrnd/gen/vrndz-neonfp16arith-x16.c",
5133    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1fma-x8.c",
5134    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1fma-x16.c",
5135    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1fma-x24.c",
5136    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1fma-x32.c",
5137    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1fma-x40.c",
5138    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1fma-x48.c",
5139    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1fma-x56.c",
5140    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1fma-x64.c",
5141    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1recps-x8.c",
5142    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1recps-x16.c",
5143    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1recps-x24.c",
5144    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1recps-x32.c",
5145    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1recps-x40.c",
5146    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1recps-x48.c",
5147    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1recps-x56.c",
5148    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-nr1recps-x64.c",
5149    "src/f16-vunary/gen/vabs-neonfp16arith-x8.c",
5150    "src/f16-vunary/gen/vabs-neonfp16arith-x16.c",
5151    "src/f16-vunary/gen/vneg-neonfp16arith-x8.c",
5152    "src/f16-vunary/gen/vneg-neonfp16arith-x16.c",
5153    "src/f16-vunary/gen/vsqr-neonfp16arith-x8.c",
5154    "src/f16-vunary/gen/vsqr-neonfp16arith-x16.c",
5155    "src/math/exp-f16-neonfp16arith-rr2-p3.c",
5156    "src/math/expminus-f16-neonfp16arith-rr1-p2.c",
5157    "src/math/expminus-f16-neonfp16arith-rr1-p3.c",
5158    "src/math/expminus-f16-neonfp16arith-rr2-p2.c",
5159    "src/math/expminus-f16-neonfp16arith-rr2-p3.c",
5160    "src/math/expm1minus-f16-neonfp16arith-rr1-p3.c",
5161    "src/math/expm1minus-f16-neonfp16arith-rr2-p3.c",
5162    "src/math/sigmoid-f16-neonfp16arith-rr2-p2-nr1fma.c",
5163    "src/math/sigmoid-f16-neonfp16arith-rr2-p2-nr1recps.c",
5164    "src/math/sigmoid-f16-neonfp16arith-rr2-p2-recpe.c",
5165    "src/math/sigmoid-f16-neonfp16arith-rr2-p3-nr1fma.c",
5166    "src/math/sigmoid-f16-neonfp16arith-rr2-p3-nr1recps.c",
5167    "src/math/sigmoid-f16-neonfp16arith-rr2-p3-recpe.c",
5168]
5169
5170PROD_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS = [
5171    "src/f16-conv-hwc2chw/3x3s2p1c3x4-neonfp16arith-2x2.c",
5172    "src/f16-dwconv2d-chw/gen/3x3p1-minmax-neonfp16arith-2x8.c",
5173    "src/f16-dwconv2d-chw/gen/3x3s2p1-minmax-neonfp16arith-1x4.c",
5174    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-1x4.c",
5175    "src/f16-dwconv2d-chw/gen/5x5s2p2-minmax-neonfp16arith-1x4.c",
5176    "src/f16-vbinary/gen/vdiv-minmax-neonfp16arith-x8.c",
5177    "src/f16-vbinary/gen/vdivc-minmax-neonfp16arith-x8.c",
5178    "src/f16-vbinary/gen/vrdivc-minmax-neonfp16arith-x8.c",
5179    "src/f16-vsqrt/gen/neonfp16arith-sqrt-x8.c",
5180]
5181
5182ALL_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS = [
5183    "src/f16-conv-hwc2chw/3x3s2p1c3x4-neonfp16arith-2x2.c",
5184    "src/f16-dwconv2d-chw/gen/3x3p1-minmax-neonfp16arith-1x8-acc2.c",
5185    "src/f16-dwconv2d-chw/gen/3x3p1-minmax-neonfp16arith-1x8-acc3.c",
5186    "src/f16-dwconv2d-chw/gen/3x3p1-minmax-neonfp16arith-1x8-acc4.c",
5187    "src/f16-dwconv2d-chw/gen/3x3p1-minmax-neonfp16arith-1x8.c",
5188    "src/f16-dwconv2d-chw/gen/3x3p1-minmax-neonfp16arith-2x8-acc2.c",
5189    "src/f16-dwconv2d-chw/gen/3x3p1-minmax-neonfp16arith-2x8.c",
5190    "src/f16-dwconv2d-chw/gen/3x3p1-minmax-neonfp16arith-3x8.c",
5191    "src/f16-dwconv2d-chw/gen/3x3p1-minmax-neonfp16arith-4x8.c",
5192    "src/f16-dwconv2d-chw/gen/3x3p1-minmax-neonfp16arith-5x8.c",
5193    "src/f16-dwconv2d-chw/gen/3x3p1-minmax-neonfp16arith-6x8.c",
5194    "src/f16-dwconv2d-chw/gen/3x3s2p1-minmax-neonfp16arith-1x4-acc2.c",
5195    "src/f16-dwconv2d-chw/gen/3x3s2p1-minmax-neonfp16arith-1x4-acc3.c",
5196    "src/f16-dwconv2d-chw/gen/3x3s2p1-minmax-neonfp16arith-1x4-acc4.c",
5197    "src/f16-dwconv2d-chw/gen/3x3s2p1-minmax-neonfp16arith-1x4.c",
5198    "src/f16-dwconv2d-chw/gen/3x3s2p1-minmax-neonfp16arith-2x4-acc2.c",
5199    "src/f16-dwconv2d-chw/gen/3x3s2p1-minmax-neonfp16arith-2x4.c",
5200    "src/f16-dwconv2d-chw/gen/3x3s2p1-minmax-neonfp16arith-3x4.c",
5201    "src/f16-dwconv2d-chw/gen/3x3s2p1-minmax-neonfp16arith-4x4.c",
5202    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-1x4-acc2.c",
5203    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-1x4-acc3.c",
5204    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-1x4-acc4.c",
5205    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-1x4-acc5.c",
5206    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-1x4.c",
5207    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-2x4-acc2.c",
5208    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-2x4-acc3.c",
5209    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-2x4.c",
5210    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-3x4-acc2.c",
5211    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-3x4.c",
5212    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-4x4-acc2.c",
5213    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-4x4.c",
5214    "src/f16-dwconv2d-chw/gen/5x5p2-minmax-neonfp16arith-5x4.c",
5215    "src/f16-dwconv2d-chw/gen/5x5s2p2-minmax-neonfp16arith-1x4-acc2.c",
5216    "src/f16-dwconv2d-chw/gen/5x5s2p2-minmax-neonfp16arith-1x4-acc3.c",
5217    "src/f16-dwconv2d-chw/gen/5x5s2p2-minmax-neonfp16arith-1x4-acc4.c",
5218    "src/f16-dwconv2d-chw/gen/5x5s2p2-minmax-neonfp16arith-1x4-acc5.c",
5219    "src/f16-dwconv2d-chw/gen/5x5s2p2-minmax-neonfp16arith-1x4.c",
5220    "src/f16-dwconv2d-chw/gen/5x5s2p2-minmax-neonfp16arith-2x4-acc2.c",
5221    "src/f16-dwconv2d-chw/gen/5x5s2p2-minmax-neonfp16arith-2x4-acc3.c",
5222    "src/f16-dwconv2d-chw/gen/5x5s2p2-minmax-neonfp16arith-2x4.c",
5223    "src/f16-dwconv2d-chw/gen/5x5s2p2-minmax-neonfp16arith-3x4-acc2.c",
5224    "src/f16-dwconv2d-chw/gen/5x5s2p2-minmax-neonfp16arith-3x4.c",
5225    "src/f16-vbinary/gen/vdiv-minmax-neonfp16arith-x8.c",
5226    "src/f16-vbinary/gen/vdiv-minmax-neonfp16arith-x16.c",
5227    "src/f16-vbinary/gen/vdivc-minmax-neonfp16arith-x8.c",
5228    "src/f16-vbinary/gen/vdivc-minmax-neonfp16arith-x16.c",
5229    "src/f16-vbinary/gen/vrdivc-minmax-neonfp16arith-x8.c",
5230    "src/f16-vbinary/gen/vrdivc-minmax-neonfp16arith-x16.c",
5231    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-div-x8.c",
5232    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-div-x16.c",
5233    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-div-x24.c",
5234    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-div-x32.c",
5235    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-div-x40.c",
5236    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-div-x48.c",
5237    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-div-x56.c",
5238    "src/f16-vsigmoid/gen/vsigmoid-neonfp16arith-rr2-p2-div-x64.c",
5239    "src/f16-vsqrt/gen/neonfp16arith-sqrt-x8.c",
5240    "src/f16-vsqrt/gen/neonfp16arith-sqrt-x16.c",
5241    "src/math/sigmoid-f16-neonfp16arith-rr1-p2-div.c",
5242    "src/math/sigmoid-f16-neonfp16arith-rr1-p3-div.c",
5243    "src/math/sigmoid-f16-neonfp16arith-rr2-p2-div.c",
5244    "src/math/sigmoid-f16-neonfp16arith-rr2-p3-div.c",
5245]
5246
5247PROD_NEONBF16_MICROKERNEL_SRCS = [
5248]
5249
5250ALL_NEONBF16_MICROKERNEL_SRCS = [
5251    "src/bf16-gemm/gen/1x4c8-minmax-neonbf16-bfdot.c",
5252    "src/bf16-gemm/gen/1x4c8-minmax-neonbf16-bfmlal.c",
5253    "src/bf16-gemm/gen/1x8c2-minmax-neonbf16-bfdot-lane-ld128.c",
5254    "src/bf16-gemm/gen/2x4c8-minmax-neonbf16-bfdot.c",
5255    "src/bf16-gemm/gen/2x4c8-minmax-neonbf16-bfmlal.c",
5256    "src/bf16-gemm/gen/3x4c8-minmax-neonbf16-bfdot.c",
5257    "src/bf16-gemm/gen/3x4c8-minmax-neonbf16-bfmlal.c",
5258    "src/bf16-gemm/gen/4x4c8-minmax-neonbf16-bfdot.c",
5259    "src/bf16-gemm/gen/4x4c8-minmax-neonbf16-bfmlal.c",
5260    "src/bf16-gemm/gen/4x8c2-minmax-neonbf16-bfdot-lane-ld128.c",
5261    "src/bf16-gemm/gen/5x4c8-minmax-neonbf16-bfdot.c",
5262    "src/bf16-gemm/gen/5x4c8-minmax-neonbf16-bfmlal.c",
5263    "src/bf16-gemm/gen/5x8c2-minmax-neonbf16-bfdot-lane-ld128.c",
5264    "src/bf16-gemm/gen/6x8c2-minmax-neonbf16-bfdot-lane-ld128.c",
5265]
5266
5267PROD_AARCH64_NEONBF16_MICROKERNEL_SRCS = [
5268]
5269
5270ALL_AARCH64_NEONBF16_MICROKERNEL_SRCS = [
5271]
5272
5273PROD_NEONDOT_MICROKERNEL_SRCS = [
5274    "src/qc8-gemm/gen/1x8c4-minmax-fp32-neondot.c",
5275    "src/qc8-gemm/gen/1x16c4-minmax-fp32-neondot.c",
5276    "src/qc8-gemm/gen/4x8c4-minmax-fp32-neondot.c",
5277    "src/qc8-gemm/gen/4x16c4-minmax-fp32-neondot.c",
5278    "src/qc8-igemm/gen/1x8c4-minmax-fp32-neondot.c",
5279    "src/qc8-igemm/gen/1x16c4-minmax-fp32-neondot.c",
5280    "src/qc8-igemm/gen/4x8c4-minmax-fp32-neondot.c",
5281    "src/qc8-igemm/gen/4x16c4-minmax-fp32-neondot.c",
5282    "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neondot.c",
5283    "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neondot.c",
5284    "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neondot.c",
5285    "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neondot.c",
5286    "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neondot.c",
5287    "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neondot.c",
5288    "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neondot.c",
5289    "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neondot.c",
5290    "src/qu8-gemm/gen/1x8c4-minmax-rndnu-neondot.c",
5291    "src/qu8-gemm/gen/1x16c4-minmax-rndnu-neondot.c",
5292    "src/qu8-gemm/gen/4x8c4-minmax-rndnu-neondot.c",
5293    "src/qu8-gemm/gen/4x16c4-minmax-rndnu-neondot.c",
5294    "src/qu8-igemm/gen/1x8c4-minmax-rndnu-neondot.c",
5295    "src/qu8-igemm/gen/1x16c4-minmax-rndnu-neondot.c",
5296    "src/qu8-igemm/gen/4x8c4-minmax-rndnu-neondot.c",
5297    "src/qu8-igemm/gen/4x16c4-minmax-rndnu-neondot.c",
5298]
5299
5300ALL_NEONDOT_MICROKERNEL_SRCS = [
5301    "src/qc8-gemm/gen/1x8c4-minmax-fp32-neondot.c",
5302    "src/qc8-gemm/gen/1x16c4-minmax-fp32-neondot.c",
5303    "src/qc8-gemm/gen/4x8c4-minmax-fp32-neondot.c",
5304    "src/qc8-gemm/gen/4x16c4-minmax-fp32-neondot.c",
5305    "src/qc8-gemm/gen/6x8c4-minmax-fp32-neondot.c",
5306    "src/qc8-gemm/gen/6x16c4-minmax-fp32-neondot.c",
5307    "src/qc8-gemm/gen/8x8c4-minmax-fp32-neondot.c",
5308    "src/qc8-gemm/gen/8x16c4-minmax-fp32-neondot.c",
5309    "src/qc8-igemm/gen/1x8c4-minmax-fp32-neondot.c",
5310    "src/qc8-igemm/gen/1x16c4-minmax-fp32-neondot.c",
5311    "src/qc8-igemm/gen/4x8c4-minmax-fp32-neondot.c",
5312    "src/qc8-igemm/gen/4x16c4-minmax-fp32-neondot.c",
5313    "src/qc8-igemm/gen/6x8c4-minmax-fp32-neondot.c",
5314    "src/qc8-igemm/gen/6x16c4-minmax-fp32-neondot.c",
5315    "src/qc8-igemm/gen/8x8c4-minmax-fp32-neondot.c",
5316    "src/qc8-igemm/gen/8x16c4-minmax-fp32-neondot.c",
5317    "src/qs8-gemm/gen/1x8c4-minmax-fp32-neondot.c",
5318    "src/qs8-gemm/gen/1x8c4-minmax-rndnu-neondot.c",
5319    "src/qs8-gemm/gen/1x16c4-minmax-rndnu-neondot.c",
5320    "src/qs8-gemm/gen/4x8c4-minmax-rndnu-neondot.c",
5321    "src/qs8-gemm/gen/4x16c4-minmax-rndnu-neondot.c",
5322    "src/qs8-gemm/gen/6x8c4-minmax-rndnu-neondot.c",
5323    "src/qs8-gemm/gen/6x16c4-minmax-rndnu-neondot.c",
5324    "src/qs8-gemm/gen/8x8c4-minmax-rndnu-neondot.c",
5325    "src/qs8-gemm/gen/8x16c4-minmax-rndnu-neondot.c",
5326    "src/qs8-igemm/gen/1x8c4-minmax-fp32-neondot.c",
5327    "src/qs8-igemm/gen/1x8c4-minmax-rndnu-neondot.c",
5328    "src/qs8-igemm/gen/1x16c4-minmax-rndnu-neondot.c",
5329    "src/qs8-igemm/gen/4x8c4-minmax-rndnu-neondot.c",
5330    "src/qs8-igemm/gen/4x16c4-minmax-rndnu-neondot.c",
5331    "src/qs8-igemm/gen/6x8c4-minmax-rndnu-neondot.c",
5332    "src/qs8-igemm/gen/6x16c4-minmax-rndnu-neondot.c",
5333    "src/qs8-igemm/gen/8x8c4-minmax-rndnu-neondot.c",
5334    "src/qs8-igemm/gen/8x16c4-minmax-rndnu-neondot.c",
5335    "src/qu8-gemm/gen/1x8c4-minmax-rndnu-neondot.c",
5336    "src/qu8-gemm/gen/1x16c4-minmax-fp32-neondot.c",
5337    "src/qu8-gemm/gen/1x16c4-minmax-rndnu-neondot.c",
5338    "src/qu8-gemm/gen/1x32c4-minmax-rndnu-neondot.c",
5339    "src/qu8-gemm/gen/2x8c4-minmax-rndnu-neondot.c",
5340    "src/qu8-gemm/gen/2x16c4-minmax-fp32-neondot.c",
5341    "src/qu8-gemm/gen/2x16c4-minmax-rndnu-neondot.c",
5342    "src/qu8-gemm/gen/2x32c4-minmax-rndnu-neondot.c",
5343    "src/qu8-gemm/gen/3x8c4-minmax-rndnu-neondot.c",
5344    "src/qu8-gemm/gen/3x16c4-minmax-rndnu-neondot.c",
5345    "src/qu8-gemm/gen/3x32c4-minmax-rndnu-neondot.c",
5346    "src/qu8-gemm/gen/4x8c4-minmax-rndnu-neondot.c",
5347    "src/qu8-gemm/gen/4x16c4-minmax-fp32-neondot.c",
5348    "src/qu8-gemm/gen/4x16c4-minmax-rndnu-neondot.c",
5349    "src/qu8-gemm/gen/5x8c4-minmax-rndnu-neondot.c",
5350    "src/qu8-gemm/gen/5x16c4-minmax-rndnu-neondot.c",
5351    "src/qu8-gemm/gen/6x8c4-minmax-rndnu-neondot.c",
5352    "src/qu8-gemm/gen/6x16c4-minmax-rndnu-neondot.c",
5353    "src/qu8-gemm/gen/8x8c4-minmax-rndnu-neondot.c",
5354    "src/qu8-gemm/gen/8x16c4-minmax-rndnu-neondot.c",
5355    "src/qu8-igemm/gen/1x8c4-minmax-rndnu-neondot.c",
5356    "src/qu8-igemm/gen/1x16c4-minmax-fp32-neondot.c",
5357    "src/qu8-igemm/gen/1x16c4-minmax-rndnu-neondot.c",
5358    "src/qu8-igemm/gen/1x32c4-minmax-rndnu-neondot.c",
5359    "src/qu8-igemm/gen/2x8c4-minmax-rndnu-neondot.c",
5360    "src/qu8-igemm/gen/2x16c4-minmax-fp32-neondot.c",
5361    "src/qu8-igemm/gen/2x16c4-minmax-rndnu-neondot.c",
5362    "src/qu8-igemm/gen/2x32c4-minmax-rndnu-neondot.c",
5363    "src/qu8-igemm/gen/3x8c4-minmax-rndnu-neondot.c",
5364    "src/qu8-igemm/gen/3x16c4-minmax-rndnu-neondot.c",
5365    "src/qu8-igemm/gen/3x32c4-minmax-rndnu-neondot.c",
5366    "src/qu8-igemm/gen/4x8c4-minmax-rndnu-neondot.c",
5367    "src/qu8-igemm/gen/4x16c4-minmax-fp32-neondot.c",
5368    "src/qu8-igemm/gen/4x16c4-minmax-rndnu-neondot.c",
5369    "src/qu8-igemm/gen/5x8c4-minmax-rndnu-neondot.c",
5370    "src/qu8-igemm/gen/5x16c4-minmax-rndnu-neondot.c",
5371    "src/qu8-igemm/gen/6x8c4-minmax-rndnu-neondot.c",
5372    "src/qu8-igemm/gen/6x16c4-minmax-rndnu-neondot.c",
5373    "src/qu8-igemm/gen/8x8c4-minmax-rndnu-neondot.c",
5374    "src/qu8-igemm/gen/8x16c4-minmax-rndnu-neondot.c",
5375]
5376
5377PROD_SSE_MICROKERNEL_SRCS = [
5378    "src/f32-avgpool/9p8x-minmax-sse-c4.c",
5379    "src/f32-avgpool/9x-minmax-sse-c4.c",
5380    "src/f32-conv-hwc2chw/3x3s2p1c3x4-sse-2x2.c",
5381    "src/f32-dwconv/gen/up8x3-minmax-sse.c",
5382    "src/f32-dwconv/gen/up8x4-minmax-sse.c",
5383    "src/f32-dwconv/gen/up8x9-minmax-sse.c",
5384    "src/f32-dwconv/gen/up8x25-minmax-sse.c",
5385    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-sse-2x4-acc2.c",
5386    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-sse-1x4-acc3.c",
5387    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-4x4.c",
5388    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-sse-2x4.c",
5389    "src/f32-gavgpool-cw/sse-x4.c",
5390    "src/f32-gavgpool/7p7x-minmax-sse-c4.c",
5391    "src/f32-gavgpool/7x-minmax-sse-c4.c",
5392    "src/f32-gemm/gen/1x8-minmax-sse-load1.c",
5393    "src/f32-gemm/gen/4x2c4-minmax-sse.c",
5394    "src/f32-gemm/gen/4x8-minmax-sse-load1.c",
5395    "src/f32-ibilinear-chw/gen/sse-p8.c",
5396    "src/f32-ibilinear/gen/sse-c8.c",
5397    "src/f32-igemm/gen/1x8-minmax-sse-load1.c",
5398    "src/f32-igemm/gen/4x2c4-minmax-sse.c",
5399    "src/f32-igemm/gen/4x8-minmax-sse-load1.c",
5400    "src/f32-maxpool/9p8x-minmax-sse-c4.c",
5401    "src/f32-pavgpool/9p8x-minmax-sse-c4.c",
5402    "src/f32-pavgpool/9x-minmax-sse-c4.c",
5403    "src/f32-rmax/sse.c",
5404    "src/f32-spmm/gen/32x1-minmax-sse.c",
5405    "src/f32-vbinary/gen/vadd-minmax-sse-x8.c",
5406    "src/f32-vbinary/gen/vaddc-minmax-sse-x8.c",
5407    "src/f32-vbinary/gen/vdiv-minmax-sse-x8.c",
5408    "src/f32-vbinary/gen/vdivc-minmax-sse-x8.c",
5409    "src/f32-vbinary/gen/vmax-sse-x8.c",
5410    "src/f32-vbinary/gen/vmaxc-sse-x8.c",
5411    "src/f32-vbinary/gen/vmin-sse-x8.c",
5412    "src/f32-vbinary/gen/vminc-sse-x8.c",
5413    "src/f32-vbinary/gen/vmul-minmax-sse-x8.c",
5414    "src/f32-vbinary/gen/vmulc-minmax-sse-x8.c",
5415    "src/f32-vbinary/gen/vrdivc-minmax-sse-x8.c",
5416    "src/f32-vbinary/gen/vrsubc-minmax-sse-x8.c",
5417    "src/f32-vbinary/gen/vsqrdiff-sse-x8.c",
5418    "src/f32-vbinary/gen/vsqrdiffc-sse-x8.c",
5419    "src/f32-vbinary/gen/vsub-minmax-sse-x8.c",
5420    "src/f32-vbinary/gen/vsubc-minmax-sse-x8.c",
5421    "src/f32-vclamp/gen/vclamp-sse-x8.c",
5422    "src/f32-vhswish/gen/vhswish-sse-x8.c",
5423    "src/f32-vlrelu/gen/vlrelu-sse-x8.c",
5424    "src/f32-vmulcaddc/gen/c4-minmax-sse-2x.c",
5425    "src/f32-vsqrt/gen/sse-sqrt-x4.c",
5426    "src/f32-vunary/gen/vabs-sse-x8.c",
5427    "src/f32-vunary/gen/vneg-sse-x8.c",
5428    "src/f32-vunary/gen/vsqr-sse-x8.c",
5429    "src/x32-packx/x4-sse.c",
5430    "src/x32-transposec/4x4-sse.c",
5431]
5432
5433ALL_SSE_MICROKERNEL_SRCS = [
5434    "src/f32-avgpool/9p8x-minmax-sse-c4.c",
5435    "src/f32-avgpool/9x-minmax-sse-c4.c",
5436    "src/f32-conv-hwc2chw/3x3s2p1c3x4-sse-1x1.c",
5437    "src/f32-conv-hwc2chw/3x3s2p1c3x4-sse-2x2.c",
5438    "src/f32-dwconv/gen/up4x3-minmax-sse-acc2.c",
5439    "src/f32-dwconv/gen/up4x3-minmax-sse.c",
5440    "src/f32-dwconv/gen/up4x4-minmax-sse-acc2.c",
5441    "src/f32-dwconv/gen/up4x4-minmax-sse.c",
5442    "src/f32-dwconv/gen/up4x9-minmax-sse-acc2.c",
5443    "src/f32-dwconv/gen/up4x9-minmax-sse.c",
5444    "src/f32-dwconv/gen/up4x25-minmax-sse-acc2.c",
5445    "src/f32-dwconv/gen/up4x25-minmax-sse.c",
5446    "src/f32-dwconv/gen/up8x3-minmax-sse-acc2.c",
5447    "src/f32-dwconv/gen/up8x3-minmax-sse.c",
5448    "src/f32-dwconv/gen/up8x4-minmax-sse-acc2.c",
5449    "src/f32-dwconv/gen/up8x4-minmax-sse.c",
5450    "src/f32-dwconv/gen/up8x9-minmax-sse-acc2.c",
5451    "src/f32-dwconv/gen/up8x9-minmax-sse.c",
5452    "src/f32-dwconv/gen/up8x25-minmax-sse-acc2.c",
5453    "src/f32-dwconv/gen/up8x25-minmax-sse.c",
5454    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-sse-1x4-acc2.c",
5455    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-sse-1x4-acc3.c",
5456    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-sse-1x4-acc4.c",
5457    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-sse-1x4.c",
5458    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-sse-2x4-acc2.c",
5459    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-sse-2x4.c",
5460    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-sse-3x4.c",
5461    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-sse-4x4.c",
5462    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-sse-5x4.c",
5463    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-sse-6x4.c",
5464    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-sse-1x4-acc2.c",
5465    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-sse-1x4-acc3.c",
5466    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-sse-1x4-acc4.c",
5467    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-sse-1x4.c",
5468    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-sse-2x4-acc2.c",
5469    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-sse-2x4.c",
5470    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-sse-3x4.c",
5471    "src/f32-dwconv2d-chw/gen/3x3s2p1-minmax-sse-4x4.c",
5472    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-1x4-acc2.c",
5473    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-1x4-acc3.c",
5474    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-1x4-acc4.c",
5475    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-1x4-acc5.c",
5476    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-1x4.c",
5477    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-2x4-acc2.c",
5478    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-2x4-acc3.c",
5479    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-2x4.c",
5480    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-3x4-acc2.c",
5481    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-3x4.c",
5482    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-4x4-acc2.c",
5483    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-4x4.c",
5484    "src/f32-dwconv2d-chw/gen/5x5p2-minmax-sse-5x4.c",
5485    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-sse-1x4-acc2.c",
5486    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-sse-1x4-acc3.c",
5487    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-sse-1x4-acc4.c",
5488    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-sse-1x4-acc5.c",
5489    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-sse-1x4.c",
5490    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-sse-2x4-acc2.c",
5491    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-sse-2x4-acc3.c",
5492    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-sse-2x4.c",
5493    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-sse-3x4-acc2.c",
5494    "src/f32-dwconv2d-chw/gen/5x5s2p2-minmax-sse-3x4.c",
5495    "src/f32-gavgpool-cw/sse-x4.c",
5496    "src/f32-gavgpool/7p7x-minmax-sse-c4.c",
5497    "src/f32-gavgpool/7x-minmax-sse-c4.c",
5498    "src/f32-gemm/gen-inc/1x8inc-minmax-sse-dup.c",
5499    "src/f32-gemm/gen-inc/1x8inc-minmax-sse-load1.c",
5500    "src/f32-gemm/gen-inc/1x8s4inc-minmax-sse.c",
5501    "src/f32-gemm/gen-inc/3x8inc-minmax-sse-dup.c",
5502    "src/f32-gemm/gen-inc/3x8inc-minmax-sse-load1.c",
5503    "src/f32-gemm/gen-inc/3x8s4inc-minmax-sse.c",
5504    "src/f32-gemm/gen-inc/4x8inc-minmax-sse-dup.c",
5505    "src/f32-gemm/gen-inc/4x8inc-minmax-sse-load1.c",
5506    "src/f32-gemm/gen-inc/4x8s4inc-minmax-sse.c",
5507    "src/f32-gemm/gen-inc/5x8inc-minmax-sse-dup.c",
5508    "src/f32-gemm/gen-inc/5x8inc-minmax-sse-load1.c",
5509    "src/f32-gemm/gen-inc/5x8s4inc-minmax-sse.c",
5510    "src/f32-gemm/gen/1x8-minmax-sse-dup.c",
5511    "src/f32-gemm/gen/1x8-minmax-sse-load1.c",
5512    "src/f32-gemm/gen/1x8s4-minmax-sse.c",
5513    "src/f32-gemm/gen/3x8-minmax-sse-dup.c",
5514    "src/f32-gemm/gen/3x8-minmax-sse-load1.c",
5515    "src/f32-gemm/gen/3x8s4-minmax-sse.c",
5516    "src/f32-gemm/gen/4x2c4-minmax-sse.c",
5517    "src/f32-gemm/gen/4x8-minmax-sse-dup.c",
5518    "src/f32-gemm/gen/4x8-minmax-sse-load1.c",
5519    "src/f32-gemm/gen/4x8s4-minmax-sse.c",
5520    "src/f32-gemm/gen/5x8-minmax-sse-dup.c",
5521    "src/f32-gemm/gen/5x8-minmax-sse-load1.c",
5522    "src/f32-gemm/gen/5x8s4-minmax-sse.c",
5523    "src/f32-ibilinear-chw/gen/sse-p4.c",
5524    "src/f32-ibilinear-chw/gen/sse-p8.c",
5525    "src/f32-ibilinear/gen/sse-c4.c",
5526    "src/f32-ibilinear/gen/sse-c8.c",
5527    "src/f32-igemm/gen/1x8-minmax-sse-dup.c",
5528    "src/f32-igemm/gen/1x8-minmax-sse-load1.c",
5529    "src/f32-igemm/gen/1x8s4-minmax-sse.c",
5530    "src/f32-igemm/gen/3x8-minmax-sse-dup.c",
5531    "src/f32-igemm/gen/3x8-minmax-sse-load1.c",
5532    "src/f32-igemm/gen/3x8s4-minmax-sse.c",
5533    "src/f32-igemm/gen/4x2c4-minmax-sse.c",
5534    "src/f32-igemm/gen/4x8-minmax-sse-dup.c",
5535    "src/f32-igemm/gen/4x8-minmax-sse-load1.c",
5536    "src/f32-igemm/gen/4x8s4-minmax-sse.c",
5537    "src/f32-igemm/gen/5x8-minmax-sse-dup.c",
5538    "src/f32-igemm/gen/5x8-minmax-sse-load1.c",
5539    "src/f32-igemm/gen/5x8s4-minmax-sse.c",
5540    "src/f32-maxpool/9p8x-minmax-sse-c4.c",
5541    "src/f32-pavgpool/9p8x-minmax-sse-c4.c",
5542    "src/f32-pavgpool/9x-minmax-sse-c4.c",
5543    "src/f32-ppmm/gen/4x8-minmax-sse.c",
5544    "src/f32-prelu/gen/sse-2x4.c",
5545    "src/f32-prelu/gen/sse-2x8.c",
5546    "src/f32-rmax/sse.c",
5547    "src/f32-spmm/gen/4x1-minmax-sse.c",
5548    "src/f32-spmm/gen/8x1-minmax-sse.c",
5549    "src/f32-spmm/gen/16x1-minmax-sse.c",
5550    "src/f32-spmm/gen/32x1-minmax-sse.c",
5551    "src/f32-vbinary/gen/vadd-minmax-sse-x4.c",
5552    "src/f32-vbinary/gen/vadd-minmax-sse-x8.c",
5553    "src/f32-vbinary/gen/vaddc-minmax-sse-x4.c",
5554    "src/f32-vbinary/gen/vaddc-minmax-sse-x8.c",
5555    "src/f32-vbinary/gen/vdiv-minmax-sse-x4.c",
5556    "src/f32-vbinary/gen/vdiv-minmax-sse-x8.c",
5557    "src/f32-vbinary/gen/vdivc-minmax-sse-x4.c",
5558    "src/f32-vbinary/gen/vdivc-minmax-sse-x8.c",
5559    "src/f32-vbinary/gen/vmax-sse-x4.c",
5560    "src/f32-vbinary/gen/vmax-sse-x8.c",
5561    "src/f32-vbinary/gen/vmaxc-sse-x4.c",
5562    "src/f32-vbinary/gen/vmaxc-sse-x8.c",
5563    "src/f32-vbinary/gen/vmin-sse-x4.c",
5564    "src/f32-vbinary/gen/vmin-sse-x8.c",
5565    "src/f32-vbinary/gen/vminc-sse-x4.c",
5566    "src/f32-vbinary/gen/vminc-sse-x8.c",
5567    "src/f32-vbinary/gen/vmul-minmax-sse-x4.c",
5568    "src/f32-vbinary/gen/vmul-minmax-sse-x8.c",
5569    "src/f32-vbinary/gen/vmulc-minmax-sse-x4.c",
5570    "src/f32-vbinary/gen/vmulc-minmax-sse-x8.c",
5571    "src/f32-vbinary/gen/vrdivc-minmax-sse-x4.c",
5572    "src/f32-vbinary/gen/vrdivc-minmax-sse-x8.c",
5573    "src/f32-vbinary/gen/vrsubc-minmax-sse-x4.c",
5574    "src/f32-vbinary/gen/vrsubc-minmax-sse-x8.c",
5575    "src/f32-vbinary/gen/vsqrdiff-sse-x4.c",
5576    "src/f32-vbinary/gen/vsqrdiff-sse-x8.c",
5577    "src/f32-vbinary/gen/vsqrdiffc-sse-x4.c",
5578    "src/f32-vbinary/gen/vsqrdiffc-sse-x8.c",
5579    "src/f32-vbinary/gen/vsub-minmax-sse-x4.c",
5580    "src/f32-vbinary/gen/vsub-minmax-sse-x8.c",
5581    "src/f32-vbinary/gen/vsubc-minmax-sse-x4.c",
5582    "src/f32-vbinary/gen/vsubc-minmax-sse-x8.c",
5583    "src/f32-vclamp/gen/vclamp-sse-x4.c",
5584    "src/f32-vclamp/gen/vclamp-sse-x8.c",
5585    "src/f32-vhswish/gen/vhswish-sse-x4.c",
5586    "src/f32-vhswish/gen/vhswish-sse-x8.c",
5587    "src/f32-vlrelu/gen/vlrelu-sse-x4.c",
5588    "src/f32-vlrelu/gen/vlrelu-sse-x8.c",
5589    "src/f32-vmulcaddc/gen/c4-minmax-sse-2x.c",
5590    "src/f32-vmulcaddc/gen/c8-minmax-sse-2x.c",
5591    "src/f32-vrelu/gen/vrelu-sse-x4.c",
5592    "src/f32-vrelu/gen/vrelu-sse-x8.c",
5593    "src/f32-vsqrt/gen/sse-sqrt-x4.c",
5594    "src/f32-vsqrt/gen/sse-sqrt-x8.c",
5595    "src/f32-vunary/gen/vabs-sse-x4.c",
5596    "src/f32-vunary/gen/vabs-sse-x8.c",
5597    "src/f32-vunary/gen/vneg-sse-x4.c",
5598    "src/f32-vunary/gen/vneg-sse-x8.c",
5599    "src/f32-vunary/gen/vsqr-sse-x4.c",
5600    "src/f32-vunary/gen/vsqr-sse-x8.c",
5601    "src/math/roundd-sse-addsub.c",
5602    "src/math/roundne-sse-addsub.c",
5603    "src/math/roundu-sse-addsub.c",
5604    "src/math/roundz-sse-addsub.c",
5605    "src/math/sqrt-sse-hh1mac.c",
5606    "src/math/sqrt-sse-nr1mac.c",
5607    "src/math/sqrt-sse-nr2mac.c",
5608    "src/x32-packx/x4-sse.c",
5609    "src/x32-transposec/4x4-sse.c",
5610]
5611
5612PROD_SSE2_MICROKERNEL_SRCS = [
5613    "src/f16-f32-vcvt/gen/vcvt-sse2-int16-x32.c",
5614    "src/f16-vunary/gen/vabs-sse2-x16.c",
5615    "src/f16-vunary/gen/vneg-sse2-x16.c",
5616    "src/f32-argmaxpool/4x-sse2-c4.c",
5617    "src/f32-argmaxpool/9p8x-sse2-c4.c",
5618    "src/f32-argmaxpool/9x-sse2-c4.c",
5619    "src/f32-f16-vcvt/gen/vcvt-sse2-x16.c",
5620    "src/f32-prelu/gen/sse2-2x8.c",
5621    "src/f32-qs8-vcvt/gen/vcvt-sse2-x32.c",
5622    "src/f32-qu8-vcvt/gen/vcvt-sse2-x32.c",
5623    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x20-acc2.c",
5624    "src/f32-velu/gen/velu-sse2-rr2-lut16-p3-x12.c",
5625    "src/f32-vlrelu/gen/vlrelu-sse2-x8.c",
5626    "src/f32-vrnd/gen/vrndd-sse2-x8.c",
5627    "src/f32-vrnd/gen/vrndne-sse2-x8.c",
5628    "src/f32-vrnd/gen/vrndu-sse2-x8.c",
5629    "src/f32-vrnd/gen/vrndz-sse2-x8.c",
5630    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x8.c",
5631    "src/qc8-dwconv/gen/up8x3-minmax-fp32-sse2-mul16.c",
5632    "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16.c",
5633    "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16.c",
5634    "src/qc8-gemm/gen/1x4c8-minmax-fp32-sse2-ld64.c",
5635    "src/qc8-gemm/gen/3x4c8-minmax-fp32-sse2-ld64.c",
5636    "src/qc8-igemm/gen/1x4c8-minmax-fp32-sse2-ld64.c",
5637    "src/qc8-igemm/gen/3x4c8-minmax-fp32-sse2-ld64.c",
5638    "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16-add16.c",
5639    "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16-add16.c",
5640    "src/qs8-f32-vcvt/gen/vcvt-sse2-x32.c",
5641    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse2-c8.c",
5642    "src/qs8-gavgpool/gen/7x-minmax-fp32-sse2-c8.c",
5643    "src/qs8-gemm/gen/1x4c8-minmax-fp32-sse2-ld64.c",
5644    "src/qs8-gemm/gen/3x4c8-minmax-fp32-sse2-ld64.c",
5645    "src/qs8-igemm/gen/1x4c8-minmax-fp32-sse2-ld64.c",
5646    "src/qs8-igemm/gen/3x4c8-minmax-fp32-sse2-ld64.c",
5647    "src/qs8-vadd/gen/minmax-sse2-mul16-ld64-x8.c",
5648    "src/qs8-vaddc/gen/minmax-sse2-mul16-ld64-x8.c",
5649    "src/qs8-vcvt/gen/vcvt-sse2-x32.c",
5650    "src/qs8-vlrelu/gen/vlrelu-sse2-x32.c",
5651    "src/qs8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x8.c",
5652    "src/qs8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x8.c",
5653    "src/qu8-avgpool/9p8x-minmax-sse2-c8.c",
5654    "src/qu8-avgpool/9x-minmax-sse2-c8.c",
5655    "src/qu8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16.c",
5656    "src/qu8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16.c",
5657    "src/qu8-f32-vcvt/gen/vcvt-sse2-x32.c",
5658    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse2-c8.c",
5659    "src/qu8-gavgpool/gen/7x-minmax-fp32-sse2-c8.c",
5660    "src/qu8-gemm/gen/1x4c8-minmax-fp32-sse2-ld64.c",
5661    "src/qu8-gemm/gen/3x4c8-minmax-fp32-sse2-ld64.c",
5662    "src/qu8-igemm/gen/1x4c8-minmax-fp32-sse2-ld64.c",
5663    "src/qu8-igemm/gen/3x4c8-minmax-fp32-sse2-ld64.c",
5664    "src/qu8-vadd/gen/minmax-sse2-mul16-ld64-x8.c",
5665    "src/qu8-vaddc/gen/minmax-sse2-mul16-ld64-x8.c",
5666    "src/qu8-vcvt/gen/vcvt-sse2-x32.c",
5667    "src/qu8-vlrelu/gen/vlrelu-sse2-x32.c",
5668    "src/qu8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x8.c",
5669    "src/qu8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x8.c",
5670    "src/s8-ibilinear/gen/sse2-c8.c",
5671    "src/s8-maxpool/9p8x-minmax-sse2-c16.c",
5672    "src/s8-vclamp/sse2-x64.c",
5673    "src/u8-ibilinear/gen/sse2-c8.c",
5674    "src/u8-maxpool/9p8x-minmax-sse2-c16.c",
5675    "src/u8-rmax/sse2.c",
5676    "src/u8-vclamp/sse2-x64.c",
5677    "src/xx-fill/sse2-x64.c",
5678    "src/xx-pad/sse2.c",
5679    "src/x8-transposec/gen/16x16-reuse-mov-sse2.c",
5680    "src/x8-zip/xm-sse2.c",
5681    "src/x8-zip/x2-sse2.c",
5682    "src/x8-zip/x3-sse2.c",
5683    "src/x8-zip/x4-sse2.c",
5684    "src/x16-transposec/gen/8x8-reuse-multi-sse2.c",
5685    "src/x32-unpool/sse2.c",
5686    "src/x32-zip/xm-sse2.c",
5687    "src/x32-zip/x2-sse2.c",
5688    "src/x32-zip/x3-sse2.c",
5689    "src/x32-zip/x4-sse2.c",
5690]
5691
5692ALL_SSE2_MICROKERNEL_SRCS = [
5693    "src/f16-f32-vcvt/gen/vcvt-sse2-int16-x8.c",
5694    "src/f16-f32-vcvt/gen/vcvt-sse2-int16-x16.c",
5695    "src/f16-f32-vcvt/gen/vcvt-sse2-int16-x24.c",
5696    "src/f16-f32-vcvt/gen/vcvt-sse2-int16-x32.c",
5697    "src/f16-f32-vcvt/gen/vcvt-sse2-int32-x8.c",
5698    "src/f16-f32-vcvt/gen/vcvt-sse2-int32-x16.c",
5699    "src/f16-f32-vcvt/gen/vcvt-sse2-int32-x24.c",
5700    "src/f16-f32-vcvt/gen/vcvt-sse2-int32-x32.c",
5701    "src/f16-vunary/gen/vabs-sse2-x8.c",
5702    "src/f16-vunary/gen/vabs-sse2-x16.c",
5703    "src/f16-vunary/gen/vneg-sse2-x8.c",
5704    "src/f16-vunary/gen/vneg-sse2-x16.c",
5705    "src/f32-argmaxpool/4x-sse2-c4.c",
5706    "src/f32-argmaxpool/9p8x-sse2-c4.c",
5707    "src/f32-argmaxpool/9x-sse2-c4.c",
5708    "src/f32-f16-vcvt/gen/vcvt-sse2-x8.c",
5709    "src/f32-f16-vcvt/gen/vcvt-sse2-x16.c",
5710    "src/f32-f16-vcvt/gen/vcvt-sse2-x24.c",
5711    "src/f32-f16-vcvt/gen/vcvt-sse2-x32.c",
5712    "src/f32-gemm/gen-inc/1x8inc-minmax-sse2-dup.c",
5713    "src/f32-gemm/gen-inc/3x8inc-minmax-sse2-dup.c",
5714    "src/f32-gemm/gen-inc/4x8inc-minmax-sse2-dup.c",
5715    "src/f32-gemm/gen-inc/5x8inc-minmax-sse2-dup.c",
5716    "src/f32-gemm/gen/1x8-minmax-sse2-dup.c",
5717    "src/f32-gemm/gen/3x8-minmax-sse2-dup.c",
5718    "src/f32-gemm/gen/4x8-minmax-sse2-dup.c",
5719    "src/f32-gemm/gen/5x8-minmax-sse2-dup.c",
5720    "src/f32-igemm/gen/1x8-minmax-sse2-dup.c",
5721    "src/f32-igemm/gen/3x8-minmax-sse2-dup.c",
5722    "src/f32-igemm/gen/4x8-minmax-sse2-dup.c",
5723    "src/f32-igemm/gen/5x8-minmax-sse2-dup.c",
5724    "src/f32-prelu/gen/sse2-2x4.c",
5725    "src/f32-prelu/gen/sse2-2x8.c",
5726    "src/f32-qs8-vcvt/gen/vcvt-sse2-x8.c",
5727    "src/f32-qs8-vcvt/gen/vcvt-sse2-x16.c",
5728    "src/f32-qs8-vcvt/gen/vcvt-sse2-x24.c",
5729    "src/f32-qs8-vcvt/gen/vcvt-sse2-x32.c",
5730    "src/f32-qu8-vcvt/gen/vcvt-sse2-x8.c",
5731    "src/f32-qu8-vcvt/gen/vcvt-sse2-x16.c",
5732    "src/f32-qu8-vcvt/gen/vcvt-sse2-x24.c",
5733    "src/f32-qu8-vcvt/gen/vcvt-sse2-x32.c",
5734    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x4.c",
5735    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x8-acc2.c",
5736    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x8.c",
5737    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x12-acc2.c",
5738    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x12-acc3.c",
5739    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x12.c",
5740    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x16-acc2.c",
5741    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x16-acc4.c",
5742    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x16.c",
5743    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x20-acc2.c",
5744    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x20-acc5.c",
5745    "src/f32-raddstoreexpminusmax/gen/sse2-rr2-p5-x20.c",
5746    "src/f32-velu/gen/velu-sse2-rr2-lut16-p3-x4.c",
5747    "src/f32-velu/gen/velu-sse2-rr2-lut16-p3-x8.c",
5748    "src/f32-velu/gen/velu-sse2-rr2-lut16-p3-x12.c",
5749    "src/f32-velu/gen/velu-sse2-rr2-lut16-p3-x16.c",
5750    "src/f32-velu/gen/velu-sse2-rr2-lut16-p3-x20.c",
5751    "src/f32-velu/gen/velu-sse2-rr2-lut16-p3-x24.c",
5752    "src/f32-velu/gen/velu-sse2-rr2-p6-x4.c",
5753    "src/f32-velu/gen/velu-sse2-rr2-p6-x8.c",
5754    "src/f32-velu/gen/velu-sse2-rr2-p6-x12.c",
5755    "src/f32-velu/gen/velu-sse2-rr2-p6-x16.c",
5756    "src/f32-velu/gen/velu-sse2-rr2-p6-x20.c",
5757    "src/f32-velu/gen/velu-sse2-rr2-p6-x24.c",
5758    "src/f32-vlrelu/gen/vlrelu-sse2-x4.c",
5759    "src/f32-vlrelu/gen/vlrelu-sse2-x8.c",
5760    "src/f32-vrnd/gen/vrndd-sse2-x4.c",
5761    "src/f32-vrnd/gen/vrndd-sse2-x8.c",
5762    "src/f32-vrnd/gen/vrndne-sse2-x4.c",
5763    "src/f32-vrnd/gen/vrndne-sse2-x8.c",
5764    "src/f32-vrnd/gen/vrndu-sse2-x4.c",
5765    "src/f32-vrnd/gen/vrndu-sse2-x8.c",
5766    "src/f32-vrnd/gen/vrndz-sse2-x4.c",
5767    "src/f32-vrnd/gen/vrndz-sse2-x8.c",
5768    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x4.c",
5769    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x8.c",
5770    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x12.c",
5771    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x16.c",
5772    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x20.c",
5773    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-lut64-p2-div-x24.c",
5774    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-p5-div-x4.c",
5775    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-p5-div-x8.c",
5776    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-p5-div-x12.c",
5777    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-p5-div-x16.c",
5778    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-p5-div-x20.c",
5779    "src/f32-vsigmoid/gen/vsigmoid-sse2-rr2-p5-div-x24.c",
5780    "src/math/cvt-f16-f32-sse2-int16.c",
5781    "src/math/cvt-f16-f32-sse2-int32.c",
5782    "src/math/cvt-f32-f16-sse2.c",
5783    "src/math/exp-f32-sse2-rr2-lut64-p2.c",
5784    "src/math/exp-f32-sse2-rr2-p5.c",
5785    "src/math/expminus-f32-sse2-rr2-p5.c",
5786    "src/math/expm1minus-f32-sse2-rr2-lut16-p3.c",
5787    "src/math/expm1minus-f32-sse2-rr2-p6.c",
5788    "src/math/roundd-sse2-cvt.c",
5789    "src/math/roundne-sse2-cvt.c",
5790    "src/math/roundu-sse2-cvt.c",
5791    "src/math/roundz-sse2-cvt.c",
5792    "src/math/sigmoid-f32-sse2-rr2-lut64-p2-div.c",
5793    "src/math/sigmoid-f32-sse2-rr2-lut64-p2-nr1.c",
5794    "src/math/sigmoid-f32-sse2-rr2-lut64-p2-nr2.c",
5795    "src/math/sigmoid-f32-sse2-rr2-p5-div.c",
5796    "src/math/sigmoid-f32-sse2-rr2-p5-nr1.c",
5797    "src/math/sigmoid-f32-sse2-rr2-p5-nr2.c",
5798    "src/qc8-dwconv/gen/up8x3-minmax-fp32-sse2-mul16.c",
5799    "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16-add16.c",
5800    "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16.c",
5801    "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16-add16.c",
5802    "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16.c",
5803    "src/qc8-dwconv/gen/up16x9-minmax-fp32-sse2-mul16-add16.c",
5804    "src/qc8-dwconv/gen/up16x9-minmax-fp32-sse2-mul16.c",
5805    "src/qc8-dwconv/gen/up16x25-minmax-fp32-sse2-mul16-add16.c",
5806    "src/qc8-dwconv/gen/up16x25-minmax-fp32-sse2-mul16.c",
5807    "src/qc8-dwconv/gen/up24x9-minmax-fp32-sse2-mul16.c",
5808    "src/qc8-dwconv/gen/up24x25-minmax-fp32-sse2-mul16.c",
5809    "src/qc8-gemm/gen/1x4c2-minmax-fp32-sse2-ld64.c",
5810    "src/qc8-gemm/gen/1x4c2-minmax-fp32-sse2-ld128.c",
5811    "src/qc8-gemm/gen/1x4c2s4-minmax-fp32-sse2-ld64.c",
5812    "src/qc8-gemm/gen/1x4c2s4-minmax-fp32-sse2-ld128.c",
5813    "src/qc8-gemm/gen/1x4c8-minmax-fp32-sse2-ld64.c",
5814    "src/qc8-gemm/gen/1x4c8-minmax-fp32-sse2-ld128.c",
5815    "src/qc8-gemm/gen/2x4c2-minmax-fp32-sse2-ld64.c",
5816    "src/qc8-gemm/gen/2x4c2-minmax-fp32-sse2-ld128.c",
5817    "src/qc8-gemm/gen/2x4c2s4-minmax-fp32-sse2-ld64.c",
5818    "src/qc8-gemm/gen/2x4c2s4-minmax-fp32-sse2-ld128.c",
5819    "src/qc8-gemm/gen/2x4c8-minmax-fp32-sse2-ld64.c",
5820    "src/qc8-gemm/gen/2x4c8-minmax-fp32-sse2-ld128.c",
5821    "src/qc8-gemm/gen/3x4c2-minmax-fp32-sse2-ld64.c",
5822    "src/qc8-gemm/gen/3x4c2-minmax-fp32-sse2-ld128.c",
5823    "src/qc8-gemm/gen/3x4c2s4-minmax-fp32-sse2-ld64.c",
5824    "src/qc8-gemm/gen/3x4c2s4-minmax-fp32-sse2-ld128.c",
5825    "src/qc8-gemm/gen/3x4c8-minmax-fp32-sse2-ld64.c",
5826    "src/qc8-gemm/gen/3x4c8-minmax-fp32-sse2-ld128.c",
5827    "src/qc8-gemm/gen/4x4c2-minmax-fp32-sse2-ld64.c",
5828    "src/qc8-gemm/gen/4x4c2-minmax-fp32-sse2-ld128.c",
5829    "src/qc8-gemm/gen/4x4c2s4-minmax-fp32-sse2-ld64.c",
5830    "src/qc8-gemm/gen/4x4c2s4-minmax-fp32-sse2-ld128.c",
5831    "src/qc8-igemm/gen/1x4c2-minmax-fp32-sse2-ld64.c",
5832    "src/qc8-igemm/gen/1x4c2-minmax-fp32-sse2-ld128.c",
5833    "src/qc8-igemm/gen/1x4c2s4-minmax-fp32-sse2-ld64.c",
5834    "src/qc8-igemm/gen/1x4c2s4-minmax-fp32-sse2-ld128.c",
5835    "src/qc8-igemm/gen/1x4c8-minmax-fp32-sse2-ld64.c",
5836    "src/qc8-igemm/gen/1x4c8-minmax-fp32-sse2-ld128.c",
5837    "src/qc8-igemm/gen/2x4c2-minmax-fp32-sse2-ld64.c",
5838    "src/qc8-igemm/gen/2x4c2-minmax-fp32-sse2-ld128.c",
5839    "src/qc8-igemm/gen/2x4c2s4-minmax-fp32-sse2-ld64.c",
5840    "src/qc8-igemm/gen/2x4c2s4-minmax-fp32-sse2-ld128.c",
5841    "src/qc8-igemm/gen/2x4c8-minmax-fp32-sse2-ld64.c",
5842    "src/qc8-igemm/gen/2x4c8-minmax-fp32-sse2-ld128.c",
5843    "src/qc8-igemm/gen/3x4c2-minmax-fp32-sse2-ld64.c",
5844    "src/qc8-igemm/gen/3x4c2-minmax-fp32-sse2-ld128.c",
5845    "src/qc8-igemm/gen/3x4c2s4-minmax-fp32-sse2-ld64.c",
5846    "src/qc8-igemm/gen/3x4c2s4-minmax-fp32-sse2-ld128.c",
5847    "src/qc8-igemm/gen/3x4c8-minmax-fp32-sse2-ld64.c",
5848    "src/qc8-igemm/gen/3x4c8-minmax-fp32-sse2-ld128.c",
5849    "src/qc8-igemm/gen/4x4c2-minmax-fp32-sse2-ld64.c",
5850    "src/qc8-igemm/gen/4x4c2-minmax-fp32-sse2-ld128.c",
5851    "src/qc8-igemm/gen/4x4c2s4-minmax-fp32-sse2-ld64.c",
5852    "src/qc8-igemm/gen/4x4c2s4-minmax-fp32-sse2-ld128.c",
5853    "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16-add16.c",
5854    "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16.c",
5855    "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16-add16.c",
5856    "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16.c",
5857    "src/qs8-dwconv/gen/up16x9-minmax-fp32-sse2-mul16-add16.c",
5858    "src/qs8-dwconv/gen/up16x9-minmax-fp32-sse2-mul16.c",
5859    "src/qs8-dwconv/gen/up16x25-minmax-fp32-sse2-mul16-add16.c",
5860    "src/qs8-dwconv/gen/up16x25-minmax-fp32-sse2-mul16.c",
5861    "src/qs8-dwconv/gen/up24x9-minmax-fp32-sse2-mul16.c",
5862    "src/qs8-dwconv/gen/up24x25-minmax-fp32-sse2-mul16.c",
5863    "src/qs8-f32-vcvt/gen/vcvt-sse2-x8.c",
5864    "src/qs8-f32-vcvt/gen/vcvt-sse2-x16.c",
5865    "src/qs8-f32-vcvt/gen/vcvt-sse2-x24.c",
5866    "src/qs8-f32-vcvt/gen/vcvt-sse2-x32.c",
5867    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse2-c8.c",
5868    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse2-c16.c",
5869    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse2-c24.c",
5870    "src/qs8-gavgpool/gen/7x-minmax-fp32-sse2-c8.c",
5871    "src/qs8-gavgpool/gen/7x-minmax-fp32-sse2-c16.c",
5872    "src/qs8-gavgpool/gen/7x-minmax-fp32-sse2-c24.c",
5873    "src/qs8-gemm/gen/1x4c2-minmax-fp32-sse2-ld64.c",
5874    "src/qs8-gemm/gen/1x4c2-minmax-fp32-sse2-ld128.c",
5875    "src/qs8-gemm/gen/1x4c2-xw-minmax-fp32-sse2.c",
5876    "src/qs8-gemm/gen/1x4c2s4-minmax-fp32-sse2-ld64.c",
5877    "src/qs8-gemm/gen/1x4c2s4-minmax-fp32-sse2-ld128.c",
5878    "src/qs8-gemm/gen/1x4c2s4-xw-minmax-fp32-sse2.c",
5879    "src/qs8-gemm/gen/1x4c8-minmax-fp32-sse2-ld64.c",
5880    "src/qs8-gemm/gen/1x4c8-minmax-fp32-sse2-ld128.c",
5881    "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-sse2.c",
5882    "src/qs8-gemm/gen/2x4c2-minmax-fp32-sse2-ld64.c",
5883    "src/qs8-gemm/gen/2x4c2-minmax-fp32-sse2-ld128.c",
5884    "src/qs8-gemm/gen/2x4c2-xw-minmax-fp32-sse2.c",
5885    "src/qs8-gemm/gen/2x4c2s4-minmax-fp32-sse2-ld64.c",
5886    "src/qs8-gemm/gen/2x4c2s4-minmax-fp32-sse2-ld128.c",
5887    "src/qs8-gemm/gen/2x4c2s4-xw-minmax-fp32-sse2.c",
5888    "src/qs8-gemm/gen/2x4c8-minmax-fp32-sse2-ld64.c",
5889    "src/qs8-gemm/gen/2x4c8-minmax-fp32-sse2-ld128.c",
5890    "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-sse2.c",
5891    "src/qs8-gemm/gen/3x4c2-minmax-fp32-sse2-ld64.c",
5892    "src/qs8-gemm/gen/3x4c2-minmax-fp32-sse2-ld128.c",
5893    "src/qs8-gemm/gen/3x4c2-xw-minmax-fp32-sse2.c",
5894    "src/qs8-gemm/gen/3x4c2s4-minmax-fp32-sse2-ld64.c",
5895    "src/qs8-gemm/gen/3x4c2s4-minmax-fp32-sse2-ld128.c",
5896    "src/qs8-gemm/gen/3x4c2s4-xw-minmax-fp32-sse2.c",
5897    "src/qs8-gemm/gen/3x4c8-minmax-fp32-sse2-ld64.c",
5898    "src/qs8-gemm/gen/3x4c8-minmax-fp32-sse2-ld128.c",
5899    "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-sse2.c",
5900    "src/qs8-gemm/gen/4x4c2-minmax-fp32-sse2-ld64.c",
5901    "src/qs8-gemm/gen/4x4c2-minmax-fp32-sse2-ld128.c",
5902    "src/qs8-gemm/gen/4x4c2-xw-minmax-fp32-sse2.c",
5903    "src/qs8-gemm/gen/4x4c2s4-minmax-fp32-sse2-ld64.c",
5904    "src/qs8-gemm/gen/4x4c2s4-minmax-fp32-sse2-ld128.c",
5905    "src/qs8-gemm/gen/4x4c2s4-xw-minmax-fp32-sse2.c",
5906    "src/qs8-igemm/gen/1x4c2-minmax-fp32-sse2-ld64.c",
5907    "src/qs8-igemm/gen/1x4c2-minmax-fp32-sse2-ld128.c",
5908    "src/qs8-igemm/gen/1x4c2s4-minmax-fp32-sse2-ld64.c",
5909    "src/qs8-igemm/gen/1x4c2s4-minmax-fp32-sse2-ld128.c",
5910    "src/qs8-igemm/gen/1x4c8-minmax-fp32-sse2-ld64.c",
5911    "src/qs8-igemm/gen/1x4c8-minmax-fp32-sse2-ld128.c",
5912    "src/qs8-igemm/gen/2x4c2-minmax-fp32-sse2-ld64.c",
5913    "src/qs8-igemm/gen/2x4c2-minmax-fp32-sse2-ld128.c",
5914    "src/qs8-igemm/gen/2x4c2s4-minmax-fp32-sse2-ld64.c",
5915    "src/qs8-igemm/gen/2x4c2s4-minmax-fp32-sse2-ld128.c",
5916    "src/qs8-igemm/gen/2x4c8-minmax-fp32-sse2-ld64.c",
5917    "src/qs8-igemm/gen/2x4c8-minmax-fp32-sse2-ld128.c",
5918    "src/qs8-igemm/gen/3x4c2-minmax-fp32-sse2-ld64.c",
5919    "src/qs8-igemm/gen/3x4c2-minmax-fp32-sse2-ld128.c",
5920    "src/qs8-igemm/gen/3x4c2s4-minmax-fp32-sse2-ld64.c",
5921    "src/qs8-igemm/gen/3x4c2s4-minmax-fp32-sse2-ld128.c",
5922    "src/qs8-igemm/gen/3x4c8-minmax-fp32-sse2-ld64.c",
5923    "src/qs8-igemm/gen/3x4c8-minmax-fp32-sse2-ld128.c",
5924    "src/qs8-igemm/gen/4x4c2-minmax-fp32-sse2-ld64.c",
5925    "src/qs8-igemm/gen/4x4c2-minmax-fp32-sse2-ld128.c",
5926    "src/qs8-igemm/gen/4x4c2s4-minmax-fp32-sse2-ld64.c",
5927    "src/qs8-igemm/gen/4x4c2s4-minmax-fp32-sse2-ld128.c",
5928    "src/qs8-requantization/fp32-sse2.c",
5929    "src/qs8-requantization/gemmlowp-sse2.c",
5930    "src/qs8-requantization/rndna-sse2.c",
5931    "src/qs8-vadd/gen/minmax-sse2-mul16-ld64-x8.c",
5932    "src/qs8-vadd/gen/minmax-sse2-mul16-ld64-x16.c",
5933    "src/qs8-vadd/gen/minmax-sse2-mul16-ld64-x24.c",
5934    "src/qs8-vadd/gen/minmax-sse2-mul16-ld64-x32.c",
5935    "src/qs8-vaddc/gen/minmax-sse2-mul16-ld64-x8.c",
5936    "src/qs8-vaddc/gen/minmax-sse2-mul16-ld64-x16.c",
5937    "src/qs8-vaddc/gen/minmax-sse2-mul16-ld64-x24.c",
5938    "src/qs8-vaddc/gen/minmax-sse2-mul16-ld64-x32.c",
5939    "src/qs8-vcvt/gen/vcvt-sse2-x16.c",
5940    "src/qs8-vcvt/gen/vcvt-sse2-x32.c",
5941    "src/qs8-vlrelu/gen/vlrelu-sse2-x16.c",
5942    "src/qs8-vlrelu/gen/vlrelu-sse2-x32.c",
5943    "src/qs8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x8.c",
5944    "src/qs8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x16.c",
5945    "src/qs8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x8.c",
5946    "src/qs8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x16.c",
5947    "src/qu8-avgpool/9p8x-minmax-sse2-c8.c",
5948    "src/qu8-avgpool/9x-minmax-sse2-c8.c",
5949    "src/qu8-dwconv/gen/up8x9-minmax-fp32-sse2-mul16.c",
5950    "src/qu8-dwconv/gen/up8x25-minmax-fp32-sse2-mul16.c",
5951    "src/qu8-dwconv/gen/up16x9-minmax-fp32-sse2-mul16.c",
5952    "src/qu8-dwconv/gen/up16x25-minmax-fp32-sse2-mul16.c",
5953    "src/qu8-f32-vcvt/gen/vcvt-sse2-x8.c",
5954    "src/qu8-f32-vcvt/gen/vcvt-sse2-x16.c",
5955    "src/qu8-f32-vcvt/gen/vcvt-sse2-x24.c",
5956    "src/qu8-f32-vcvt/gen/vcvt-sse2-x32.c",
5957    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse2-c8.c",
5958    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse2-c16.c",
5959    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse2-c24.c",
5960    "src/qu8-gavgpool/gen/7x-minmax-fp32-sse2-c8.c",
5961    "src/qu8-gavgpool/gen/7x-minmax-fp32-sse2-c16.c",
5962    "src/qu8-gavgpool/gen/7x-minmax-fp32-sse2-c24.c",
5963    "src/qu8-gemm/gen/1x4c2-minmax-fp32-sse2-ld64.c",
5964    "src/qu8-gemm/gen/1x4c2-minmax-fp32-sse2-ld128.c",
5965    "src/qu8-gemm/gen/1x4c2s4-minmax-fp32-sse2-ld64.c",
5966    "src/qu8-gemm/gen/1x4c2s4-minmax-fp32-sse2-ld128.c",
5967    "src/qu8-gemm/gen/1x4c8-minmax-fp32-sse2-ld64.c",
5968    "src/qu8-gemm/gen/1x4c8-minmax-fp32-sse2-ld128.c",
5969    "src/qu8-gemm/gen/2x4c2-minmax-fp32-sse2-ld64.c",
5970    "src/qu8-gemm/gen/2x4c2-minmax-fp32-sse2-ld128.c",
5971    "src/qu8-gemm/gen/2x4c2s4-minmax-fp32-sse2-ld64.c",
5972    "src/qu8-gemm/gen/2x4c2s4-minmax-fp32-sse2-ld128.c",
5973    "src/qu8-gemm/gen/2x4c8-minmax-fp32-sse2-ld64.c",
5974    "src/qu8-gemm/gen/2x4c8-minmax-fp32-sse2-ld128.c",
5975    "src/qu8-gemm/gen/3x4c2-minmax-fp32-sse2-ld64.c",
5976    "src/qu8-gemm/gen/3x4c2-minmax-fp32-sse2-ld128.c",
5977    "src/qu8-gemm/gen/3x4c2s4-minmax-fp32-sse2-ld64.c",
5978    "src/qu8-gemm/gen/3x4c2s4-minmax-fp32-sse2-ld128.c",
5979    "src/qu8-gemm/gen/3x4c8-minmax-fp32-sse2-ld64.c",
5980    "src/qu8-gemm/gen/3x4c8-minmax-fp32-sse2-ld128.c",
5981    "src/qu8-gemm/gen/4x4c2-minmax-fp32-sse2-ld64.c",
5982    "src/qu8-gemm/gen/4x4c2-minmax-fp32-sse2-ld128.c",
5983    "src/qu8-gemm/gen/4x4c2s4-minmax-fp32-sse2-ld64.c",
5984    "src/qu8-gemm/gen/4x4c2s4-minmax-fp32-sse2-ld128.c",
5985    "src/qu8-igemm/gen/1x4c2-minmax-fp32-sse2-ld64.c",
5986    "src/qu8-igemm/gen/1x4c2-minmax-fp32-sse2-ld128.c",
5987    "src/qu8-igemm/gen/1x4c2s4-minmax-fp32-sse2-ld64.c",
5988    "src/qu8-igemm/gen/1x4c2s4-minmax-fp32-sse2-ld128.c",
5989    "src/qu8-igemm/gen/1x4c8-minmax-fp32-sse2-ld64.c",
5990    "src/qu8-igemm/gen/1x4c8-minmax-fp32-sse2-ld128.c",
5991    "src/qu8-igemm/gen/2x4c2-minmax-fp32-sse2-ld64.c",
5992    "src/qu8-igemm/gen/2x4c2-minmax-fp32-sse2-ld128.c",
5993    "src/qu8-igemm/gen/2x4c2s4-minmax-fp32-sse2-ld64.c",
5994    "src/qu8-igemm/gen/2x4c2s4-minmax-fp32-sse2-ld128.c",
5995    "src/qu8-igemm/gen/2x4c8-minmax-fp32-sse2-ld64.c",
5996    "src/qu8-igemm/gen/2x4c8-minmax-fp32-sse2-ld128.c",
5997    "src/qu8-igemm/gen/3x4c2-minmax-fp32-sse2-ld64.c",
5998    "src/qu8-igemm/gen/3x4c2-minmax-fp32-sse2-ld128.c",
5999    "src/qu8-igemm/gen/3x4c2s4-minmax-fp32-sse2-ld64.c",
6000    "src/qu8-igemm/gen/3x4c2s4-minmax-fp32-sse2-ld128.c",
6001    "src/qu8-igemm/gen/3x4c8-minmax-fp32-sse2-ld64.c",
6002    "src/qu8-igemm/gen/3x4c8-minmax-fp32-sse2-ld128.c",
6003    "src/qu8-igemm/gen/4x4c2-minmax-fp32-sse2-ld64.c",
6004    "src/qu8-igemm/gen/4x4c2-minmax-fp32-sse2-ld128.c",
6005    "src/qu8-igemm/gen/4x4c2s4-minmax-fp32-sse2-ld64.c",
6006    "src/qu8-igemm/gen/4x4c2s4-minmax-fp32-sse2-ld128.c",
6007    "src/qu8-requantization/fp32-sse2.c",
6008    "src/qu8-requantization/gemmlowp-sse2.c",
6009    "src/qu8-requantization/rndna-sse2.c",
6010    "src/qu8-vadd/gen/minmax-sse2-mul16-ld64-x8.c",
6011    "src/qu8-vadd/gen/minmax-sse2-mul16-ld64-x16.c",
6012    "src/qu8-vaddc/gen/minmax-sse2-mul16-ld64-x8.c",
6013    "src/qu8-vaddc/gen/minmax-sse2-mul16-ld64-x16.c",
6014    "src/qu8-vcvt/gen/vcvt-sse2-x16.c",
6015    "src/qu8-vcvt/gen/vcvt-sse2-x32.c",
6016    "src/qu8-vlrelu/gen/vlrelu-sse2-x16.c",
6017    "src/qu8-vlrelu/gen/vlrelu-sse2-x32.c",
6018    "src/qu8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x8.c",
6019    "src/qu8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x16.c",
6020    "src/qu8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x8.c",
6021    "src/qu8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x16.c",
6022    "src/s8-ibilinear/gen/sse2-c8.c",
6023    "src/s8-ibilinear/gen/sse2-c16.c",
6024    "src/s8-maxpool/9p8x-minmax-sse2-c16.c",
6025    "src/s8-vclamp/sse2-x64.c",
6026    "src/u8-ibilinear/gen/sse2-c8.c",
6027    "src/u8-ibilinear/gen/sse2-c16.c",
6028    "src/u8-maxpool/9p8x-minmax-sse2-c16.c",
6029    "src/u8-rmax/sse2.c",
6030    "src/u8-vclamp/sse2-x64.c",
6031    "src/xx-fill/sse2-x64.c",
6032    "src/xx-pad/sse2.c",
6033    "src/x8-transposec/gen/16x16-reuse-mov-sse2.c",
6034    "src/x8-transposec/gen/16x16-reuse-switch-sse2.c",
6035    "src/x8-zip/xm-sse2.c",
6036    "src/x8-zip/x2-sse2.c",
6037    "src/x8-zip/x3-sse2.c",
6038    "src/x8-zip/x4-sse2.c",
6039    "src/x16-transposec/gen/8x8-multi-mov-sse2.c",
6040    "src/x16-transposec/gen/8x8-multi-switch-sse2.c",
6041    "src/x16-transposec/gen/8x8-reuse-mov-sse2.c",
6042    "src/x16-transposec/gen/8x8-reuse-multi-sse2.c",
6043    "src/x16-transposec/gen/8x8-reuse-switch-sse2.c",
6044    "src/x16-transposec/4x8-sse2.c",
6045    "src/x32-transposec/gen/4x4-multi-mov-sse2.c",
6046    "src/x32-transposec/gen/4x4-multi-multi-sse2.c",
6047    "src/x32-transposec/gen/4x4-multi-switch-sse2.c",
6048    "src/x32-transposec/gen/4x4-reuse-mov-sse2.c",
6049    "src/x32-transposec/gen/4x4-reuse-multi-sse2.c",
6050    "src/x32-transposec/gen/4x4-reuse-switch-sse2.c",
6051    "src/x32-unpool/sse2.c",
6052    "src/x32-zip/xm-sse2.c",
6053    "src/x32-zip/x2-sse2.c",
6054    "src/x32-zip/x3-sse2.c",
6055    "src/x32-zip/x4-sse2.c",
6056    "src/x64-transposec/gen/2x2-multi-mov-sse2.c",
6057    "src/x64-transposec/gen/2x2-multi-multi-sse2.c",
6058    "src/x64-transposec/gen/2x2-multi-switch-sse2.c",
6059    "src/x64-transposec/gen/2x2-reuse-mov-sse2.c",
6060    "src/x64-transposec/gen/2x2-reuse-multi-sse2.c",
6061    "src/x64-transposec/gen/2x2-reuse-switch-sse2.c",
6062]
6063
6064PROD_SSSE3_MICROKERNEL_SRCS = [
6065    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-2x4-acc2.c",
6066    "src/qs8-vcvt/gen/vcvt-ssse3-x32.c",
6067    "src/qs8-vlrelu/gen/vlrelu-ssse3-x32.c",
6068    "src/qu8-vcvt/gen/vcvt-ssse3-x32.c",
6069    "src/qu8-vlrelu/gen/vlrelu-ssse3-x32.c",
6070]
6071
6072ALL_SSSE3_MICROKERNEL_SRCS = [
6073    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-1x4-acc2.c",
6074    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-1x4-acc3.c",
6075    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-1x4-acc4.c",
6076    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-1x4.c",
6077    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-2x4-acc2.c",
6078    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-2x4.c",
6079    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-3x4.c",
6080    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-4x4.c",
6081    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-5x4.c",
6082    "src/f32-dwconv2d-chw/gen/3x3p1-minmax-ssse3-6x4.c",
6083    "src/qs8-gemm/gen/1x4c8-minmax-fp32-ssse3-ld64.c",
6084    "src/qs8-gemm/gen/1x4c8-minmax-fp32-ssse3-ld128.c",
6085    "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-ssse3.c",
6086    "src/qs8-gemm/gen/2x4c8-minmax-fp32-ssse3-ld64.c",
6087    "src/qs8-gemm/gen/2x4c8-minmax-fp32-ssse3-ld128.c",
6088    "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-ssse3.c",
6089    "src/qs8-gemm/gen/3x4c8-minmax-fp32-ssse3-ld64.c",
6090    "src/qs8-gemm/gen/3x4c8-minmax-fp32-ssse3-ld128.c",
6091    "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-ssse3.c",
6092    "src/qs8-igemm/gen/1x4c8-minmax-fp32-ssse3-ld64.c",
6093    "src/qs8-igemm/gen/1x4c8-minmax-fp32-ssse3-ld128.c",
6094    "src/qs8-igemm/gen/2x4c8-minmax-fp32-ssse3-ld64.c",
6095    "src/qs8-igemm/gen/2x4c8-minmax-fp32-ssse3-ld128.c",
6096    "src/qs8-igemm/gen/3x4c8-minmax-fp32-ssse3-ld64.c",
6097    "src/qs8-igemm/gen/3x4c8-minmax-fp32-ssse3-ld128.c",
6098    "src/qs8-requantization/gemmlowp-ssse3.c",
6099    "src/qs8-requantization/rndna-ssse3.c",
6100    "src/qs8-vcvt/gen/vcvt-ssse3-x16.c",
6101    "src/qs8-vcvt/gen/vcvt-ssse3-x32.c",
6102    "src/qs8-vlrelu/gen/vlrelu-ssse3-x16.c",
6103    "src/qs8-vlrelu/gen/vlrelu-ssse3-x32.c",
6104    "src/qu8-requantization/gemmlowp-ssse3.c",
6105    "src/qu8-requantization/rndna-ssse3.c",
6106    "src/qu8-vcvt/gen/vcvt-ssse3-x16.c",
6107    "src/qu8-vcvt/gen/vcvt-ssse3-x32.c",
6108    "src/qu8-vlrelu/gen/vlrelu-ssse3-x16.c",
6109    "src/qu8-vlrelu/gen/vlrelu-ssse3-x32.c",
6110    "src/x8-lut/gen/lut-ssse3-x16.c",
6111    "src/x8-lut/gen/lut-ssse3-x32.c",
6112    "src/x24-transposec/4x4-ssse3.c",
6113]
6114
6115PROD_SSE41_MICROKERNEL_SRCS = [
6116    "src/f16-f32-vcvt/gen/vcvt-sse41-int16-x16.c",
6117    "src/f32-f16-vcvt/gen/vcvt-sse41-x8.c",
6118    "src/f32-prelu/gen/sse41-2x8.c",
6119    "src/f32-qs8-vcvt/gen/vcvt-sse41-x32.c",
6120    "src/f32-vlrelu/gen/vlrelu-sse41-x8.c",
6121    "src/f32-vrnd/gen/vrndd-sse41-x8.c",
6122    "src/f32-vrnd/gen/vrndne-sse41-x8.c",
6123    "src/f32-vrnd/gen/vrndu-sse41-x8.c",
6124    "src/f32-vrnd/gen/vrndz-sse41-x8.c",
6125    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x8.c",
6126    "src/qc8-dwconv/gen/up8x3-minmax-fp32-sse41-mul16.c",
6127    "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16.c",
6128    "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16.c",
6129    "src/qc8-gemm/gen/1x4c8-minmax-fp32-sse41-ld64.c",
6130    "src/qc8-gemm/gen/3x4c8-minmax-fp32-sse41-ld64.c",
6131    "src/qc8-igemm/gen/1x4c8-minmax-fp32-sse41-ld64.c",
6132    "src/qc8-igemm/gen/3x4c8-minmax-fp32-sse41-ld64.c",
6133    "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16-add16.c",
6134    "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16-add16.c",
6135    "src/qs8-f32-vcvt/gen/vcvt-sse41-x16.c",
6136    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse41-c8.c",
6137    "src/qs8-gavgpool/gen/7x-minmax-fp32-sse41-c8.c",
6138    "src/qs8-gemm/gen/1x4c8-minmax-fp32-sse41-ld64.c",
6139    "src/qs8-gemm/gen/3x4c8-minmax-fp32-sse41-ld64.c",
6140    "src/qs8-igemm/gen/1x4c8-minmax-fp32-sse41-ld64.c",
6141    "src/qs8-igemm/gen/3x4c8-minmax-fp32-sse41-ld64.c",
6142    "src/qs8-vadd/gen/minmax-sse41-mul16-ld64-x8.c",
6143    "src/qs8-vaddc/gen/minmax-sse41-mul16-ld64-x8.c",
6144    "src/qs8-vcvt/gen/vcvt-sse41-x32.c",
6145    "src/qs8-vlrelu/gen/vlrelu-sse41-x32.c",
6146    "src/qs8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x16.c",
6147    "src/qs8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c",
6148    "src/qu8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16.c",
6149    "src/qu8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16.c",
6150    "src/qu8-f32-vcvt/gen/vcvt-sse41-x16.c",
6151    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse41-c8.c",
6152    "src/qu8-gavgpool/gen/7x-minmax-fp32-sse41-c8.c",
6153    "src/qu8-gemm/gen/1x4c8-minmax-fp32-sse41-ld64.c",
6154    "src/qu8-gemm/gen/3x4c8-minmax-fp32-sse41-ld64.c",
6155    "src/qu8-igemm/gen/1x4c8-minmax-fp32-sse41-ld64.c",
6156    "src/qu8-igemm/gen/3x4c8-minmax-fp32-sse41-ld64.c",
6157    "src/qu8-vadd/gen/minmax-sse41-mul16-ld64-x8.c",
6158    "src/qu8-vaddc/gen/minmax-sse41-mul16-ld64-x8.c",
6159    "src/qu8-vcvt/gen/vcvt-sse41-x32.c",
6160    "src/qu8-vlrelu/gen/vlrelu-sse41-x32.c",
6161    "src/qu8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x16.c",
6162    "src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c",
6163    "src/s8-ibilinear/gen/sse41-c16.c",
6164    "src/s8-maxpool/9p8x-minmax-sse41-c16.c",
6165    "src/s8-vclamp/sse41-x64.c",
6166    "src/u8-ibilinear/gen/sse41-c16.c",
6167]
6168
6169ALL_SSE41_MICROKERNEL_SRCS = [
6170    "src/f16-f32-vcvt/gen/vcvt-sse41-int16-x8.c",
6171    "src/f16-f32-vcvt/gen/vcvt-sse41-int16-x16.c",
6172    "src/f16-f32-vcvt/gen/vcvt-sse41-int16-x24.c",
6173    "src/f16-f32-vcvt/gen/vcvt-sse41-int16-x32.c",
6174    "src/f16-f32-vcvt/gen/vcvt-sse41-int32-x8.c",
6175    "src/f16-f32-vcvt/gen/vcvt-sse41-int32-x16.c",
6176    "src/f16-f32-vcvt/gen/vcvt-sse41-int32-x24.c",
6177    "src/f16-f32-vcvt/gen/vcvt-sse41-int32-x32.c",
6178    "src/f32-f16-vcvt/gen/vcvt-sse41-x8.c",
6179    "src/f32-f16-vcvt/gen/vcvt-sse41-x16.c",
6180    "src/f32-f16-vcvt/gen/vcvt-sse41-x24.c",
6181    "src/f32-f16-vcvt/gen/vcvt-sse41-x32.c",
6182    "src/f32-prelu/gen/sse41-2x4.c",
6183    "src/f32-prelu/gen/sse41-2x8.c",
6184    "src/f32-qs8-vcvt/gen/vcvt-sse41-x8.c",
6185    "src/f32-qs8-vcvt/gen/vcvt-sse41-x16.c",
6186    "src/f32-qs8-vcvt/gen/vcvt-sse41-x24.c",
6187    "src/f32-qs8-vcvt/gen/vcvt-sse41-x32.c",
6188    "src/f32-velu/gen/velu-sse41-rr2-lut16-p3-x4.c",
6189    "src/f32-velu/gen/velu-sse41-rr2-lut16-p3-x8.c",
6190    "src/f32-velu/gen/velu-sse41-rr2-lut16-p3-x12.c",
6191    "src/f32-velu/gen/velu-sse41-rr2-lut16-p3-x16.c",
6192    "src/f32-velu/gen/velu-sse41-rr2-lut16-p3-x20.c",
6193    "src/f32-velu/gen/velu-sse41-rr2-lut16-p3-x24.c",
6194    "src/f32-velu/gen/velu-sse41-rr2-p6-x4.c",
6195    "src/f32-velu/gen/velu-sse41-rr2-p6-x8.c",
6196    "src/f32-velu/gen/velu-sse41-rr2-p6-x12.c",
6197    "src/f32-velu/gen/velu-sse41-rr2-p6-x16.c",
6198    "src/f32-velu/gen/velu-sse41-rr2-p6-x20.c",
6199    "src/f32-velu/gen/velu-sse41-rr2-p6-x24.c",
6200    "src/f32-vlrelu/gen/vlrelu-sse41-x4.c",
6201    "src/f32-vlrelu/gen/vlrelu-sse41-x8.c",
6202    "src/f32-vrnd/gen/vrndd-sse41-x4.c",
6203    "src/f32-vrnd/gen/vrndd-sse41-x8.c",
6204    "src/f32-vrnd/gen/vrndne-sse41-x4.c",
6205    "src/f32-vrnd/gen/vrndne-sse41-x8.c",
6206    "src/f32-vrnd/gen/vrndu-sse41-x4.c",
6207    "src/f32-vrnd/gen/vrndu-sse41-x8.c",
6208    "src/f32-vrnd/gen/vrndz-sse41-x4.c",
6209    "src/f32-vrnd/gen/vrndz-sse41-x8.c",
6210    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x4.c",
6211    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x8.c",
6212    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x12.c",
6213    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x16.c",
6214    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x20.c",
6215    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-lut64-p2-div-x24.c",
6216    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-p5-div-x4.c",
6217    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-p5-div-x8.c",
6218    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-p5-div-x12.c",
6219    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-p5-div-x16.c",
6220    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-p5-div-x20.c",
6221    "src/f32-vsigmoid/gen/vsigmoid-sse41-rr2-p5-div-x24.c",
6222    "src/math/cvt-f16-f32-sse41-int16.c",
6223    "src/math/cvt-f16-f32-sse41-int32.c",
6224    "src/math/cvt-f32-f16-sse41.c",
6225    "src/math/roundd-sse41.c",
6226    "src/math/roundne-sse41.c",
6227    "src/math/roundu-sse41.c",
6228    "src/math/roundz-sse41.c",
6229    "src/qc8-dwconv/gen/up8x3-minmax-fp32-sse41-mul16.c",
6230    "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16-add16.c",
6231    "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16.c",
6232    "src/qc8-dwconv/gen/up8x9-minmax-fp32-sse41-mul32.c",
6233    "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16-add16.c",
6234    "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16.c",
6235    "src/qc8-dwconv/gen/up8x25-minmax-fp32-sse41-mul32.c",
6236    "src/qc8-dwconv/gen/up16x9-minmax-fp32-sse41-mul16-add16.c",
6237    "src/qc8-dwconv/gen/up16x9-minmax-fp32-sse41-mul16.c",
6238    "src/qc8-dwconv/gen/up16x9-minmax-fp32-sse41-mul32.c",
6239    "src/qc8-dwconv/gen/up16x25-minmax-fp32-sse41-mul16-add16.c",
6240    "src/qc8-dwconv/gen/up16x25-minmax-fp32-sse41-mul16.c",
6241    "src/qc8-dwconv/gen/up16x25-minmax-fp32-sse41-mul32.c",
6242    "src/qc8-dwconv/gen/up24x9-minmax-fp32-sse41-mul16.c",
6243    "src/qc8-dwconv/gen/up24x9-minmax-fp32-sse41-mul32.c",
6244    "src/qc8-dwconv/gen/up24x25-minmax-fp32-sse41-mul16.c",
6245    "src/qc8-dwconv/gen/up24x25-minmax-fp32-sse41-mul32.c",
6246    "src/qc8-gemm/gen/1x4c2-minmax-fp32-sse41-ld64.c",
6247    "src/qc8-gemm/gen/1x4c2-minmax-fp32-sse41-ld128.c",
6248    "src/qc8-gemm/gen/1x4c2s4-minmax-fp32-sse41-ld64.c",
6249    "src/qc8-gemm/gen/1x4c2s4-minmax-fp32-sse41-ld128.c",
6250    "src/qc8-gemm/gen/1x4c8-minmax-fp32-sse41-ld64.c",
6251    "src/qc8-gemm/gen/1x4c8-minmax-fp32-sse41-ld128.c",
6252    "src/qc8-gemm/gen/2x4c2-minmax-fp32-sse41-ld64.c",
6253    "src/qc8-gemm/gen/2x4c2-minmax-fp32-sse41-ld128.c",
6254    "src/qc8-gemm/gen/2x4c2s4-minmax-fp32-sse41-ld64.c",
6255    "src/qc8-gemm/gen/2x4c2s4-minmax-fp32-sse41-ld128.c",
6256    "src/qc8-gemm/gen/2x4c8-minmax-fp32-sse41-ld64.c",
6257    "src/qc8-gemm/gen/2x4c8-minmax-fp32-sse41-ld128.c",
6258    "src/qc8-gemm/gen/3x4c2-minmax-fp32-sse41-ld64.c",
6259    "src/qc8-gemm/gen/3x4c2-minmax-fp32-sse41-ld128.c",
6260    "src/qc8-gemm/gen/3x4c2s4-minmax-fp32-sse41-ld64.c",
6261    "src/qc8-gemm/gen/3x4c2s4-minmax-fp32-sse41-ld128.c",
6262    "src/qc8-gemm/gen/3x4c8-minmax-fp32-sse41-ld64.c",
6263    "src/qc8-gemm/gen/3x4c8-minmax-fp32-sse41-ld128.c",
6264    "src/qc8-gemm/gen/4x4c2-minmax-fp32-sse41-ld64.c",
6265    "src/qc8-gemm/gen/4x4c2-minmax-fp32-sse41-ld128.c",
6266    "src/qc8-gemm/gen/4x4c2s4-minmax-fp32-sse41-ld64.c",
6267    "src/qc8-gemm/gen/4x4c2s4-minmax-fp32-sse41-ld128.c",
6268    "src/qc8-igemm/gen/1x4c2-minmax-fp32-sse41-ld64.c",
6269    "src/qc8-igemm/gen/1x4c2-minmax-fp32-sse41-ld128.c",
6270    "src/qc8-igemm/gen/1x4c2s4-minmax-fp32-sse41-ld64.c",
6271    "src/qc8-igemm/gen/1x4c2s4-minmax-fp32-sse41-ld128.c",
6272    "src/qc8-igemm/gen/1x4c8-minmax-fp32-sse41-ld64.c",
6273    "src/qc8-igemm/gen/1x4c8-minmax-fp32-sse41-ld128.c",
6274    "src/qc8-igemm/gen/2x4c2-minmax-fp32-sse41-ld64.c",
6275    "src/qc8-igemm/gen/2x4c2-minmax-fp32-sse41-ld128.c",
6276    "src/qc8-igemm/gen/2x4c2s4-minmax-fp32-sse41-ld64.c",
6277    "src/qc8-igemm/gen/2x4c2s4-minmax-fp32-sse41-ld128.c",
6278    "src/qc8-igemm/gen/2x4c8-minmax-fp32-sse41-ld64.c",
6279    "src/qc8-igemm/gen/2x4c8-minmax-fp32-sse41-ld128.c",
6280    "src/qc8-igemm/gen/3x4c2-minmax-fp32-sse41-ld64.c",
6281    "src/qc8-igemm/gen/3x4c2-minmax-fp32-sse41-ld128.c",
6282    "src/qc8-igemm/gen/3x4c2s4-minmax-fp32-sse41-ld64.c",
6283    "src/qc8-igemm/gen/3x4c2s4-minmax-fp32-sse41-ld128.c",
6284    "src/qc8-igemm/gen/3x4c8-minmax-fp32-sse41-ld64.c",
6285    "src/qc8-igemm/gen/3x4c8-minmax-fp32-sse41-ld128.c",
6286    "src/qc8-igemm/gen/4x4c2-minmax-fp32-sse41-ld64.c",
6287    "src/qc8-igemm/gen/4x4c2-minmax-fp32-sse41-ld128.c",
6288    "src/qc8-igemm/gen/4x4c2s4-minmax-fp32-sse41-ld64.c",
6289    "src/qc8-igemm/gen/4x4c2s4-minmax-fp32-sse41-ld128.c",
6290    "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16-add16.c",
6291    "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16.c",
6292    "src/qs8-dwconv/gen/up8x9-minmax-fp32-sse41-mul32.c",
6293    "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16-add16.c",
6294    "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16.c",
6295    "src/qs8-dwconv/gen/up8x25-minmax-fp32-sse41-mul32.c",
6296    "src/qs8-dwconv/gen/up16x9-minmax-fp32-sse41-mul16-add16.c",
6297    "src/qs8-dwconv/gen/up16x9-minmax-fp32-sse41-mul16.c",
6298    "src/qs8-dwconv/gen/up16x9-minmax-fp32-sse41-mul32.c",
6299    "src/qs8-dwconv/gen/up16x25-minmax-fp32-sse41-mul16-add16.c",
6300    "src/qs8-dwconv/gen/up16x25-minmax-fp32-sse41-mul16.c",
6301    "src/qs8-dwconv/gen/up16x25-minmax-fp32-sse41-mul32.c",
6302    "src/qs8-dwconv/gen/up24x9-minmax-fp32-sse41-mul16.c",
6303    "src/qs8-dwconv/gen/up24x9-minmax-fp32-sse41-mul32.c",
6304    "src/qs8-dwconv/gen/up24x25-minmax-fp32-sse41-mul16.c",
6305    "src/qs8-dwconv/gen/up24x25-minmax-fp32-sse41-mul32.c",
6306    "src/qs8-f32-vcvt/gen/vcvt-sse41-x8.c",
6307    "src/qs8-f32-vcvt/gen/vcvt-sse41-x16.c",
6308    "src/qs8-f32-vcvt/gen/vcvt-sse41-x24.c",
6309    "src/qs8-f32-vcvt/gen/vcvt-sse41-x32.c",
6310    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse41-c8.c",
6311    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse41-c16.c",
6312    "src/qs8-gavgpool/gen/7p7x-minmax-fp32-sse41-c24.c",
6313    "src/qs8-gavgpool/gen/7x-minmax-fp32-sse41-c8.c",
6314    "src/qs8-gavgpool/gen/7x-minmax-fp32-sse41-c16.c",
6315    "src/qs8-gavgpool/gen/7x-minmax-fp32-sse41-c24.c",
6316    "src/qs8-gemm/gen/1x4c2-minmax-fp32-sse41-ld64.c",
6317    "src/qs8-gemm/gen/1x4c2-minmax-fp32-sse41-ld128.c",
6318    "src/qs8-gemm/gen/1x4c2-xw-minmax-fp32-sse41.c",
6319    "src/qs8-gemm/gen/1x4c2s4-minmax-fp32-sse41-ld64.c",
6320    "src/qs8-gemm/gen/1x4c2s4-minmax-fp32-sse41-ld128.c",
6321    "src/qs8-gemm/gen/1x4c2s4-xw-minmax-fp32-sse41.c",
6322    "src/qs8-gemm/gen/1x4c8-minmax-fp32-sse41-ld64.c",
6323    "src/qs8-gemm/gen/1x4c8-minmax-fp32-sse41-ld128.c",
6324    "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-sse41.c",
6325    "src/qs8-gemm/gen/2x4c2-minmax-fp32-sse41-ld64.c",
6326    "src/qs8-gemm/gen/2x4c2-minmax-fp32-sse41-ld128.c",
6327    "src/qs8-gemm/gen/2x4c2-xw-minmax-fp32-sse41.c",
6328    "src/qs8-gemm/gen/2x4c2s4-minmax-fp32-sse41-ld64.c",
6329    "src/qs8-gemm/gen/2x4c2s4-minmax-fp32-sse41-ld128.c",
6330    "src/qs8-gemm/gen/2x4c2s4-xw-minmax-fp32-sse41.c",
6331    "src/qs8-gemm/gen/2x4c8-minmax-fp32-sse41-ld64.c",
6332    "src/qs8-gemm/gen/2x4c8-minmax-fp32-sse41-ld128.c",
6333    "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-sse41.c",
6334    "src/qs8-gemm/gen/3x4c2-minmax-fp32-sse41-ld64.c",
6335    "src/qs8-gemm/gen/3x4c2-minmax-fp32-sse41-ld128.c",
6336    "src/qs8-gemm/gen/3x4c2-xw-minmax-fp32-sse41.c",
6337    "src/qs8-gemm/gen/3x4c2s4-minmax-fp32-sse41-ld64.c",
6338    "src/qs8-gemm/gen/3x4c2s4-minmax-fp32-sse41-ld128.c",
6339    "src/qs8-gemm/gen/3x4c2s4-xw-minmax-fp32-sse41.c",
6340    "src/qs8-gemm/gen/3x4c8-minmax-fp32-sse41-ld64.c",
6341    "src/qs8-gemm/gen/3x4c8-minmax-fp32-sse41-ld128.c",
6342    "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-sse41.c",
6343    "src/qs8-gemm/gen/4x4c2-minmax-fp32-sse41-ld64.c",
6344    "src/qs8-gemm/gen/4x4c2-minmax-fp32-sse41-ld128.c",
6345    "src/qs8-gemm/gen/4x4c2-xw-minmax-fp32-sse41.c",
6346    "src/qs8-gemm/gen/4x4c2s4-minmax-fp32-sse41-ld64.c",
6347    "src/qs8-gemm/gen/4x4c2s4-minmax-fp32-sse41-ld128.c",
6348    "src/qs8-gemm/gen/4x4c2s4-xw-minmax-fp32-sse41.c",
6349    "src/qs8-igemm/gen/1x4c2-minmax-fp32-sse41-ld64.c",
6350    "src/qs8-igemm/gen/1x4c2-minmax-fp32-sse41-ld128.c",
6351    "src/qs8-igemm/gen/1x4c2s4-minmax-fp32-sse41-ld64.c",
6352    "src/qs8-igemm/gen/1x4c2s4-minmax-fp32-sse41-ld128.c",
6353    "src/qs8-igemm/gen/1x4c8-minmax-fp32-sse41-ld64.c",
6354    "src/qs8-igemm/gen/1x4c8-minmax-fp32-sse41-ld128.c",
6355    "src/qs8-igemm/gen/2x4c2-minmax-fp32-sse41-ld64.c",
6356    "src/qs8-igemm/gen/2x4c2-minmax-fp32-sse41-ld128.c",
6357    "src/qs8-igemm/gen/2x4c2s4-minmax-fp32-sse41-ld64.c",
6358    "src/qs8-igemm/gen/2x4c2s4-minmax-fp32-sse41-ld128.c",
6359    "src/qs8-igemm/gen/2x4c8-minmax-fp32-sse41-ld64.c",
6360    "src/qs8-igemm/gen/2x4c8-minmax-fp32-sse41-ld128.c",
6361    "src/qs8-igemm/gen/3x4c2-minmax-fp32-sse41-ld64.c",
6362    "src/qs8-igemm/gen/3x4c2-minmax-fp32-sse41-ld128.c",
6363    "src/qs8-igemm/gen/3x4c2s4-minmax-fp32-sse41-ld64.c",
6364    "src/qs8-igemm/gen/3x4c2s4-minmax-fp32-sse41-ld128.c",
6365    "src/qs8-igemm/gen/3x4c8-minmax-fp32-sse41-ld64.c",
6366    "src/qs8-igemm/gen/3x4c8-minmax-fp32-sse41-ld128.c",
6367    "src/qs8-igemm/gen/4x4c2-minmax-fp32-sse41-ld64.c",
6368    "src/qs8-igemm/gen/4x4c2-minmax-fp32-sse41-ld128.c",
6369    "src/qs8-igemm/gen/4x4c2s4-minmax-fp32-sse41-ld64.c",
6370    "src/qs8-igemm/gen/4x4c2s4-minmax-fp32-sse41-ld128.c",
6371    "src/qs8-requantization/fp32-sse4.c",
6372    "src/qs8-requantization/gemmlowp-sse4.c",
6373    "src/qs8-requantization/rndna-sse4.c",
6374    "src/qs8-requantization/rndnu-sse4-sra.c",
6375    "src/qs8-requantization/rndnu-sse4-srl.c",
6376    "src/qs8-vadd/gen/minmax-sse41-mul16-ld64-x8.c",
6377    "src/qs8-vadd/gen/minmax-sse41-mul16-ld64-x16.c",
6378    "src/qs8-vadd/gen/minmax-sse41-mul16-ld64-x24.c",
6379    "src/qs8-vadd/gen/minmax-sse41-mul16-ld64-x32.c",
6380    "src/qs8-vadd/gen/minmax-sse41-mul32-ld32-x8.c",
6381    "src/qs8-vadd/gen/minmax-sse41-mul32-ld32-x16.c",
6382    "src/qs8-vadd/gen/minmax-sse41-mul32-ld32-x24.c",
6383    "src/qs8-vadd/gen/minmax-sse41-mul32-ld32-x32.c",
6384    "src/qs8-vaddc/gen/minmax-sse41-mul16-ld64-x8.c",
6385    "src/qs8-vaddc/gen/minmax-sse41-mul16-ld64-x16.c",
6386    "src/qs8-vaddc/gen/minmax-sse41-mul16-ld64-x24.c",
6387    "src/qs8-vaddc/gen/minmax-sse41-mul16-ld64-x32.c",
6388    "src/qs8-vaddc/gen/minmax-sse41-mul32-ld32-x8.c",
6389    "src/qs8-vaddc/gen/minmax-sse41-mul32-ld32-x16.c",
6390    "src/qs8-vaddc/gen/minmax-sse41-mul32-ld32-x24.c",
6391    "src/qs8-vaddc/gen/minmax-sse41-mul32-ld32-x32.c",
6392    "src/qs8-vcvt/gen/vcvt-sse41-x8.c",
6393    "src/qs8-vcvt/gen/vcvt-sse41-x16.c",
6394    "src/qs8-vcvt/gen/vcvt-sse41-x32.c",
6395    "src/qs8-vlrelu/gen/vlrelu-sse41-x8.c",
6396    "src/qs8-vlrelu/gen/vlrelu-sse41-x16.c",
6397    "src/qs8-vlrelu/gen/vlrelu-sse41-x32.c",
6398    "src/qs8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x8.c",
6399    "src/qs8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x16.c",
6400    "src/qs8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x8.c",
6401    "src/qs8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c",
6402    "src/qu8-dwconv/gen/up8x9-minmax-fp32-sse41-mul16.c",
6403    "src/qu8-dwconv/gen/up8x9-minmax-fp32-sse41-mul32.c",
6404    "src/qu8-dwconv/gen/up8x25-minmax-fp32-sse41-mul16.c",
6405    "src/qu8-dwconv/gen/up8x25-minmax-fp32-sse41-mul32.c",
6406    "src/qu8-dwconv/gen/up16x9-minmax-fp32-sse41-mul16.c",
6407    "src/qu8-dwconv/gen/up16x9-minmax-fp32-sse41-mul32.c",
6408    "src/qu8-dwconv/gen/up16x25-minmax-fp32-sse41-mul16.c",
6409    "src/qu8-dwconv/gen/up16x25-minmax-fp32-sse41-mul32.c",
6410    "src/qu8-f32-vcvt/gen/vcvt-sse41-x8.c",
6411    "src/qu8-f32-vcvt/gen/vcvt-sse41-x16.c",
6412    "src/qu8-f32-vcvt/gen/vcvt-sse41-x24.c",
6413    "src/qu8-f32-vcvt/gen/vcvt-sse41-x32.c",
6414    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse41-c8.c",
6415    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse41-c16.c",
6416    "src/qu8-gavgpool/gen/7p7x-minmax-fp32-sse41-c24.c",
6417    "src/qu8-gavgpool/gen/7x-minmax-fp32-sse41-c8.c",
6418    "src/qu8-gavgpool/gen/7x-minmax-fp32-sse41-c16.c",
6419    "src/qu8-gavgpool/gen/7x-minmax-fp32-sse41-c24.c",
6420    "src/qu8-gemm/gen/1x4c2-minmax-fp32-sse41-ld64.c",
6421    "src/qu8-gemm/gen/1x4c2-minmax-fp32-sse41-ld128.c",
6422    "src/qu8-gemm/gen/1x4c2s4-minmax-fp32-sse41-ld64.c",
6423    "src/qu8-gemm/gen/1x4c2s4-minmax-fp32-sse41-ld128.c",
6424    "src/qu8-gemm/gen/1x4c8-minmax-fp32-sse41-ld64.c",
6425    "src/qu8-gemm/gen/1x4c8-minmax-fp32-sse41-ld128.c",
6426    "src/qu8-gemm/gen/2x4c2-minmax-fp32-sse41-ld64.c",
6427    "src/qu8-gemm/gen/2x4c2-minmax-fp32-sse41-ld128.c",
6428    "src/qu8-gemm/gen/2x4c2s4-minmax-fp32-sse41-ld64.c",
6429    "src/qu8-gemm/gen/2x4c2s4-minmax-fp32-sse41-ld128.c",
6430    "src/qu8-gemm/gen/2x4c8-minmax-fp32-sse41-ld64.c",
6431    "src/qu8-gemm/gen/2x4c8-minmax-fp32-sse41-ld128.c",
6432    "src/qu8-gemm/gen/3x4c2-minmax-fp32-sse41-ld64.c",
6433    "src/qu8-gemm/gen/3x4c2-minmax-fp32-sse41-ld128.c",
6434    "src/qu8-gemm/gen/3x4c2s4-minmax-fp32-sse41-ld64.c",
6435    "src/qu8-gemm/gen/3x4c2s4-minmax-fp32-sse41-ld128.c",
6436    "src/qu8-gemm/gen/3x4c8-minmax-fp32-sse41-ld64.c",
6437    "src/qu8-gemm/gen/3x4c8-minmax-fp32-sse41-ld128.c",
6438    "src/qu8-gemm/gen/4x4c2-minmax-fp32-sse41-ld64.c",
6439    "src/qu8-gemm/gen/4x4c2-minmax-fp32-sse41-ld128.c",
6440    "src/qu8-gemm/gen/4x4c2s4-minmax-fp32-sse41-ld64.c",
6441    "src/qu8-gemm/gen/4x4c2s4-minmax-fp32-sse41-ld128.c",
6442    "src/qu8-igemm/gen/1x4c2-minmax-fp32-sse41-ld64.c",
6443    "src/qu8-igemm/gen/1x4c2-minmax-fp32-sse41-ld128.c",
6444    "src/qu8-igemm/gen/1x4c2s4-minmax-fp32-sse41-ld64.c",
6445    "src/qu8-igemm/gen/1x4c2s4-minmax-fp32-sse41-ld128.c",
6446    "src/qu8-igemm/gen/1x4c8-minmax-fp32-sse41-ld64.c",
6447    "src/qu8-igemm/gen/1x4c8-minmax-fp32-sse41-ld128.c",
6448    "src/qu8-igemm/gen/2x4c2-minmax-fp32-sse41-ld64.c",
6449    "src/qu8-igemm/gen/2x4c2-minmax-fp32-sse41-ld128.c",
6450    "src/qu8-igemm/gen/2x4c2s4-minmax-fp32-sse41-ld64.c",
6451    "src/qu8-igemm/gen/2x4c2s4-minmax-fp32-sse41-ld128.c",
6452    "src/qu8-igemm/gen/2x4c8-minmax-fp32-sse41-ld64.c",
6453    "src/qu8-igemm/gen/2x4c8-minmax-fp32-sse41-ld128.c",
6454    "src/qu8-igemm/gen/3x4c2-minmax-fp32-sse41-ld64.c",
6455    "src/qu8-igemm/gen/3x4c2-minmax-fp32-sse41-ld128.c",
6456    "src/qu8-igemm/gen/3x4c2s4-minmax-fp32-sse41-ld64.c",
6457    "src/qu8-igemm/gen/3x4c2s4-minmax-fp32-sse41-ld128.c",
6458    "src/qu8-igemm/gen/3x4c8-minmax-fp32-sse41-ld64.c",
6459    "src/qu8-igemm/gen/3x4c8-minmax-fp32-sse41-ld128.c",
6460    "src/qu8-igemm/gen/4x4c2-minmax-fp32-sse41-ld64.c",
6461    "src/qu8-igemm/gen/4x4c2-minmax-fp32-sse41-ld128.c",
6462    "src/qu8-igemm/gen/4x4c2s4-minmax-fp32-sse41-ld64.c",
6463    "src/qu8-igemm/gen/4x4c2s4-minmax-fp32-sse41-ld128.c",
6464    "src/qu8-requantization/gemmlowp-sse4.c",
6465    "src/qu8-requantization/rndna-sse4.c",
6466    "src/qu8-vadd/gen/minmax-sse41-mul16-ld64-x8.c",
6467    "src/qu8-vadd/gen/minmax-sse41-mul16-ld64-x16.c",
6468    "src/qu8-vadd/gen/minmax-sse41-mul32-ld32-x8.c",
6469    "src/qu8-vadd/gen/minmax-sse41-mul32-ld32-x16.c",
6470    "src/qu8-vaddc/gen/minmax-sse41-mul16-ld64-x8.c",
6471    "src/qu8-vaddc/gen/minmax-sse41-mul16-ld64-x16.c",
6472    "src/qu8-vaddc/gen/minmax-sse41-mul32-ld32-x8.c",
6473    "src/qu8-vaddc/gen/minmax-sse41-mul32-ld32-x16.c",
6474    "src/qu8-vcvt/gen/vcvt-sse41-x8.c",
6475    "src/qu8-vcvt/gen/vcvt-sse41-x16.c",
6476    "src/qu8-vcvt/gen/vcvt-sse41-x32.c",
6477    "src/qu8-vlrelu/gen/vlrelu-sse41-x8.c",
6478    "src/qu8-vlrelu/gen/vlrelu-sse41-x16.c",
6479    "src/qu8-vlrelu/gen/vlrelu-sse41-x32.c",
6480    "src/qu8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x8.c",
6481    "src/qu8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x16.c",
6482    "src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x8.c",
6483    "src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c",
6484    "src/s8-ibilinear/gen/sse41-c8.c",
6485    "src/s8-ibilinear/gen/sse41-c16.c",
6486    "src/s8-maxpool/9p8x-minmax-sse41-c16.c",
6487    "src/s8-vclamp/sse41-x64.c",
6488    "src/u8-ibilinear/gen/sse41-c8.c",
6489    "src/u8-ibilinear/gen/sse41-c16.c",
6490]
6491
6492PROD_AVX_MICROKERNEL_SRCS = [
6493    "src/f16-f32-vcvt/gen/vcvt-avx-int16-x16.c",
6494    "src/f32-dwconv/gen/up8x25-minmax-avx.c",
6495    "src/f32-dwconv/gen/up16x3-minmax-avx.c",
6496    "src/f32-dwconv/gen/up16x4-minmax-avx.c",
6497    "src/f32-dwconv/gen/up16x9-minmax-avx.c",
6498    "src/f32-f16-vcvt/gen/vcvt-avx-x24.c",
6499    "src/f32-gemm/gen/1x16-minmax-avx-broadcast.c",
6500    "src/f32-gemm/gen/5x16-minmax-avx-broadcast.c",
6501    "src/f32-igemm/gen/1x16-minmax-avx-broadcast.c",
6502    "src/f32-igemm/gen/5x16-minmax-avx-broadcast.c",
6503    "src/f32-prelu/gen/avx-2x16.c",
6504    "src/f32-qs8-vcvt/gen/vcvt-avx-x32.c",
6505    "src/f32-qu8-vcvt/gen/vcvt-avx-x32.c",
6506    "src/f32-vbinary/gen/vadd-minmax-avx-x16.c",
6507    "src/f32-vbinary/gen/vaddc-minmax-avx-x16.c",
6508    "src/f32-vbinary/gen/vdiv-minmax-avx-x16.c",
6509    "src/f32-vbinary/gen/vdivc-minmax-avx-x16.c",
6510    "src/f32-vbinary/gen/vmax-avx-x16.c",
6511    "src/f32-vbinary/gen/vmaxc-avx-x16.c",
6512    "src/f32-vbinary/gen/vmin-avx-x16.c",
6513    "src/f32-vbinary/gen/vminc-avx-x16.c",
6514    "src/f32-vbinary/gen/vmul-minmax-avx-x16.c",
6515    "src/f32-vbinary/gen/vmulc-minmax-avx-x16.c",
6516    "src/f32-vbinary/gen/vrdivc-minmax-avx-x16.c",
6517    "src/f32-vbinary/gen/vrsubc-minmax-avx-x16.c",
6518    "src/f32-vbinary/gen/vsqrdiff-avx-x16.c",
6519    "src/f32-vbinary/gen/vsqrdiffc-avx-x16.c",
6520    "src/f32-vbinary/gen/vsub-minmax-avx-x16.c",
6521    "src/f32-vbinary/gen/vsubc-minmax-avx-x16.c",
6522    "src/f32-vclamp/gen/vclamp-avx-x16.c",
6523    "src/f32-velu/gen/velu-avx-rr2-lut4-p4-perm-x32.c",
6524    "src/f32-vhswish/gen/vhswish-avx-x16.c",
6525    "src/f32-vlrelu/gen/vlrelu-avx-x16.c",
6526    "src/f32-vrnd/gen/vrndd-avx-x16.c",
6527    "src/f32-vrnd/gen/vrndne-avx-x16.c",
6528    "src/f32-vrnd/gen/vrndu-avx-x16.c",
6529    "src/f32-vrnd/gen/vrndz-avx-x16.c",
6530    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x40.c",
6531    "src/f32-vsqrt/gen/avx-sqrt-x8.c",
6532    "src/f32-vunary/gen/vabs-avx-x16.c",
6533    "src/f32-vunary/gen/vneg-avx-x16.c",
6534    "src/f32-vunary/gen/vsqr-avx-x16.c",
6535    "src/qc8-dwconv/gen/up16x3-minmax-fp32-avx-mul16-add16.c",
6536    "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx-mul16-add16.c",
6537    "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx-mul16-add16.c",
6538    "src/qc8-gemm/gen/1x4c8-minmax-fp32-avx-ld128.c",
6539    "src/qc8-gemm/gen/2x4c8-minmax-fp32-avx-ld128.c",
6540    "src/qc8-igemm/gen/1x4c8-minmax-fp32-avx-ld128.c",
6541    "src/qc8-igemm/gen/2x4c8-minmax-fp32-avx-ld128.c",
6542    "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx-mul16-add16.c",
6543    "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx-mul16-add16.c",
6544    "src/qs8-f32-vcvt/gen/vcvt-avx-x32.c",
6545    "src/qs8-gemm/gen/1x4c8-minmax-fp32-avx-ld128.c",
6546    "src/qs8-gemm/gen/2x4c8-minmax-fp32-avx-ld128.c",
6547    "src/qs8-igemm/gen/1x4c8-minmax-fp32-avx-ld128.c",
6548    "src/qs8-igemm/gen/2x4c8-minmax-fp32-avx-ld128.c",
6549    "src/qs8-vadd/gen/minmax-avx-mul32-ld32-x8.c",
6550    "src/qs8-vaddc/gen/minmax-avx-mul32-ld32-x8.c",
6551    "src/qs8-vcvt/gen/vcvt-avx-x32.c",
6552    "src/qs8-vlrelu/gen/vlrelu-avx-x32.c",
6553    "src/qs8-vmul/gen/minmax-fp32-avx-mul16-ld64-x16.c",
6554    "src/qs8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x16.c",
6555    "src/qu8-dwconv/gen/up16x9-minmax-fp32-avx-mul16.c",
6556    "src/qu8-dwconv/gen/up16x25-minmax-fp32-avx-mul16.c",
6557    "src/qu8-f32-vcvt/gen/vcvt-avx-x32.c",
6558    "src/qu8-gemm/gen/1x4c8-minmax-fp32-avx-ld128.c",
6559    "src/qu8-gemm/gen/2x4c8-minmax-fp32-avx-ld128.c",
6560    "src/qu8-igemm/gen/1x4c8-minmax-fp32-avx-ld128.c",
6561    "src/qu8-igemm/gen/2x4c8-minmax-fp32-avx-ld128.c",
6562    "src/qu8-vadd/gen/minmax-avx-mul32-ld32-x8.c",
6563    "src/qu8-vaddc/gen/minmax-avx-mul32-ld32-x8.c",
6564    "src/qu8-vcvt/gen/vcvt-avx-x32.c",
6565    "src/qu8-vlrelu/gen/vlrelu-avx-x32.c",
6566    "src/qu8-vmul/gen/minmax-fp32-avx-mul16-ld64-x16.c",
6567    "src/qu8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x16.c",
6568    "src/x8-lut/gen/lut-avx-x64.c",
6569]
6570
6571ALL_AVX_MICROKERNEL_SRCS = [
6572    "src/f16-f32-vcvt/gen/vcvt-avx-int16-x8.c",
6573    "src/f16-f32-vcvt/gen/vcvt-avx-int16-x16.c",
6574    "src/f16-f32-vcvt/gen/vcvt-avx-int16-x24.c",
6575    "src/f16-f32-vcvt/gen/vcvt-avx-int16-x32.c",
6576    "src/f16-f32-vcvt/gen/vcvt-avx-int32-x8.c",
6577    "src/f16-f32-vcvt/gen/vcvt-avx-int32-x16.c",
6578    "src/f16-f32-vcvt/gen/vcvt-avx-int32-x24.c",
6579    "src/f16-f32-vcvt/gen/vcvt-avx-int32-x32.c",
6580    "src/f32-dwconv/gen/up8x3-minmax-avx-acc2.c",
6581    "src/f32-dwconv/gen/up8x3-minmax-avx.c",
6582    "src/f32-dwconv/gen/up8x4-minmax-avx-acc2.c",
6583    "src/f32-dwconv/gen/up8x4-minmax-avx.c",
6584    "src/f32-dwconv/gen/up8x9-minmax-avx-acc2.c",
6585    "src/f32-dwconv/gen/up8x9-minmax-avx.c",
6586    "src/f32-dwconv/gen/up8x25-minmax-avx-acc2.c",
6587    "src/f32-dwconv/gen/up8x25-minmax-avx.c",
6588    "src/f32-dwconv/gen/up16x3-minmax-avx-acc2.c",
6589    "src/f32-dwconv/gen/up16x3-minmax-avx.c",
6590    "src/f32-dwconv/gen/up16x4-minmax-avx-acc2.c",
6591    "src/f32-dwconv/gen/up16x4-minmax-avx.c",
6592    "src/f32-dwconv/gen/up16x9-minmax-avx-acc2.c",
6593    "src/f32-dwconv/gen/up16x9-minmax-avx.c",
6594    "src/f32-dwconv/gen/up16x25-minmax-avx-acc2.c",
6595    "src/f32-dwconv/gen/up16x25-minmax-avx.c",
6596    "src/f32-f16-vcvt/gen/vcvt-avx-x8.c",
6597    "src/f32-f16-vcvt/gen/vcvt-avx-x16.c",
6598    "src/f32-f16-vcvt/gen/vcvt-avx-x24.c",
6599    "src/f32-f16-vcvt/gen/vcvt-avx-x32.c",
6600    "src/f32-gemm/gen-inc/1x8inc-minmax-avx-broadcast.c",
6601    "src/f32-gemm/gen-inc/1x16inc-minmax-avx-broadcast.c",
6602    "src/f32-gemm/gen-inc/3x16inc-minmax-avx-broadcast.c",
6603    "src/f32-gemm/gen-inc/4x8inc-minmax-avx-broadcast.c",
6604    "src/f32-gemm/gen-inc/4x16inc-minmax-avx-broadcast.c",
6605    "src/f32-gemm/gen-inc/5x8inc-minmax-avx-broadcast.c",
6606    "src/f32-gemm/gen-inc/5x16inc-minmax-avx-broadcast.c",
6607    "src/f32-gemm/gen-inc/6x8inc-minmax-avx-broadcast.c",
6608    "src/f32-gemm/gen-inc/7x8inc-minmax-avx-broadcast.c",
6609    "src/f32-gemm/gen/1x8-minmax-avx-broadcast.c",
6610    "src/f32-gemm/gen/1x16-minmax-avx-broadcast.c",
6611    "src/f32-gemm/gen/3x16-minmax-avx-broadcast.c",
6612    "src/f32-gemm/gen/4x8-minmax-avx-broadcast.c",
6613    "src/f32-gemm/gen/4x16-minmax-avx-broadcast.c",
6614    "src/f32-gemm/gen/5x8-minmax-avx-broadcast.c",
6615    "src/f32-gemm/gen/5x16-minmax-avx-broadcast.c",
6616    "src/f32-gemm/gen/6x8-minmax-avx-broadcast.c",
6617    "src/f32-gemm/gen/7x8-minmax-avx-broadcast.c",
6618    "src/f32-igemm/gen/1x8-minmax-avx-broadcast.c",
6619    "src/f32-igemm/gen/1x16-minmax-avx-broadcast.c",
6620    "src/f32-igemm/gen/3x16-minmax-avx-broadcast.c",
6621    "src/f32-igemm/gen/4x8-minmax-avx-broadcast.c",
6622    "src/f32-igemm/gen/4x16-minmax-avx-broadcast.c",
6623    "src/f32-igemm/gen/5x8-minmax-avx-broadcast.c",
6624    "src/f32-igemm/gen/5x16-minmax-avx-broadcast.c",
6625    "src/f32-igemm/gen/6x8-minmax-avx-broadcast.c",
6626    "src/f32-igemm/gen/7x8-minmax-avx-broadcast.c",
6627    "src/f32-prelu/gen/avx-2x8.c",
6628    "src/f32-prelu/gen/avx-2x16.c",
6629    "src/f32-qs8-vcvt/gen/vcvt-avx-x8.c",
6630    "src/f32-qs8-vcvt/gen/vcvt-avx-x16.c",
6631    "src/f32-qs8-vcvt/gen/vcvt-avx-x24.c",
6632    "src/f32-qs8-vcvt/gen/vcvt-avx-x32.c",
6633    "src/f32-qu8-vcvt/gen/vcvt-avx-x8.c",
6634    "src/f32-qu8-vcvt/gen/vcvt-avx-x16.c",
6635    "src/f32-qu8-vcvt/gen/vcvt-avx-x24.c",
6636    "src/f32-qu8-vcvt/gen/vcvt-avx-x32.c",
6637    "src/f32-rmax/avx.c",
6638    "src/f32-vbinary/gen/vadd-minmax-avx-x8.c",
6639    "src/f32-vbinary/gen/vadd-minmax-avx-x16.c",
6640    "src/f32-vbinary/gen/vaddc-minmax-avx-x8.c",
6641    "src/f32-vbinary/gen/vaddc-minmax-avx-x16.c",
6642    "src/f32-vbinary/gen/vdiv-minmax-avx-x8.c",
6643    "src/f32-vbinary/gen/vdiv-minmax-avx-x16.c",
6644    "src/f32-vbinary/gen/vdivc-minmax-avx-x8.c",
6645    "src/f32-vbinary/gen/vdivc-minmax-avx-x16.c",
6646    "src/f32-vbinary/gen/vmax-avx-x8.c",
6647    "src/f32-vbinary/gen/vmax-avx-x16.c",
6648    "src/f32-vbinary/gen/vmaxc-avx-x8.c",
6649    "src/f32-vbinary/gen/vmaxc-avx-x16.c",
6650    "src/f32-vbinary/gen/vmin-avx-x8.c",
6651    "src/f32-vbinary/gen/vmin-avx-x16.c",
6652    "src/f32-vbinary/gen/vminc-avx-x8.c",
6653    "src/f32-vbinary/gen/vminc-avx-x16.c",
6654    "src/f32-vbinary/gen/vmul-minmax-avx-x8.c",
6655    "src/f32-vbinary/gen/vmul-minmax-avx-x16.c",
6656    "src/f32-vbinary/gen/vmulc-minmax-avx-x8.c",
6657    "src/f32-vbinary/gen/vmulc-minmax-avx-x16.c",
6658    "src/f32-vbinary/gen/vrdivc-minmax-avx-x8.c",
6659    "src/f32-vbinary/gen/vrdivc-minmax-avx-x16.c",
6660    "src/f32-vbinary/gen/vrsubc-minmax-avx-x8.c",
6661    "src/f32-vbinary/gen/vrsubc-minmax-avx-x16.c",
6662    "src/f32-vbinary/gen/vsqrdiff-avx-x8.c",
6663    "src/f32-vbinary/gen/vsqrdiff-avx-x16.c",
6664    "src/f32-vbinary/gen/vsqrdiffc-avx-x8.c",
6665    "src/f32-vbinary/gen/vsqrdiffc-avx-x16.c",
6666    "src/f32-vbinary/gen/vsub-minmax-avx-x8.c",
6667    "src/f32-vbinary/gen/vsub-minmax-avx-x16.c",
6668    "src/f32-vbinary/gen/vsubc-minmax-avx-x8.c",
6669    "src/f32-vbinary/gen/vsubc-minmax-avx-x16.c",
6670    "src/f32-vclamp/gen/vclamp-avx-x8.c",
6671    "src/f32-vclamp/gen/vclamp-avx-x16.c",
6672    "src/f32-velu/gen/velu-avx-rr2-lut4-p4-perm-x8.c",
6673    "src/f32-velu/gen/velu-avx-rr2-lut4-p4-perm-x16.c",
6674    "src/f32-velu/gen/velu-avx-rr2-lut4-p4-perm-x24.c",
6675    "src/f32-velu/gen/velu-avx-rr2-lut4-p4-perm-x32.c",
6676    "src/f32-velu/gen/velu-avx-rr2-lut4-p4-perm-x40.c",
6677    "src/f32-velu/gen/velu-avx-rr2-lut4-p4-perm-x48.c",
6678    "src/f32-velu/gen/velu-avx-rr2-lut16-p3-x8.c",
6679    "src/f32-velu/gen/velu-avx-rr2-lut16-p3-x16.c",
6680    "src/f32-velu/gen/velu-avx-rr2-lut16-p3-x24.c",
6681    "src/f32-velu/gen/velu-avx-rr2-lut16-p3-x32.c",
6682    "src/f32-velu/gen/velu-avx-rr2-lut16-p3-x40.c",
6683    "src/f32-velu/gen/velu-avx-rr2-lut16-p3-x48.c",
6684    "src/f32-velu/gen/velu-avx-rr2-p6-x8.c",
6685    "src/f32-velu/gen/velu-avx-rr2-p6-x16.c",
6686    "src/f32-velu/gen/velu-avx-rr2-p6-x24.c",
6687    "src/f32-velu/gen/velu-avx-rr2-p6-x32.c",
6688    "src/f32-velu/gen/velu-avx-rr2-p6-x40.c",
6689    "src/f32-velu/gen/velu-avx-rr2-p6-x48.c",
6690    "src/f32-vhswish/gen/vhswish-avx-x8.c",
6691    "src/f32-vhswish/gen/vhswish-avx-x16.c",
6692    "src/f32-vlrelu/gen/vlrelu-avx-x8.c",
6693    "src/f32-vlrelu/gen/vlrelu-avx-x16.c",
6694    "src/f32-vrelu/gen/vrelu-avx-x8.c",
6695    "src/f32-vrelu/gen/vrelu-avx-x16.c",
6696    "src/f32-vrnd/gen/vrndd-avx-x8.c",
6697    "src/f32-vrnd/gen/vrndd-avx-x16.c",
6698    "src/f32-vrnd/gen/vrndne-avx-x8.c",
6699    "src/f32-vrnd/gen/vrndne-avx-x16.c",
6700    "src/f32-vrnd/gen/vrndu-avx-x8.c",
6701    "src/f32-vrnd/gen/vrndu-avx-x16.c",
6702    "src/f32-vrnd/gen/vrndz-avx-x8.c",
6703    "src/f32-vrnd/gen/vrndz-avx-x16.c",
6704    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x8.c",
6705    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x16.c",
6706    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x24.c",
6707    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x32.c",
6708    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x40.c",
6709    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x48.c",
6710    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x56.c",
6711    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x64.c",
6712    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x72.c",
6713    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-div-x80.c",
6714    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x8.c",
6715    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x16.c",
6716    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x24.c",
6717    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x32.c",
6718    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x40.c",
6719    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x48.c",
6720    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x56.c",
6721    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x64.c",
6722    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x72.c",
6723    "src/f32-vsigmoid/gen/vsigmoid-avx-rr2-p5-nr2-x80.c",
6724    "src/f32-vsqrt/gen/avx-sqrt-x8.c",
6725    "src/f32-vsqrt/gen/avx-sqrt-x16.c",
6726    "src/f32-vunary/gen/vabs-avx-x8.c",
6727    "src/f32-vunary/gen/vabs-avx-x16.c",
6728    "src/f32-vunary/gen/vneg-avx-x8.c",
6729    "src/f32-vunary/gen/vneg-avx-x16.c",
6730    "src/f32-vunary/gen/vsqr-avx-x8.c",
6731    "src/f32-vunary/gen/vsqr-avx-x16.c",
6732    "src/math/exp-f32-avx-rr2-p5.c",
6733    "src/math/expm1minus-f32-avx-rr2-lut4-p4-perm.c",
6734    "src/math/expm1minus-f32-avx-rr2-lut16-p3.c",
6735    "src/math/expm1minus-f32-avx-rr2-p6.c",
6736    "src/math/sigmoid-f32-avx-rr2-lut64-p2-div.c",
6737    "src/math/sigmoid-f32-avx-rr2-p5-div.c",
6738    "src/math/sigmoid-f32-avx-rr2-p5-nr1.c",
6739    "src/math/sigmoid-f32-avx-rr2-p5-nr2.c",
6740    "src/qc8-dwconv/gen/up8x9-minmax-fp32-avx-mul16-add16.c",
6741    "src/qc8-dwconv/gen/up8x9-minmax-fp32-avx-mul16.c",
6742    "src/qc8-dwconv/gen/up8x9-minmax-fp32-avx-mul32.c",
6743    "src/qc8-dwconv/gen/up8x25-minmax-fp32-avx-mul16-add16.c",
6744    "src/qc8-dwconv/gen/up8x25-minmax-fp32-avx-mul16.c",
6745    "src/qc8-dwconv/gen/up8x25-minmax-fp32-avx-mul32.c",
6746    "src/qc8-dwconv/gen/up16x3-minmax-fp32-avx-mul16-add16.c",
6747    "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx-mul16-add16.c",
6748    "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx-mul16.c",
6749    "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx-mul32.c",
6750    "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx-mul16-add16.c",
6751    "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx-mul16.c",
6752    "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx-mul32.c",
6753    "src/qc8-dwconv/gen/up24x9-minmax-fp32-avx-mul16.c",
6754    "src/qc8-dwconv/gen/up24x9-minmax-fp32-avx-mul32.c",
6755    "src/qc8-dwconv/gen/up24x25-minmax-fp32-avx-mul16.c",
6756    "src/qc8-dwconv/gen/up24x25-minmax-fp32-avx-mul32.c",
6757    "src/qc8-gemm/gen/1x4c2-minmax-fp32-avx-ld64.c",
6758    "src/qc8-gemm/gen/1x4c2-minmax-fp32-avx-ld128.c",
6759    "src/qc8-gemm/gen/1x4c2s4-minmax-fp32-avx-ld64.c",
6760    "src/qc8-gemm/gen/1x4c2s4-minmax-fp32-avx-ld128.c",
6761    "src/qc8-gemm/gen/1x4c8-minmax-fp32-avx-ld64.c",
6762    "src/qc8-gemm/gen/1x4c8-minmax-fp32-avx-ld128.c",
6763    "src/qc8-gemm/gen/2x4c2-minmax-fp32-avx-ld64.c",
6764    "src/qc8-gemm/gen/2x4c2-minmax-fp32-avx-ld128.c",
6765    "src/qc8-gemm/gen/2x4c2s4-minmax-fp32-avx-ld64.c",
6766    "src/qc8-gemm/gen/2x4c2s4-minmax-fp32-avx-ld128.c",
6767    "src/qc8-gemm/gen/2x4c8-minmax-fp32-avx-ld64.c",
6768    "src/qc8-gemm/gen/2x4c8-minmax-fp32-avx-ld128.c",
6769    "src/qc8-gemm/gen/3x4c2-minmax-fp32-avx-ld64.c",
6770    "src/qc8-gemm/gen/3x4c2-minmax-fp32-avx-ld128.c",
6771    "src/qc8-gemm/gen/3x4c2s4-minmax-fp32-avx-ld64.c",
6772    "src/qc8-gemm/gen/3x4c2s4-minmax-fp32-avx-ld128.c",
6773    "src/qc8-gemm/gen/3x4c8-minmax-fp32-avx-ld64.c",
6774    "src/qc8-gemm/gen/3x4c8-minmax-fp32-avx-ld128.c",
6775    "src/qc8-gemm/gen/4x4c2-minmax-fp32-avx-ld64.c",
6776    "src/qc8-gemm/gen/4x4c2-minmax-fp32-avx-ld128.c",
6777    "src/qc8-gemm/gen/4x4c2s4-minmax-fp32-avx-ld64.c",
6778    "src/qc8-gemm/gen/4x4c2s4-minmax-fp32-avx-ld128.c",
6779    "src/qc8-igemm/gen/1x4c2-minmax-fp32-avx-ld64.c",
6780    "src/qc8-igemm/gen/1x4c2-minmax-fp32-avx-ld128.c",
6781    "src/qc8-igemm/gen/1x4c2s4-minmax-fp32-avx-ld64.c",
6782    "src/qc8-igemm/gen/1x4c2s4-minmax-fp32-avx-ld128.c",
6783    "src/qc8-igemm/gen/1x4c8-minmax-fp32-avx-ld64.c",
6784    "src/qc8-igemm/gen/1x4c8-minmax-fp32-avx-ld128.c",
6785    "src/qc8-igemm/gen/2x4c2-minmax-fp32-avx-ld64.c",
6786    "src/qc8-igemm/gen/2x4c2-minmax-fp32-avx-ld128.c",
6787    "src/qc8-igemm/gen/2x4c2s4-minmax-fp32-avx-ld64.c",
6788    "src/qc8-igemm/gen/2x4c2s4-minmax-fp32-avx-ld128.c",
6789    "src/qc8-igemm/gen/2x4c8-minmax-fp32-avx-ld64.c",
6790    "src/qc8-igemm/gen/2x4c8-minmax-fp32-avx-ld128.c",
6791    "src/qc8-igemm/gen/3x4c2-minmax-fp32-avx-ld64.c",
6792    "src/qc8-igemm/gen/3x4c2-minmax-fp32-avx-ld128.c",
6793    "src/qc8-igemm/gen/3x4c2s4-minmax-fp32-avx-ld64.c",
6794    "src/qc8-igemm/gen/3x4c2s4-minmax-fp32-avx-ld128.c",
6795    "src/qc8-igemm/gen/3x4c8-minmax-fp32-avx-ld64.c",
6796    "src/qc8-igemm/gen/3x4c8-minmax-fp32-avx-ld128.c",
6797    "src/qc8-igemm/gen/4x4c2-minmax-fp32-avx-ld64.c",
6798    "src/qc8-igemm/gen/4x4c2-minmax-fp32-avx-ld128.c",
6799    "src/qc8-igemm/gen/4x4c2s4-minmax-fp32-avx-ld64.c",
6800    "src/qc8-igemm/gen/4x4c2s4-minmax-fp32-avx-ld128.c",
6801    "src/qs8-dwconv/gen/up8x9-minmax-fp32-avx-mul16-add16.c",
6802    "src/qs8-dwconv/gen/up8x9-minmax-fp32-avx-mul16.c",
6803    "src/qs8-dwconv/gen/up8x9-minmax-fp32-avx-mul32.c",
6804    "src/qs8-dwconv/gen/up8x25-minmax-fp32-avx-mul16-add16.c",
6805    "src/qs8-dwconv/gen/up8x25-minmax-fp32-avx-mul16.c",
6806    "src/qs8-dwconv/gen/up8x25-minmax-fp32-avx-mul32.c",
6807    "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx-mul16-add16.c",
6808    "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx-mul16.c",
6809    "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx-mul32.c",
6810    "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx-mul16-add16.c",
6811    "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx-mul16.c",
6812    "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx-mul32.c",
6813    "src/qs8-dwconv/gen/up24x9-minmax-fp32-avx-mul16.c",
6814    "src/qs8-dwconv/gen/up24x9-minmax-fp32-avx-mul32.c",
6815    "src/qs8-dwconv/gen/up24x25-minmax-fp32-avx-mul16.c",
6816    "src/qs8-dwconv/gen/up24x25-minmax-fp32-avx-mul32.c",
6817    "src/qs8-f32-vcvt/gen/vcvt-avx-x8.c",
6818    "src/qs8-f32-vcvt/gen/vcvt-avx-x16.c",
6819    "src/qs8-f32-vcvt/gen/vcvt-avx-x24.c",
6820    "src/qs8-f32-vcvt/gen/vcvt-avx-x32.c",
6821    "src/qs8-gemm/gen/1x4c2-minmax-fp32-avx-ld64.c",
6822    "src/qs8-gemm/gen/1x4c2-minmax-fp32-avx-ld128.c",
6823    "src/qs8-gemm/gen/1x4c2-xw-minmax-fp32-avx.c",
6824    "src/qs8-gemm/gen/1x4c2s4-minmax-fp32-avx-ld64.c",
6825    "src/qs8-gemm/gen/1x4c2s4-minmax-fp32-avx-ld128.c",
6826    "src/qs8-gemm/gen/1x4c2s4-xw-minmax-fp32-avx.c",
6827    "src/qs8-gemm/gen/1x4c8-minmax-fp32-avx-ld64.c",
6828    "src/qs8-gemm/gen/1x4c8-minmax-fp32-avx-ld128.c",
6829    "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-avx.c",
6830    "src/qs8-gemm/gen/2x4c2-minmax-fp32-avx-ld64.c",
6831    "src/qs8-gemm/gen/2x4c2-minmax-fp32-avx-ld128.c",
6832    "src/qs8-gemm/gen/2x4c2-xw-minmax-fp32-avx.c",
6833    "src/qs8-gemm/gen/2x4c2s4-minmax-fp32-avx-ld64.c",
6834    "src/qs8-gemm/gen/2x4c2s4-minmax-fp32-avx-ld128.c",
6835    "src/qs8-gemm/gen/2x4c2s4-xw-minmax-fp32-avx.c",
6836    "src/qs8-gemm/gen/2x4c8-minmax-fp32-avx-ld64.c",
6837    "src/qs8-gemm/gen/2x4c8-minmax-fp32-avx-ld128.c",
6838    "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-avx.c",
6839    "src/qs8-gemm/gen/3x4c2-minmax-fp32-avx-ld64.c",
6840    "src/qs8-gemm/gen/3x4c2-minmax-fp32-avx-ld128.c",
6841    "src/qs8-gemm/gen/3x4c2-xw-minmax-fp32-avx.c",
6842    "src/qs8-gemm/gen/3x4c2s4-minmax-fp32-avx-ld64.c",
6843    "src/qs8-gemm/gen/3x4c2s4-minmax-fp32-avx-ld128.c",
6844    "src/qs8-gemm/gen/3x4c2s4-xw-minmax-fp32-avx.c",
6845    "src/qs8-gemm/gen/3x4c8-minmax-fp32-avx-ld64.c",
6846    "src/qs8-gemm/gen/3x4c8-minmax-fp32-avx-ld128.c",
6847    "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-avx.c",
6848    "src/qs8-gemm/gen/4x4c2-minmax-fp32-avx-ld64.c",
6849    "src/qs8-gemm/gen/4x4c2-minmax-fp32-avx-ld128.c",
6850    "src/qs8-gemm/gen/4x4c2-xw-minmax-fp32-avx.c",
6851    "src/qs8-gemm/gen/4x4c2s4-minmax-fp32-avx-ld64.c",
6852    "src/qs8-gemm/gen/4x4c2s4-minmax-fp32-avx-ld128.c",
6853    "src/qs8-gemm/gen/4x4c2s4-xw-minmax-fp32-avx.c",
6854    "src/qs8-igemm/gen/1x4c2-minmax-fp32-avx-ld64.c",
6855    "src/qs8-igemm/gen/1x4c2-minmax-fp32-avx-ld128.c",
6856    "src/qs8-igemm/gen/1x4c2s4-minmax-fp32-avx-ld64.c",
6857    "src/qs8-igemm/gen/1x4c2s4-minmax-fp32-avx-ld128.c",
6858    "src/qs8-igemm/gen/1x4c8-minmax-fp32-avx-ld64.c",
6859    "src/qs8-igemm/gen/1x4c8-minmax-fp32-avx-ld128.c",
6860    "src/qs8-igemm/gen/2x4c2-minmax-fp32-avx-ld64.c",
6861    "src/qs8-igemm/gen/2x4c2-minmax-fp32-avx-ld128.c",
6862    "src/qs8-igemm/gen/2x4c2s4-minmax-fp32-avx-ld64.c",
6863    "src/qs8-igemm/gen/2x4c2s4-minmax-fp32-avx-ld128.c",
6864    "src/qs8-igemm/gen/2x4c8-minmax-fp32-avx-ld64.c",
6865    "src/qs8-igemm/gen/2x4c8-minmax-fp32-avx-ld128.c",
6866    "src/qs8-igemm/gen/3x4c2-minmax-fp32-avx-ld64.c",
6867    "src/qs8-igemm/gen/3x4c2-minmax-fp32-avx-ld128.c",
6868    "src/qs8-igemm/gen/3x4c2s4-minmax-fp32-avx-ld64.c",
6869    "src/qs8-igemm/gen/3x4c2s4-minmax-fp32-avx-ld128.c",
6870    "src/qs8-igemm/gen/3x4c8-minmax-fp32-avx-ld64.c",
6871    "src/qs8-igemm/gen/3x4c8-minmax-fp32-avx-ld128.c",
6872    "src/qs8-igemm/gen/4x4c2-minmax-fp32-avx-ld64.c",
6873    "src/qs8-igemm/gen/4x4c2-minmax-fp32-avx-ld128.c",
6874    "src/qs8-igemm/gen/4x4c2s4-minmax-fp32-avx-ld64.c",
6875    "src/qs8-igemm/gen/4x4c2s4-minmax-fp32-avx-ld128.c",
6876    "src/qs8-vadd/gen/minmax-avx-mul16-ld64-x8.c",
6877    "src/qs8-vadd/gen/minmax-avx-mul16-ld64-x16.c",
6878    "src/qs8-vadd/gen/minmax-avx-mul16-ld64-x24.c",
6879    "src/qs8-vadd/gen/minmax-avx-mul16-ld64-x32.c",
6880    "src/qs8-vadd/gen/minmax-avx-mul32-ld32-x8.c",
6881    "src/qs8-vadd/gen/minmax-avx-mul32-ld32-x16.c",
6882    "src/qs8-vadd/gen/minmax-avx-mul32-ld32-x24.c",
6883    "src/qs8-vadd/gen/minmax-avx-mul32-ld32-x32.c",
6884    "src/qs8-vaddc/gen/minmax-avx-mul16-ld64-x8.c",
6885    "src/qs8-vaddc/gen/minmax-avx-mul16-ld64-x16.c",
6886    "src/qs8-vaddc/gen/minmax-avx-mul16-ld64-x24.c",
6887    "src/qs8-vaddc/gen/minmax-avx-mul16-ld64-x32.c",
6888    "src/qs8-vaddc/gen/minmax-avx-mul32-ld32-x8.c",
6889    "src/qs8-vaddc/gen/minmax-avx-mul32-ld32-x16.c",
6890    "src/qs8-vaddc/gen/minmax-avx-mul32-ld32-x24.c",
6891    "src/qs8-vaddc/gen/minmax-avx-mul32-ld32-x32.c",
6892    "src/qs8-vcvt/gen/vcvt-avx-x8.c",
6893    "src/qs8-vcvt/gen/vcvt-avx-x16.c",
6894    "src/qs8-vcvt/gen/vcvt-avx-x32.c",
6895    "src/qs8-vlrelu/gen/vlrelu-avx-x8.c",
6896    "src/qs8-vlrelu/gen/vlrelu-avx-x16.c",
6897    "src/qs8-vlrelu/gen/vlrelu-avx-x32.c",
6898    "src/qs8-vmul/gen/minmax-fp32-avx-mul16-ld64-x8.c",
6899    "src/qs8-vmul/gen/minmax-fp32-avx-mul16-ld64-x16.c",
6900    "src/qs8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x8.c",
6901    "src/qs8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x16.c",
6902    "src/qu8-dwconv/gen/up8x9-minmax-fp32-avx-mul16.c",
6903    "src/qu8-dwconv/gen/up8x9-minmax-fp32-avx-mul32.c",
6904    "src/qu8-dwconv/gen/up8x25-minmax-fp32-avx-mul16.c",
6905    "src/qu8-dwconv/gen/up8x25-minmax-fp32-avx-mul32.c",
6906    "src/qu8-dwconv/gen/up16x9-minmax-fp32-avx-mul16.c",
6907    "src/qu8-dwconv/gen/up16x9-minmax-fp32-avx-mul32.c",
6908    "src/qu8-dwconv/gen/up16x25-minmax-fp32-avx-mul16.c",
6909    "src/qu8-dwconv/gen/up16x25-minmax-fp32-avx-mul32.c",
6910    "src/qu8-f32-vcvt/gen/vcvt-avx-x8.c",
6911    "src/qu8-f32-vcvt/gen/vcvt-avx-x16.c",
6912    "src/qu8-f32-vcvt/gen/vcvt-avx-x24.c",
6913    "src/qu8-f32-vcvt/gen/vcvt-avx-x32.c",
6914    "src/qu8-gemm/gen/1x4c2-minmax-fp32-avx-ld64.c",
6915    "src/qu8-gemm/gen/1x4c2-minmax-fp32-avx-ld128.c",
6916    "src/qu8-gemm/gen/1x4c2s4-minmax-fp32-avx-ld64.c",
6917    "src/qu8-gemm/gen/1x4c2s4-minmax-fp32-avx-ld128.c",
6918    "src/qu8-gemm/gen/1x4c8-minmax-fp32-avx-ld64.c",
6919    "src/qu8-gemm/gen/1x4c8-minmax-fp32-avx-ld128.c",
6920    "src/qu8-gemm/gen/2x4c2-minmax-fp32-avx-ld64.c",
6921    "src/qu8-gemm/gen/2x4c2-minmax-fp32-avx-ld128.c",
6922    "src/qu8-gemm/gen/2x4c2s4-minmax-fp32-avx-ld64.c",
6923    "src/qu8-gemm/gen/2x4c2s4-minmax-fp32-avx-ld128.c",
6924    "src/qu8-gemm/gen/2x4c8-minmax-fp32-avx-ld64.c",
6925    "src/qu8-gemm/gen/2x4c8-minmax-fp32-avx-ld128.c",
6926    "src/qu8-gemm/gen/3x4c2-minmax-fp32-avx-ld64.c",
6927    "src/qu8-gemm/gen/3x4c2-minmax-fp32-avx-ld128.c",
6928    "src/qu8-gemm/gen/3x4c2s4-minmax-fp32-avx-ld64.c",
6929    "src/qu8-gemm/gen/3x4c2s4-minmax-fp32-avx-ld128.c",
6930    "src/qu8-gemm/gen/3x4c8-minmax-fp32-avx-ld64.c",
6931    "src/qu8-gemm/gen/3x4c8-minmax-fp32-avx-ld128.c",
6932    "src/qu8-gemm/gen/4x4c2-minmax-fp32-avx-ld64.c",
6933    "src/qu8-gemm/gen/4x4c2-minmax-fp32-avx-ld128.c",
6934    "src/qu8-gemm/gen/4x4c2s4-minmax-fp32-avx-ld64.c",
6935    "src/qu8-gemm/gen/4x4c2s4-minmax-fp32-avx-ld128.c",
6936    "src/qu8-igemm/gen/1x4c2-minmax-fp32-avx-ld64.c",
6937    "src/qu8-igemm/gen/1x4c2-minmax-fp32-avx-ld128.c",
6938    "src/qu8-igemm/gen/1x4c2s4-minmax-fp32-avx-ld64.c",
6939    "src/qu8-igemm/gen/1x4c2s4-minmax-fp32-avx-ld128.c",
6940    "src/qu8-igemm/gen/1x4c8-minmax-fp32-avx-ld64.c",
6941    "src/qu8-igemm/gen/1x4c8-minmax-fp32-avx-ld128.c",
6942    "src/qu8-igemm/gen/2x4c2-minmax-fp32-avx-ld64.c",
6943    "src/qu8-igemm/gen/2x4c2-minmax-fp32-avx-ld128.c",
6944    "src/qu8-igemm/gen/2x4c2s4-minmax-fp32-avx-ld64.c",
6945    "src/qu8-igemm/gen/2x4c2s4-minmax-fp32-avx-ld128.c",
6946    "src/qu8-igemm/gen/2x4c8-minmax-fp32-avx-ld64.c",
6947    "src/qu8-igemm/gen/2x4c8-minmax-fp32-avx-ld128.c",
6948    "src/qu8-igemm/gen/3x4c2-minmax-fp32-avx-ld64.c",
6949    "src/qu8-igemm/gen/3x4c2-minmax-fp32-avx-ld128.c",
6950    "src/qu8-igemm/gen/3x4c2s4-minmax-fp32-avx-ld64.c",
6951    "src/qu8-igemm/gen/3x4c2s4-minmax-fp32-avx-ld128.c",
6952    "src/qu8-igemm/gen/3x4c8-minmax-fp32-avx-ld64.c",
6953    "src/qu8-igemm/gen/3x4c8-minmax-fp32-avx-ld128.c",
6954    "src/qu8-igemm/gen/4x4c2-minmax-fp32-avx-ld64.c",
6955    "src/qu8-igemm/gen/4x4c2-minmax-fp32-avx-ld128.c",
6956    "src/qu8-igemm/gen/4x4c2s4-minmax-fp32-avx-ld64.c",
6957    "src/qu8-igemm/gen/4x4c2s4-minmax-fp32-avx-ld128.c",
6958    "src/qu8-vadd/gen/minmax-avx-mul16-ld64-x8.c",
6959    "src/qu8-vadd/gen/minmax-avx-mul16-ld64-x16.c",
6960    "src/qu8-vadd/gen/minmax-avx-mul32-ld32-x8.c",
6961    "src/qu8-vadd/gen/minmax-avx-mul32-ld32-x16.c",
6962    "src/qu8-vaddc/gen/minmax-avx-mul16-ld64-x8.c",
6963    "src/qu8-vaddc/gen/minmax-avx-mul16-ld64-x16.c",
6964    "src/qu8-vaddc/gen/minmax-avx-mul32-ld32-x8.c",
6965    "src/qu8-vaddc/gen/minmax-avx-mul32-ld32-x16.c",
6966    "src/qu8-vcvt/gen/vcvt-avx-x8.c",
6967    "src/qu8-vcvt/gen/vcvt-avx-x16.c",
6968    "src/qu8-vcvt/gen/vcvt-avx-x32.c",
6969    "src/qu8-vlrelu/gen/vlrelu-avx-x8.c",
6970    "src/qu8-vlrelu/gen/vlrelu-avx-x16.c",
6971    "src/qu8-vlrelu/gen/vlrelu-avx-x32.c",
6972    "src/qu8-vmul/gen/minmax-fp32-avx-mul16-ld64-x8.c",
6973    "src/qu8-vmul/gen/minmax-fp32-avx-mul16-ld64-x16.c",
6974    "src/qu8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x8.c",
6975    "src/qu8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x16.c",
6976    "src/x8-lut/gen/lut-avx-x16.c",
6977    "src/x8-lut/gen/lut-avx-x32.c",
6978    "src/x8-lut/gen/lut-avx-x48.c",
6979    "src/x8-lut/gen/lut-avx-x64.c",
6980]
6981
6982PROD_F16C_MICROKERNEL_SRCS = [
6983    "src/f16-avgpool/9p8x-minmax-f16c-c8.c",
6984    "src/f16-avgpool/9x-minmax-f16c-c8.c",
6985    "src/f16-f32-vcvt/gen/vcvt-f16c-x16.c",
6986    "src/f16-gavgpool/gen/7p7x-minmax-f16c-c8.c",
6987    "src/f16-gavgpool/gen/7x-minmax-f16c-c8.c",
6988    "src/f16-maxpool/9p8x-minmax-f16c-c8.c",
6989    "src/f16-prelu/gen/f16c-2x16.c",
6990    "src/f16-rmax/f16c.c",
6991    "src/f16-vbinary/gen/vadd-minmax-f16c-x16.c",
6992    "src/f16-vbinary/gen/vaddc-minmax-f16c-x16.c",
6993    "src/f16-vbinary/gen/vdiv-minmax-f16c-x8.c",
6994    "src/f16-vbinary/gen/vdivc-minmax-f16c-x8.c",
6995    "src/f16-vbinary/gen/vmax-f16c-x16.c",
6996    "src/f16-vbinary/gen/vmaxc-f16c-x16.c",
6997    "src/f16-vbinary/gen/vmin-f16c-x16.c",
6998    "src/f16-vbinary/gen/vminc-f16c-x16.c",
6999    "src/f16-vbinary/gen/vmul-minmax-f16c-x16.c",
7000    "src/f16-vbinary/gen/vmulc-minmax-f16c-x16.c",
7001    "src/f16-vbinary/gen/vrdivc-minmax-f16c-x8.c",
7002    "src/f16-vbinary/gen/vrsubc-minmax-f16c-x16.c",
7003    "src/f16-vbinary/gen/vsqrdiff-f16c-x16.c",
7004    "src/f16-vbinary/gen/vsqrdiffc-f16c-x16.c",
7005    "src/f16-vbinary/gen/vsub-minmax-f16c-x16.c",
7006    "src/f16-vbinary/gen/vsubc-minmax-f16c-x16.c",
7007    "src/f16-vclamp/gen/vclamp-f16c-x16.c",
7008    "src/f16-vhswish/gen/vhswish-f16c-x16.c",
7009    "src/f16-vlrelu/gen/vlrelu-f16c-x16.c",
7010    "src/f16-vrnd/gen/vrndd-f16c-x16.c",
7011    "src/f16-vrnd/gen/vrndne-f16c-x16.c",
7012    "src/f16-vrnd/gen/vrndu-f16c-x16.c",
7013    "src/f16-vrnd/gen/vrndz-f16c-x16.c",
7014    "src/f16-vsqrt/gen/f16c-sqrt-x8.c",
7015    "src/f16-vunary/gen/vsqr-f16c-x16.c",
7016    "src/f32-f16-vcvt/gen/vcvt-f16c-x16.c",
7017]
7018
7019ALL_F16C_MICROKERNEL_SRCS = [
7020    "src/f16-avgpool/9p8x-minmax-f16c-c8.c",
7021    "src/f16-avgpool/9x-minmax-f16c-c8.c",
7022    "src/f16-f32-vcvt/gen/vcvt-f16c-x8.c",
7023    "src/f16-f32-vcvt/gen/vcvt-f16c-x16.c",
7024    "src/f16-gavgpool/gen/7p7x-minmax-f16c-c8.c",
7025    "src/f16-gavgpool/gen/7p7x-minmax-f16c-c16.c",
7026    "src/f16-gavgpool/gen/7p7x-minmax-f16c-c24.c",
7027    "src/f16-gavgpool/gen/7p7x-minmax-f16c-c32.c",
7028    "src/f16-gavgpool/gen/7x-minmax-f16c-c8.c",
7029    "src/f16-gavgpool/gen/7x-minmax-f16c-c16.c",
7030    "src/f16-gavgpool/gen/7x-minmax-f16c-c24.c",
7031    "src/f16-gavgpool/gen/7x-minmax-f16c-c32.c",
7032    "src/f16-maxpool/9p8x-minmax-f16c-c8.c",
7033    "src/f16-prelu/gen/f16c-2x8.c",
7034    "src/f16-prelu/gen/f16c-2x16.c",
7035    "src/f16-rmax/f16c.c",
7036    "src/f16-vbinary/gen/vadd-minmax-f16c-x8.c",
7037    "src/f16-vbinary/gen/vadd-minmax-f16c-x16.c",
7038    "src/f16-vbinary/gen/vaddc-minmax-f16c-x8.c",
7039    "src/f16-vbinary/gen/vaddc-minmax-f16c-x16.c",
7040    "src/f16-vbinary/gen/vdiv-minmax-f16c-x8.c",
7041    "src/f16-vbinary/gen/vdiv-minmax-f16c-x16.c",
7042    "src/f16-vbinary/gen/vdivc-minmax-f16c-x8.c",
7043    "src/f16-vbinary/gen/vdivc-minmax-f16c-x16.c",
7044    "src/f16-vbinary/gen/vmax-f16c-x8.c",
7045    "src/f16-vbinary/gen/vmax-f16c-x16.c",
7046    "src/f16-vbinary/gen/vmaxc-f16c-x8.c",
7047    "src/f16-vbinary/gen/vmaxc-f16c-x16.c",
7048    "src/f16-vbinary/gen/vmin-f16c-x8.c",
7049    "src/f16-vbinary/gen/vmin-f16c-x16.c",
7050    "src/f16-vbinary/gen/vminc-f16c-x8.c",
7051    "src/f16-vbinary/gen/vminc-f16c-x16.c",
7052    "src/f16-vbinary/gen/vmul-minmax-f16c-x8.c",
7053    "src/f16-vbinary/gen/vmul-minmax-f16c-x16.c",
7054    "src/f16-vbinary/gen/vmulc-minmax-f16c-x8.c",
7055    "src/f16-vbinary/gen/vmulc-minmax-f16c-x16.c",
7056    "src/f16-vbinary/gen/vrdivc-minmax-f16c-x8.c",
7057    "src/f16-vbinary/gen/vrdivc-minmax-f16c-x16.c",
7058    "src/f16-vbinary/gen/vrsubc-minmax-f16c-x8.c",
7059    "src/f16-vbinary/gen/vrsubc-minmax-f16c-x16.c",
7060    "src/f16-vbinary/gen/vsqrdiff-f16c-x8.c",
7061    "src/f16-vbinary/gen/vsqrdiff-f16c-x16.c",
7062    "src/f16-vbinary/gen/vsqrdiffc-f16c-x8.c",
7063    "src/f16-vbinary/gen/vsqrdiffc-f16c-x16.c",
7064    "src/f16-vbinary/gen/vsub-minmax-f16c-x8.c",
7065    "src/f16-vbinary/gen/vsub-minmax-f16c-x16.c",
7066    "src/f16-vbinary/gen/vsubc-minmax-f16c-x8.c",
7067    "src/f16-vbinary/gen/vsubc-minmax-f16c-x16.c",
7068    "src/f16-vclamp/gen/vclamp-f16c-x8.c",
7069    "src/f16-vclamp/gen/vclamp-f16c-x16.c",
7070    "src/f16-vhswish/gen/vhswish-f16c-x8.c",
7071    "src/f16-vhswish/gen/vhswish-f16c-x16.c",
7072    "src/f16-vlrelu/gen/vlrelu-f16c-x8.c",
7073    "src/f16-vlrelu/gen/vlrelu-f16c-x16.c",
7074    "src/f16-vrnd/gen/vrndd-f16c-x8.c",
7075    "src/f16-vrnd/gen/vrndd-f16c-x16.c",
7076    "src/f16-vrnd/gen/vrndne-f16c-x8.c",
7077    "src/f16-vrnd/gen/vrndne-f16c-x16.c",
7078    "src/f16-vrnd/gen/vrndu-f16c-x8.c",
7079    "src/f16-vrnd/gen/vrndu-f16c-x16.c",
7080    "src/f16-vrnd/gen/vrndz-f16c-x8.c",
7081    "src/f16-vrnd/gen/vrndz-f16c-x16.c",
7082    "src/f16-vsqrt/gen/f16c-sqrt-x8.c",
7083    "src/f16-vsqrt/gen/f16c-sqrt-x16.c",
7084    "src/f16-vunary/gen/vsqr-f16c-x8.c",
7085    "src/f16-vunary/gen/vsqr-f16c-x16.c",
7086    "src/f32-f16-vcvt/gen/vcvt-f16c-x8.c",
7087    "src/f32-f16-vcvt/gen/vcvt-f16c-x16.c",
7088    "src/math/cvt-f16-f32-f16c.c",
7089    "src/math/cvt-f32-f16-f16c.c",
7090]
7091
7092PROD_XOP_MICROKERNEL_SRCS = [
7093    "src/qc8-dwconv/gen/up16x3-minmax-fp32-xop-mul16-add16.c",
7094    "src/qc8-dwconv/gen/up16x9-minmax-fp32-xop-mul16-add16.c",
7095    "src/qc8-dwconv/gen/up16x25-minmax-fp32-xop-mul16-add16.c",
7096    "src/qc8-gemm/gen/1x4c8-minmax-fp32-xop-ld64.c",
7097    "src/qc8-gemm/gen/2x4c8-minmax-fp32-xop-ld64.c",
7098    "src/qc8-igemm/gen/1x4c8-minmax-fp32-xop-ld64.c",
7099    "src/qc8-igemm/gen/2x4c8-minmax-fp32-xop-ld64.c",
7100    "src/qs8-dwconv/gen/up16x9-minmax-fp32-xop-mul16-add16.c",
7101    "src/qs8-dwconv/gen/up16x25-minmax-fp32-xop-mul16-add16.c",
7102    "src/qs8-gemm/gen/1x4c8-minmax-fp32-xop-ld64.c",
7103    "src/qs8-gemm/gen/2x4c8-minmax-fp32-xop-ld64.c",
7104    "src/qs8-igemm/gen/1x4c8-minmax-fp32-xop-ld64.c",
7105    "src/qs8-igemm/gen/2x4c8-minmax-fp32-xop-ld64.c",
7106    "src/qs8-vadd/gen/minmax-xop-mul32-ld32-x8.c",
7107    "src/qs8-vaddc/gen/minmax-xop-mul32-ld32-x8.c",
7108    "src/qu8-dwconv/gen/up16x9-minmax-fp32-xop-mul32.c",
7109    "src/qu8-dwconv/gen/up16x25-minmax-fp32-xop-mul32.c",
7110    "src/qu8-gemm/gen/1x4c8-minmax-fp32-xop-ld64.c",
7111    "src/qu8-gemm/gen/2x4c8-minmax-fp32-xop-ld64.c",
7112    "src/qu8-igemm/gen/1x4c8-minmax-fp32-xop-ld64.c",
7113    "src/qu8-igemm/gen/2x4c8-minmax-fp32-xop-ld64.c",
7114    "src/qu8-vadd/gen/minmax-xop-mul32-ld32-x8.c",
7115    "src/qu8-vaddc/gen/minmax-xop-mul32-ld32-x8.c",
7116]
7117
7118ALL_XOP_MICROKERNEL_SRCS = [
7119    "src/qc8-dwconv/gen/up8x9-minmax-fp32-xop-mul16-add16.c",
7120    "src/qc8-dwconv/gen/up8x9-minmax-fp32-xop-mul32.c",
7121    "src/qc8-dwconv/gen/up8x25-minmax-fp32-xop-mul16-add16.c",
7122    "src/qc8-dwconv/gen/up8x25-minmax-fp32-xop-mul32.c",
7123    "src/qc8-dwconv/gen/up16x3-minmax-fp32-xop-mul16-add16.c",
7124    "src/qc8-dwconv/gen/up16x9-minmax-fp32-xop-mul16-add16.c",
7125    "src/qc8-dwconv/gen/up16x9-minmax-fp32-xop-mul32.c",
7126    "src/qc8-dwconv/gen/up16x25-minmax-fp32-xop-mul16-add16.c",
7127    "src/qc8-dwconv/gen/up16x25-minmax-fp32-xop-mul32.c",
7128    "src/qc8-dwconv/gen/up24x9-minmax-fp32-xop-mul32.c",
7129    "src/qc8-dwconv/gen/up24x25-minmax-fp32-xop-mul32.c",
7130    "src/qc8-gemm/gen/1x4c2-minmax-fp32-xop-ld64.c",
7131    "src/qc8-gemm/gen/1x4c2-minmax-fp32-xop-ld128.c",
7132    "src/qc8-gemm/gen/1x4c2s4-minmax-fp32-xop-ld64.c",
7133    "src/qc8-gemm/gen/1x4c2s4-minmax-fp32-xop-ld128.c",
7134    "src/qc8-gemm/gen/1x4c8-minmax-fp32-xop-ld64.c",
7135    "src/qc8-gemm/gen/1x4c8-minmax-fp32-xop-ld128.c",
7136    "src/qc8-gemm/gen/2x4c2-minmax-fp32-xop-ld64.c",
7137    "src/qc8-gemm/gen/2x4c2-minmax-fp32-xop-ld128.c",
7138    "src/qc8-gemm/gen/2x4c2s4-minmax-fp32-xop-ld64.c",
7139    "src/qc8-gemm/gen/2x4c2s4-minmax-fp32-xop-ld128.c",
7140    "src/qc8-gemm/gen/2x4c8-minmax-fp32-xop-ld64.c",
7141    "src/qc8-gemm/gen/2x4c8-minmax-fp32-xop-ld128.c",
7142    "src/qc8-gemm/gen/3x4c2-minmax-fp32-xop-ld64.c",
7143    "src/qc8-gemm/gen/3x4c2-minmax-fp32-xop-ld128.c",
7144    "src/qc8-gemm/gen/3x4c2s4-minmax-fp32-xop-ld64.c",
7145    "src/qc8-gemm/gen/3x4c2s4-minmax-fp32-xop-ld128.c",
7146    "src/qc8-gemm/gen/3x4c8-minmax-fp32-xop-ld64.c",
7147    "src/qc8-gemm/gen/3x4c8-minmax-fp32-xop-ld128.c",
7148    "src/qc8-gemm/gen/4x4c2-minmax-fp32-xop-ld64.c",
7149    "src/qc8-gemm/gen/4x4c2-minmax-fp32-xop-ld128.c",
7150    "src/qc8-gemm/gen/4x4c2s4-minmax-fp32-xop-ld64.c",
7151    "src/qc8-gemm/gen/4x4c2s4-minmax-fp32-xop-ld128.c",
7152    "src/qc8-igemm/gen/1x4c2-minmax-fp32-xop-ld64.c",
7153    "src/qc8-igemm/gen/1x4c2-minmax-fp32-xop-ld128.c",
7154    "src/qc8-igemm/gen/1x4c2s4-minmax-fp32-xop-ld64.c",
7155    "src/qc8-igemm/gen/1x4c2s4-minmax-fp32-xop-ld128.c",
7156    "src/qc8-igemm/gen/1x4c8-minmax-fp32-xop-ld64.c",
7157    "src/qc8-igemm/gen/1x4c8-minmax-fp32-xop-ld128.c",
7158    "src/qc8-igemm/gen/2x4c2-minmax-fp32-xop-ld64.c",
7159    "src/qc8-igemm/gen/2x4c2-minmax-fp32-xop-ld128.c",
7160    "src/qc8-igemm/gen/2x4c2s4-minmax-fp32-xop-ld64.c",
7161    "src/qc8-igemm/gen/2x4c2s4-minmax-fp32-xop-ld128.c",
7162    "src/qc8-igemm/gen/2x4c8-minmax-fp32-xop-ld64.c",
7163    "src/qc8-igemm/gen/2x4c8-minmax-fp32-xop-ld128.c",
7164    "src/qc8-igemm/gen/3x4c2-minmax-fp32-xop-ld64.c",
7165    "src/qc8-igemm/gen/3x4c2-minmax-fp32-xop-ld128.c",
7166    "src/qc8-igemm/gen/3x4c2s4-minmax-fp32-xop-ld64.c",
7167    "src/qc8-igemm/gen/3x4c2s4-minmax-fp32-xop-ld128.c",
7168    "src/qc8-igemm/gen/3x4c8-minmax-fp32-xop-ld64.c",
7169    "src/qc8-igemm/gen/3x4c8-minmax-fp32-xop-ld128.c",
7170    "src/qc8-igemm/gen/4x4c2-minmax-fp32-xop-ld64.c",
7171    "src/qc8-igemm/gen/4x4c2-minmax-fp32-xop-ld128.c",
7172    "src/qc8-igemm/gen/4x4c2s4-minmax-fp32-xop-ld64.c",
7173    "src/qc8-igemm/gen/4x4c2s4-minmax-fp32-xop-ld128.c",
7174    "src/qs8-dwconv/gen/up8x9-minmax-fp32-xop-mul16-add16.c",
7175    "src/qs8-dwconv/gen/up8x9-minmax-fp32-xop-mul32.c",
7176    "src/qs8-dwconv/gen/up8x25-minmax-fp32-xop-mul16-add16.c",
7177    "src/qs8-dwconv/gen/up8x25-minmax-fp32-xop-mul32.c",
7178    "src/qs8-dwconv/gen/up16x9-minmax-fp32-xop-mul16-add16.c",
7179    "src/qs8-dwconv/gen/up16x9-minmax-fp32-xop-mul32.c",
7180    "src/qs8-dwconv/gen/up16x25-minmax-fp32-xop-mul16-add16.c",
7181    "src/qs8-dwconv/gen/up16x25-minmax-fp32-xop-mul32.c",
7182    "src/qs8-dwconv/gen/up24x9-minmax-fp32-xop-mul32.c",
7183    "src/qs8-dwconv/gen/up24x25-minmax-fp32-xop-mul32.c",
7184    "src/qs8-gemm/gen/1x4c2-minmax-fp32-xop-ld64.c",
7185    "src/qs8-gemm/gen/1x4c2-minmax-fp32-xop-ld128.c",
7186    "src/qs8-gemm/gen/1x4c2-xw-minmax-fp32-xop.c",
7187    "src/qs8-gemm/gen/1x4c2s4-minmax-fp32-xop-ld64.c",
7188    "src/qs8-gemm/gen/1x4c2s4-minmax-fp32-xop-ld128.c",
7189    "src/qs8-gemm/gen/1x4c2s4-xw-minmax-fp32-xop.c",
7190    "src/qs8-gemm/gen/1x4c8-minmax-fp32-xop-ld64.c",
7191    "src/qs8-gemm/gen/1x4c8-minmax-fp32-xop-ld128.c",
7192    "src/qs8-gemm/gen/1x4c8-xw-minmax-fp32-xop.c",
7193    "src/qs8-gemm/gen/2x4c2-minmax-fp32-xop-ld64.c",
7194    "src/qs8-gemm/gen/2x4c2-minmax-fp32-xop-ld128.c",
7195    "src/qs8-gemm/gen/2x4c2-xw-minmax-fp32-xop.c",
7196    "src/qs8-gemm/gen/2x4c2s4-minmax-fp32-xop-ld64.c",
7197    "src/qs8-gemm/gen/2x4c2s4-minmax-fp32-xop-ld128.c",
7198    "src/qs8-gemm/gen/2x4c2s4-xw-minmax-fp32-xop.c",
7199    "src/qs8-gemm/gen/2x4c8-minmax-fp32-xop-ld64.c",
7200    "src/qs8-gemm/gen/2x4c8-minmax-fp32-xop-ld128.c",
7201    "src/qs8-gemm/gen/2x4c8-xw-minmax-fp32-xop.c",
7202    "src/qs8-gemm/gen/3x4c2-minmax-fp32-xop-ld64.c",
7203    "src/qs8-gemm/gen/3x4c2-minmax-fp32-xop-ld128.c",
7204    "src/qs8-gemm/gen/3x4c2-xw-minmax-fp32-xop.c",
7205    "src/qs8-gemm/gen/3x4c2s4-minmax-fp32-xop-ld64.c",
7206    "src/qs8-gemm/gen/3x4c2s4-minmax-fp32-xop-ld128.c",
7207    "src/qs8-gemm/gen/3x4c2s4-xw-minmax-fp32-xop.c",
7208    "src/qs8-gemm/gen/3x4c8-minmax-fp32-xop-ld64.c",
7209    "src/qs8-gemm/gen/3x4c8-minmax-fp32-xop-ld128.c",
7210    "src/qs8-gemm/gen/3x4c8-xw-minmax-fp32-xop.c",
7211    "src/qs8-gemm/gen/4x4c2-minmax-fp32-xop-ld64.c",
7212    "src/qs8-gemm/gen/4x4c2-minmax-fp32-xop-ld128.c",
7213    "src/qs8-gemm/gen/4x4c2-xw-minmax-fp32-xop.c",
7214    "src/qs8-gemm/gen/4x4c2s4-minmax-fp32-xop-ld64.c",
7215    "src/qs8-gemm/gen/4x4c2s4-minmax-fp32-xop-ld128.c",
7216    "src/qs8-gemm/gen/4x4c2s4-xw-minmax-fp32-xop.c",
7217    "src/qs8-igemm/gen/1x4c2-minmax-fp32-xop-ld64.c",
7218    "src/qs8-igemm/gen/1x4c2-minmax-fp32-xop-ld128.c",
7219    "src/qs8-igemm/gen/1x4c2s4-minmax-fp32-xop-ld64.c",
7220    "src/qs8-igemm/gen/1x4c2s4-minmax-fp32-xop-ld128.c",
7221    "src/qs8-igemm/gen/1x4c8-minmax-fp32-xop-ld64.c",
7222    "src/qs8-igemm/gen/1x4c8-minmax-fp32-xop-ld128.c",
7223    "src/qs8-igemm/gen/2x4c2-minmax-fp32-xop-ld64.c",
7224    "src/qs8-igemm/gen/2x4c2-minmax-fp32-xop-ld128.c",
7225    "src/qs8-igemm/gen/2x4c2s4-minmax-fp32-xop-ld64.c",
7226    "src/qs8-igemm/gen/2x4c2s4-minmax-fp32-xop-ld128.c",
7227    "src/qs8-igemm/gen/2x4c8-minmax-fp32-xop-ld64.c",
7228    "src/qs8-igemm/gen/2x4c8-minmax-fp32-xop-ld128.c",
7229    "src/qs8-igemm/gen/3x4c2-minmax-fp32-xop-ld64.c",
7230    "src/qs8-igemm/gen/3x4c2-minmax-fp32-xop-ld128.c",
7231    "src/qs8-igemm/gen/3x4c2s4-minmax-fp32-xop-ld64.c",
7232    "src/qs8-igemm/gen/3x4c2s4-minmax-fp32-xop-ld128.c",
7233    "src/qs8-igemm/gen/3x4c8-minmax-fp32-xop-ld64.c",
7234    "src/qs8-igemm/gen/3x4c8-minmax-fp32-xop-ld128.c",
7235    "src/qs8-igemm/gen/4x4c2-minmax-fp32-xop-ld64.c",
7236    "src/qs8-igemm/gen/4x4c2-minmax-fp32-xop-ld128.c",
7237    "src/qs8-igemm/gen/4x4c2s4-minmax-fp32-xop-ld64.c",
7238    "src/qs8-igemm/gen/4x4c2s4-minmax-fp32-xop-ld128.c",
7239    "src/qs8-vadd/gen/minmax-xop-mul32-ld32-x8.c",
7240    "src/qs8-vadd/gen/minmax-xop-mul32-ld32-x16.c",
7241    "src/qs8-vadd/gen/minmax-xop-mul32-ld32-x24.c",
7242    "src/qs8-vadd/gen/minmax-xop-mul32-ld32-x32.c",
7243    "src/qs8-vaddc/gen/minmax-xop-mul32-ld32-x8.c",
7244    "src/qs8-vaddc/gen/minmax-xop-mul32-ld32-x16.c",
7245    "src/qs8-vaddc/gen/minmax-xop-mul32-ld32-x24.c",
7246    "src/qs8-vaddc/gen/minmax-xop-mul32-ld32-x32.c",
7247    "src/qu8-dwconv/gen/up8x9-minmax-fp32-xop-mul32.c",
7248    "src/qu8-dwconv/gen/up8x25-minmax-fp32-xop-mul32.c",
7249    "src/qu8-dwconv/gen/up16x9-minmax-fp32-xop-mul32.c",
7250    "src/qu8-dwconv/gen/up16x25-minmax-fp32-xop-mul32.c",
7251    "src/qu8-gemm/gen/1x4c2-minmax-fp32-xop-ld64.c",
7252    "src/qu8-gemm/gen/1x4c2-minmax-fp32-xop-ld128.c",
7253    "src/qu8-gemm/gen/1x4c2s4-minmax-fp32-xop-ld64.c",
7254    "src/qu8-gemm/gen/1x4c2s4-minmax-fp32-xop-ld128.c",
7255    "src/qu8-gemm/gen/1x4c8-minmax-fp32-xop-ld64.c",
7256    "src/qu8-gemm/gen/1x4c8-minmax-fp32-xop-ld128.c",
7257    "src/qu8-gemm/gen/2x4c2-minmax-fp32-xop-ld64.c",
7258    "src/qu8-gemm/gen/2x4c2-minmax-fp32-xop-ld128.c",
7259    "src/qu8-gemm/gen/2x4c2s4-minmax-fp32-xop-ld64.c",
7260    "src/qu8-gemm/gen/2x4c2s4-minmax-fp32-xop-ld128.c",
7261    "src/qu8-gemm/gen/2x4c8-minmax-fp32-xop-ld64.c",
7262    "src/qu8-gemm/gen/2x4c8-minmax-fp32-xop-ld128.c",
7263    "src/qu8-gemm/gen/3x4c2-minmax-fp32-xop-ld64.c",
7264    "src/qu8-gemm/gen/3x4c2-minmax-fp32-xop-ld128.c",
7265    "src/qu8-gemm/gen/3x4c2s4-minmax-fp32-xop-ld64.c",
7266    "src/qu8-gemm/gen/3x4c2s4-minmax-fp32-xop-ld128.c",
7267    "src/qu8-gemm/gen/3x4c8-minmax-fp32-xop-ld64.c",
7268    "src/qu8-gemm/gen/3x4c8-minmax-fp32-xop-ld128.c",
7269    "src/qu8-gemm/gen/4x4c2-minmax-fp32-xop-ld64.c",
7270    "src/qu8-gemm/gen/4x4c2-minmax-fp32-xop-ld128.c",
7271    "src/qu8-gemm/gen/4x4c2s4-minmax-fp32-xop-ld64.c",
7272    "src/qu8-gemm/gen/4x4c2s4-minmax-fp32-xop-ld128.c",
7273    "src/qu8-igemm/gen/1x4c2-minmax-fp32-xop-ld64.c",
7274    "src/qu8-igemm/gen/1x4c2-minmax-fp32-xop-ld128.c",
7275    "src/qu8-igemm/gen/1x4c2s4-minmax-fp32-xop-ld64.c",
7276    "src/qu8-igemm/gen/1x4c2s4-minmax-fp32-xop-ld128.c",
7277    "src/qu8-igemm/gen/1x4c8-minmax-fp32-xop-ld64.c",
7278    "src/qu8-igemm/gen/1x4c8-minmax-fp32-xop-ld128.c",
7279    "src/qu8-igemm/gen/2x4c2-minmax-fp32-xop-ld64.c",
7280    "src/qu8-igemm/gen/2x4c2-minmax-fp32-xop-ld128.c",
7281    "src/qu8-igemm/gen/2x4c2s4-minmax-fp32-xop-ld64.c",
7282    "src/qu8-igemm/gen/2x4c2s4-minmax-fp32-xop-ld128.c",
7283    "src/qu8-igemm/gen/2x4c8-minmax-fp32-xop-ld64.c",
7284    "src/qu8-igemm/gen/2x4c8-minmax-fp32-xop-ld128.c",
7285    "src/qu8-igemm/gen/3x4c2-minmax-fp32-xop-ld64.c",
7286    "src/qu8-igemm/gen/3x4c2-minmax-fp32-xop-ld128.c",
7287    "src/qu8-igemm/gen/3x4c2s4-minmax-fp32-xop-ld64.c",
7288    "src/qu8-igemm/gen/3x4c2s4-minmax-fp32-xop-ld128.c",
7289    "src/qu8-igemm/gen/3x4c8-minmax-fp32-xop-ld64.c",
7290    "src/qu8-igemm/gen/3x4c8-minmax-fp32-xop-ld128.c",
7291    "src/qu8-igemm/gen/4x4c2-minmax-fp32-xop-ld64.c",
7292    "src/qu8-igemm/gen/4x4c2-minmax-fp32-xop-ld128.c",
7293    "src/qu8-igemm/gen/4x4c2s4-minmax-fp32-xop-ld64.c",
7294    "src/qu8-igemm/gen/4x4c2s4-minmax-fp32-xop-ld128.c",
7295    "src/qu8-vadd/gen/minmax-xop-mul32-ld32-x8.c",
7296    "src/qu8-vadd/gen/minmax-xop-mul32-ld32-x16.c",
7297    "src/qu8-vaddc/gen/minmax-xop-mul32-ld32-x8.c",
7298    "src/qu8-vaddc/gen/minmax-xop-mul32-ld32-x16.c",
7299]
7300
7301PROD_FMA3_MICROKERNEL_SRCS = [
7302    "src/f16-dwconv/gen/up8x25-minmax-fma3-acc2.c",
7303    "src/f16-dwconv/gen/up16x3-minmax-fma3.c",
7304    "src/f16-dwconv/gen/up16x4-minmax-fma3.c",
7305    "src/f16-dwconv/gen/up16x9-minmax-fma3.c",
7306    "src/f16-ibilinear/gen/fma3-c8.c",
7307    "src/f16-vmulcaddc/gen/c8-minmax-fma3-2x.c",
7308    "src/f32-dwconv/gen/up8x25-minmax-fma3.c",
7309    "src/f32-dwconv/gen/up16x3-minmax-fma3.c",
7310    "src/f32-dwconv/gen/up16x4-minmax-fma3.c",
7311    "src/f32-dwconv/gen/up16x9-minmax-fma3.c",
7312    "src/f32-gemm/gen/1x16-minmax-fma3-broadcast.c",
7313    "src/f32-gemm/gen/1x16s4-minmax-fma3-broadcast.c",
7314    "src/f32-gemm/gen/4x16s4-minmax-fma3-broadcast.c",
7315    "src/f32-gemm/gen/5x16-minmax-fma3-broadcast.c",
7316    "src/f32-igemm/gen/1x16-minmax-fma3-broadcast.c",
7317    "src/f32-igemm/gen/1x16s4-minmax-fma3-broadcast.c",
7318    "src/f32-igemm/gen/4x16s4-minmax-fma3-broadcast.c",
7319    "src/f32-igemm/gen/5x16-minmax-fma3-broadcast.c",
7320    "src/f32-vhswish/gen/vhswish-fma3-x16.c",
7321]
7322
7323ALL_FMA3_MICROKERNEL_SRCS = [
7324    "src/f16-dwconv/gen/up8x3-minmax-fma3-acc2.c",
7325    "src/f16-dwconv/gen/up8x3-minmax-fma3.c",
7326    "src/f16-dwconv/gen/up8x4-minmax-fma3-acc2.c",
7327    "src/f16-dwconv/gen/up8x4-minmax-fma3.c",
7328    "src/f16-dwconv/gen/up8x9-minmax-fma3-acc2.c",
7329    "src/f16-dwconv/gen/up8x9-minmax-fma3.c",
7330    "src/f16-dwconv/gen/up8x25-minmax-fma3-acc2.c",
7331    "src/f16-dwconv/gen/up8x25-minmax-fma3.c",
7332    "src/f16-dwconv/gen/up16x3-minmax-fma3-acc2.c",
7333    "src/f16-dwconv/gen/up16x3-minmax-fma3.c",
7334    "src/f16-dwconv/gen/up16x4-minmax-fma3-acc2.c",
7335    "src/f16-dwconv/gen/up16x4-minmax-fma3.c",
7336    "src/f16-dwconv/gen/up16x9-minmax-fma3-acc2.c",
7337    "src/f16-dwconv/gen/up16x9-minmax-fma3.c",
7338    "src/f16-dwconv/gen/up16x25-minmax-fma3-acc2.c",
7339    "src/f16-dwconv/gen/up16x25-minmax-fma3.c",
7340    "src/f16-dwconv/gen/up32x3-minmax-fma3-acc2.c",
7341    "src/f16-dwconv/gen/up32x3-minmax-fma3.c",
7342    "src/f16-dwconv/gen/up32x4-minmax-fma3-acc2.c",
7343    "src/f16-dwconv/gen/up32x4-minmax-fma3.c",
7344    "src/f16-dwconv/gen/up32x9-minmax-fma3-acc2.c",
7345    "src/f16-dwconv/gen/up32x9-minmax-fma3.c",
7346    "src/f16-dwconv/gen/up32x25-minmax-fma3-acc2.c",
7347    "src/f16-dwconv/gen/up32x25-minmax-fma3.c",
7348    "src/f16-ibilinear/gen/fma3-c8.c",
7349    "src/f16-ibilinear/gen/fma3-c16.c",
7350    "src/f16-vmulcaddc/gen/c8-minmax-fma3-2x.c",
7351    "src/f16-vmulcaddc/gen/c16-minmax-fma3-2x.c",
7352    "src/f32-dwconv/gen/up8x3-minmax-fma3-acc2.c",
7353    "src/f32-dwconv/gen/up8x3-minmax-fma3.c",
7354    "src/f32-dwconv/gen/up8x4-minmax-fma3-acc2.c",
7355    "src/f32-dwconv/gen/up8x4-minmax-fma3.c",
7356    "src/f32-dwconv/gen/up8x9-minmax-fma3-acc2.c",
7357    "src/f32-dwconv/gen/up8x9-minmax-fma3.c",
7358    "src/f32-dwconv/gen/up8x25-minmax-fma3-acc2.c",
7359    "src/f32-dwconv/gen/up8x25-minmax-fma3.c",
7360    "src/f32-dwconv/gen/up16x3-minmax-fma3-acc2.c",
7361    "src/f32-dwconv/gen/up16x3-minmax-fma3.c",
7362    "src/f32-dwconv/gen/up16x4-minmax-fma3-acc2.c",
7363    "src/f32-dwconv/gen/up16x4-minmax-fma3.c",
7364    "src/f32-dwconv/gen/up16x9-minmax-fma3-acc2.c",
7365    "src/f32-dwconv/gen/up16x9-minmax-fma3.c",
7366    "src/f32-dwconv/gen/up16x25-minmax-fma3-acc2.c",
7367    "src/f32-dwconv/gen/up16x25-minmax-fma3.c",
7368    "src/f32-gemm/gen-inc/1x8inc-minmax-fma3-broadcast.c",
7369    "src/f32-gemm/gen-inc/1x16inc-minmax-fma3-broadcast.c",
7370    "src/f32-gemm/gen-inc/1x16s4inc-minmax-fma3-broadcast.c",
7371    "src/f32-gemm/gen-inc/3x16inc-minmax-fma3-broadcast.c",
7372    "src/f32-gemm/gen-inc/3x16s4inc-minmax-fma3-broadcast.c",
7373    "src/f32-gemm/gen-inc/4x8inc-minmax-fma3-broadcast.c",
7374    "src/f32-gemm/gen-inc/4x16inc-minmax-fma3-broadcast.c",
7375    "src/f32-gemm/gen-inc/4x16s4inc-minmax-fma3-broadcast.c",
7376    "src/f32-gemm/gen-inc/5x8inc-minmax-fma3-broadcast.c",
7377    "src/f32-gemm/gen-inc/5x16inc-minmax-fma3-broadcast.c",
7378    "src/f32-gemm/gen-inc/5x16s4inc-minmax-fma3-broadcast.c",
7379    "src/f32-gemm/gen-inc/6x8inc-minmax-fma3-broadcast.c",
7380    "src/f32-gemm/gen-inc/7x8inc-minmax-fma3-broadcast.c",
7381    "src/f32-gemm/gen-inc/8x8inc-minmax-fma3-broadcast.c",
7382    "src/f32-gemm/gen/1x8-minmax-fma3-broadcast.c",
7383    "src/f32-gemm/gen/1x16-minmax-fma3-broadcast.c",
7384    "src/f32-gemm/gen/1x16s4-minmax-fma3-broadcast.c",
7385    "src/f32-gemm/gen/3x16-minmax-fma3-broadcast.c",
7386    "src/f32-gemm/gen/3x16s4-minmax-fma3-broadcast.c",
7387    "src/f32-gemm/gen/4x8-minmax-fma3-broadcast.c",
7388    "src/f32-gemm/gen/4x16-minmax-fma3-broadcast.c",
7389    "src/f32-gemm/gen/4x16s4-minmax-fma3-broadcast.c",
7390    "src/f32-gemm/gen/5x8-minmax-fma3-broadcast.c",
7391    "src/f32-gemm/gen/5x16-minmax-fma3-broadcast.c",
7392    "src/f32-gemm/gen/5x16s4-minmax-fma3-broadcast.c",
7393    "src/f32-gemm/gen/6x8-minmax-fma3-broadcast.c",
7394    "src/f32-gemm/gen/7x8-minmax-fma3-broadcast.c",
7395    "src/f32-gemm/gen/8x8-minmax-fma3-broadcast.c",
7396    "src/f32-igemm/gen/1x8-minmax-fma3-broadcast.c",
7397    "src/f32-igemm/gen/1x16-minmax-fma3-broadcast.c",
7398    "src/f32-igemm/gen/1x16s4-minmax-fma3-broadcast.c",
7399    "src/f32-igemm/gen/3x16-minmax-fma3-broadcast.c",
7400    "src/f32-igemm/gen/3x16s4-minmax-fma3-broadcast.c",
7401    "src/f32-igemm/gen/4x8-minmax-fma3-broadcast.c",
7402    "src/f32-igemm/gen/4x16-minmax-fma3-broadcast.c",
7403    "src/f32-igemm/gen/4x16s4-minmax-fma3-broadcast.c",
7404    "src/f32-igemm/gen/5x8-minmax-fma3-broadcast.c",
7405    "src/f32-igemm/gen/5x16-minmax-fma3-broadcast.c",
7406    "src/f32-igemm/gen/5x16s4-minmax-fma3-broadcast.c",
7407    "src/f32-igemm/gen/6x8-minmax-fma3-broadcast.c",
7408    "src/f32-igemm/gen/7x8-minmax-fma3-broadcast.c",
7409    "src/f32-igemm/gen/8x8-minmax-fma3-broadcast.c",
7410    "src/f32-vhswish/gen/vhswish-fma3-x8.c",
7411    "src/f32-vhswish/gen/vhswish-fma3-x16.c",
7412    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x8.c",
7413    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x16.c",
7414    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x24.c",
7415    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x32.c",
7416    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x40.c",
7417    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x48.c",
7418    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x56.c",
7419    "src/f32-vsqrt/gen/fma3-nr1fma1adj-x64.c",
7420    "src/math/sqrt-fma3-nr1fma.c",
7421    "src/math/sqrt-fma3-nr1fma1adj.c",
7422    "src/math/sqrt-fma3-nr2fma.c",
7423]
7424
7425PROD_AVX2_MICROKERNEL_SRCS = [
7426    "src/f16-gemm/gen/1x16-minmax-avx2-broadcast.c",
7427    "src/f16-gemm/gen/4x16-minmax-avx2-broadcast.c",
7428    "src/f16-igemm/gen/1x16-minmax-avx2-broadcast.c",
7429    "src/f16-igemm/gen/4x16-minmax-avx2-broadcast.c",
7430    "src/f16-pavgpool/9p8x-minmax-avx2-c8.c",
7431    "src/f16-pavgpool/9x-minmax-avx2-c8.c",
7432    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x40.c",
7433    "src/f16-velu/gen/velu-avx2-rr1-p3-x16.c",
7434    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-rcp-x32.c",
7435    "src/f32-qs8-vcvt/gen/vcvt-avx2-x64.c",
7436    "src/f32-qu8-vcvt/gen/vcvt-avx2-x64.c",
7437    "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x56.c",
7438    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x40.c",
7439    "src/qc8-dwconv/gen/up16x3-minmax-fp32-avx2-mul32.c",
7440    "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx2-mul32.c",
7441    "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx2-mul32.c",
7442    "src/qc8-gemm/gen/1x8c8-minmax-fp32-avx2.c",
7443    "src/qc8-gemm/gen/3x8c8-minmax-fp32-avx2.c",
7444    "src/qc8-igemm/gen/1x8c8-minmax-fp32-avx2.c",
7445    "src/qc8-igemm/gen/3x8c8-minmax-fp32-avx2.c",
7446    "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx2-mul32.c",
7447    "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx2-mul32.c",
7448    "src/qs8-f32-vcvt/gen/vcvt-avx2-x16.c",
7449    "src/qs8-gemm/gen/1x8c8-minmax-fp32-avx2.c",
7450    "src/qs8-gemm/gen/3x8c8-minmax-fp32-avx2.c",
7451    "src/qs8-igemm/gen/1x8c8-minmax-fp32-avx2.c",
7452    "src/qs8-igemm/gen/3x8c8-minmax-fp32-avx2.c",
7453    "src/qs8-vadd/gen/minmax-avx2-mul32-ld64-x16.c",
7454    "src/qs8-vaddc/gen/minmax-avx2-mul32-ld64-x16.c",
7455    "src/qs8-vcvt/gen/vcvt-avx2-x32.c",
7456    "src/qs8-vlrelu/gen/vlrelu-avx2-x32.c",
7457    "src/qu8-dwconv/gen/up16x9-minmax-fp32-avx2-mul32.c",
7458    "src/qu8-dwconv/gen/up16x25-minmax-fp32-avx2-mul32.c",
7459    "src/qu8-f32-vcvt/gen/vcvt-avx2-x16.c",
7460    "src/qu8-gemm/gen/1x8c8-minmax-fp32-avx2.c",
7461    "src/qu8-gemm/gen/3x8c8-minmax-fp32-avx2.c",
7462    "src/qu8-igemm/gen/1x8c8-minmax-fp32-avx2.c",
7463    "src/qu8-igemm/gen/3x8c8-minmax-fp32-avx2.c",
7464    "src/qu8-vadd/gen/minmax-avx2-mul32-ld64-x16.c",
7465    "src/qu8-vaddc/gen/minmax-avx2-mul32-ld64-x16.c",
7466    "src/qu8-vcvt/gen/vcvt-avx2-x32.c",
7467    "src/qu8-vlrelu/gen/vlrelu-avx2-x32.c",
7468    "src/x8-lut/gen/lut-avx2-x128.c",
7469]
7470
7471ALL_AVX2_MICROKERNEL_SRCS = [
7472    "src/f16-gemm/gen/1x8-minmax-avx2-broadcast.c",
7473    "src/f16-gemm/gen/1x16-minmax-avx2-broadcast.c",
7474    "src/f16-gemm/gen/3x16-minmax-avx2-broadcast.c",
7475    "src/f16-gemm/gen/4x8-minmax-avx2-broadcast.c",
7476    "src/f16-gemm/gen/4x16-minmax-avx2-broadcast.c",
7477    "src/f16-gemm/gen/5x8-minmax-avx2-broadcast.c",
7478    "src/f16-gemm/gen/5x16-minmax-avx2-broadcast.c",
7479    "src/f16-gemm/gen/6x8-minmax-avx2-broadcast.c",
7480    "src/f16-gemm/gen/7x8-minmax-avx2-broadcast.c",
7481    "src/f16-igemm/gen/1x8-minmax-avx2-broadcast.c",
7482    "src/f16-igemm/gen/1x16-minmax-avx2-broadcast.c",
7483    "src/f16-igemm/gen/3x16-minmax-avx2-broadcast.c",
7484    "src/f16-igemm/gen/4x8-minmax-avx2-broadcast.c",
7485    "src/f16-igemm/gen/4x16-minmax-avx2-broadcast.c",
7486    "src/f16-igemm/gen/5x8-minmax-avx2-broadcast.c",
7487    "src/f16-igemm/gen/5x16-minmax-avx2-broadcast.c",
7488    "src/f16-igemm/gen/6x8-minmax-avx2-broadcast.c",
7489    "src/f16-igemm/gen/7x8-minmax-avx2-broadcast.c",
7490    "src/f16-pavgpool/9p8x-minmax-avx2-c8.c",
7491    "src/f16-pavgpool/9x-minmax-avx2-c8.c",
7492    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x32-acc2.c",
7493    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x32-acc4.c",
7494    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x32.c",
7495    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x40-acc2.c",
7496    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x40-acc5.c",
7497    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x40.c",
7498    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x48-acc2.c",
7499    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x48-acc3.c",
7500    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x48.c",
7501    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x64-acc2.c",
7502    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x64-acc4.c",
7503    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x64.c",
7504    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x72-acc3.c",
7505    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x72.c",
7506    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x80-acc2.c",
7507    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x80-acc5.c",
7508    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x80.c",
7509    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x96-acc2.c",
7510    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x96-acc3.c",
7511    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x96-acc6.c",
7512    "src/f16-raddstoreexpminusmax/gen/avx2-rr1-p2-x96.c",
7513    "src/f16-velu/gen/velu-avx2-rr1-p3-x8.c",
7514    "src/f16-velu/gen/velu-avx2-rr1-p3-x16.c",
7515    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-div-x8.c",
7516    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-div-x16.c",
7517    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-div-x24.c",
7518    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-div-x32.c",
7519    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-div-x40.c",
7520    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-div-x48.c",
7521    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-div-x56.c",
7522    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-div-x64.c",
7523    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-rcp-x8.c",
7524    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-rcp-x16.c",
7525    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-rcp-x24.c",
7526    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-rcp-x32.c",
7527    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-rcp-x40.c",
7528    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-rcp-x48.c",
7529    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-rcp-x56.c",
7530    "src/f16-vsigmoid/gen/vsigmoid-avx2-rr1-p2-rcp-x64.c",
7531    "src/f32-qs8-vcvt/gen/vcvt-avx2-x16.c",
7532    "src/f32-qs8-vcvt/gen/vcvt-avx2-x32.c",
7533    "src/f32-qs8-vcvt/gen/vcvt-avx2-x48.c",
7534    "src/f32-qs8-vcvt/gen/vcvt-avx2-x64.c",
7535    "src/f32-qu8-vcvt/gen/vcvt-avx2-x16.c",
7536    "src/f32-qu8-vcvt/gen/vcvt-avx2-x32.c",
7537    "src/f32-qu8-vcvt/gen/vcvt-avx2-x48.c",
7538    "src/f32-qu8-vcvt/gen/vcvt-avx2-x64.c",
7539    "src/f32-raddexpminusmax/gen/avx2-p5-x64-acc2.c",
7540    "src/f32-raddexpminusmax/gen/avx2-p5-x64-acc4.c",
7541    "src/f32-raddexpminusmax/gen/avx2-p5-x64.c",
7542    "src/f32-raddexpminusmax/gen/avx2-p5-x72-acc3.c",
7543    "src/f32-raddexpminusmax/gen/avx2-p5-x72.c",
7544    "src/f32-raddexpminusmax/gen/avx2-p5-x80-acc2.c",
7545    "src/f32-raddexpminusmax/gen/avx2-p5-x80-acc5.c",
7546    "src/f32-raddexpminusmax/gen/avx2-p5-x80.c",
7547    "src/f32-raddexpminusmax/gen/avx2-p5-x96-acc2.c",
7548    "src/f32-raddexpminusmax/gen/avx2-p5-x96-acc3.c",
7549    "src/f32-raddexpminusmax/gen/avx2-p5-x96-acc6.c",
7550    "src/f32-raddexpminusmax/gen/avx2-p5-x96.c",
7551    "src/f32-raddextexp/gen/avx2-p5-x64-acc2.c",
7552    "src/f32-raddextexp/gen/avx2-p5-x64-acc4.c",
7553    "src/f32-raddextexp/gen/avx2-p5-x64.c",
7554    "src/f32-raddextexp/gen/avx2-p5-x72-acc3.c",
7555    "src/f32-raddextexp/gen/avx2-p5-x72.c",
7556    "src/f32-raddextexp/gen/avx2-p5-x80-acc2.c",
7557    "src/f32-raddextexp/gen/avx2-p5-x80-acc5.c",
7558    "src/f32-raddextexp/gen/avx2-p5-x80.c",
7559    "src/f32-raddextexp/gen/avx2-p5-x96-acc2.c",
7560    "src/f32-raddextexp/gen/avx2-p5-x96-acc3.c",
7561    "src/f32-raddextexp/gen/avx2-p5-x96-acc6.c",
7562    "src/f32-raddextexp/gen/avx2-p5-x96.c",
7563    "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x64-acc2.c",
7564    "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x64-acc4.c",
7565    "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x64.c",
7566    "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x72-acc3.c",
7567    "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x72.c",
7568    "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x80-acc2.c",
7569    "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x80-acc5.c",
7570    "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x80.c",
7571    "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x96-acc2.c",
7572    "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x96-acc3.c",
7573    "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x96-acc6.c",
7574    "src/f32-raddstoreexpminusmax/gen/avx2-rr1-p5-x96.c",
7575    "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x8.c",
7576    "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x16.c",
7577    "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x24.c",
7578    "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x32.c",
7579    "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x40.c",
7580    "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x48.c",
7581    "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x56.c",
7582    "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x64.c",
7583    "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x72.c",
7584    "src/f32-velu/gen/velu-avx2-rr1-lut4-p4-perm-x80.c",
7585    "src/f32-velu/gen/velu-avx2-rr1-lut8-p4-perm-x8.c",
7586    "src/f32-velu/gen/velu-avx2-rr1-lut8-p4-perm-x16.c",
7587    "src/f32-velu/gen/velu-avx2-rr1-lut8-p4-perm-x24.c",
7588    "src/f32-velu/gen/velu-avx2-rr1-lut8-p4-perm-x32.c",
7589    "src/f32-velu/gen/velu-avx2-rr1-lut8-p4-perm-x40.c",
7590    "src/f32-velu/gen/velu-avx2-rr1-lut8-p4-perm-x48.c",
7591    "src/f32-velu/gen/velu-avx2-rr1-lut8-p4-perm-x56.c",
7592    "src/f32-velu/gen/velu-avx2-rr1-lut8-p4-perm-x64.c",
7593    "src/f32-velu/gen/velu-avx2-rr1-lut8-p4-perm-x72.c",
7594    "src/f32-velu/gen/velu-avx2-rr1-lut8-p4-perm-x80.c",
7595    "src/f32-velu/gen/velu-avx2-rr1-lut16-p3-gather-x8.c",
7596    "src/f32-velu/gen/velu-avx2-rr1-lut16-p3-gather-x16.c",
7597    "src/f32-velu/gen/velu-avx2-rr1-lut16-p3-gather-x24.c",
7598    "src/f32-velu/gen/velu-avx2-rr1-lut16-p3-gather-x32.c",
7599    "src/f32-velu/gen/velu-avx2-rr1-lut16-p3-gather-x40.c",
7600    "src/f32-velu/gen/velu-avx2-rr1-lut16-p3-gather-x48.c",
7601    "src/f32-velu/gen/velu-avx2-rr1-lut16-p3-gather-x56.c",
7602    "src/f32-velu/gen/velu-avx2-rr1-lut16-p3-gather-x64.c",
7603    "src/f32-velu/gen/velu-avx2-rr1-lut16-p3-gather-x72.c",
7604    "src/f32-velu/gen/velu-avx2-rr1-lut16-p3-gather-x80.c",
7605    "src/f32-velu/gen/velu-avx2-rr1-p6-x8.c",
7606    "src/f32-velu/gen/velu-avx2-rr1-p6-x16.c",
7607    "src/f32-velu/gen/velu-avx2-rr1-p6-x24.c",
7608    "src/f32-velu/gen/velu-avx2-rr1-p6-x32.c",
7609    "src/f32-velu/gen/velu-avx2-rr1-p6-x40.c",
7610    "src/f32-velu/gen/velu-avx2-rr1-p6-x48.c",
7611    "src/f32-velu/gen/velu-avx2-rr1-p6-x56.c",
7612    "src/f32-velu/gen/velu-avx2-rr1-p6-x64.c",
7613    "src/f32-velu/gen/velu-avx2-rr1-p6-x72.c",
7614    "src/f32-velu/gen/velu-avx2-rr1-p6-x80.c",
7615    "src/f32-vscaleexpminusmax/gen/avx2-p5-x8.c",
7616    "src/f32-vscaleexpminusmax/gen/avx2-p5-x16.c",
7617    "src/f32-vscaleexpminusmax/gen/avx2-p5-x24.c",
7618    "src/f32-vscaleexpminusmax/gen/avx2-p5-x32.c",
7619    "src/f32-vscaleexpminusmax/gen/avx2-p5-x40.c",
7620    "src/f32-vscaleexpminusmax/gen/avx2-p5-x48.c",
7621    "src/f32-vscaleexpminusmax/gen/avx2-p5-x56.c",
7622    "src/f32-vscaleexpminusmax/gen/avx2-p5-x64.c",
7623    "src/f32-vscaleexpminusmax/gen/avx2-p5-x72.c",
7624    "src/f32-vscaleexpminusmax/gen/avx2-p5-x80.c",
7625    "src/f32-vscaleexpminusmax/gen/avx2-p5-x88.c",
7626    "src/f32-vscaleexpminusmax/gen/avx2-p5-x96.c",
7627    "src/f32-vscaleextexp/gen/avx2-p5-x8.c",
7628    "src/f32-vscaleextexp/gen/avx2-p5-x16.c",
7629    "src/f32-vscaleextexp/gen/avx2-p5-x24.c",
7630    "src/f32-vscaleextexp/gen/avx2-p5-x32.c",
7631    "src/f32-vscaleextexp/gen/avx2-p5-x40.c",
7632    "src/f32-vscaleextexp/gen/avx2-p5-x48.c",
7633    "src/f32-vscaleextexp/gen/avx2-p5-x56.c",
7634    "src/f32-vscaleextexp/gen/avx2-p5-x64.c",
7635    "src/f32-vscaleextexp/gen/avx2-p5-x72.c",
7636    "src/f32-vscaleextexp/gen/avx2-p5-x80.c",
7637    "src/f32-vscaleextexp/gen/avx2-p5-x88.c",
7638    "src/f32-vscaleextexp/gen/avx2-p5-x96.c",
7639    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x8.c",
7640    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x16.c",
7641    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x24.c",
7642    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x32.c",
7643    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x40.c",
7644    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x48.c",
7645    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x56.c",
7646    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x64.c",
7647    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x72.c",
7648    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-div-x80.c",
7649    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x8.c",
7650    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x16.c",
7651    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x24.c",
7652    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x32.c",
7653    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x40.c",
7654    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x48.c",
7655    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x56.c",
7656    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x64.c",
7657    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x72.c",
7658    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr1fma-x80.c",
7659    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x8.c",
7660    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x16.c",
7661    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x24.c",
7662    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x32.c",
7663    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x40.c",
7664    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x48.c",
7665    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x56.c",
7666    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x64.c",
7667    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x72.c",
7668    "src/f32-vsigmoid/gen/vsigmoid-avx2-rr1-p5-nr2fma-x80.c",
7669    "src/math/exp-f32-avx2-rr2-lut8-p3-perm.c",
7670    "src/math/exp-f32-avx2-rr2-lut8-p4-perm.c",
7671    "src/math/exp-f32-avx2-rr2-p5.c",
7672    "src/math/expminus-f16-avx2-rr1-p2.c",
7673    "src/math/expminus-f16-avx2-rr1-p3.c",
7674    "src/math/expminus-f32-avx2-rr1-p5.c",
7675    "src/math/expminus-f32-avx2-rr2-p5.c",
7676    "src/math/expm1minus-f16-avx2-rr1-p3.c",
7677    "src/math/expm1minus-f32-avx2-rr1-lut4-p4-perm.c",
7678    "src/math/expm1minus-f32-avx2-rr1-lut8-p4-perm.c",
7679    "src/math/expm1minus-f32-avx2-rr1-lut16-p3-gather.c",
7680    "src/math/expm1minus-f32-avx2-rr1-p6.c",
7681    "src/math/extexp-avx2-p5.c",
7682    "src/math/sigmoid-f16-avx2-rr1-p2-div.c",
7683    "src/math/sigmoid-f16-avx2-rr1-p2-rcp.c",
7684    "src/math/sigmoid-f16-avx2-rr1-p3-div.c",
7685    "src/math/sigmoid-f16-avx2-rr1-p3-rcp.c",
7686    "src/math/sigmoid-f32-avx2-rr1-lut64-p2-gather-div.c",
7687    "src/math/sigmoid-f32-avx2-rr1-lut64-p2-gather-nr1fma.c",
7688    "src/math/sigmoid-f32-avx2-rr1-lut64-p2-gather-nr2fma.c",
7689    "src/math/sigmoid-f32-avx2-rr1-lut64-p2-gather-nr2fma1adj.c",
7690    "src/math/sigmoid-f32-avx2-rr1-p5-div.c",
7691    "src/math/sigmoid-f32-avx2-rr1-p5-nr1fma.c",
7692    "src/math/sigmoid-f32-avx2-rr1-p5-nr2fma.c",
7693    "src/math/sigmoid-f32-avx2-rr2-lut64-p2-gather-div.c",
7694    "src/math/sigmoid-f32-avx2-rr2-lut64-p2-gather-nr1fma.c",
7695    "src/math/sigmoid-f32-avx2-rr2-lut64-p2-gather-nr2fma.c",
7696    "src/math/sigmoid-f32-avx2-rr2-lut64-p2-gather-nr2fma1adj.c",
7697    "src/math/sigmoid-f32-avx2-rr2-p5-div.c",
7698    "src/math/sigmoid-f32-avx2-rr2-p5-nr1fma.c",
7699    "src/math/sigmoid-f32-avx2-rr2-p5-nr2fma.c",
7700    "src/qc8-dwconv/gen/up8x9-minmax-fp32-avx2-mul32.c",
7701    "src/qc8-dwconv/gen/up8x25-minmax-fp32-avx2-mul32.c",
7702    "src/qc8-dwconv/gen/up16x3-minmax-fp32-avx2-mul32.c",
7703    "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx2-mul16-add16-vpunpck.c",
7704    "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx2-mul16-vpmovsx.c",
7705    "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx2-mul16-vpunpck.c",
7706    "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx2-mul32.c",
7707    "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx2-mul16-add16-vpunpck.c",
7708    "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx2-mul16-vpmovsx.c",
7709    "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx2-mul16-vpunpck.c",
7710    "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx2-mul32.c",
7711    "src/qc8-dwconv/gen/up24x9-minmax-fp32-avx2-mul32.c",
7712    "src/qc8-dwconv/gen/up24x25-minmax-fp32-avx2-mul32.c",
7713    "src/qc8-dwconv/gen/up32x9-minmax-fp32-avx2-mul16-add16-vpunpck.c",
7714    "src/qc8-dwconv/gen/up32x9-minmax-fp32-avx2-mul16-vpmovsx.c",
7715    "src/qc8-dwconv/gen/up32x9-minmax-fp32-avx2-mul16-vpunpck.c",
7716    "src/qc8-dwconv/gen/up32x9-minmax-fp32-avx2-mul32.c",
7717    "src/qc8-dwconv/gen/up32x25-minmax-fp32-avx2-mul16-add16-vpunpck.c",
7718    "src/qc8-dwconv/gen/up32x25-minmax-fp32-avx2-mul16-vpmovsx.c",
7719    "src/qc8-dwconv/gen/up32x25-minmax-fp32-avx2-mul16-vpunpck.c",
7720    "src/qc8-dwconv/gen/up32x25-minmax-fp32-avx2-mul32.c",
7721    "src/qc8-gemm/gen/1x8c8-minmax-fp32-avx2.c",
7722    "src/qc8-gemm/gen/1x8c8-xw-minmax-fp32-avx2.c",
7723    "src/qc8-gemm/gen/2x8c8-minmax-fp32-avx2.c",
7724    "src/qc8-gemm/gen/2x8c8-xw-minmax-fp32-avx2.c",
7725    "src/qc8-gemm/gen/3x8c8-minmax-fp32-avx2.c",
7726    "src/qc8-gemm/gen/3x8c8-xw-minmax-fp32-avx2.c",
7727    "src/qc8-igemm/gen/1x8c8-minmax-fp32-avx2.c",
7728    "src/qc8-igemm/gen/2x8c8-minmax-fp32-avx2.c",
7729    "src/qc8-igemm/gen/3x8c8-minmax-fp32-avx2.c",
7730    "src/qs8-dwconv/gen/up8x9-minmax-fp32-avx2-mul32.c",
7731    "src/qs8-dwconv/gen/up8x25-minmax-fp32-avx2-mul32.c",
7732    "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx2-mul16-add16-vpunpck.c",
7733    "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx2-mul16-vpmovsx.c",
7734    "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx2-mul16-vpunpck.c",
7735    "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx2-mul32.c",
7736    "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx2-mul16-add16-vpunpck.c",
7737    "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx2-mul16-vpmovsx.c",
7738    "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx2-mul16-vpunpck.c",
7739    "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx2-mul32.c",
7740    "src/qs8-dwconv/gen/up24x9-minmax-fp32-avx2-mul32.c",
7741    "src/qs8-dwconv/gen/up24x25-minmax-fp32-avx2-mul32.c",
7742    "src/qs8-dwconv/gen/up32x9-minmax-fp32-avx2-mul16-add16-vpunpck.c",
7743    "src/qs8-dwconv/gen/up32x9-minmax-fp32-avx2-mul16-vpmovsx.c",
7744    "src/qs8-dwconv/gen/up32x9-minmax-fp32-avx2-mul16-vpunpck.c",
7745    "src/qs8-dwconv/gen/up32x9-minmax-fp32-avx2-mul32.c",
7746    "src/qs8-dwconv/gen/up32x25-minmax-fp32-avx2-mul16-add16-vpunpck.c",
7747    "src/qs8-dwconv/gen/up32x25-minmax-fp32-avx2-mul16-vpmovsx.c",
7748    "src/qs8-dwconv/gen/up32x25-minmax-fp32-avx2-mul16-vpunpck.c",
7749    "src/qs8-dwconv/gen/up32x25-minmax-fp32-avx2-mul32.c",
7750    "src/qs8-f32-vcvt/gen/vcvt-avx2-x8.c",
7751    "src/qs8-f32-vcvt/gen/vcvt-avx2-x16.c",
7752    "src/qs8-f32-vcvt/gen/vcvt-avx2-x24.c",
7753    "src/qs8-f32-vcvt/gen/vcvt-avx2-x32.c",
7754    "src/qs8-gemm/gen/1x8c8-minmax-fp32-avx2.c",
7755    "src/qs8-gemm/gen/1x8c8-xw-minmax-fp32-avx2.c",
7756    "src/qs8-gemm/gen/2x8c8-minmax-fp32-avx2.c",
7757    "src/qs8-gemm/gen/2x8c8-xw-minmax-fp32-avx2.c",
7758    "src/qs8-gemm/gen/3x8c8-minmax-fp32-avx2.c",
7759    "src/qs8-gemm/gen/3x8c8-xw-minmax-fp32-avx2.c",
7760    "src/qs8-igemm/gen/1x8c8-minmax-fp32-avx2.c",
7761    "src/qs8-igemm/gen/2x8c8-minmax-fp32-avx2.c",
7762    "src/qs8-igemm/gen/3x8c8-minmax-fp32-avx2.c",
7763    "src/qs8-vadd/gen/minmax-avx2-mul32-ld64-x8.c",
7764    "src/qs8-vadd/gen/minmax-avx2-mul32-ld64-x16.c",
7765    "src/qs8-vadd/gen/minmax-avx2-mul32-ld64-x24.c",
7766    "src/qs8-vadd/gen/minmax-avx2-mul32-ld64-x32.c",
7767    "src/qs8-vaddc/gen/minmax-avx2-mul32-ld64-x8.c",
7768    "src/qs8-vaddc/gen/minmax-avx2-mul32-ld64-x16.c",
7769    "src/qs8-vaddc/gen/minmax-avx2-mul32-ld64-x24.c",
7770    "src/qs8-vaddc/gen/minmax-avx2-mul32-ld64-x32.c",
7771    "src/qs8-vcvt/gen/vcvt-avx2-x16.c",
7772    "src/qs8-vcvt/gen/vcvt-avx2-x32.c",
7773    "src/qs8-vcvt/gen/vcvt-avx2-x64.c",
7774    "src/qs8-vlrelu/gen/vlrelu-avx2-x16.c",
7775    "src/qs8-vlrelu/gen/vlrelu-avx2-x32.c",
7776    "src/qs8-vlrelu/gen/vlrelu-avx2-x64.c",
7777    "src/qu8-dwconv/gen/up8x9-minmax-fp32-avx2-mul32.c",
7778    "src/qu8-dwconv/gen/up8x25-minmax-fp32-avx2-mul32.c",
7779    "src/qu8-dwconv/gen/up16x9-minmax-fp32-avx2-mul32.c",
7780    "src/qu8-dwconv/gen/up16x25-minmax-fp32-avx2-mul32.c",
7781    "src/qu8-dwconv/gen/up32x9-minmax-fp32-avx2-mul32.c",
7782    "src/qu8-dwconv/gen/up32x25-minmax-fp32-avx2-mul32.c",
7783    "src/qu8-f32-vcvt/gen/vcvt-avx2-x8.c",
7784    "src/qu8-f32-vcvt/gen/vcvt-avx2-x16.c",
7785    "src/qu8-f32-vcvt/gen/vcvt-avx2-x24.c",
7786    "src/qu8-f32-vcvt/gen/vcvt-avx2-x32.c",
7787    "src/qu8-gemm/gen/1x8c8-minmax-fp32-avx2.c",
7788    "src/qu8-gemm/gen/2x8c8-minmax-fp32-avx2.c",
7789    "src/qu8-gemm/gen/3x8c8-minmax-fp32-avx2.c",
7790    "src/qu8-igemm/gen/1x8c8-minmax-fp32-avx2.c",
7791    "src/qu8-igemm/gen/2x8c8-minmax-fp32-avx2.c",
7792    "src/qu8-igemm/gen/3x8c8-minmax-fp32-avx2.c",
7793    "src/qu8-vadd/gen/minmax-avx2-mul32-ld64-x8.c",
7794    "src/qu8-vadd/gen/minmax-avx2-mul32-ld64-x16.c",
7795    "src/qu8-vaddc/gen/minmax-avx2-mul32-ld64-x8.c",
7796    "src/qu8-vaddc/gen/minmax-avx2-mul32-ld64-x16.c",
7797    "src/qu8-vcvt/gen/vcvt-avx2-x16.c",
7798    "src/qu8-vcvt/gen/vcvt-avx2-x32.c",
7799    "src/qu8-vcvt/gen/vcvt-avx2-x64.c",
7800    "src/qu8-vlrelu/gen/vlrelu-avx2-x16.c",
7801    "src/qu8-vlrelu/gen/vlrelu-avx2-x32.c",
7802    "src/qu8-vlrelu/gen/vlrelu-avx2-x64.c",
7803    "src/x8-lut/gen/lut-avx2-x32.c",
7804    "src/x8-lut/gen/lut-avx2-x64.c",
7805    "src/x8-lut/gen/lut-avx2-x96.c",
7806    "src/x8-lut/gen/lut-avx2-x128.c",
7807]
7808
7809PROD_AVX512F_MICROKERNEL_SRCS = [
7810    "src/f32-dwconv/gen/up16x3-minmax-avx512f.c",
7811    "src/f32-dwconv/gen/up16x4-minmax-avx512f.c",
7812    "src/f32-dwconv/gen/up16x9-minmax-avx512f.c",
7813    "src/f32-dwconv/gen/up16x25-minmax-avx512f.c",
7814    "src/f32-gemm/gen/1x16-minmax-avx512f-broadcast.c",
7815    "src/f32-gemm/gen/7x16-minmax-avx512f-broadcast.c",
7816    "src/f32-igemm/gen/1x16-minmax-avx512f-broadcast.c",
7817    "src/f32-igemm/gen/7x16-minmax-avx512f-broadcast.c",
7818    "src/f32-prelu/gen/avx512f-2x16.c",
7819    "src/f32-vbinary/gen/vadd-minmax-avx512f-x32.c",
7820    "src/f32-vbinary/gen/vaddc-minmax-avx512f-x32.c",
7821    "src/f32-vbinary/gen/vdiv-minmax-avx512f-x32.c",
7822    "src/f32-vbinary/gen/vdivc-minmax-avx512f-x32.c",
7823    "src/f32-vbinary/gen/vmax-avx512f-x32.c",
7824    "src/f32-vbinary/gen/vmaxc-avx512f-x32.c",
7825    "src/f32-vbinary/gen/vmin-avx512f-x32.c",
7826    "src/f32-vbinary/gen/vminc-avx512f-x32.c",
7827    "src/f32-vbinary/gen/vmul-minmax-avx512f-x32.c",
7828    "src/f32-vbinary/gen/vmulc-minmax-avx512f-x32.c",
7829    "src/f32-vbinary/gen/vrdivc-minmax-avx512f-x32.c",
7830    "src/f32-vbinary/gen/vrsubc-minmax-avx512f-x32.c",
7831    "src/f32-vbinary/gen/vsqrdiff-avx512f-x32.c",
7832    "src/f32-vbinary/gen/vsqrdiffc-avx512f-x32.c",
7833    "src/f32-vbinary/gen/vsub-minmax-avx512f-x32.c",
7834    "src/f32-vbinary/gen/vsubc-minmax-avx512f-x32.c",
7835    "src/f32-vclamp/gen/vclamp-avx512f-x16.c",
7836    "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x64.c",
7837    "src/f32-vhswish/gen/vhswish-avx512f-x16.c",
7838    "src/f32-vlrelu/gen/vlrelu-avx512f-x16.c",
7839    "src/f32-vrnd/gen/vrndd-avx512f-x16.c",
7840    "src/f32-vrnd/gen/vrndne-avx512f-x16.c",
7841    "src/f32-vrnd/gen/vrndu-avx512f-x16.c",
7842    "src/f32-vrnd/gen/vrndz-avx512f-x16.c",
7843    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x64.c",
7844    "src/f32-vunary/gen/vabs-avx512f-x16.c",
7845    "src/f32-vunary/gen/vneg-avx512f-x16.c",
7846    "src/f32-vunary/gen/vsqr-avx512f-x16.c",
7847]
7848
7849ALL_AVX512F_MICROKERNEL_SRCS = [
7850    "src/f32-dwconv/gen/up16x3-minmax-avx512f-acc2.c",
7851    "src/f32-dwconv/gen/up16x3-minmax-avx512f.c",
7852    "src/f32-dwconv/gen/up16x4-minmax-avx512f-acc2.c",
7853    "src/f32-dwconv/gen/up16x4-minmax-avx512f.c",
7854    "src/f32-dwconv/gen/up16x9-minmax-avx512f-acc2.c",
7855    "src/f32-dwconv/gen/up16x9-minmax-avx512f.c",
7856    "src/f32-dwconv/gen/up16x25-minmax-avx512f-acc2.c",
7857    "src/f32-dwconv/gen/up16x25-minmax-avx512f.c",
7858    "src/f32-dwconv/gen/up32x3-minmax-avx512f-acc2.c",
7859    "src/f32-dwconv/gen/up32x3-minmax-avx512f.c",
7860    "src/f32-dwconv/gen/up32x4-minmax-avx512f-acc2.c",
7861    "src/f32-dwconv/gen/up32x4-minmax-avx512f.c",
7862    "src/f32-dwconv/gen/up32x9-minmax-avx512f-acc2.c",
7863    "src/f32-dwconv/gen/up32x9-minmax-avx512f.c",
7864    "src/f32-dwconv/gen/up32x25-minmax-avx512f-acc2.c",
7865    "src/f32-dwconv/gen/up32x25-minmax-avx512f.c",
7866    "src/f32-gemm/gen-inc/1x16inc-minmax-avx512f-broadcast.c",
7867    "src/f32-gemm/gen-inc/4x16inc-minmax-avx512f-broadcast.c",
7868    "src/f32-gemm/gen-inc/5x16inc-minmax-avx512f-broadcast.c",
7869    "src/f32-gemm/gen-inc/6x16inc-minmax-avx512f-broadcast.c",
7870    "src/f32-gemm/gen-inc/7x16inc-minmax-avx512f-broadcast.c",
7871    "src/f32-gemm/gen-inc/8x16inc-minmax-avx512f-broadcast.c",
7872    "src/f32-gemm/gen/1x16-minmax-avx512f-broadcast.c",
7873    "src/f32-gemm/gen/4x16-minmax-avx512f-broadcast.c",
7874    "src/f32-gemm/gen/5x16-minmax-avx512f-broadcast.c",
7875    "src/f32-gemm/gen/6x16-minmax-avx512f-broadcast.c",
7876    "src/f32-gemm/gen/7x16-minmax-avx512f-broadcast.c",
7877    "src/f32-gemm/gen/8x16-minmax-avx512f-broadcast.c",
7878    "src/f32-igemm/gen/1x16-minmax-avx512f-broadcast.c",
7879    "src/f32-igemm/gen/4x16-minmax-avx512f-broadcast.c",
7880    "src/f32-igemm/gen/5x16-minmax-avx512f-broadcast.c",
7881    "src/f32-igemm/gen/6x16-minmax-avx512f-broadcast.c",
7882    "src/f32-igemm/gen/7x16-minmax-avx512f-broadcast.c",
7883    "src/f32-igemm/gen/8x16-minmax-avx512f-broadcast.c",
7884    "src/f32-prelu/gen/avx512f-2x16.c",
7885    "src/f32-prelu/gen/avx512f-2x32.c",
7886    "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x128-acc2.c",
7887    "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x128-acc4.c",
7888    "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x128.c",
7889    "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x144-acc3.c",
7890    "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x144.c",
7891    "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x160-acc2.c",
7892    "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x160-acc5.c",
7893    "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x160.c",
7894    "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x192-acc2.c",
7895    "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x192-acc3.c",
7896    "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x192-acc6.c",
7897    "src/f32-raddexpminusmax/gen/avx512f-p5-scalef-x192.c",
7898    "src/f32-raddextexp/gen/avx512f-p5-scalef-x128-acc2.c",
7899    "src/f32-raddextexp/gen/avx512f-p5-scalef-x128-acc4.c",
7900    "src/f32-raddextexp/gen/avx512f-p5-scalef-x128.c",
7901    "src/f32-raddextexp/gen/avx512f-p5-scalef-x144-acc3.c",
7902    "src/f32-raddextexp/gen/avx512f-p5-scalef-x144.c",
7903    "src/f32-raddextexp/gen/avx512f-p5-scalef-x160-acc2.c",
7904    "src/f32-raddextexp/gen/avx512f-p5-scalef-x160-acc5.c",
7905    "src/f32-raddextexp/gen/avx512f-p5-scalef-x160.c",
7906    "src/f32-raddextexp/gen/avx512f-p5-scalef-x192-acc2.c",
7907    "src/f32-raddextexp/gen/avx512f-p5-scalef-x192-acc3.c",
7908    "src/f32-raddextexp/gen/avx512f-p5-scalef-x192-acc6.c",
7909    "src/f32-raddextexp/gen/avx512f-p5-scalef-x192.c",
7910    "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x128-acc2.c",
7911    "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x128-acc4.c",
7912    "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x128.c",
7913    "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x144-acc3.c",
7914    "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x144.c",
7915    "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x160-acc2.c",
7916    "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x160-acc5.c",
7917    "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x160.c",
7918    "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x192-acc2.c",
7919    "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x192-acc3.c",
7920    "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x192-acc6.c",
7921    "src/f32-raddstoreexpminusmax/gen/avx512f-rr1-p5-scalef-x192.c",
7922    "src/f32-rmax/avx512f.c",
7923    "src/f32-vbinary/gen/vadd-minmax-avx512f-x16.c",
7924    "src/f32-vbinary/gen/vadd-minmax-avx512f-x32.c",
7925    "src/f32-vbinary/gen/vaddc-minmax-avx512f-x16.c",
7926    "src/f32-vbinary/gen/vaddc-minmax-avx512f-x32.c",
7927    "src/f32-vbinary/gen/vdiv-minmax-avx512f-x16.c",
7928    "src/f32-vbinary/gen/vdiv-minmax-avx512f-x32.c",
7929    "src/f32-vbinary/gen/vdivc-minmax-avx512f-x16.c",
7930    "src/f32-vbinary/gen/vdivc-minmax-avx512f-x32.c",
7931    "src/f32-vbinary/gen/vmax-avx512f-x16.c",
7932    "src/f32-vbinary/gen/vmax-avx512f-x32.c",
7933    "src/f32-vbinary/gen/vmaxc-avx512f-x16.c",
7934    "src/f32-vbinary/gen/vmaxc-avx512f-x32.c",
7935    "src/f32-vbinary/gen/vmin-avx512f-x16.c",
7936    "src/f32-vbinary/gen/vmin-avx512f-x32.c",
7937    "src/f32-vbinary/gen/vminc-avx512f-x16.c",
7938    "src/f32-vbinary/gen/vminc-avx512f-x32.c",
7939    "src/f32-vbinary/gen/vmul-minmax-avx512f-x16.c",
7940    "src/f32-vbinary/gen/vmul-minmax-avx512f-x32.c",
7941    "src/f32-vbinary/gen/vmulc-minmax-avx512f-x16.c",
7942    "src/f32-vbinary/gen/vmulc-minmax-avx512f-x32.c",
7943    "src/f32-vbinary/gen/vrdivc-minmax-avx512f-x16.c",
7944    "src/f32-vbinary/gen/vrdivc-minmax-avx512f-x32.c",
7945    "src/f32-vbinary/gen/vrsubc-minmax-avx512f-x16.c",
7946    "src/f32-vbinary/gen/vrsubc-minmax-avx512f-x32.c",
7947    "src/f32-vbinary/gen/vsqrdiff-avx512f-x16.c",
7948    "src/f32-vbinary/gen/vsqrdiff-avx512f-x32.c",
7949    "src/f32-vbinary/gen/vsqrdiffc-avx512f-x16.c",
7950    "src/f32-vbinary/gen/vsqrdiffc-avx512f-x32.c",
7951    "src/f32-vbinary/gen/vsub-minmax-avx512f-x16.c",
7952    "src/f32-vbinary/gen/vsub-minmax-avx512f-x32.c",
7953    "src/f32-vbinary/gen/vsubc-minmax-avx512f-x16.c",
7954    "src/f32-vbinary/gen/vsubc-minmax-avx512f-x32.c",
7955    "src/f32-vclamp/gen/vclamp-avx512f-x16.c",
7956    "src/f32-vclamp/gen/vclamp-avx512f-x32.c",
7957    "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x16.c",
7958    "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x32.c",
7959    "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x48.c",
7960    "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x64.c",
7961    "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x80.c",
7962    "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x96.c",
7963    "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x112.c",
7964    "src/f32-velu/gen/velu-avx512f-rr1-lut16-p3-perm-x128.c",
7965    "src/f32-velu/gen/velu-avx512f-rr1-p6-x16.c",
7966    "src/f32-velu/gen/velu-avx512f-rr1-p6-x32.c",
7967    "src/f32-velu/gen/velu-avx512f-rr1-p6-x48.c",
7968    "src/f32-velu/gen/velu-avx512f-rr1-p6-x64.c",
7969    "src/f32-velu/gen/velu-avx512f-rr1-p6-x80.c",
7970    "src/f32-velu/gen/velu-avx512f-rr1-p6-x96.c",
7971    "src/f32-velu/gen/velu-avx512f-rr1-p6-x112.c",
7972    "src/f32-velu/gen/velu-avx512f-rr1-p6-x128.c",
7973    "src/f32-vhswish/gen/vhswish-avx512f-x16.c",
7974    "src/f32-vhswish/gen/vhswish-avx512f-x32.c",
7975    "src/f32-vlrelu/gen/vlrelu-avx512f-x16.c",
7976    "src/f32-vlrelu/gen/vlrelu-avx512f-x32.c",
7977    "src/f32-vrelu/gen/vrelu-avx512f-x16.c",
7978    "src/f32-vrelu/gen/vrelu-avx512f-x32.c",
7979    "src/f32-vrnd/gen/vrndd-avx512f-x16.c",
7980    "src/f32-vrnd/gen/vrndd-avx512f-x32.c",
7981    "src/f32-vrnd/gen/vrndne-avx512f-x16.c",
7982    "src/f32-vrnd/gen/vrndne-avx512f-x32.c",
7983    "src/f32-vrnd/gen/vrndu-avx512f-x16.c",
7984    "src/f32-vrnd/gen/vrndu-avx512f-x32.c",
7985    "src/f32-vrnd/gen/vrndz-avx512f-x16.c",
7986    "src/f32-vrnd/gen/vrndz-avx512f-x32.c",
7987    "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x16.c",
7988    "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x32.c",
7989    "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x48.c",
7990    "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x64.c",
7991    "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x80.c",
7992    "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x96.c",
7993    "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x112.c",
7994    "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x128.c",
7995    "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x144.c",
7996    "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x160.c",
7997    "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x176.c",
7998    "src/f32-vscaleexpminusmax/gen/avx512f-p5-scalef-x192.c",
7999    "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x16.c",
8000    "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x32.c",
8001    "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x48.c",
8002    "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x64.c",
8003    "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x80.c",
8004    "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x96.c",
8005    "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x112.c",
8006    "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x128.c",
8007    "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x144.c",
8008    "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x160.c",
8009    "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x176.c",
8010    "src/f32-vscaleextexp/gen/avx512f-p5-scalef-x192.c",
8011    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x16.c",
8012    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x32.c",
8013    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x48.c",
8014    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x64.c",
8015    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x80.c",
8016    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x96.c",
8017    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x112.c",
8018    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-div-x128.c",
8019    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x16.c",
8020    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x32.c",
8021    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x48.c",
8022    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x64.c",
8023    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x80.c",
8024    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x96.c",
8025    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x112.c",
8026    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-lut16-p3-perm-scalef-nr1fma-x128.c",
8027    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x16.c",
8028    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x32.c",
8029    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x48.c",
8030    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x64.c",
8031    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x80.c",
8032    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x96.c",
8033    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x112.c",
8034    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-div-x128.c",
8035    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x16.c",
8036    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x32.c",
8037    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x48.c",
8038    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x64.c",
8039    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x80.c",
8040    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x96.c",
8041    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x112.c",
8042    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr1-p5-scalef-nr1fma-x128.c",
8043    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x16.c",
8044    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x32.c",
8045    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x48.c",
8046    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x64.c",
8047    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x80.c",
8048    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x96.c",
8049    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x112.c",
8050    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-div-x128.c",
8051    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x16.c",
8052    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x32.c",
8053    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x48.c",
8054    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x64.c",
8055    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x80.c",
8056    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x96.c",
8057    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x112.c",
8058    "src/f32-vsigmoid/gen/vsigmoid-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma-x128.c",
8059    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x16.c",
8060    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x32.c",
8061    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x48.c",
8062    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x64.c",
8063    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x80.c",
8064    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x96.c",
8065    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x112.c",
8066    "src/f32-vsqrt/gen/avx512f-nr1fma1adj-x128.c",
8067    "src/f32-vunary/gen/vabs-avx512f-x16.c",
8068    "src/f32-vunary/gen/vabs-avx512f-x32.c",
8069    "src/f32-vunary/gen/vneg-avx512f-x16.c",
8070    "src/f32-vunary/gen/vneg-avx512f-x32.c",
8071    "src/f32-vunary/gen/vsqr-avx512f-x16.c",
8072    "src/f32-vunary/gen/vsqr-avx512f-x32.c",
8073    "src/math/exp-f32-avx512f-rr2-lut16-p3-perm-scalef.c",
8074    "src/math/exp-f32-avx512f-rr2-lut16-p3-perm.c",
8075    "src/math/exp-f32-avx512f-rr2-lut32-p2-perm2-scalef.c",
8076    "src/math/exp-f32-avx512f-rr2-lut32-p2-perm2.c",
8077    "src/math/exp-f32-avx512f-rr2-p5-scalef.c",
8078    "src/math/exp-f32-avx512f-rr2-p5.c",
8079    "src/math/expm1minus-f32-avx512f-rr1-lut16-p3-perm.c",
8080    "src/math/expm1minus-f32-avx512f-rr1-p6.c",
8081    "src/math/extexp-avx512f-p5.c",
8082    "src/math/sigmoid-f32-avx512f-rr1-lut16-p3-perm-scalef-div.c",
8083    "src/math/sigmoid-f32-avx512f-rr1-lut16-p3-perm-scalef-nr1fma.c",
8084    "src/math/sigmoid-f32-avx512f-rr1-lut16-p3-perm-scalef-nr1fma1adj.c",
8085    "src/math/sigmoid-f32-avx512f-rr1-lut32-p2-perm2-scalef-div.c",
8086    "src/math/sigmoid-f32-avx512f-rr1-lut32-p2-perm2-scalef-nr1fma.c",
8087    "src/math/sigmoid-f32-avx512f-rr1-lut32-p2-perm2-scalef-nr1fma1adj.c",
8088    "src/math/sigmoid-f32-avx512f-rr1-lut64-p2-gather-scalef-div.c",
8089    "src/math/sigmoid-f32-avx512f-rr1-lut64-p2-gather-scalef-nr1fma.c",
8090    "src/math/sigmoid-f32-avx512f-rr1-lut64-p2-gather-scalef-nr1fma1adj.c",
8091    "src/math/sigmoid-f32-avx512f-rr1-p5-scalef-div.c",
8092    "src/math/sigmoid-f32-avx512f-rr1-p5-scalef-nr1fma.c",
8093    "src/math/sigmoid-f32-avx512f-rr1-p5-scalef-nr1fma1adj.c",
8094    "src/math/sigmoid-f32-avx512f-rr2-lut16-p3-perm-scalef-div.c",
8095    "src/math/sigmoid-f32-avx512f-rr2-lut16-p3-perm-scalef-nr1fma.c",
8096    "src/math/sigmoid-f32-avx512f-rr2-lut16-p3-perm-scalef-nr1fma1adj.c",
8097    "src/math/sigmoid-f32-avx512f-rr2-lut32-p2-perm2-scalef-div.c",
8098    "src/math/sigmoid-f32-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma.c",
8099    "src/math/sigmoid-f32-avx512f-rr2-lut32-p2-perm2-scalef-nr1fma1adj.c",
8100    "src/math/sigmoid-f32-avx512f-rr2-lut64-p2-gather-scalef-div.c",
8101    "src/math/sigmoid-f32-avx512f-rr2-lut64-p2-gather-scalef-nr1fma.c",
8102    "src/math/sigmoid-f32-avx512f-rr2-lut64-p2-gather-scalef-nr1fma1adj.c",
8103    "src/math/sigmoid-f32-avx512f-rr2-p5-scalef-div.c",
8104    "src/math/sigmoid-f32-avx512f-rr2-p5-scalef-nr1fma.c",
8105    "src/math/sigmoid-f32-avx512f-rr2-p5-scalef-nr1fma1adj.c",
8106    "src/math/sqrt-avx512f-nr1fma.c",
8107    "src/math/sqrt-avx512f-nr1fma1adj.c",
8108    "src/math/sqrt-avx512f-nr2fma.c",
8109]
8110
8111PROD_AVX512SKX_MICROKERNEL_SRCS = [
8112    "src/f16-f32-vcvt/gen/vcvt-avx512skx-x16.c",
8113    "src/f32-f16-vcvt/gen/vcvt-avx512skx-x16.c",
8114    "src/f32-qs8-vcvt/gen/vcvt-avx512skx-x128.c",
8115    "src/f32-qu8-vcvt/gen/vcvt-avx512skx-x128.c",
8116    "src/qc8-dwconv/gen/up32x3-minmax-fp32-avx512skx-mul32.c",
8117    "src/qc8-dwconv/gen/up32x9-minmax-fp32-avx512skx-mul32.c",
8118    "src/qc8-dwconv/gen/up32x25-minmax-fp32-avx512skx-mul32.c",
8119    "src/qc8-gemm/gen/1x16c8-minmax-fp32-avx512skx.c",
8120    "src/qc8-gemm/gen/4x16c8-minmax-fp32-avx512skx.c",
8121    "src/qc8-igemm/gen/1x16c8-minmax-fp32-avx512skx.c",
8122    "src/qc8-igemm/gen/4x16c8-minmax-fp32-avx512skx.c",
8123    "src/qs8-dwconv/gen/up32x9-minmax-fp32-avx512skx-mul32.c",
8124    "src/qs8-dwconv/gen/up32x25-minmax-fp32-avx512skx-mul32.c",
8125    "src/qs8-f32-vcvt/gen/vcvt-avx512skx-x32.c",
8126    "src/qs8-gemm/gen/1x16c8-minmax-fp32-avx512skx.c",
8127    "src/qs8-gemm/gen/4x16c8-minmax-fp32-avx512skx.c",
8128    "src/qs8-igemm/gen/1x16c8-minmax-fp32-avx512skx.c",
8129    "src/qs8-igemm/gen/4x16c8-minmax-fp32-avx512skx.c",
8130    "src/qs8-vadd/gen/minmax-avx512skx-mul32-ld128-x16.c",
8131    "src/qs8-vaddc/gen/minmax-avx512skx-mul32-ld128-x16.c",
8132    "src/qu8-dwconv/gen/up32x9-minmax-fp32-avx512skx-mul32.c",
8133    "src/qu8-dwconv/gen/up32x25-minmax-fp32-avx512skx-mul32.c",
8134    "src/qu8-f32-vcvt/gen/vcvt-avx512skx-x32.c",
8135    "src/qu8-gemm/gen/1x16c8-minmax-fp32-avx512skx.c",
8136    "src/qu8-gemm/gen/4x16c8-minmax-fp32-avx512skx.c",
8137    "src/qu8-igemm/gen/1x16c8-minmax-fp32-avx512skx.c",
8138    "src/qu8-igemm/gen/4x16c8-minmax-fp32-avx512skx.c",
8139    "src/qu8-vadd/gen/minmax-avx512skx-mul32-ld128-x16.c",
8140    "src/qu8-vaddc/gen/minmax-avx512skx-mul32-ld128-x16.c",
8141    "src/x8-lut/gen/lut-avx512skx-vpshufb-x64.c",
8142]
8143
8144ALL_AVX512SKX_MICROKERNEL_SRCS = [
8145    "src/f16-f32-vcvt/gen/vcvt-avx512skx-x16.c",
8146    "src/f16-f32-vcvt/gen/vcvt-avx512skx-x32.c",
8147    "src/f32-f16-vcvt/gen/vcvt-avx512skx-x16.c",
8148    "src/f32-f16-vcvt/gen/vcvt-avx512skx-x32.c",
8149    "src/f32-qs8-vcvt/gen/vcvt-avx512skx-x32.c",
8150    "src/f32-qs8-vcvt/gen/vcvt-avx512skx-x64.c",
8151    "src/f32-qs8-vcvt/gen/vcvt-avx512skx-x96.c",
8152    "src/f32-qs8-vcvt/gen/vcvt-avx512skx-x128.c",
8153    "src/f32-qu8-vcvt/gen/vcvt-avx512skx-x32.c",
8154    "src/f32-qu8-vcvt/gen/vcvt-avx512skx-x64.c",
8155    "src/f32-qu8-vcvt/gen/vcvt-avx512skx-x96.c",
8156    "src/f32-qu8-vcvt/gen/vcvt-avx512skx-x128.c",
8157    "src/qc8-dwconv/gen/up16x9-minmax-fp32-avx512skx-mul32.c",
8158    "src/qc8-dwconv/gen/up16x25-minmax-fp32-avx512skx-mul32.c",
8159    "src/qc8-dwconv/gen/up32x3-minmax-fp32-avx512skx-mul32.c",
8160    "src/qc8-dwconv/gen/up32x9-minmax-fp32-avx512skx-mul32.c",
8161    "src/qc8-dwconv/gen/up32x25-minmax-fp32-avx512skx-mul32.c",
8162    "src/qc8-gemm/gen/1x16c8-minmax-fp32-avx512skx.c",
8163    "src/qc8-gemm/gen/2x16c8-minmax-fp32-avx512skx.c",
8164    "src/qc8-gemm/gen/3x16c8-minmax-fp32-avx512skx.c",
8165    "src/qc8-gemm/gen/4x16c8-minmax-fp32-avx512skx.c",
8166    "src/qc8-igemm/gen/1x16c8-minmax-fp32-avx512skx.c",
8167    "src/qc8-igemm/gen/2x16c8-minmax-fp32-avx512skx.c",
8168    "src/qc8-igemm/gen/3x16c8-minmax-fp32-avx512skx.c",
8169    "src/qc8-igemm/gen/4x16c8-minmax-fp32-avx512skx.c",
8170    "src/qs8-dwconv/gen/up16x9-minmax-fp32-avx512skx-mul32.c",
8171    "src/qs8-dwconv/gen/up16x25-minmax-fp32-avx512skx-mul32.c",
8172    "src/qs8-dwconv/gen/up32x9-minmax-fp32-avx512skx-mul32.c",
8173    "src/qs8-dwconv/gen/up32x25-minmax-fp32-avx512skx-mul32.c",
8174    "src/qs8-f32-vcvt/gen/vcvt-avx512skx-x16.c",
8175    "src/qs8-f32-vcvt/gen/vcvt-avx512skx-x32.c",
8176    "src/qs8-f32-vcvt/gen/vcvt-avx512skx-x48.c",
8177    "src/qs8-f32-vcvt/gen/vcvt-avx512skx-x64.c",
8178    "src/qs8-gemm/gen/1x16c8-minmax-fp32-avx512skx.c",
8179    "src/qs8-gemm/gen/2x16c8-minmax-fp32-avx512skx.c",
8180    "src/qs8-gemm/gen/3x16c8-minmax-fp32-avx512skx.c",
8181    "src/qs8-gemm/gen/4x16c8-minmax-fp32-avx512skx.c",
8182    "src/qs8-igemm/gen/1x16c8-minmax-fp32-avx512skx.c",
8183    "src/qs8-igemm/gen/2x16c8-minmax-fp32-avx512skx.c",
8184    "src/qs8-igemm/gen/3x16c8-minmax-fp32-avx512skx.c",
8185    "src/qs8-igemm/gen/4x16c8-minmax-fp32-avx512skx.c",
8186    "src/qs8-vadd/gen/minmax-avx512skx-mul32-ld128-x16.c",
8187    "src/qs8-vadd/gen/minmax-avx512skx-mul32-ld128-x32.c",
8188    "src/qs8-vaddc/gen/minmax-avx512skx-mul32-ld128-x16.c",
8189    "src/qs8-vaddc/gen/minmax-avx512skx-mul32-ld128-x32.c",
8190    "src/qu8-dwconv/gen/up16x9-minmax-fp32-avx512skx-mul32.c",
8191    "src/qu8-dwconv/gen/up16x25-minmax-fp32-avx512skx-mul32.c",
8192    "src/qu8-dwconv/gen/up32x9-minmax-fp32-avx512skx-mul32.c",
8193    "src/qu8-dwconv/gen/up32x25-minmax-fp32-avx512skx-mul32.c",
8194    "src/qu8-f32-vcvt/gen/vcvt-avx512skx-x16.c",
8195    "src/qu8-f32-vcvt/gen/vcvt-avx512skx-x32.c",
8196    "src/qu8-f32-vcvt/gen/vcvt-avx512skx-x48.c",
8197    "src/qu8-f32-vcvt/gen/vcvt-avx512skx-x64.c",
8198    "src/qu8-gemm/gen/1x16c8-minmax-fp32-avx512skx.c",
8199    "src/qu8-gemm/gen/2x16c8-minmax-fp32-avx512skx.c",
8200    "src/qu8-gemm/gen/3x16c8-minmax-fp32-avx512skx.c",
8201    "src/qu8-gemm/gen/4x16c8-minmax-fp32-avx512skx.c",
8202    "src/qu8-igemm/gen/1x16c8-minmax-fp32-avx512skx.c",
8203    "src/qu8-igemm/gen/2x16c8-minmax-fp32-avx512skx.c",
8204    "src/qu8-igemm/gen/3x16c8-minmax-fp32-avx512skx.c",
8205    "src/qu8-igemm/gen/4x16c8-minmax-fp32-avx512skx.c",
8206    "src/qu8-vadd/gen/minmax-avx512skx-mul32-ld128-x16.c",
8207    "src/qu8-vadd/gen/minmax-avx512skx-mul32-ld128-x32.c",
8208    "src/qu8-vaddc/gen/minmax-avx512skx-mul32-ld128-x16.c",
8209    "src/qu8-vaddc/gen/minmax-avx512skx-mul32-ld128-x32.c",
8210    "src/x8-lut/gen/lut-avx512skx-vpshufb-x64.c",
8211    "src/x8-lut/gen/lut-avx512skx-vpshufb-x128.c",
8212    "src/x8-lut/gen/lut-avx512skx-vpshufb-x192.c",
8213    "src/x8-lut/gen/lut-avx512skx-vpshufb-x256.c",
8214]
8215
8216WASM32_ASM_MICROKERNEL_SRCS = [
8217    "src/f32-vrelu/wasm_shr_x1.S",
8218    "src/f32-vrelu/wasm_shr_x2.S",
8219    "src/f32-vrelu/wasm_shr_x4.S",
8220]
8221
8222AARCH32_ASM_MICROKERNEL_SRCS = [
8223    "src/f32-gemm/gen/4x8-minmax-aarch32-neon-cortex-a7.S",
8224    "src/f32-gemm/gen/4x8-minmax-aarch32-neon-cortex-a53.S",
8225    "src/f32-gemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S",
8226    "src/f32-gemm/gen/4x8-minmax-aarch32-neon-ld64.S",
8227    "src/f32-gemm/gen/4x8-minmax-aarch32-neon-prfm-cortex-a53.S",
8228    "src/f32-gemm/gen/4x8-minmax-aarch32-neon-prfm-cortex-a75.S",
8229    "src/f32-gemm/4x4-aarch32-vfp-ld64.S",
8230    "src/f32-gemm/4x4-minmax-aarch32-vfp-ld64.S",
8231    "src/f32-gemm/4x8-minmax-aarch32-neon-cortex-a55.S",
8232    "src/f32-igemm/gen/4x8-minmax-aarch32-neon-cortex-a7.S",
8233    "src/f32-igemm/gen/4x8-minmax-aarch32-neon-cortex-a53.S",
8234    "src/f32-igemm/gen/4x8-minmax-aarch32-neon-cortex-a75.S",
8235    "src/f32-igemm/gen/4x8-minmax-aarch32-neon-ld64.S",
8236    "src/f32-igemm/gen/4x8-minmax-aarch32-neon-prfm-cortex-a53.S",
8237    "src/f32-igemm/gen/4x8-minmax-aarch32-neon-prfm-cortex-a75.S",
8238    "src/f32-igemm/4x8-minmax-aarch32-neon-cortex-a55.S",
8239    "src/qc8-dwconv/up8x3-minmax-fp32-aarch32-neonv8-mla8-cortex-a35.S",
8240    "src/qc8-dwconv/up16x3-minmax-fp32-aarch32-neonv8-mla8-cortex-a35.S",
8241    "src/qc8-gemm/gen/1x8-minmax-fp32-aarch32-neon-mlal-lane-cortex-a7.S",
8242    "src/qc8-gemm/gen/1x8-minmax-fp32-aarch32-neon-mlal-lane-prfm-cortex-a7.S",
8243    "src/qc8-gemm/gen/1x8-minmax-fp32-aarch32-neonv8-mlal-lane-cortex-a35.S",
8244    "src/qc8-gemm/gen/1x8-minmax-fp32-aarch32-neonv8-mlal-lane-prfm-cortex-a35.S",
8245    "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-cortex-a7.S",
8246    "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-cortex-a53.S",
8247    "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-ld64.S",
8248    "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-prfm-cortex-a7.S",
8249    "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-prfm-cortex-a53.S",
8250    "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-prfm-ld64.S",
8251    "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-cortex-a35.S",
8252    "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-cortex-a53.S",
8253    "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-ld64.S",
8254    "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-prfm-cortex-a35.S",
8255    "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-prfm-cortex-a53.S",
8256    "src/qc8-gemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-prfm-ld64.S",
8257    "src/qc8-gemm/gen/4x8c4-minmax-fp32-aarch32-neondot-cortex-a55.S",
8258    "src/qc8-gemm/gen/4x8c4-minmax-fp32-aarch32-neondot-ld64.S",
8259    "src/qc8-igemm/gen/1x8-minmax-fp32-aarch32-neon-mlal-lane-cortex-a7.S",
8260    "src/qc8-igemm/gen/1x8-minmax-fp32-aarch32-neon-mlal-lane-prfm-cortex-a7.S",
8261    "src/qc8-igemm/gen/1x8-minmax-fp32-aarch32-neonv8-mlal-lane-cortex-a35.S",
8262    "src/qc8-igemm/gen/1x8-minmax-fp32-aarch32-neonv8-mlal-lane-prfm-cortex-a35.S",
8263    "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-cortex-a7.S",
8264    "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-cortex-a53.S",
8265    "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-ld64.S",
8266    "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-prfm-cortex-a7.S",
8267    "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-prfm-cortex-a53.S",
8268    "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neon-mlal-lane-prfm-ld64.S",
8269    "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-cortex-a35.S",
8270    "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-cortex-a53.S",
8271    "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-ld64.S",
8272    "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-prfm-cortex-a35.S",
8273    "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-prfm-cortex-a53.S",
8274    "src/qc8-igemm/gen/4x8-minmax-fp32-aarch32-neonv8-mlal-lane-prfm-ld64.S",
8275    "src/qc8-igemm/gen/4x8c4-minmax-fp32-aarch32-neondot-cortex-a55.S",
8276    "src/qc8-igemm/gen/4x8c4-minmax-fp32-aarch32-neondot-ld64.S",
8277    "src/qs8-gemm/gen/1x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a7.S",
8278    "src/qs8-gemm/gen/1x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a7.S",
8279    "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a7.S",
8280    "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a53.S",
8281    "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-ld64.S",
8282    "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a7.S",
8283    "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a53.S",
8284    "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-ld64.S",
8285    "src/qs8-gemm/gen/4x8c4-minmax-rndnu-aarch32-neondot-cortex-a55.S",
8286    "src/qs8-gemm/gen/4x8c4-minmax-rndnu-aarch32-neondot-ld64.S",
8287    "src/qs8-igemm/gen/1x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a7.S",
8288    "src/qs8-igemm/gen/1x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a7.S",
8289    "src/qs8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a7.S",
8290    "src/qs8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a53.S",
8291    "src/qs8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-ld64.S",
8292    "src/qs8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a7.S",
8293    "src/qs8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a53.S",
8294    "src/qs8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-ld64.S",
8295    "src/qs8-igemm/gen/4x8c4-minmax-rndnu-aarch32-neondot-cortex-a55.S",
8296    "src/qs8-igemm/gen/4x8c4-minmax-rndnu-aarch32-neondot-ld64.S",
8297    "src/qu8-gemm/gen/1x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a7.S",
8298    "src/qu8-gemm/gen/1x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a7.S",
8299    "src/qu8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a7.S",
8300    "src/qu8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a53.S",
8301    "src/qu8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-ld64.S",
8302    "src/qu8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a7.S",
8303    "src/qu8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a53.S",
8304    "src/qu8-gemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-ld64.S",
8305    "src/qu8-igemm/gen/1x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a7.S",
8306    "src/qu8-igemm/gen/1x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a7.S",
8307    "src/qu8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a7.S",
8308    "src/qu8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-cortex-a53.S",
8309    "src/qu8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-ld64.S",
8310    "src/qu8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a7.S",
8311    "src/qu8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-cortex-a53.S",
8312    "src/qu8-igemm/gen/4x8-minmax-rndnu-aarch32-neon-mlal-lane-prfm-ld64.S",
8313    "src/u32-filterbank-accumulate/aarch32-arm-x1.S",
8314    "src/u32-filterbank-accumulate/aarch32-neon-x1.S",
8315    "src/u32-filterbank-accumulate/aarch32-neon-x2.S",
8316]
8317
8318AARCH64_ASM_MICROKERNEL_SRCS = [
8319    "src/f16-gemm/gen-inc/1x8inc-minmax-aarch64-neonfp16arith-ld64.S",
8320    "src/f16-gemm/gen-inc/1x16inc-minmax-aarch64-neonfp16arith-ld32.S",
8321    "src/f16-gemm/gen-inc/4x8inc-minmax-aarch64-neonfp16arith-ld64.S",
8322    "src/f16-gemm/gen-inc/4x16inc-minmax-aarch64-neonfp16arith-ld32.S",
8323    "src/f16-gemm/gen-inc/6x8inc-minmax-aarch64-neonfp16arith-ld64.S",
8324    "src/f16-gemm/gen-inc/6x16inc-minmax-aarch64-neonfp16arith-cortex-a55.S",
8325    "src/f16-gemm/gen-inc/6x16inc-minmax-aarch64-neonfp16arith-cortex-a75.S",
8326    "src/f16-gemm/gen-inc/6x16inc-minmax-aarch64-neonfp16arith-ld32.S",
8327    "src/f16-gemm/gen-inc/8x8inc-minmax-aarch64-neonfp16arith-ld64.S",
8328    "src/f16-gemm/gen/1x8-minmax-aarch64-neonfp16arith-ld64.S",
8329    "src/f16-gemm/gen/1x16-minmax-aarch64-neonfp16arith-ld32.S",
8330    "src/f16-gemm/gen/1x16-minmax-aarch64-neonfp16arith-ld64.S",
8331    "src/f16-gemm/gen/4x8-minmax-aarch64-neonfp16arith-ld64.S",
8332    "src/f16-gemm/gen/4x16-minmax-aarch64-neonfp16arith-ld32.S",
8333    "src/f16-gemm/gen/4x16-minmax-aarch64-neonfp16arith-ld64.S",
8334    "src/f16-gemm/gen/6x8-minmax-aarch64-neonfp16arith-ld64.S",
8335    "src/f16-gemm/gen/6x16-minmax-aarch64-neonfp16arith-cortex-a55.S",
8336    "src/f16-gemm/gen/6x16-minmax-aarch64-neonfp16arith-cortex-a55r0.S",
8337    "src/f16-gemm/gen/6x16-minmax-aarch64-neonfp16arith-cortex-a75.S",
8338    "src/f16-gemm/gen/6x16-minmax-aarch64-neonfp16arith-ld32.S",
8339    "src/f16-gemm/gen/6x16-minmax-aarch64-neonfp16arith-ld64.S",
8340    "src/f16-gemm/gen/8x8-minmax-aarch64-neonfp16arith-ld64.S",
8341    "src/f16-igemm/1x16-minmax-aarch64-neonfp16arith-ld32.S",
8342    "src/f16-igemm/1x16-minmax-aarch64-neonfp16arith-ld64.S",
8343    "src/f16-igemm/4x16-minmax-aarch64-neonfp16arith-ld32.S",
8344    "src/f16-igemm/4x16-minmax-aarch64-neonfp16arith-ld64.S",
8345    "src/f16-igemm/6x16-minmax-aarch64-neonfp16arith-cortex-a55.S",
8346    "src/f16-igemm/6x16-minmax-aarch64-neonfp16arith-cortex-a55r0.S",
8347    "src/f16-igemm/6x16-minmax-aarch64-neonfp16arith-cortex-a75.S",
8348    "src/f16-igemm/6x16-minmax-aarch64-neonfp16arith-ld32.S",
8349    "src/f16-igemm/6x16-minmax-aarch64-neonfp16arith-ld64.S",
8350    "src/f32-dwconv/up4x9-minmax-aarch64-neonfma-cortex-a55.S",
8351    "src/f32-dwconv/up4x9-minmax-aarch64-neonfma.S",
8352    "src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a53.S",
8353    "src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-cortex-a75.S",
8354    "src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-ld64.S",
8355    "src/f32-gemm/gen-inc/1x8inc-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8356    "src/f32-gemm/gen-inc/1x12inc-minmax-aarch64-neonfma-cortex-a53.S",
8357    "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a53.S",
8358    "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a55.S",
8359    "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-cortex-a75.S",
8360    "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld64.S",
8361    "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-ld128.S",
8362    "src/f32-gemm/gen-inc/4x8inc-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8363    "src/f32-gemm/gen-inc/4x12inc-minmax-aarch64-neonfma-cortex-a53.S",
8364    "src/f32-gemm/gen-inc/5x8inc-minmax-aarch64-neonfma-cortex-a75.S",
8365    "src/f32-gemm/gen-inc/5x8inc-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8366    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a53.S",
8367    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a55.S",
8368    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a73.S",
8369    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-cortex-a75.S",
8370    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld64.S",
8371    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-ld128.S",
8372    "src/f32-gemm/gen-inc/6x8inc-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8373    "src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a53.S",
8374    "src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S",
8375    "src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-ld64.S",
8376    "src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-prfm-cortex-a53.S",
8377    "src/f32-gemm/gen/1x8-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8378    "src/f32-gemm/gen/1x12-minmax-aarch64-neonfma-cortex-a53.S",
8379    "src/f32-gemm/gen/4x2-minmax-aarch64-neonfma-cortex-a75.S",
8380    "src/f32-gemm/gen/4x2-minmax-aarch64-neonfma-ld64.S",
8381    "src/f32-gemm/gen/4x2-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8382    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a53.S",
8383    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a55.S",
8384    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-cortex-a75.S",
8385    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld64.S",
8386    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-ld128.S",
8387    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-prfm-cortex-a53.S",
8388    "src/f32-gemm/gen/4x8-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8389    "src/f32-gemm/gen/4x12-minmax-aarch64-neonfma-cortex-a53.S",
8390    "src/f32-gemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S",
8391    "src/f32-gemm/gen/5x8-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8392    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a53.S",
8393    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a55.S",
8394    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a73.S",
8395    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S",
8396    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld64.S",
8397    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-ld128.S",
8398    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-prfm-cortex-a53.S",
8399    "src/f32-gemm/gen/6x8-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8400    "src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a53.S",
8401    "src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-cortex-a75.S",
8402    "src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-prfm-cortex-a53.S",
8403    "src/f32-igemm/gen/1x8-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8404    "src/f32-igemm/gen/4x2-minmax-aarch64-neonfma-cortex-a75.S",
8405    "src/f32-igemm/gen/4x2-minmax-aarch64-neonfma-ld64.S",
8406    "src/f32-igemm/gen/4x2-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8407    "src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a53.S",
8408    "src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-cortex-a75.S",
8409    "src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-ld64.S",
8410    "src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-ld128.S",
8411    "src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-prfm-cortex-a53.S",
8412    "src/f32-igemm/gen/4x8-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8413    "src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-cortex-a75.S",
8414    "src/f32-igemm/gen/5x8-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8415    "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a53.S",
8416    "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-cortex-a75.S",
8417    "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-ld64.S",
8418    "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-ld128.S",
8419    "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-prfm-cortex-a53.S",
8420    "src/f32-igemm/gen/6x8-minmax-aarch64-neonfma-prfm-cortex-a75.S",
8421    "src/f32-igemm/1x12-minmax-aarch64-neonfma-cortex-a53.S",
8422    "src/f32-igemm/4x8-minmax-aarch64-neonfma-cortex-a55.S",
8423    "src/f32-igemm/4x12-minmax-aarch64-neonfma-cortex-a53.S",
8424    "src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a55.S",
8425    "src/f32-igemm/6x8-minmax-aarch64-neonfma-cortex-a73.S",
8426    "src/qc8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S",
8427    "src/qc8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S",
8428    "src/qc8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S",
8429    "src/qc8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal.S",
8430    "src/qc8-gemm/gen/1x16c4-minmax-fp32-aarch64-neondot-ld32.S",
8431    "src/qc8-gemm/gen/1x16c4-minmax-fp32-aarch64-neondot-ld64.S",
8432    "src/qc8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S",
8433    "src/qc8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S",
8434    "src/qc8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S",
8435    "src/qc8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal.S",
8436    "src/qc8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mull.S",
8437    "src/qc8-gemm/gen/2x8c16-minmax-fp32-aarch64-neon-mlal.S",
8438    "src/qc8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-cortex-a53.S",
8439    "src/qc8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-ld64.S",
8440    "src/qc8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-cortex-a53.S",
8441    "src/qc8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-ld64.S",
8442    "src/qc8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-cortex-a55.S",
8443    "src/qc8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld32.S",
8444    "src/qc8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld64.S",
8445    "src/qc8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld128.S",
8446    "src/qc8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S",
8447    "src/qc8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S",
8448    "src/qc8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S",
8449    "src/qc8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal.S",
8450    "src/qc8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S",
8451    "src/qc8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S",
8452    "src/qc8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S",
8453    "src/qc8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal.S",
8454    "src/qc8-igemm/gen/2x8c16-minmax-fp32-aarch64-neon-mlal.S",
8455    "src/qc8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-cortex-a53.S",
8456    "src/qc8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-ld64.S",
8457    "src/qc8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-cortex-a53.S",
8458    "src/qc8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-ld64.S",
8459    "src/qc8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-cortex-a55.S",
8460    "src/qc8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld64.S",
8461    "src/qc8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld128.S",
8462    "src/qs8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S",
8463    "src/qs8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S",
8464    "src/qs8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S",
8465    "src/qs8-gemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal.S",
8466    "src/qs8-gemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal-cortex-a53.S",
8467    "src/qs8-gemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal-prfm-cortex-a53.S",
8468    "src/qs8-gemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal-prfm.S",
8469    "src/qs8-gemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal.S",
8470    "src/qs8-gemm/gen/1x16c4-minmax-fp32-aarch64-neondot-ld32.S",
8471    "src/qs8-gemm/gen/1x16c4-minmax-fp32-aarch64-neondot-ld64.S",
8472    "src/qs8-gemm/gen/1x16c4-minmax-rndnu-aarch64-neondot-ld32.S",
8473    "src/qs8-gemm/gen/1x16c4-minmax-rndnu-aarch64-neondot-ld64.S",
8474    "src/qs8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S",
8475    "src/qs8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S",
8476    "src/qs8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S",
8477    "src/qs8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal.S",
8478    "src/qs8-gemm/gen/2x8c8-minmax-fp32-aarch64-neon-mull.S",
8479    "src/qs8-gemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal-cortex-a53.S",
8480    "src/qs8-gemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal-prfm-cortex-a53.S",
8481    "src/qs8-gemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal-prfm.S",
8482    "src/qs8-gemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal.S",
8483    "src/qs8-gemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mull.S",
8484    "src/qs8-gemm/gen/2x8c16-minmax-fp32-aarch64-neon-mlal.S",
8485    "src/qs8-gemm/gen/2x8c16-minmax-rndnu-aarch64-neon-mlal.S",
8486    "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch64-neon-mlal-lane-ld64.S",
8487    "src/qs8-gemm/gen/4x8-minmax-rndnu-aarch64-neon-mlal-lane-prfm-ld64.S",
8488    "src/qs8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-cortex-a53.S",
8489    "src/qs8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-ld64.S",
8490    "src/qs8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-cortex-a53.S",
8491    "src/qs8-gemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-ld64.S",
8492    "src/qs8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-cortex-a53.S",
8493    "src/qs8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-ld64.S",
8494    "src/qs8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-cortex-a53.S",
8495    "src/qs8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-ld64.S",
8496    "src/qs8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-cortex-a55.S",
8497    "src/qs8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld32.S",
8498    "src/qs8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld64.S",
8499    "src/qs8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld128.S",
8500    "src/qs8-gemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-cortex-a55.S",
8501    "src/qs8-gemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld32.S",
8502    "src/qs8-gemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld64.S",
8503    "src/qs8-gemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld128.S",
8504    "src/qs8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S",
8505    "src/qs8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S",
8506    "src/qs8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S",
8507    "src/qs8-igemm/gen/1x8c8-minmax-fp32-aarch64-neon-mlal.S",
8508    "src/qs8-igemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal-cortex-a53.S",
8509    "src/qs8-igemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal-prfm-cortex-a53.S",
8510    "src/qs8-igemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal-prfm.S",
8511    "src/qs8-igemm/gen/1x8c8-minmax-rndnu-aarch64-neon-mlal.S",
8512    "src/qs8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-cortex-a53.S",
8513    "src/qs8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm-cortex-a53.S",
8514    "src/qs8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal-prfm.S",
8515    "src/qs8-igemm/gen/2x8c8-minmax-fp32-aarch64-neon-mlal.S",
8516    "src/qs8-igemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal-cortex-a53.S",
8517    "src/qs8-igemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal-prfm-cortex-a53.S",
8518    "src/qs8-igemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal-prfm.S",
8519    "src/qs8-igemm/gen/2x8c8-minmax-rndnu-aarch64-neon-mlal.S",
8520    "src/qs8-igemm/gen/2x8c16-minmax-fp32-aarch64-neon-mlal.S",
8521    "src/qs8-igemm/gen/2x8c16-minmax-rndnu-aarch64-neon-mlal.S",
8522    "src/qs8-igemm/gen/4x8-minmax-rndnu-aarch64-neon-mlal-lane-ld64.S",
8523    "src/qs8-igemm/gen/4x8-minmax-rndnu-aarch64-neon-mlal-lane-prfm-ld64.S",
8524    "src/qs8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-cortex-a53.S",
8525    "src/qs8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-ld64.S",
8526    "src/qs8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-cortex-a53.S",
8527    "src/qs8-igemm/gen/4x16-minmax-fp32-aarch64-neon-mlal-lane-prfm-ld64.S",
8528    "src/qs8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-cortex-a53.S",
8529    "src/qs8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-ld64.S",
8530    "src/qs8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-cortex-a53.S",
8531    "src/qs8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-ld64.S",
8532    "src/qs8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-cortex-a55.S",
8533    "src/qs8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld64.S",
8534    "src/qs8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld128.S",
8535    "src/qs8-igemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-cortex-a55.S",
8536    "src/qs8-igemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld64.S",
8537    "src/qs8-igemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld128.S",
8538    "src/qu8-gemm/gen/4x8c4-minmax-rndnu-aarch64-neondot-cortex-a55.S",
8539    "src/qu8-gemm/gen/4x8c4-minmax-rndnu-aarch64-neondot-ld128.S",
8540    "src/qu8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-cortex-a53.S",
8541    "src/qu8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-cortex-a75.S",
8542    "src/qu8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-ld64.S",
8543    "src/qu8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-cortex-a53.S",
8544    "src/qu8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-cortex-a75.S",
8545    "src/qu8-gemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-ld64.S",
8546    "src/qu8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-cortex-a55.S",
8547    "src/qu8-gemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld128.S",
8548    "src/qu8-gemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-cortex-a55.S",
8549    "src/qu8-gemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld128.S",
8550    "src/qu8-igemm/gen/4x8c4-minmax-rndnu-aarch64-neondot-cortex-a55.S",
8551    "src/qu8-igemm/gen/4x8c4-minmax-rndnu-aarch64-neondot-ld128.S",
8552    "src/qu8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-cortex-a53.S",
8553    "src/qu8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-cortex-a75.S",
8554    "src/qu8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-ld64.S",
8555    "src/qu8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-cortex-a53.S",
8556    "src/qu8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-cortex-a75.S",
8557    "src/qu8-igemm/gen/4x16-minmax-rndnu-aarch64-neon-mlal-lane-prfm-ld64.S",
8558    "src/qu8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-cortex-a55.S",
8559    "src/qu8-igemm/gen/4x16c4-minmax-fp32-aarch64-neondot-ld128.S",
8560    "src/qu8-igemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-cortex-a55.S",
8561    "src/qu8-igemm/gen/4x16c4-minmax-rndnu-aarch64-neondot-ld128.S",
8562]
8563
8564JIT_AARCH32_SRCS = [
8565    "src/f32-gemm/4x8-aarch32-neon-cortex-a7.cc",
8566    "src/f32-gemm/4x8-aarch32-neon-cortex-a53.cc",
8567    "src/f32-gemm/4x8-aarch32-neon-cortex-a55.cc",
8568    "src/f32-gemm/4x8-aarch32-neon-cortex-a75.cc",
8569    "src/f32-gemm/4x8-aarch32-neon-ld64.cc",
8570    "src/f32-igemm/4x8-aarch32-neon-cortex-a7.cc",
8571    "src/f32-igemm/4x8-aarch32-neon-cortex-a53.cc",
8572    "src/f32-igemm/4x8-aarch32-neon-cortex-a55.cc",
8573    "src/f32-igemm/4x8-aarch32-neon-cortex-a75.cc",
8574    "src/f32-igemm/4x8-aarch32-neon-ld64.cc",
8575    "src/qc8-gemm/4x8-fp32-aarch32-neonv8-mlal-lane-ld64.cc",
8576    "src/qc8-gemm/4x8c4-fp32-aarch32-neondot-ld64.cc",
8577    "src/qc8-igemm/4x8-fp32-aarch32-neonv8-mlal-lane-ld64.cc",
8578    "src/qc8-igemm/4x8c4-fp32-aarch32-neondot-ld64.cc",
8579    "src/qs8-gemm/4x8-rndnu-aarch32-neon-mlal-lane-ld64.cc",
8580    "src/qs8-gemm/4x8c4-rndnu-aarch32-neondot-ld64.cc",
8581    "src/qs8-igemm/4x8-rndnu-aarch32-neon-mlal-lane-ld64.cc",
8582    "src/qs8-igemm/4x8c4-rndnu-aarch32-neondot-ld64.cc",
8583]
8584
8585JIT_AARCH64_SRCS = [
8586    "src/f32-gemm/upto6x8-aarch64-neonfma-cortex-a75.cc",
8587    "src/f32-gemm/1x8-aarch64-neonfma-cortex-a75.cc",
8588    "src/f32-gemm/4x8-aarch64-neonfma-cortex-a75.cc",
8589    "src/f32-gemm/6x8-aarch64-neonfma-ld128.cc",
8590    "src/f32-igemm/upto6x8-aarch64-neonfma-cortex-a75.cc",
8591    "src/f32-igemm/1x8-aarch64-neonfma-cortex-a75.cc",
8592    "src/f32-igemm/4x8-aarch64-neonfma-cortex-a75.cc",
8593    "src/f32-igemm/6x8-aarch64-neonfma-ld128.cc",
8594]
8595
8596MICROKERNEL_HDRS = [
8597    "src/xnnpack/argmaxpool.h",
8598    "src/xnnpack/avgpool.h",
8599    "src/xnnpack/conv.h",
8600    "src/xnnpack/dwconv.h",
8601    "src/xnnpack/fft.h",
8602    "src/xnnpack/fill.h",
8603    "src/xnnpack/filterbank.h",
8604    "src/xnnpack/gavgpool.h",
8605    "src/xnnpack/gemm.h",
8606    "src/xnnpack/ibilinear.h",
8607    "src/xnnpack/igemm.h",
8608    "src/xnnpack/lut.h",
8609    "src/xnnpack/maxpool.h",
8610    "src/xnnpack/packx.h",
8611    "src/xnnpack/pad.h",
8612    "src/xnnpack/pavgpool.h",
8613    "src/xnnpack/ppmm.h",
8614    "src/xnnpack/prelu.h",
8615    "src/xnnpack/raddexpminusmax.h",
8616    "src/xnnpack/raddextexp.h",
8617    "src/xnnpack/raddstoreexpminusmax.h",
8618    "src/xnnpack/rmax.h",
8619    "src/xnnpack/rmaxabs.h",
8620    "src/xnnpack/spmm.h",
8621    "src/xnnpack/transpose.h",
8622    "src/xnnpack/unpool.h",
8623    "src/xnnpack/vadd.h",
8624    "src/xnnpack/vbinary.h",
8625    "src/xnnpack/vcvt.h",
8626    "src/xnnpack/vlog.h",
8627    "src/xnnpack/vlrelu.h",
8628    "src/xnnpack/vlshift.h",
8629    "src/xnnpack/vmul.h",
8630    "src/xnnpack/vmulcaddc.h",
8631    "src/xnnpack/vscaleexpminusmax.h",
8632    "src/xnnpack/vscaleextexp.h",
8633    "src/xnnpack/vsquareabs.h",
8634    "src/xnnpack/vunary.h",
8635    "src/xnnpack/window.h",
8636    "src/xnnpack/zip.h",
8637]
8638
8639INTERNAL_MICROKERNEL_HDRS = MICROKERNEL_HDRS + [
8640    "src/xnnpack/cache.h",
8641    "src/xnnpack/intrinsics-polyfill.h",
8642    "src/xnnpack/math-stubs.h",
8643    "src/xnnpack/requantization-stubs.h",
8644]
8645
8646filegroup(
8647    name = "microkernel_source_files",
8648    data = ALL_SCALAR_MICROKERNEL_SRCS + ALL_WASM_MICROKERNEL_SRCS + ALL_WASMSIMD_MICROKERNEL_SRCS + ALL_WASMRELAXEDSIMD_MICROKERNEL_SRCS + ALL_ARMSIMD32_MICROKERNEL_SRCS + ALL_NEON_MICROKERNEL_SRCS + ALL_NEONFP16_MICROKERNEL_SRCS + ALL_NEONFMA_MICROKERNEL_SRCS + ALL_AARCH64_NEON_MICROKERNEL_SRCS + ALL_NEONV8_MICROKERNEL_SRCS + ALL_NEONFP16ARITH_MICROKERNEL_SRCS + ALL_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS + ALL_NEONBF16_MICROKERNEL_SRCS + ALL_AARCH64_NEONBF16_MICROKERNEL_SRCS + ALL_NEONDOT_MICROKERNEL_SRCS + ALL_SSE_MICROKERNEL_SRCS + ALL_SSE2_MICROKERNEL_SRCS + ALL_SSSE3_MICROKERNEL_SRCS + ALL_SSE41_MICROKERNEL_SRCS + ALL_AVX_MICROKERNEL_SRCS + ALL_F16C_MICROKERNEL_SRCS + ALL_XOP_MICROKERNEL_SRCS + ALL_FMA3_MICROKERNEL_SRCS + ALL_AVX2_MICROKERNEL_SRCS + ALL_AVX512F_MICROKERNEL_SRCS + ALL_AVX512SKX_MICROKERNEL_SRCS + WASM32_ASM_MICROKERNEL_SRCS + AARCH32_ASM_MICROKERNEL_SRCS + AARCH64_ASM_MICROKERNEL_SRCS + ["src/microparams-init.c"],
8649    visibility = xnnpack_visibility(),
8650)
8651
8652filegroup(
8653    name = "microkernel_header_files",
8654    data = MICROKERNEL_HDRS + ["src/xnnpack/microparams.h"],
8655    visibility = xnnpack_visibility(),
8656)
8657
8658# Collection of internal microkernel related headers that declares all the microkernel functions.
8659xnnpack_cc_library(
8660    name = "microkernels_h",
8661    hdrs = INTERNAL_MICROKERNEL_HDRS,
8662    gcc_copts = xnnpack_gcc_std_copts(),
8663    msvc_copts = xnnpack_msvc_std_copts(),
8664)
8665
8666xnnpack_cc_library(
8667    name = "xnnpack_h",
8668    hdrs = ["include/xnnpack.h"],
8669    gcc_copts = xnnpack_gcc_std_copts(),
8670    msvc_copts = xnnpack_msvc_std_copts(),
8671    deps = [
8672        "@pthreadpool",
8673    ],
8674)
8675
8676xnnpack_cc_library(
8677    name = "common",
8678    hdrs = ["src/xnnpack/common.h"],
8679    gcc_copts = xnnpack_gcc_std_copts(),
8680    msvc_copts = xnnpack_msvc_std_copts(),
8681)
8682
8683xnnpack_cc_library(
8684    name = "microparams",
8685    hdrs = [
8686        "src/xnnpack/microparams.h",
8687    ],
8688    gcc_copts = xnnpack_gcc_std_copts(),
8689    msvc_copts = xnnpack_msvc_std_copts(),
8690    deps = [
8691        ":common",
8692    ],
8693)
8694
8695xnnpack_cc_library(
8696    name = "params",
8697    srcs = ["src/params.c"],
8698    hdrs = [
8699        "src/xnnpack/microfnptr.h",
8700        "src/xnnpack/params.h",
8701    ],
8702    gcc_copts = xnnpack_gcc_std_copts(),
8703    msvc_copts = xnnpack_msvc_std_copts(),
8704    deps = [
8705        ":common",
8706        ":microparams",
8707        ":xnnpack_h",
8708    ],
8709)
8710
8711xnnpack_cc_library(
8712    name = "math",
8713    hdrs = ["src/xnnpack/math.h"],
8714    gcc_copts = xnnpack_gcc_std_copts(),
8715    msvc_copts = xnnpack_msvc_std_copts(),
8716    deps = [
8717        ":common",
8718    ],
8719)
8720
8721xnnpack_cc_library(
8722    name = "unaligned",
8723    hdrs = ["src/xnnpack/unaligned.h"],
8724    gcc_copts = xnnpack_gcc_std_copts(),
8725    msvc_copts = xnnpack_msvc_std_copts(),
8726    deps = [
8727        ":common",
8728    ],
8729)
8730
8731xnnpack_cc_library(
8732    name = "microparams_init",
8733    srcs = ["src/microparams-init.c"],
8734    hdrs = ["src/xnnpack/microparams-init.h"],
8735    gcc_copts = xnnpack_gcc_std_copts(),
8736    msvc_copts = xnnpack_msvc_std_copts(),
8737    deps = [
8738        ":common",
8739        ":math",
8740        ":microparams",
8741        ":unaligned",
8742        ":xnnpack_h",
8743        "@FP16",
8744    ],
8745)
8746
8747xnnpack_cc_library(
8748    name = "node_type",
8749    hdrs = ["src/xnnpack/node-type.h"],
8750    gcc_copts = xnnpack_gcc_std_copts(),
8751    msvc_copts = xnnpack_msvc_std_copts(),
8752)
8753
8754xnnpack_cc_library(
8755    name = "operator_type",
8756    hdrs = ["src/xnnpack/operator-type.h"],
8757    gcc_copts = xnnpack_gcc_std_copts(),
8758    msvc_copts = xnnpack_msvc_std_copts(),
8759)
8760
8761xnnpack_cc_library(
8762    name = "ukernel_type",
8763    hdrs = ["src/xnnpack/ukernel-type.h"],
8764    gcc_copts = xnnpack_gcc_std_copts(),
8765    msvc_copts = xnnpack_msvc_std_copts(),
8766)
8767
8768xnnpack_cc_library(
8769    name = "allocator",
8770    srcs = [
8771        "src/allocator.c",
8772        "src/memory.c",
8773    ],
8774    hdrs = ["src/xnnpack/allocator.h"],
8775    # Do not use xnnpack_gcc_std_copts, as it defines -std=c99, which then makes MAP_ANONYMOUS undefined
8776    msvc_copts = xnnpack_msvc_std_copts(),
8777    deps = [
8778        ":common",
8779        ":logging",
8780        ":math",
8781        ":params",
8782        ":xnnpack_h",
8783    ],
8784)
8785
8786xnnpack_cc_library(
8787    name = "aligned_allocator",
8788    hdrs = [
8789        "src/xnnpack/aligned-allocator.h",
8790    ],
8791    gcc_copts = xnnpack_gcc_std_copts(),
8792    msvc_copts = xnnpack_msvc_std_copts(),
8793)
8794
8795xnnpack_cc_library(
8796    name = "isa_checks",
8797    hdrs = [
8798        "src/xnnpack/isa-checks.h",
8799    ],
8800    gcc_copts = xnnpack_gcc_std_copts(),
8801    msvc_copts = xnnpack_msvc_std_copts(),
8802    deps = [
8803        ":common",
8804        "@cpuinfo",
8805    ],
8806)
8807
8808xnnpack_cc_library(
8809    name = "math_stubs",
8810    hdrs = [
8811        "src/xnnpack/math-stubs.h",
8812    ],
8813    gcc_copts = xnnpack_gcc_std_copts(),
8814    msvc_copts = xnnpack_msvc_std_copts(),
8815)
8816
8817xnnpack_cc_library(
8818    name = "requantization",
8819    hdrs = ["src/xnnpack/requantization.h"],
8820    gcc_copts = xnnpack_gcc_std_copts(),
8821    msvc_copts = xnnpack_msvc_std_copts(),
8822    deps = [
8823        ":common",
8824        ":math",
8825        ":microparams",
8826    ],
8827)
8828
8829xnnpack_cc_library(
8830    name = "requantization_stubs",
8831    hdrs = ["src/xnnpack/requantization-stubs.h"],
8832    gcc_copts = xnnpack_gcc_std_copts(),
8833    msvc_copts = xnnpack_msvc_std_copts(),
8834)
8835
8836xnnpack_cc_library(
8837    name = "tables",
8838    srcs = TABLE_SRCS,
8839    gcc_copts = xnnpack_gcc_std_copts(),
8840    msvc_copts = xnnpack_msvc_std_copts(),
8841    deps = [
8842        ":common",
8843    ],
8844)
8845
8846xnnpack_cc_library(
8847    name = "scalar_bench_microkernels",
8848    srcs = ALL_SCALAR_MICROKERNEL_SRCS,
8849    aarch32_copts = ["-marm"],
8850    gcc_copts = xnnpack_gcc_std_copts() + [
8851        "-fno-fast-math",
8852        "-fno-math-errno",
8853    ],
8854    msvc_copts = xnnpack_msvc_std_copts(),
8855    deps = [
8856        ":common",
8857        ":math",
8858        ":microkernels_h",
8859        ":microparams",
8860        ":tables",
8861        ":unaligned",
8862        "@FXdiv",
8863    ],
8864)
8865
8866xnnpack_cc_library(
8867    name = "scalar_prod_microkernels",
8868    srcs = PROD_SCALAR_PORTABLE_MICROKERNEL_SRCS,
8869    aarch32_copts = ["-marm"],
8870    aarch32_srcs = PROD_SCALAR_AARCH32_MICROKERNEL_SRCS,
8871    gcc_copts = xnnpack_gcc_std_copts() + [
8872        "-fno-fast-math",
8873        "-fno-math-errno",
8874    ],
8875    msvc_copts = xnnpack_msvc_std_copts(),
8876    riscv_srcs = PROD_SCALAR_RISCV_MICROKERNEL_SRCS,
8877    wasm_srcs = PROD_SCALAR_WASM_MICROKERNEL_SRCS,
8878    wasmrelaxedsimd_srcs = PROD_SCALAR_WASM_MICROKERNEL_SRCS,
8879    wasmsimd_srcs = PROD_SCALAR_WASM_MICROKERNEL_SRCS,
8880    deps = [
8881        ":common",
8882        ":math",
8883        ":microkernels_h",
8884        ":microparams",
8885        ":tables",
8886        ":unaligned",
8887        "@FXdiv",
8888    ],
8889)
8890
8891xnnpack_cc_library(
8892    name = "scalar_test_microkernels",
8893    srcs = ALL_SCALAR_MICROKERNEL_SRCS,
8894    aarch32_copts = ["-marm"],
8895    copts = [
8896        "-UNDEBUG",
8897        "-DXNN_TEST_MODE=1",
8898    ],
8899    gcc_copts = xnnpack_gcc_std_copts() + [
8900        "-fno-fast-math",
8901        "-fno-math-errno",
8902    ],
8903    msvc_copts = xnnpack_msvc_std_copts(),
8904    deps = [
8905        ":common",
8906        ":math",
8907        ":microkernels_h",
8908        ":microparams",
8909        ":tables",
8910        ":unaligned",
8911        "@FXdiv",
8912    ],
8913)
8914
8915xnnpack_cc_library(
8916    name = "wasm_bench_microkernels",
8917    gcc_copts = xnnpack_gcc_std_copts() + [
8918        "-fno-fast-math",
8919        "-fno-math-errno",
8920    ],
8921    msvc_copts = xnnpack_msvc_std_copts(),
8922    wasm_srcs = ALL_WASM_MICROKERNEL_SRCS,
8923    wasmrelaxedsimd_srcs = ALL_WASM_MICROKERNEL_SRCS + ALL_WASMSIMD_MICROKERNEL_SRCS + ALL_WASMRELAXEDSIMD_MICROKERNEL_SRCS,
8924    wasmsimd_srcs = ALL_WASM_MICROKERNEL_SRCS + ALL_WASMSIMD_MICROKERNEL_SRCS,
8925    deps = [
8926        ":common",
8927        ":math",
8928        ":microkernels_h",
8929        ":microparams",
8930        ":tables",
8931        ":unaligned",
8932    ],
8933)
8934
8935xnnpack_cc_library(
8936    name = "wasm_prod_microkernels",
8937    gcc_copts = xnnpack_gcc_std_copts() + [
8938        "-fno-fast-math",
8939        "-fno-math-errno",
8940    ],
8941    msvc_copts = xnnpack_msvc_std_copts(),
8942    wasm_srcs = ALL_WASM_MICROKERNEL_SRCS,
8943    wasmrelaxedsimd_srcs = ALL_WASM_MICROKERNEL_SRCS + ALL_WASMSIMD_MICROKERNEL_SRCS + ALL_WASMRELAXEDSIMD_MICROKERNEL_SRCS,
8944    wasmsimd_srcs = ALL_WASM_MICROKERNEL_SRCS + ALL_WASMSIMD_MICROKERNEL_SRCS,
8945    deps = [
8946        ":common",
8947        ":math",
8948        ":microkernels_h",
8949        ":microparams",
8950        ":tables",
8951        ":unaligned",
8952    ],
8953)
8954
8955xnnpack_cc_library(
8956    name = "wasm_test_microkernels",
8957    copts = [
8958        "-UNDEBUG",
8959        "-DXNN_TEST_MODE=1",
8960    ],
8961    gcc_copts = xnnpack_gcc_std_copts() + [
8962        "-fno-fast-math",
8963        "-fno-math-errno",
8964    ],
8965    msvc_copts = xnnpack_msvc_std_copts(),
8966    wasm_srcs = ALL_WASM_MICROKERNEL_SRCS,
8967    wasmrelaxedsimd_srcs = ALL_WASM_MICROKERNEL_SRCS + ALL_WASMSIMD_MICROKERNEL_SRCS + ALL_WASMRELAXEDSIMD_MICROKERNEL_SRCS,
8968    wasmsimd_srcs = ALL_WASM_MICROKERNEL_SRCS + ALL_WASMSIMD_MICROKERNEL_SRCS,
8969    deps = [
8970        ":common",
8971        ":math",
8972        ":microkernels_h",
8973        ":microparams",
8974        ":tables",
8975        ":unaligned",
8976    ],
8977)
8978
8979xnnpack_cc_library(
8980    name = "armsimd32_bench_microkernels",
8981    aarch32_copts = [
8982        "-marm",
8983        "-march=armv6",
8984        "-mfpu=vfp",
8985        "-munaligned-access",
8986    ],
8987    aarch32_srcs = ALL_ARMSIMD32_MICROKERNEL_SRCS,
8988    gcc_copts = xnnpack_gcc_std_copts() + [
8989        "-fno-fast-math",
8990        "-fno-math-errno",
8991    ],
8992    msvc_copts = xnnpack_msvc_std_copts(),
8993    deps = [
8994        ":common",
8995        ":math",
8996        ":microkernels_h",
8997        ":microparams",
8998        ":tables",
8999        ":unaligned",
9000    ],
9001)
9002
9003xnnpack_cc_library(
9004    name = "armsimd32_prod_microkernels",
9005    aarch32_copts = [
9006        "-marm",
9007        "-march=armv6",
9008        "-mfpu=vfp",
9009        "-munaligned-access",
9010    ],
9011    aarch32_srcs = PROD_ARMSIMD32_MICROKERNEL_SRCS,
9012    gcc_copts = xnnpack_gcc_std_copts() + [
9013        "-fno-fast-math",
9014        "-fno-math-errno",
9015    ],
9016    msvc_copts = xnnpack_msvc_std_copts(),
9017    riscv_srcs = PROD_SCALAR_RISCV_MICROKERNEL_SRCS,
9018    wasm_srcs = PROD_SCALAR_WASM_MICROKERNEL_SRCS,
9019    wasmrelaxedsimd_srcs = PROD_SCALAR_WASM_MICROKERNEL_SRCS,
9020    wasmsimd_srcs = PROD_SCALAR_WASM_MICROKERNEL_SRCS,
9021    deps = [
9022        ":common",
9023        ":math",
9024        ":microkernels_h",
9025        ":microparams",
9026        ":tables",
9027        ":unaligned",
9028    ],
9029)
9030
9031xnnpack_cc_library(
9032    name = "armsimd32_test_microkernels",
9033    aarch32_copts = [
9034        "-marm",
9035        "-march=armv6",
9036        "-mfpu=vfp",
9037        "-munaligned-access",
9038    ],
9039    aarch32_srcs = ALL_ARMSIMD32_MICROKERNEL_SRCS,
9040    copts = [
9041        "-UNDEBUG",
9042        "-DXNN_TEST_MODE=1",
9043    ],
9044    gcc_copts = xnnpack_gcc_std_copts() + [
9045        "-fno-fast-math",
9046        "-fno-math-errno",
9047    ],
9048    msvc_copts = xnnpack_msvc_std_copts(),
9049    deps = [
9050        ":common",
9051        ":math",
9052        ":microkernels_h",
9053        ":microparams",
9054        ":tables",
9055        ":unaligned",
9056    ],
9057)
9058
9059xnnpack_cc_library(
9060    name = "neon_bench_microkernels",
9061    aarch32_copts = [
9062        "-marm",
9063        "-march=armv7-a",
9064        "-mfpu=neon",
9065    ],
9066    aarch32_srcs = ALL_NEON_MICROKERNEL_SRCS,
9067    aarch64_srcs = ALL_NEON_MICROKERNEL_SRCS + ALL_AARCH64_NEON_MICROKERNEL_SRCS,
9068    gcc_copts = xnnpack_gcc_std_copts(),
9069    msvc_copts = xnnpack_msvc_std_copts(),
9070    deps = [
9071        ":common",
9072        ":math",
9073        ":microkernels_h",
9074        ":microparams",
9075        ":tables",
9076        ":unaligned",
9077    ],
9078)
9079
9080xnnpack_cc_library(
9081    name = "neon_prod_microkernels",
9082    aarch32_copts = [
9083        "-marm",
9084        "-march=armv7-a",
9085        "-mfpu=neon",
9086    ],
9087    aarch32_srcs = PROD_NEON_MICROKERNEL_SRCS,
9088    aarch64_srcs = PROD_NEON_MICROKERNEL_SRCS + PROD_AARCH64_NEON_MICROKERNEL_SRCS,
9089    gcc_copts = xnnpack_gcc_std_copts(),
9090    msvc_copts = xnnpack_msvc_std_copts(),
9091    deps = [
9092        ":common",
9093        ":math",
9094        ":microkernels_h",
9095        ":microparams",
9096        ":tables",
9097        ":unaligned",
9098    ],
9099)
9100
9101xnnpack_cc_library(
9102    name = "neon_test_microkernels",
9103    aarch32_copts = [
9104        "-marm",
9105        "-march=armv7-a",
9106        "-mfpu=neon",
9107    ],
9108    aarch32_srcs = ALL_NEON_MICROKERNEL_SRCS,
9109    aarch64_srcs = ALL_NEON_MICROKERNEL_SRCS + ALL_AARCH64_NEON_MICROKERNEL_SRCS,
9110    copts = [
9111        "-UNDEBUG",
9112        "-DXNN_TEST_MODE=1",
9113    ],
9114    gcc_copts = xnnpack_gcc_std_copts(),
9115    msvc_copts = xnnpack_msvc_std_copts(),
9116    deps = [
9117        ":common",
9118        ":math",
9119        ":microkernels_h",
9120        ":microparams",
9121        ":tables",
9122        ":unaligned",
9123    ],
9124)
9125
9126xnnpack_cc_library(
9127    name = "neonfp16_bench_microkernels",
9128    aarch32_copts = [
9129        "-marm",
9130        "-march=armv7-a",
9131        "-mfpu=neon-fp16",
9132    ],
9133    aarch32_srcs = ALL_NEONFP16_MICROKERNEL_SRCS,
9134    aarch64_srcs = ALL_NEONFP16_MICROKERNEL_SRCS,
9135    gcc_copts = xnnpack_gcc_std_copts(),
9136    msvc_copts = xnnpack_msvc_std_copts(),
9137    deps = [
9138        ":common",
9139        ":math",
9140        ":microkernels_h",
9141        ":microparams",
9142        ":tables",
9143        ":unaligned",
9144    ],
9145)
9146
9147xnnpack_cc_library(
9148    name = "neonfp16_prod_microkernels",
9149    aarch32_copts = [
9150        "-marm",
9151        "-march=armv7-a",
9152        "-mfpu=neon-fp16",
9153    ],
9154    aarch32_srcs = PROD_NEONFP16_MICROKERNEL_SRCS,
9155    aarch64_srcs = PROD_NEONFP16_MICROKERNEL_SRCS,
9156    gcc_copts = xnnpack_gcc_std_copts(),
9157    msvc_copts = xnnpack_msvc_std_copts(),
9158    deps = [
9159        ":common",
9160        ":math",
9161        ":microkernels_h",
9162        ":microparams",
9163        ":tables",
9164        ":unaligned",
9165    ],
9166)
9167
9168xnnpack_cc_library(
9169    name = "neonfp16_test_microkernels",
9170    aarch32_copts = [
9171        "-marm",
9172        "-march=armv7-a",
9173        "-mfpu=neon-fp16",
9174    ],
9175    aarch32_srcs = ALL_NEONFP16_MICROKERNEL_SRCS,
9176    aarch64_srcs = ALL_NEONFP16_MICROKERNEL_SRCS,
9177    copts = [
9178        "-UNDEBUG",
9179        "-DXNN_TEST_MODE=1",
9180    ],
9181    gcc_copts = xnnpack_gcc_std_copts(),
9182    msvc_copts = xnnpack_msvc_std_copts(),
9183    deps = [
9184        ":common",
9185        ":math",
9186        ":microkernels_h",
9187        ":microparams",
9188        ":tables",
9189        ":unaligned",
9190    ],
9191)
9192
9193xnnpack_cc_library(
9194    name = "neonfma_bench_microkernels",
9195    aarch32_copts = [
9196        "-marm",
9197        "-march=armv7-a",
9198        "-mfpu=neon-vfpv4",
9199    ],
9200    aarch32_srcs = ALL_NEONFMA_MICROKERNEL_SRCS,
9201    aarch64_srcs = ALL_NEONFMA_MICROKERNEL_SRCS,
9202    gcc_copts = xnnpack_gcc_std_copts(),
9203    msvc_copts = xnnpack_msvc_std_copts(),
9204    deps = [
9205        ":common",
9206        ":math",
9207        ":microkernels_h",
9208        ":microparams",
9209        ":tables",
9210        ":unaligned",
9211    ],
9212)
9213
9214xnnpack_cc_library(
9215    name = "neonfma_prod_microkernels",
9216    aarch32_copts = [
9217        "-marm",
9218        "-march=armv7-a",
9219        "-mfpu=neon-vfpv4",
9220    ],
9221    aarch32_srcs = PROD_NEONFMA_MICROKERNEL_SRCS,
9222    aarch64_srcs = PROD_NEONFMA_MICROKERNEL_SRCS,
9223    gcc_copts = xnnpack_gcc_std_copts(),
9224    msvc_copts = xnnpack_msvc_std_copts(),
9225    deps = [
9226        ":common",
9227        ":math",
9228        ":microkernels_h",
9229        ":microparams",
9230        ":tables",
9231        ":unaligned",
9232    ],
9233)
9234
9235xnnpack_cc_library(
9236    name = "neonfma_test_microkernels",
9237    aarch32_copts = [
9238        "-marm",
9239        "-march=armv7-a",
9240        "-mfpu=neon-vfpv4",
9241    ],
9242    aarch32_srcs = ALL_NEONFMA_MICROKERNEL_SRCS,
9243    aarch64_srcs = ALL_NEONFMA_MICROKERNEL_SRCS,
9244    copts = [
9245        "-UNDEBUG",
9246        "-DXNN_TEST_MODE=1",
9247    ],
9248    gcc_copts = xnnpack_gcc_std_copts(),
9249    msvc_copts = xnnpack_msvc_std_copts(),
9250    deps = [
9251        ":common",
9252        ":math",
9253        ":microkernels_h",
9254        ":microparams",
9255        ":tables",
9256        ":unaligned",
9257    ],
9258)
9259
9260xnnpack_cc_library(
9261    name = "neonv8_bench_microkernels",
9262    aarch32_copts = [
9263        "-marm",
9264        "-march=armv8-a",
9265        "-mfpu=neon-fp-armv8",
9266    ],
9267    aarch32_srcs = ALL_NEONV8_MICROKERNEL_SRCS,
9268    aarch64_srcs = ALL_NEONV8_MICROKERNEL_SRCS,
9269    gcc_copts = xnnpack_gcc_std_copts(),
9270    msvc_copts = xnnpack_msvc_std_copts(),
9271    deps = [
9272        ":common",
9273        ":math",
9274        ":microkernels_h",
9275        ":microparams",
9276        ":tables",
9277        ":unaligned",
9278    ],
9279)
9280
9281xnnpack_cc_library(
9282    name = "neonv8_prod_microkernels",
9283    aarch32_copts = [
9284        "-marm",
9285        "-march=armv8-a",
9286        "-mfpu=neon-fp-armv8",
9287    ],
9288    aarch32_srcs = PROD_NEONV8_MICROKERNEL_SRCS,
9289    aarch64_srcs = PROD_NEONV8_MICROKERNEL_SRCS,
9290    gcc_copts = xnnpack_gcc_std_copts(),
9291    msvc_copts = xnnpack_msvc_std_copts(),
9292    deps = [
9293        ":common",
9294        ":math",
9295        ":microkernels_h",
9296        ":microparams",
9297        ":tables",
9298        ":unaligned",
9299    ],
9300)
9301
9302xnnpack_cc_library(
9303    name = "neonv8_test_microkernels",
9304    aarch32_copts = [
9305        "-marm",
9306        "-march=armv8-a",
9307        "-mfpu=neon-fp-armv8",
9308    ],
9309    aarch32_srcs = ALL_NEONV8_MICROKERNEL_SRCS,
9310    aarch64_srcs = ALL_NEONV8_MICROKERNEL_SRCS,
9311    copts = [
9312        "-UNDEBUG",
9313        "-DXNN_TEST_MODE=1",
9314    ],
9315    gcc_copts = xnnpack_gcc_std_copts(),
9316    msvc_copts = xnnpack_msvc_std_copts(),
9317    deps = [
9318        ":common",
9319        ":math",
9320        ":microkernels_h",
9321        ":microparams",
9322        ":tables",
9323        ":unaligned",
9324    ],
9325)
9326
9327xnnpack_cc_library(
9328    name = "neonfp16arith_bench_microkernels",
9329    aarch32_copts = [
9330        "-marm",
9331        "-march=armv8.2-a+fp16",
9332        "-mfpu=neon-fp-armv8",
9333    ],
9334    aarch32_srcs = ALL_NEONFP16ARITH_MICROKERNEL_SRCS,
9335    aarch64_copts = ["-march=armv8.2-a+fp16"],
9336    aarch64_srcs = ALL_NEONFP16ARITH_MICROKERNEL_SRCS + ALL_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS,
9337    gcc_copts = xnnpack_gcc_std_copts(),
9338    msvc_copts = xnnpack_msvc_std_copts(),
9339    deps = [
9340        ":common",
9341        ":math",
9342        ":microkernels_h",
9343        ":microparams",
9344        ":tables",
9345        ":unaligned",
9346    ],
9347)
9348
9349xnnpack_cc_library(
9350    name = "neonfp16arith_prod_microkernels",
9351    aarch32_copts = [
9352        "-marm",
9353        "-march=armv8.2-a+fp16",
9354        "-mfpu=neon-fp-armv8",
9355    ],
9356    aarch32_srcs = PROD_NEONFP16ARITH_MICROKERNEL_SRCS,
9357    aarch64_copts = ["-march=armv8.2-a+fp16"],
9358    aarch64_srcs = PROD_NEONFP16ARITH_MICROKERNEL_SRCS + PROD_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS,
9359    gcc_copts = xnnpack_gcc_std_copts(),
9360    msvc_copts = xnnpack_msvc_std_copts(),
9361    deps = [
9362        ":common",
9363        ":math",
9364        ":microkernels_h",
9365        ":microparams",
9366        ":tables",
9367        ":unaligned",
9368    ],
9369)
9370
9371xnnpack_cc_library(
9372    name = "neonfp16arith_test_microkernels",
9373    aarch32_copts = [
9374        "-marm",
9375        "-march=armv8.2-a+fp16",
9376        "-mfpu=neon-fp-armv8",
9377    ],
9378    aarch32_srcs = ALL_NEONFP16ARITH_MICROKERNEL_SRCS,
9379    aarch64_copts = ["-march=armv8.2-a+fp16"],
9380    aarch64_srcs = ALL_NEONFP16ARITH_MICROKERNEL_SRCS + ALL_AARCH64_NEONFP16ARITH_MICROKERNEL_SRCS,
9381    copts = [
9382        "-UNDEBUG",
9383        "-DXNN_TEST_MODE=1",
9384    ],
9385    gcc_copts = xnnpack_gcc_std_copts(),
9386    msvc_copts = xnnpack_msvc_std_copts(),
9387    deps = [
9388        ":common",
9389        ":math",
9390        ":microkernels_h",
9391        ":microparams",
9392        ":tables",
9393        ":unaligned",
9394    ],
9395)
9396
9397xnnpack_cc_library(
9398    name = "neonbf16_bench_microkernels",
9399    aarch32_copts = [
9400        "-marm",
9401        "-march=armv8.2-a+bf16",
9402        "-mfpu=neon-fp-armv8",
9403    ],
9404    aarch32_srcs = ALL_NEONBF16_MICROKERNEL_SRCS,
9405    aarch64_copts = ["-march=armv8.2-a+bf16"],
9406    aarch64_srcs = ALL_NEONBF16_MICROKERNEL_SRCS + ALL_AARCH64_NEONBF16_MICROKERNEL_SRCS,
9407    gcc_copts = xnnpack_gcc_std_copts(),
9408    msvc_copts = xnnpack_msvc_std_copts(),
9409    deps = [
9410        ":common",
9411        ":math",
9412        ":microkernels_h",
9413        ":params",
9414        ":tables",
9415        ":unaligned",
9416    ],
9417)
9418
9419xnnpack_cc_library(
9420    name = "neonbf16_prod_microkernels",
9421    aarch32_copts = [
9422        "-marm",
9423        "-march=armv8.2-a+bf16",
9424        "-mfpu=neon-fp-armv8",
9425    ],
9426    aarch32_srcs = PROD_NEONBF16_MICROKERNEL_SRCS,
9427    aarch64_copts = ["-march=armv8.2-a+bf16"],
9428    aarch64_srcs = PROD_NEONBF16_MICROKERNEL_SRCS + PROD_AARCH64_NEONBF16_MICROKERNEL_SRCS,
9429    gcc_copts = xnnpack_gcc_std_copts(),
9430    msvc_copts = xnnpack_msvc_std_copts(),
9431    deps = [
9432        ":common",
9433        ":math",
9434        ":microkernels_h",
9435        ":params",
9436        ":tables",
9437        ":unaligned",
9438    ],
9439)
9440
9441xnnpack_cc_library(
9442    name = "neonbf16_test_microkernels",
9443    aarch32_copts = [
9444        "-marm",
9445        "-march=armv8.2-a+bf16",
9446        "-mfpu=neon-fp-armv8",
9447    ],
9448    aarch32_srcs = ALL_NEONBF16_MICROKERNEL_SRCS,
9449    aarch64_copts = ["-march=armv8.2-a+bf16"],
9450    aarch64_srcs = ALL_NEONBF16_MICROKERNEL_SRCS + ALL_AARCH64_NEONBF16_MICROKERNEL_SRCS,
9451    copts = [
9452        "-UNDEBUG",
9453        "-DXNN_TEST_MODE=1",
9454    ],
9455    gcc_copts = xnnpack_gcc_std_copts(),
9456    msvc_copts = xnnpack_msvc_std_copts(),
9457    deps = [
9458        ":common",
9459        ":math",
9460        ":microkernels_h",
9461        ":params",
9462        ":tables",
9463        ":unaligned",
9464    ],
9465)
9466
9467xnnpack_cc_library(
9468    name = "neondot_bench_microkernels",
9469    aarch32_copts = [
9470        "-marm",
9471        "-march=armv8.2-a+dotprod",
9472        "-mfpu=neon-fp-armv8",
9473    ],
9474    aarch32_srcs = ALL_NEONDOT_MICROKERNEL_SRCS,
9475    aarch64_copts = ["-march=armv8.2-a+dotprod"],
9476    aarch64_srcs = ALL_NEONDOT_MICROKERNEL_SRCS,
9477    gcc_copts = xnnpack_gcc_std_copts(),
9478    msvc_copts = xnnpack_msvc_std_copts(),
9479    deps = [
9480        ":common",
9481        ":math",
9482        ":microkernels_h",
9483        ":microparams",
9484        ":tables",
9485        ":unaligned",
9486    ],
9487)
9488
9489xnnpack_cc_library(
9490    name = "neondot_prod_microkernels",
9491    aarch32_copts = [
9492        "-marm",
9493        "-march=armv8.2-a+dotprod",
9494        "-mfpu=neon-fp-armv8",
9495    ],
9496    aarch32_srcs = PROD_NEONDOT_MICROKERNEL_SRCS,
9497    aarch64_copts = ["-march=armv8.2-a+dotprod"],
9498    aarch64_srcs = PROD_NEONDOT_MICROKERNEL_SRCS,
9499    gcc_copts = xnnpack_gcc_std_copts(),
9500    msvc_copts = xnnpack_msvc_std_copts(),
9501    deps = [
9502        ":common",
9503        ":math",
9504        ":microkernels_h",
9505        ":microparams",
9506        ":tables",
9507        ":unaligned",
9508    ],
9509)
9510
9511xnnpack_cc_library(
9512    name = "neondot_test_microkernels",
9513    aarch32_copts = [
9514        "-marm",
9515        "-march=armv8.2-a+dotprod",
9516        "-mfpu=neon-fp-armv8",
9517    ],
9518    aarch32_srcs = ALL_NEONDOT_MICROKERNEL_SRCS,
9519    aarch64_copts = ["-march=armv8.2-a+dotprod"],
9520    aarch64_srcs = ALL_NEONDOT_MICROKERNEL_SRCS,
9521    copts = [
9522        "-UNDEBUG",
9523        "-DXNN_TEST_MODE=1",
9524    ],
9525    gcc_copts = xnnpack_gcc_std_copts(),
9526    msvc_copts = xnnpack_msvc_std_copts(),
9527    deps = [
9528        ":common",
9529        ":math",
9530        ":microkernels_h",
9531        ":microparams",
9532        ":tables",
9533        ":unaligned",
9534    ],
9535)
9536
9537xnnpack_cc_library(
9538    name = "sse2_amalgam_microkernels",
9539    gcc_copts = xnnpack_gcc_std_copts(),
9540    gcc_x86_copts = ["-msse2"],
9541    msvc_copts = xnnpack_msvc_std_copts(),
9542    msvc_x86_32_copts = ["/arch:SSE2"],
9543    x86_srcs = [
9544        "src/amalgam/sse.c",
9545        "src/amalgam/sse2.c",
9546    ],
9547    deps = [
9548        ":common",
9549        ":math",
9550        ":microkernels_h",
9551        ":microparams",
9552        ":tables",
9553        ":unaligned",
9554    ],
9555)
9556
9557xnnpack_cc_library(
9558    name = "sse2_bench_microkernels",
9559    gcc_copts = xnnpack_gcc_std_copts(),
9560    gcc_x86_copts = ["-msse2"],
9561    msvc_copts = xnnpack_msvc_std_copts(),
9562    msvc_x86_32_copts = ["/arch:SSE2"],
9563    x86_srcs = ALL_SSE_MICROKERNEL_SRCS + ALL_SSE2_MICROKERNEL_SRCS,
9564    deps = [
9565        ":common",
9566        ":math",
9567        ":microkernels_h",
9568        ":microparams",
9569        ":tables",
9570        ":unaligned",
9571    ],
9572)
9573
9574xnnpack_cc_library(
9575    name = "sse2_prod_microkernels",
9576    gcc_copts = xnnpack_gcc_std_copts(),
9577    gcc_x86_copts = ["-msse2"],
9578    msvc_copts = xnnpack_msvc_std_copts(),
9579    msvc_x86_32_copts = ["/arch:SSE2"],
9580    x86_srcs = PROD_SSE_MICROKERNEL_SRCS + PROD_SSE2_MICROKERNEL_SRCS,
9581    deps = [
9582        ":common",
9583        ":math",
9584        ":microkernels_h",
9585        ":microparams",
9586        ":tables",
9587        ":unaligned",
9588    ],
9589)
9590
9591xnnpack_cc_library(
9592    name = "sse2_test_microkernels",
9593    copts = [
9594        "-UNDEBUG",
9595        "-DXNN_TEST_MODE=1",
9596    ],
9597    gcc_copts = xnnpack_gcc_std_copts(),
9598    gcc_x86_copts = ["-msse2"],
9599    msvc_copts = xnnpack_msvc_std_copts(),
9600    msvc_x86_32_copts = ["/arch:SSE2"],
9601    x86_srcs = ALL_SSE_MICROKERNEL_SRCS + ALL_SSE2_MICROKERNEL_SRCS,
9602    deps = [
9603        ":common",
9604        ":math",
9605        ":microkernels_h",
9606        ":microparams",
9607        ":tables",
9608        ":unaligned",
9609    ],
9610)
9611
9612xnnpack_cc_library(
9613    name = "ssse3_amalgam_microkernels",
9614    gcc_copts = xnnpack_gcc_std_copts(),
9615    gcc_x86_copts = ["-mssse3"],
9616    msvc_copts = xnnpack_msvc_std_copts(),
9617    msvc_x86_32_copts = ["/arch:SSE2"],
9618    x86_srcs = ["src/amalgam/ssse3.c"],
9619    deps = [
9620        ":common",
9621        ":math",
9622        ":microkernels_h",
9623        ":microparams",
9624        ":tables",
9625        ":unaligned",
9626    ],
9627)
9628
9629xnnpack_cc_library(
9630    name = "ssse3_bench_microkernels",
9631    gcc_copts = xnnpack_gcc_std_copts(),
9632    gcc_x86_copts = ["-mssse3"],
9633    msvc_copts = xnnpack_msvc_std_copts(),
9634    msvc_x86_32_copts = ["/arch:SSE2"],
9635    x86_srcs = ALL_SSSE3_MICROKERNEL_SRCS,
9636    deps = [
9637        ":common",
9638        ":math",
9639        ":microkernels_h",
9640        ":microparams",
9641        ":tables",
9642        ":unaligned",
9643    ],
9644)
9645
9646xnnpack_cc_library(
9647    name = "ssse3_prod_microkernels",
9648    gcc_copts = xnnpack_gcc_std_copts(),
9649    gcc_x86_copts = ["-mssse3"],
9650    msvc_copts = xnnpack_msvc_std_copts(),
9651    msvc_x86_32_copts = ["/arch:SSE2"],
9652    x86_srcs = PROD_SSSE3_MICROKERNEL_SRCS,
9653    deps = [
9654        ":common",
9655        ":math",
9656        ":microkernels_h",
9657        ":microparams",
9658        ":tables",
9659        ":unaligned",
9660    ],
9661)
9662
9663xnnpack_cc_library(
9664    name = "ssse3_test_microkernels",
9665    copts = [
9666        "-UNDEBUG",
9667        "-DXNN_TEST_MODE=1",
9668    ],
9669    gcc_copts = xnnpack_gcc_std_copts(),
9670    gcc_x86_copts = ["-mssse3"],
9671    msvc_copts = xnnpack_msvc_std_copts(),
9672    msvc_x86_32_copts = ["/arch:SSE2"],
9673    x86_srcs = ALL_SSSE3_MICROKERNEL_SRCS,
9674    deps = [
9675        ":common",
9676        ":math",
9677        ":microkernels_h",
9678        ":microparams",
9679        ":tables",
9680        ":unaligned",
9681    ],
9682)
9683
9684xnnpack_cc_library(
9685    name = "sse41_amalgam_microkernels",
9686    gcc_copts = xnnpack_gcc_std_copts(),
9687    gcc_x86_copts = ["-msse4.1"],
9688    msvc_copts = xnnpack_msvc_std_copts(),
9689    msvc_x86_32_copts = ["/arch:SSE2"],
9690    x86_srcs = ["src/amalgam/sse41.c"],
9691    deps = [
9692        ":common",
9693        ":math",
9694        ":microkernels_h",
9695        ":microparams",
9696        ":tables",
9697        ":unaligned",
9698    ],
9699)
9700
9701xnnpack_cc_library(
9702    name = "sse41_bench_microkernels",
9703    gcc_copts = xnnpack_gcc_std_copts(),
9704    gcc_x86_copts = ["-msse4.1"],
9705    msvc_copts = xnnpack_msvc_std_copts(),
9706    msvc_x86_32_copts = ["/arch:SSE2"],
9707    x86_srcs = ALL_SSE41_MICROKERNEL_SRCS,
9708    deps = [
9709        ":common",
9710        ":math",
9711        ":microkernels_h",
9712        ":microparams",
9713        ":tables",
9714        ":unaligned",
9715    ],
9716)
9717
9718xnnpack_cc_library(
9719    name = "sse41_prod_microkernels",
9720    gcc_copts = xnnpack_gcc_std_copts(),
9721    gcc_x86_copts = ["-msse4.1"],
9722    msvc_copts = xnnpack_msvc_std_copts(),
9723    msvc_x86_32_copts = ["/arch:SSE2"],
9724    x86_srcs = PROD_SSE41_MICROKERNEL_SRCS,
9725    deps = [
9726        ":common",
9727        ":math",
9728        ":microkernels_h",
9729        ":microparams",
9730        ":tables",
9731        ":unaligned",
9732    ],
9733)
9734
9735xnnpack_cc_library(
9736    name = "sse41_test_microkernels",
9737    copts = [
9738        "-UNDEBUG",
9739        "-DXNN_TEST_MODE=1",
9740    ],
9741    gcc_copts = xnnpack_gcc_std_copts(),
9742    gcc_x86_copts = ["-msse4.1"],
9743    msvc_copts = xnnpack_msvc_std_copts(),
9744    msvc_x86_32_copts = ["/arch:SSE2"],
9745    x86_srcs = ALL_SSE41_MICROKERNEL_SRCS,
9746    deps = [
9747        ":common",
9748        ":math",
9749        ":microkernels_h",
9750        ":microparams",
9751        ":tables",
9752        ":unaligned",
9753    ],
9754)
9755
9756xnnpack_cc_library(
9757    name = "avx_amalgam_microkernels",
9758    gcc_copts = xnnpack_gcc_std_copts(),
9759    gcc_x86_copts = ["-mavx"],
9760    msvc_copts = xnnpack_msvc_std_copts(),
9761    msvc_x86_32_copts = ["/arch:AVX"],
9762    msvc_x86_64_copts = ["/arch:AVX"],
9763    x86_srcs = ["src/amalgam/avx.c"],
9764    deps = [
9765        ":common",
9766        ":math",
9767        ":microkernels_h",
9768        ":microparams",
9769        ":tables",
9770        ":unaligned",
9771    ],
9772)
9773
9774xnnpack_cc_library(
9775    name = "avx_bench_microkernels",
9776    gcc_copts = xnnpack_gcc_std_copts(),
9777    gcc_x86_copts = ["-mavx"],
9778    msvc_copts = xnnpack_msvc_std_copts(),
9779    msvc_x86_32_copts = ["/arch:AVX"],
9780    msvc_x86_64_copts = ["/arch:AVX"],
9781    x86_srcs = ALL_AVX_MICROKERNEL_SRCS,
9782    deps = [
9783        ":common",
9784        ":math",
9785        ":microkernels_h",
9786        ":microparams",
9787        ":tables",
9788        ":unaligned",
9789    ],
9790)
9791
9792xnnpack_cc_library(
9793    name = "avx_prod_microkernels",
9794    gcc_copts = xnnpack_gcc_std_copts(),
9795    gcc_x86_copts = ["-mavx"],
9796    msvc_copts = xnnpack_msvc_std_copts(),
9797    msvc_x86_32_copts = ["/arch:AVX"],
9798    msvc_x86_64_copts = ["/arch:AVX"],
9799    x86_srcs = PROD_AVX_MICROKERNEL_SRCS,
9800    deps = [
9801        ":common",
9802        ":math",
9803        ":microkernels_h",
9804        ":microparams",
9805        ":tables",
9806        ":unaligned",
9807    ],
9808)
9809
9810xnnpack_cc_library(
9811    name = "avx_test_microkernels",
9812    copts = [
9813        "-UNDEBUG",
9814        "-DXNN_TEST_MODE=1",
9815    ],
9816    gcc_copts = xnnpack_gcc_std_copts(),
9817    gcc_x86_copts = ["-mavx"],
9818    msvc_copts = xnnpack_msvc_std_copts(),
9819    msvc_x86_32_copts = ["/arch:AVX"],
9820    msvc_x86_64_copts = ["/arch:AVX"],
9821    x86_srcs = ALL_AVX_MICROKERNEL_SRCS,
9822    deps = [
9823        ":common",
9824        ":math",
9825        ":microkernels_h",
9826        ":microparams",
9827        ":tables",
9828        ":unaligned",
9829    ],
9830)
9831
9832xnnpack_cc_library(
9833    name = "f16c_amalgam_microkernels",
9834    gcc_copts = xnnpack_gcc_std_copts(),
9835    gcc_x86_copts = ["-mf16c"],
9836    msvc_copts = xnnpack_msvc_std_copts(),
9837    msvc_x86_32_copts = ["/arch:AVX"],
9838    msvc_x86_64_copts = ["/arch:AVX"],
9839    x86_srcs = ["src/amalgam/f16c.c"],
9840    deps = [
9841        ":common",
9842        ":math",
9843        ":microkernels_h",
9844        ":microparams",
9845        ":unaligned",
9846    ],
9847)
9848
9849xnnpack_cc_library(
9850    name = "f16c_bench_microkernels",
9851    gcc_copts = xnnpack_gcc_std_copts(),
9852    gcc_x86_copts = ["-mf16c"],
9853    msvc_copts = xnnpack_msvc_std_copts(),
9854    msvc_x86_32_copts = ["/arch:AVX"],
9855    msvc_x86_64_copts = ["/arch:AVX"],
9856    x86_srcs = ALL_F16C_MICROKERNEL_SRCS,
9857    deps = [
9858        ":common",
9859        ":math",
9860        ":microkernels_h",
9861        ":microparams",
9862        ":unaligned",
9863    ],
9864)
9865
9866xnnpack_cc_library(
9867    name = "f16c_prod_microkernels",
9868    gcc_copts = xnnpack_gcc_std_copts(),
9869    gcc_x86_copts = ["-mf16c"],
9870    msvc_copts = xnnpack_msvc_std_copts(),
9871    msvc_x86_32_copts = ["/arch:AVX"],
9872    msvc_x86_64_copts = ["/arch:AVX"],
9873    x86_srcs = PROD_F16C_MICROKERNEL_SRCS,
9874    deps = [
9875        ":common",
9876        ":math",
9877        ":microkernels_h",
9878        ":microparams",
9879        ":unaligned",
9880    ],
9881)
9882
9883xnnpack_cc_library(
9884    name = "f16c_test_microkernels",
9885    copts = [
9886        "-UNDEBUG",
9887        "-DXNN_TEST_MODE=1",
9888    ],
9889    gcc_copts = xnnpack_gcc_std_copts(),
9890    gcc_x86_copts = ["-mf16c"],
9891    msvc_copts = xnnpack_msvc_std_copts(),
9892    msvc_x86_32_copts = ["/arch:AVX"],
9893    msvc_x86_64_copts = ["/arch:AVX"],
9894    x86_srcs = ALL_F16C_MICROKERNEL_SRCS,
9895    deps = [
9896        ":common",
9897        ":math",
9898        ":microkernels_h",
9899        ":microparams",
9900        ":unaligned",
9901    ],
9902)
9903
9904xnnpack_cc_library(
9905    name = "xop_bench_microkernels",
9906    gcc_copts = xnnpack_gcc_std_copts(),
9907    gcc_x86_copts = ["-mxop"],
9908    msvc_copts = xnnpack_msvc_std_copts(),
9909    msvc_x86_32_copts = ["/arch:AVX"],
9910    msvc_x86_64_copts = ["/arch:AVX"],
9911    x86_srcs = ALL_XOP_MICROKERNEL_SRCS,
9912    deps = [
9913        ":common",
9914        ":math",
9915        ":microkernels_h",
9916        ":microparams",
9917        ":tables",
9918        ":unaligned",
9919    ],
9920)
9921
9922xnnpack_cc_library(
9923    name = "xop_prod_microkernels",
9924    gcc_copts = xnnpack_gcc_std_copts(),
9925    gcc_x86_copts = ["-mxop"],
9926    msvc_copts = xnnpack_msvc_std_copts(),
9927    msvc_x86_32_copts = ["/arch:AVX"],
9928    msvc_x86_64_copts = ["/arch:AVX"],
9929    x86_srcs = PROD_XOP_MICROKERNEL_SRCS,
9930    deps = [
9931        ":common",
9932        ":math",
9933        ":microkernels_h",
9934        ":microparams",
9935        ":tables",
9936        ":unaligned",
9937    ],
9938)
9939
9940xnnpack_cc_library(
9941    name = "xop_test_microkernels",
9942    copts = [
9943        "-UNDEBUG",
9944        "-DXNN_TEST_MODE=1",
9945    ],
9946    gcc_copts = xnnpack_gcc_std_copts(),
9947    gcc_x86_copts = ["-mxop"],
9948    msvc_copts = xnnpack_msvc_std_copts(),
9949    msvc_x86_32_copts = ["/arch:AVX"],
9950    msvc_x86_64_copts = ["/arch:AVX"],
9951    x86_srcs = ALL_XOP_MICROKERNEL_SRCS,
9952    deps = [
9953        ":common",
9954        ":math",
9955        ":microkernels_h",
9956        ":microparams",
9957        ":tables",
9958        ":unaligned",
9959    ],
9960)
9961
9962xnnpack_cc_library(
9963    name = "fma3_amalgam_microkernels",
9964    gcc_copts = xnnpack_gcc_std_copts(),
9965    gcc_x86_copts = [
9966        "-mf16c",
9967        "-mfma",
9968    ],
9969    msvc_copts = xnnpack_msvc_std_copts(),
9970    msvc_x86_32_copts = ["/arch:AVX"],
9971    msvc_x86_64_copts = ["/arch:AVX"],
9972    x86_srcs = ["src/amalgam/fma3.c"],
9973    deps = [
9974        ":common",
9975        ":math",
9976        ":microkernels_h",
9977        ":microparams",
9978        ":tables",
9979        ":unaligned",
9980    ],
9981)
9982
9983xnnpack_cc_library(
9984    name = "fma3_bench_microkernels",
9985    gcc_copts = xnnpack_gcc_std_copts(),
9986    gcc_x86_copts = [
9987        "-mf16c",
9988        "-mfma",
9989    ],
9990    msvc_copts = xnnpack_msvc_std_copts(),
9991    msvc_x86_32_copts = ["/arch:AVX"],
9992    msvc_x86_64_copts = ["/arch:AVX"],
9993    x86_srcs = ALL_FMA3_MICROKERNEL_SRCS,
9994    deps = [
9995        ":common",
9996        ":math",
9997        ":microkernels_h",
9998        ":microparams",
9999        ":tables",
10000        ":unaligned",
10001    ],
10002)
10003
10004xnnpack_cc_library(
10005    name = "fma3_prod_microkernels",
10006    gcc_copts = xnnpack_gcc_std_copts(),
10007    gcc_x86_copts = [
10008        "-mf16c",
10009        "-mfma",
10010    ],
10011    msvc_copts = xnnpack_msvc_std_copts(),
10012    msvc_x86_32_copts = ["/arch:AVX"],
10013    msvc_x86_64_copts = ["/arch:AVX"],
10014    x86_srcs = PROD_FMA3_MICROKERNEL_SRCS,
10015    deps = [
10016        ":common",
10017        ":math",
10018        ":microkernels_h",
10019        ":microparams",
10020        ":tables",
10021        ":unaligned",
10022    ],
10023)
10024
10025xnnpack_cc_library(
10026    name = "fma3_test_microkernels",
10027    copts = [
10028        "-UNDEBUG",
10029        "-DXNN_TEST_MODE=1",
10030    ],
10031    gcc_copts = xnnpack_gcc_std_copts(),
10032    gcc_x86_copts = [
10033        "-mf16c",
10034        "-mfma",
10035    ],
10036    msvc_copts = xnnpack_msvc_std_copts(),
10037    msvc_x86_32_copts = ["/arch:AVX"],
10038    msvc_x86_64_copts = ["/arch:AVX"],
10039    x86_srcs = ALL_FMA3_MICROKERNEL_SRCS,
10040    deps = [
10041        ":common",
10042        ":math",
10043        ":microkernels_h",
10044        ":microparams",
10045        ":tables",
10046        ":unaligned",
10047    ],
10048)
10049
10050xnnpack_cc_library(
10051    name = "avx2_amalgam_microkernels",
10052    gcc_copts = xnnpack_gcc_std_copts(),
10053    gcc_x86_copts = [
10054        "-mf16c",
10055        "-mfma",
10056        "-mavx2",
10057    ],
10058    msvc_copts = xnnpack_msvc_std_copts(),
10059    msvc_x86_32_copts = ["/arch:AVX2"],
10060    msvc_x86_64_copts = ["/arch:AVX2"],
10061    x86_srcs = ["src/amalgam/avx2.c"],
10062    deps = [
10063        ":common",
10064        ":math",
10065        ":microkernels_h",
10066        ":microparams",
10067        ":tables",
10068        ":unaligned",
10069    ],
10070)
10071
10072xnnpack_cc_library(
10073    name = "avx2_bench_microkernels",
10074    gcc_copts = xnnpack_gcc_std_copts(),
10075    gcc_x86_copts = [
10076        "-mf16c",
10077        "-mfma",
10078        "-mavx2",
10079    ],
10080    msvc_copts = xnnpack_msvc_std_copts(),
10081    msvc_x86_32_copts = ["/arch:AVX2"],
10082    msvc_x86_64_copts = ["/arch:AVX2"],
10083    x86_srcs = ALL_AVX2_MICROKERNEL_SRCS,
10084    deps = [
10085        ":common",
10086        ":math",
10087        ":microkernels_h",
10088        ":microparams",
10089        ":tables",
10090        ":unaligned",
10091    ],
10092)
10093
10094xnnpack_cc_library(
10095    name = "avx2_prod_microkernels",
10096    gcc_copts = xnnpack_gcc_std_copts(),
10097    gcc_x86_copts = [
10098        "-mf16c",
10099        "-mfma",
10100        "-mavx2",
10101    ],
10102    msvc_copts = xnnpack_msvc_std_copts(),
10103    msvc_x86_32_copts = ["/arch:AVX2"],
10104    msvc_x86_64_copts = ["/arch:AVX2"],
10105    x86_srcs = PROD_AVX2_MICROKERNEL_SRCS,
10106    deps = [
10107        ":common",
10108        ":math",
10109        ":microkernels_h",
10110        ":microparams",
10111        ":tables",
10112        ":unaligned",
10113    ],
10114)
10115
10116xnnpack_cc_library(
10117    name = "avx2_test_microkernels",
10118    copts = [
10119        "-UNDEBUG",
10120        "-DXNN_TEST_MODE=1",
10121    ],
10122    gcc_copts = xnnpack_gcc_std_copts(),
10123    gcc_x86_copts = [
10124        "-mf16c",
10125        "-mfma",
10126        "-mavx2",
10127    ],
10128    msvc_copts = xnnpack_msvc_std_copts(),
10129    msvc_x86_32_copts = ["/arch:AVX2"],
10130    msvc_x86_64_copts = ["/arch:AVX2"],
10131    x86_srcs = ALL_AVX2_MICROKERNEL_SRCS,
10132    deps = [
10133        ":common",
10134        ":math",
10135        ":microkernels_h",
10136        ":microparams",
10137        ":tables",
10138        ":unaligned",
10139    ],
10140)
10141
10142xnnpack_cc_library(
10143    name = "avx512f_amalgam_microkernels",
10144    gcc_copts = xnnpack_gcc_std_copts(),
10145    gcc_x86_copts = ["-mavx512f"],
10146    mingw_copts = ["-fno-asynchronous-unwind-tables"],
10147    msvc_copts = xnnpack_msvc_std_copts(),
10148    msvc_x86_32_copts = ["/arch:AVX512"],
10149    msvc_x86_64_copts = ["/arch:AVX512"],
10150    msys_copts = ["-fno-asynchronous-unwind-tables"],
10151    x86_srcs = ["src/amalgam/avx512f.c"],
10152    deps = [
10153        ":common",
10154        ":math",
10155        ":microkernels_h",
10156        ":microparams",
10157        ":tables",
10158        ":unaligned",
10159    ],
10160)
10161
10162xnnpack_cc_library(
10163    name = "avx512f_bench_microkernels",
10164    gcc_copts = xnnpack_gcc_std_copts(),
10165    gcc_x86_copts = ["-mavx512f"],
10166    mingw_copts = ["-fno-asynchronous-unwind-tables"],
10167    msvc_copts = xnnpack_msvc_std_copts(),
10168    msvc_x86_32_copts = ["/arch:AVX512"],
10169    msvc_x86_64_copts = ["/arch:AVX512"],
10170    msys_copts = ["-fno-asynchronous-unwind-tables"],
10171    x86_srcs = ALL_AVX512F_MICROKERNEL_SRCS,
10172    deps = [
10173        ":common",
10174        ":math",
10175        ":microkernels_h",
10176        ":microparams",
10177        ":tables",
10178        ":unaligned",
10179    ],
10180)
10181
10182xnnpack_cc_library(
10183    name = "avx512f_prod_microkernels",
10184    gcc_copts = xnnpack_gcc_std_copts(),
10185    gcc_x86_copts = ["-mavx512f"],
10186    mingw_copts = ["-fno-asynchronous-unwind-tables"],
10187    msvc_copts = xnnpack_msvc_std_copts(),
10188    msvc_x86_32_copts = ["/arch:AVX512"],
10189    msvc_x86_64_copts = ["/arch:AVX512"],
10190    msys_copts = ["-fno-asynchronous-unwind-tables"],
10191    x86_srcs = PROD_AVX512F_MICROKERNEL_SRCS,
10192    deps = [
10193        ":common",
10194        ":math",
10195        ":microkernels_h",
10196        ":microparams",
10197        ":tables",
10198        ":unaligned",
10199    ],
10200)
10201
10202xnnpack_cc_library(
10203    name = "avx512f_test_microkernels",
10204    copts = [
10205        "-UNDEBUG",
10206        "-DXNN_TEST_MODE=1",
10207    ],
10208    gcc_copts = xnnpack_gcc_std_copts(),
10209    gcc_x86_copts = ["-mavx512f"],
10210    mingw_copts = ["-fno-asynchronous-unwind-tables"],
10211    msvc_copts = xnnpack_msvc_std_copts(),
10212    msvc_x86_32_copts = ["/arch:AVX512"],
10213    msvc_x86_64_copts = ["/arch:AVX512"],
10214    msys_copts = ["-fno-asynchronous-unwind-tables"],
10215    x86_srcs = ALL_AVX512F_MICROKERNEL_SRCS,
10216    deps = [
10217        ":common",
10218        ":math",
10219        ":microkernels_h",
10220        ":microparams",
10221        ":tables",
10222        ":unaligned",
10223    ],
10224)
10225
10226xnnpack_cc_library(
10227    name = "avx512skx_amalgam_microkernels",
10228    gcc_copts = xnnpack_gcc_std_copts(),
10229    gcc_x86_copts = [
10230        "-mavx512f",
10231        "-mavx512cd",
10232        "-mavx512bw",
10233        "-mavx512dq",
10234        "-mavx512vl",
10235    ],
10236    mingw_copts = ["-fno-asynchronous-unwind-tables"],
10237    msvc_copts = xnnpack_msvc_std_copts(),
10238    msvc_x86_32_copts = ["/arch:AVX512"],
10239    msvc_x86_64_copts = ["/arch:AVX512"],
10240    msys_copts = ["-fno-asynchronous-unwind-tables"],
10241    x86_srcs = ["src/amalgam/avx512skx.c"],
10242    deps = [
10243        ":common",
10244        ":math",
10245        ":microkernels_h",
10246        ":microparams",
10247        ":tables",
10248        ":unaligned",
10249    ],
10250)
10251
10252xnnpack_cc_library(
10253    name = "avx512skx_bench_microkernels",
10254    gcc_copts = xnnpack_gcc_std_copts(),
10255    gcc_x86_copts = [
10256        "-mavx512f",
10257        "-mavx512cd",
10258        "-mavx512bw",
10259        "-mavx512dq",
10260        "-mavx512vl",
10261    ],
10262    mingw_copts = ["-fno-asynchronous-unwind-tables"],
10263    msvc_copts = xnnpack_msvc_std_copts(),
10264    msvc_x86_32_copts = ["/arch:AVX512"],
10265    msvc_x86_64_copts = ["/arch:AVX512"],
10266    msys_copts = ["-fno-asynchronous-unwind-tables"],
10267    x86_srcs = ALL_AVX512SKX_MICROKERNEL_SRCS,
10268    deps = [
10269        ":common",
10270        ":math",
10271        ":microkernels_h",
10272        ":microparams",
10273        ":tables",
10274        ":unaligned",
10275    ],
10276)
10277
10278xnnpack_cc_library(
10279    name = "avx512skx_prod_microkernels",
10280    gcc_copts = xnnpack_gcc_std_copts(),
10281    gcc_x86_copts = [
10282        "-mavx512f",
10283        "-mavx512cd",
10284        "-mavx512bw",
10285        "-mavx512dq",
10286        "-mavx512vl",
10287    ],
10288    mingw_copts = ["-fno-asynchronous-unwind-tables"],
10289    msvc_copts = xnnpack_msvc_std_copts(),
10290    msvc_x86_32_copts = ["/arch:AVX512"],
10291    msvc_x86_64_copts = ["/arch:AVX512"],
10292    msys_copts = ["-fno-asynchronous-unwind-tables"],
10293    x86_srcs = PROD_AVX512SKX_MICROKERNEL_SRCS,
10294    deps = [
10295        ":common",
10296        ":math",
10297        ":microkernels_h",
10298        ":microparams",
10299        ":tables",
10300        ":unaligned",
10301    ],
10302)
10303
10304xnnpack_cc_library(
10305    name = "avx512skx_test_microkernels",
10306    copts = [
10307        "-UNDEBUG",
10308        "-DXNN_TEST_MODE=1",
10309    ],
10310    gcc_copts = xnnpack_gcc_std_copts(),
10311    gcc_x86_copts = [
10312        "-mavx512f",
10313        "-mavx512cd",
10314        "-mavx512bw",
10315        "-mavx512dq",
10316        "-mavx512vl",
10317    ],
10318    mingw_copts = ["-fno-asynchronous-unwind-tables"],
10319    msvc_copts = xnnpack_msvc_std_copts(),
10320    msvc_x86_32_copts = ["/arch:AVX512"],
10321    msvc_x86_64_copts = ["/arch:AVX512"],
10322    msys_copts = ["-fno-asynchronous-unwind-tables"],
10323    x86_srcs = ALL_AVX512SKX_MICROKERNEL_SRCS,
10324    deps = [
10325        ":common",
10326        ":math",
10327        ":microkernels_h",
10328        ":microparams",
10329        ":tables",
10330        ":unaligned",
10331    ],
10332)
10333
10334xnnpack_cc_library(
10335    name = "asm_microkernels",
10336    hdrs = ["src/xnnpack/assembly.h"],
10337    aarch32_copts = [
10338        "-marm",
10339        "-march=armv8.2-a+dotprod",
10340        "-mfpu=neon-fp-armv8",
10341    ],
10342    aarch32_srcs = AARCH32_ASM_MICROKERNEL_SRCS,
10343    aarch64_copts = ["-march=armv8.2-a+fp16+dotprod"],
10344    aarch64_srcs = AARCH64_ASM_MICROKERNEL_SRCS,
10345    wasm_srcs = WASM32_ASM_MICROKERNEL_SRCS,
10346    wasmrelaxedsimd_srcs = WASM32_ASM_MICROKERNEL_SRCS,
10347    wasmsimd_srcs = WASM32_ASM_MICROKERNEL_SRCS,
10348)
10349
10350xnnpack_cc_library(
10351    name = "log_level_default",
10352    defines = select({
10353        # No logging in optimized mode
10354        ":optimized_build": ["XNN_LOG_LEVEL=0"],
10355        # Full logging in debug mode
10356        ":debug_build": ["XNN_LOG_LEVEL=5"],
10357        # Error-only logging in default (fastbuild) mode
10358        "//conditions:default": ["XNN_LOG_LEVEL=2"],
10359    }),
10360)
10361
10362xnnpack_cc_library(
10363    name = "logging",
10364    srcs = [
10365        "src/datatype-strings.c",
10366        "src/log.c",
10367        "src/node-type.c",
10368        "src/operator-strings.c",
10369        "src/ukernel-strings.c",
10370    ],
10371    hdrs = ["src/xnnpack/log.h"],
10372    copts = select({
10373        ":debug_build": [],
10374        "//conditions:default": xnnpack_min_size_copts(),
10375    }) + select({
10376        ":xnn_log_to_stdio_explicit_true": ["-DXNN_LOG_TO_STDIO=1"],
10377        "//conditions:default": [],
10378    }),
10379    defines = select({
10380        ":xnn_log_level_explicit_none": ["XNN_LOG_LEVEL=0"],
10381        ":xnn_log_level_explicit_fatal": ["XNN_LOG_LEVEL=1"],
10382        ":xnn_log_level_explicit_error": ["XNN_LOG_LEVEL=2"],
10383        ":xnn_log_level_explicit_warning": ["XNN_LOG_LEVEL=3"],
10384        ":xnn_log_level_explicit_info": ["XNN_LOG_LEVEL=4"],
10385        ":xnn_log_level_explicit_debug": ["XNN_LOG_LEVEL=5"],
10386        "//conditions:default": [],
10387    }),
10388    gcc_copts = xnnpack_gcc_std_copts(),
10389    msvc_copts = xnnpack_msvc_std_copts(),
10390    visibility = xnnpack_visibility(),
10391    deps = select({
10392        ":xnn_log_level_explicit_none": [],
10393        ":xnn_log_level_explicit_fatal": [],
10394        ":xnn_log_level_explicit_error": [],
10395        ":xnn_log_level_explicit_warning": [],
10396        ":xnn_log_level_explicit_info": [],
10397        ":xnn_log_level_explicit_debug": [],
10398        "//conditions:default": [":log_level_default"],
10399    }) + [
10400        ":operator_type",
10401        ":ukernel_type",
10402        ":node_type",
10403        ":xnnpack_h",
10404        ":common",
10405    ],
10406)
10407
10408xnnpack_aggregate_library(
10409    name = "amalgam_microkernels",
10410    aarch32_deps = [
10411        ":armsimd32_prod_microkernels",
10412        ":neon_prod_microkernels",
10413        ":neonfp16_prod_microkernels",
10414        ":neonfma_prod_microkernels",
10415        ":neonv8_prod_microkernels",
10416        ":asm_microkernels",
10417    ],
10418    aarch64_deps = [
10419        ":neon_prod_microkernels",
10420        ":neonfp16_prod_microkernels",
10421        ":neonfma_prod_microkernels",
10422        ":neonv8_prod_microkernels",
10423        ":asm_microkernels",
10424    ],
10425    defines = select({
10426        ":arm_fp16_enabled": ["XNN_ENABLE_ARM_FP16=1"],
10427        "//conditions:default": ["XNN_ENABLE_ARM_FP16=0"],
10428    }) + select({
10429        ":arm_bf16_enabled": ["XNN_ENABLE_ARM_BF16=1"],
10430        "//conditions:default": ["XNN_ENABLE_ARM_BF16=0"],
10431    }) + select({
10432        ":arm_dotprod_enabled": ["XNN_ENABLE_ARM_DOTPROD=1"],
10433        "//conditions:default": ["XNN_ENABLE_ARM_DOTPROD=0"],
10434    }),
10435    generic_deps = [
10436        ":scalar_prod_microkernels",
10437    ] + select({
10438        ":arm_fp16_enabled": [":neonfp16arith_prod_microkernels"],
10439        "//conditions:default": [],
10440    }) + select({
10441        ":arm_bf16_enabled": [":neonbf16_prod_microkernels"],
10442        "//conditions:default": [],
10443    }) + select({
10444        ":arm_dotprod_enabled": [":neondot_prod_microkernels"],
10445        "//conditions:default": [],
10446    }),
10447    wasm_deps = [
10448        ":wasm_prod_microkernels",
10449        ":asm_microkernels",
10450    ],
10451    wasmrelaxedsimd_deps = [
10452        ":wasm_prod_microkernels",
10453        ":asm_microkernels",
10454    ],
10455    wasmsimd_deps = [
10456        ":wasm_prod_microkernels",
10457        ":asm_microkernels",
10458    ],
10459    x86_deps = [
10460        ":sse2_amalgam_microkernels",
10461        ":ssse3_amalgam_microkernels",
10462        ":sse41_amalgam_microkernels",
10463        ":avx_amalgam_microkernels",
10464        ":f16c_amalgam_microkernels",
10465        ":xop_prod_microkernels",
10466        ":fma3_amalgam_microkernels",
10467        ":avx2_amalgam_microkernels",
10468        ":avx512f_amalgam_microkernels",
10469        ":avx512skx_amalgam_microkernels",
10470    ],
10471)
10472
10473xnnpack_aggregate_library(
10474    name = "bench_microkernels",
10475    aarch32_deps = [
10476        ":armsimd32_bench_microkernels",
10477        ":neon_bench_microkernels",
10478        ":neonfp16_bench_microkernels",
10479        ":neonfma_bench_microkernels",
10480        ":neonv8_bench_microkernels",
10481        ":asm_microkernels",
10482    ],
10483    aarch64_deps = [
10484        ":neon_bench_microkernels",
10485        ":neonfp16_bench_microkernels",
10486        ":neonfma_bench_microkernels",
10487        ":neonv8_bench_microkernels",
10488        ":asm_microkernels",
10489    ],
10490    defines = select({
10491        ":arm_fp16_enabled": ["XNN_ENABLE_ARM_FP16=1"],
10492        "//conditions:default": ["XNN_ENABLE_ARM_FP16=0"],
10493    }) + select({
10494        ":arm_bf16_enabled": ["XNN_ENABLE_ARM_BF16=1"],
10495        "//conditions:default": ["XNN_ENABLE_ARM_BF16=0"],
10496    }) + select({
10497        ":arm_dotprod_enabled": ["XNN_ENABLE_ARM_DOTPROD=1"],
10498        "//conditions:default": ["XNN_ENABLE_ARM_DOTPROD=0"],
10499    }),
10500    generic_deps = [
10501        ":scalar_bench_microkernels",
10502    ] + select({
10503        ":arm_fp16_enabled": [":neonfp16arith_bench_microkernels"],
10504        "//conditions:default": [],
10505    }) + select({
10506        ":arm_bf16_enabled": [":neonbf16_bench_microkernels"],
10507        "//conditions:default": [],
10508    }) + select({
10509        ":arm_dotprod_enabled": [":neondot_bench_microkernels"],
10510        "//conditions:default": [],
10511    }),
10512    wasm_deps = [
10513        ":wasm_bench_microkernels",
10514        ":asm_microkernels",
10515    ],
10516    wasmrelaxedsimd_deps = [
10517        ":wasm_bench_microkernels",
10518        ":asm_microkernels",
10519    ],
10520    wasmsimd_deps = [
10521        ":wasm_bench_microkernels",
10522        ":asm_microkernels",
10523    ],
10524    x86_deps = [
10525        ":sse2_bench_microkernels",
10526        ":ssse3_bench_microkernels",
10527        ":sse41_bench_microkernels",
10528        ":avx_bench_microkernels",
10529        ":f16c_bench_microkernels",
10530        ":xop_bench_microkernels",
10531        ":fma3_bench_microkernels",
10532        ":avx2_bench_microkernels",
10533        ":avx512f_bench_microkernels",
10534        ":avx512skx_bench_microkernels",
10535    ],
10536)
10537
10538xnnpack_aggregate_library(
10539    name = "prod_microkernels",
10540    aarch32_deps = [
10541        ":armsimd32_prod_microkernels",
10542        ":neon_prod_microkernels",
10543        ":neonfp16_prod_microkernels",
10544        ":neonfma_prod_microkernels",
10545        ":neonv8_prod_microkernels",
10546        ":asm_microkernels",
10547    ],
10548    aarch64_deps = [
10549        ":neon_prod_microkernels",
10550        ":neonfp16_prod_microkernels",
10551        ":neonfma_prod_microkernels",
10552        ":neonv8_prod_microkernels",
10553        ":asm_microkernels",
10554    ],
10555    defines = select({
10556        ":arm_fp16_enabled": ["XNN_ENABLE_ARM_FP16=1"],
10557        "//conditions:default": ["XNN_ENABLE_ARM_FP16=0"],
10558    }) + select({
10559        ":arm_bf16_enabled": ["XNN_ENABLE_ARM_BF16=1"],
10560        "//conditions:default": ["XNN_ENABLE_ARM_BF16=0"],
10561    }) + select({
10562        ":arm_dotprod_enabled": ["XNN_ENABLE_ARM_DOTPROD=1"],
10563        "//conditions:default": ["XNN_ENABLE_ARM_DOTPROD=0"],
10564    }),
10565    generic_deps = [
10566        ":scalar_prod_microkernels",
10567    ] + select({
10568        ":arm_fp16_enabled": [":neonfp16arith_prod_microkernels"],
10569        "//conditions:default": [],
10570    }) + select({
10571        ":arm_bf16_enabled": [":neonbf16_prod_microkernels"],
10572        "//conditions:default": [],
10573    }) + select({
10574        ":arm_dotprod_enabled": [":neondot_prod_microkernels"],
10575        "//conditions:default": [],
10576    }),
10577    wasm_deps = [
10578        ":wasm_prod_microkernels",
10579        ":asm_microkernels",
10580    ],
10581    wasmrelaxedsimd_deps = [
10582        ":wasm_prod_microkernels",
10583        ":asm_microkernels",
10584    ],
10585    wasmsimd_deps = [
10586        ":wasm_prod_microkernels",
10587        ":asm_microkernels",
10588    ],
10589    x86_deps = [
10590        ":sse2_prod_microkernels",
10591        ":ssse3_prod_microkernels",
10592        ":sse41_prod_microkernels",
10593        ":avx_prod_microkernels",
10594        ":f16c_prod_microkernels",
10595        ":xop_prod_microkernels",
10596        ":fma3_prod_microkernels",
10597        ":avx2_prod_microkernels",
10598        ":avx512f_prod_microkernels",
10599        ":avx512skx_prod_microkernels",
10600    ],
10601)
10602
10603xnnpack_aggregate_library(
10604    name = "test_microkernels",
10605    aarch32_deps = [
10606        ":armsimd32_test_microkernels",
10607        ":neon_test_microkernels",
10608        ":neonfp16_test_microkernels",
10609        ":neonfma_test_microkernels",
10610        ":neonv8_test_microkernels",
10611        ":asm_microkernels",
10612    ],
10613    aarch64_deps = [
10614        ":neon_test_microkernels",
10615        ":neonfp16_test_microkernels",
10616        ":neonfma_test_microkernels",
10617        ":neonv8_test_microkernels",
10618        ":asm_microkernels",
10619    ],
10620    defines = select({
10621        ":arm_fp16_enabled": ["XNN_ENABLE_ARM_FP16=1"],
10622        "//conditions:default": ["XNN_ENABLE_ARM_FP16=0"],
10623    }) + select({
10624        ":arm_bf16_enabled": ["XNN_ENABLE_ARM_BF16=1"],
10625        "//conditions:default": ["XNN_ENABLE_ARM_BF16=0"],
10626    }) + select({
10627        ":arm_dotprod_enabled": ["XNN_ENABLE_ARM_DOTPROD=1"],
10628        "//conditions:default": ["XNN_ENABLE_ARM_DOTPROD=0"],
10629    }),
10630    generic_deps = [
10631        ":scalar_test_microkernels",
10632    ] + select({
10633        ":arm_fp16_enabled": [":neonfp16arith_test_microkernels"],
10634        "//conditions:default": [],
10635    }) + select({
10636        ":arm_bf16_enabled": [":neonbf16_test_microkernels"],
10637        "//conditions:default": [],
10638    }) + select({
10639        ":arm_dotprod_enabled": [":neondot_test_microkernels"],
10640        "//conditions:default": [],
10641    }),
10642    wasm_deps = [
10643        ":wasm_test_microkernels",
10644        ":asm_microkernels",
10645    ],
10646    wasmrelaxedsimd_deps = [
10647        ":wasm_test_microkernels",
10648        ":asm_microkernels",
10649    ],
10650    wasmsimd_deps = [
10651        ":wasm_test_microkernels",
10652        ":asm_microkernels",
10653    ],
10654    x86_deps = [
10655        ":sse2_test_microkernels",
10656        ":ssse3_test_microkernels",
10657        ":sse41_test_microkernels",
10658        ":avx_test_microkernels",
10659        ":f16c_test_microkernels",
10660        ":xop_test_microkernels",
10661        ":fma3_test_microkernels",
10662        ":avx2_test_microkernels",
10663        ":avx512f_test_microkernels",
10664        ":avx512skx_test_microkernels",
10665    ],
10666)
10667
10668xnnpack_cc_library(
10669    name = "im2col",
10670    srcs = ["src/im2col.c"],
10671    hdrs = [
10672        "src/xnnpack/im2col.h",
10673    ],
10674    gcc_copts = xnnpack_gcc_std_copts(),
10675    msvc_copts = xnnpack_msvc_std_copts(),
10676    deps = [":common"],
10677)
10678
10679xnnpack_cc_library(
10680    name = "indirection",
10681    srcs = ["src/indirection.c"],
10682    hdrs = ["src/xnnpack/indirection.h"],
10683    gcc_copts = xnnpack_gcc_std_copts(),
10684    msvc_copts = xnnpack_msvc_std_copts(),
10685    deps = [
10686        ":common",
10687        ":math",
10688        ":operator_h",
10689        "@FP16",
10690        "@FXdiv",
10691    ],
10692)
10693
10694xnnpack_cc_library(
10695    name = "indirection_test_mode",
10696    srcs = ["src/indirection.c"],
10697    hdrs = ["src/xnnpack/indirection.h"],
10698    copts = [
10699        "-UNDEBUG",
10700        "-DXNN_TEST_MODE=1",
10701    ],
10702    gcc_copts = xnnpack_gcc_std_copts(),
10703    msvc_copts = xnnpack_msvc_std_copts(),
10704    deps = [
10705        ":common",
10706        ":math",
10707        ":operator_h",
10708        "@FP16",
10709        "@FXdiv",
10710    ],
10711)
10712
10713xnnpack_cc_library(
10714    name = "packing",
10715    srcs = ["src/packing.c"],
10716    hdrs = ["src/xnnpack/pack.h"],
10717    gcc_copts = xnnpack_gcc_std_copts(),
10718    msvc_copts = xnnpack_msvc_std_copts(),
10719    deps = [
10720        ":common",
10721        ":math",
10722        ":operator_h",
10723        ":unaligned",
10724        "@FP16",
10725    ],
10726)
10727
10728xnnpack_cc_library(
10729    name = "packing_test_mode",
10730    srcs = ["src/packing.c"],
10731    hdrs = ["src/xnnpack/pack.h"],
10732    copts = [
10733        "-UNDEBUG",
10734        "-DXNN_TEST_MODE=1",
10735    ],
10736    gcc_copts = xnnpack_gcc_std_copts(),
10737    msvc_copts = xnnpack_msvc_std_copts(),
10738    deps = [
10739        ":common",
10740        ":math",
10741        ":operator_h",
10742        ":unaligned",
10743        "@FP16",
10744    ],
10745)
10746
10747cc_library(
10748    name = "enable_assembly",
10749    defines = select({
10750        ":xnn_enable_assembly_explicit_true": ["XNN_ENABLE_ASSEMBLY=1"],
10751        ":xnn_enable_assembly_explicit_false": ["XNN_ENABLE_ASSEMBLY=0"],
10752        "//conditions:default": ["XNN_ENABLE_ASSEMBLY=1"],
10753    }),
10754)
10755
10756cc_library(
10757    name = "enable_sparse",
10758    defines = select({
10759        ":xnn_enable_sparse_explicit_true": ["XNN_ENABLE_SPARSE=1"],
10760        ":xnn_enable_sparse_explicit_false": ["XNN_ENABLE_SPARSE=0"],
10761        "//conditions:default": ["XNN_ENABLE_SPARSE=1"],
10762    }),
10763)
10764
10765cc_library(
10766    name = "enable_jit",
10767    defines = select({
10768        ":xnn_enable_jit_explicit_true": ["XNN_ENABLE_JIT=1"],
10769        ":xnn_enable_jit_explicit_false": ["XNN_ENABLE_JIT=0"],
10770        "//conditions:default": ["XNN_ENABLE_JIT=0"],
10771    }),
10772)
10773
10774cc_library(
10775    name = "enable_gemm_m_specialization",
10776    defines = select({
10777        ":xnn_enable_gemm_m_specialization_explicit_true": ["XNN_ENABLE_GEMM_M_SPECIALIZATION=1"],
10778        ":xnn_enable_gemm_m_specialization_explicit_false": ["XNN_ENABLE_GEMM_M_SPECIALIZATION=0"],
10779        "//conditions:default": ["XNN_ENABLE_GEMM_M_SPECIALIZATION=1"],
10780    }),
10781)
10782
10783xnnpack_cc_library(
10784    name = "cache",
10785    srcs = ["src/cache.c"],
10786    hdrs = ["src/xnnpack/cache.h"],
10787    gcc_copts = xnnpack_gcc_std_copts(),
10788    msvc_copts = xnnpack_msvc_std_copts(),
10789    deps = [
10790        ":allocator",
10791        ":common",
10792        ":logging",
10793        ":math",
10794        ":mutex",
10795        ":xnnpack_h",
10796    ],
10797)
10798
10799# Define a library with just the header to remove circular dependencies:
10800# operator-run (compute) <-> operators.
10801xnnpack_cc_library(
10802    name = "compute_h",
10803    hdrs = [
10804        "src/xnnpack/compute.h",
10805    ],
10806    gcc_copts = xnnpack_gcc_std_copts(),
10807    msvc_copts = xnnpack_msvc_std_copts(),
10808    deps = [
10809        ":common",
10810        ":math",
10811        ":params",
10812        ":xnnpack_h",
10813    ],
10814)
10815
10816xnnpack_cc_library(
10817    name = "post_operation",
10818    srcs = [
10819        "src/operators/post-operation.c",
10820    ],
10821    hdrs = [
10822        "src/xnnpack/post-operation.h",
10823    ],
10824    deps = [
10825        ":allocator",
10826        ":microparams",
10827        ":params",
10828    ],
10829)
10830
10831# Define a library with just the header to remove circular dependencies:
10832# indirection <-> operators.
10833xnnpack_cc_library(
10834    name = "operator_h",
10835    hdrs = [
10836        "src/xnnpack/operator.h",
10837    ],
10838    gcc_copts = xnnpack_gcc_std_copts(),
10839    msvc_copts = xnnpack_msvc_std_copts(),
10840    deps = [
10841        ":allocator",
10842        ":cache",
10843        ":compute_h",
10844        ":operator_type",
10845        ":params",
10846        ":ukernel_type",
10847        "@pthreadpool",
10848    ],
10849)
10850
10851xnnpack_cc_library(
10852    name = "operators",
10853    srcs = OPERATOR_SRCS,
10854    hdrs = [
10855        "src/xnnpack/compute.h",
10856        "src/xnnpack/operator.h",
10857    ],
10858    copts = select({
10859        ":debug_build": [],
10860        "//conditions:default": xnnpack_min_size_copts(),
10861    }) + select({
10862        ":xnn_enable_hmp_explicit_false": ["-DXNN_MAX_UARCH_TYPES=1"],
10863        "//conditions:default": [],
10864    }),
10865    gcc_copts = xnnpack_gcc_std_copts(),
10866    msvc_copts = xnnpack_msvc_std_copts(),
10867    deps = [
10868        ":allocator",
10869        ":cache",
10870        ":common",
10871        ":enable_gemm_m_specialization",
10872        ":enable_jit",
10873        ":indirection",
10874        ":jit",
10875        ":logging",
10876        ":math",
10877        ":microparams_init",
10878        ":normalization",
10879        ":packing",
10880        ":params",
10881        ":post_operation",
10882        ":xnnpack_h",
10883        "@FP16",
10884        "@pthreadpool",
10885    ],
10886)
10887
10888xnnpack_cc_library(
10889    name = "operators_test_mode",
10890    srcs = OPERATOR_SRCS,
10891    hdrs = [
10892        "src/xnnpack/compute.h",
10893        "src/xnnpack/operator.h",
10894    ],
10895    copts = [
10896        "-UNDEBUG",
10897        "-DXNN_TEST_MODE=1",
10898    ] + select({
10899        ":debug_build": [],
10900        "//conditions:default": xnnpack_min_size_copts(),
10901    }) + select({
10902        ":xnn_enable_hmp_explicit_false": ["-DXNN_MAX_UARCH_TYPES=1"],
10903        "//conditions:default": [],
10904    }),
10905    gcc_copts = xnnpack_gcc_std_copts(),
10906    msvc_copts = xnnpack_msvc_std_copts(),
10907    deps = [
10908        ":allocator",
10909        ":cache",
10910        ":common",
10911        ":enable_gemm_m_specialization",
10912        ":enable_jit",
10913        ":indirection_test_mode",
10914        ":jit_test_mode",
10915        ":logging",
10916        ":math",
10917        ":microparams_init",
10918        ":normalization_test_mode",
10919        ":packing_test_mode",
10920        ":params",
10921        ":post_operation",
10922        ":xnnpack_h",
10923        "@FP16",
10924        "@pthreadpool",
10925    ],
10926)
10927
10928xnnpack_cc_library(
10929    name = "jit",
10930    srcs = [
10931        "src/jit/aarch32-assembler.cc",
10932        "src/jit/aarch64-assembler.cc",
10933        "src/jit/assembler.cc",
10934    ],
10935    hdrs = [
10936        "src/xnnpack/aarch32-assembler.h",
10937        "src/xnnpack/aarch64-assembler.h",
10938        "src/xnnpack/assembler.h",
10939    ],
10940    aarch32_srcs = JIT_AARCH32_SRCS,
10941    aarch64_srcs = JIT_AARCH64_SRCS,
10942    msvc_copts = xnnpack_msvc_std_copts(),
10943    deps = [
10944        ":allocator",
10945        ":common",
10946        ":logging",
10947        ":math",
10948        ":microkernels_h",
10949        ":params",
10950        ":xnnpack_h",
10951    ],
10952)
10953
10954xnnpack_cc_library(
10955    name = "jit_test_mode",
10956    srcs = [
10957        "src/jit/aarch32-assembler.cc",
10958        "src/jit/aarch64-assembler.cc",
10959        "src/jit/assembler.cc",
10960    ],
10961    hdrs = [
10962        "src/xnnpack/aarch32-assembler.h",
10963        "src/xnnpack/aarch64-assembler.h",
10964        "src/xnnpack/assembler.h",
10965    ],
10966    aarch32_srcs = JIT_AARCH32_SRCS,
10967    aarch64_srcs = JIT_AARCH64_SRCS,
10968    copts = [
10969        "-UNDEBUG",
10970        "-DXNN_TEST_MODE=1",
10971    ],
10972    msvc_copts = xnnpack_msvc_std_copts(),
10973    deps = [
10974        ":allocator",
10975        ":common",
10976        ":logging",
10977        ":math",
10978        ":microkernels_h",
10979        ":params",
10980        ":xnnpack_h",
10981    ],
10982)
10983
10984xnnpack_cc_library(
10985    name = "subgraph",
10986    srcs = SUBGRAPH_SRCS,
10987    hdrs = [
10988        "src/xnnpack/memory-planner.h",
10989        "src/xnnpack/subgraph.h",
10990        "src/xnnpack/subgraph-validation.h",
10991    ],
10992    defines = select({
10993        ":xnn_enable_memopt_explicit_true": ["XNN_ENABLE_MEMOPT=1"],
10994        ":xnn_enable_memopt_explicit_false": ["XNN_ENABLE_MEMOPT=0"],
10995        "//conditions:default": ["XNN_ENABLE_MEMOPT=1"],
10996    }),
10997    gcc_copts = xnnpack_gcc_std_copts(),
10998    msvc_copts = xnnpack_msvc_std_copts(),
10999    deps = [
11000        ":allocator",
11001        ":cache",
11002        ":common",
11003        ":enable_jit",
11004        ":enable_sparse",
11005        ":logging",
11006        ":math",
11007        ":operators",
11008        ":params",
11009        ":requantization",
11010        ":xnnpack_h",
11011        "@FP16",
11012    ],
11013)
11014
11015xnnpack_cc_library(
11016    name = "subgraph_test_mode",
11017    srcs = SUBGRAPH_SRCS,
11018    hdrs = [
11019        "src/xnnpack/memory-planner.h",
11020        "src/xnnpack/subgraph.h",
11021        "src/xnnpack/subgraph-validation.h",
11022    ],
11023    copts = [
11024        "-UNDEBUG",
11025        "-DXNN_TEST_MODE=1",
11026    ],
11027    defines = select({
11028        ":xnn_enable_memopt_explicit_true": ["XNN_ENABLE_MEMOPT=1"],
11029        ":xnn_enable_memopt_explicit_false": ["XNN_ENABLE_MEMOPT=0"],
11030        "//conditions:default": ["XNN_ENABLE_MEMOPT=1"],
11031    }),
11032    gcc_copts = xnnpack_gcc_std_copts(),
11033    msvc_copts = xnnpack_msvc_std_copts(),
11034    deps = [
11035        ":allocator",
11036        ":cache",
11037        ":common",
11038        ":enable_jit",
11039        ":enable_sparse",
11040        ":logging",
11041        ":math",
11042        ":operators",
11043        ":params",
11044        ":requantization",
11045        ":xnnpack_h",
11046        "@FP16",
11047    ],
11048)
11049
11050xnnpack_cc_library(
11051    name = "mutex",
11052    srcs = [
11053        "src/mutex.c",
11054    ],
11055    hdrs = [
11056        "src/xnnpack/mutex.h",
11057    ],
11058    gcc_copts = xnnpack_gcc_std_copts(),
11059    msvc_copts = xnnpack_msvc_std_copts(),
11060    deps = [
11061        ":common",
11062        ":logging",
11063        ":xnnpack_h",
11064    ],
11065)
11066
11067xnnpack_cc_library(
11068    name = "mutex_test_mode",
11069    srcs = [
11070        "src/mutex.c",
11071    ],
11072    hdrs = [
11073        "src/xnnpack/mutex.h",
11074    ],
11075    copts = [
11076        "-UNDEBUG",
11077        "-DXNN_TEST_MODE=1",
11078    ],
11079    gcc_copts = xnnpack_gcc_std_copts(),
11080    msvc_copts = xnnpack_msvc_std_copts(),
11081    deps = [
11082        ":common",
11083        ":logging",
11084        ":xnnpack_h",
11085    ],
11086)
11087
11088xnnpack_cc_library(
11089    name = "normalization",
11090    srcs = ["src/normalization.c"],
11091    hdrs = [
11092        "src/xnnpack/normalization.h",
11093    ],
11094    gcc_copts = xnnpack_gcc_std_copts(),
11095    msvc_copts = xnnpack_msvc_std_copts(),
11096    deps = [
11097        ":math",
11098    ],
11099)
11100
11101xnnpack_cc_library(
11102    name = "normalization_test_mode",
11103    srcs = ["src/normalization.c"],
11104    hdrs = ["src/xnnpack/normalization.h"],
11105    copts = [
11106        "-UNDEBUG",
11107        "-DXNN_TEST_MODE=1",
11108    ],
11109    gcc_copts = xnnpack_gcc_std_copts(),
11110    msvc_copts = xnnpack_msvc_std_copts(),
11111    deps = [
11112        ":math",
11113    ],
11114)
11115
11116xnnpack_cc_library(
11117    name = "XNNPACK",
11118    srcs = [
11119        "src/init.c",
11120    ],
11121    hdrs = ["include/xnnpack.h"],
11122    copts = select({
11123        ":debug_build": [],
11124        "//conditions:default": xnnpack_min_size_copts(),
11125    }) + select({
11126        ":xnn_enable_hmp_explicit_false": ["-DXNN_MAX_UARCH_TYPES=1"],
11127        "//conditions:default": [],
11128    }),
11129    gcc_copts = xnnpack_gcc_std_copts(),
11130    msvc_copts = xnnpack_msvc_std_copts(),
11131    visibility = xnnpack_visibility(),
11132    deps = [
11133        ":allocator",
11134        ":common",
11135        ":enable_assembly",
11136        ":enable_gemm_m_specialization",
11137        ":enable_jit",
11138        ":logging",
11139        ":math",
11140        ":microkernels_h",
11141        ":operators",
11142        ":normalization",
11143        ":microparams",
11144        ":microparams_init",
11145        ":params",
11146        ":prod_microkernels",
11147        ":subgraph",
11148    ] + select({
11149        ":emscripten": [],
11150        "//conditions:default": ["@cpuinfo"],
11151    }),
11152)
11153
11154xnnpack_cc_library(
11155    name = "XNNPACK_test_mode",
11156    srcs = [
11157        "src/init.c",
11158    ],
11159    hdrs = ["include/xnnpack.h"],
11160    copts = [
11161        "-UNDEBUG",
11162        "-DXNN_TEST_MODE=1",
11163    ] + select({
11164        ":debug_build": [],
11165        "//conditions:default": xnnpack_min_size_copts(),
11166    }) + select({
11167        ":xnn_enable_hmp_explicit_false": ["-DXNN_MAX_UARCH_TYPES=1"],
11168        "//conditions:default": [],
11169    }),
11170    gcc_copts = xnnpack_gcc_std_copts(),
11171    msvc_copts = xnnpack_msvc_std_copts(),
11172    visibility = xnnpack_visibility(),
11173    deps = [
11174        ":allocator",
11175        ":common",
11176        ":enable_assembly",
11177        ":enable_gemm_m_specialization",
11178        ":enable_jit",
11179        ":logging",
11180        ":math",
11181        ":microkernels_h",
11182        ":operators_test_mode",
11183        ":microparams",
11184        ":microparams_init",
11185        ":params",
11186        ":subgraph_test_mode",
11187        ":test_microkernels",
11188    ] + select({
11189        ":emscripten": [],
11190        "//conditions:default": ["@cpuinfo"],
11191    }),
11192)
11193
11194# Specialized XNNPACK version for TensorFlow Lite. Excludes operators currently
11195# not used by the TensorFlow Lite XNNPACK delegate to minimize code size.
11196xnnpack_cc_library(
11197    name = "xnnpack_for_tflite",
11198    srcs = [
11199        "src/init.c",
11200    ],
11201    hdrs = ["include/xnnpack.h"],
11202    copts = select({
11203        ":debug_build": [],
11204        "//conditions:default": xnnpack_min_size_copts(),
11205    }) + select({
11206        ":xnn_enable_hmp_explicit_false": ["-DXNN_MAX_UARCH_TYPES=1"],
11207        "//conditions:default": [],
11208    }),
11209    defines = select({
11210        ":xnn_enable_qu8_explicit_true": [],
11211        ":xnn_enable_qu8_explicit_false": [
11212            "XNN_NO_QU8_OPERATORS",
11213            "XNN_NO_U8_OPERATORS",
11214        ],
11215        "//conditions:default": [],
11216    }) + select({
11217        ":xnn_enable_qs8_explicit_true": [],
11218        ":xnn_enable_qs8_explicit_false": [
11219            "XNN_NO_QS8_OPERATORS",
11220            "XNN_NO_S8_OPERATORS",
11221        ],
11222        "//conditions:default": [],
11223    }),
11224    gcc_copts = xnnpack_gcc_std_copts(),
11225    msvc_copts = xnnpack_msvc_std_copts(),
11226    visibility = xnnpack_visibility(),
11227    deps = [
11228        ":allocator",
11229        ":common",
11230        ":enable_assembly",
11231        ":enable_gemm_m_specialization",
11232        ":enable_jit",
11233        ":logging",
11234        ":math",
11235        ":microkernels_h",
11236        ":operators",
11237        ":amalgam_microkernels",
11238        ":microparams",
11239        ":microparams_init",
11240        ":params",
11241        ":subgraph",
11242    ] + select({
11243        ":emscripten": [],
11244        "//conditions:default": ["@cpuinfo"],
11245    }),
11246)
11247
11248# Specialized XNNPACK version for TensorFlow.js. Excludes operators currently
11249# not used by the TensorFlow.js WebAssembly backend to minimize code size.
11250xnnpack_cc_library(
11251    name = "xnnpack_for_tfjs",
11252    srcs = [
11253        "src/init.c",
11254    ],
11255    hdrs = ["include/xnnpack.h"],
11256    copts = select({
11257        ":debug_build": [],
11258        "//conditions:default": xnnpack_min_size_copts(),
11259    }) + select({
11260        ":xnn_enable_hmp_explicit_false": ["-DXNN_MAX_UARCH_TYPES=1"],
11261        "//conditions:default": [],
11262    }),
11263    defines = [
11264        "XNN_NO_QS8_OPERATORS",
11265        "XNN_NO_QU8_OPERATORS",
11266        "XNN_NO_S8_OPERATORS",
11267        "XNN_NO_U8_OPERATORS",
11268        "XNN_NO_X8_OPERATORS",
11269        "XNN_NO_NCHW_OPERATORS",
11270    ],
11271    gcc_copts = xnnpack_gcc_std_copts(),
11272    msvc_copts = xnnpack_msvc_std_copts(),
11273    visibility = xnnpack_visibility(),
11274    deps = [
11275        ":allocator",
11276        ":common",
11277        ":enable_assembly",
11278        ":enable_gemm_m_specialization",
11279        ":enable_jit",
11280        ":logging",
11281        ":math",
11282        ":microkernels_h",
11283        ":operators",
11284        ":microparams",
11285        ":microparams_init",
11286        ":params",
11287        ":prod_microkernels",
11288    ] + select({
11289        ":emscripten": [],
11290        "//conditions:default": ["@cpuinfo"],
11291    }),
11292)
11293
11294xnnpack_cc_library(
11295    name = "bench_utils",
11296    srcs = ["bench/utils.cc"],
11297    hdrs = ["bench/utils.h"],
11298    deps = [
11299        ":XNNPACK",
11300        ":allocator",
11301        ":common",
11302        ":params",
11303        "@com_google_benchmark//:benchmark",
11304        "@cpuinfo",
11305    ],
11306)
11307
11308######################### Benchmarks for micro-kernels #########################
11309
11310xnnpack_benchmark(
11311    name = "qs8_dwconv_bench",
11312    srcs = [
11313        "bench/dwconv.h",
11314        "bench/qs8-dwconv.cc",
11315    ],
11316    deps = MICROKERNEL_BENCHMARK_DEPS + [
11317        ":operators",
11318        ":indirection",
11319        ":packing",
11320    ],
11321)
11322
11323xnnpack_benchmark(
11324    name = "qs8_f32_vcvt_bench",
11325    srcs = [
11326        "bench/qs8-f32-vcvt.cc",
11327    ],
11328    deps = MICROKERNEL_BENCHMARK_DEPS,
11329)
11330
11331xnnpack_benchmark(
11332    name = "qs8_gemm_bench",
11333    srcs = [
11334        "bench/gemm.h",
11335        "bench/qs8-gemm.cc",
11336    ],
11337    copts = xnnpack_optional_ruy_copts() + xnnpack_optional_gemmlowp_copts(),
11338    deps = MICROKERNEL_BENCHMARK_DEPS + [
11339        ":enable_jit",
11340        ":math",
11341        ":packing",
11342    ] + xnnpack_optional_ruy_deps() + xnnpack_optional_gemmlowp_deps(),
11343)
11344
11345xnnpack_benchmark(
11346    name = "qs8_requantization_bench",
11347    srcs = [
11348        "bench/qs8-requantization.cc",
11349    ],
11350    deps = MICROKERNEL_BENCHMARK_DEPS + [":requantization_stubs"],
11351)
11352
11353xnnpack_benchmark(
11354    name = "qs8_vadd_bench",
11355    srcs = [
11356        "bench/qs8-vadd.cc",
11357    ],
11358    deps = MICROKERNEL_BENCHMARK_DEPS,
11359)
11360
11361xnnpack_benchmark(
11362    name = "qs8_vaddc_bench",
11363    srcs = [
11364        "bench/qs8-vaddc.cc",
11365    ],
11366    deps = MICROKERNEL_BENCHMARK_DEPS,
11367)
11368
11369xnnpack_benchmark(
11370    name = "qs8_vcvt_bench",
11371    srcs = [
11372        "bench/qs8-vcvt.cc",
11373    ],
11374    deps = MICROKERNEL_BENCHMARK_DEPS,
11375)
11376
11377xnnpack_benchmark(
11378    name = "qs8_vlrelu_bench",
11379    srcs = [
11380        "bench/qs8-vlrelu.cc",
11381    ],
11382    deps = MICROKERNEL_BENCHMARK_DEPS,
11383)
11384
11385xnnpack_benchmark(
11386    name = "qs8_vmul_bench",
11387    srcs = [
11388        "bench/qs8-vmul.cc",
11389    ],
11390    deps = MICROKERNEL_BENCHMARK_DEPS,
11391)
11392
11393xnnpack_benchmark(
11394    name = "qs8_vmulc_bench",
11395    srcs = [
11396        "bench/qs8-vmulc.cc",
11397    ],
11398    deps = MICROKERNEL_BENCHMARK_DEPS,
11399)
11400
11401xnnpack_benchmark(
11402    name = "qu8_f32_vcvt_bench",
11403    srcs = [
11404        "bench/qu8-f32-vcvt.cc",
11405    ],
11406    deps = MICROKERNEL_BENCHMARK_DEPS,
11407)
11408
11409xnnpack_benchmark(
11410    name = "qu8_gemm_bench",
11411    srcs = [
11412        "bench/gemm.h",
11413        "bench/qu8-gemm.cc",
11414    ],
11415    copts = xnnpack_optional_ruy_copts() + xnnpack_optional_gemmlowp_copts(),
11416    deps = MICROKERNEL_BENCHMARK_DEPS + [
11417        ":math",
11418        ":packing",
11419    ] + xnnpack_optional_ruy_deps() + xnnpack_optional_gemmlowp_deps(),
11420)
11421
11422xnnpack_benchmark(
11423    name = "qu8_requantization_bench",
11424    srcs = [
11425        "bench/qu8-requantization.cc",
11426    ],
11427    deps = MICROKERNEL_BENCHMARK_DEPS + [":requantization_stubs"],
11428)
11429
11430xnnpack_benchmark(
11431    name = "qu8_vadd_bench",
11432    srcs = [
11433        "bench/qu8-vadd.cc",
11434    ],
11435    deps = MICROKERNEL_BENCHMARK_DEPS,
11436)
11437
11438xnnpack_benchmark(
11439    name = "qu8_vaddc_bench",
11440    srcs = [
11441        "bench/qu8-vaddc.cc",
11442    ],
11443    deps = MICROKERNEL_BENCHMARK_DEPS,
11444)
11445
11446xnnpack_benchmark(
11447    name = "qu8_vcvt_bench",
11448    srcs = [
11449        "bench/qu8-vcvt.cc",
11450    ],
11451    deps = MICROKERNEL_BENCHMARK_DEPS,
11452)
11453
11454xnnpack_benchmark(
11455    name = "qu8_vlrelu_bench",
11456    srcs = [
11457        "bench/qu8-vlrelu.cc",
11458    ],
11459    deps = MICROKERNEL_BENCHMARK_DEPS,
11460)
11461
11462xnnpack_benchmark(
11463    name = "qu8_vmul_bench",
11464    srcs = [
11465        "bench/qu8-vmul.cc",
11466    ],
11467    deps = MICROKERNEL_BENCHMARK_DEPS,
11468)
11469
11470xnnpack_benchmark(
11471    name = "qu8_vmulc_bench",
11472    srcs = [
11473        "bench/qu8-vmulc.cc",
11474    ],
11475    deps = MICROKERNEL_BENCHMARK_DEPS,
11476)
11477
11478xnnpack_benchmark(
11479    name = "bf16_gemm_bench",
11480    srcs = [
11481        "bench/bf16-gemm.cc",
11482        "bench/gemm.h",
11483    ],
11484    deps = MICROKERNEL_BENCHMARK_DEPS + [
11485        ":math",
11486        ":packing",
11487    ],
11488)
11489
11490xnnpack_benchmark(
11491    name = "f16_igemm_bench",
11492    srcs = [
11493        "bench/conv.h",
11494        "bench/f16-igemm.cc",
11495    ],
11496    deps = MICROKERNEL_BENCHMARK_DEPS + [
11497        ":operators",
11498        ":indirection",
11499        ":packing",
11500    ],
11501)
11502
11503xnnpack_benchmark(
11504    name = "f16_gemm_bench",
11505    srcs = [
11506        "bench/f16-gemm.cc",
11507        "bench/gemm.h",
11508    ],
11509    deps = MICROKERNEL_BENCHMARK_DEPS + [
11510        ":math",
11511        ":packing",
11512    ],
11513)
11514
11515xnnpack_benchmark(
11516    name = "f16_raddstoreexpminusmax_bench",
11517    srcs = [
11518        "bench/f16-raddstoreexpminusmax.cc",
11519    ],
11520    deps = MICROKERNEL_BENCHMARK_DEPS,
11521)
11522
11523xnnpack_benchmark(
11524    name = "f16_spmm_bench",
11525    srcs = [
11526        "bench/f16-spmm.cc",
11527        "bench/spmm.h",
11528    ],
11529    deps = MICROKERNEL_BENCHMARK_DEPS,
11530)
11531
11532xnnpack_benchmark(
11533    name = "f16_vsigmoid_bench",
11534    srcs = [
11535        "bench/f16-vsigmoid.cc",
11536    ],
11537    deps = MICROKERNEL_BENCHMARK_DEPS,
11538)
11539
11540xnnpack_benchmark(
11541    name = "f16_f32_vcvt_bench",
11542    srcs = [
11543        "bench/f16-f32-vcvt.cc",
11544    ],
11545    deps = MICROKERNEL_BENCHMARK_DEPS,
11546)
11547
11548xnnpack_benchmark(
11549    name = "f32_igemm_bench",
11550    srcs = [
11551        "bench/conv.h",
11552        "bench/f32-igemm.cc",
11553    ],
11554    deps = MICROKERNEL_BENCHMARK_DEPS + [
11555        ":indirection",
11556        ":operators",
11557        ":packing",
11558    ],
11559)
11560
11561xnnpack_benchmark(
11562    name = "f32_conv_hwc_bench",
11563    srcs = [
11564        "bench/dconv.h",
11565        "bench/f32-conv-hwc.cc",
11566    ],
11567    deps = MICROKERNEL_BENCHMARK_DEPS + [
11568        ":packing",
11569    ],
11570)
11571
11572xnnpack_benchmark(
11573    name = "f16_conv_hwc2chw_bench",
11574    srcs = [
11575        "bench/dconv.h",
11576        "bench/f16-conv-hwc2chw.cc",
11577    ],
11578    deps = MICROKERNEL_BENCHMARK_DEPS + [
11579        ":packing",
11580    ],
11581)
11582
11583xnnpack_benchmark(
11584    name = "f32_conv_hwc2chw_bench",
11585    srcs = [
11586        "bench/dconv.h",
11587        "bench/f32-conv-hwc2chw.cc",
11588    ],
11589    deps = MICROKERNEL_BENCHMARK_DEPS + [
11590        ":packing",
11591    ],
11592)
11593
11594xnnpack_benchmark(
11595    name = "f16_dwconv_bench",
11596    srcs = [
11597        "bench/dwconv.h",
11598        "bench/f16-dwconv.cc",
11599    ],
11600    deps = MICROKERNEL_BENCHMARK_DEPS + [
11601        ":operators",
11602        ":indirection",
11603        ":packing",
11604    ],
11605)
11606
11607xnnpack_benchmark(
11608    name = "f32_dwconv_bench",
11609    srcs = [
11610        "bench/dwconv.h",
11611        "bench/f32-dwconv.cc",
11612    ],
11613    deps = MICROKERNEL_BENCHMARK_DEPS + [
11614        ":operators",
11615        ":indirection",
11616        ":packing",
11617    ],
11618)
11619
11620xnnpack_benchmark(
11621    name = "f32_dwconv2d_chw_bench",
11622    srcs = [
11623        "bench/dwconv.h",
11624        "bench/f32-dwconv2d-chw.cc",
11625    ],
11626    deps = MICROKERNEL_BENCHMARK_DEPS + [
11627        ":operators",
11628        ":indirection",
11629        ":packing",
11630    ],
11631)
11632
11633xnnpack_benchmark(
11634    name = "f16_dwconv2d_chw_bench",
11635    srcs = [
11636        "bench/dwconv.h",
11637        "bench/f16-dwconv2d-chw.cc",
11638    ],
11639    deps = MICROKERNEL_BENCHMARK_DEPS + [
11640        ":operators",
11641        ":indirection",
11642        ":packing",
11643    ],
11644)
11645
11646xnnpack_benchmark(
11647    name = "f32_f16_vcvt_bench",
11648    srcs = [
11649        "bench/f32-f16-vcvt.cc",
11650    ],
11651    deps = MICROKERNEL_BENCHMARK_DEPS,
11652)
11653
11654xnnpack_benchmark(
11655    name = "xx_transpose_bench",
11656    srcs = [
11657        "bench/xx-transpose.cc",
11658    ],
11659    deps = MICROKERNEL_BENCHMARK_DEPS,
11660)
11661
11662xnnpack_benchmark(
11663    name = "x8_transpose_bench",
11664    srcs = [
11665        "bench/x8-transpose.cc",
11666    ],
11667    deps = MICROKERNEL_BENCHMARK_DEPS,
11668)
11669
11670xnnpack_benchmark(
11671    name = "x16_transpose_bench",
11672    srcs = [
11673        "bench/x16-transpose.cc",
11674    ],
11675    deps = MICROKERNEL_BENCHMARK_DEPS,
11676)
11677
11678xnnpack_benchmark(
11679    name = "x24_transpose_bench",
11680    srcs = [
11681        "bench/x24-transpose.cc",
11682    ],
11683    deps = MICROKERNEL_BENCHMARK_DEPS,
11684)
11685
11686xnnpack_benchmark(
11687    name = "x32_transpose_bench",
11688    srcs = [
11689        "bench/x32-transpose.cc",
11690    ],
11691    deps = MICROKERNEL_BENCHMARK_DEPS,
11692)
11693
11694xnnpack_benchmark(
11695    name = "x64_transpose_bench",
11696    srcs = [
11697        "bench/x64-transpose.cc",
11698    ],
11699    deps = MICROKERNEL_BENCHMARK_DEPS,
11700)
11701
11702xnnpack_benchmark(
11703    name = "f32_gemm_bench",
11704    srcs = [
11705        "bench/f32-gemm.cc",
11706        "bench/gemm.h",
11707    ],
11708    copts = xnnpack_optional_ruy_copts(),
11709    deps = MICROKERNEL_BENCHMARK_DEPS + [
11710        ":allocator",
11711        ":math",
11712        ":packing",
11713    ] + xnnpack_optional_ruy_deps(),
11714)
11715
11716xnnpack_benchmark(
11717    name = "f32_qs8_vcvt_bench",
11718    srcs = [
11719        "bench/f32-qs8-vcvt.cc",
11720    ],
11721    deps = MICROKERNEL_BENCHMARK_DEPS,
11722)
11723
11724xnnpack_benchmark(
11725    name = "f32_qu8_vcvt_bench",
11726    srcs = [
11727        "bench/f32-qu8-vcvt.cc",
11728    ],
11729    deps = MICROKERNEL_BENCHMARK_DEPS,
11730)
11731
11732xnnpack_benchmark(
11733    name = "f32_raddexpminusmax_bench",
11734    srcs = [
11735        "bench/f32-raddexpminusmax.cc",
11736    ],
11737    deps = MICROKERNEL_BENCHMARK_DEPS,
11738)
11739
11740xnnpack_benchmark(
11741    name = "f32_raddextexp_bench",
11742    srcs = [
11743        "bench/f32-raddextexp.cc",
11744    ],
11745    deps = MICROKERNEL_BENCHMARK_DEPS,
11746)
11747
11748xnnpack_benchmark(
11749    name = "f32_raddstoreexpminusmax_bench",
11750    srcs = [
11751        "bench/f32-raddstoreexpminusmax.cc",
11752    ],
11753    deps = MICROKERNEL_BENCHMARK_DEPS,
11754)
11755
11756xnnpack_benchmark(
11757    name = "f32_rmax_bench",
11758    srcs = [
11759        "bench/f32-rmax.cc",
11760    ],
11761    deps = MICROKERNEL_BENCHMARK_DEPS,
11762)
11763
11764xnnpack_benchmark(
11765    name = "f32_spmm_bench",
11766    srcs = [
11767        "bench/f32-spmm.cc",
11768        "bench/spmm.h",
11769    ],
11770    deps = MICROKERNEL_BENCHMARK_DEPS,
11771)
11772
11773xnnpack_benchmark(
11774    name = "f32_softmax_bench",
11775    srcs = [
11776        "bench/f32-softmax.cc",
11777    ],
11778    copts = xnnpack_optional_dnnl_copts(),
11779    deps = MICROKERNEL_BENCHMARK_DEPS + xnnpack_optional_dnnl_deps(),
11780)
11781
11782xnnpack_benchmark(
11783    name = "f16_velu_bench",
11784    srcs = [
11785        "bench/f16-velu.cc",
11786    ],
11787    deps = MICROKERNEL_BENCHMARK_DEPS,
11788)
11789
11790xnnpack_benchmark(
11791    name = "f32_velu_bench",
11792    srcs = [
11793        "bench/f32-velu.cc",
11794    ],
11795    deps = MICROKERNEL_BENCHMARK_DEPS,
11796)
11797
11798xnnpack_benchmark(
11799    name = "f32_vhswish_bench",
11800    srcs = [
11801        "bench/f32-vhswish.cc",
11802    ],
11803    deps = MICROKERNEL_BENCHMARK_DEPS,
11804)
11805
11806xnnpack_benchmark(
11807    name = "f32_vlrelu_bench",
11808    srcs = [
11809        "bench/f32-vlrelu.cc",
11810    ],
11811    deps = MICROKERNEL_BENCHMARK_DEPS,
11812)
11813
11814xnnpack_benchmark(
11815    name = "f32_vrelu_bench",
11816    srcs = [
11817        "bench/f32-vrelu.cc",
11818    ],
11819    deps = MICROKERNEL_BENCHMARK_DEPS,
11820)
11821
11822xnnpack_benchmark(
11823    name = "f32_vscaleexpminusmax_bench",
11824    srcs = [
11825        "bench/f32-vscaleexpminusmax.cc",
11826    ],
11827    deps = MICROKERNEL_BENCHMARK_DEPS,
11828)
11829
11830xnnpack_benchmark(
11831    name = "f32_vscaleextexp_bench",
11832    srcs = [
11833        "bench/f32-vscaleextexp.cc",
11834    ],
11835    deps = MICROKERNEL_BENCHMARK_DEPS,
11836)
11837
11838xnnpack_benchmark(
11839    name = "f32_vsigmoid_bench",
11840    srcs = [
11841        "bench/f32-vsigmoid.cc",
11842    ],
11843    deps = MICROKERNEL_BENCHMARK_DEPS,
11844)
11845
11846xnnpack_benchmark(
11847    name = "f32_vsqrt_bench",
11848    srcs = [
11849        "bench/f32-vsqrt.cc",
11850    ],
11851    deps = MICROKERNEL_BENCHMARK_DEPS,
11852)
11853
11854xnnpack_benchmark(
11855    name = "f32_im2col_gemm_bench",
11856    srcs = [
11857        "bench/conv.h",
11858        "bench/f32-im2col-gemm.cc",
11859    ],
11860    deps = MICROKERNEL_BENCHMARK_DEPS + [
11861        ":math",
11862        ":im2col",
11863        ":packing",
11864    ],
11865)
11866
11867xnnpack_benchmark(
11868    name = "rounding_bench",
11869    srcs = [
11870        "bench/rounding.cc",
11871    ],
11872    deps = MICROKERNEL_BENCHMARK_DEPS,
11873)
11874
11875xnnpack_benchmark(
11876    name = "s16_rmaxabs_bench",
11877    srcs = [
11878        "bench/s16-rmaxabs.cc",
11879    ],
11880    deps = MICROKERNEL_BENCHMARK_DEPS,
11881)
11882
11883xnnpack_benchmark(
11884    name = "s16_window_bench",
11885    srcs = [
11886        "bench/s16-window.cc",
11887    ],
11888    deps = MICROKERNEL_BENCHMARK_DEPS,
11889)
11890
11891xnnpack_benchmark(
11892    name = "u32_filterbank_accumulate_bench",
11893    srcs = [
11894        "bench/u32-filterbank-accumulate.cc",
11895    ],
11896    deps = MICROKERNEL_BENCHMARK_DEPS,
11897)
11898
11899xnnpack_benchmark(
11900    name = "u32_filterbank_subtract_bench",
11901    srcs = [
11902        "bench/u32-filterbank-subtract.cc",
11903    ],
11904    deps = MICROKERNEL_BENCHMARK_DEPS,
11905)
11906
11907xnnpack_benchmark(
11908    name = "u32_vlog_bench",
11909    srcs = [
11910        "bench/u32-vlog.cc",
11911    ],
11912    deps = MICROKERNEL_BENCHMARK_DEPS,
11913)
11914
11915xnnpack_benchmark(
11916    name = "u64_u32_vsqrtshift_bench",
11917    srcs = [
11918        "bench/u64-u32-vsqrtshift.cc",
11919    ],
11920    deps = MICROKERNEL_BENCHMARK_DEPS,
11921)
11922
11923xnnpack_benchmark(
11924    name = "s16_vlshift_bench",
11925    srcs = [
11926        "bench/s16-vlshift.cc",
11927    ],
11928    deps = MICROKERNEL_BENCHMARK_DEPS,
11929)
11930
11931xnnpack_benchmark(
11932    name = "cs16_vsquareabs_bench",
11933    srcs = [
11934        "bench/cs16-vsquareabs.cc",
11935    ],
11936    deps = MICROKERNEL_BENCHMARK_DEPS,
11937)
11938
11939xnnpack_benchmark(
11940    name = "cs16_bfly4_bench",
11941    srcs = [
11942        "bench/cs16-bfly4.cc",
11943    ],
11944    deps = MICROKERNEL_BENCHMARK_DEPS,
11945)
11946
11947xnnpack_benchmark(
11948    name = "cs16_fftr_bench",
11949    srcs = [
11950        "bench/cs16-fftr.cc",
11951    ],
11952    deps = MICROKERNEL_BENCHMARK_DEPS,
11953)
11954
11955xnnpack_benchmark(
11956    name = "x8_lut_bench",
11957    srcs = [
11958        "bench/x8-lut.cc",
11959    ],
11960    deps = MICROKERNEL_BENCHMARK_DEPS,
11961)
11962
11963########################### Benchmarks for operators ###########################
11964
11965xnnpack_benchmark(
11966    name = "abs_bench",
11967    srcs = ["bench/abs.cc"],
11968    copts = xnnpack_optional_tflite_copts(),
11969    tags = ["nowin32"],
11970    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
11971)
11972
11973xnnpack_benchmark(
11974    name = "average_pooling_bench",
11975    srcs = ["bench/average-pooling.cc"],
11976    copts = xnnpack_optional_tflite_copts(),
11977    tags = ["nowin32"],
11978    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
11979)
11980
11981xnnpack_benchmark(
11982    name = "bankers_rounding_bench",
11983    srcs = ["bench/bankers-rounding.cc"],
11984    copts = xnnpack_optional_tflite_copts(),
11985    tags = ["nowin32"],
11986    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
11987)
11988
11989xnnpack_benchmark(
11990    name = "ceiling_bench",
11991    srcs = ["bench/ceiling.cc"],
11992    copts = xnnpack_optional_tflite_copts(),
11993    tags = ["nowin32"],
11994    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
11995)
11996
11997xnnpack_benchmark(
11998    name = "channel_shuffle_bench",
11999    srcs = ["bench/channel-shuffle.cc"],
12000    deps = OPERATOR_BENCHMARK_DEPS,
12001)
12002
12003xnnpack_benchmark(
12004    name = "convert_bench",
12005    srcs = [
12006        "bench/convert.cc",
12007    ],
12008    copts = xnnpack_optional_tflite_copts(),
12009    tags = ["nowin32"],
12010    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12011)
12012
12013xnnpack_benchmark(
12014    name = "convolution_bench",
12015    srcs = ["bench/convolution.cc"],
12016    copts = xnnpack_optional_tflite_copts(),
12017    tags = ["nowin32"],
12018    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12019)
12020
12021xnnpack_benchmark(
12022    name = "deconvolution_bench",
12023    srcs = ["bench/deconvolution.cc"],
12024    copts = xnnpack_optional_tflite_copts(),
12025    tags = ["nowin32"],
12026    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12027)
12028
12029xnnpack_benchmark(
12030    name = "elu_bench",
12031    srcs = ["bench/elu.cc"],
12032    copts = xnnpack_optional_tflite_copts(),
12033    tags = ["nowin32"],
12034    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12035)
12036
12037xnnpack_benchmark(
12038    name = "floor_bench",
12039    srcs = ["bench/floor.cc"],
12040    copts = xnnpack_optional_tflite_copts(),
12041    tags = ["nowin32"],
12042    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12043)
12044
12045xnnpack_benchmark(
12046    name = "global_average_pooling_bench",
12047    srcs = ["bench/global-average-pooling.cc"],
12048    deps = OPERATOR_BENCHMARK_DEPS,
12049)
12050
12051xnnpack_benchmark(
12052    name = "hardswish_bench",
12053    srcs = ["bench/hardswish.cc"],
12054    copts = xnnpack_optional_tflite_copts(),
12055    tags = ["nowin32"],
12056    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12057)
12058
12059xnnpack_benchmark(
12060    name = "leaky_relu_bench",
12061    srcs = ["bench/leaky-relu.cc"],
12062    copts = xnnpack_optional_tflite_copts(),
12063    tags = ["nowin32"],
12064    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12065)
12066
12067xnnpack_benchmark(
12068    name = "max_pooling_bench",
12069    srcs = ["bench/max-pooling.cc"],
12070    deps = OPERATOR_BENCHMARK_DEPS,
12071)
12072
12073xnnpack_benchmark(
12074    name = "negate_bench",
12075    srcs = ["bench/negate.cc"],
12076    copts = xnnpack_optional_tflite_copts(),
12077    tags = ["nowin32"],
12078    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12079)
12080
12081xnnpack_benchmark(
12082    name = "sigmoid_bench",
12083    srcs = ["bench/sigmoid.cc"],
12084    copts = xnnpack_optional_tflite_copts(),
12085    tags = ["nowin32"],
12086    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12087)
12088
12089xnnpack_benchmark(
12090    name = "prelu_bench",
12091    srcs = ["bench/prelu.cc"],
12092    copts = xnnpack_optional_tflite_copts(),
12093    tags = ["nowin32"],
12094    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12095)
12096
12097xnnpack_benchmark(
12098    name = "softmax_bench",
12099    srcs = ["bench/softmax.cc"],
12100    copts = xnnpack_optional_tflite_copts(),
12101    tags = ["nowin32"],
12102    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12103)
12104
12105xnnpack_benchmark(
12106    name = "square_bench",
12107    srcs = ["bench/square.cc"],
12108    copts = xnnpack_optional_tflite_copts(),
12109    tags = ["nowin32"],
12110    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12111)
12112
12113xnnpack_benchmark(
12114    name = "square_root_bench",
12115    srcs = ["bench/square-root.cc"],
12116    copts = xnnpack_optional_tflite_copts(),
12117    tags = ["nowin32"],
12118    deps = OPERATOR_BENCHMARK_DEPS + xnnpack_optional_tflite_deps(),
12119)
12120
12121xnnpack_benchmark(
12122    name = "truncation_bench",
12123    srcs = ["bench/truncation.cc"],
12124    deps = OPERATOR_BENCHMARK_DEPS,
12125)
12126
12127############################# End-to-end benchmarks ############################
12128
12129xnnpack_cc_library(
12130    name = "fp32_mobilenet_v1",
12131    srcs = ["models/fp32-mobilenet-v1.cc"],
12132    hdrs = ["models/models.h"],
12133    copts = xnnpack_std_cxxopts(),
12134    deps = [
12135        ":XNNPACK",
12136        ":cache",
12137        "@pthreadpool",
12138    ],
12139)
12140
12141xnnpack_cc_library(
12142    name = "fp32_sparse_mobilenet_v1",
12143    srcs = ["models/fp32-sparse-mobilenet-v1.cc"],
12144    hdrs = ["models/models.h"],
12145    copts = xnnpack_std_cxxopts(),
12146    deps = [
12147        ":XNNPACK",
12148        ":cache",
12149        "@pthreadpool",
12150    ],
12151)
12152
12153xnnpack_cc_library(
12154    name = "fp16_mobilenet_v1",
12155    srcs = ["models/fp16-mobilenet-v1.cc"],
12156    hdrs = ["models/models.h"],
12157    copts = xnnpack_std_cxxopts(),
12158    deps = [
12159        ":XNNPACK",
12160        ":cache",
12161        "@FP16",
12162        "@pthreadpool",
12163    ],
12164)
12165
12166xnnpack_cc_library(
12167    name = "qc8_mobilenet_v1",
12168    srcs = ["models/qc8-mobilenet-v1.cc"],
12169    hdrs = ["models/models.h"],
12170    copts = xnnpack_std_cxxopts(),
12171    deps = [
12172        ":XNNPACK",
12173        ":cache",
12174        "@pthreadpool",
12175    ],
12176)
12177
12178xnnpack_cc_library(
12179    name = "qc8_mobilenet_v2",
12180    srcs = ["models/qc8-mobilenet-v2.cc"],
12181    hdrs = ["models/models.h"],
12182    copts = xnnpack_std_cxxopts(),
12183    deps = [
12184        ":XNNPACK",
12185        ":cache",
12186        "@pthreadpool",
12187    ],
12188)
12189
12190xnnpack_cc_library(
12191    name = "qs8_mobilenet_v1",
12192    srcs = ["models/qs8-mobilenet-v1.cc"],
12193    hdrs = ["models/models.h"],
12194    copts = xnnpack_std_cxxopts(),
12195    deps = [
12196        ":XNNPACK",
12197        ":cache",
12198        "@pthreadpool",
12199    ],
12200)
12201
12202xnnpack_cc_library(
12203    name = "qs8_mobilenet_v2",
12204    srcs = ["models/qs8-mobilenet-v2.cc"],
12205    hdrs = ["models/models.h"],
12206    copts = xnnpack_std_cxxopts(),
12207    deps = [
12208        ":XNNPACK",
12209        ":cache",
12210        "@pthreadpool",
12211    ],
12212)
12213
12214xnnpack_cc_library(
12215    name = "qu8_mobilenet_v1",
12216    srcs = ["models/qu8-mobilenet-v1.cc"],
12217    hdrs = ["models/models.h"],
12218    copts = xnnpack_std_cxxopts(),
12219    deps = [
12220        ":XNNPACK",
12221        ":cache",
12222        "@pthreadpool",
12223    ],
12224)
12225
12226xnnpack_cc_library(
12227    name = "qu8_mobilenet_v2",
12228    srcs = ["models/qu8-mobilenet-v2.cc"],
12229    hdrs = ["models/models.h"],
12230    copts = xnnpack_std_cxxopts(),
12231    deps = [
12232        ":XNNPACK",
12233        ":cache",
12234        "@pthreadpool",
12235    ],
12236)
12237
12238xnnpack_cc_library(
12239    name = "fp32_mobilenet_v2",
12240    srcs = ["models/fp32-mobilenet-v2.cc"],
12241    hdrs = ["models/models.h"],
12242    copts = xnnpack_std_cxxopts(),
12243    deps = [
12244        ":XNNPACK",
12245        ":cache",
12246        "@pthreadpool",
12247    ],
12248)
12249
12250xnnpack_cc_library(
12251    name = "fp32_sparse_mobilenet_v2",
12252    srcs = ["models/fp32-sparse-mobilenet-v2.cc"],
12253    hdrs = ["models/models.h"],
12254    copts = xnnpack_std_cxxopts(),
12255    deps = [
12256        ":XNNPACK",
12257        ":cache",
12258        "@pthreadpool",
12259    ],
12260)
12261
12262xnnpack_cc_library(
12263    name = "fp16_mobilenet_v2",
12264    srcs = ["models/fp16-mobilenet-v2.cc"],
12265    hdrs = ["models/models.h"],
12266    copts = xnnpack_std_cxxopts(),
12267    deps = [
12268        ":XNNPACK",
12269        ":cache",
12270        "@FP16",
12271        "@pthreadpool",
12272    ],
12273)
12274
12275xnnpack_cc_library(
12276    name = "fp32_mobilenet_v3_large",
12277    srcs = ["models/fp32-mobilenet-v3-large.cc"],
12278    hdrs = ["models/models.h"],
12279    copts = xnnpack_std_cxxopts(),
12280    deps = [
12281        ":XNNPACK",
12282        ":cache",
12283        "@pthreadpool",
12284    ],
12285)
12286
12287xnnpack_cc_library(
12288    name = "fp32_sparse_mobilenet_v3_large",
12289    srcs = ["models/fp32-sparse-mobilenet-v3-large.cc"],
12290    hdrs = ["models/models.h"],
12291    copts = xnnpack_std_cxxopts(),
12292    deps = [
12293        ":XNNPACK",
12294        ":cache",
12295        "@pthreadpool",
12296    ],
12297)
12298
12299xnnpack_cc_library(
12300    name = "fp16_mobilenet_v3_large",
12301    srcs = ["models/fp16-mobilenet-v3-large.cc"],
12302    hdrs = ["models/models.h"],
12303    copts = xnnpack_std_cxxopts(),
12304    deps = [
12305        ":XNNPACK",
12306        ":cache",
12307        "@FP16",
12308        "@pthreadpool",
12309    ],
12310)
12311
12312xnnpack_cc_library(
12313    name = "fp32_mobilenet_v3_small",
12314    srcs = ["models/fp32-mobilenet-v3-small.cc"],
12315    hdrs = ["models/models.h"],
12316    copts = xnnpack_std_cxxopts(),
12317    deps = [
12318        ":XNNPACK",
12319        ":cache",
12320        "@pthreadpool",
12321    ],
12322)
12323
12324xnnpack_cc_library(
12325    name = "fp32_sparse_mobilenet_v3_small",
12326    srcs = ["models/fp32-sparse-mobilenet-v3-small.cc"],
12327    hdrs = ["models/models.h"],
12328    copts = xnnpack_std_cxxopts(),
12329    deps = [
12330        ":XNNPACK",
12331        ":cache",
12332        "@pthreadpool",
12333    ],
12334)
12335
12336xnnpack_cc_library(
12337    name = "fp16_mobilenet_v3_small",
12338    srcs = ["models/fp16-mobilenet-v3-small.cc"],
12339    hdrs = ["models/models.h"],
12340    copts = xnnpack_std_cxxopts(),
12341    deps = [
12342        ":XNNPACK",
12343        ":cache",
12344        "@FP16",
12345        "@pthreadpool",
12346    ],
12347)
12348
12349xnnpack_benchmark(
12350    name = "f32_dwconv_e2e_bench",
12351    srcs = [
12352        "bench/end2end.h",
12353        "bench/f32-dwconv-e2e.cc",
12354    ],
12355    deps = MICROKERNEL_BENCHMARK_DEPS + [
12356        ":XNNPACK",
12357        ":fp32_mobilenet_v1",
12358        ":fp32_mobilenet_v2",
12359        ":fp32_mobilenet_v3_large",
12360        ":fp32_mobilenet_v3_small",
12361    ],
12362)
12363
12364xnnpack_benchmark(
12365    name = "f32_gemm_e2e_bench",
12366    srcs = [
12367        "bench/end2end.h",
12368        "bench/f32-gemm-e2e.cc",
12369    ],
12370    deps = MICROKERNEL_BENCHMARK_DEPS + [
12371        ":XNNPACK",
12372        ":fp32_mobilenet_v1",
12373        ":fp32_mobilenet_v2",
12374        ":fp32_mobilenet_v3_large",
12375        ":fp32_mobilenet_v3_small",
12376    ],
12377)
12378
12379xnnpack_benchmark(
12380    name = "qs8_dwconv_e2e_bench",
12381    srcs = [
12382        "bench/end2end.h",
12383        "bench/qs8-dwconv-e2e.cc",
12384    ],
12385    deps = MICROKERNEL_BENCHMARK_DEPS + [
12386        ":XNNPACK",
12387        ":qs8_mobilenet_v1",
12388        ":qs8_mobilenet_v2",
12389    ],
12390)
12391
12392xnnpack_benchmark(
12393    name = "qs8_gemm_e2e_bench",
12394    srcs = [
12395        "bench/end2end.h",
12396        "bench/qs8-gemm-e2e.cc",
12397    ],
12398    deps = MICROKERNEL_BENCHMARK_DEPS + [
12399        ":XNNPACK",
12400        ":qs8_mobilenet_v1",
12401        ":qs8_mobilenet_v2",
12402    ],
12403)
12404
12405xnnpack_benchmark(
12406    name = "qu8_gemm_e2e_bench",
12407    srcs = [
12408        "bench/end2end.h",
12409        "bench/qu8-gemm-e2e.cc",
12410    ],
12411    deps = MICROKERNEL_BENCHMARK_DEPS + [
12412        ":XNNPACK",
12413        ":qu8_mobilenet_v1",
12414        ":qu8_mobilenet_v2",
12415    ],
12416)
12417
12418xnnpack_benchmark(
12419    name = "qu8_dwconv_e2e_bench",
12420    srcs = [
12421        "bench/end2end.h",
12422        "bench/qu8-dwconv-e2e.cc",
12423    ],
12424    deps = MICROKERNEL_BENCHMARK_DEPS + [
12425        ":XNNPACK",
12426        ":qu8_mobilenet_v1",
12427        ":qu8_mobilenet_v2",
12428    ],
12429)
12430
12431xnnpack_benchmark(
12432    name = "end2end_bench",
12433    srcs = ["bench/end2end.cc"],
12434    deps = [
12435        ":XNNPACK",
12436        ":bench_utils",
12437        ":fp16_mobilenet_v1",
12438        ":fp16_mobilenet_v2",
12439        ":fp16_mobilenet_v3_large",
12440        ":fp16_mobilenet_v3_small",
12441        ":fp32_mobilenet_v1",
12442        ":fp32_mobilenet_v2",
12443        ":fp32_mobilenet_v3_large",
12444        ":fp32_mobilenet_v3_small",
12445        ":fp32_sparse_mobilenet_v1",
12446        ":fp32_sparse_mobilenet_v2",
12447        ":fp32_sparse_mobilenet_v3_large",
12448        ":fp32_sparse_mobilenet_v3_small",
12449        ":qc8_mobilenet_v1",
12450        ":qc8_mobilenet_v2",
12451        ":qs8_mobilenet_v1",
12452        ":qs8_mobilenet_v2",
12453        ":qu8_mobilenet_v1",
12454        ":qu8_mobilenet_v2",
12455        "@pthreadpool",
12456    ],
12457)
12458
12459#################### Accuracy evaluation for math functions ####################
12460
12461xnnpack_benchmark(
12462    name = "f16_exp_ulp_eval",
12463    srcs = [
12464        "eval/f16-exp-ulp.cc",
12465    ],
12466    deps = ACCURACY_EVAL_DEPS,
12467)
12468
12469xnnpack_benchmark(
12470    name = "f16_expminus_ulp_eval",
12471    srcs = [
12472        "eval/f16-expminus-ulp.cc",
12473    ],
12474    deps = ACCURACY_EVAL_DEPS,
12475)
12476
12477xnnpack_benchmark(
12478    name = "f16_expm1minus_ulp_eval",
12479    srcs = [
12480        "eval/f16-expm1minus-ulp.cc",
12481    ],
12482    deps = ACCURACY_EVAL_DEPS,
12483)
12484
12485xnnpack_benchmark(
12486    name = "f16_sigmoid_ulp_eval",
12487    srcs = [
12488        "eval/f16-sigmoid-ulp.cc",
12489    ],
12490    deps = ACCURACY_EVAL_DEPS,
12491)
12492
12493xnnpack_benchmark(
12494    name = "f32_exp_ulp_eval",
12495    srcs = [
12496        "eval/f32-exp-ulp.cc",
12497    ],
12498    deps = ACCURACY_EVAL_DEPS,
12499)
12500
12501xnnpack_benchmark(
12502    name = "f32_expminus_ulp_eval",
12503    srcs = [
12504        "eval/f32-expminus-ulp.cc",
12505    ],
12506    deps = ACCURACY_EVAL_DEPS,
12507)
12508
12509xnnpack_benchmark(
12510    name = "f32_expm1minus_ulp_eval",
12511    srcs = [
12512        "eval/f32-expm1minus-ulp.cc",
12513    ],
12514    deps = ACCURACY_EVAL_DEPS,
12515)
12516
12517xnnpack_benchmark(
12518    name = "f32_extexp_ulp_eval",
12519    srcs = [
12520        "eval/f32-extexp-ulp.cc",
12521    ],
12522    deps = ACCURACY_EVAL_DEPS,
12523)
12524
12525xnnpack_benchmark(
12526    name = "f32_sigmoid_ulp_eval",
12527    srcs = [
12528        "eval/f32-sigmoid-ulp.cc",
12529    ],
12530    deps = ACCURACY_EVAL_DEPS,
12531)
12532
12533xnnpack_benchmark(
12534    name = "f32_sqrt_ulp_eval",
12535    srcs = [
12536        "eval/f32-sqrt-ulp.cc",
12537    ],
12538    deps = ACCURACY_EVAL_DEPS,
12539)
12540
12541################### Accuracy verification for math functions ##################
12542
12543xnnpack_unit_test(
12544    name = "f16_f32_cvt_eval",
12545    srcs = [
12546        "eval/f16-f32-cvt.cc",
12547    ],
12548    automatic = False,
12549    deps = ACCURACY_EVAL_DEPS,
12550)
12551
12552xnnpack_unit_test(
12553    name = "f32_f16_cvt_eval",
12554    srcs = [
12555        "eval/f32-f16-cvt.cc",
12556    ],
12557    automatic = False,
12558    deps = ACCURACY_EVAL_DEPS,
12559)
12560
12561xnnpack_unit_test(
12562    name = "f32_qs8_cvt_eval",
12563    srcs = [
12564        "eval/f32-qs8-cvt.cc",
12565    ],
12566    automatic = False,
12567    deps = ACCURACY_EVAL_DEPS,
12568)
12569
12570xnnpack_unit_test(
12571    name = "f32_qu8_cvt_eval",
12572    srcs = [
12573        "eval/f32-qu8-cvt.cc",
12574    ],
12575    automatic = False,
12576    deps = ACCURACY_EVAL_DEPS,
12577)
12578
12579xnnpack_unit_test(
12580    name = "f32_exp_eval",
12581    srcs = [
12582        "eval/f32-exp.cc",
12583    ],
12584    automatic = False,
12585    deps = ACCURACY_EVAL_DEPS,
12586)
12587
12588xnnpack_unit_test(
12589    name = "f32_expm1minus_eval",
12590    srcs = [
12591        "eval/f32-expm1minus.cc",
12592    ],
12593    automatic = False,
12594    deps = ACCURACY_EVAL_DEPS,
12595)
12596
12597xnnpack_unit_test(
12598    name = "f32_expminus_eval",
12599    srcs = [
12600        "eval/f32-expminus.cc",
12601    ],
12602    automatic = False,
12603    deps = ACCURACY_EVAL_DEPS,
12604)
12605
12606xnnpack_unit_test(
12607    name = "f32_roundne_eval",
12608    srcs = [
12609        "eval/f32-roundne.cc",
12610    ],
12611    automatic = False,
12612    deps = ACCURACY_EVAL_DEPS,
12613)
12614
12615xnnpack_unit_test(
12616    name = "f32_roundd_eval",
12617    srcs = [
12618        "eval/f32-roundd.cc",
12619    ],
12620    automatic = False,
12621    deps = ACCURACY_EVAL_DEPS,
12622)
12623
12624xnnpack_unit_test(
12625    name = "f32_roundu_eval",
12626    srcs = [
12627        "eval/f32-roundu.cc",
12628    ],
12629    automatic = False,
12630    deps = ACCURACY_EVAL_DEPS,
12631)
12632
12633xnnpack_unit_test(
12634    name = "f32_roundz_eval",
12635    srcs = [
12636        "eval/f32-roundz.cc",
12637    ],
12638    automatic = False,
12639    deps = ACCURACY_EVAL_DEPS,
12640)
12641
12642xnnpack_unit_test(
12643    name = "u32_sqrt_eval",
12644    srcs = [
12645        "eval/u32-sqrt.cc",
12646    ],
12647    automatic = False,
12648    deps = ACCURACY_EVAL_DEPS,
12649)
12650
12651xnnpack_unit_test(
12652    name = "u64_sqrt_eval",
12653    srcs = [
12654        "eval/u64-sqrt.cc",
12655    ],
12656    automatic = False,
12657    deps = ACCURACY_EVAL_DEPS,
12658)
12659
12660######################### Unit tests for micro-kernels #########################
12661
12662xnnpack_cc_library(
12663    name = "gemm_microkernel_tester",
12664    testonly = True,
12665    srcs = ["test/gemm-microkernel-tester.cc"],
12666    hdrs = ["test/gemm-microkernel-tester.h"],
12667    deps = MICROKERNEL_TEST_DEPS + [
12668        ":packing",
12669        "@com_google_googletest//:gtest_main",
12670    ],
12671)
12672
12673xnnpack_unit_test(
12674    name = "bf16_gemm_minmax_test",
12675    srcs = [
12676        "test/bf16-gemm-minmax.cc",
12677    ],
12678    deps = MICROKERNEL_TEST_DEPS + [
12679        ":gemm_microkernel_tester",
12680    ],
12681)
12682
12683xnnpack_unit_test(
12684    name = "f16_f32_vcvt_test",
12685    srcs = [
12686        "test/f16-f32-vcvt.cc",
12687        "test/vcvt-microkernel-tester.h",
12688    ],
12689    deps = MICROKERNEL_TEST_DEPS,
12690)
12691
12692xnnpack_unit_test(
12693    name = "f16_avgpool_minmax_test",
12694    srcs = [
12695        "test/avgpool-microkernel-tester.h",
12696        "test/f16-avgpool-minmax.cc",
12697    ],
12698    deps = MICROKERNEL_TEST_DEPS,
12699)
12700
12701xnnpack_unit_test(
12702    name = "f16_dwconv_minmax_test",
12703    srcs = [
12704        "test/dwconv-microkernel-tester.h",
12705        "test/f16-dwconv-minmax.cc",
12706    ],
12707    deps = MICROKERNEL_TEST_DEPS + [":packing"],
12708)
12709
12710xnnpack_unit_test(
12711    name = "f16_gavgpool_cw_test",
12712    srcs = [
12713        "test/f16-gavgpool-cw.cc",
12714        "test/gavgpool-cw-microkernel-tester.h",
12715    ],
12716    deps = MICROKERNEL_TEST_DEPS,
12717)
12718
12719xnnpack_unit_test(
12720    name = "f16_gavgpool_minmax_test",
12721    srcs = [
12722        "test/f16-gavgpool-minmax.cc",
12723        "test/gavgpool-microkernel-tester.h",
12724    ],
12725    deps = MICROKERNEL_TEST_DEPS,
12726)
12727
12728xnnpack_unit_test(
12729    name = "f16_gemm_minmax_test",
12730    srcs = [
12731        "test/f16-gemm-minmax.cc",
12732    ],
12733    deps = MICROKERNEL_TEST_DEPS + [
12734        ":gemm_microkernel_tester",
12735    ],
12736)
12737
12738xnnpack_unit_test(
12739    name = "f16_ibilinear_test",
12740    srcs = [
12741        "test/f16-ibilinear.cc",
12742        "test/ibilinear-microkernel-tester.h",
12743    ],
12744    deps = MICROKERNEL_TEST_DEPS,
12745)
12746
12747xnnpack_unit_test(
12748    name = "f16_ibilinear_chw_test",
12749    srcs = [
12750        "test/f16-ibilinear-chw.cc",
12751        "test/ibilinear-microkernel-tester.h",
12752    ],
12753    deps = MICROKERNEL_TEST_DEPS,
12754)
12755
12756xnnpack_unit_test(
12757    name = "f16_igemm_minmax_test",
12758    srcs = [
12759        "test/f16-igemm-minmax.cc",
12760    ],
12761    shard_count = 5,
12762    deps = MICROKERNEL_TEST_DEPS + [
12763        ":gemm_microkernel_tester",
12764    ],
12765)
12766
12767xnnpack_unit_test(
12768    name = "f16_maxpool_minmax_test",
12769    srcs = [
12770        "test/f16-maxpool-minmax.cc",
12771        "test/maxpool-microkernel-tester.h",
12772    ],
12773    deps = MICROKERNEL_TEST_DEPS,
12774)
12775
12776xnnpack_unit_test(
12777    name = "f16_pavgpool_minmax_test",
12778    srcs = [
12779        "test/avgpool-microkernel-tester.h",
12780        "test/f16-pavgpool-minmax.cc",
12781    ],
12782    deps = MICROKERNEL_TEST_DEPS,
12783)
12784
12785xnnpack_unit_test(
12786    name = "f16_prelu_test",
12787    srcs = [
12788        "test/f16-prelu.cc",
12789        "test/prelu-microkernel-tester.h",
12790    ],
12791    deps = MICROKERNEL_TEST_DEPS,
12792)
12793
12794xnnpack_unit_test(
12795    name = "f16_spmm_minmax_test",
12796    srcs = [
12797        "test/f16-spmm-minmax.cc",
12798        "test/spmm-microkernel-tester.h",
12799    ],
12800    deps = MICROKERNEL_TEST_DEPS,
12801)
12802
12803xnnpack_unit_test(
12804    name = "f16_vabs_test",
12805    srcs = [
12806        "test/f16-vabs.cc",
12807        "test/vunary-microkernel-tester.h",
12808    ],
12809    deps = MICROKERNEL_TEST_DEPS,
12810)
12811
12812xnnpack_unit_test(
12813    name = "f16_vadd_minmax_test",
12814    srcs = [
12815        "test/f16-vadd-minmax.cc",
12816        "test/vbinary-microkernel-tester.h",
12817    ],
12818    deps = MICROKERNEL_TEST_DEPS,
12819)
12820
12821xnnpack_unit_test(
12822    name = "f16_vaddc_minmax_test",
12823    srcs = [
12824        "test/f16-vaddc-minmax.cc",
12825        "test/vbinaryc-microkernel-tester.h",
12826    ],
12827    deps = MICROKERNEL_TEST_DEPS,
12828)
12829
12830xnnpack_unit_test(
12831    name = "f16_vclamp_test",
12832    srcs = [
12833        "test/f16-vclamp.cc",
12834        "test/vunary-microkernel-tester.h",
12835    ],
12836    deps = MICROKERNEL_TEST_DEPS,
12837)
12838
12839xnnpack_unit_test(
12840    name = "f16_vdiv_minmax_test",
12841    srcs = [
12842        "test/f16-vdiv-minmax.cc",
12843        "test/vbinary-microkernel-tester.h",
12844    ],
12845    deps = MICROKERNEL_TEST_DEPS,
12846)
12847
12848xnnpack_unit_test(
12849    name = "f16_vdivc_minmax_test",
12850    srcs = [
12851        "test/f16-vdivc-minmax.cc",
12852        "test/vbinaryc-microkernel-tester.h",
12853    ],
12854    deps = MICROKERNEL_TEST_DEPS,
12855)
12856
12857xnnpack_unit_test(
12858    name = "f16_vrdivc_minmax_test",
12859    srcs = [
12860        "test/f16-vrdivc-minmax.cc",
12861        "test/vbinaryc-microkernel-tester.h",
12862    ],
12863    deps = MICROKERNEL_TEST_DEPS,
12864)
12865
12866xnnpack_unit_test(
12867    name = "f16_velu_test",
12868    srcs = [
12869        "test/f16-velu.cc",
12870        "test/vunary-microkernel-tester.h",
12871    ],
12872    deps = MICROKERNEL_TEST_DEPS,
12873)
12874
12875xnnpack_unit_test(
12876    name = "f16_vhswish_test",
12877    srcs = [
12878        "test/f16-vhswish.cc",
12879        "test/vunary-microkernel-tester.h",
12880    ],
12881    deps = MICROKERNEL_TEST_DEPS,
12882)
12883
12884xnnpack_unit_test(
12885    name = "f16_vlrelu_test",
12886    srcs = [
12887        "test/f16-vlrelu.cc",
12888        "test/vunary-microkernel-tester.h",
12889    ],
12890    deps = MICROKERNEL_TEST_DEPS,
12891)
12892
12893xnnpack_unit_test(
12894    name = "f16_vmax_test",
12895    srcs = [
12896        "test/f16-vmax.cc",
12897        "test/vbinary-microkernel-tester.h",
12898    ],
12899    deps = MICROKERNEL_TEST_DEPS,
12900)
12901
12902xnnpack_unit_test(
12903    name = "f16_vmaxc_test",
12904    srcs = [
12905        "test/f16-vmaxc.cc",
12906        "test/vbinaryc-microkernel-tester.h",
12907    ],
12908    deps = MICROKERNEL_TEST_DEPS,
12909)
12910
12911xnnpack_unit_test(
12912    name = "f16_vmin_test",
12913    srcs = [
12914        "test/f16-vmin.cc",
12915        "test/vbinary-microkernel-tester.h",
12916    ],
12917    deps = MICROKERNEL_TEST_DEPS,
12918)
12919
12920xnnpack_unit_test(
12921    name = "f16_vminc_test",
12922    srcs = [
12923        "test/f16-vminc.cc",
12924        "test/vbinaryc-microkernel-tester.h",
12925    ],
12926    deps = MICROKERNEL_TEST_DEPS,
12927)
12928
12929xnnpack_unit_test(
12930    name = "f16_vmul_minmax_test",
12931    srcs = [
12932        "test/f16-vmul-minmax.cc",
12933        "test/vbinary-microkernel-tester.h",
12934    ],
12935    deps = MICROKERNEL_TEST_DEPS,
12936)
12937
12938xnnpack_unit_test(
12939    name = "f16_vmulc_minmax_test",
12940    srcs = [
12941        "test/f16-vmulc-minmax.cc",
12942        "test/vbinaryc-microkernel-tester.h",
12943    ],
12944    deps = MICROKERNEL_TEST_DEPS,
12945)
12946
12947xnnpack_unit_test(
12948    name = "f16_vmulcaddc_minmax_test",
12949    srcs = [
12950        "test/f16-vmulcaddc-minmax.cc",
12951        "test/vmulcaddc-microkernel-tester.h",
12952    ],
12953    deps = MICROKERNEL_TEST_DEPS + [":packing"],
12954)
12955
12956xnnpack_unit_test(
12957    name = "f16_vneg_test",
12958    srcs = [
12959        "test/f16-vneg.cc",
12960        "test/vunary-microkernel-tester.h",
12961    ],
12962    deps = MICROKERNEL_TEST_DEPS,
12963)
12964
12965xnnpack_unit_test(
12966    name = "f16_vrndne_test",
12967    srcs = [
12968        "test/f16-vrndne.cc",
12969        "test/vunary-microkernel-tester.h",
12970    ],
12971    deps = MICROKERNEL_TEST_DEPS,
12972)
12973
12974xnnpack_unit_test(
12975    name = "f16_vrndz_test",
12976    srcs = [
12977        "test/f16-vrndz.cc",
12978        "test/vunary-microkernel-tester.h",
12979    ],
12980    deps = MICROKERNEL_TEST_DEPS,
12981)
12982
12983xnnpack_unit_test(
12984    name = "f16_vrndu_test",
12985    srcs = [
12986        "test/f16-vrndu.cc",
12987        "test/vunary-microkernel-tester.h",
12988    ],
12989    deps = MICROKERNEL_TEST_DEPS,
12990)
12991
12992xnnpack_unit_test(
12993    name = "f16_vrndd_test",
12994    srcs = [
12995        "test/f16-vrndd.cc",
12996        "test/vunary-microkernel-tester.h",
12997    ],
12998    deps = MICROKERNEL_TEST_DEPS,
12999)
13000
13001xnnpack_unit_test(
13002    name = "f16_vsqrt_test",
13003    srcs = [
13004        "test/f16-vsqrt.cc",
13005        "test/vunary-microkernel-tester.h",
13006    ],
13007    deps = MICROKERNEL_TEST_DEPS,
13008)
13009
13010xnnpack_unit_test(
13011    name = "f16_raddstoreexpminusmax_test",
13012    srcs = [
13013        "test/f16-raddstoreexpminusmax.cc",
13014        "test/raddstoreexpminusmax-microkernel-tester.h",
13015    ],
13016    deps = MICROKERNEL_TEST_DEPS,
13017)
13018
13019xnnpack_unit_test(
13020    name = "f16_rmax_test",
13021    srcs = [
13022        "test/f16-rmax.cc",
13023        "test/rmax-microkernel-tester.h",
13024    ],
13025    deps = MICROKERNEL_TEST_DEPS,
13026)
13027
13028xnnpack_unit_test(
13029    name = "f16_vsigmoid_test",
13030    srcs = [
13031        "test/f16-vsigmoid.cc",
13032        "test/vunary-microkernel-tester.h",
13033    ],
13034    deps = MICROKERNEL_TEST_DEPS,
13035)
13036
13037xnnpack_unit_test(
13038    name = "f16_vsqr_test",
13039    srcs = [
13040        "test/f16-vsqr.cc",
13041        "test/vunary-microkernel-tester.h",
13042    ],
13043    deps = MICROKERNEL_TEST_DEPS,
13044)
13045
13046xnnpack_unit_test(
13047    name = "f16_vsub_minmax_test",
13048    srcs = [
13049        "test/f16-vsub-minmax.cc",
13050        "test/vbinary-microkernel-tester.h",
13051    ],
13052    deps = MICROKERNEL_TEST_DEPS,
13053)
13054
13055xnnpack_unit_test(
13056    name = "f16_vsubc_minmax_test",
13057    srcs = [
13058        "test/f16-vsubc-minmax.cc",
13059        "test/vbinaryc-microkernel-tester.h",
13060    ],
13061    deps = MICROKERNEL_TEST_DEPS,
13062)
13063
13064xnnpack_unit_test(
13065    name = "f16_vrsubc_minmax_test",
13066    srcs = [
13067        "test/f16-vrsubc-minmax.cc",
13068        "test/vbinaryc-microkernel-tester.h",
13069    ],
13070    deps = MICROKERNEL_TEST_DEPS,
13071)
13072
13073xnnpack_unit_test(
13074    name = "f32_argmaxpool_test",
13075    srcs = [
13076        "test/argmaxpool-microkernel-tester.h",
13077        "test/f32-argmaxpool.cc",
13078    ],
13079    deps = MICROKERNEL_TEST_DEPS,
13080)
13081
13082xnnpack_unit_test(
13083    name = "f32_avgpool_minmax_test",
13084    srcs = [
13085        "test/avgpool-microkernel-tester.h",
13086        "test/f32-avgpool-minmax.cc",
13087    ],
13088    deps = MICROKERNEL_TEST_DEPS,
13089)
13090
13091xnnpack_unit_test(
13092    name = "f32_ibilinear_test",
13093    srcs = [
13094        "test/f32-ibilinear.cc",
13095        "test/ibilinear-microkernel-tester.h",
13096    ],
13097    deps = MICROKERNEL_TEST_DEPS,
13098)
13099
13100xnnpack_unit_test(
13101    name = "f32_ibilinear_chw_test",
13102    srcs = [
13103        "test/f32-ibilinear-chw.cc",
13104        "test/ibilinear-microkernel-tester.h",
13105    ],
13106    deps = MICROKERNEL_TEST_DEPS,
13107)
13108
13109xnnpack_unit_test(
13110    name = "f32_igemm_test",
13111    srcs = [
13112        "test/f32-igemm.cc",
13113        "test/f32-igemm-2.cc",
13114    ],
13115    deps = MICROKERNEL_TEST_DEPS + [
13116        ":gemm_microkernel_tester",
13117    ],
13118)
13119
13120xnnpack_unit_test(
13121    name = "f32_igemm_relu_test",
13122    srcs = [
13123        "test/f32-igemm-relu.cc",
13124        "test/f32-igemm-relu-2.cc",
13125    ],
13126    deps = MICROKERNEL_TEST_DEPS + [
13127        ":gemm_microkernel_tester",
13128    ],
13129)
13130
13131xnnpack_unit_test(
13132    name = "f32_igemm_minmax_test",
13133    srcs = [
13134        "test/f32-igemm-minmax.cc",
13135        "test/f32-igemm-minmax-2.cc",
13136    ],
13137    shard_count = 10,
13138    deps = MICROKERNEL_TEST_DEPS + [
13139        ":XNNPACK",
13140        ":gemm_microkernel_tester",
13141        ":jit_test_mode",
13142    ],
13143)
13144
13145xnnpack_unit_test(
13146    name = "f32_conv_hwc_test",
13147    srcs = [
13148        "test/conv-hwc-microkernel-tester.h",
13149        "test/f32-conv-hwc.cc",
13150    ],
13151    deps = MICROKERNEL_TEST_DEPS + [":packing"],
13152)
13153
13154xnnpack_unit_test(
13155    name = "f16_conv_hwc2chw_test",
13156    srcs = [
13157        "test/conv-hwc2chw-microkernel-tester.h",
13158        "test/f16-conv-hwc2chw.cc",
13159    ],
13160    deps = MICROKERNEL_TEST_DEPS + [":packing"],
13161)
13162
13163xnnpack_unit_test(
13164    name = "f32_conv_hwc2chw_test",
13165    srcs = [
13166        "test/conv-hwc2chw-microkernel-tester.h",
13167        "test/f32-conv-hwc2chw.cc",
13168    ],
13169    deps = MICROKERNEL_TEST_DEPS + [":packing"],
13170)
13171
13172xnnpack_unit_test(
13173    name = "f32_dwconv_test",
13174    srcs = [
13175        "test/dwconv-microkernel-tester.h",
13176        "test/f32-dwconv.cc",
13177    ],
13178    deps = MICROKERNEL_TEST_DEPS + [":packing"],
13179)
13180
13181xnnpack_unit_test(
13182    name = "f32_dwconv_minmax_test",
13183    srcs = [
13184        "test/dwconv-microkernel-tester.h",
13185        "test/f32-dwconv-minmax.cc",
13186    ],
13187    shard_count = 5,
13188    deps = MICROKERNEL_TEST_DEPS + [":packing"],
13189)
13190
13191xnnpack_unit_test(
13192    name = "f16_dwconv2d_chw_test",
13193    srcs = [
13194        "test/dwconv2d-microkernel-tester.h",
13195        "test/f16-dwconv2d-chw.cc",
13196    ],
13197    deps = MICROKERNEL_TEST_DEPS + [":packing"],
13198)
13199
13200xnnpack_unit_test(
13201    name = "f32_dwconv2d_chw_test",
13202    srcs = [
13203        "test/dwconv2d-microkernel-tester.h",
13204        "test/f32-dwconv2d-chw.cc",
13205    ],
13206    deps = MICROKERNEL_TEST_DEPS + [":packing"],
13207)
13208
13209xnnpack_unit_test(
13210    name = "f32_f16_vcvt_test",
13211    srcs = [
13212        "test/f32-f16-vcvt.cc",
13213        "test/vcvt-microkernel-tester.h",
13214    ],
13215    deps = MICROKERNEL_TEST_DEPS,
13216)
13217
13218xnnpack_unit_test(
13219    name = "f32_gavgpool_minmax_test",
13220    srcs = [
13221        "test/f32-gavgpool-minmax.cc",
13222        "test/gavgpool-microkernel-tester.h",
13223    ],
13224    deps = MICROKERNEL_TEST_DEPS,
13225)
13226
13227xnnpack_unit_test(
13228    name = "f32_gavgpool_cw_test",
13229    srcs = [
13230        "test/f32-gavgpool-cw.cc",
13231        "test/gavgpool-cw-microkernel-tester.h",
13232    ],
13233    deps = MICROKERNEL_TEST_DEPS,
13234)
13235
13236xnnpack_unit_test(
13237    name = "f32_gemm_test",
13238    srcs = [
13239        "test/f32-gemm.cc",
13240        "test/f32-gemm-2.cc",
13241    ],
13242    deps = MICROKERNEL_TEST_DEPS + [
13243        ":gemm_microkernel_tester",
13244    ],
13245)
13246
13247xnnpack_unit_test(
13248    name = "f32_gemm_relu_test",
13249    srcs = [
13250        "test/f32-gemm-relu.cc",
13251        "test/f32-gemm-relu-2.cc",
13252    ],
13253    deps = MICROKERNEL_TEST_DEPS + [
13254        ":gemm_microkernel_tester",
13255    ],
13256)
13257
13258xnnpack_unit_test(
13259    name = "f32_gemm_minmax_test",
13260    srcs = [
13261        "test/f32-gemm-minmax.cc",
13262        "test/f32-gemm-minmax-2.cc",
13263    ],
13264    shard_count = 10,
13265    deps = MICROKERNEL_TEST_DEPS + [
13266        ":XNNPACK",
13267        ":gemm_microkernel_tester",
13268        ":jit_test_mode",
13269    ],
13270)
13271
13272xnnpack_unit_test(
13273    name = "f32_gemminc_minmax_test",
13274    srcs = [
13275        "test/f32-gemminc-minmax.cc",
13276        "test/f32-gemminc-minmax-2.cc",
13277    ],
13278    shard_count = 5,
13279    deps = MICROKERNEL_TEST_DEPS + [
13280        ":gemm_microkernel_tester",
13281    ],
13282)
13283
13284xnnpack_unit_test(
13285    name = "f32_vhswish_test",
13286    srcs = [
13287        "test/f32-vhswish.cc",
13288        "test/vunary-microkernel-tester.h",
13289    ],
13290    deps = MICROKERNEL_TEST_DEPS,
13291)
13292
13293xnnpack_unit_test(
13294    name = "f32_maxpool_minmax_test",
13295    srcs = [
13296        "test/f32-maxpool-minmax.cc",
13297        "test/maxpool-microkernel-tester.h",
13298    ],
13299    deps = MICROKERNEL_TEST_DEPS,
13300)
13301
13302xnnpack_unit_test(
13303    name = "f32_pavgpool_minmax_test",
13304    srcs = [
13305        "test/avgpool-microkernel-tester.h",
13306        "test/f32-pavgpool-minmax.cc",
13307    ],
13308    deps = MICROKERNEL_TEST_DEPS,
13309)
13310
13311xnnpack_unit_test(
13312    name = "f32_ppmm_minmax_test",
13313    srcs = [
13314        "test/f32-ppmm-minmax.cc",
13315    ],
13316    deps = MICROKERNEL_TEST_DEPS + [
13317        ":gemm_microkernel_tester",
13318    ],
13319)
13320
13321xnnpack_unit_test(
13322    name = "f32_prelu_test",
13323    srcs = [
13324        "test/f32-prelu.cc",
13325        "test/prelu-microkernel-tester.h",
13326    ],
13327    deps = MICROKERNEL_TEST_DEPS,
13328)
13329
13330xnnpack_unit_test(
13331    name = "f32_qs8_vcvt_test",
13332    srcs = [
13333        "test/f32-qs8-vcvt.cc",
13334        "test/vcvt-microkernel-tester.h",
13335    ],
13336    deps = MICROKERNEL_TEST_DEPS,
13337)
13338
13339xnnpack_unit_test(
13340    name = "f32_qu8_vcvt_test",
13341    srcs = [
13342        "test/f32-qu8-vcvt.cc",
13343        "test/vcvt-microkernel-tester.h",
13344    ],
13345    deps = MICROKERNEL_TEST_DEPS,
13346)
13347
13348xnnpack_unit_test(
13349    name = "f32_raddexpminusmax_test",
13350    srcs = [
13351        "test/f32-raddexpminusmax.cc",
13352        "test/raddexpminusmax-microkernel-tester.h",
13353    ],
13354    deps = MICROKERNEL_TEST_DEPS,
13355)
13356
13357xnnpack_unit_test(
13358    name = "f32_raddextexp_test",
13359    srcs = [
13360        "test/f32-raddextexp.cc",
13361        "test/raddextexp-microkernel-tester.h",
13362    ],
13363    deps = MICROKERNEL_TEST_DEPS,
13364)
13365
13366xnnpack_unit_test(
13367    name = "f32_raddstoreexpminusmax_test",
13368    srcs = [
13369        "test/f32-raddstoreexpminusmax.cc",
13370        "test/raddstoreexpminusmax-microkernel-tester.h",
13371    ],
13372    deps = MICROKERNEL_TEST_DEPS,
13373)
13374
13375xnnpack_unit_test(
13376    name = "f32_rmax_test",
13377    srcs = [
13378        "test/f32-rmax.cc",
13379        "test/rmax-microkernel-tester.h",
13380    ],
13381    deps = MICROKERNEL_TEST_DEPS,
13382)
13383
13384xnnpack_unit_test(
13385    name = "f32_spmm_minmax_test",
13386    srcs = [
13387        "test/f32-spmm-minmax.cc",
13388        "test/spmm-microkernel-tester.h",
13389    ],
13390    deps = MICROKERNEL_TEST_DEPS,
13391)
13392
13393xnnpack_unit_test(
13394    name = "f32_vabs_test",
13395    srcs = [
13396        "test/f32-vabs.cc",
13397        "test/vunary-microkernel-tester.h",
13398    ],
13399    deps = MICROKERNEL_TEST_DEPS,
13400)
13401
13402xnnpack_unit_test(
13403    name = "f32_vadd_test",
13404    srcs = [
13405        "test/f32-vadd.cc",
13406        "test/vbinary-microkernel-tester.h",
13407    ],
13408    deps = MICROKERNEL_TEST_DEPS,
13409)
13410
13411xnnpack_unit_test(
13412    name = "f32_vadd_minmax_test",
13413    srcs = [
13414        "test/f32-vadd-minmax.cc",
13415        "test/vbinary-microkernel-tester.h",
13416    ],
13417    deps = MICROKERNEL_TEST_DEPS,
13418)
13419
13420xnnpack_unit_test(
13421    name = "f32_vadd_relu_test",
13422    srcs = [
13423        "test/f32-vadd-relu.cc",
13424        "test/vbinary-microkernel-tester.h",
13425    ],
13426    deps = MICROKERNEL_TEST_DEPS,
13427)
13428
13429xnnpack_unit_test(
13430    name = "f32_vaddc_test",
13431    srcs = [
13432        "test/f32-vaddc.cc",
13433        "test/vbinaryc-microkernel-tester.h",
13434    ],
13435    deps = MICROKERNEL_TEST_DEPS,
13436)
13437
13438xnnpack_unit_test(
13439    name = "f32_vaddc_minmax_test",
13440    srcs = [
13441        "test/f32-vaddc-minmax.cc",
13442        "test/vbinaryc-microkernel-tester.h",
13443    ],
13444    deps = MICROKERNEL_TEST_DEPS,
13445)
13446
13447xnnpack_unit_test(
13448    name = "f32_vaddc_relu_test",
13449    srcs = [
13450        "test/f32-vaddc-relu.cc",
13451        "test/vbinaryc-microkernel-tester.h",
13452    ],
13453    deps = MICROKERNEL_TEST_DEPS,
13454)
13455
13456xnnpack_unit_test(
13457    name = "f32_vclamp_test",
13458    srcs = [
13459        "test/f32-vclamp.cc",
13460        "test/vunary-microkernel-tester.h",
13461    ],
13462    deps = MICROKERNEL_TEST_DEPS,
13463)
13464
13465xnnpack_unit_test(
13466    name = "f32_vdiv_test",
13467    srcs = [
13468        "test/f32-vdiv.cc",
13469        "test/vbinary-microkernel-tester.h",
13470    ],
13471    deps = MICROKERNEL_TEST_DEPS,
13472)
13473
13474xnnpack_unit_test(
13475    name = "f32_vdiv_minmax_test",
13476    srcs = [
13477        "test/f32-vdiv-minmax.cc",
13478        "test/vbinary-microkernel-tester.h",
13479    ],
13480    deps = MICROKERNEL_TEST_DEPS,
13481)
13482
13483xnnpack_unit_test(
13484    name = "f32_vdiv_relu_test",
13485    srcs = [
13486        "test/f32-vdiv-relu.cc",
13487        "test/vbinary-microkernel-tester.h",
13488    ],
13489    deps = MICROKERNEL_TEST_DEPS,
13490)
13491
13492xnnpack_unit_test(
13493    name = "f32_vdivc_test",
13494    srcs = [
13495        "test/f32-vdivc.cc",
13496        "test/vbinaryc-microkernel-tester.h",
13497    ],
13498    deps = MICROKERNEL_TEST_DEPS,
13499)
13500
13501xnnpack_unit_test(
13502    name = "f32_vdivc_minmax_test",
13503    srcs = [
13504        "test/f32-vdivc-minmax.cc",
13505        "test/vbinaryc-microkernel-tester.h",
13506    ],
13507    deps = MICROKERNEL_TEST_DEPS,
13508)
13509
13510xnnpack_unit_test(
13511    name = "f32_vdivc_relu_test",
13512    srcs = [
13513        "test/f32-vdivc-relu.cc",
13514        "test/vbinaryc-microkernel-tester.h",
13515    ],
13516    deps = MICROKERNEL_TEST_DEPS,
13517)
13518
13519xnnpack_unit_test(
13520    name = "f32_vrdivc_test",
13521    srcs = [
13522        "test/f32-vrdivc.cc",
13523        "test/vbinaryc-microkernel-tester.h",
13524    ],
13525    deps = MICROKERNEL_TEST_DEPS,
13526)
13527
13528xnnpack_unit_test(
13529    name = "f32_vrdivc_minmax_test",
13530    srcs = [
13531        "test/f32-vrdivc-minmax.cc",
13532        "test/vbinaryc-microkernel-tester.h",
13533    ],
13534    deps = MICROKERNEL_TEST_DEPS,
13535)
13536
13537xnnpack_unit_test(
13538    name = "f32_vrdivc_relu_test",
13539    srcs = [
13540        "test/f32-vrdivc-relu.cc",
13541        "test/vbinaryc-microkernel-tester.h",
13542    ],
13543    deps = MICROKERNEL_TEST_DEPS,
13544)
13545
13546xnnpack_unit_test(
13547    name = "f32_velu_test",
13548    srcs = [
13549        "test/f32-velu.cc",
13550        "test/vunary-microkernel-tester.h",
13551    ],
13552    deps = MICROKERNEL_TEST_DEPS,
13553)
13554
13555xnnpack_unit_test(
13556    name = "f32_vmax_test",
13557    srcs = [
13558        "test/f32-vmax.cc",
13559        "test/vbinary-microkernel-tester.h",
13560    ],
13561    deps = MICROKERNEL_TEST_DEPS,
13562)
13563
13564xnnpack_unit_test(
13565    name = "f32_vmaxc_test",
13566    srcs = [
13567        "test/f32-vmaxc.cc",
13568        "test/vbinaryc-microkernel-tester.h",
13569    ],
13570    deps = MICROKERNEL_TEST_DEPS,
13571)
13572
13573xnnpack_unit_test(
13574    name = "f32_vmin_test",
13575    srcs = [
13576        "test/f32-vmin.cc",
13577        "test/vbinary-microkernel-tester.h",
13578    ],
13579    deps = MICROKERNEL_TEST_DEPS,
13580)
13581
13582xnnpack_unit_test(
13583    name = "f32_vminc_test",
13584    srcs = [
13585        "test/f32-vminc.cc",
13586        "test/vbinaryc-microkernel-tester.h",
13587    ],
13588    deps = MICROKERNEL_TEST_DEPS,
13589)
13590
13591xnnpack_unit_test(
13592    name = "f32_vmul_test",
13593    srcs = [
13594        "test/f32-vmul.cc",
13595        "test/vbinary-microkernel-tester.h",
13596    ],
13597    deps = MICROKERNEL_TEST_DEPS,
13598)
13599
13600xnnpack_unit_test(
13601    name = "f32_vmul_minmax_test",
13602    srcs = [
13603        "test/f32-vmul-minmax.cc",
13604        "test/vbinary-microkernel-tester.h",
13605    ],
13606    deps = MICROKERNEL_TEST_DEPS,
13607)
13608
13609xnnpack_unit_test(
13610    name = "f32_vmul_relu_test",
13611    srcs = [
13612        "test/f32-vmul-relu.cc",
13613        "test/vbinary-microkernel-tester.h",
13614    ],
13615    deps = MICROKERNEL_TEST_DEPS,
13616)
13617
13618xnnpack_unit_test(
13619    name = "f32_vmulc_test",
13620    srcs = [
13621        "test/f32-vmulc.cc",
13622        "test/vbinaryc-microkernel-tester.h",
13623    ],
13624    deps = MICROKERNEL_TEST_DEPS,
13625)
13626
13627xnnpack_unit_test(
13628    name = "f32_vmulc_minmax_test",
13629    srcs = [
13630        "test/f32-vmulc-minmax.cc",
13631        "test/vbinaryc-microkernel-tester.h",
13632    ],
13633    deps = MICROKERNEL_TEST_DEPS,
13634)
13635
13636xnnpack_unit_test(
13637    name = "f32_vmulc_relu_test",
13638    srcs = [
13639        "test/f32-vmulc-relu.cc",
13640        "test/vbinaryc-microkernel-tester.h",
13641    ],
13642    deps = MICROKERNEL_TEST_DEPS,
13643)
13644
13645xnnpack_unit_test(
13646    name = "f32_vmulcaddc_minmax_test",
13647    srcs = [
13648        "test/f32-vmulcaddc-minmax.cc",
13649        "test/vmulcaddc-microkernel-tester.h",
13650    ],
13651    deps = MICROKERNEL_TEST_DEPS + [":packing"],
13652)
13653
13654xnnpack_unit_test(
13655    name = "f32_vlrelu_test",
13656    srcs = [
13657        "test/f32-vlrelu.cc",
13658        "test/vunary-microkernel-tester.h",
13659    ],
13660    deps = MICROKERNEL_TEST_DEPS,
13661)
13662
13663xnnpack_unit_test(
13664    name = "f32_vneg_test",
13665    srcs = [
13666        "test/f32-vneg.cc",
13667        "test/vunary-microkernel-tester.h",
13668    ],
13669    deps = MICROKERNEL_TEST_DEPS,
13670)
13671
13672xnnpack_unit_test(
13673    name = "f32_vrelu_test",
13674    srcs = [
13675        "test/f32-vrelu.cc",
13676        "test/vunary-microkernel-tester.h",
13677    ],
13678    deps = MICROKERNEL_TEST_DEPS,
13679)
13680
13681xnnpack_unit_test(
13682    name = "f32_vrndne_test",
13683    srcs = [
13684        "test/f32-vrndne.cc",
13685        "test/vunary-microkernel-tester.h",
13686    ],
13687    deps = MICROKERNEL_TEST_DEPS,
13688)
13689
13690xnnpack_unit_test(
13691    name = "f32_vrndz_test",
13692    srcs = [
13693        "test/f32-vrndz.cc",
13694        "test/vunary-microkernel-tester.h",
13695    ],
13696    deps = MICROKERNEL_TEST_DEPS,
13697)
13698
13699xnnpack_unit_test(
13700    name = "f32_vrndu_test",
13701    srcs = [
13702        "test/f32-vrndu.cc",
13703        "test/vunary-microkernel-tester.h",
13704    ],
13705    deps = MICROKERNEL_TEST_DEPS,
13706)
13707
13708xnnpack_unit_test(
13709    name = "f32_vrndd_test",
13710    srcs = [
13711        "test/f32-vrndd.cc",
13712        "test/vunary-microkernel-tester.h",
13713    ],
13714    deps = MICROKERNEL_TEST_DEPS,
13715)
13716
13717xnnpack_unit_test(
13718    name = "f32_vscaleexpminusmax_test",
13719    srcs = [
13720        "test/f32-vscaleexpminusmax.cc",
13721        "test/vscaleexpminusmax-microkernel-tester.h",
13722    ],
13723    deps = MICROKERNEL_TEST_DEPS,
13724)
13725
13726xnnpack_unit_test(
13727    name = "f32_vscaleextexp_test",
13728    srcs = [
13729        "test/f32-vscaleextexp.cc",
13730        "test/vscaleextexp-microkernel-tester.h",
13731    ],
13732    deps = MICROKERNEL_TEST_DEPS,
13733)
13734
13735xnnpack_unit_test(
13736    name = "f32_vsigmoid_test",
13737    srcs = [
13738        "test/f32-vsigmoid.cc",
13739        "test/vunary-microkernel-tester.h",
13740    ],
13741    shard_count = 3,
13742    deps = MICROKERNEL_TEST_DEPS,
13743)
13744
13745xnnpack_unit_test(
13746    name = "f32_vsqr_test",
13747    srcs = [
13748        "test/f32-vsqr.cc",
13749        "test/vunary-microkernel-tester.h",
13750    ],
13751    deps = MICROKERNEL_TEST_DEPS,
13752)
13753
13754xnnpack_unit_test(
13755    name = "f32_vsqrdiff_test",
13756    srcs = [
13757        "test/f32-vsqrdiff.cc",
13758        "test/vbinary-microkernel-tester.h",
13759    ],
13760    deps = MICROKERNEL_TEST_DEPS,
13761)
13762
13763xnnpack_unit_test(
13764    name = "f32_vsqrdiffc_test",
13765    srcs = [
13766        "test/f32-vsqrdiffc.cc",
13767        "test/vbinaryc-microkernel-tester.h",
13768    ],
13769    deps = MICROKERNEL_TEST_DEPS,
13770)
13771
13772xnnpack_unit_test(
13773    name = "f32_vsqrt_test",
13774    srcs = [
13775        "test/f32-vsqrt.cc",
13776        "test/vunary-microkernel-tester.h",
13777    ],
13778    deps = MICROKERNEL_TEST_DEPS,
13779)
13780
13781xnnpack_unit_test(
13782    name = "f32_vsub_test",
13783    srcs = [
13784        "test/f32-vsub.cc",
13785        "test/vbinary-microkernel-tester.h",
13786    ],
13787    deps = MICROKERNEL_TEST_DEPS,
13788)
13789
13790xnnpack_unit_test(
13791    name = "f32_vsub_minmax_test",
13792    srcs = [
13793        "test/f32-vsub-minmax.cc",
13794        "test/vbinary-microkernel-tester.h",
13795    ],
13796    deps = MICROKERNEL_TEST_DEPS,
13797)
13798
13799xnnpack_unit_test(
13800    name = "f32_vsub_relu_test",
13801    srcs = [
13802        "test/f32-vsub-relu.cc",
13803        "test/vbinary-microkernel-tester.h",
13804    ],
13805    deps = MICROKERNEL_TEST_DEPS,
13806)
13807
13808xnnpack_unit_test(
13809    name = "f32_vsubc_test",
13810    srcs = [
13811        "test/f32-vsubc.cc",
13812        "test/vbinaryc-microkernel-tester.h",
13813    ],
13814    deps = MICROKERNEL_TEST_DEPS,
13815)
13816
13817xnnpack_unit_test(
13818    name = "f32_vsubc_minmax_test",
13819    srcs = [
13820        "test/f32-vsubc-minmax.cc",
13821        "test/vbinaryc-microkernel-tester.h",
13822    ],
13823    deps = MICROKERNEL_TEST_DEPS,
13824)
13825
13826xnnpack_unit_test(
13827    name = "f32_vsubc_relu_test",
13828    srcs = [
13829        "test/f32-vsubc-relu.cc",
13830        "test/vbinaryc-microkernel-tester.h",
13831    ],
13832    deps = MICROKERNEL_TEST_DEPS,
13833)
13834
13835xnnpack_unit_test(
13836    name = "f32_vrsubc_test",
13837    srcs = [
13838        "test/f32-vrsubc.cc",
13839        "test/vbinaryc-microkernel-tester.h",
13840    ],
13841    deps = MICROKERNEL_TEST_DEPS,
13842)
13843
13844xnnpack_unit_test(
13845    name = "f32_vrsubc_minmax_test",
13846    srcs = [
13847        "test/f32-vrsubc-minmax.cc",
13848        "test/vbinaryc-microkernel-tester.h",
13849    ],
13850    deps = MICROKERNEL_TEST_DEPS,
13851)
13852
13853xnnpack_unit_test(
13854    name = "f32_vrsubc_relu_test",
13855    srcs = [
13856        "test/f32-vrsubc-relu.cc",
13857        "test/vbinaryc-microkernel-tester.h",
13858    ],
13859    deps = MICROKERNEL_TEST_DEPS,
13860)
13861
13862xnnpack_unit_test(
13863    name = "qc8_dwconv_minmax_fp32_test",
13864    timeout = "moderate",
13865    srcs = [
13866        "test/dwconv-microkernel-tester.h",
13867        "test/qc8-dwconv-minmax-fp32.cc",
13868    ],
13869    shard_count = 10,
13870    deps = MICROKERNEL_TEST_DEPS + [":packing"],
13871)
13872
13873xnnpack_unit_test(
13874    name = "qc8_gemm_minmax_fp32_test",
13875    timeout = "moderate",
13876    srcs = [
13877        "test/qc8-gemm-minmax-fp32.cc",
13878        "test/qc8-gemm-minmax-fp32-2.cc",
13879        "test/qc8-gemm-minmax-fp32-3.cc",
13880    ],
13881    shard_count = 10,
13882    deps = MICROKERNEL_TEST_DEPS + [
13883        ":XNNPACK",
13884        ":gemm_microkernel_tester",
13885        ":jit_test_mode",
13886    ],
13887)
13888
13889xnnpack_unit_test(
13890    name = "qc8_igemm_minmax_fp32_test",
13891    timeout = "moderate",
13892    srcs = [
13893        "test/qc8-igemm-minmax-fp32.cc",
13894        "test/qc8-igemm-minmax-fp32-2.cc",
13895        "test/qc8-igemm-minmax-fp32-3.cc",
13896    ],
13897    shard_count = 10,
13898    deps = MICROKERNEL_TEST_DEPS + [
13899        ":XNNPACK",
13900        ":jit_test_mode",
13901        ":gemm_microkernel_tester",
13902    ],
13903)
13904
13905xnnpack_unit_test(
13906    name = "qs8_dwconv_minmax_fp32_test",
13907    srcs = [
13908        "test/dwconv-microkernel-tester.h",
13909        "test/qs8-dwconv-minmax-fp32.cc",
13910    ],
13911    shard_count = 10,
13912    deps = MICROKERNEL_TEST_DEPS + [":packing"],
13913)
13914
13915xnnpack_unit_test(
13916    name = "qs8_dwconv_minmax_rndnu_test",
13917    srcs = [
13918        "test/dwconv-microkernel-tester.h",
13919        "test/qs8-dwconv-minmax-rndnu.cc",
13920    ],
13921    deps = MICROKERNEL_TEST_DEPS + [":packing"],
13922)
13923
13924xnnpack_unit_test(
13925    name = "qs8_f32_vcvt_test",
13926    srcs = [
13927        "test/qs8-f32-vcvt.cc",
13928        "test/vcvt-microkernel-tester.h",
13929    ],
13930    deps = MICROKERNEL_TEST_DEPS,
13931)
13932
13933xnnpack_unit_test(
13934    name = "qs8_gavgpool_minmax_fp32_test",
13935    srcs = [
13936        "test/gavgpool-microkernel-tester.h",
13937        "test/qs8-gavgpool-minmax-fp32.cc",
13938    ],
13939    deps = MICROKERNEL_TEST_DEPS,
13940)
13941
13942xnnpack_unit_test(
13943    name = "qs8_gavgpool_minmax_rndnu_test",
13944    srcs = [
13945        "test/gavgpool-microkernel-tester.h",
13946        "test/qs8-gavgpool-minmax-rndnu.cc",
13947    ],
13948    deps = MICROKERNEL_TEST_DEPS,
13949)
13950
13951xnnpack_unit_test(
13952    name = "qs8_gemm_minmax_fp32_test",
13953    timeout = "moderate",
13954    srcs = [
13955        "test/qs8-gemm-minmax-fp32.cc",
13956        "test/qs8-gemm-minmax-fp32-2.cc",
13957    ],
13958    shard_count = 10,
13959    deps = MICROKERNEL_TEST_DEPS + [
13960        ":gemm_microkernel_tester",
13961    ],
13962)
13963
13964xnnpack_unit_test(
13965    name = "qs8_gemm_minmax_rndnu_test",
13966    timeout = "moderate",
13967    srcs = [
13968        "test/qs8-gemm-minmax-rndnu.cc",
13969        "test/qs8-gemm-minmax-rndnu-2.cc",
13970        "test/qs8-gemm-minmax-rndnu-3.cc",
13971        "test/qs8-gemm-minmax-rndnu-4.cc",
13972        "test/qs8-gemm-minmax-rndnu-5.cc",
13973    ],
13974    shard_count = 10,
13975    deps = MICROKERNEL_TEST_DEPS + [
13976        ":XNNPACK",
13977        ":gemm_microkernel_tester",
13978        ":jit_test_mode",
13979    ],
13980)
13981
13982xnnpack_unit_test(
13983    name = "qs8_igemm_minmax_fp32_test",
13984    timeout = "moderate",
13985    srcs = [
13986        "test/qs8-igemm-minmax-fp32.cc",
13987        "test/qs8-igemm-minmax-fp32-2.cc",
13988    ],
13989    shard_count = 10,
13990    deps = MICROKERNEL_TEST_DEPS + [
13991        ":XNNPACK",
13992        ":gemm_microkernel_tester",
13993    ],
13994)
13995
13996xnnpack_unit_test(
13997    name = "qs8_igemm_minmax_rndnu_test",
13998    timeout = "moderate",
13999    srcs = [
14000        "test/qs8-igemm-minmax-rndnu.cc",
14001        "test/qs8-igemm-minmax-rndnu-2.cc",
14002        "test/qs8-igemm-minmax-rndnu-3.cc",
14003    ],
14004    shard_count = 10,
14005    deps = MICROKERNEL_TEST_DEPS + [
14006        ":XNNPACK",
14007        ":gemm_microkernel_tester",
14008        ":jit_test_mode",
14009    ],
14010)
14011
14012xnnpack_unit_test(
14013    name = "qs8_requantization_test",
14014    srcs = [
14015        "test/qs8-requantization.cc",
14016        "test/requantization-tester.h",
14017    ],
14018    deps = MICROKERNEL_TEST_DEPS + [":requantization_stubs"],
14019)
14020
14021xnnpack_unit_test(
14022    name = "qs8_vadd_minmax_test",
14023    srcs = [
14024        "test/qs8-vadd-minmax.cc",
14025        "test/vadd-microkernel-tester.h",
14026    ],
14027    deps = MICROKERNEL_TEST_DEPS,
14028)
14029
14030xnnpack_unit_test(
14031    name = "qs8_vaddc_minmax_test",
14032    srcs = [
14033        "test/qs8-vaddc-minmax.cc",
14034        "test/vaddc-microkernel-tester.h",
14035    ],
14036    deps = MICROKERNEL_TEST_DEPS,
14037)
14038
14039xnnpack_unit_test(
14040    name = "qs8_vcvt_test",
14041    srcs = [
14042        "test/qs8-vcvt.cc",
14043        "test/vcvt-microkernel-tester.h",
14044    ],
14045    deps = MICROKERNEL_TEST_DEPS,
14046)
14047
14048xnnpack_unit_test(
14049    name = "qs8_vlrelu_test",
14050    srcs = [
14051        "test/qs8-vlrelu.cc",
14052        "test/vlrelu-microkernel-tester.h",
14053    ],
14054    deps = MICROKERNEL_TEST_DEPS,
14055)
14056
14057xnnpack_unit_test(
14058    name = "qs8_vmul_minmax_fp32_test",
14059    srcs = [
14060        "test/qs8-vmul-minmax-fp32.cc",
14061        "test/vmul-microkernel-tester.h",
14062    ],
14063    deps = MICROKERNEL_TEST_DEPS,
14064)
14065
14066xnnpack_unit_test(
14067    name = "qs8_vmul_minmax_rndnu_test",
14068    srcs = [
14069        "test/qs8-vmul-minmax-rndnu.cc",
14070        "test/vmul-microkernel-tester.h",
14071    ],
14072    deps = MICROKERNEL_TEST_DEPS,
14073)
14074
14075xnnpack_unit_test(
14076    name = "qs8_vmulc_minmax_fp32_test",
14077    srcs = [
14078        "test/qs8-vmulc-minmax-fp32.cc",
14079        "test/vmulc-microkernel-tester.h",
14080    ],
14081    deps = MICROKERNEL_TEST_DEPS,
14082)
14083
14084xnnpack_unit_test(
14085    name = "qs8_vmulc_minmax_rndnu_test",
14086    srcs = [
14087        "test/qs8-vmulc-minmax-rndnu.cc",
14088        "test/vmulc-microkernel-tester.h",
14089    ],
14090    deps = MICROKERNEL_TEST_DEPS,
14091)
14092
14093xnnpack_unit_test(
14094    name = "qu8_avgpool_minmax_test",
14095    srcs = [
14096        "test/avgpool-microkernel-tester.h",
14097        "test/qu8-avgpool-minmax.cc",
14098    ],
14099    deps = MICROKERNEL_TEST_DEPS,
14100)
14101
14102xnnpack_unit_test(
14103    name = "qu8_dwconv_minmax_fp32_test",
14104    srcs = [
14105        "test/dwconv-microkernel-tester.h",
14106        "test/qu8-dwconv-minmax-fp32.cc",
14107    ],
14108    shard_count = 5,
14109    deps = MICROKERNEL_TEST_DEPS + [":packing"],
14110)
14111
14112xnnpack_unit_test(
14113    name = "qu8_dwconv_minmax_rndnu_test",
14114    srcs = [
14115        "test/dwconv-microkernel-tester.h",
14116        "test/qu8-dwconv-minmax-rndnu.cc",
14117    ],
14118    deps = MICROKERNEL_TEST_DEPS + [":packing"],
14119)
14120
14121xnnpack_unit_test(
14122    name = "qu8_f32_vcvt_test",
14123    srcs = [
14124        "test/qu8-f32-vcvt.cc",
14125        "test/vcvt-microkernel-tester.h",
14126    ],
14127    deps = MICROKERNEL_TEST_DEPS,
14128)
14129
14130xnnpack_unit_test(
14131    name = "qu8_gavgpool_minmax_fp32_test",
14132    srcs = [
14133        "test/gavgpool-microkernel-tester.h",
14134        "test/qu8-gavgpool-minmax-fp32.cc",
14135    ],
14136    deps = MICROKERNEL_TEST_DEPS,
14137)
14138
14139xnnpack_unit_test(
14140    name = "qu8_gavgpool_minmax_rndnu_test",
14141    srcs = [
14142        "test/gavgpool-microkernel-tester.h",
14143        "test/qu8-gavgpool-minmax-rndnu.cc",
14144    ],
14145    deps = MICROKERNEL_TEST_DEPS,
14146)
14147
14148xnnpack_unit_test(
14149    name = "qu8_gemm_minmax_fp32_test",
14150    srcs = [
14151        "test/qu8-gemm-minmax-fp32.cc",
14152        "test/qu8-gemm-minmax-fp32-2.cc",
14153    ],
14154    shard_count = 10,
14155    deps = MICROKERNEL_TEST_DEPS + [
14156        ":gemm_microkernel_tester",
14157    ],
14158)
14159
14160xnnpack_unit_test(
14161    name = "qu8_gemm_minmax_rndnu_test",
14162    srcs = [
14163        "test/qu8-gemm-minmax-rndnu.cc",
14164        "test/qu8-gemm-minmax-rndnu-2.cc",
14165    ],
14166    shard_count = 10,
14167    deps = MICROKERNEL_TEST_DEPS + [
14168        ":gemm_microkernel_tester",
14169    ],
14170)
14171
14172xnnpack_unit_test(
14173    name = "qu8_igemm_minmax_fp32_test",
14174    srcs = [
14175        "test/qu8-igemm-minmax-fp32.cc",
14176        "test/qu8-igemm-minmax-fp32-2.cc",
14177    ],
14178    shard_count = 10,
14179    deps = MICROKERNEL_TEST_DEPS + [
14180        ":XNNPACK",
14181        ":gemm_microkernel_tester",
14182    ],
14183)
14184
14185xnnpack_unit_test(
14186    name = "qu8_igemm_minmax_rndnu_test",
14187    srcs = [
14188        "test/qu8-igemm-minmax-rndnu.cc",
14189        "test/qu8-igemm-minmax-rndnu-2.cc",
14190    ],
14191    shard_count = 5,
14192    deps = MICROKERNEL_TEST_DEPS + [
14193        ":gemm_microkernel_tester",
14194    ],
14195)
14196
14197xnnpack_unit_test(
14198    name = "qu8_requantization_test",
14199    srcs = [
14200        "test/qu8-requantization.cc",
14201        "test/requantization-tester.h",
14202    ],
14203    deps = MICROKERNEL_TEST_DEPS + [":requantization_stubs"],
14204)
14205
14206xnnpack_unit_test(
14207    name = "qu8_vadd_minmax_test",
14208    srcs = [
14209        "test/qu8-vadd-minmax.cc",
14210        "test/vadd-microkernel-tester.h",
14211    ],
14212    deps = MICROKERNEL_TEST_DEPS,
14213)
14214
14215xnnpack_unit_test(
14216    name = "qu8_vaddc_minmax_test",
14217    srcs = [
14218        "test/qu8-vaddc-minmax.cc",
14219        "test/vaddc-microkernel-tester.h",
14220    ],
14221    deps = MICROKERNEL_TEST_DEPS,
14222)
14223
14224xnnpack_unit_test(
14225    name = "qu8_vcvt_test",
14226    srcs = [
14227        "test/qu8-vcvt.cc",
14228        "test/vcvt-microkernel-tester.h",
14229    ],
14230    deps = MICROKERNEL_TEST_DEPS,
14231)
14232
14233xnnpack_unit_test(
14234    name = "qu8_vlrelu_test",
14235    srcs = [
14236        "test/qu8-vlrelu.cc",
14237        "test/vlrelu-microkernel-tester.h",
14238    ],
14239    deps = MICROKERNEL_TEST_DEPS,
14240)
14241
14242xnnpack_unit_test(
14243    name = "qu8_vmul_minmax_fp32_test",
14244    srcs = [
14245        "test/qu8-vmul-minmax-fp32.cc",
14246        "test/vmul-microkernel-tester.h",
14247    ],
14248    deps = MICROKERNEL_TEST_DEPS,
14249)
14250
14251xnnpack_unit_test(
14252    name = "qu8_vmul_minmax_rndnu_test",
14253    srcs = [
14254        "test/qu8-vmul-minmax-rndnu.cc",
14255        "test/vmul-microkernel-tester.h",
14256    ],
14257    deps = MICROKERNEL_TEST_DEPS,
14258)
14259
14260xnnpack_unit_test(
14261    name = "qu8_vmulc_minmax_fp32_test",
14262    srcs = [
14263        "test/qu8-vmulc-minmax-fp32.cc",
14264        "test/vmulc-microkernel-tester.h",
14265    ],
14266    deps = MICROKERNEL_TEST_DEPS,
14267)
14268
14269xnnpack_unit_test(
14270    name = "qu8_vmulc_minmax_rndnu_test",
14271    srcs = [
14272        "test/qu8-vmulc-minmax-rndnu.cc",
14273        "test/vmulc-microkernel-tester.h",
14274    ],
14275    deps = MICROKERNEL_TEST_DEPS,
14276)
14277
14278xnnpack_unit_test(
14279    name = "s16_rmaxabs_test",
14280    srcs = [
14281        "test/rmaxabs-microkernel-tester.h",
14282        "test/s16-rmaxabs.cc",
14283    ],
14284    deps = MICROKERNEL_TEST_DEPS,
14285)
14286
14287xnnpack_unit_test(
14288    name = "s16_window_test",
14289    srcs = [
14290        "test/s16-window.cc",
14291        "test/window-microkernel-tester.h",
14292    ],
14293    deps = MICROKERNEL_TEST_DEPS,
14294)
14295
14296xnnpack_unit_test(
14297    name = "u32_filterbank_accumulate_test",
14298    srcs = [
14299        "test/filterbank-accumulate-microkernel-tester.h",
14300        "test/u32-filterbank-accumulate.cc",
14301    ],
14302    deps = MICROKERNEL_TEST_DEPS,
14303)
14304
14305xnnpack_unit_test(
14306    name = "u32_filterbank_subtract_test",
14307    srcs = [
14308        "test/filterbank-subtract-microkernel-tester.h",
14309        "test/u32-filterbank-subtract.cc",
14310    ],
14311    deps = MICROKERNEL_TEST_DEPS,
14312)
14313
14314xnnpack_unit_test(
14315    name = "u32_vlog_test",
14316    srcs = [
14317        "test/u32-vlog.cc",
14318        "test/vlog-microkernel-tester.h",
14319    ],
14320    deps = MICROKERNEL_TEST_DEPS,
14321)
14322
14323xnnpack_unit_test(
14324    name = "s16_vlshift_test",
14325    srcs = [
14326        "test/s16-vlshift.cc",
14327        "test/vlshift-microkernel-tester.h",
14328    ],
14329    deps = MICROKERNEL_TEST_DEPS,
14330)
14331
14332xnnpack_unit_test(
14333    name = "cs16_vsquareabs_test",
14334    srcs = [
14335        "test/cs16-vsquareabs.cc",
14336        "test/vsquareabs-microkernel-tester.h",
14337    ],
14338    deps = MICROKERNEL_TEST_DEPS,
14339)
14340
14341xnnpack_unit_test(
14342    name = "cs16_bfly4_test",
14343    srcs = [
14344        "test/bfly4-microkernel-tester.h",
14345        "test/cs16-bfly4.cc",
14346    ],
14347    deps = MICROKERNEL_TEST_DEPS,
14348)
14349
14350xnnpack_unit_test(
14351    name = "cs16_fftr_test",
14352    srcs = [
14353        "test/cs16-fftr.cc",
14354        "test/fftr-microkernel-tester.h",
14355    ],
14356    deps = MICROKERNEL_TEST_DEPS,
14357)
14358
14359xnnpack_unit_test(
14360    name = "s8_ibilinear_test",
14361    srcs = [
14362        "test/ibilinear-microkernel-tester.h",
14363        "test/s8-ibilinear.cc",
14364    ],
14365    deps = MICROKERNEL_TEST_DEPS,
14366)
14367
14368xnnpack_unit_test(
14369    name = "s8_maxpool_minmax_test",
14370    srcs = [
14371        "test/maxpool-microkernel-tester.h",
14372        "test/s8-maxpool-minmax.cc",
14373    ],
14374    deps = MICROKERNEL_TEST_DEPS,
14375)
14376
14377xnnpack_unit_test(
14378    name = "s8_vclamp_test",
14379    srcs = [
14380        "test/s8-vclamp.cc",
14381        "test/vunary-microkernel-tester.h",
14382    ],
14383    deps = MICROKERNEL_TEST_DEPS,
14384)
14385
14386xnnpack_unit_test(
14387    name = "u8_ibilinear_test",
14388    srcs = [
14389        "test/ibilinear-microkernel-tester.h",
14390        "test/u8-ibilinear.cc",
14391    ],
14392    deps = MICROKERNEL_TEST_DEPS,
14393)
14394
14395xnnpack_unit_test(
14396    name = "u8_lut32norm_test",
14397    srcs = [
14398        "test/lut-norm-microkernel-tester.h",
14399        "test/u8-lut32norm.cc",
14400    ],
14401    deps = MICROKERNEL_TEST_DEPS,
14402)
14403
14404xnnpack_unit_test(
14405    name = "u8_maxpool_minmax_test",
14406    srcs = [
14407        "test/maxpool-microkernel-tester.h",
14408        "test/u8-maxpool-minmax.cc",
14409    ],
14410    deps = MICROKERNEL_TEST_DEPS,
14411)
14412
14413xnnpack_unit_test(
14414    name = "u8_rmax_test",
14415    srcs = [
14416        "test/rmax-microkernel-tester.h",
14417        "test/u8-rmax.cc",
14418    ],
14419    deps = MICROKERNEL_TEST_DEPS,
14420)
14421
14422xnnpack_unit_test(
14423    name = "u8_vclamp_test",
14424    srcs = [
14425        "test/u8-vclamp.cc",
14426        "test/vunary-microkernel-tester.h",
14427    ],
14428    deps = MICROKERNEL_TEST_DEPS,
14429)
14430
14431xnnpack_unit_test(
14432    name = "u64_u32_vsqrtshift_test",
14433    srcs = [
14434        "test/u64-u32-vsqrtshift.cc",
14435        "test/vunary-microkernel-tester.h",
14436    ],
14437    deps = MICROKERNEL_TEST_DEPS,
14438)
14439
14440xnnpack_unit_test(
14441    name = "x8_lut_test",
14442    srcs = [
14443        "test/lut-microkernel-tester.h",
14444        "test/x8-lut.cc",
14445    ],
14446    deps = MICROKERNEL_TEST_DEPS,
14447)
14448
14449xnnpack_unit_test(
14450    name = "x8_zip_test",
14451    srcs = [
14452        "test/x8-zip.cc",
14453        "test/zip-microkernel-tester.h",
14454    ],
14455    deps = MICROKERNEL_TEST_DEPS,
14456)
14457
14458xnnpack_unit_test(
14459    name = "x32_packx_test",
14460    srcs = [
14461        "test/pack-microkernel-tester.h",
14462        "test/x32-packx.cc",
14463    ],
14464    deps = MICROKERNEL_TEST_DEPS,
14465)
14466
14467xnnpack_unit_test(
14468    name = "x8_transpose_test",
14469    srcs = [
14470        "test/transpose-microkernel-tester.h",
14471        "test/x8-transpose.cc",
14472    ],
14473    deps = MICROKERNEL_TEST_DEPS,
14474)
14475
14476xnnpack_unit_test(
14477    name = "x16_transpose_test",
14478    srcs = [
14479        "test/transpose-microkernel-tester.h",
14480        "test/x16-transpose.cc",
14481    ],
14482    deps = MICROKERNEL_TEST_DEPS,
14483)
14484
14485xnnpack_unit_test(
14486    name = "x24_transpose_test",
14487    srcs = [
14488        "test/transpose-microkernel-tester.h",
14489        "test/x24-transpose.cc",
14490    ],
14491    deps = MICROKERNEL_TEST_DEPS,
14492)
14493
14494xnnpack_unit_test(
14495    name = "x32_transpose_test",
14496    srcs = [
14497        "test/transpose-microkernel-tester.h",
14498        "test/x32-transpose.cc",
14499    ],
14500    deps = MICROKERNEL_TEST_DEPS,
14501)
14502
14503xnnpack_unit_test(
14504    name = "x64_transpose_test",
14505    srcs = [
14506        "test/transpose-microkernel-tester.h",
14507        "test/x64-transpose.cc",
14508    ],
14509    deps = MICROKERNEL_TEST_DEPS,
14510)
14511
14512xnnpack_unit_test(
14513    name = "xx_transpose_test",
14514    srcs = [
14515        "test/transpose-microkernel-tester.h",
14516        "test/xx-transpose.cc",
14517    ],
14518    deps = MICROKERNEL_TEST_DEPS,
14519)
14520
14521xnnpack_unit_test(
14522    name = "x32_unpool_test",
14523    srcs = [
14524        "test/unpool-microkernel-tester.h",
14525        "test/x32-unpool.cc",
14526    ],
14527    deps = MICROKERNEL_TEST_DEPS,
14528)
14529
14530xnnpack_unit_test(
14531    name = "x32_zip_test",
14532    srcs = [
14533        "test/x32-zip.cc",
14534        "test/zip-microkernel-tester.h",
14535    ],
14536    deps = MICROKERNEL_TEST_DEPS,
14537)
14538
14539xnnpack_unit_test(
14540    name = "xx_fill_test",
14541    srcs = [
14542        "test/fill-microkernel-tester.h",
14543        "test/xx-fill.cc",
14544    ],
14545    deps = MICROKERNEL_TEST_DEPS,
14546)
14547
14548xnnpack_unit_test(
14549    name = "xx_pad_test",
14550    srcs = [
14551        "test/pad-microkernel-tester.h",
14552        "test/xx-pad.cc",
14553    ],
14554    deps = MICROKERNEL_TEST_DEPS,
14555)
14556
14557########################## Size tests for the library #########################
14558
14559xnnpack_binary(
14560    name = "operator_size_test",
14561    srcs = ["test/operator-size.c"],
14562    deps = [":xnnpack_for_tfjs"],
14563)
14564
14565xnnpack_binary(
14566    name = "subgraph_size_test",
14567    srcs = ["test/subgraph-size.c"],
14568    deps = [
14569        ":XNNPACK",
14570    ],
14571)
14572
14573########################### Unit tests for operators ##########################
14574
14575xnnpack_unit_test(
14576    name = "abs_nc_test",
14577    srcs = [
14578        "test/abs-nc.cc",
14579        "test/abs-operator-tester.h",
14580    ],
14581    deps = OPERATOR_TEST_DEPS,
14582)
14583
14584xnnpack_unit_test(
14585    name = "add_nd_test",
14586    timeout = "moderate",
14587    srcs = [
14588        "test/add-nd.cc",
14589        "test/binary-elementwise-operator-tester.h",
14590    ],
14591    shard_count = 5,
14592    deps = OPERATOR_TEST_DEPS,
14593)
14594
14595xnnpack_unit_test(
14596    name = "argmax_pooling_nhwc_test",
14597    srcs = [
14598        "test/argmax-pooling-nhwc.cc",
14599        "test/argmax-pooling-operator-tester.h",
14600    ],
14601    deps = OPERATOR_TEST_DEPS,
14602)
14603
14604xnnpack_unit_test(
14605    name = "average_pooling_nhwc_test",
14606    srcs = [
14607        "test/average-pooling-nhwc.cc",
14608        "test/average-pooling-operator-tester.h",
14609    ],
14610    shard_count = 5,
14611    deps = OPERATOR_TEST_DEPS,
14612)
14613
14614xnnpack_unit_test(
14615    name = "bankers_rounding_nc_test",
14616    srcs = [
14617        "test/bankers-rounding-nc.cc",
14618        "test/bankers-rounding-operator-tester.h",
14619    ],
14620    deps = OPERATOR_TEST_DEPS,
14621)
14622
14623xnnpack_unit_test(
14624    name = "ceiling_nc_test",
14625    srcs = [
14626        "test/ceiling-nc.cc",
14627        "test/ceiling-operator-tester.h",
14628    ],
14629    deps = OPERATOR_TEST_DEPS,
14630)
14631
14632xnnpack_unit_test(
14633    name = "channel_shuffle_nc_test",
14634    srcs = [
14635        "test/channel-shuffle-nc.cc",
14636        "test/channel-shuffle-operator-tester.h",
14637    ],
14638    deps = OPERATOR_TEST_DEPS,
14639)
14640
14641xnnpack_unit_test(
14642    name = "clamp_nc_test",
14643    srcs = [
14644        "test/clamp-nc.cc",
14645        "test/clamp-operator-tester.h",
14646    ],
14647    deps = OPERATOR_TEST_DEPS,
14648)
14649
14650xnnpack_unit_test(
14651    name = "constant_pad_nd_test",
14652    srcs = [
14653        "test/constant-pad-nd.cc",
14654        "test/constant-pad-operator-tester.h",
14655    ],
14656    deps = OPERATOR_TEST_DEPS,
14657)
14658
14659xnnpack_unit_test(
14660    name = "convert_nc_test",
14661    srcs = [
14662        "test/convert-nc.cc",
14663        "test/convert-operator-tester.h",
14664    ],
14665    deps = OPERATOR_TEST_DEPS,
14666)
14667
14668xnnpack_unit_test(
14669    name = "convolution_nhwc_test",
14670    timeout = "moderate",
14671    srcs = [
14672        "test/convolution-nhwc.cc",
14673        "test/convolution-operator-tester.h",
14674    ],
14675    shard_count = 10,
14676    deps = OPERATOR_TEST_DEPS + [
14677        ":convolution_test_helpers",
14678    ],
14679)
14680
14681xnnpack_unit_test(
14682    name = "convolution_nchw_test",
14683    timeout = "moderate",
14684    srcs = [
14685        "test/convolution-nchw.cc",
14686        "test/convolution-operator-tester.h",
14687    ],
14688    deps = OPERATOR_TEST_DEPS + [
14689        ":convolution_test_helpers",
14690    ],
14691)
14692
14693xnnpack_unit_test(
14694    name = "copy_nc_test",
14695    srcs = [
14696        "test/copy-nc.cc",
14697        "test/copy-operator-tester.h",
14698    ],
14699    deps = OPERATOR_TEST_DEPS,
14700)
14701
14702xnnpack_unit_test(
14703    name = "deconvolution_nhwc_test",
14704    timeout = "moderate",
14705    srcs = [
14706        "test/deconvolution-nhwc.cc",
14707        "test/deconvolution-operator-tester.h",
14708    ],
14709    shard_count = 10,
14710    deps = OPERATOR_TEST_DEPS + [
14711        ":convolution_test_helpers",
14712    ],
14713)
14714
14715xnnpack_unit_test(
14716    name = "depth_to_space_nchw2nhwc_test",
14717    srcs = [
14718        "test/depth-to-space-nchw2nhwc.cc",
14719        "test/depth-to-space-operator-tester.h",
14720    ],
14721    deps = OPERATOR_TEST_DEPS,
14722)
14723
14724xnnpack_unit_test(
14725    name = "depth_to_space_nhwc_test",
14726    srcs = [
14727        "test/depth-to-space-nhwc.cc",
14728        "test/depth-to-space-operator-tester.h",
14729    ],
14730    deps = OPERATOR_TEST_DEPS,
14731)
14732
14733xnnpack_unit_test(
14734    name = "divide_nd_test",
14735    srcs = [
14736        "test/binary-elementwise-operator-tester.h",
14737        "test/divide-nd.cc",
14738    ],
14739    shard_count = 5,
14740    deps = OPERATOR_TEST_DEPS,
14741)
14742
14743xnnpack_unit_test(
14744    name = "elu_nc_test",
14745    srcs = [
14746        "test/elu-nc.cc",
14747        "test/elu-operator-tester.h",
14748    ],
14749    deps = OPERATOR_TEST_DEPS,
14750)
14751
14752xnnpack_unit_test(
14753    name = "fully_connected_nc_test",
14754    srcs = [
14755        "test/fully-connected-nc.cc",
14756        "test/fully-connected-operator-tester.h",
14757    ],
14758    deps = OPERATOR_TEST_DEPS,
14759)
14760
14761xnnpack_unit_test(
14762    name = "floor_nc_test",
14763    srcs = [
14764        "test/floor-nc.cc",
14765        "test/floor-operator-tester.h",
14766    ],
14767    deps = OPERATOR_TEST_DEPS,
14768)
14769
14770xnnpack_unit_test(
14771    name = "global_average_pooling_nwc_test",
14772    srcs = [
14773        "test/global-average-pooling-nwc.cc",
14774        "test/global-average-pooling-operator-tester.h",
14775    ],
14776    deps = OPERATOR_TEST_DEPS,
14777)
14778
14779xnnpack_unit_test(
14780    name = "global_average_pooling_ncw_test",
14781    srcs = [
14782        "test/global-average-pooling-ncw.cc",
14783        "test/global-average-pooling-operator-tester.h",
14784    ],
14785    deps = OPERATOR_TEST_DEPS,
14786)
14787
14788xnnpack_unit_test(
14789    name = "hardswish_nc_test",
14790    srcs = [
14791        "test/hardswish-nc.cc",
14792        "test/hardswish-operator-tester.h",
14793    ],
14794    deps = OPERATOR_TEST_DEPS,
14795)
14796
14797xnnpack_unit_test(
14798    name = "leaky_relu_nc_test",
14799    srcs = [
14800        "test/leaky-relu-nc.cc",
14801        "test/leaky-relu-operator-tester.h",
14802    ],
14803    deps = OPERATOR_TEST_DEPS,
14804)
14805
14806xnnpack_unit_test(
14807    name = "max_pooling_nhwc_test",
14808    timeout = "moderate",
14809    srcs = [
14810        "test/max-pooling-nhwc.cc",
14811        "test/max-pooling-operator-tester.h",
14812    ],
14813    deps = OPERATOR_TEST_DEPS,
14814)
14815
14816xnnpack_unit_test(
14817    name = "maximum_nd_test",
14818    srcs = [
14819        "test/binary-elementwise-operator-tester.h",
14820        "test/maximum-nd.cc",
14821    ],
14822    shard_count = 5,
14823    deps = OPERATOR_TEST_DEPS,
14824)
14825
14826xnnpack_unit_test(
14827    name = "minimum_nd_test",
14828    srcs = [
14829        "test/binary-elementwise-operator-tester.h",
14830        "test/minimum-nd.cc",
14831    ],
14832    shard_count = 5,
14833    deps = OPERATOR_TEST_DEPS,
14834)
14835
14836xnnpack_unit_test(
14837    name = "multiply_nd_test",
14838    timeout = "moderate",
14839    srcs = [
14840        "test/binary-elementwise-operator-tester.h",
14841        "test/multiply-nd.cc",
14842    ],
14843    shard_count = 5,
14844    deps = OPERATOR_TEST_DEPS,
14845)
14846
14847xnnpack_unit_test(
14848    name = "negate_nc_test",
14849    srcs = [
14850        "test/negate-nc.cc",
14851        "test/negate-operator-tester.h",
14852    ],
14853    deps = OPERATOR_TEST_DEPS,
14854)
14855
14856xnnpack_unit_test(
14857    name = "transpose_normalization_test",
14858    srcs = [
14859        "test/transpose-normalization.cc",
14860        "test/transpose-normalization-tester.h",
14861    ],
14862    deps = OPERATOR_TEST_DEPS,
14863)
14864
14865xnnpack_unit_test(
14866    name = "prelu_nc_test",
14867    srcs = [
14868        "test/prelu-nc.cc",
14869        "test/prelu-operator-tester.h",
14870    ],
14871    deps = OPERATOR_TEST_DEPS,
14872)
14873
14874xnnpack_unit_test(
14875    name = "resize_bilinear_nhwc_test",
14876    srcs = [
14877        "test/resize-bilinear-nhwc.cc",
14878        "test/resize-bilinear-operator-tester.h",
14879    ],
14880    deps = OPERATOR_TEST_DEPS,
14881)
14882
14883xnnpack_unit_test(
14884    name = "resize_bilinear_nchw_test",
14885    srcs = [
14886        "test/resize-bilinear-nchw.cc",
14887        "test/resize-bilinear-operator-tester.h",
14888    ],
14889    deps = OPERATOR_TEST_DEPS,
14890)
14891
14892xnnpack_unit_test(
14893    name = "sigmoid_nc_test",
14894    srcs = [
14895        "test/sigmoid-nc.cc",
14896        "test/sigmoid-operator-tester.h",
14897    ],
14898    deps = OPERATOR_TEST_DEPS,
14899)
14900
14901xnnpack_unit_test(
14902    name = "softmax_nc_test",
14903    srcs = [
14904        "test/softmax-nc.cc",
14905        "test/softmax-operator-tester.h",
14906    ],
14907    deps = OPERATOR_TEST_DEPS,
14908)
14909
14910xnnpack_unit_test(
14911    name = "space_to_depth_nhwc_test",
14912    srcs = [
14913        "test/space-to-depth-nhwc.cc",
14914        "test/space-to-depth-operator-tester.h",
14915    ],
14916    deps = OPERATOR_TEST_DEPS,
14917)
14918
14919xnnpack_unit_test(
14920    name = "square_nc_test",
14921    srcs = [
14922        "test/square-nc.cc",
14923        "test/square-operator-tester.h",
14924    ],
14925    deps = OPERATOR_TEST_DEPS,
14926)
14927
14928xnnpack_unit_test(
14929    name = "square_root_nc_test",
14930    srcs = [
14931        "test/square-root-nc.cc",
14932        "test/square-root-operator-tester.h",
14933    ],
14934    deps = OPERATOR_TEST_DEPS,
14935)
14936
14937xnnpack_unit_test(
14938    name = "squared_difference_nd_test",
14939    srcs = [
14940        "test/binary-elementwise-operator-tester.h",
14941        "test/squared-difference-nd.cc",
14942    ],
14943    shard_count = 5,
14944    deps = OPERATOR_TEST_DEPS,
14945)
14946
14947xnnpack_unit_test(
14948    name = "subtract_nd_test",
14949    srcs = [
14950        "test/binary-elementwise-operator-tester.h",
14951        "test/subtract-nd.cc",
14952    ],
14953    shard_count = 5,
14954    deps = OPERATOR_TEST_DEPS,
14955)
14956
14957xnnpack_unit_test(
14958    name = "tanh_nc_test",
14959    srcs = [
14960        "test/tanh-nc.cc",
14961        "test/tanh-operator-tester.h",
14962    ],
14963    deps = OPERATOR_TEST_DEPS,
14964)
14965
14966xnnpack_unit_test(
14967    name = "transpose_nd_test",
14968    srcs = [
14969        "test/transpose-nd.cc",
14970        "test/transpose-operator-tester.h",
14971    ],
14972    shard_count = 10,
14973    deps = OPERATOR_TEST_DEPS,
14974)
14975
14976xnnpack_unit_test(
14977    name = "truncation_nc_test",
14978    srcs = [
14979        "test/truncation-nc.cc",
14980        "test/truncation-operator-tester.h",
14981    ],
14982    deps = OPERATOR_TEST_DEPS,
14983)
14984
14985xnnpack_unit_test(
14986    name = "unpooling_nhwc_test",
14987    srcs = [
14988        "test/unpooling-nhwc.cc",
14989        "test/unpooling-operator-tester.h",
14990    ],
14991    deps = OPERATOR_TEST_DEPS,
14992)
14993
14994########################### Unit tests for subgraph ###########################
14995
14996xnnpack_cc_library(
14997    name = "convolution_test_helpers",
14998    testonly = True,
14999    srcs = [
15000        "test/convolution-test-helpers.cc",
15001    ],
15002    hdrs = [
15003        "test/convolution-test-helpers.h",
15004    ],
15005)
15006
15007xnnpack_cc_library(
15008    name = "subgraph_unary_tester",
15009    testonly = True,
15010    hdrs = [
15011        "test/subgraph-unary-tester.h",
15012    ],
15013    deps = [
15014        ":node_type",
15015        ":operators_test_mode",
15016        ":requantization",
15017        ":subgraph_test_mode",
15018        ":xnnpack_h",
15019        "@com_google_googletest//:gtest_main",
15020    ],
15021)
15022
15023xnnpack_cc_library(
15024    name = "subgraph_binary_tester",
15025    testonly = True,
15026    hdrs = [
15027        "test/subgraph-binary-tester.h",
15028    ],
15029    deps = [
15030        ":node_type",
15031        ":operators_test_mode",
15032        ":requantization",
15033        ":subgraph_test_mode",
15034        ":xnnpack_h",
15035        "@com_google_googletest//:gtest_main",
15036    ],
15037)
15038
15039xnnpack_unit_test(
15040    name = "workspace_test",
15041    srcs = [
15042        "test/workspace.cc",
15043    ],
15044    deps = [
15045        ":XNNPACK_test_mode",
15046        ":subgraph_test_mode",
15047    ],
15048)
15049
15050xnnpack_unit_test(
15051    name = "abs_test",
15052    srcs = [
15053        "test/abs.cc",
15054    ],
15055    deps = [
15056        ":XNNPACK_test_mode",
15057        ":node_type",
15058        ":operators_test_mode",
15059        ":subgraph_test_mode",
15060        ":subgraph_unary_tester",
15061    ],
15062)
15063
15064xnnpack_unit_test(
15065    name = "add2_test",
15066    srcs = [
15067        "test/add2.cc",
15068    ],
15069    deps = [
15070        ":XNNPACK_test_mode",
15071        ":node_type",
15072        ":operators_test_mode",
15073        ":subgraph_binary_tester",
15074        ":subgraph_test_mode",
15075    ],
15076)
15077
15078xnnpack_unit_test(
15079    name = "argmax_pooling_2d_test",
15080    srcs = [
15081        "test/argmax-pooling-2d.cc",
15082    ],
15083    deps = [
15084        ":XNNPACK_test_mode",
15085        ":node_type",
15086        ":operators_test_mode",
15087        ":subgraph_test_mode",
15088    ],
15089)
15090
15091xnnpack_unit_test(
15092    name = "average_pooling_2d_test",
15093    srcs = [
15094        "test/average-pooling-2d.cc",
15095    ],
15096    deps = [
15097        ":XNNPACK_test_mode",
15098        ":node_type",
15099        ":operators_test_mode",
15100        ":subgraph_test_mode",
15101    ],
15102)
15103
15104xnnpack_unit_test(
15105    name = "bankers_rounding_test",
15106    srcs = [
15107        "test/bankers-rounding.cc",
15108    ],
15109    deps = [
15110        ":XNNPACK_test_mode",
15111        ":node_type",
15112        ":operators_test_mode",
15113        ":subgraph_test_mode",
15114        ":subgraph_unary_tester",
15115    ],
15116)
15117
15118xnnpack_unit_test(
15119    name = "ceiling_test",
15120    srcs = [
15121        "test/ceiling.cc",
15122    ],
15123    deps = [
15124        ":XNNPACK_test_mode",
15125        ":node_type",
15126        ":operators_test_mode",
15127        ":subgraph_test_mode",
15128        ":subgraph_unary_tester",
15129    ],
15130)
15131
15132xnnpack_unit_test(
15133    name = "clamp_test",
15134    srcs = [
15135        "test/clamp.cc",
15136    ],
15137    deps = [
15138        ":XNNPACK_test_mode",
15139        ":node_type",
15140        ":operators_test_mode",
15141        ":subgraph_test_mode",
15142        ":subgraph_unary_tester",
15143    ],
15144)
15145
15146xnnpack_unit_test(
15147    name = "concatenate2_test",
15148    srcs = [
15149        "test/concatenate2.cc",
15150    ],
15151    deps = [
15152        ":XNNPACK_test_mode",
15153        ":node_type",
15154        ":operators_test_mode",
15155        ":subgraph_test_mode",
15156    ],
15157)
15158
15159xnnpack_unit_test(
15160    name = "concatenate3_test",
15161    srcs = [
15162        "test/concatenate3.cc",
15163    ],
15164    deps = [
15165        ":XNNPACK_test_mode",
15166        ":node_type",
15167        ":operators_test_mode",
15168        ":subgraph_test_mode",
15169    ],
15170)
15171
15172xnnpack_unit_test(
15173    name = "concatenate4_test",
15174    srcs = [
15175        "test/concatenate4.cc",
15176    ],
15177    deps = [
15178        ":XNNPACK_test_mode",
15179        ":node_type",
15180        ":operators_test_mode",
15181        ":subgraph_test_mode",
15182    ],
15183)
15184
15185xnnpack_unit_test(
15186    name = "convert_test",
15187    srcs = [
15188        "test/convert.cc",
15189    ],
15190    deps = [
15191        ":XNNPACK_test_mode",
15192        ":node_type",
15193        ":operators_test_mode",
15194        ":subgraph_test_mode",
15195        ":subgraph_unary_tester",
15196    ],
15197)
15198
15199xnnpack_unit_test(
15200    name = "convolution_2d_test",
15201    srcs = [
15202        "test/convolution-2d.cc",
15203    ],
15204    deps = [
15205        ":XNNPACK_test_mode",
15206        ":convolution_test_helpers",
15207        ":operators_test_mode",
15208        ":requantization",
15209        ":subgraph_test_mode",
15210    ],
15211)
15212
15213xnnpack_unit_test(
15214    name = "deconvolution_2d_test",
15215    srcs = [
15216        "test/deconvolution-2d.cc",
15217    ],
15218    shard_count = 5,
15219    deps = [
15220        ":XNNPACK_test_mode",
15221        ":operators_test_mode",
15222        ":requantization",
15223        ":subgraph_test_mode",
15224    ],
15225)
15226
15227xnnpack_unit_test(
15228    name = "depth_to_space_test",
15229    srcs = [
15230        "test/depth-to-space.cc",
15231    ],
15232    deps = [
15233        ":XNNPACK_test_mode",
15234        ":node_type",
15235        ":operators_test_mode",
15236        ":subgraph_test_mode",
15237    ],
15238)
15239
15240xnnpack_unit_test(
15241    name = "depthwise_convolution_2d_test",
15242    srcs = [
15243        "test/depthwise-convolution-2d.cc",
15244    ],
15245    deps = [
15246        ":XNNPACK_test_mode",
15247        ":convolution_test_helpers",
15248        ":operators_test_mode",
15249        ":requantization",
15250        ":subgraph_test_mode",
15251    ],
15252)
15253
15254xnnpack_unit_test(
15255    name = "divide2_test",
15256    srcs = [
15257        "test/divide2.cc",
15258    ],
15259    deps = [
15260        ":XNNPACK_test_mode",
15261        ":node_type",
15262        ":operators_test_mode",
15263        ":subgraph_binary_tester",
15264        ":subgraph_test_mode",
15265    ],
15266)
15267
15268xnnpack_unit_test(
15269    name = "elu_test",
15270    srcs = [
15271        "test/elu.cc",
15272    ],
15273    deps = [
15274        ":XNNPACK_test_mode",
15275        ":node_type",
15276        ":operators_test_mode",
15277        ":subgraph_test_mode",
15278        ":subgraph_unary_tester",
15279    ],
15280)
15281
15282xnnpack_unit_test(
15283    name = "even_split2_test",
15284    srcs = [
15285        "test/even-split2.cc",
15286    ],
15287    deps = [
15288        ":XNNPACK_test_mode",
15289        ":node_type",
15290        ":operators_test_mode",
15291        ":subgraph_test_mode",
15292    ],
15293)
15294
15295xnnpack_unit_test(
15296    name = "even_split3_test",
15297    srcs = [
15298        "test/even-split3.cc",
15299    ],
15300    deps = [
15301        ":XNNPACK_test_mode",
15302        ":node_type",
15303        ":operators_test_mode",
15304        ":subgraph_test_mode",
15305    ],
15306)
15307
15308xnnpack_unit_test(
15309    name = "even_split4_test",
15310    srcs = [
15311        "test/even-split4.cc",
15312    ],
15313    deps = [
15314        ":XNNPACK_test_mode",
15315        ":node_type",
15316        ":operators_test_mode",
15317        ":subgraph_test_mode",
15318    ],
15319)
15320
15321xnnpack_unit_test(
15322    name = "floor_test",
15323    srcs = [
15324        "test/floor.cc",
15325    ],
15326    deps = [
15327        ":XNNPACK_test_mode",
15328        ":node_type",
15329        ":operators_test_mode",
15330        ":subgraph_test_mode",
15331        ":subgraph_unary_tester",
15332    ],
15333)
15334
15335xnnpack_unit_test(
15336    name = "fully_connected_test",
15337    srcs = [
15338        "test/fully-connected.cc",
15339    ],
15340    deps = [
15341        ":XNNPACK_test_mode",
15342        ":operators_test_mode",
15343        ":requantization",
15344        ":subgraph_test_mode",
15345    ],
15346)
15347
15348xnnpack_unit_test(
15349    name = "global_average_pooling_1d_test",
15350    srcs = [
15351        "test/global-average-pooling-1d.cc",
15352    ],
15353    deps = [
15354        ":XNNPACK_test_mode",
15355        ":node_type",
15356        ":operators_test_mode",
15357        ":requantization",
15358        ":subgraph_test_mode",
15359    ],
15360)
15361
15362xnnpack_unit_test(
15363    name = "global_average_pooling_2d_test",
15364    srcs = [
15365        "test/global-average-pooling-2d.cc",
15366    ],
15367    deps = [
15368        ":XNNPACK_test_mode",
15369        ":node_type",
15370        ":operators_test_mode",
15371        ":requantization",
15372        ":subgraph_test_mode",
15373    ],
15374)
15375
15376xnnpack_unit_test(
15377    name = "hardswish_test",
15378    srcs = [
15379        "test/hardswish.cc",
15380    ],
15381    deps = [
15382        ":XNNPACK_test_mode",
15383        ":node_type",
15384        ":operators_test_mode",
15385        ":subgraph_test_mode",
15386        ":subgraph_unary_tester",
15387    ],
15388)
15389
15390xnnpack_unit_test(
15391    name = "leaky_relu_test",
15392    srcs = [
15393        "test/leaky-relu.cc",
15394    ],
15395    deps = [
15396        ":XNNPACK_test_mode",
15397        ":node_type",
15398        ":operators_test_mode",
15399        ":subgraph_test_mode",
15400        ":subgraph_unary_tester",
15401    ],
15402)
15403
15404xnnpack_unit_test(
15405    name = "max_pooling_2d_test",
15406    srcs = [
15407        "test/max-pooling-2d.cc",
15408    ],
15409    deps = [
15410        ":XNNPACK_test_mode",
15411        ":node_type",
15412        ":operators_test_mode",
15413        ":requantization",
15414        ":subgraph_test_mode",
15415    ],
15416)
15417
15418xnnpack_unit_test(
15419    name = "maximum2_test",
15420    srcs = [
15421        "test/maximum2.cc",
15422    ],
15423    deps = [
15424        ":XNNPACK_test_mode",
15425        ":node_type",
15426        ":operators_test_mode",
15427        ":subgraph_binary_tester",
15428        ":subgraph_test_mode",
15429    ],
15430)
15431
15432xnnpack_unit_test(
15433    name = "minimum2_test",
15434    srcs = [
15435        "test/minimum2.cc",
15436    ],
15437    deps = [
15438        ":XNNPACK_test_mode",
15439        ":node_type",
15440        ":operators_test_mode",
15441        ":subgraph_binary_tester",
15442        ":subgraph_test_mode",
15443    ],
15444)
15445
15446xnnpack_unit_test(
15447    name = "multiply2_test",
15448    srcs = [
15449        "test/multiply2.cc",
15450    ],
15451    deps = [
15452        ":XNNPACK_test_mode",
15453        ":node_type",
15454        ":operators_test_mode",
15455        ":subgraph_binary_tester",
15456        ":subgraph_test_mode",
15457    ],
15458)
15459
15460xnnpack_unit_test(
15461    name = "negate_test",
15462    srcs = [
15463        "test/negate.cc",
15464    ],
15465    deps = [
15466        ":XNNPACK_test_mode",
15467        ":node_type",
15468        ":operators_test_mode",
15469        ":subgraph_test_mode",
15470        ":subgraph_unary_tester",
15471    ],
15472)
15473
15474xnnpack_unit_test(
15475    name = "prelu_test",
15476    srcs = [
15477        "test/prelu.cc",
15478    ],
15479    deps = [
15480        ":XNNPACK_test_mode",
15481        ":node_type",
15482        ":operators_test_mode",
15483        ":subgraph_test_mode",
15484    ],
15485)
15486
15487xnnpack_unit_test(
15488    name = "sigmoid_test",
15489    srcs = [
15490        "test/sigmoid.cc",
15491    ],
15492    deps = [
15493        ":XNNPACK_test_mode",
15494        ":node_type",
15495        ":operators_test_mode",
15496        ":subgraph_test_mode",
15497        ":subgraph_unary_tester",
15498    ],
15499)
15500
15501xnnpack_unit_test(
15502    name = "softmax_test",
15503    srcs = [
15504        "test/softmax.cc",
15505    ],
15506    deps = [
15507        ":XNNPACK_test_mode",
15508        ":node_type",
15509        ":operators_test_mode",
15510        ":subgraph_test_mode",
15511        ":subgraph_unary_tester",
15512    ],
15513)
15514
15515xnnpack_unit_test(
15516    name = "square_test",
15517    srcs = [
15518        "test/square.cc",
15519    ],
15520    deps = [
15521        ":XNNPACK_test_mode",
15522        ":node_type",
15523        ":operators_test_mode",
15524        ":subgraph_test_mode",
15525        ":subgraph_unary_tester",
15526    ],
15527)
15528
15529xnnpack_unit_test(
15530    name = "square_root_test",
15531    srcs = [
15532        "test/square-root.cc",
15533    ],
15534    deps = [
15535        ":XNNPACK_test_mode",
15536        ":node_type",
15537        ":operators_test_mode",
15538        ":subgraph_test_mode",
15539        ":subgraph_unary_tester",
15540    ],
15541)
15542
15543xnnpack_unit_test(
15544    name = "squared_difference_test",
15545    srcs = [
15546        "test/squared-difference.cc",
15547    ],
15548    deps = [
15549        ":XNNPACK_test_mode",
15550        ":node_type",
15551        ":operators_test_mode",
15552        ":subgraph_binary_tester",
15553        ":subgraph_test_mode",
15554    ],
15555)
15556
15557xnnpack_unit_test(
15558    name = "static_constant_pad_test",
15559    srcs = [
15560        "test/static-constant-pad.cc",
15561    ],
15562    deps = [
15563        ":XNNPACK_test_mode",
15564        ":node_type",
15565        ":operators_test_mode",
15566        ":subgraph_test_mode",
15567        ":subgraph_unary_tester",
15568        "@FP16",
15569    ],
15570)
15571
15572xnnpack_unit_test(
15573    name = "static_reshape_test",
15574    srcs = [
15575        "test/static-reshape.cc",
15576    ],
15577    deps = [
15578        ":XNNPACK_test_mode",
15579        ":node_type",
15580        ":operators_test_mode",
15581        ":subgraph_test_mode",
15582        ":subgraph_unary_tester",
15583    ],
15584)
15585
15586xnnpack_unit_test(
15587    name = "static_resize_bilinear_2d_test",
15588    srcs = [
15589        "test/static-resize-bilinear-2d.cc",
15590    ],
15591    deps = [
15592        ":XNNPACK_test_mode",
15593        ":node_type",
15594        ":operators_test_mode",
15595        ":subgraph_test_mode",
15596        ":subgraph_unary_tester",
15597    ],
15598)
15599
15600xnnpack_unit_test(
15601    name = "static_transpose_test",
15602    srcs = [
15603        "test/static-transpose.cc",
15604    ],
15605    deps = [
15606        ":XNNPACK_test_mode",
15607        ":node_type",
15608        ":operators_test_mode",
15609        ":subgraph_test_mode",
15610        ":subgraph_unary_tester",
15611    ],
15612)
15613
15614xnnpack_unit_test(
15615    name = "subtract2_test",
15616    srcs = [
15617        "test/subtract2.cc",
15618    ],
15619    deps = [
15620        ":XNNPACK_test_mode",
15621        ":node_type",
15622        ":operators_test_mode",
15623        ":subgraph_binary_tester",
15624        ":subgraph_test_mode",
15625    ],
15626)
15627
15628xnnpack_unit_test(
15629    name = "unpooling_2d_test",
15630    srcs = [
15631        "test/unpooling-2d.cc",
15632    ],
15633    deps = [
15634        ":XNNPACK_test_mode",
15635        ":node_type",
15636        ":operators_test_mode",
15637        ":requantization",
15638        ":subgraph_test_mode",
15639    ],
15640)
15641
15642xnnpack_unit_test(
15643    name = "fusion_test",
15644    srcs = [
15645        "test/fusion.cc",
15646        "test/runtime-tester.h",
15647        "test/subgraph-tester.h",
15648    ],
15649    deps = [
15650        ":XNNPACK_test_mode",
15651        ":subgraph_test_mode",
15652    ],
15653)
15654
15655############################### Misc unit tests ###############################
15656
15657xnnpack_unit_test(
15658    name = "memory_planner_test",
15659    srcs = [
15660        "test/memory-planner-test.cc",
15661    ],
15662    deps = [
15663        ":XNNPACK",
15664        ":subgraph_test_mode",
15665    ],
15666)
15667
15668xnnpack_unit_test(
15669    name = "subgraph_nchw_test",
15670    srcs = [
15671        "test/subgraph-nchw.cc",
15672        "test/subgraph-tester.h",
15673    ],
15674    deps = [
15675        ":XNNPACK",
15676        ":subgraph_test_mode",
15677    ],
15678)
15679
15680xnnpack_unit_test(
15681    name = "subgraph_fp16_test",
15682    srcs = [
15683        "test/subgraph-fp16.cc",
15684        "test/subgraph-tester.h",
15685    ],
15686    deps = [
15687        ":XNNPACK",
15688        ":node_type",
15689        ":subgraph_test_mode",
15690    ],
15691)
15692
15693xnnpack_unit_test(
15694    name = "jit_test",
15695    srcs = [
15696        "test/jit.cc",
15697    ],
15698    deps = [
15699        ":XNNPACK",
15700        ":allocator",
15701        ":common",
15702        ":jit_test_mode",
15703    ],
15704)
15705
15706xnnpack_unit_test(
15707    name = "aarch32_assembler_test",
15708    srcs = [
15709        "test/aarch32-assembler.cc",
15710        "test/assembler-helpers.h",
15711    ],
15712    deps = [
15713        ":XNNPACK",
15714        ":allocator",
15715        ":common",
15716        ":jit_test_mode",
15717    ],
15718)
15719
15720xnnpack_unit_test(
15721    name = "aarch64_assembler_test",
15722    srcs = [
15723        "test/aarch64-assembler.cc",
15724        "test/assembler-helpers.h",
15725    ],
15726    deps = [
15727        ":XNNPACK",
15728        ":allocator",
15729        ":common",
15730        ":jit_test_mode",
15731    ],
15732)
15733
15734xnnpack_unit_test(
15735    name = "code_cache_test",
15736    srcs = ["test/code-cache.cc"],
15737    deps = [
15738        ":XNNPACK",
15739        ":cache",
15740    ],
15741)
15742
15743xnnpack_unit_test(
15744    name = "weights_cache_test",
15745    srcs = ["test/weights-cache.cc"],
15746    deps = [
15747        ":XNNPACK",
15748        ":cache",
15749        ":common",
15750    ],
15751)
15752
15753xnnpack_unit_test(
15754    name = "mutex_test",
15755    srcs = ["test/mutex.cc"],
15756    deps = [
15757        ":common",
15758        ":mutex_test_mode",
15759        ":xnnpack_h",
15760    ],
15761)
15762
15763xnnpack_unit_test(
15764    name = "operators_util_test",
15765    srcs = ["test/operator-utils.cc"],
15766    deps = [
15767        ":common",
15768        ":operators_test_mode",
15769        ":params",
15770    ],
15771)
15772
15773xnnpack_unit_test(
15774    name = "packing_test",
15775    srcs = [
15776        "test/packing.cc",
15777    ],
15778    deps = MICROKERNEL_TEST_DEPS + [":packing_test_mode"],
15779)
15780
15781############################# Build configurations #############################
15782
15783# Enables usage of ARM FP16 (FP16 arithmetics) kernels.
15784config_setting(
15785    name = "xnn_enable_arm_fp16_explicit_true",
15786    define_values = {"xnn_enable_arm_fp16": "true"},
15787)
15788
15789# Disables usage of ARM FP16 (FP16 arithmetics) kernels.
15790config_setting(
15791    name = "xnn_enable_arm_fp16_explicit_false",
15792    define_values = {"xnn_enable_arm_fp16": "false"},
15793)
15794
15795# Enables usage of ARM BF16 (BF16 arithmetics) kernels.
15796config_setting(
15797    name = "xnn_enable_arm_bf16_explicit_true",
15798    define_values = {"xnn_enable_arm_bf16": "true"},
15799)
15800
15801# Disables usage of ARM BF16 (BF16 arithmetics) kernels.
15802config_setting(
15803    name = "xnn_enable_arm_bf16_explicit_false",
15804    define_values = {"xnn_enable_arm_bf16": "false"},
15805)
15806
15807# Enables usage of ARM DotProd (integer dot product) kernels.
15808config_setting(
15809    name = "xnn_enable_arm_dotprod_explicit_true",
15810    define_values = {"xnn_enable_arm_dotprod": "true"},
15811)
15812
15813# Disables usage of ARM DotProd (integer dot product) kernels.
15814config_setting(
15815    name = "xnn_enable_arm_dotprod_explicit_false",
15816    define_values = {"xnn_enable_arm_dotprod": "false"},
15817)
15818
15819# Enables usage of assembly kernels.
15820config_setting(
15821    name = "xnn_enable_assembly_explicit_true",
15822    define_values = {"xnn_enable_assembly": "true"},
15823)
15824
15825# Disables usage of assembly kernels.
15826config_setting(
15827    name = "xnn_enable_assembly_explicit_false",
15828    define_values = {"xnn_enable_assembly": "false"},
15829)
15830
15831# Enables usage of sparse inference.
15832config_setting(
15833    name = "xnn_enable_sparse_explicit_true",
15834    define_values = {"xnn_enable_sparse": "true"},
15835)
15836
15837# Disables usage of sparse inference.
15838config_setting(
15839    name = "xnn_enable_sparse_explicit_false",
15840    define_values = {"xnn_enable_sparse": "false"},
15841)
15842
15843# Disables usage of HMP-aware optimizations.
15844config_setting(
15845    name = "xnn_enable_hmp_explicit_false",
15846    define_values = {"xnn_enable_hmp": "false"},
15847)
15848
15849# Enable usage of optimized memory allocation
15850config_setting(
15851    name = "xnn_enable_memopt_explicit_true",
15852    define_values = {"xnn_enable_memopt": "true"},
15853)
15854
15855# Disable usage of optimized memory allocation
15856config_setting(
15857    name = "xnn_enable_memopt_explicit_false",
15858    define_values = {"xnn_enable_memopt": "false"},
15859)
15860
15861# Enable QS8 inference in TFLite-specific version
15862config_setting(
15863    name = "xnn_enable_qs8_explicit_true",
15864    define_values = {"xnn_enable_qs8": "true"},
15865)
15866
15867# Disable QS8 inference in TFLite-specific version
15868config_setting(
15869    name = "xnn_enable_qs8_explicit_false",
15870    define_values = {"xnn_enable_qs8": "false"},
15871)
15872
15873# Enable QU8 inference in TFLite-specific version
15874config_setting(
15875    name = "xnn_enable_qu8_explicit_true",
15876    define_values = {"xnn_enable_qu8": "true"},
15877)
15878
15879# Disable QU8 inference in TFLite-specific version
15880config_setting(
15881    name = "xnn_enable_qu8_explicit_false",
15882    define_values = {"xnn_enable_qu8": "false"},
15883)
15884
15885# Enables usage of JIT kernels.
15886config_setting(
15887    name = "xnn_enable_jit_explicit_true",
15888    define_values = {"xnn_enable_jit": "true"},
15889)
15890
15891# Disables usage of JIT kernels.
15892config_setting(
15893    name = "xnn_enable_jit_explicit_false",
15894    define_values = {"xnn_enable_jit": "false"},
15895)
15896
15897# Enables usage of mr heuristic to select microkernels.
15898config_setting(
15899    name = "xnn_enable_gemm_m_specialization_explicit_true",
15900    define_values = {"xnn_enable_gemm_m_specialization": "true"},
15901)
15902
15903# Disables usage of mr heuristic to select microkernels.
15904config_setting(
15905    name = "xnn_enable_gemm_m_specialization_explicit_false",
15906    define_values = {"xnn_enable_gemm_m_specialization": "false"},
15907)
15908
15909# Force logging to stderr/stdout
15910config_setting(
15911    name = "xnn_log_to_stdio_explicit_true",
15912    define_values = {"xnn_log_to_stdio": "true"},
15913)
15914
15915# Fully disable logging
15916config_setting(
15917    name = "xnn_log_level_explicit_none",
15918    define_values = {"xnn_log_level": "none"},
15919)
15920
15921# Log fatal errors only
15922config_setting(
15923    name = "xnn_log_level_explicit_fatal",
15924    define_values = {"xnn_log_level": "fatal"},
15925)
15926
15927# Log fatal and non-fatal errors
15928config_setting(
15929    name = "xnn_log_level_explicit_error",
15930    define_values = {"xnn_log_level": "error"},
15931)
15932
15933# Log warnings and errors
15934config_setting(
15935    name = "xnn_log_level_explicit_warning",
15936    define_values = {"xnn_log_level": "warning"},
15937)
15938
15939# Log information messages, warnings and errors
15940config_setting(
15941    name = "xnn_log_level_explicit_info",
15942    define_values = {"xnn_log_level": "info"},
15943)
15944
15945# Log all messages, including debug messages
15946config_setting(
15947    name = "xnn_log_level_explicit_debug",
15948    define_values = {"xnn_log_level": "debug"},
15949)
15950
15951# Builds with -c dbg
15952config_setting(
15953    name = "debug_build",
15954    values = {
15955        "compilation_mode": "dbg",
15956    },
15957)
15958
15959# Builds with -c opt
15960config_setting(
15961    name = "optimized_build",
15962    values = {
15963        "compilation_mode": "opt",
15964    },
15965)
15966
15967config_setting(
15968    name = "linux_arm64",
15969    values = {"cpu": "aarch64"},
15970)
15971
15972config_setting(
15973    name = "linux_k8",
15974    values = {"cpu": "k8"},
15975)
15976
15977config_setting(
15978    name = "linux_arm",
15979    values = {"cpu": "arm"},
15980)
15981
15982config_setting(
15983    name = "linux_armeabi",
15984    values = {"cpu": "armeabi"},
15985)
15986
15987config_setting(
15988    name = "linux_armhf",
15989    values = {"cpu": "armhf"},
15990)
15991
15992config_setting(
15993    name = "linux_armv7a",
15994    values = {"cpu": "armv7a"},
15995)
15996
15997config_setting(
15998    name = "linux_riscv64",
15999    values = {"cpu": "riscv64"},
16000)
16001
16002config_setting(
16003    name = "android",
16004    values = {"crosstool_top": "//external:android/crosstool"},
16005)
16006
16007config_setting(
16008    name = "android_armv7",
16009    values = {
16010        "crosstool_top": "//external:android/crosstool",
16011        "cpu": "armeabi-v7a",
16012    },
16013)
16014
16015config_setting(
16016    name = "android_arm64",
16017    values = {
16018        "crosstool_top": "//external:android/crosstool",
16019        "cpu": "arm64-v8a",
16020    },
16021)
16022
16023config_setting(
16024    name = "android_x86",
16025    values = {
16026        "crosstool_top": "//external:android/crosstool",
16027        "cpu": "x86",
16028    },
16029)
16030
16031config_setting(
16032    name = "android_x86_64",
16033    values = {
16034        "crosstool_top": "//external:android/crosstool",
16035        "cpu": "x86_64",
16036    },
16037)
16038
16039config_setting(
16040    name = "windows_x86_64",
16041    values = {"cpu": "x64_windows"},
16042)
16043
16044config_setting(
16045    name = "windows_x86_64_clang",
16046    values = {
16047        "compiler": "clang-cl",
16048        "cpu": "x64_windows",
16049    },
16050)
16051
16052config_setting(
16053    name = "windows_x86_64_mingw",
16054    values = {
16055        "compiler": "mingw-gcc",
16056        "cpu": "x64_windows",
16057    },
16058)
16059
16060config_setting(
16061    name = "windows_x86_64_msys",
16062    values = {
16063        "compiler": "msys-gcc",
16064        "cpu": "x64_windows",
16065    },
16066)
16067
16068config_setting(
16069    name = "macos_x86_64",
16070    values = {
16071        "apple_platform_type": "macos",
16072        "cpu": "darwin",
16073    },
16074)
16075
16076config_setting(
16077    name = "macos_arm64",
16078    values = {
16079        "apple_platform_type": "macos",
16080        "cpu": "darwin_arm64",
16081    },
16082)
16083
16084config_setting(
16085    name = "emscripten",
16086    values = {"crosstool_top": "@emsdk//emscripten_toolchain:everything"},
16087)
16088
16089config_setting(
16090    name = "emscripten_wasm",
16091    values = {
16092        "crosstool_top": "@emsdk//emscripten_toolchain:everything",
16093        "cpu": "wasm",
16094    },
16095)
16096
16097config_setting(
16098    name = "emscripten_wasmsimd",
16099    values = {
16100        "crosstool_top": "@emsdk//emscripten_toolchain:everything",
16101        "cpu": "wasm",
16102        "features": "wasm_simd",
16103    },
16104)
16105
16106config_setting(
16107    name = "emscripten_wasmrelaxedsimd",
16108    values = {
16109        "crosstool_top": "@emsdk//emscripten_toolchain:everything",
16110        "cpu": "wasm",
16111        "features": "wasm_relaxed_simd",
16112    },
16113)
16114
16115config_setting(
16116    name = "ios_arm64",
16117    values = {
16118        "apple_platform_type": "ios",
16119        "cpu": "ios_arm64",
16120    },
16121)
16122
16123config_setting(
16124    name = "ios_arm64e",
16125    values = {
16126        "apple_platform_type": "ios",
16127        "cpu": "ios_arm64e",
16128    },
16129)
16130
16131config_setting(
16132    name = "ios_sim_arm64",
16133    values = {
16134        "apple_platform_type": "ios",
16135        "cpu": "ios_sim_arm64",
16136    },
16137)
16138
16139config_setting(
16140    name = "ios_x86_64",
16141    values = {
16142        "apple_platform_type": "ios",
16143        "cpu": "ios_x86_64",
16144    },
16145)
16146
16147config_setting(
16148    name = "watchos_arm64_32",
16149    values = {
16150        "apple_platform_type": "watchos",
16151        "cpu": "watchos_arm64_32",
16152    },
16153)
16154
16155config_setting(
16156    name = "watchos_x86_64",
16157    values = {
16158        "apple_platform_type": "watchos",
16159        "cpu": "watchos_x86_64",
16160    },
16161)
16162
16163config_setting(
16164    name = "tvos_arm64",
16165    values = {
16166        "apple_platform_type": "tvos",
16167        "cpu": "tvos_arm64",
16168    },
16169)
16170
16171config_setting(
16172    name = "tvos_x86_64",
16173    values = {
16174        "apple_platform_type": "tvos",
16175        "cpu": "tvos_x86_64",
16176    },
16177)
16178
16179######################## Composite build configurations #######################
16180
16181selects.config_setting_group(
16182    name = "aarch32",
16183    match_any = [
16184        ":android_armv7",
16185        ":linux_arm",
16186        ":linux_armeabi",
16187        ":linux_armhf",
16188        ":linux_armv7a",
16189    ],
16190)
16191
16192selects.config_setting_group(
16193    name = "aarch64",
16194    match_any = [
16195        ":android_arm64",
16196        ":ios_arm64",
16197        ":ios_arm64e",
16198        ":ios_sim_arm64",
16199        ":linux_arm64",
16200        ":macos_arm64",
16201        ":tvos_arm64",
16202        ":watchos_arm64_32",
16203    ],
16204)
16205
16206selects.config_setting_group(
16207    name = "x86",
16208    match_any = [
16209        ":android_x86",
16210        ":android_x86_64",
16211        ":ios_x86_64",
16212        ":linux_k8",
16213        ":macos_x86_64",
16214        ":tvos_x86_64",
16215        ":watchos_x86_64",
16216        ":windows_x86_64",
16217        ":windows_x86_64_clang",
16218        ":windows_x86_64_mingw",
16219        ":windows_x86_64_msys",
16220    ],
16221)
16222
16223selects.config_setting_group(
16224    name = "riscv",
16225    match_any = [":linux_riscv64"],
16226)
16227
16228selects.config_setting_group(
16229    name = "arm_fp16_enabled_by_default",
16230    match_any = [
16231        ":aarch64",
16232    ],
16233)
16234
16235alias(
16236    name = "arm_fp16_enabled",
16237    actual = select({
16238        ":xnn_enable_arm_fp16_explicit_true": ":xnn_enable_arm_fp16_explicit_true",
16239        ":xnn_enable_arm_fp16_explicit_false": ":xnn_enable_arm_fp16_explicit_true",
16240        "//conditions:default": ":arm_fp16_enabled_by_default",
16241    }),
16242)
16243
16244selects.config_setting_group(
16245    name = "arm_bf16_enabled_by_default",
16246    match_any = [
16247        ":aarch64",
16248    ],
16249)
16250
16251alias(
16252    name = "arm_bf16_enabled",
16253    actual = select({
16254        ":xnn_enable_arm_bf16_explicit_true": ":xnn_enable_arm_bf16_explicit_true",
16255        ":xnn_enable_arm_bf16_explicit_false": ":xnn_enable_arm_bf16_explicit_true",
16256        "//conditions:default": ":arm_bf16_enabled_by_default",
16257    }),
16258)
16259
16260selects.config_setting_group(
16261    name = "arm_dotprod_enabled_by_default",
16262    match_any = [
16263        ":aarch32",
16264        ":aarch64",
16265    ],
16266)
16267
16268alias(
16269    name = "arm_dotprod_enabled",
16270    actual = select({
16271        ":xnn_enable_arm_dotprod_explicit_true": ":xnn_enable_arm_dotprod_explicit_true",
16272        ":xnn_enable_arm_dotprod_explicit_false": ":xnn_enable_arm_dotprod_explicit_true",
16273        "//conditions:default": ":arm_dotprod_enabled_by_default",
16274    }),
16275)
16276
16277bzl_library(
16278    name = "build_defs_bzl",
16279    srcs = ["build_defs.bzl"],
16280    parse_tests = False,
16281    visibility = ["//visibility:private"],
16282    deps = [
16283        "//devtools/build_cleaner/skylark:build_defs_lib",
16284    ],
16285)
16286