1#!/bin/sh 2# Copyright 2020 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################################### ARM NEON ################################## 8tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=ADD -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vadd-minmax-neonfp16arith-x8.c & 9tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=ADD -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vadd-minmax-neonfp16arith-x16.c & 10tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=DIV -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vdiv-minmax-neonfp16arith-x8.c & 11tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=DIV -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vdiv-minmax-neonfp16arith-x16.c & 12tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=MAX -D BATCH_TILE=8 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vmax-neonfp16arith-x8.c & 13tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=MAX -D BATCH_TILE=16 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vmax-neonfp16arith-x16.c & 14tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=MIN -D BATCH_TILE=8 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vmin-neonfp16arith-x8.c & 15tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=MIN -D BATCH_TILE=16 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vmin-neonfp16arith-x16.c & 16tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=MUL -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vmul-minmax-neonfp16arith-x8.c & 17tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=MUL -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vmul-minmax-neonfp16arith-x16.c & 18tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=SQRDIFF -D BATCH_TILE=8 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vsqrdiff-neonfp16arith-x8.c & 19tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=SQRDIFF -D BATCH_TILE=16 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vsqrdiff-neonfp16arith-x16.c & 20tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=SUB -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vsub-minmax-neonfp16arith-x8.c & 21tools/xngen src/f16-vbinary/vop-neonfp16arith.c.in -D OP=SUB -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vsub-minmax-neonfp16arith-x16.c & 22 23tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=ADD -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vaddc-minmax-neonfp16arith-x8.c & 24tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=ADD -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vaddc-minmax-neonfp16arith-x16.c & 25tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=DIV -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vdivc-minmax-neonfp16arith-x8.c & 26tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=DIV -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vdivc-minmax-neonfp16arith-x16.c & 27tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=RDIV -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vrdivc-minmax-neonfp16arith-x8.c & 28tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=RDIV -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vrdivc-minmax-neonfp16arith-x16.c & 29tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=MAX -D BATCH_TILE=8 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vmaxc-neonfp16arith-x8.c & 30tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=MAX -D BATCH_TILE=16 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vmaxc-neonfp16arith-x16.c & 31tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=MIN -D BATCH_TILE=8 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vminc-neonfp16arith-x8.c & 32tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=MIN -D BATCH_TILE=16 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vminc-neonfp16arith-x16.c & 33tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=MUL -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vmulc-minmax-neonfp16arith-x8.c & 34tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=MUL -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vmulc-minmax-neonfp16arith-x16.c & 35tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=SQRDIFF -D BATCH_TILE=8 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vsqrdiffc-neonfp16arith-x8.c & 36tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=SQRDIFF -D BATCH_TILE=16 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vsqrdiffc-neonfp16arith-x16.c & 37tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=SUB -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vsubc-minmax-neonfp16arith-x8.c & 38tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=SUB -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vsubc-minmax-neonfp16arith-x16.c & 39tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=RSUB -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vrsubc-minmax-neonfp16arith-x8.c & 40tools/xngen src/f16-vbinary/vopc-neonfp16arith.c.in -D OP=RSUB -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vrsubc-minmax-neonfp16arith-x16.c & 41 42################################### x86 F16C ################################## 43tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=ADD -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vadd-minmax-f16c-x8.c & 44tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=ADD -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vadd-minmax-f16c-x16.c & 45tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=DIV -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vdiv-minmax-f16c-x8.c & 46tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=DIV -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vdiv-minmax-f16c-x16.c & 47tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=MAX -D BATCH_TILE=8 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vmax-f16c-x8.c & 48tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=MAX -D BATCH_TILE=16 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vmax-f16c-x16.c & 49tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=MIN -D BATCH_TILE=8 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vmin-f16c-x8.c & 50tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=MIN -D BATCH_TILE=16 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vmin-f16c-x16.c & 51tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=MUL -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vmul-minmax-f16c-x8.c & 52tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=MUL -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vmul-minmax-f16c-x16.c & 53tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=SQRDIFF -D BATCH_TILE=8 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vsqrdiff-f16c-x8.c & 54tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=SQRDIFF -D BATCH_TILE=16 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vsqrdiff-f16c-x16.c & 55tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=SUB -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vsub-minmax-f16c-x8.c & 56tools/xngen src/f16-vbinary/vop-f16c.c.in -D OP=SUB -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vsub-minmax-f16c-x16.c & 57 58tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=ADD -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vaddc-minmax-f16c-x8.c & 59tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=ADD -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vaddc-minmax-f16c-x16.c & 60tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=DIV -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vdivc-minmax-f16c-x8.c & 61tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=DIV -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vdivc-minmax-f16c-x16.c & 62tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=RDIV -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vrdivc-minmax-f16c-x8.c & 63tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=RDIV -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vrdivc-minmax-f16c-x16.c & 64tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=MAX -D BATCH_TILE=8 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vmaxc-f16c-x8.c & 65tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=MAX -D BATCH_TILE=16 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vmaxc-f16c-x16.c & 66tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=MIN -D BATCH_TILE=8 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vminc-f16c-x8.c & 67tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=MIN -D BATCH_TILE=16 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vminc-f16c-x16.c & 68tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=MUL -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vmulc-minmax-f16c-x8.c & 69tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=MUL -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vmulc-minmax-f16c-x16.c & 70tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=SQRDIFF -D BATCH_TILE=8 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vsqrdiffc-f16c-x8.c & 71tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=SQRDIFF -D BATCH_TILE=16 -D ACTIVATION=LINEAR -o src/f16-vbinary/gen/vsqrdiffc-f16c-x16.c & 72tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=SUB -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vsubc-minmax-f16c-x8.c & 73tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=SUB -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vsubc-minmax-f16c-x16.c & 74tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=RSUB -D BATCH_TILE=8 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vrsubc-minmax-f16c-x8.c & 75tools/xngen src/f16-vbinary/vopc-f16c.c.in -D OP=RSUB -D BATCH_TILE=16 -D ACTIVATION=MINMAX -o src/f16-vbinary/gen/vrsubc-minmax-f16c-x16.c & 76 77################################## Unit tests ################################# 78tools/generate-vbinary-test.py --tester VBinaryMicrokernelTester --spec test/f16-vadd-minmax.yaml --output test/f16-vadd-minmax.cc & 79tools/generate-vbinary-test.py --tester VBinaryMicrokernelTester --spec test/f16-vdiv-minmax.yaml --output test/f16-vdiv-minmax.cc & 80tools/generate-vbinary-test.py --tester VBinaryMicrokernelTester --spec test/f16-vmax.yaml --output test/f16-vmax.cc & 81tools/generate-vbinary-test.py --tester VBinaryMicrokernelTester --spec test/f16-vmin.yaml --output test/f16-vmin.cc & 82tools/generate-vbinary-test.py --tester VBinaryMicrokernelTester --spec test/f16-vmul-minmax.yaml --output test/f16-vmul-minmax.cc & 83tools/generate-vbinary-test.py --tester VBinaryMicrokernelTester --spec test/f16-vsqrdiff.yaml --output test/f16-vsqrdiff.cc & 84tools/generate-vbinary-test.py --tester VBinaryMicrokernelTester --spec test/f16-vsub-minmax.yaml --output test/f16-vsub-minmax.cc & 85tools/generate-vbinary-test.py --tester VBinaryCMicrokernelTester --spec test/f16-vaddc-minmax.yaml --output test/f16-vaddc-minmax.cc & 86tools/generate-vbinary-test.py --tester VBinaryCMicrokernelTester --spec test/f16-vdivc-minmax.yaml --output test/f16-vdivc-minmax.cc & 87tools/generate-vbinary-test.py --tester VBinaryCMicrokernelTester --spec test/f16-vrdivc-minmax.yaml --output test/f16-vrdivc-minmax.cc & 88tools/generate-vbinary-test.py --tester VBinaryCMicrokernelTester --spec test/f16-vmaxc.yaml --output test/f16-vmaxc.cc & 89tools/generate-vbinary-test.py --tester VBinaryCMicrokernelTester --spec test/f16-vminc.yaml --output test/f16-vminc.cc & 90tools/generate-vbinary-test.py --tester VBinaryCMicrokernelTester --spec test/f16-vmulc-minmax.yaml --output test/f16-vmulc-minmax.cc & 91tools/generate-vbinary-test.py --tester VBinaryCMicrokernelTester --spec test/f16-vsqrdiffc.yaml --output test/f16-vsqrdiffc.cc & 92tools/generate-vbinary-test.py --tester VBinaryCMicrokernelTester --spec test/f16-vsubc-minmax.yaml --output test/f16-vsubc-minmax.cc & 93tools/generate-vbinary-test.py --tester VBinaryCMicrokernelTester --spec test/f16-vrsubc-minmax.yaml --output test/f16-vrsubc-minmax.cc & 94 95wait 96