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