xref: /aosp_15_r20/external/XNNPACK/scripts/generate-xN-transpose.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/x32-transposec/scalar.c.in -D TILE_HEIGHT=1 TILE_WIDTH=2 TYPE=int8_t SIZE=8 -o src/x8-transposec/gen/1x2-scalar-int.c &
9tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=1 TILE_WIDTH=4 TYPE=int8_t SIZE=8 -o src/x8-transposec/gen/1x4-scalar-int.c &
10tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=1 TYPE=int8_t SIZE=8 -o src/x8-transposec/gen/2x1-scalar-int.c &
11tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=2 TYPE=int8_t SIZE=8 -o src/x8-transposec/gen/2x2-scalar-int.c &
12tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=4 TYPE=int8_t SIZE=8 -o src/x8-transposec/gen/2x4-scalar-int.c &
13tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=1 TYPE=int8_t SIZE=8 -o src/x8-transposec/gen/4x1-scalar-int.c &
14tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=2 TYPE=int8_t SIZE=8 -o src/x8-transposec/gen/4x2-scalar-int.c &
15tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=4 TYPE=int8_t SIZE=8 -o src/x8-transposec/gen/4x4-scalar-int.c &
16tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=1 TILE_WIDTH=2 TYPE=int16_t SIZE=16 -o src/x16-transposec/gen/1x2-scalar-int.c &
17tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=1 TILE_WIDTH=4 TYPE=int16_t SIZE=16 -o src/x16-transposec/gen/1x4-scalar-int.c &
18tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=1 TYPE=int16_t SIZE=16 -o src/x16-transposec/gen/2x1-scalar-int.c &
19tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=2 TYPE=int16_t SIZE=16 -o src/x16-transposec/gen/2x2-scalar-int.c &
20tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=4 TYPE=int16_t SIZE=16 -o src/x16-transposec/gen/2x4-scalar-int.c &
21tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=1 TYPE=int16_t SIZE=16 -o src/x16-transposec/gen/4x1-scalar-int.c &
22tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=2 TYPE=int16_t SIZE=16 -o src/x16-transposec/gen/4x2-scalar-int.c &
23tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=4 TYPE=int16_t SIZE=16 -o src/x16-transposec/gen/4x4-scalar-int.c &
24tools/xngen src/x24-transposec/scalar.c.in -D TILE_HEIGHT=1 TILE_WIDTH=2 -o src/x24-transposec/gen/1x2-scalar.c &
25tools/xngen src/x24-transposec/scalar.c.in -D TILE_HEIGHT=1 TILE_WIDTH=4 -o src/x24-transposec/gen/1x4-scalar.c &
26tools/xngen src/x24-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=1 -o src/x24-transposec/gen/2x1-scalar.c &
27tools/xngen src/x24-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=2 -o src/x24-transposec/gen/2x2-scalar.c &
28tools/xngen src/x24-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=4 -o src/x24-transposec/gen/2x4-scalar.c &
29tools/xngen src/x24-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=1 -o src/x24-transposec/gen/4x1-scalar.c &
30tools/xngen src/x24-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=2 -o src/x24-transposec/gen/4x2-scalar.c &
31tools/xngen src/x24-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=4 -o src/x24-transposec/gen/4x4-scalar.c &
32tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=1 TILE_WIDTH=2 TYPE=int SIZE=32 -o src/x32-transposec/gen/1x2-scalar-int.c &
33tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=1 TILE_WIDTH=4 TYPE=int SIZE=32 -o src/x32-transposec/gen/1x4-scalar-int.c &
34tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=1 TYPE=int SIZE=32 -o src/x32-transposec/gen/2x1-scalar-int.c &
35tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=2 TYPE=int SIZE=32 -o src/x32-transposec/gen/2x2-scalar-int.c &
36tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=4 TYPE=int SIZE=32 -o src/x32-transposec/gen/2x4-scalar-int.c &
37tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=1 TYPE=int SIZE=32 -o src/x32-transposec/gen/4x1-scalar-int.c &
38tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=2 TYPE=int SIZE=32 -o src/x32-transposec/gen/4x2-scalar-int.c &
39tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=4 TYPE=int SIZE=32 -o src/x32-transposec/gen/4x4-scalar-int.c &
40tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=1 TILE_WIDTH=2 TYPE=float SIZE=32 -o src/x32-transposec/gen/1x2-scalar-float.c &
41tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=1 TILE_WIDTH=4 TYPE=float SIZE=32 -o src/x32-transposec/gen/1x4-scalar-float.c &
42tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=1 TYPE=float SIZE=32 -o src/x32-transposec/gen/2x1-scalar-float.c &
43tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=2 TYPE=float SIZE=32 -o src/x32-transposec/gen/2x2-scalar-float.c &
44tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=4 TYPE=float SIZE=32 -o src/x32-transposec/gen/2x4-scalar-float.c &
45tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=1 TYPE=float SIZE=32 -o src/x32-transposec/gen/4x1-scalar-float.c &
46tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=2 TYPE=float SIZE=32 -o src/x32-transposec/gen/4x2-scalar-float.c &
47tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=4 TYPE=float SIZE=32 -o src/x32-transposec/gen/4x4-scalar-float.c &
48tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=1 TILE_WIDTH=2 TYPE=int64_t SIZE=64 -o src/x64-transposec/gen/1x2-scalar-int.c &
49tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=1 TYPE=int64_t SIZE=64 -o src/x64-transposec/gen/2x1-scalar-int.c &
50tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=2 TYPE=int64_t SIZE=64 -o src/x64-transposec/gen/2x2-scalar-int.c &
51tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=1 TYPE=int64_t SIZE=64 -o src/x64-transposec/gen/4x1-scalar-int.c &
52tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=2 TYPE=int64_t SIZE=64 -o src/x64-transposec/gen/4x2-scalar-int.c &
53tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=1 TILE_WIDTH=2 TYPE=double SIZE=64 -o src/x64-transposec/gen/1x2-scalar-float.c &
54tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=1 TYPE=double SIZE=64 -o src/x64-transposec/gen/2x1-scalar-float.c &
55tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=2 TILE_WIDTH=2 TYPE=double SIZE=64 -o src/x64-transposec/gen/2x2-scalar-float.c &
56tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=1 TYPE=double SIZE=64 -o src/x64-transposec/gen/4x1-scalar-float.c &
57tools/xngen src/x32-transposec/scalar.c.in -D TILE_HEIGHT=4 TILE_WIDTH=2 TYPE=double SIZE=64 -o src/x64-transposec/gen/4x2-scalar-float.c &
58
59#################################### SSE2 ###################################
60tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=8 -o src/x8-transposec/gen/16x16-reuse-mov-sse2.c &
61tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=8 -o src/x8-transposec/gen/16x16-reuse-switch-sse2.c &
62tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=16 -o src/x16-transposec/gen/8x8-reuse-mov-sse2.c &
63tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=16 -o src/x16-transposec/gen/8x8-reuse-switch-sse2.c &
64tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=REUSE OUT_PTRS=MULTI SIZE=16 -o src/x16-transposec/gen/8x8-reuse-multi-sse2.c &
65tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=MULTI OUT_PTRS=SWITCH SIZE=16 -o src/x16-transposec/gen/8x8-multi-switch-sse2.c &
66tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=MULTI OUT_PTRS=MOV SIZE=16 -o src/x16-transposec/gen/8x8-multi-mov-sse2.c &
67tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=32 -o src/x32-transposec/gen/4x4-reuse-mov-sse2.c &
68tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=32 -o src/x32-transposec/gen/4x4-reuse-switch-sse2.c &
69tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=REUSE OUT_PTRS=MULTI SIZE=32 -o src/x32-transposec/gen/4x4-reuse-multi-sse2.c &
70tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=MULTI OUT_PTRS=SWITCH SIZE=32 -o src/x32-transposec/gen/4x4-multi-switch-sse2.c &
71tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=MULTI OUT_PTRS=MULTI SIZE=32 -o src/x32-transposec/gen/4x4-multi-multi-sse2.c &
72tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=MULTI OUT_PTRS=MOV SIZE=32 -o src/x32-transposec/gen/4x4-multi-mov-sse2.c &
73tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=64 -o src/x64-transposec/gen/2x2-reuse-mov-sse2.c &
74tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=64 -o src/x64-transposec/gen/2x2-reuse-switch-sse2.c &
75tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=REUSE OUT_PTRS=MULTI SIZE=64 -o src/x64-transposec/gen/2x2-reuse-multi-sse2.c &
76tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=MULTI OUT_PTRS=SWITCH SIZE=64 -o src/x64-transposec/gen/2x2-multi-switch-sse2.c &
77tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=MULTI OUT_PTRS=MULTI SIZE=64 -o src/x64-transposec/gen/2x2-multi-multi-sse2.c &
78tools/xngen src/x32-transposec/sse2.c.in -D IN_PTRS=MULTI OUT_PTRS=MOV SIZE=64 -o src/x64-transposec/gen/2x2-multi-mov-sse2.c &
79
80#################################### ARM NEON ###############################
81tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=DEC SIZE=8 VECTOR_SIZE=64 -o src/x8-transposec/gen/8x8-multi-dec-zip-neon.c &
82tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=MOV SIZE=8 VECTOR_SIZE=64 -o src/x8-transposec/gen/8x8-multi-mov-zip-neon.c &
83tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=SWITCH SIZE=8 VECTOR_SIZE=64 -o src/x8-transposec/gen/8x8-multi-switch-zip-neon.c &
84tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=DEC SIZE=8 VECTOR_SIZE=64 -o src/x8-transposec/gen/8x8-reuse-dec-zip-neon.c &
85tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=MULTI SIZE=8 VECTOR_SIZE=64 -o src/x8-transposec/gen/8x8-reuse-multi-zip-neon.c &
86tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=8 VECTOR_SIZE=64 -o src/x8-transposec/gen/8x8-reuse-mov-zip-neon.c &
87tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=8 VECTOR_SIZE=64 -o src/x8-transposec/gen/8x8-reuse-switch-zip-neon.c &
88tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=DEC SIZE=8 VECTOR_SIZE=128 -o src/x8-transposec/gen/16x16-reuse-dec-zip-neon.c &
89tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=8 VECTOR_SIZE=128 -o src/x8-transposec/gen/16x16-reuse-mov-zip-neon.c &
90tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=8 VECTOR_SIZE=128 -o src/x8-transposec/gen/16x16-reuse-switch-zip-neon.c &
91
92tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=DEC SIZE=16 VECTOR_SIZE=64 -o src/x16-transposec/gen/4x4-multi-dec-zip-neon.c &
93tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=MOV SIZE=16 VECTOR_SIZE=64 -o src/x16-transposec/gen/4x4-multi-mov-zip-neon.c &
94tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=MULTI SIZE=16 VECTOR_SIZE=64 -o src/x16-transposec/gen/4x4-multi-multi-zip-neon.c &
95tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=SWITCH SIZE=16 VECTOR_SIZE=64 -o src/x16-transposec/gen/4x4-multi-switch-zip-neon.c &
96tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=DEC SIZE=16 VECTOR_SIZE=64 -o src/x16-transposec/gen/4x4-reuse-dec-zip-neon.c &
97tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=MULTI SIZE=16 VECTOR_SIZE=64 -o src/x16-transposec/gen/4x4-reuse-multi-zip-neon.c &
98tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=16 VECTOR_SIZE=64 -o src/x16-transposec/gen/4x4-reuse-mov-zip-neon.c &
99tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=16 VECTOR_SIZE=64 -o src/x16-transposec/gen/4x4-reuse-switch-zip-neon.c &
100
101
102tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=DEC SIZE=16 VECTOR_SIZE=128 -o src/x16-transposec/gen/8x8-reuse-dec-zip-neon.c &
103tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=16 VECTOR_SIZE=128 -o src/x16-transposec/gen/8x8-reuse-mov-zip-neon.c &
104tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=16 VECTOR_SIZE=128 -o src/x16-transposec/gen/8x8-reuse-switch-zip-neon.c &
105tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=MULTI SIZE=16 VECTOR_SIZE=128 -o src/x16-transposec/gen/8x8-reuse-multi-zip-neon.c &
106tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=SWITCH SIZE=16 VECTOR_SIZE=128 -o src/x16-transposec/gen/8x8-multi-switch-zip-neon.c &
107tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=DEC SIZE=16 VECTOR_SIZE=128 -o src/x16-transposec/gen/8x8-multi-dec-zip-neon.c &
108tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=MOV SIZE=16 VECTOR_SIZE=128 -o src/x16-transposec/gen/8x8-multi-mov-zip-neon.c &
109tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=DEC SIZE=32 VECTOR_SIZE=64 -o src/x32-transposec/gen/2x2-reuse-dec-zip-neon.c &
110tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=32 VECTOR_SIZE=64 -o src/x32-transposec/gen/2x2-reuse-mov-zip-neon.c &
111tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=32 VECTOR_SIZE=64 -o src/x32-transposec/gen/2x2-reuse-switch-zip-neon.c &
112tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=MULTI SIZE=32 VECTOR_SIZE=64 -o src/x32-transposec/gen/2x2-reuse-multi-zip-neon.c &
113tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=SWITCH SIZE=32 VECTOR_SIZE=64 -o src/x32-transposec/gen/2x2-multi-switch-zip-neon.c &
114tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=MULTI SIZE=32 VECTOR_SIZE=64 -o src/x32-transposec/gen/2x2-multi-multi-zip-neon.c &
115tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=DEC SIZE=32 VECTOR_SIZE=64 -o src/x32-transposec/gen/2x2-multi-dec-zip-neon.c &
116tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=MOV SIZE=32 VECTOR_SIZE=64 -o src/x32-transposec/gen/2x2-multi-mov-zip-neon.c &
117tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=DEC SIZE=32 VECTOR_SIZE=128 -o src/x32-transposec/gen/4x4-reuse-dec-zip-neon.c &
118tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=32 VECTOR_SIZE=128 -o src/x32-transposec/gen/4x4-reuse-mov-zip-neon.c &
119tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=32 VECTOR_SIZE=128 -o src/x32-transposec/gen/4x4-reuse-switch-zip-neon.c &
120tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=REUSE OUT_PTRS=MULTI SIZE=32 VECTOR_SIZE=128 -o src/x32-transposec/gen/4x4-reuse-multi-zip-neon.c &
121tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=SWITCH SIZE=32 VECTOR_SIZE=128 -o src/x32-transposec/gen/4x4-multi-switch-zip-neon.c &
122tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=MULTI SIZE=32 VECTOR_SIZE=128 -o src/x32-transposec/gen/4x4-multi-multi-zip-neon.c &
123tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=DEC SIZE=32 VECTOR_SIZE=128 -o src/x32-transposec/gen/4x4-multi-dec-zip-neon.c &
124tools/xngen src/x32-transposec/neon-zip.c.in -D IN_PTRS=MULTI OUT_PTRS=MOV SIZE=32 VECTOR_SIZE=128 -o src/x32-transposec/gen/4x4-multi-mov-zip-neon.c &
125
126#################################### WAsm SIMD ###############################
127tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=8 -o src/x8-transposec/gen/16x16-reuse-mov-wasmsimd.c &
128tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=8 -o src/x8-transposec/gen/16x16-reuse-switch-wasmsimd.c &
129tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=16 -o src/x16-transposec/gen/8x8-reuse-mov-wasmsimd.c &
130tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=16 -o src/x16-transposec/gen/8x8-reuse-switch-wasmsimd.c &
131tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=REUSE OUT_PTRS=MULTI SIZE=16 -o src/x16-transposec/gen/8x8-reuse-multi-wasmsimd.c &
132tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=MULTI OUT_PTRS=SWITCH SIZE=16 -o src/x16-transposec/gen/8x8-multi-switch-wasmsimd.c &
133tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=MULTI OUT_PTRS=MOV SIZE=16 -o src/x16-transposec/gen/8x8-multi-mov-wasmsimd.c &
134tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=REUSE OUT_PTRS=MOV SIZE=32 -o src/x32-transposec/gen/4x4-reuse-mov-wasmsimd.c &
135tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=REUSE OUT_PTRS=SWITCH SIZE=32 -o src/x32-transposec/gen/4x4-reuse-switch-wasmsimd.c &
136tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=REUSE OUT_PTRS=MULTI SIZE=32 -o src/x32-transposec/gen/4x4-reuse-multi-wasmsimd.c &
137tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=MULTI OUT_PTRS=SWITCH SIZE=32 -o src/x32-transposec/gen/4x4-multi-switch-wasmsimd.c &
138tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=MULTI OUT_PTRS=MULTI SIZE=32 -o src/x32-transposec/gen/4x4-multi-multi-wasmsimd.c &
139tools/xngen src/x32-transposec/wasmsimd.c.in -D IN_PTRS=MULTI OUT_PTRS=MOV SIZE=32 -o src/x32-transposec/gen/4x4-multi-mov-wasmsimd.c &
140
141################################## Unit tests #################################
142tools/generate-transpose-test.py --spec test/x8-transpose.yaml --output=test/x8-transpose.cc &
143tools/generate-transpose-test.py --spec test/x16-transpose.yaml --output=test/x16-transpose.cc &
144tools/generate-transpose-test.py --spec test/x24-transpose.yaml --output=test/x24-transpose.cc &
145tools/generate-transpose-test.py --spec test/x32-transpose.yaml --output=test/x32-transpose.cc &
146tools/generate-transpose-test.py --spec test/x64-transpose.yaml --output=test/x64-transpose.cc &
147tools/generate-transpose-test.py --spec test/xx-transpose.yaml --output=test/xx-transpose.cc &
148
149wait
150