xref: /aosp_15_r20/external/XNNPACK/scripts/generate-qs8-vmul.sh (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1#!/bin/sh
2# Copyright 2021 Google LLC
3#
4# This source code is licensed under the BSD-style license found in the
5# LICENSE file in the root directory of this source tree.
6
7################################### Scalar ###################################
8tools/xngen src/qs8-vmul/scalar.c.in -D BATCH_TILE=1 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-scalar-x1.c &
9tools/xngen src/qs8-vmul/scalar.c.in -D BATCH_TILE=2 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-scalar-x2.c &
10tools/xngen src/qs8-vmul/scalar.c.in -D BATCH_TILE=4 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-scalar-x4.c &
11
12tools/xngen src/qs8-vmul/scalar.c.in -D BATCH_TILE=1 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-scalar-x1.c &
13tools/xngen src/qs8-vmul/scalar.c.in -D BATCH_TILE=2 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-scalar-x2.c &
14tools/xngen src/qs8-vmul/scalar.c.in -D BATCH_TILE=4 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-scalar-x4.c &
15
16tools/xngen src/qs8-vmulc/scalar.c.in -D BATCH_TILE=1 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-scalar-x1.c &
17tools/xngen src/qs8-vmulc/scalar.c.in -D BATCH_TILE=2 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-scalar-x2.c &
18tools/xngen src/qs8-vmulc/scalar.c.in -D BATCH_TILE=4 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-scalar-x4.c &
19
20tools/xngen src/qs8-vmulc/scalar.c.in -D BATCH_TILE=1 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-scalar-x1.c &
21tools/xngen src/qs8-vmulc/scalar.c.in -D BATCH_TILE=2 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-scalar-x2.c &
22tools/xngen src/qs8-vmulc/scalar.c.in -D BATCH_TILE=4 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-scalar-x4.c &
23
24################################## WAsm SIMD ##################################
25tools/xngen src/qs8-vmul/wasmsimd-mul32-ld64.c.in -D BATCH_TILE=8  -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-wasmsimd-mul32-ld64-x8.c &
26tools/xngen src/qs8-vmul/wasmsimd-mul32-ld64.c.in -D BATCH_TILE=16 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-wasmsimd-mul32-ld64-x16.c &
27
28tools/xngen src/qs8-vmul/wasmsimd-mul32-ld64.c.in -D BATCH_TILE=8  -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-wasmsimd-mul32-ld64-x8.c &
29tools/xngen src/qs8-vmul/wasmsimd-mul32-ld64.c.in -D BATCH_TILE=16 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-wasmsimd-mul32-ld64-x16.c &
30
31tools/xngen src/qs8-vmulc/wasmsimd-mul32-ld64.c.in -D BATCH_TILE=8  -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-wasmsimd-mul32-ld64-x8.c &
32tools/xngen src/qs8-vmulc/wasmsimd-mul32-ld64.c.in -D BATCH_TILE=16 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-wasmsimd-mul32-ld64-x16.c &
33
34tools/xngen src/qs8-vmulc/wasmsimd-mul32-ld64.c.in -D BATCH_TILE=8  -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-wasmsimd-mul32-ld64-x8.c &
35tools/xngen src/qs8-vmulc/wasmsimd-mul32-ld64.c.in -D BATCH_TILE=16 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-wasmsimd-mul32-ld64-x16.c &
36
37################################### ARM NEON ##################################
38tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=8  -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=0 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-neon-ld64-x8.c &
39tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=16 -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=0 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-neon-ld64-x16.c &
40tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=16 -D LD128=1 -D REQUANTIZATION=FP32 -D ARMV8=0 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-neon-ld128-x16.c &
41
42tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=8  -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=0 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-neon-ld64-x8.c &
43tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=16 -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=0 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-neon-ld64-x16.c &
44tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=16 -D LD128=1 -D REQUANTIZATION=FP32 -D ARMV8=0 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-neon-ld128-x16.c &
45
46tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=8  -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=1 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-neonv8-ld64-x8.c &
47tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=16 -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=1 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-neonv8-ld64-x16.c &
48tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=16 -D LD128=1 -D REQUANTIZATION=FP32 -D ARMV8=1 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-neonv8-ld128-x16.c &
49
50tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=8  -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=1 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-neonv8-ld64-x8.c &
51tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=16 -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=1 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-neonv8-ld64-x16.c &
52tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=16 -D LD128=1 -D REQUANTIZATION=FP32 -D ARMV8=1 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-neonv8-ld128-x16.c &
53
54tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=8  -D LD128=0 -D REQUANTIZATION=RNDNU -D ARMV8=0 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-rndnu-neon-ld64-x8.c &
55tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=16 -D LD128=0 -D REQUANTIZATION=RNDNU -D ARMV8=0 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-rndnu-neon-ld64-x16.c &
56tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=16 -D LD128=1 -D REQUANTIZATION=RNDNU -D ARMV8=0 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-rndnu-neon-ld128-x16.c &
57
58tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=8  -D LD128=0 -D REQUANTIZATION=RNDNU -D ARMV8=0 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-rndnu-neon-ld64-x8.c &
59tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=16 -D LD128=0 -D REQUANTIZATION=RNDNU -D ARMV8=0 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-rndnu-neon-ld64-x16.c &
60tools/xngen src/qs8-vmul/neon.c.in -D BATCH_TILE=16 -D LD128=1 -D REQUANTIZATION=RNDNU -D ARMV8=0 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-rndnu-neon-ld128-x16.c &
61
62tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=8  -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=0 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-neon-ld64-x8.c &
63tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=16 -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=0 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-neon-ld64-x16.c &
64tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=16 -D LD128=1 -D REQUANTIZATION=FP32 -D ARMV8=0 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-neon-ld128-x16.c &
65
66tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=8  -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=0 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-neon-ld64-x8.c &
67tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=16 -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=0 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-neon-ld64-x16.c &
68tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=16 -D LD128=1 -D REQUANTIZATION=FP32 -D ARMV8=0 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-neon-ld128-x16.c &
69
70tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=8  -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=1 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-neonv8-ld64-x8.c &
71tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=16 -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=1 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-neonv8-ld64-x16.c &
72tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=16 -D LD128=1 -D REQUANTIZATION=FP32 -D ARMV8=1 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-neonv8-ld128-x16.c &
73
74tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=8  -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=1 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-neonv8-ld64-x8.c &
75tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=16 -D LD128=0 -D REQUANTIZATION=FP32 -D ARMV8=1 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-neonv8-ld64-x16.c &
76tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=16 -D LD128=1 -D REQUANTIZATION=FP32 -D ARMV8=1 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-neonv8-ld128-x16.c &
77
78tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=8  -D LD128=0 -D REQUANTIZATION=RNDNU -D ARMV8=0 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-rndnu-neon-ld64-x8.c &
79tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=16 -D LD128=0 -D REQUANTIZATION=RNDNU -D ARMV8=0 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-rndnu-neon-ld64-x16.c &
80tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=16 -D LD128=1 -D REQUANTIZATION=RNDNU -D ARMV8=0 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-rndnu-neon-ld128-x16.c &
81
82tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=8  -D LD128=0 -D REQUANTIZATION=RNDNU -D ARMV8=0 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-rndnu-neon-ld64-x8.c &
83tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=16 -D LD128=0 -D REQUANTIZATION=RNDNU -D ARMV8=0 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-rndnu-neon-ld64-x16.c &
84tools/xngen src/qs8-vmulc/neon.c.in -D BATCH_TILE=16 -D LD128=1 -D REQUANTIZATION=RNDNU -D ARMV8=0 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-rndnu-neon-ld128-x16.c &
85
86################################### x86 SSE ###################################
87tools/xngen src/qs8-vmul/sse-mul16-ld64.c.in -D BATCH_TILE=8  -D SSE=2 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x8.c &
88tools/xngen src/qs8-vmul/sse-mul16-ld64.c.in -D BATCH_TILE=16 -D SSE=2 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x16.c &
89
90tools/xngen src/qs8-vmul/sse-mul16-ld64.c.in -D BATCH_TILE=8  -D SSE=2 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x8.c &
91tools/xngen src/qs8-vmul/sse-mul16-ld64.c.in -D BATCH_TILE=16 -D SSE=2 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-sse2-mul16-ld64-x16.c &
92
93tools/xngen src/qs8-vmul/sse-mul16-ld64.c.in -D BATCH_TILE=8  -D SSE=4 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x8.c &
94tools/xngen src/qs8-vmul/sse-mul16-ld64.c.in -D BATCH_TILE=16 -D SSE=4 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x16.c &
95
96tools/xngen src/qs8-vmul/sse-mul16-ld64.c.in -D BATCH_TILE=8  -D SSE=4 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x8.c &
97tools/xngen src/qs8-vmul/sse-mul16-ld64.c.in -D BATCH_TILE=16 -D SSE=4 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-sse41-mul16-ld64-x16.c &
98
99tools/xngen src/qs8-vmul/sse-mul16-ld64.c.in -D BATCH_TILE=8  -D SSE=4 -D AVX=1 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-avx-mul16-ld64-x8.c &
100tools/xngen src/qs8-vmul/sse-mul16-ld64.c.in -D BATCH_TILE=16 -D SSE=4 -D AVX=1 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmul/gen/minmax-fp32-avx-mul16-ld64-x16.c &
101
102tools/xngen src/qs8-vmul/sse-mul16-ld64.c.in -D BATCH_TILE=8  -D SSE=4 -D AVX=1 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-avx-mul16-ld64-x8.c &
103tools/xngen src/qs8-vmul/sse-mul16-ld64.c.in -D BATCH_TILE=16 -D SSE=4 -D AVX=1 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmul/gen/minmax-fp32-avx-mul16-ld64-x16.c &
104
105tools/xngen src/qs8-vmulc/sse-mul16-ld64.c.in -D BATCH_TILE=8  -D SSE=2 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x8.c &
106tools/xngen src/qs8-vmulc/sse-mul16-ld64.c.in -D BATCH_TILE=16 -D SSE=2 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x16.c &
107
108tools/xngen src/qs8-vmulc/sse-mul16-ld64.c.in -D BATCH_TILE=8  -D SSE=2 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x8.c &
109tools/xngen src/qs8-vmulc/sse-mul16-ld64.c.in -D BATCH_TILE=16 -D SSE=2 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-sse2-mul16-ld64-x16.c &
110
111tools/xngen src/qs8-vmulc/sse-mul16-ld64.c.in -D BATCH_TILE=8  -D SSE=4 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x8.c &
112tools/xngen src/qs8-vmulc/sse-mul16-ld64.c.in -D BATCH_TILE=16 -D SSE=4 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c &
113
114tools/xngen src/qs8-vmulc/sse-mul16-ld64.c.in -D BATCH_TILE=8  -D SSE=4 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x8.c &
115tools/xngen src/qs8-vmulc/sse-mul16-ld64.c.in -D BATCH_TILE=16 -D SSE=4 -D AVX=0 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-sse41-mul16-ld64-x16.c &
116
117tools/xngen src/qs8-vmulc/sse-mul16-ld64.c.in -D BATCH_TILE=8  -D SSE=4 -D AVX=1 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x8.c &
118tools/xngen src/qs8-vmulc/sse-mul16-ld64.c.in -D BATCH_TILE=16 -D SSE=4 -D AVX=1 -D REQUANTIZATION=FP32 -D DATATYPE=QS8 -o src/qs8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x16.c &
119
120tools/xngen src/qs8-vmulc/sse-mul16-ld64.c.in -D BATCH_TILE=8  -D SSE=4 -D AVX=1 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x8.c &
121tools/xngen src/qs8-vmulc/sse-mul16-ld64.c.in -D BATCH_TILE=16 -D SSE=4 -D AVX=1 -D REQUANTIZATION=FP32 -D DATATYPE=QU8 -o src/qu8-vmulc/gen/minmax-fp32-avx-mul16-ld64-x16.c &
122
123################################## Unit tests #################################
124tools/generate-vbinary-test.py --tester VMulMicrokernelTester  --spec test/qs8-vmul-minmax-fp32.yaml  --output test/qs8-vmul-minmax-fp32.cc &
125tools/generate-vbinary-test.py --tester VMulMicrokernelTester  --spec test/qs8-vmul-minmax-rndnu.yaml  --output test/qs8-vmul-minmax-rndnu.cc &
126tools/generate-vbinary-test.py --tester VMulMicrokernelTester  --spec test/qu8-vmul-minmax-fp32.yaml  --output test/qu8-vmul-minmax-fp32.cc &
127tools/generate-vbinary-test.py --tester VMulMicrokernelTester  --spec test/qu8-vmul-minmax-rndnu.yaml  --output test/qu8-vmul-minmax-rndnu.cc &
128
129tools/generate-vbinary-test.py --tester VMulCMicrokernelTester --spec test/qs8-vmulc-minmax-fp32.yaml --output test/qs8-vmulc-minmax-fp32.cc &
130tools/generate-vbinary-test.py --tester VMulCMicrokernelTester --spec test/qs8-vmulc-minmax-rndnu.yaml --output test/qs8-vmulc-minmax-rndnu.cc &
131tools/generate-vbinary-test.py --tester VMulCMicrokernelTester --spec test/qu8-vmulc-minmax-fp32.yaml --output test/qu8-vmulc-minmax-fp32.cc &
132tools/generate-vbinary-test.py --tester VMulCMicrokernelTester --spec test/qu8-vmulc-minmax-rndnu.yaml --output test/qu8-vmulc-minmax-rndnu.cc &
133
134wait
135