xref: /aosp_15_r20/external/XNNPACK/scripts/generate-f32-vunary.sh (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
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#################################### Scalar ###################################
8### Generic C micro-kernels
9tools/xngen src/f32-vunary/scalar.c.in -D OP=ABS -D BATCH_TILE=1 -o src/f32-vunary/gen/vabs-scalar-x1.c &
10tools/xngen src/f32-vunary/scalar.c.in -D OP=ABS -D BATCH_TILE=2 -o src/f32-vunary/gen/vabs-scalar-x2.c &
11tools/xngen src/f32-vunary/scalar.c.in -D OP=ABS -D BATCH_TILE=4 -o src/f32-vunary/gen/vabs-scalar-x4.c &
12tools/xngen src/f32-vunary/scalar.c.in -D OP=NEG -D BATCH_TILE=1 -o src/f32-vunary/gen/vneg-scalar-x1.c &
13tools/xngen src/f32-vunary/scalar.c.in -D OP=NEG -D BATCH_TILE=2 -o src/f32-vunary/gen/vneg-scalar-x2.c &
14tools/xngen src/f32-vunary/scalar.c.in -D OP=NEG -D BATCH_TILE=4 -o src/f32-vunary/gen/vneg-scalar-x4.c &
15tools/xngen src/f32-vunary/scalar.c.in -D OP=SQR -D BATCH_TILE=1 -o src/f32-vunary/gen/vsqr-scalar-x1.c &
16tools/xngen src/f32-vunary/scalar.c.in -D OP=SQR -D BATCH_TILE=2 -o src/f32-vunary/gen/vsqr-scalar-x2.c &
17tools/xngen src/f32-vunary/scalar.c.in -D OP=SQR -D BATCH_TILE=4 -o src/f32-vunary/gen/vsqr-scalar-x4.c &
18
19################################## WAsm SIMD ##################################
20tools/xngen src/f32-vunary/wasmsimd.c.in -D OP=ABS -D BATCH_TILE=4 -o src/f32-vunary/gen/vabs-wasmsimd-x4.c &
21tools/xngen src/f32-vunary/wasmsimd.c.in -D OP=ABS -D BATCH_TILE=8 -o src/f32-vunary/gen/vabs-wasmsimd-x8.c &
22tools/xngen src/f32-vunary/wasmsimd.c.in -D OP=NEG -D BATCH_TILE=4 -o src/f32-vunary/gen/vneg-wasmsimd-x4.c &
23tools/xngen src/f32-vunary/wasmsimd.c.in -D OP=NEG -D BATCH_TILE=8 -o src/f32-vunary/gen/vneg-wasmsimd-x8.c &
24tools/xngen src/f32-vunary/wasmsimd.c.in -D OP=SQR -D BATCH_TILE=4 -o src/f32-vunary/gen/vsqr-wasmsimd-x4.c &
25tools/xngen src/f32-vunary/wasmsimd.c.in -D OP=SQR -D BATCH_TILE=8 -o src/f32-vunary/gen/vsqr-wasmsimd-x8.c &
26
27################################### ARM NEON ##################################
28tools/xngen src/f32-vunary/neon.c.in -D OP=ABS -D BATCH_TILE=4 -o src/f32-vunary/gen/vabs-neon-x4.c &
29tools/xngen src/f32-vunary/neon.c.in -D OP=ABS -D BATCH_TILE=8 -o src/f32-vunary/gen/vabs-neon-x8.c &
30tools/xngen src/f32-vunary/neon.c.in -D OP=NEG -D BATCH_TILE=4 -o src/f32-vunary/gen/vneg-neon-x4.c &
31tools/xngen src/f32-vunary/neon.c.in -D OP=NEG -D BATCH_TILE=8 -o src/f32-vunary/gen/vneg-neon-x8.c &
32tools/xngen src/f32-vunary/neon.c.in -D OP=SQR -D BATCH_TILE=4 -o src/f32-vunary/gen/vsqr-neon-x4.c &
33tools/xngen src/f32-vunary/neon.c.in -D OP=SQR -D BATCH_TILE=8 -o src/f32-vunary/gen/vsqr-neon-x8.c &
34
35################################# x86 128-bit #################################
36tools/xngen src/f32-vunary/sse.c.in -D OP=ABS -D BATCH_TILE=4 -o src/f32-vunary/gen/vabs-sse-x4.c &
37tools/xngen src/f32-vunary/sse.c.in -D OP=ABS -D BATCH_TILE=8 -o src/f32-vunary/gen/vabs-sse-x8.c &
38tools/xngen src/f32-vunary/sse.c.in -D OP=NEG -D BATCH_TILE=4 -o src/f32-vunary/gen/vneg-sse-x4.c &
39tools/xngen src/f32-vunary/sse.c.in -D OP=NEG -D BATCH_TILE=8 -o src/f32-vunary/gen/vneg-sse-x8.c &
40tools/xngen src/f32-vunary/sse.c.in -D OP=SQR -D BATCH_TILE=4 -o src/f32-vunary/gen/vsqr-sse-x4.c &
41tools/xngen src/f32-vunary/sse.c.in -D OP=SQR -D BATCH_TILE=8 -o src/f32-vunary/gen/vsqr-sse-x8.c &
42
43################################# x86 256-bit #################################
44tools/xngen src/f32-vunary/avx.c.in -D OP=ABS -D BATCH_TILE=8  -o src/f32-vunary/gen/vabs-avx-x8.c &
45tools/xngen src/f32-vunary/avx.c.in -D OP=ABS -D BATCH_TILE=16 -o src/f32-vunary/gen/vabs-avx-x16.c &
46tools/xngen src/f32-vunary/avx.c.in -D OP=NEG -D BATCH_TILE=8  -o src/f32-vunary/gen/vneg-avx-x8.c &
47tools/xngen src/f32-vunary/avx.c.in -D OP=NEG -D BATCH_TILE=16 -o src/f32-vunary/gen/vneg-avx-x16.c &
48tools/xngen src/f32-vunary/avx.c.in -D OP=SQR -D BATCH_TILE=8  -o src/f32-vunary/gen/vsqr-avx-x8.c &
49tools/xngen src/f32-vunary/avx.c.in -D OP=SQR -D BATCH_TILE=16 -o src/f32-vunary/gen/vsqr-avx-x16.c &
50
51################################# x86 512-bit #################################
52tools/xngen src/f32-vunary/avx512f.c.in -D OP=ABS -D BATCH_TILE=16 -o src/f32-vunary/gen/vabs-avx512f-x16.c &
53tools/xngen src/f32-vunary/avx512f.c.in -D OP=ABS -D BATCH_TILE=32 -o src/f32-vunary/gen/vabs-avx512f-x32.c &
54tools/xngen src/f32-vunary/avx512f.c.in -D OP=NEG -D BATCH_TILE=16 -o src/f32-vunary/gen/vneg-avx512f-x16.c &
55tools/xngen src/f32-vunary/avx512f.c.in -D OP=NEG -D BATCH_TILE=32 -o src/f32-vunary/gen/vneg-avx512f-x32.c &
56tools/xngen src/f32-vunary/avx512f.c.in -D OP=SQR -D BATCH_TILE=16 -o src/f32-vunary/gen/vsqr-avx512f-x16.c &
57tools/xngen src/f32-vunary/avx512f.c.in -D OP=SQR -D BATCH_TILE=32 -o src/f32-vunary/gen/vsqr-avx512f-x32.c &
58
59################################## Unit tests #################################
60tools/generate-vunary-test.py --spec test/f32-vabs.yaml --output test/f32-vabs.cc &
61tools/generate-vunary-test.py --spec test/f32-vneg.yaml --output test/f32-vneg.cc &
62tools/generate-vunary-test.py --spec test/f32-vsqr.yaml --output test/f32-vsqr.cc &
63
64wait
65