1#!/bin/sh 2# Copyright 2019 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 ################################### 8### Generic C micro-kernels 9tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=ADD -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vadd-scalar-x1.c 10tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=ADD -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vadd-scalar-x2.c 11tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=ADD -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vadd-scalar-x4.c 12tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=DIV -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vdiv-scalar-x1.c 13tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=DIV -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vdiv-scalar-x2.c 14tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=DIV -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vdiv-scalar-x4.c 15tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MAX -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vmax-scalar-x1.c 16tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MAX -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vmax-scalar-x2.c 17tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MAX -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vmax-scalar-x4.c 18tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MIN -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vmin-scalar-x1.c 19tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MIN -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vmin-scalar-x2.c 20tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MIN -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vmin-scalar-x4.c 21tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MUL -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vmul-scalar-x1.c 22tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MUL -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vmul-scalar-x2.c 23tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MUL -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vmul-scalar-x4.c 24tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=SUB -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vsub-scalar-x1.c 25tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=SUB -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vsub-scalar-x2.c 26tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=SUB -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vsub-scalar-x4.c 27 28tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=ADD -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vaddc-scalar-x1.c 29tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=ADD -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vaddc-scalar-x2.c 30tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=ADD -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vaddc-scalar-x4.c 31tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=DIV -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vdivc-scalar-x1.c 32tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=DIV -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vdivc-scalar-x2.c 33tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=DIV -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vdivc-scalar-x4.c 34tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=RDIV -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vrdivc-scalar-x1.c 35tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=RDIV -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vrdivc-scalar-x2.c 36tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=RDIV -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vrdivc-scalar-x4.c 37tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MAX -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vmaxc-scalar-x1.c 38tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MAX -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vmaxc-scalar-x2.c 39tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MAX -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vmaxc-scalar-x4.c 40tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MIN -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vminc-scalar-x1.c 41tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MIN -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vminc-scalar-x2.c 42tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MIN -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vminc-scalar-x4.c 43tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MUL -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vmulc-scalar-x1.c 44tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MUL -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vmulc-scalar-x2.c 45tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MUL -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vmulc-scalar-x4.c 46tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=SUB -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vsubc-scalar-x1.c 47tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=SUB -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vsubc-scalar-x2.c 48tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=SUB -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vsubc-scalar-x4.c 49tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=RSUB -D BATCH_TILE=1 -D WASM=0 -o src/f32-vbinary/gen/vrsubc-scalar-x1.c 50tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=RSUB -D BATCH_TILE=2 -D WASM=0 -o src/f32-vbinary/gen/vrsubc-scalar-x2.c 51tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=RSUB -D BATCH_TILE=4 -D WASM=0 -o src/f32-vbinary/gen/vrsubc-scalar-x4.c 52 53### WAsm-specific micro-kernels 54tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=ADD -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vadd-wasm-x1.c 55tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=ADD -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vadd-wasm-x2.c 56tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=ADD -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vadd-wasm-x4.c 57tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=DIV -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vdiv-wasm-x1.c 58tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=DIV -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vdiv-wasm-x2.c 59tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=DIV -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vdiv-wasm-x4.c 60tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MAX -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vmax-wasm-x1.c 61tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MAX -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vmax-wasm-x2.c 62tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MAX -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vmax-wasm-x4.c 63tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MIN -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vmin-wasm-x1.c 64tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MIN -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vmin-wasm-x2.c 65tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MIN -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vmin-wasm-x4.c 66tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MUL -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vmul-wasm-x1.c 67tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MUL -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vmul-wasm-x2.c 68tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=MUL -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vmul-wasm-x4.c 69tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=SUB -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vsub-wasm-x1.c 70tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=SUB -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vsub-wasm-x2.c 71tools/xngen src/f32-vbinary/vop-scalar.c.in -D OP=SUB -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vsub-wasm-x4.c 72 73tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=ADD -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vaddc-wasm-x1.c 74tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=ADD -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vaddc-wasm-x2.c 75tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=ADD -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vaddc-wasm-x4.c 76tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=DIV -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vdivc-wasm-x1.c 77tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=DIV -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vdivc-wasm-x2.c 78tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=DIV -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vdivc-wasm-x4.c 79tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=RDIV -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vrdivc-wasm-x1.c 80tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=RDIV -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vrdivc-wasm-x2.c 81tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=RDIV -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vrdivc-wasm-x4.c 82tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MAX -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vmaxc-wasm-x1.c 83tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MAX -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vmaxc-wasm-x2.c 84tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MAX -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vmaxc-wasm-x4.c 85tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MIN -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vminc-wasm-x1.c 86tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MIN -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vminc-wasm-x2.c 87tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MIN -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vminc-wasm-x4.c 88tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MUL -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vmulc-wasm-x1.c 89tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MUL -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vmulc-wasm-x2.c 90tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=MUL -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vmulc-wasm-x4.c 91tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=SUB -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vsubc-wasm-x1.c 92tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=SUB -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vsubc-wasm-x2.c 93tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=SUB -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vsubc-wasm-x4.c 94tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=RSUB -D BATCH_TILE=1 -D WASM=1 -o src/f32-vbinary/gen/vrsubc-wasm-x1.c 95tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=RSUB -D BATCH_TILE=2 -D WASM=1 -o src/f32-vbinary/gen/vrsubc-wasm-x2.c 96tools/xngen src/f32-vbinary/vopc-scalar.c.in -D OP=RSUB -D BATCH_TILE=4 -D WASM=1 -o src/f32-vbinary/gen/vrsubc-wasm-x4.c 97 98################################### ARM NEON ################################## 99tools/xngen src/f32-vbinary/vop-neon.c.in -D OP=ADD -D BATCH_TILE=4 -o src/f32-vbinary/gen/vadd-neon-x4.c 100tools/xngen src/f32-vbinary/vop-neon.c.in -D OP=ADD -D BATCH_TILE=8 -o src/f32-vbinary/gen/vadd-neon-x8.c 101tools/xngen src/f32-vbinary/vop-neon.c.in -D OP=DIV -D BATCH_TILE=4 -o src/f32-vbinary/gen/vdiv-neon-x4.c 102tools/xngen src/f32-vbinary/vop-neon.c.in -D OP=DIV -D BATCH_TILE=8 -o src/f32-vbinary/gen/vdiv-neon-x8.c 103tools/xngen src/f32-vbinary/vop-neon.c.in -D OP=MAX -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmax-neon-x4.c 104tools/xngen src/f32-vbinary/vop-neon.c.in -D OP=MAX -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmax-neon-x8.c 105tools/xngen src/f32-vbinary/vop-neon.c.in -D OP=MIN -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmin-neon-x4.c 106tools/xngen src/f32-vbinary/vop-neon.c.in -D OP=MIN -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmin-neon-x8.c 107tools/xngen src/f32-vbinary/vop-neon.c.in -D OP=MUL -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmul-neon-x4.c 108tools/xngen src/f32-vbinary/vop-neon.c.in -D OP=MUL -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmul-neon-x8.c 109tools/xngen src/f32-vbinary/vop-neon.c.in -D OP=SUB -D BATCH_TILE=4 -o src/f32-vbinary/gen/vsub-neon-x4.c 110tools/xngen src/f32-vbinary/vop-neon.c.in -D OP=SUB -D BATCH_TILE=8 -o src/f32-vbinary/gen/vsub-neon-x8.c 111 112tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=ADD -D BATCH_TILE=4 -o src/f32-vbinary/gen/vaddc-neon-x4.c 113tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=ADD -D BATCH_TILE=8 -o src/f32-vbinary/gen/vaddc-neon-x8.c 114tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=DIV -D BATCH_TILE=4 -o src/f32-vbinary/gen/vdivc-neon-x4.c 115tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=DIV -D BATCH_TILE=8 -o src/f32-vbinary/gen/vdivc-neon-x8.c 116tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=RDIV -D BATCH_TILE=4 -o src/f32-vbinary/gen/vrdivc-neon-x4.c 117tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=RDIV -D BATCH_TILE=8 -o src/f32-vbinary/gen/vrdivc-neon-x8.c 118tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=MAX -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmaxc-neon-x4.c 119tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=MAX -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmaxc-neon-x8.c 120tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=MIN -D BATCH_TILE=4 -o src/f32-vbinary/gen/vminc-neon-x4.c 121tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=MIN -D BATCH_TILE=8 -o src/f32-vbinary/gen/vminc-neon-x8.c 122tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=MUL -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmulc-neon-x4.c 123tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=MUL -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmulc-neon-x8.c 124tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=SUB -D BATCH_TILE=4 -o src/f32-vbinary/gen/vsubc-neon-x4.c 125tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=SUB -D BATCH_TILE=8 -o src/f32-vbinary/gen/vsubc-neon-x8.c 126tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=RSUB -D BATCH_TILE=4 -o src/f32-vbinary/gen/vrsubc-neon-x4.c 127tools/xngen src/f32-vbinary/vopc-neon.c.in -D OP=RSUB -D BATCH_TILE=8 -o src/f32-vbinary/gen/vrsubc-neon-x8.c 128 129#################################### PSIMD #################################### 130tools/xngen src/f32-vbinary/vop-psimd.c.in -D OP=ADD -D BATCH_TILE=4 -o src/f32-vbinary/gen/vadd-psimd-x4.c 131tools/xngen src/f32-vbinary/vop-psimd.c.in -D OP=ADD -D BATCH_TILE=8 -o src/f32-vbinary/gen/vadd-psimd-x8.c 132tools/xngen src/f32-vbinary/vop-psimd.c.in -D OP=DIV -D BATCH_TILE=4 -o src/f32-vbinary/gen/vdiv-psimd-x4.c 133tools/xngen src/f32-vbinary/vop-psimd.c.in -D OP=DIV -D BATCH_TILE=8 -o src/f32-vbinary/gen/vdiv-psimd-x8.c 134tools/xngen src/f32-vbinary/vop-psimd.c.in -D OP=MAX -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmax-psimd-x4.c 135tools/xngen src/f32-vbinary/vop-psimd.c.in -D OP=MAX -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmax-psimd-x8.c 136tools/xngen src/f32-vbinary/vop-psimd.c.in -D OP=MIN -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmin-psimd-x4.c 137tools/xngen src/f32-vbinary/vop-psimd.c.in -D OP=MIN -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmin-psimd-x8.c 138tools/xngen src/f32-vbinary/vop-psimd.c.in -D OP=MUL -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmul-psimd-x4.c 139tools/xngen src/f32-vbinary/vop-psimd.c.in -D OP=MUL -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmul-psimd-x8.c 140tools/xngen src/f32-vbinary/vop-psimd.c.in -D OP=SUB -D BATCH_TILE=4 -o src/f32-vbinary/gen/vsub-psimd-x4.c 141tools/xngen src/f32-vbinary/vop-psimd.c.in -D OP=SUB -D BATCH_TILE=8 -o src/f32-vbinary/gen/vsub-psimd-x8.c 142 143tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=ADD -D BATCH_TILE=4 -o src/f32-vbinary/gen/vaddc-psimd-x4.c 144tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=ADD -D BATCH_TILE=8 -o src/f32-vbinary/gen/vaddc-psimd-x8.c 145tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=DIV -D BATCH_TILE=4 -o src/f32-vbinary/gen/vdivc-psimd-x4.c 146tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=DIV -D BATCH_TILE=8 -o src/f32-vbinary/gen/vdivc-psimd-x8.c 147tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=RDIV -D BATCH_TILE=4 -o src/f32-vbinary/gen/vrdivc-psimd-x4.c 148tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=RDIV -D BATCH_TILE=8 -o src/f32-vbinary/gen/vrdivc-psimd-x8.c 149tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=MAX -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmaxc-psimd-x4.c 150tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=MAX -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmaxc-psimd-x8.c 151tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=MIN -D BATCH_TILE=4 -o src/f32-vbinary/gen/vminc-psimd-x4.c 152tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=MIN -D BATCH_TILE=8 -o src/f32-vbinary/gen/vminc-psimd-x8.c 153tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=MUL -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmulc-psimd-x4.c 154tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=MUL -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmulc-psimd-x8.c 155tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=SUB -D BATCH_TILE=4 -o src/f32-vbinary/gen/vsubc-psimd-x4.c 156tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=SUB -D BATCH_TILE=8 -o src/f32-vbinary/gen/vsubc-psimd-x8.c 157tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=RSUB -D BATCH_TILE=4 -o src/f32-vbinary/gen/vrsubc-psimd-x4.c 158tools/xngen src/f32-vbinary/vopc-psimd.c.in -D OP=RSUB -D BATCH_TILE=8 -o src/f32-vbinary/gen/vrsubc-psimd-x8.c 159 160################################# x86 128-bit ################################# 161tools/xngen src/f32-vbinary/vop-sse.c.in -D OP=ADD -D BATCH_TILE=4 -o src/f32-vbinary/gen/vadd-sse-x4.c 162tools/xngen src/f32-vbinary/vop-sse.c.in -D OP=ADD -D BATCH_TILE=8 -o src/f32-vbinary/gen/vadd-sse-x8.c 163tools/xngen src/f32-vbinary/vop-sse.c.in -D OP=DIV -D BATCH_TILE=4 -o src/f32-vbinary/gen/vdiv-sse-x4.c 164tools/xngen src/f32-vbinary/vop-sse.c.in -D OP=DIV -D BATCH_TILE=8 -o src/f32-vbinary/gen/vdiv-sse-x8.c 165tools/xngen src/f32-vbinary/vop-sse.c.in -D OP=MAX -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmax-sse-x4.c 166tools/xngen src/f32-vbinary/vop-sse.c.in -D OP=MAX -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmax-sse-x8.c 167tools/xngen src/f32-vbinary/vop-sse.c.in -D OP=MIN -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmin-sse-x4.c 168tools/xngen src/f32-vbinary/vop-sse.c.in -D OP=MIN -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmin-sse-x8.c 169tools/xngen src/f32-vbinary/vop-sse.c.in -D OP=MUL -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmul-sse-x4.c 170tools/xngen src/f32-vbinary/vop-sse.c.in -D OP=MUL -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmul-sse-x8.c 171tools/xngen src/f32-vbinary/vop-sse.c.in -D OP=SUB -D BATCH_TILE=4 -o src/f32-vbinary/gen/vsub-sse-x4.c 172tools/xngen src/f32-vbinary/vop-sse.c.in -D OP=SUB -D BATCH_TILE=8 -o src/f32-vbinary/gen/vsub-sse-x8.c 173 174tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=ADD -D BATCH_TILE=4 -o src/f32-vbinary/gen/vaddc-sse-x4.c 175tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=ADD -D BATCH_TILE=8 -o src/f32-vbinary/gen/vaddc-sse-x8.c 176tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=DIV -D BATCH_TILE=4 -o src/f32-vbinary/gen/vdivc-sse-x4.c 177tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=DIV -D BATCH_TILE=8 -o src/f32-vbinary/gen/vdivc-sse-x8.c 178tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=RDIV -D BATCH_TILE=4 -o src/f32-vbinary/gen/vrdivc-sse-x4.c 179tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=RDIV -D BATCH_TILE=8 -o src/f32-vbinary/gen/vrdivc-sse-x8.c 180tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=MAX -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmaxc-sse-x4.c 181tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=MAX -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmaxc-sse-x8.c 182tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=MIN -D BATCH_TILE=4 -o src/f32-vbinary/gen/vminc-sse-x4.c 183tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=MIN -D BATCH_TILE=8 -o src/f32-vbinary/gen/vminc-sse-x8.c 184tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=MUL -D BATCH_TILE=4 -o src/f32-vbinary/gen/vmulc-sse-x4.c 185tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=MUL -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmulc-sse-x8.c 186tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=SUB -D BATCH_TILE=4 -o src/f32-vbinary/gen/vsubc-sse-x4.c 187tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=SUB -D BATCH_TILE=8 -o src/f32-vbinary/gen/vsubc-sse-x8.c 188tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=RSUB -D BATCH_TILE=4 -o src/f32-vbinary/gen/vrsubc-sse-x4.c 189tools/xngen src/f32-vbinary/vopc-sse.c.in -D OP=RSUB -D BATCH_TILE=8 -o src/f32-vbinary/gen/vrsubc-sse-x8.c 190 191################################# x86 256-bit ################################# 192tools/xngen src/f32-vbinary/vop-avx.c.in -D OP=ADD -D BATCH_TILE=8 -o src/f32-vbinary/gen/vadd-avx-x8.c 193tools/xngen src/f32-vbinary/vop-avx.c.in -D OP=ADD -D BATCH_TILE=16 -o src/f32-vbinary/gen/vadd-avx-x16.c 194tools/xngen src/f32-vbinary/vop-avx.c.in -D OP=DIV -D BATCH_TILE=8 -o src/f32-vbinary/gen/vdiv-avx-x8.c 195tools/xngen src/f32-vbinary/vop-avx.c.in -D OP=DIV -D BATCH_TILE=16 -o src/f32-vbinary/gen/vdiv-avx-x16.c 196tools/xngen src/f32-vbinary/vop-avx.c.in -D OP=MAX -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmax-avx-x8.c 197tools/xngen src/f32-vbinary/vop-avx.c.in -D OP=MAX -D BATCH_TILE=16 -o src/f32-vbinary/gen/vmax-avx-x16.c 198tools/xngen src/f32-vbinary/vop-avx.c.in -D OP=MIN -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmin-avx-x8.c 199tools/xngen src/f32-vbinary/vop-avx.c.in -D OP=MIN -D BATCH_TILE=16 -o src/f32-vbinary/gen/vmin-avx-x16.c 200tools/xngen src/f32-vbinary/vop-avx.c.in -D OP=MUL -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmul-avx-x8.c 201tools/xngen src/f32-vbinary/vop-avx.c.in -D OP=MUL -D BATCH_TILE=16 -o src/f32-vbinary/gen/vmul-avx-x16.c 202tools/xngen src/f32-vbinary/vop-avx.c.in -D OP=SUB -D BATCH_TILE=8 -o src/f32-vbinary/gen/vsub-avx-x8.c 203tools/xngen src/f32-vbinary/vop-avx.c.in -D OP=SUB -D BATCH_TILE=16 -o src/f32-vbinary/gen/vsub-avx-x16.c 204 205tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=ADD -D BATCH_TILE=8 -o src/f32-vbinary/gen/vaddc-avx-x8.c 206tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=ADD -D BATCH_TILE=16 -o src/f32-vbinary/gen/vaddc-avx-x16.c 207tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=DIV -D BATCH_TILE=8 -o src/f32-vbinary/gen/vdivc-avx-x8.c 208tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=DIV -D BATCH_TILE=16 -o src/f32-vbinary/gen/vdivc-avx-x16.c 209tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=RDIV -D BATCH_TILE=8 -o src/f32-vbinary/gen/vrdivc-avx-x8.c 210tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=RDIV -D BATCH_TILE=16 -o src/f32-vbinary/gen/vrdivc-avx-x16.c 211tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=MAX -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmaxc-avx-x8.c 212tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=MAX -D BATCH_TILE=16 -o src/f32-vbinary/gen/vmaxc-avx-x16.c 213tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=MIN -D BATCH_TILE=8 -o src/f32-vbinary/gen/vminc-avx-x8.c 214tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=MIN -D BATCH_TILE=16 -o src/f32-vbinary/gen/vminc-avx-x16.c 215tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=MUL -D BATCH_TILE=8 -o src/f32-vbinary/gen/vmulc-avx-x8.c 216tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=MUL -D BATCH_TILE=16 -o src/f32-vbinary/gen/vmulc-avx-x16.c 217tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=SUB -D BATCH_TILE=8 -o src/f32-vbinary/gen/vsubc-avx-x8.c 218tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=SUB -D BATCH_TILE=16 -o src/f32-vbinary/gen/vsubc-avx-x16.c 219tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=RSUB -D BATCH_TILE=8 -o src/f32-vbinary/gen/vrsubc-avx-x8.c 220tools/xngen src/f32-vbinary/vopc-avx.c.in -D OP=RSUB -D BATCH_TILE=16 -o src/f32-vbinary/gen/vrsubc-avx-x16.c 221 222################################# x86 512-bit ################################# 223tools/xngen src/f32-vbinary/vop-avx512f.c.in -D OP=ADD -D BATCH_TILE=16 -o src/f32-vbinary/gen/vadd-avx512f-x16.c 224tools/xngen src/f32-vbinary/vop-avx512f.c.in -D OP=ADD -D BATCH_TILE=32 -o src/f32-vbinary/gen/vadd-avx512f-x32.c 225tools/xngen src/f32-vbinary/vop-avx512f.c.in -D OP=DIV -D BATCH_TILE=16 -o src/f32-vbinary/gen/vdiv-avx512f-x16.c 226tools/xngen src/f32-vbinary/vop-avx512f.c.in -D OP=DIV -D BATCH_TILE=32 -o src/f32-vbinary/gen/vdiv-avx512f-x32.c 227tools/xngen src/f32-vbinary/vop-avx512f.c.in -D OP=MAX -D BATCH_TILE=16 -o src/f32-vbinary/gen/vmax-avx512f-x16.c 228tools/xngen src/f32-vbinary/vop-avx512f.c.in -D OP=MAX -D BATCH_TILE=32 -o src/f32-vbinary/gen/vmax-avx512f-x32.c 229tools/xngen src/f32-vbinary/vop-avx512f.c.in -D OP=MIN -D BATCH_TILE=16 -o src/f32-vbinary/gen/vmin-avx512f-x16.c 230tools/xngen src/f32-vbinary/vop-avx512f.c.in -D OP=MIN -D BATCH_TILE=32 -o src/f32-vbinary/gen/vmin-avx512f-x32.c 231tools/xngen src/f32-vbinary/vop-avx512f.c.in -D OP=MUL -D BATCH_TILE=16 -o src/f32-vbinary/gen/vmul-avx512f-x16.c 232tools/xngen src/f32-vbinary/vop-avx512f.c.in -D OP=MUL -D BATCH_TILE=32 -o src/f32-vbinary/gen/vmul-avx512f-x32.c 233tools/xngen src/f32-vbinary/vop-avx512f.c.in -D OP=SUB -D BATCH_TILE=16 -o src/f32-vbinary/gen/vsub-avx512f-x16.c 234tools/xngen src/f32-vbinary/vop-avx512f.c.in -D OP=SUB -D BATCH_TILE=32 -o src/f32-vbinary/gen/vsub-avx512f-x32.c 235 236tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=ADD -D BATCH_TILE=16 -o src/f32-vbinary/gen/vaddc-avx512f-x16.c 237tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=ADD -D BATCH_TILE=32 -o src/f32-vbinary/gen/vaddc-avx512f-x32.c 238tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=DIV -D BATCH_TILE=16 -o src/f32-vbinary/gen/vdivc-avx512f-x16.c 239tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=DIV -D BATCH_TILE=32 -o src/f32-vbinary/gen/vdivc-avx512f-x32.c 240tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=RDIV -D BATCH_TILE=16 -o src/f32-vbinary/gen/vrdivc-avx512f-x16.c 241tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=RDIV -D BATCH_TILE=32 -o src/f32-vbinary/gen/vrdivc-avx512f-x32.c 242tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=MAX -D BATCH_TILE=16 -o src/f32-vbinary/gen/vmaxc-avx512f-x16.c 243tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=MAX -D BATCH_TILE=32 -o src/f32-vbinary/gen/vmaxc-avx512f-x32.c 244tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=MIN -D BATCH_TILE=16 -o src/f32-vbinary/gen/vminc-avx512f-x16.c 245tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=MIN -D BATCH_TILE=32 -o src/f32-vbinary/gen/vminc-avx512f-x32.c 246tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=MUL -D BATCH_TILE=16 -o src/f32-vbinary/gen/vmulc-avx512f-x16.c 247tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=MUL -D BATCH_TILE=32 -o src/f32-vbinary/gen/vmulc-avx512f-x32.c 248tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=SUB -D BATCH_TILE=16 -o src/f32-vbinary/gen/vsubc-avx512f-x16.c 249tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=SUB -D BATCH_TILE=32 -o src/f32-vbinary/gen/vsubc-avx512f-x32.c 250tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=RSUB -D BATCH_TILE=16 -o src/f32-vbinary/gen/vrsubc-avx512f-x16.c 251tools/xngen src/f32-vbinary/vopc-avx512f.c.in -D OP=RSUB -D BATCH_TILE=32 -o src/f32-vbinary/gen/vrsubc-avx512f-x32.c 252 253################################## Unit tests ################################# 254tools/generate-vbinary-test.py --spec test/f32-vadd.yaml --output test/f32-vadd.cc 255tools/generate-vbinary-test.py --spec test/f32-vdiv.yaml --output test/f32-vdiv.cc 256tools/generate-vbinary-test.py --spec test/f32-vmax.yaml --output test/f32-vmax.cc 257tools/generate-vbinary-test.py --spec test/f32-vmin.yaml --output test/f32-vmin.cc 258tools/generate-vbinary-test.py --spec test/f32-vmul.yaml --output test/f32-vmul.cc 259tools/generate-vbinary-test.py --spec test/f32-vsub.yaml --output test/f32-vsub.cc 260tools/generate-vbinary-test.py --spec test/f32-vaddc.yaml --output test/f32-vaddc.cc 261tools/generate-vbinary-test.py --spec test/f32-vdivc.yaml --output test/f32-vdivc.cc 262tools/generate-vbinary-test.py --spec test/f32-vrdivc.yaml --output test/f32-vrdivc.cc 263tools/generate-vbinary-test.py --spec test/f32-vmaxc.yaml --output test/f32-vmaxc.cc 264tools/generate-vbinary-test.py --spec test/f32-vminc.yaml --output test/f32-vminc.cc 265tools/generate-vbinary-test.py --spec test/f32-vmulc.yaml --output test/f32-vmulc.cc 266tools/generate-vbinary-test.py --spec test/f32-vsubc.yaml --output test/f32-vsubc.cc 267tools/generate-vbinary-test.py --spec test/f32-vrsubc.yaml --output test/f32-vrsubc.cc 268