xref: /aosp_15_r20/external/vixl/test/aarch64/test-simulator-inputs-aarch64.h (revision f5c631da2f1efdd72b5fd1e20510e4042af13d77)
1*f5c631daSSadaf Ebrahimi // Copyright 2015, VIXL authors
2*f5c631daSSadaf Ebrahimi // All rights reserved.
3*f5c631daSSadaf Ebrahimi //
4*f5c631daSSadaf Ebrahimi // Redistribution and use in source and binary forms, with or without
5*f5c631daSSadaf Ebrahimi // modification, are permitted provided that the following conditions are met:
6*f5c631daSSadaf Ebrahimi //
7*f5c631daSSadaf Ebrahimi //   * Redistributions of source code must retain the above copyright notice,
8*f5c631daSSadaf Ebrahimi //     this list of conditions and the following disclaimer.
9*f5c631daSSadaf Ebrahimi //   * Redistributions in binary form must reproduce the above copyright notice,
10*f5c631daSSadaf Ebrahimi //     this list of conditions and the following disclaimer in the documentation
11*f5c631daSSadaf Ebrahimi //     and/or other materials provided with the distribution.
12*f5c631daSSadaf Ebrahimi //   * Neither the name of ARM Limited nor the names of its contributors may be
13*f5c631daSSadaf Ebrahimi //     used to endorse or promote products derived from this software without
14*f5c631daSSadaf Ebrahimi //     specific prior written permission.
15*f5c631daSSadaf Ebrahimi //
16*f5c631daSSadaf Ebrahimi // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17*f5c631daSSadaf Ebrahimi // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18*f5c631daSSadaf Ebrahimi // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19*f5c631daSSadaf Ebrahimi // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20*f5c631daSSadaf Ebrahimi // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21*f5c631daSSadaf Ebrahimi // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22*f5c631daSSadaf Ebrahimi // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23*f5c631daSSadaf Ebrahimi // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24*f5c631daSSadaf Ebrahimi // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25*f5c631daSSadaf Ebrahimi // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*f5c631daSSadaf Ebrahimi 
27*f5c631daSSadaf Ebrahimi // This file holds inputs for the instructions tested by test-simulator-aarch64.
28*f5c631daSSadaf Ebrahimi //
29*f5c631daSSadaf Ebrahimi // If the input lists are updated, please run tools/generate_simulator_traces.py
30*f5c631daSSadaf Ebrahimi // on a reference platform to regenerate the expected outputs. The outputs are
31*f5c631daSSadaf Ebrahimi // stored in test-simulator-traces-aarch64.h.
32*f5c631daSSadaf Ebrahimi 
33*f5c631daSSadaf Ebrahimi extern "C" {
34*f5c631daSSadaf Ebrahimi #include <stdint.h>
35*f5c631daSSadaf Ebrahimi }
36*f5c631daSSadaf Ebrahimi 
37*f5c631daSSadaf Ebrahimi // This header should only be used by test/test-simulator-aarch64.cc, so it
38*f5c631daSSadaf Ebrahimi // doesn't need the usual header guard.
39*f5c631daSSadaf Ebrahimi #ifdef VIXL_AARCH64_TEST_SIMULATOR_INPUTS_AARCH64_H_
40*f5c631daSSadaf Ebrahimi #error This header should be inluded only once.
41*f5c631daSSadaf Ebrahimi #endif
42*f5c631daSSadaf Ebrahimi #define VIXL_AARCH64_TEST_SIMULATOR_INPUTS_AARCH64_H_
43*f5c631daSSadaf Ebrahimi 
44*f5c631daSSadaf Ebrahimi // clang-format off
45*f5c631daSSadaf Ebrahimi 
46*f5c631daSSadaf Ebrahimi // Double values, stored as uint64_t representations. This ensures exact bit
47*f5c631daSSadaf Ebrahimi // representation, and avoids the loss of NaNs and suchlike through C++ casts.
48*f5c631daSSadaf Ebrahimi #define INPUT_DOUBLE_BASIC                                                    \
49*f5c631daSSadaf Ebrahimi   /* Simple values. */                                                        \
50*f5c631daSSadaf Ebrahimi   0x0000000000000000,   /* 0.0                        */                      \
51*f5c631daSSadaf Ebrahimi   0x0010000000000000,   /* The smallest normal value. */                      \
52*f5c631daSSadaf Ebrahimi   0x3fdfffffffffffff,   /* The value just below 0.5.  */                      \
53*f5c631daSSadaf Ebrahimi   0x3fe0000000000000,   /* 0.5                        */                      \
54*f5c631daSSadaf Ebrahimi   0x3fe0000000000001,   /* The value just above 0.5.  */                      \
55*f5c631daSSadaf Ebrahimi   0x3fefffffffffffff,   /* The value just below 1.0.  */                      \
56*f5c631daSSadaf Ebrahimi   0x3ff0000000000000,   /* 1.0                        */                      \
57*f5c631daSSadaf Ebrahimi   0x3ff0000000000001,   /* The value just above 1.0.  */                      \
58*f5c631daSSadaf Ebrahimi   0x3ff8000000000000,   /* 1.5                        */                      \
59*f5c631daSSadaf Ebrahimi   0x4024000000000000,   /* 10                         */                      \
60*f5c631daSSadaf Ebrahimi   0x7fefffffffffffff,   /* The largest finite value.  */                      \
61*f5c631daSSadaf Ebrahimi                                                                               \
62*f5c631daSSadaf Ebrahimi   /* Infinity. */                                                             \
63*f5c631daSSadaf Ebrahimi   0x7ff0000000000000,                                                         \
64*f5c631daSSadaf Ebrahimi                                                                               \
65*f5c631daSSadaf Ebrahimi   /* NaNs. */                                                                 \
66*f5c631daSSadaf Ebrahimi   /*  - Quiet NaNs */                                                         \
67*f5c631daSSadaf Ebrahimi   0x7ff923456789abcd,                                                         \
68*f5c631daSSadaf Ebrahimi   0x7ff8000000000000,                                                         \
69*f5c631daSSadaf Ebrahimi   /*  - Signalling NaNs */                                                    \
70*f5c631daSSadaf Ebrahimi   0x7ff123456789abcd,                                                         \
71*f5c631daSSadaf Ebrahimi   0x7ff0000000000000,                                                         \
72*f5c631daSSadaf Ebrahimi                                                                               \
73*f5c631daSSadaf Ebrahimi   /* Subnormals. */                                                           \
74*f5c631daSSadaf Ebrahimi   /*  - A recognisable bit pattern. */                                        \
75*f5c631daSSadaf Ebrahimi   0x000123456789abcd,                                                         \
76*f5c631daSSadaf Ebrahimi   /*  - The largest subnormal value. */                                       \
77*f5c631daSSadaf Ebrahimi   0x000fffffffffffff,                                                         \
78*f5c631daSSadaf Ebrahimi   /*  - The smallest subnormal value. */                                      \
79*f5c631daSSadaf Ebrahimi   0x0000000000000001,                                                         \
80*f5c631daSSadaf Ebrahimi                                                                               \
81*f5c631daSSadaf Ebrahimi   /* The same values again, but negated. */                                   \
82*f5c631daSSadaf Ebrahimi   0x8000000000000000,                                                         \
83*f5c631daSSadaf Ebrahimi   0x8010000000000000,                                                         \
84*f5c631daSSadaf Ebrahimi   0xbfdfffffffffffff,                                                         \
85*f5c631daSSadaf Ebrahimi   0xbfe0000000000000,                                                         \
86*f5c631daSSadaf Ebrahimi   0xbfe0000000000001,                                                         \
87*f5c631daSSadaf Ebrahimi   0xbfefffffffffffff,                                                         \
88*f5c631daSSadaf Ebrahimi   0xbff0000000000000,                                                         \
89*f5c631daSSadaf Ebrahimi   0xbff0000000000001,                                                         \
90*f5c631daSSadaf Ebrahimi   0xbff8000000000000,                                                         \
91*f5c631daSSadaf Ebrahimi   0xc024000000000000,                                                         \
92*f5c631daSSadaf Ebrahimi   0xffefffffffffffff,                                                         \
93*f5c631daSSadaf Ebrahimi   0xfff0000000000000,                                                         \
94*f5c631daSSadaf Ebrahimi   0xfff923456789abcd,                                                         \
95*f5c631daSSadaf Ebrahimi   0xfff8000000000000,                                                         \
96*f5c631daSSadaf Ebrahimi   0xfff123456789abcd,                                                         \
97*f5c631daSSadaf Ebrahimi   0xfff0000000000000,                                                         \
98*f5c631daSSadaf Ebrahimi   0x800123456789abcd,                                                         \
99*f5c631daSSadaf Ebrahimi   0x800fffffffffffff,                                                         \
100*f5c631daSSadaf Ebrahimi   0x8000000000000001,
101*f5c631daSSadaf Ebrahimi 
102*f5c631daSSadaf Ebrahimi 
103*f5c631daSSadaf Ebrahimi // Extra inputs. Passing these to 3- or 2-op instructions makes the trace file
104*f5c631daSSadaf Ebrahimi // very large, so these should only be used with 1-op instructions.
105*f5c631daSSadaf Ebrahimi #define INPUT_DOUBLE_CONVERSIONS                                              \
106*f5c631daSSadaf Ebrahimi   /* Values relevant for conversions to single-precision floats. */           \
107*f5c631daSSadaf Ebrahimi   0x47efffff00000000,                                                         \
108*f5c631daSSadaf Ebrahimi   /*  - The smallest normalized float. */                                     \
109*f5c631daSSadaf Ebrahimi   0x3810000000000000,                                                         \
110*f5c631daSSadaf Ebrahimi   /*  - Normal floats that need (ties-to-even) rounding.           */         \
111*f5c631daSSadaf Ebrahimi   /*    For normalized numbers, bit 29 (0x0000000020000000) is the */         \
112*f5c631daSSadaf Ebrahimi   /*    lowest-order bit which will fit in the float's mantissa.   */         \
113*f5c631daSSadaf Ebrahimi   0x3ff0000000000000,                                                         \
114*f5c631daSSadaf Ebrahimi   0x3ff0000000000001,                                                         \
115*f5c631daSSadaf Ebrahimi   0x3ff0000010000000,                                                         \
116*f5c631daSSadaf Ebrahimi   0x3ff0000010000001,                                                         \
117*f5c631daSSadaf Ebrahimi   0x3ff0000020000000,                                                         \
118*f5c631daSSadaf Ebrahimi   0x3ff0000020000001,                                                         \
119*f5c631daSSadaf Ebrahimi   0x3ff0000030000000,                                                         \
120*f5c631daSSadaf Ebrahimi   0x3ff0000030000001,                                                         \
121*f5c631daSSadaf Ebrahimi   0x3ff0000040000000,                                                         \
122*f5c631daSSadaf Ebrahimi   0x3ff0000040000001,                                                         \
123*f5c631daSSadaf Ebrahimi   0x3ff0000050000000,                                                         \
124*f5c631daSSadaf Ebrahimi   0x3ff0000050000001,                                                         \
125*f5c631daSSadaf Ebrahimi   0x3ff0000060000000,                                                         \
126*f5c631daSSadaf Ebrahimi   /*  - A mantissa that overflows into the exponent during rounding. */       \
127*f5c631daSSadaf Ebrahimi   0x3feffffff0000000,                                                         \
128*f5c631daSSadaf Ebrahimi   /*  - The largest double that rounds to a normal float. */                  \
129*f5c631daSSadaf Ebrahimi   0x47efffffefffffff,                                                         \
130*f5c631daSSadaf Ebrahimi   /*  - The smallest exponent that's too big for a float. */                  \
131*f5c631daSSadaf Ebrahimi   0x47f0000000000000,                                                         \
132*f5c631daSSadaf Ebrahimi   /*  - This exponent is in range, but the value rounds to infinity. */       \
133*f5c631daSSadaf Ebrahimi   0x47effffff0000000,                                                         \
134*f5c631daSSadaf Ebrahimi   /*  - The largest double which is too small for a subnormal float. */       \
135*f5c631daSSadaf Ebrahimi   0x3690000000000000,                                                         \
136*f5c631daSSadaf Ebrahimi   /*  - The largest subnormal float. */                                       \
137*f5c631daSSadaf Ebrahimi   0x380fffffc0000000,                                                         \
138*f5c631daSSadaf Ebrahimi   /*  - The smallest subnormal float. */                                      \
139*f5c631daSSadaf Ebrahimi   0x36a0000000000000,                                                         \
140*f5c631daSSadaf Ebrahimi   /*  - Subnormal floats that need (ties-to-even) rounding.      */           \
141*f5c631daSSadaf Ebrahimi   /*    For these subnormals, bit 34 (0x0000000400000000) is the */           \
142*f5c631daSSadaf Ebrahimi   /*    lowest-order bit which will fit in the float's mantissa. */           \
143*f5c631daSSadaf Ebrahimi   0x37c159e000000000,                                                         \
144*f5c631daSSadaf Ebrahimi   0x37c159e000000001,                                                         \
145*f5c631daSSadaf Ebrahimi   0x37c159e200000000,                                                         \
146*f5c631daSSadaf Ebrahimi   0x37c159e200000001,                                                         \
147*f5c631daSSadaf Ebrahimi   0x37c159e400000000,                                                         \
148*f5c631daSSadaf Ebrahimi   0x37c159e400000001,                                                         \
149*f5c631daSSadaf Ebrahimi   0x37c159e600000000,                                                         \
150*f5c631daSSadaf Ebrahimi   0x37c159e600000001,                                                         \
151*f5c631daSSadaf Ebrahimi   0x37c159e800000000,                                                         \
152*f5c631daSSadaf Ebrahimi   0x37c159e800000001,                                                         \
153*f5c631daSSadaf Ebrahimi   0x37c159ea00000000,                                                         \
154*f5c631daSSadaf Ebrahimi   0x37c159ea00000001,                                                         \
155*f5c631daSSadaf Ebrahimi   0x37c159ec00000000,                                                         \
156*f5c631daSSadaf Ebrahimi   /*  - The smallest double which rounds up to become a subnormal float. */   \
157*f5c631daSSadaf Ebrahimi   0x3690000000000001,                                                         \
158*f5c631daSSadaf Ebrahimi                                                                               \
159*f5c631daSSadaf Ebrahimi   /* The same values again, but negated. */                                   \
160*f5c631daSSadaf Ebrahimi   0xc7efffff00000000,                                                         \
161*f5c631daSSadaf Ebrahimi   0xb810000000000000,                                                         \
162*f5c631daSSadaf Ebrahimi   0xbff0000000000000,                                                         \
163*f5c631daSSadaf Ebrahimi   0xbff0000000000001,                                                         \
164*f5c631daSSadaf Ebrahimi   0xbff0000010000000,                                                         \
165*f5c631daSSadaf Ebrahimi   0xbff0000010000001,                                                         \
166*f5c631daSSadaf Ebrahimi   0xbff0000020000000,                                                         \
167*f5c631daSSadaf Ebrahimi   0xbff0000020000001,                                                         \
168*f5c631daSSadaf Ebrahimi   0xbff0000030000000,                                                         \
169*f5c631daSSadaf Ebrahimi   0xbff0000030000001,                                                         \
170*f5c631daSSadaf Ebrahimi   0xbff0000040000000,                                                         \
171*f5c631daSSadaf Ebrahimi   0xbff0000040000001,                                                         \
172*f5c631daSSadaf Ebrahimi   0xbff0000050000000,                                                         \
173*f5c631daSSadaf Ebrahimi   0xbff0000050000001,                                                         \
174*f5c631daSSadaf Ebrahimi   0xbff0000060000000,                                                         \
175*f5c631daSSadaf Ebrahimi   0xbfeffffff0000000,                                                         \
176*f5c631daSSadaf Ebrahimi   0xc7efffffefffffff,                                                         \
177*f5c631daSSadaf Ebrahimi   0xc7f0000000000000,                                                         \
178*f5c631daSSadaf Ebrahimi   0xc7effffff0000000,                                                         \
179*f5c631daSSadaf Ebrahimi   0xb690000000000000,                                                         \
180*f5c631daSSadaf Ebrahimi   0xb80fffffc0000000,                                                         \
181*f5c631daSSadaf Ebrahimi   0xb6a0000000000000,                                                         \
182*f5c631daSSadaf Ebrahimi   0xb7c159e000000000,                                                         \
183*f5c631daSSadaf Ebrahimi   0xb7c159e000000001,                                                         \
184*f5c631daSSadaf Ebrahimi   0xb7c159e200000000,                                                         \
185*f5c631daSSadaf Ebrahimi   0xb7c159e200000001,                                                         \
186*f5c631daSSadaf Ebrahimi   0xb7c159e400000000,                                                         \
187*f5c631daSSadaf Ebrahimi   0xb7c159e400000001,                                                         \
188*f5c631daSSadaf Ebrahimi   0xb7c159e600000000,                                                         \
189*f5c631daSSadaf Ebrahimi   0xb7c159e600000001,                                                         \
190*f5c631daSSadaf Ebrahimi   0xb7c159e800000000,                                                         \
191*f5c631daSSadaf Ebrahimi   0xb7c159e800000001,                                                         \
192*f5c631daSSadaf Ebrahimi   0xb7c159ea00000000,                                                         \
193*f5c631daSSadaf Ebrahimi   0xb7c159ea00000001,                                                         \
194*f5c631daSSadaf Ebrahimi   0xb7c159ec00000000,                                                         \
195*f5c631daSSadaf Ebrahimi   0xb690000000000001,                                                         \
196*f5c631daSSadaf Ebrahimi                                                                               \
197*f5c631daSSadaf Ebrahimi   /* Values relevant for conversions to integers (frint).           */        \
198*f5c631daSSadaf Ebrahimi   /*  - The lowest-order mantissa bit has value 1.                  */        \
199*f5c631daSSadaf Ebrahimi   0x4330000000000000,                                                         \
200*f5c631daSSadaf Ebrahimi   0x4330000000000001,                                                         \
201*f5c631daSSadaf Ebrahimi   0x4330000000000002,                                                         \
202*f5c631daSSadaf Ebrahimi   0x4330000000000003,                                                         \
203*f5c631daSSadaf Ebrahimi   0x433fedcba9876543,                                                         \
204*f5c631daSSadaf Ebrahimi   0x433ffffffffffffc,                                                         \
205*f5c631daSSadaf Ebrahimi   0x433ffffffffffffd,                                                         \
206*f5c631daSSadaf Ebrahimi   0x433ffffffffffffe,                                                         \
207*f5c631daSSadaf Ebrahimi   0x433fffffffffffff,                                                         \
208*f5c631daSSadaf Ebrahimi   /*  - The lowest-order mantissa bit has value 0.5.                */        \
209*f5c631daSSadaf Ebrahimi   0x4320000000000000,                                                         \
210*f5c631daSSadaf Ebrahimi   0x4320000000000001,                                                         \
211*f5c631daSSadaf Ebrahimi   0x4320000000000002,                                                         \
212*f5c631daSSadaf Ebrahimi   0x4320000000000003,                                                         \
213*f5c631daSSadaf Ebrahimi   0x432fedcba9876543,                                                         \
214*f5c631daSSadaf Ebrahimi   0x432ffffffffffffc,                                                         \
215*f5c631daSSadaf Ebrahimi   0x432ffffffffffffd,                                                         \
216*f5c631daSSadaf Ebrahimi   0x432ffffffffffffe,                                                         \
217*f5c631daSSadaf Ebrahimi   0x432fffffffffffff,                                                         \
218*f5c631daSSadaf Ebrahimi   /*  - The lowest-order mantissa bit has value 0.25.               */        \
219*f5c631daSSadaf Ebrahimi   0x4310000000000000,                                                         \
220*f5c631daSSadaf Ebrahimi   0x4310000000000001,                                                         \
221*f5c631daSSadaf Ebrahimi   0x4310000000000002,                                                         \
222*f5c631daSSadaf Ebrahimi   0x4310000000000003,                                                         \
223*f5c631daSSadaf Ebrahimi   0x431fedcba9876543,                                                         \
224*f5c631daSSadaf Ebrahimi   0x431ffffffffffffc,                                                         \
225*f5c631daSSadaf Ebrahimi   0x431ffffffffffffd,                                                         \
226*f5c631daSSadaf Ebrahimi   0x431ffffffffffffe,                                                         \
227*f5c631daSSadaf Ebrahimi   0x431fffffffffffff,                                                         \
228*f5c631daSSadaf Ebrahimi                                                                               \
229*f5c631daSSadaf Ebrahimi   /* The same values again, but negated. */                                   \
230*f5c631daSSadaf Ebrahimi   0xc330000000000000,                                                         \
231*f5c631daSSadaf Ebrahimi   0xc330000000000001,                                                         \
232*f5c631daSSadaf Ebrahimi   0xc330000000000002,                                                         \
233*f5c631daSSadaf Ebrahimi   0xc330000000000003,                                                         \
234*f5c631daSSadaf Ebrahimi   0xc33fedcba9876543,                                                         \
235*f5c631daSSadaf Ebrahimi   0xc33ffffffffffffc,                                                         \
236*f5c631daSSadaf Ebrahimi   0xc33ffffffffffffd,                                                         \
237*f5c631daSSadaf Ebrahimi   0xc33ffffffffffffe,                                                         \
238*f5c631daSSadaf Ebrahimi   0xc33fffffffffffff,                                                         \
239*f5c631daSSadaf Ebrahimi   0xc320000000000000,                                                         \
240*f5c631daSSadaf Ebrahimi   0xc320000000000001,                                                         \
241*f5c631daSSadaf Ebrahimi   0xc320000000000002,                                                         \
242*f5c631daSSadaf Ebrahimi   0xc320000000000003,                                                         \
243*f5c631daSSadaf Ebrahimi   0xc32fedcba9876543,                                                         \
244*f5c631daSSadaf Ebrahimi   0xc32ffffffffffffc,                                                         \
245*f5c631daSSadaf Ebrahimi   0xc32ffffffffffffd,                                                         \
246*f5c631daSSadaf Ebrahimi   0xc32ffffffffffffe,                                                         \
247*f5c631daSSadaf Ebrahimi   0xc32fffffffffffff,                                                         \
248*f5c631daSSadaf Ebrahimi   0xc310000000000000,                                                         \
249*f5c631daSSadaf Ebrahimi   0xc310000000000001,                                                         \
250*f5c631daSSadaf Ebrahimi   0xc310000000000002,                                                         \
251*f5c631daSSadaf Ebrahimi   0xc310000000000003,                                                         \
252*f5c631daSSadaf Ebrahimi   0xc31fedcba9876543,                                                         \
253*f5c631daSSadaf Ebrahimi   0xc31ffffffffffffc,                                                         \
254*f5c631daSSadaf Ebrahimi   0xc31ffffffffffffd,                                                         \
255*f5c631daSSadaf Ebrahimi   0xc31ffffffffffffe,                                                         \
256*f5c631daSSadaf Ebrahimi   0xc31fffffffffffff,                                                         \
257*f5c631daSSadaf Ebrahimi                                                                               \
258*f5c631daSSadaf Ebrahimi   /* Values relevant for conversions to integers (fcvt).    */                \
259*f5c631daSSadaf Ebrahimi   0xc3e0000000000001,   /* The value just below INT64_MIN.          */        \
260*f5c631daSSadaf Ebrahimi   0xc3e0000000000000,   /* INT64_MIN                                */        \
261*f5c631daSSadaf Ebrahimi   0xc3dfffffffffffff,   /* The value just above INT64_MIN.          */        \
262*f5c631daSSadaf Ebrahimi   0x43dfffffffffffff,   /* The value just below INT64_MAX.          */        \
263*f5c631daSSadaf Ebrahimi                         /* INT64_MAX is not representable.          */        \
264*f5c631daSSadaf Ebrahimi   0x43e0000000000000,   /* The value just above INT64_MAX.          */        \
265*f5c631daSSadaf Ebrahimi                                                                               \
266*f5c631daSSadaf Ebrahimi   0x43efffffffffffff,   /* The value just below UINT64_MAX.         */        \
267*f5c631daSSadaf Ebrahimi                         /* UINT64_MAX is not representable.         */        \
268*f5c631daSSadaf Ebrahimi   0x43f0000000000000,   /* The value just above UINT64_MAX.         */        \
269*f5c631daSSadaf Ebrahimi                                                                               \
270*f5c631daSSadaf Ebrahimi   0xc1e0000000200001,   /* The value just below INT32_MIN - 1.0.    */        \
271*f5c631daSSadaf Ebrahimi   0xc1e0000000200000,   /* INT32_MIN - 1.0                          */        \
272*f5c631daSSadaf Ebrahimi   0xc1e00000001fffff,   /* The value just above INT32_MIN - 1.0.    */        \
273*f5c631daSSadaf Ebrahimi   0xc1e0000000100001,   /* The value just below INT32_MIN - 0.5.    */        \
274*f5c631daSSadaf Ebrahimi   0xc1e0000000100000,   /* INT32_MIN - 0.5                          */        \
275*f5c631daSSadaf Ebrahimi   0xc1e00000000fffff,   /* The value just above INT32_MIN - 0.5.    */        \
276*f5c631daSSadaf Ebrahimi   0xc1e0000000000001,   /* The value just below INT32_MIN.          */        \
277*f5c631daSSadaf Ebrahimi   0xc1e0000000000000,   /* INT32_MIN                                */        \
278*f5c631daSSadaf Ebrahimi   0xc1dfffffffffffff,   /* The value just above INT32_MIN.          */        \
279*f5c631daSSadaf Ebrahimi   0xc1dfffffffe00001,   /* The value just below INT32_MIN + 0.5.    */        \
280*f5c631daSSadaf Ebrahimi   0xc1dfffffffe00000,   /* INT32_MIN + 0.5                          */        \
281*f5c631daSSadaf Ebrahimi   0xc1dfffffffdfffff,   /* The value just above INT32_MIN + 0.5.    */        \
282*f5c631daSSadaf Ebrahimi                                                                               \
283*f5c631daSSadaf Ebrahimi   0x41dfffffff7fffff,   /* The value just below INT32_MAX - 1.0.    */        \
284*f5c631daSSadaf Ebrahimi   0x41dfffffff800000,   /* INT32_MAX - 1.0                          */        \
285*f5c631daSSadaf Ebrahimi   0x41dfffffff800001,   /* The value just above INT32_MAX - 1.0.    */        \
286*f5c631daSSadaf Ebrahimi   0x41dfffffff9fffff,   /* The value just below INT32_MAX - 0.5.    */        \
287*f5c631daSSadaf Ebrahimi   0x41dfffffffa00000,   /* INT32_MAX - 0.5                          */        \
288*f5c631daSSadaf Ebrahimi   0x41dfffffffa00001,   /* The value just above INT32_MAX - 0.5.    */        \
289*f5c631daSSadaf Ebrahimi   0x41dfffffffbfffff,   /* The value just below INT32_MAX.          */        \
290*f5c631daSSadaf Ebrahimi   0x41dfffffffc00000,   /* INT32_MAX                                */        \
291*f5c631daSSadaf Ebrahimi   0x41dfffffffc00001,   /* The value just above INT32_MAX.          */        \
292*f5c631daSSadaf Ebrahimi   0x41dfffffffdfffff,   /* The value just below INT32_MAX + 0.5.    */        \
293*f5c631daSSadaf Ebrahimi   0x41dfffffffe00000,   /* INT32_MAX + 0.5                          */        \
294*f5c631daSSadaf Ebrahimi   0x41dfffffffe00001,   /* The value just above INT32_MAX + 0.5.    */        \
295*f5c631daSSadaf Ebrahimi                                                                               \
296*f5c631daSSadaf Ebrahimi   0x41efffffffbfffff,   /* The value just below UINT32_MAX - 1.0.   */        \
297*f5c631daSSadaf Ebrahimi   0x41efffffffc00000,   /* UINT32_MAX - 1.0                         */        \
298*f5c631daSSadaf Ebrahimi   0x41efffffffc00001,   /* The value just above UINT32_MAX - 1.0.   */        \
299*f5c631daSSadaf Ebrahimi   0x41efffffffcfffff,   /* The value just below UINT32_MAX - 0.5.   */        \
300*f5c631daSSadaf Ebrahimi   0x41efffffffd00000,   /* UINT32_MAX - 0.5                         */        \
301*f5c631daSSadaf Ebrahimi   0x41efffffffd00001,   /* The value just above UINT32_MAX - 0.5.   */        \
302*f5c631daSSadaf Ebrahimi   0x41efffffffdfffff,   /* The value just below UINT32_MAX.         */        \
303*f5c631daSSadaf Ebrahimi   0x41efffffffe00000,   /* UINT32_MAX                               */        \
304*f5c631daSSadaf Ebrahimi   0x41efffffffe00001,   /* The value just above UINT32_MAX.         */        \
305*f5c631daSSadaf Ebrahimi   0x41efffffffefffff,   /* The value just below UINT32_MAX + 0.5.   */        \
306*f5c631daSSadaf Ebrahimi   0x41effffffff00000,   /* UINT32_MAX + 0.5                         */        \
307*f5c631daSSadaf Ebrahimi   0x41effffffff00001,   /* The value just above UINT32_MAX + 0.5.   */
308*f5c631daSSadaf Ebrahimi 
309*f5c631daSSadaf Ebrahimi 
310*f5c631daSSadaf Ebrahimi // Float values, stored as uint32_t representations. This ensures exact bit
311*f5c631daSSadaf Ebrahimi // representation, and avoids the loss of NaNs and suchlike through C++ casts.
312*f5c631daSSadaf Ebrahimi #define INPUT_FLOAT_BASIC                                                     \
313*f5c631daSSadaf Ebrahimi   /* Simple values. */                                                        \
314*f5c631daSSadaf Ebrahimi   0x00000000,   /* 0.0                        */                              \
315*f5c631daSSadaf Ebrahimi   0x00800000,   /* The smallest normal value. */                              \
316*f5c631daSSadaf Ebrahimi   0x3effffff,   /* The value just below 0.5.  */                              \
317*f5c631daSSadaf Ebrahimi   0x3f000000,   /* 0.5                        */                              \
318*f5c631daSSadaf Ebrahimi   0x3f000001,   /* The value just above 0.5.  */                              \
319*f5c631daSSadaf Ebrahimi   0x3f7fffff,   /* The value just below 1.0.  */                              \
320*f5c631daSSadaf Ebrahimi   0x3f800000,   /* 1.0                        */                              \
321*f5c631daSSadaf Ebrahimi   0x3f800001,   /* The value just above 1.0.  */                              \
322*f5c631daSSadaf Ebrahimi   0x3fc00000,   /* 1.5                        */                              \
323*f5c631daSSadaf Ebrahimi   0x41200000,   /* 10                         */                              \
324*f5c631daSSadaf Ebrahimi   0x7f8fffff,   /* The largest finite value.  */                              \
325*f5c631daSSadaf Ebrahimi                                                                               \
326*f5c631daSSadaf Ebrahimi   /* Infinity. */                                                             \
327*f5c631daSSadaf Ebrahimi   0x7f800000,                                                                 \
328*f5c631daSSadaf Ebrahimi                                                                               \
329*f5c631daSSadaf Ebrahimi   /* NaNs. */                                                                 \
330*f5c631daSSadaf Ebrahimi   /*  - Quiet NaNs */                                                         \
331*f5c631daSSadaf Ebrahimi   0x7fd23456,                                                                 \
332*f5c631daSSadaf Ebrahimi   0x7fc00000,                                                                 \
333*f5c631daSSadaf Ebrahimi   /*  - Signalling NaNs */                                                    \
334*f5c631daSSadaf Ebrahimi   0x7f923456,                                                                 \
335*f5c631daSSadaf Ebrahimi   0x7f800001,                                                                 \
336*f5c631daSSadaf Ebrahimi                                                                               \
337*f5c631daSSadaf Ebrahimi   /* Subnormals. */                                                           \
338*f5c631daSSadaf Ebrahimi   /*  - A recognisable bit pattern. */                                        \
339*f5c631daSSadaf Ebrahimi   0x00123456,                                                                 \
340*f5c631daSSadaf Ebrahimi   /*  - The largest subnormal value. */                                       \
341*f5c631daSSadaf Ebrahimi   0x007fffff,                                                                 \
342*f5c631daSSadaf Ebrahimi   /*  - The smallest subnormal value. */                                      \
343*f5c631daSSadaf Ebrahimi   0x00000001,                                                                 \
344*f5c631daSSadaf Ebrahimi                                                                               \
345*f5c631daSSadaf Ebrahimi   /* The same values again, but negated. */                                   \
346*f5c631daSSadaf Ebrahimi   0x80000000,                                                                 \
347*f5c631daSSadaf Ebrahimi   0x80800000,                                                                 \
348*f5c631daSSadaf Ebrahimi   0xbeffffff,                                                                 \
349*f5c631daSSadaf Ebrahimi   0xbf000000,                                                                 \
350*f5c631daSSadaf Ebrahimi   0xbf000001,                                                                 \
351*f5c631daSSadaf Ebrahimi   0xbf7fffff,                                                                 \
352*f5c631daSSadaf Ebrahimi   0xbf800000,                                                                 \
353*f5c631daSSadaf Ebrahimi   0xbf800001,                                                                 \
354*f5c631daSSadaf Ebrahimi   0xbfc00000,                                                                 \
355*f5c631daSSadaf Ebrahimi   0xc1200000,                                                                 \
356*f5c631daSSadaf Ebrahimi   0xff8fffff,                                                                 \
357*f5c631daSSadaf Ebrahimi   0xff800000,                                                                 \
358*f5c631daSSadaf Ebrahimi   0xffd23456,                                                                 \
359*f5c631daSSadaf Ebrahimi   0xffc00000,                                                                 \
360*f5c631daSSadaf Ebrahimi   0xff923456,                                                                 \
361*f5c631daSSadaf Ebrahimi   0xff800001,                                                                 \
362*f5c631daSSadaf Ebrahimi   0x80123456,                                                                 \
363*f5c631daSSadaf Ebrahimi   0x807fffff,                                                                 \
364*f5c631daSSadaf Ebrahimi   0x80000001,
365*f5c631daSSadaf Ebrahimi 
366*f5c631daSSadaf Ebrahimi 
367*f5c631daSSadaf Ebrahimi // Extra inputs. Passing these to 3- or 2-op instructions makes the trace file
368*f5c631daSSadaf Ebrahimi // very large, so these should only be used with 1-op instructions.
369*f5c631daSSadaf Ebrahimi #define INPUT_FLOAT_CONVERSIONS                                               \
370*f5c631daSSadaf Ebrahimi   /* Values relevant for conversions to integers (frint).           */        \
371*f5c631daSSadaf Ebrahimi   /*  - The lowest-order mantissa bit has value 1.                  */        \
372*f5c631daSSadaf Ebrahimi   0x4b000000,                                                                 \
373*f5c631daSSadaf Ebrahimi   0x4b000001,                                                                 \
374*f5c631daSSadaf Ebrahimi   0x4b000002,                                                                 \
375*f5c631daSSadaf Ebrahimi   0x4b000003,                                                                 \
376*f5c631daSSadaf Ebrahimi   0x4b765432,                                                                 \
377*f5c631daSSadaf Ebrahimi   0x4b7ffffc,                                                                 \
378*f5c631daSSadaf Ebrahimi   0x4b7ffffd,                                                                 \
379*f5c631daSSadaf Ebrahimi   0x4b7ffffe,                                                                 \
380*f5c631daSSadaf Ebrahimi   0x4b7fffff,                                                                 \
381*f5c631daSSadaf Ebrahimi   /*  - The lowest-order mantissa bit has value 0.5.                */        \
382*f5c631daSSadaf Ebrahimi   0x4a800000,                                                                 \
383*f5c631daSSadaf Ebrahimi   0x4a800001,                                                                 \
384*f5c631daSSadaf Ebrahimi   0x4a800002,                                                                 \
385*f5c631daSSadaf Ebrahimi   0x4a800003,                                                                 \
386*f5c631daSSadaf Ebrahimi   0x4af65432,                                                                 \
387*f5c631daSSadaf Ebrahimi   0x4afffffc,                                                                 \
388*f5c631daSSadaf Ebrahimi   0x4afffffd,                                                                 \
389*f5c631daSSadaf Ebrahimi   0x4afffffe,                                                                 \
390*f5c631daSSadaf Ebrahimi   0x4affffff,                                                                 \
391*f5c631daSSadaf Ebrahimi   /*  - The lowest-order mantissa bit has value 0.25.               */        \
392*f5c631daSSadaf Ebrahimi   0x4a000000,                                                                 \
393*f5c631daSSadaf Ebrahimi   0x4a000001,                                                                 \
394*f5c631daSSadaf Ebrahimi   0x4a000002,                                                                 \
395*f5c631daSSadaf Ebrahimi   0x4a000003,                                                                 \
396*f5c631daSSadaf Ebrahimi   0x4a765432,                                                                 \
397*f5c631daSSadaf Ebrahimi   0x4a7ffffc,                                                                 \
398*f5c631daSSadaf Ebrahimi   0x4a7ffffd,                                                                 \
399*f5c631daSSadaf Ebrahimi   0x4a7ffffe,                                                                 \
400*f5c631daSSadaf Ebrahimi   0x4a7fffff,                                                                 \
401*f5c631daSSadaf Ebrahimi                                                                               \
402*f5c631daSSadaf Ebrahimi   /* The same values again, but negated. */                                   \
403*f5c631daSSadaf Ebrahimi   0xcb000000,                                                                 \
404*f5c631daSSadaf Ebrahimi   0xcb000001,                                                                 \
405*f5c631daSSadaf Ebrahimi   0xcb000002,                                                                 \
406*f5c631daSSadaf Ebrahimi   0xcb000003,                                                                 \
407*f5c631daSSadaf Ebrahimi   0xcb765432,                                                                 \
408*f5c631daSSadaf Ebrahimi   0xcb7ffffc,                                                                 \
409*f5c631daSSadaf Ebrahimi   0xcb7ffffd,                                                                 \
410*f5c631daSSadaf Ebrahimi   0xcb7ffffe,                                                                 \
411*f5c631daSSadaf Ebrahimi   0xcb7fffff,                                                                 \
412*f5c631daSSadaf Ebrahimi   0xca800000,                                                                 \
413*f5c631daSSadaf Ebrahimi   0xca800001,                                                                 \
414*f5c631daSSadaf Ebrahimi   0xca800002,                                                                 \
415*f5c631daSSadaf Ebrahimi   0xca800003,                                                                 \
416*f5c631daSSadaf Ebrahimi   0xcaf65432,                                                                 \
417*f5c631daSSadaf Ebrahimi   0xcafffffc,                                                                 \
418*f5c631daSSadaf Ebrahimi   0xcafffffd,                                                                 \
419*f5c631daSSadaf Ebrahimi   0xcafffffe,                                                                 \
420*f5c631daSSadaf Ebrahimi   0xcaffffff,                                                                 \
421*f5c631daSSadaf Ebrahimi   0xca000000,                                                                 \
422*f5c631daSSadaf Ebrahimi   0xca000001,                                                                 \
423*f5c631daSSadaf Ebrahimi   0xca000002,                                                                 \
424*f5c631daSSadaf Ebrahimi   0xca000003,                                                                 \
425*f5c631daSSadaf Ebrahimi   0xca765432,                                                                 \
426*f5c631daSSadaf Ebrahimi   0xca7ffffc,                                                                 \
427*f5c631daSSadaf Ebrahimi   0xca7ffffd,                                                                 \
428*f5c631daSSadaf Ebrahimi   0xca7ffffe,                                                                 \
429*f5c631daSSadaf Ebrahimi   0xca7fffff,                                                                 \
430*f5c631daSSadaf Ebrahimi                                                                               \
431*f5c631daSSadaf Ebrahimi   /* Values relevant for conversions to integers (fcvt).            */        \
432*f5c631daSSadaf Ebrahimi   0xdf000001,   /* The value just below INT64_MIN.                  */        \
433*f5c631daSSadaf Ebrahimi   0xdf000000,   /* INT64_MIN                                        */        \
434*f5c631daSSadaf Ebrahimi   0xdeffffff,   /* The value just above INT64_MIN.                  */        \
435*f5c631daSSadaf Ebrahimi   0x5effffff,   /* The value just below INT64_MAX.                  */        \
436*f5c631daSSadaf Ebrahimi                 /* INT64_MAX is not representable.                  */        \
437*f5c631daSSadaf Ebrahimi   0x5f000000,   /* The value just above INT64_MAX.                  */        \
438*f5c631daSSadaf Ebrahimi                                                                               \
439*f5c631daSSadaf Ebrahimi   0x5f7fffff,   /* The value just below UINT64_MAX.                 */        \
440*f5c631daSSadaf Ebrahimi                 /* UINT64_MAX is not representable.                 */        \
441*f5c631daSSadaf Ebrahimi   0x5f800000,   /* The value just above UINT64_MAX.                 */        \
442*f5c631daSSadaf Ebrahimi                                                                               \
443*f5c631daSSadaf Ebrahimi   0xcf000001,   /* The value just below INT32_MIN.                  */        \
444*f5c631daSSadaf Ebrahimi   0xcf000000,   /* INT32_MIN                                        */        \
445*f5c631daSSadaf Ebrahimi   0xceffffff,   /* The value just above INT32_MIN.                  */        \
446*f5c631daSSadaf Ebrahimi   0x4effffff,   /* The value just below INT32_MAX.                  */        \
447*f5c631daSSadaf Ebrahimi                 /* INT32_MAX is not representable.                  */        \
448*f5c631daSSadaf Ebrahimi   0x4f000000,   /* The value just above INT32_MAX.                  */
449*f5c631daSSadaf Ebrahimi 
450*f5c631daSSadaf Ebrahimi 
451*f5c631daSSadaf Ebrahimi // FP16 values, stored as uint16_t representations. This ensures exact bit
452*f5c631daSSadaf Ebrahimi // representation, and avoids the loss of NaNs and suchlike through C++ casts.
453*f5c631daSSadaf Ebrahimi #define INPUT_FLOAT16_BASIC                                                   \
454*f5c631daSSadaf Ebrahimi   /* Simple values. */                                                        \
455*f5c631daSSadaf Ebrahimi   0x0000,   /* 0.0                        */                                  \
456*f5c631daSSadaf Ebrahimi   0x0400,   /* The smallest normal value. */                                  \
457*f5c631daSSadaf Ebrahimi   0x37ff,   /* The value just below 0.5.  */                                  \
458*f5c631daSSadaf Ebrahimi   0x3800,   /* 0.5                        */                                  \
459*f5c631daSSadaf Ebrahimi   0x3801,   /* The value just above 0.5.  */                                  \
460*f5c631daSSadaf Ebrahimi   0x3bff,   /* The value just below 1.0.  */                                  \
461*f5c631daSSadaf Ebrahimi   0x3c00,   /* 1.0                        */                                  \
462*f5c631daSSadaf Ebrahimi   0x3c01,   /* The value just above 1.0.  */                                  \
463*f5c631daSSadaf Ebrahimi   0x3e00,   /* 1.5                        */                                  \
464*f5c631daSSadaf Ebrahimi   0x4900,   /* 10                         */                                  \
465*f5c631daSSadaf Ebrahimi   0x7bff,   /* The largest finite value.  */                                  \
466*f5c631daSSadaf Ebrahimi                                                                               \
467*f5c631daSSadaf Ebrahimi   /* Infinity. */                                                             \
468*f5c631daSSadaf Ebrahimi   0x7c00,                                                                     \
469*f5c631daSSadaf Ebrahimi                                                                               \
470*f5c631daSSadaf Ebrahimi   /* NaNs. */                                                                 \
471*f5c631daSSadaf Ebrahimi   /*  - Quiet NaNs */                                                         \
472*f5c631daSSadaf Ebrahimi   0x7f23,                                                                     \
473*f5c631daSSadaf Ebrahimi   0x7e00,                                                                     \
474*f5c631daSSadaf Ebrahimi   /*  - Signalling NaNs */                                                    \
475*f5c631daSSadaf Ebrahimi   0x7d23,                                                                     \
476*f5c631daSSadaf Ebrahimi   0x7c01,                                                                     \
477*f5c631daSSadaf Ebrahimi                                                                               \
478*f5c631daSSadaf Ebrahimi   /* Subnormals. */                                                           \
479*f5c631daSSadaf Ebrahimi   /*  - A recognisable bit pattern. */                                        \
480*f5c631daSSadaf Ebrahimi   0x0012,                                                                     \
481*f5c631daSSadaf Ebrahimi   /*  - The largest subnormal value. */                                       \
482*f5c631daSSadaf Ebrahimi   0x03ff,                                                                     \
483*f5c631daSSadaf Ebrahimi   /*  - The smallest subnormal value. */                                      \
484*f5c631daSSadaf Ebrahimi   0x0001,                                                                     \
485*f5c631daSSadaf Ebrahimi                                                                               \
486*f5c631daSSadaf Ebrahimi   /* The same values again, but negated. */                                   \
487*f5c631daSSadaf Ebrahimi   0x8000,                                                                     \
488*f5c631daSSadaf Ebrahimi   0x8400,                                                                     \
489*f5c631daSSadaf Ebrahimi   0xb7ff,                                                                     \
490*f5c631daSSadaf Ebrahimi   0xb800,                                                                     \
491*f5c631daSSadaf Ebrahimi   0xb801,                                                                     \
492*f5c631daSSadaf Ebrahimi   0xbbff,                                                                     \
493*f5c631daSSadaf Ebrahimi   0xbc00,                                                                     \
494*f5c631daSSadaf Ebrahimi   0xbc01,                                                                     \
495*f5c631daSSadaf Ebrahimi   0xbe00,                                                                     \
496*f5c631daSSadaf Ebrahimi   0xc900,                                                                     \
497*f5c631daSSadaf Ebrahimi   0xfbff,                                                                     \
498*f5c631daSSadaf Ebrahimi   0xfc00,                                                                     \
499*f5c631daSSadaf Ebrahimi   0xff23,                                                                     \
500*f5c631daSSadaf Ebrahimi   0xfe00,                                                                     \
501*f5c631daSSadaf Ebrahimi   0xfd23,                                                                     \
502*f5c631daSSadaf Ebrahimi   0xfc01,                                                                     \
503*f5c631daSSadaf Ebrahimi   0x8012,                                                                     \
504*f5c631daSSadaf Ebrahimi   0x83ff,                                                                     \
505*f5c631daSSadaf Ebrahimi   0x8001,
506*f5c631daSSadaf Ebrahimi 
507*f5c631daSSadaf Ebrahimi 
508*f5c631daSSadaf Ebrahimi // Extra inputs. Passing these to 3- or 2-op instructions makes the trace file
509*f5c631daSSadaf Ebrahimi // very large, so these should only be used with 1-op instructions. The largest
510*f5c631daSSadaf Ebrahimi // normal FP16 value is 65504 which won't overflow int32_t or int64_t, so we
511*f5c631daSSadaf Ebrahimi // don't test any cases like that.
512*f5c631daSSadaf Ebrahimi #define INPUT_FLOAT16_CONVERSIONS                                             \
513*f5c631daSSadaf Ebrahimi   /* Values relevant for conversions to integers (frint).           */        \
514*f5c631daSSadaf Ebrahimi   /*  - The lowest-order mantissa bit has value 1.                  */        \
515*f5c631daSSadaf Ebrahimi   0x6400,                                                                     \
516*f5c631daSSadaf Ebrahimi   0x6401,                                                                     \
517*f5c631daSSadaf Ebrahimi   0x6402,                                                                     \
518*f5c631daSSadaf Ebrahimi   0x6403,                                                                     \
519*f5c631daSSadaf Ebrahimi   0x6543,                                                                     \
520*f5c631daSSadaf Ebrahimi   0x67fc,                                                                     \
521*f5c631daSSadaf Ebrahimi   0x67fd,                                                                     \
522*f5c631daSSadaf Ebrahimi   0x67fe,                                                                     \
523*f5c631daSSadaf Ebrahimi   0x67ff,                                                                     \
524*f5c631daSSadaf Ebrahimi   /*  - The lowest-order mantissa bit has value 0.5.                */        \
525*f5c631daSSadaf Ebrahimi   0x6000,                                                                     \
526*f5c631daSSadaf Ebrahimi   0x6001,                                                                     \
527*f5c631daSSadaf Ebrahimi   0x6002,                                                                     \
528*f5c631daSSadaf Ebrahimi   0x6003,                                                                     \
529*f5c631daSSadaf Ebrahimi   0x6321,                                                                     \
530*f5c631daSSadaf Ebrahimi   0x63fc,                                                                     \
531*f5c631daSSadaf Ebrahimi   0x63fd,                                                                     \
532*f5c631daSSadaf Ebrahimi   0x63fe,                                                                     \
533*f5c631daSSadaf Ebrahimi   0x63ff,                                                                     \
534*f5c631daSSadaf Ebrahimi   /*  - The lowest-order mantissa bit has value 0.25.               */        \
535*f5c631daSSadaf Ebrahimi   0x5c00,                                                                     \
536*f5c631daSSadaf Ebrahimi   0x5c01,                                                                     \
537*f5c631daSSadaf Ebrahimi   0x5c02,                                                                     \
538*f5c631daSSadaf Ebrahimi   0x5c03,                                                                     \
539*f5c631daSSadaf Ebrahimi   0x5d32,                                                                     \
540*f5c631daSSadaf Ebrahimi   0x5ffc,                                                                     \
541*f5c631daSSadaf Ebrahimi   0x5ffd,                                                                     \
542*f5c631daSSadaf Ebrahimi   0x5ffe,                                                                     \
543*f5c631daSSadaf Ebrahimi   0x5fff,                                                                     \
544*f5c631daSSadaf Ebrahimi                                                                               \
545*f5c631daSSadaf Ebrahimi   /* The same values again, but negated. */                                   \
546*f5c631daSSadaf Ebrahimi   0xe400,                                                                     \
547*f5c631daSSadaf Ebrahimi   0xe401,                                                                     \
548*f5c631daSSadaf Ebrahimi   0xe402,                                                                     \
549*f5c631daSSadaf Ebrahimi   0xe403,                                                                     \
550*f5c631daSSadaf Ebrahimi   0xe543,                                                                     \
551*f5c631daSSadaf Ebrahimi   0xe7fc,                                                                     \
552*f5c631daSSadaf Ebrahimi   0xe7fd,                                                                     \
553*f5c631daSSadaf Ebrahimi   0xe7fe,                                                                     \
554*f5c631daSSadaf Ebrahimi   0xe7ff,                                                                     \
555*f5c631daSSadaf Ebrahimi   0xe000,                                                                     \
556*f5c631daSSadaf Ebrahimi   0xe001,                                                                     \
557*f5c631daSSadaf Ebrahimi   0xe002,                                                                     \
558*f5c631daSSadaf Ebrahimi   0xe003,                                                                     \
559*f5c631daSSadaf Ebrahimi   0xe321,                                                                     \
560*f5c631daSSadaf Ebrahimi   0xe3fc,                                                                     \
561*f5c631daSSadaf Ebrahimi   0xe3fd,                                                                     \
562*f5c631daSSadaf Ebrahimi   0xe3fe,                                                                     \
563*f5c631daSSadaf Ebrahimi   0xe3ff,                                                                     \
564*f5c631daSSadaf Ebrahimi   0xdc00,                                                                     \
565*f5c631daSSadaf Ebrahimi   0xdc01,                                                                     \
566*f5c631daSSadaf Ebrahimi   0xdc02,                                                                     \
567*f5c631daSSadaf Ebrahimi   0xdc03,                                                                     \
568*f5c631daSSadaf Ebrahimi   0xdd32,                                                                     \
569*f5c631daSSadaf Ebrahimi   0xdffc,                                                                     \
570*f5c631daSSadaf Ebrahimi   0xdffd,                                                                     \
571*f5c631daSSadaf Ebrahimi   0xdffe,                                                                     \
572*f5c631daSSadaf Ebrahimi   0xdfff,                                                                     \
573*f5c631daSSadaf Ebrahimi                                                                               \
574*f5c631daSSadaf Ebrahimi   /* Some more NaN values. */                                                 \
575*f5c631daSSadaf Ebrahimi   0x7c7f,                                                                     \
576*f5c631daSSadaf Ebrahimi   0x7e91,                                                                     \
577*f5c631daSSadaf Ebrahimi   0x7e00,                                                                     \
578*f5c631daSSadaf Ebrahimi   0x7c91,                                                                     \
579*f5c631daSSadaf Ebrahimi   0xfc7f,                                                                     \
580*f5c631daSSadaf Ebrahimi   0xfe91,                                                                     \
581*f5c631daSSadaf Ebrahimi   0xfe00,                                                                     \
582*f5c631daSSadaf Ebrahimi   0xfc91,                                                                     \
583*f5c631daSSadaf Ebrahimi   0xffff,
584*f5c631daSSadaf Ebrahimi 
585*f5c631daSSadaf Ebrahimi #define INPUT_16BITS_FIXEDPOINT_CONVERSIONS                                   \
586*f5c631daSSadaf Ebrahimi   0x0000,                                                                     \
587*f5c631daSSadaf Ebrahimi   0x0001,                                                                     \
588*f5c631daSSadaf Ebrahimi   0x0400,                                                                     \
589*f5c631daSSadaf Ebrahimi   0x0401,                                                                     \
590*f5c631daSSadaf Ebrahimi   0x0476,                                                                     \
591*f5c631daSSadaf Ebrahimi   0x0800,                                                                     \
592*f5c631daSSadaf Ebrahimi   0x0801,                                                                     \
593*f5c631daSSadaf Ebrahimi   0x0c00,                                                                     \
594*f5c631daSSadaf Ebrahimi   0x0c01,                                                                     \
595*f5c631daSSadaf Ebrahimi   0x1000,                                                                     \
596*f5c631daSSadaf Ebrahimi   0x1001,                                                                     \
597*f5c631daSSadaf Ebrahimi   0x1400,                                                                     \
598*f5c631daSSadaf Ebrahimi   0x1401,                                                                     \
599*f5c631daSSadaf Ebrahimi   0x1800,                                                                     \
600*f5c631daSSadaf Ebrahimi   0x1c00,                                                                     \
601*f5c631daSSadaf Ebrahimi   0x7f80,                                                                     \
602*f5c631daSSadaf Ebrahimi   0x7fc0,                                                                     \
603*f5c631daSSadaf Ebrahimi   0x7fff,                                                                     \
604*f5c631daSSadaf Ebrahimi                                                                               \
605*f5c631daSSadaf Ebrahimi   /* The same values again, but negated. */                                   \
606*f5c631daSSadaf Ebrahimi   0x8000,                                                                     \
607*f5c631daSSadaf Ebrahimi   0x8001,                                                                     \
608*f5c631daSSadaf Ebrahimi   0x8400,                                                                     \
609*f5c631daSSadaf Ebrahimi   0x8401,                                                                     \
610*f5c631daSSadaf Ebrahimi   0x8476,                                                                     \
611*f5c631daSSadaf Ebrahimi   0x8800,                                                                     \
612*f5c631daSSadaf Ebrahimi   0x8801,                                                                     \
613*f5c631daSSadaf Ebrahimi   0x8c00,                                                                     \
614*f5c631daSSadaf Ebrahimi   0x8c01,                                                                     \
615*f5c631daSSadaf Ebrahimi   0x9000,                                                                     \
616*f5c631daSSadaf Ebrahimi   0x9001,                                                                     \
617*f5c631daSSadaf Ebrahimi   0x9400,                                                                     \
618*f5c631daSSadaf Ebrahimi   0x9401,                                                                     \
619*f5c631daSSadaf Ebrahimi   0x9800,                                                                     \
620*f5c631daSSadaf Ebrahimi   0x9c00,                                                                     \
621*f5c631daSSadaf Ebrahimi   0xff80,                                                                     \
622*f5c631daSSadaf Ebrahimi   0xffc0,                                                                     \
623*f5c631daSSadaf Ebrahimi   0xffff
624*f5c631daSSadaf Ebrahimi 
625*f5c631daSSadaf Ebrahimi #define INPUT_32BITS_FIXEDPOINT_CONVERSIONS                                   \
626*f5c631daSSadaf Ebrahimi   0x00000000,                                                                 \
627*f5c631daSSadaf Ebrahimi   0x00000001,                                                                 \
628*f5c631daSSadaf Ebrahimi   0x00800000,                                                                 \
629*f5c631daSSadaf Ebrahimi   0x00800001,                                                                 \
630*f5c631daSSadaf Ebrahimi   0x00876543,                                                                 \
631*f5c631daSSadaf Ebrahimi   0x01000000,                                                                 \
632*f5c631daSSadaf Ebrahimi   0x01000001,                                                                 \
633*f5c631daSSadaf Ebrahimi   0x01800000,                                                                 \
634*f5c631daSSadaf Ebrahimi   0x01800001,                                                                 \
635*f5c631daSSadaf Ebrahimi   0x02000000,                                                                 \
636*f5c631daSSadaf Ebrahimi   0x02000001,                                                                 \
637*f5c631daSSadaf Ebrahimi   0x02800000,                                                                 \
638*f5c631daSSadaf Ebrahimi   0x02800001,                                                                 \
639*f5c631daSSadaf Ebrahimi   0x03000000,                                                                 \
640*f5c631daSSadaf Ebrahimi   0x40000000,                                                                 \
641*f5c631daSSadaf Ebrahimi   0x7fffff80,                                                                 \
642*f5c631daSSadaf Ebrahimi   0x7fffffc0,                                                                 \
643*f5c631daSSadaf Ebrahimi   0x7fffffff,                                                                 \
644*f5c631daSSadaf Ebrahimi   0x80000000,                                                                 \
645*f5c631daSSadaf Ebrahimi   0x80000100,                                                                 \
646*f5c631daSSadaf Ebrahimi   0xffffff00,                                                                 \
647*f5c631daSSadaf Ebrahimi   0xffffff80,                                                                 \
648*f5c631daSSadaf Ebrahimi   0xffffffff,                                                                 \
649*f5c631daSSadaf Ebrahimi   0xffffffff
650*f5c631daSSadaf Ebrahimi 
651*f5c631daSSadaf Ebrahimi #define INPUT_64BITS_FIXEDPOINT_CONVERSIONS                                   \
652*f5c631daSSadaf Ebrahimi   0x0000000000000000,                                                         \
653*f5c631daSSadaf Ebrahimi   0x0000000000000001,                                                         \
654*f5c631daSSadaf Ebrahimi   0x0000000040000000,                                                         \
655*f5c631daSSadaf Ebrahimi   0x0000000100000000,                                                         \
656*f5c631daSSadaf Ebrahimi   0x4000000000000000,                                                         \
657*f5c631daSSadaf Ebrahimi   0x4000000000000400,                                                         \
658*f5c631daSSadaf Ebrahimi   0x000000007fffffff,                                                         \
659*f5c631daSSadaf Ebrahimi   0x00000000ffffffff,                                                         \
660*f5c631daSSadaf Ebrahimi   0x0000000080000000,                                                         \
661*f5c631daSSadaf Ebrahimi   0x0000000080000001,                                                         \
662*f5c631daSSadaf Ebrahimi   0x7ffffffffffffc00,                                                         \
663*f5c631daSSadaf Ebrahimi   0x0123456789abcde0,                                                         \
664*f5c631daSSadaf Ebrahimi   0x0000000012345678,                                                         \
665*f5c631daSSadaf Ebrahimi   0xffffffffc0000000,                                                         \
666*f5c631daSSadaf Ebrahimi   0xffffffff00000000,                                                         \
667*f5c631daSSadaf Ebrahimi   0xc000000000000000,                                                         \
668*f5c631daSSadaf Ebrahimi   0x1000000000000000,                                                         \
669*f5c631daSSadaf Ebrahimi   0x1000000000000001,                                                         \
670*f5c631daSSadaf Ebrahimi   0x1000000000000080,                                                         \
671*f5c631daSSadaf Ebrahimi   0x1000000000000081,                                                         \
672*f5c631daSSadaf Ebrahimi   0x1000000000000100,                                                         \
673*f5c631daSSadaf Ebrahimi   0x1000000000000101,                                                         \
674*f5c631daSSadaf Ebrahimi   0x1000000000000180,                                                         \
675*f5c631daSSadaf Ebrahimi   0x1000000000000181,                                                         \
676*f5c631daSSadaf Ebrahimi   0x1000000000000200,                                                         \
677*f5c631daSSadaf Ebrahimi   0x1000000000000201,                                                         \
678*f5c631daSSadaf Ebrahimi   0x1000000000000280,                                                         \
679*f5c631daSSadaf Ebrahimi   0x1000000000000281,                                                         \
680*f5c631daSSadaf Ebrahimi   0x1000000000000300,                                                         \
681*f5c631daSSadaf Ebrahimi   0x8000000000000000,                                                         \
682*f5c631daSSadaf Ebrahimi   0x8000000000000001,                                                         \
683*f5c631daSSadaf Ebrahimi   0x8000000000000200,                                                         \
684*f5c631daSSadaf Ebrahimi   0x8000000000000201,                                                         \
685*f5c631daSSadaf Ebrahimi   0x8000000000000400,                                                         \
686*f5c631daSSadaf Ebrahimi   0x8000000000000401,                                                         \
687*f5c631daSSadaf Ebrahimi   0x8000000000000600,                                                         \
688*f5c631daSSadaf Ebrahimi   0x8000000000000601,                                                         \
689*f5c631daSSadaf Ebrahimi   0x8000000000000800,                                                         \
690*f5c631daSSadaf Ebrahimi   0x8000000000000801,                                                         \
691*f5c631daSSadaf Ebrahimi   0x8000000000000a00,                                                         \
692*f5c631daSSadaf Ebrahimi   0x8000000000000a01,                                                         \
693*f5c631daSSadaf Ebrahimi   0x8000000000000c00,                                                         \
694*f5c631daSSadaf Ebrahimi   0x7ffffffffffffe00,                                                         \
695*f5c631daSSadaf Ebrahimi   0x7fffffffffffffff,                                                         \
696*f5c631daSSadaf Ebrahimi   0xfffffffffffffc00,                                                         \
697*f5c631daSSadaf Ebrahimi   0xffffffffffffffff
698*f5c631daSSadaf Ebrahimi 
699*f5c631daSSadaf Ebrahimi // Some useful sets of values for testing vector SIMD operations.
700*f5c631daSSadaf Ebrahimi #define INPUT_8BITS_IMM_LANECOUNT_FROMZERO                                    \
701*f5c631daSSadaf Ebrahimi   0x00,                                                                       \
702*f5c631daSSadaf Ebrahimi   0x01,                                                                       \
703*f5c631daSSadaf Ebrahimi   0x02,                                                                       \
704*f5c631daSSadaf Ebrahimi   0x03,                                                                       \
705*f5c631daSSadaf Ebrahimi   0x04,                                                                       \
706*f5c631daSSadaf Ebrahimi   0x05,                                                                       \
707*f5c631daSSadaf Ebrahimi   0x06,                                                                       \
708*f5c631daSSadaf Ebrahimi   0x07,                                                                       \
709*f5c631daSSadaf Ebrahimi   0x08,                                                                       \
710*f5c631daSSadaf Ebrahimi   0x09,                                                                       \
711*f5c631daSSadaf Ebrahimi   0x0a,                                                                       \
712*f5c631daSSadaf Ebrahimi   0x0b,                                                                       \
713*f5c631daSSadaf Ebrahimi   0x0c,                                                                       \
714*f5c631daSSadaf Ebrahimi   0x0d,                                                                       \
715*f5c631daSSadaf Ebrahimi   0x0e,                                                                       \
716*f5c631daSSadaf Ebrahimi   0x0f
717*f5c631daSSadaf Ebrahimi 
718*f5c631daSSadaf Ebrahimi #define INPUT_16BITS_IMM_LANECOUNT_FROMZERO                                    \
719*f5c631daSSadaf Ebrahimi   0x00,                                                                       \
720*f5c631daSSadaf Ebrahimi   0x01,                                                                       \
721*f5c631daSSadaf Ebrahimi   0x02,                                                                       \
722*f5c631daSSadaf Ebrahimi   0x03,                                                                       \
723*f5c631daSSadaf Ebrahimi   0x04,                                                                       \
724*f5c631daSSadaf Ebrahimi   0x05,                                                                       \
725*f5c631daSSadaf Ebrahimi   0x06,                                                                       \
726*f5c631daSSadaf Ebrahimi   0x07
727*f5c631daSSadaf Ebrahimi 
728*f5c631daSSadaf Ebrahimi #define INPUT_32BITS_IMM_LANECOUNT_FROMZERO                                    \
729*f5c631daSSadaf Ebrahimi   0x00,                                                                       \
730*f5c631daSSadaf Ebrahimi   0x01,                                                                       \
731*f5c631daSSadaf Ebrahimi   0x02,                                                                       \
732*f5c631daSSadaf Ebrahimi   0x03
733*f5c631daSSadaf Ebrahimi 
734*f5c631daSSadaf Ebrahimi #define INPUT_64BITS_IMM_LANECOUNT_FROMZERO                                    \
735*f5c631daSSadaf Ebrahimi   0x00,                                                                       \
736*f5c631daSSadaf Ebrahimi   0x01
737*f5c631daSSadaf Ebrahimi 
738*f5c631daSSadaf Ebrahimi #define INPUT_8BITS_IMM_TYPEWIDTH_BASE                                        \
739*f5c631daSSadaf Ebrahimi   0x01,                                                                       \
740*f5c631daSSadaf Ebrahimi   0x02,                                                                       \
741*f5c631daSSadaf Ebrahimi   0x03,                                                                       \
742*f5c631daSSadaf Ebrahimi   0x04,                                                                       \
743*f5c631daSSadaf Ebrahimi   0x05,                                                                       \
744*f5c631daSSadaf Ebrahimi   0x06,                                                                       \
745*f5c631daSSadaf Ebrahimi   0x07
746*f5c631daSSadaf Ebrahimi 
747*f5c631daSSadaf Ebrahimi #define INPUT_16BITS_IMM_TYPEWIDTH_BASE                                       \
748*f5c631daSSadaf Ebrahimi   INPUT_8BITS_IMM_TYPEWIDTH_BASE,                                             \
749*f5c631daSSadaf Ebrahimi   0x08,                                                                       \
750*f5c631daSSadaf Ebrahimi   0x09,                                                                       \
751*f5c631daSSadaf Ebrahimi   0x0a,                                                                       \
752*f5c631daSSadaf Ebrahimi   0x0b,                                                                       \
753*f5c631daSSadaf Ebrahimi   0x0c,                                                                       \
754*f5c631daSSadaf Ebrahimi   0x0d,                                                                       \
755*f5c631daSSadaf Ebrahimi   0x0e,                                                                       \
756*f5c631daSSadaf Ebrahimi   0x0f
757*f5c631daSSadaf Ebrahimi 
758*f5c631daSSadaf Ebrahimi #define INPUT_32BITS_IMM_TYPEWIDTH_BASE                                       \
759*f5c631daSSadaf Ebrahimi   INPUT_16BITS_IMM_TYPEWIDTH_BASE,                                            \
760*f5c631daSSadaf Ebrahimi   0x10,                                                                       \
761*f5c631daSSadaf Ebrahimi   0x11,                                                                       \
762*f5c631daSSadaf Ebrahimi   0x12,                                                                       \
763*f5c631daSSadaf Ebrahimi   0x13,                                                                       \
764*f5c631daSSadaf Ebrahimi   0x14,                                                                       \
765*f5c631daSSadaf Ebrahimi   0x15,                                                                       \
766*f5c631daSSadaf Ebrahimi   0x16,                                                                       \
767*f5c631daSSadaf Ebrahimi   0x17,                                                                       \
768*f5c631daSSadaf Ebrahimi   0x18,                                                                       \
769*f5c631daSSadaf Ebrahimi   0x19,                                                                       \
770*f5c631daSSadaf Ebrahimi   0x1a,                                                                       \
771*f5c631daSSadaf Ebrahimi   0x1b,                                                                       \
772*f5c631daSSadaf Ebrahimi   0x1c,                                                                       \
773*f5c631daSSadaf Ebrahimi   0x1d,                                                                       \
774*f5c631daSSadaf Ebrahimi   0x1e,                                                                       \
775*f5c631daSSadaf Ebrahimi   0x1f
776*f5c631daSSadaf Ebrahimi 
777*f5c631daSSadaf Ebrahimi #define INPUT_64BITS_IMM_TYPEWIDTH_BASE                                       \
778*f5c631daSSadaf Ebrahimi   INPUT_32BITS_IMM_TYPEWIDTH_BASE,                                            \
779*f5c631daSSadaf Ebrahimi   0x20,                                                                       \
780*f5c631daSSadaf Ebrahimi   0x21,                                                                       \
781*f5c631daSSadaf Ebrahimi   0x22,                                                                       \
782*f5c631daSSadaf Ebrahimi   0x23,                                                                       \
783*f5c631daSSadaf Ebrahimi   0x24,                                                                       \
784*f5c631daSSadaf Ebrahimi   0x25,                                                                       \
785*f5c631daSSadaf Ebrahimi   0x26,                                                                       \
786*f5c631daSSadaf Ebrahimi   0x27,                                                                       \
787*f5c631daSSadaf Ebrahimi   0x28,                                                                       \
788*f5c631daSSadaf Ebrahimi   0x29,                                                                       \
789*f5c631daSSadaf Ebrahimi   0x2a,                                                                       \
790*f5c631daSSadaf Ebrahimi   0x2b,                                                                       \
791*f5c631daSSadaf Ebrahimi   0x2c,                                                                       \
792*f5c631daSSadaf Ebrahimi   0x2d,                                                                       \
793*f5c631daSSadaf Ebrahimi   0x2e,                                                                       \
794*f5c631daSSadaf Ebrahimi   0x2f,                                                                       \
795*f5c631daSSadaf Ebrahimi   0x30,                                                                       \
796*f5c631daSSadaf Ebrahimi   0x31,                                                                       \
797*f5c631daSSadaf Ebrahimi   0x32,                                                                       \
798*f5c631daSSadaf Ebrahimi   0x33,                                                                       \
799*f5c631daSSadaf Ebrahimi   0x34,                                                                       \
800*f5c631daSSadaf Ebrahimi   0x35,                                                                       \
801*f5c631daSSadaf Ebrahimi   0x36,                                                                       \
802*f5c631daSSadaf Ebrahimi   0x37,                                                                       \
803*f5c631daSSadaf Ebrahimi   0x38,                                                                       \
804*f5c631daSSadaf Ebrahimi   0x39,                                                                       \
805*f5c631daSSadaf Ebrahimi   0x3a,                                                                       \
806*f5c631daSSadaf Ebrahimi   0x3b,                                                                       \
807*f5c631daSSadaf Ebrahimi   0x3c,                                                                       \
808*f5c631daSSadaf Ebrahimi   0x3d,                                                                       \
809*f5c631daSSadaf Ebrahimi   0x3e,                                                                       \
810*f5c631daSSadaf Ebrahimi   0x3f
811*f5c631daSSadaf Ebrahimi 
812*f5c631daSSadaf Ebrahimi #define INPUT_8BITS_IMM_TYPEWIDTH                                             \
813*f5c631daSSadaf Ebrahimi   INPUT_8BITS_IMM_TYPEWIDTH_BASE,                                             \
814*f5c631daSSadaf Ebrahimi   0x08
815*f5c631daSSadaf Ebrahimi 
816*f5c631daSSadaf Ebrahimi #define INPUT_16BITS_IMM_TYPEWIDTH                                            \
817*f5c631daSSadaf Ebrahimi   INPUT_16BITS_IMM_TYPEWIDTH_BASE,                                            \
818*f5c631daSSadaf Ebrahimi   0x10
819*f5c631daSSadaf Ebrahimi 
820*f5c631daSSadaf Ebrahimi #define INPUT_32BITS_IMM_TYPEWIDTH                                            \
821*f5c631daSSadaf Ebrahimi   INPUT_32BITS_IMM_TYPEWIDTH_BASE,                                            \
822*f5c631daSSadaf Ebrahimi   0x20
823*f5c631daSSadaf Ebrahimi 
824*f5c631daSSadaf Ebrahimi #define INPUT_64BITS_IMM_TYPEWIDTH                                            \
825*f5c631daSSadaf Ebrahimi   INPUT_64BITS_IMM_TYPEWIDTH_BASE,                                            \
826*f5c631daSSadaf Ebrahimi   0x40
827*f5c631daSSadaf Ebrahimi 
828*f5c631daSSadaf Ebrahimi #define INPUT_8BITS_IMM_TYPEWIDTH_FROMZERO                                    \
829*f5c631daSSadaf Ebrahimi   0x00,                                                                       \
830*f5c631daSSadaf Ebrahimi   INPUT_8BITS_IMM_TYPEWIDTH_BASE
831*f5c631daSSadaf Ebrahimi 
832*f5c631daSSadaf Ebrahimi #define INPUT_16BITS_IMM_TYPEWIDTH_FROMZERO                                   \
833*f5c631daSSadaf Ebrahimi   0x00,                                                                       \
834*f5c631daSSadaf Ebrahimi   INPUT_16BITS_IMM_TYPEWIDTH_BASE
835*f5c631daSSadaf Ebrahimi 
836*f5c631daSSadaf Ebrahimi #define INPUT_32BITS_IMM_TYPEWIDTH_FROMZERO                                   \
837*f5c631daSSadaf Ebrahimi   0x00,                                                                       \
838*f5c631daSSadaf Ebrahimi   INPUT_32BITS_IMM_TYPEWIDTH_BASE
839*f5c631daSSadaf Ebrahimi 
840*f5c631daSSadaf Ebrahimi #define INPUT_64BITS_IMM_TYPEWIDTH_FROMZERO                                   \
841*f5c631daSSadaf Ebrahimi   0x00,                                                                       \
842*f5c631daSSadaf Ebrahimi   INPUT_64BITS_IMM_TYPEWIDTH_BASE
843*f5c631daSSadaf Ebrahimi 
844*f5c631daSSadaf Ebrahimi #define INPUT_16BITS_IMM_TYPEWIDTH_FROMZERO_TOWIDTH                           \
845*f5c631daSSadaf Ebrahimi   0x00,                                                                       \
846*f5c631daSSadaf Ebrahimi   INPUT_16BITS_IMM_TYPEWIDTH_BASE,                                            \
847*f5c631daSSadaf Ebrahimi   0x10
848*f5c631daSSadaf Ebrahimi 
849*f5c631daSSadaf Ebrahimi #define INPUT_32BITS_IMM_TYPEWIDTH_FROMZERO_TOWIDTH                           \
850*f5c631daSSadaf Ebrahimi   0x00,                                                                       \
851*f5c631daSSadaf Ebrahimi   INPUT_32BITS_IMM_TYPEWIDTH_BASE,                                            \
852*f5c631daSSadaf Ebrahimi   0x20
853*f5c631daSSadaf Ebrahimi 
854*f5c631daSSadaf Ebrahimi #define INPUT_64BITS_IMM_TYPEWIDTH_FROMZERO_TOWIDTH                           \
855*f5c631daSSadaf Ebrahimi   0x00,                                                                       \
856*f5c631daSSadaf Ebrahimi   INPUT_64BITS_IMM_TYPEWIDTH_BASE,                                            \
857*f5c631daSSadaf Ebrahimi   0x40
858*f5c631daSSadaf Ebrahimi 
859*f5c631daSSadaf Ebrahimi #define INPUT_8BITS_BASIC                                                     \
860*f5c631daSSadaf Ebrahimi   0x00,                                                                       \
861*f5c631daSSadaf Ebrahimi   0x01,                                                                       \
862*f5c631daSSadaf Ebrahimi   0x02,                                                                       \
863*f5c631daSSadaf Ebrahimi   0x08,                                                                       \
864*f5c631daSSadaf Ebrahimi   0x33,                                                                       \
865*f5c631daSSadaf Ebrahimi   0x55,                                                                       \
866*f5c631daSSadaf Ebrahimi   0x7d,                                                                       \
867*f5c631daSSadaf Ebrahimi   0x7e,                                                                       \
868*f5c631daSSadaf Ebrahimi   0x7f,                                                                       \
869*f5c631daSSadaf Ebrahimi   0x80,                                                                       \
870*f5c631daSSadaf Ebrahimi   0x81,                                                                       \
871*f5c631daSSadaf Ebrahimi   0x82,                                                                       \
872*f5c631daSSadaf Ebrahimi   0x83,                                                                       \
873*f5c631daSSadaf Ebrahimi   0xaa,                                                                       \
874*f5c631daSSadaf Ebrahimi   0xcc,                                                                       \
875*f5c631daSSadaf Ebrahimi   0xf8,                                                                       \
876*f5c631daSSadaf Ebrahimi   0xfd,                                                                       \
877*f5c631daSSadaf Ebrahimi   0xfe,                                                                       \
878*f5c631daSSadaf Ebrahimi   0xff
879*f5c631daSSadaf Ebrahimi 
880*f5c631daSSadaf Ebrahimi // Basic values for vector SIMD operations of types 4H or 8H.
881*f5c631daSSadaf Ebrahimi #define INPUT_16BITS_BASIC                                                    \
882*f5c631daSSadaf Ebrahimi   0x0000,                                                                     \
883*f5c631daSSadaf Ebrahimi   0x0001,                                                                     \
884*f5c631daSSadaf Ebrahimi   0x0002,                                                                     \
885*f5c631daSSadaf Ebrahimi   0x0010,                                                                     \
886*f5c631daSSadaf Ebrahimi   0x007d,                                                                     \
887*f5c631daSSadaf Ebrahimi   0x007e,                                                                     \
888*f5c631daSSadaf Ebrahimi   0x007f,                                                                     \
889*f5c631daSSadaf Ebrahimi   0x3333,                                                                     \
890*f5c631daSSadaf Ebrahimi   0x5555,                                                                     \
891*f5c631daSSadaf Ebrahimi   0x7ffd,                                                                     \
892*f5c631daSSadaf Ebrahimi   0x7ffe,                                                                     \
893*f5c631daSSadaf Ebrahimi   0x7fff,                                                                     \
894*f5c631daSSadaf Ebrahimi   0x8000,                                                                     \
895*f5c631daSSadaf Ebrahimi   0x8001,                                                                     \
896*f5c631daSSadaf Ebrahimi   0xaaaa,                                                                     \
897*f5c631daSSadaf Ebrahimi   0xcccc,                                                                     \
898*f5c631daSSadaf Ebrahimi   0xff80,                                                                     \
899*f5c631daSSadaf Ebrahimi   0xff81,                                                                     \
900*f5c631daSSadaf Ebrahimi   0xff82,                                                                     \
901*f5c631daSSadaf Ebrahimi   0xff83,                                                                     \
902*f5c631daSSadaf Ebrahimi   0xfff0,                                                                     \
903*f5c631daSSadaf Ebrahimi   0xfffd,                                                                     \
904*f5c631daSSadaf Ebrahimi   0xfffe,                                                                     \
905*f5c631daSSadaf Ebrahimi   0xffff
906*f5c631daSSadaf Ebrahimi 
907*f5c631daSSadaf Ebrahimi // Basic values for vector SIMD operations of types 2S or 4S.
908*f5c631daSSadaf Ebrahimi #define INPUT_32BITS_BASIC                                                    \
909*f5c631daSSadaf Ebrahimi   0x00000000,                                                                 \
910*f5c631daSSadaf Ebrahimi   0x00000001,                                                                 \
911*f5c631daSSadaf Ebrahimi   0x00000002,                                                                 \
912*f5c631daSSadaf Ebrahimi   0x00000020,                                                                 \
913*f5c631daSSadaf Ebrahimi   0x0000007d,                                                                 \
914*f5c631daSSadaf Ebrahimi   0x0000007e,                                                                 \
915*f5c631daSSadaf Ebrahimi   0x0000007f,                                                                 \
916*f5c631daSSadaf Ebrahimi   0x00007ffd,                                                                 \
917*f5c631daSSadaf Ebrahimi   0x00007ffe,                                                                 \
918*f5c631daSSadaf Ebrahimi   0x00007fff,                                                                 \
919*f5c631daSSadaf Ebrahimi   0x33333333,                                                                 \
920*f5c631daSSadaf Ebrahimi   0x55555555,                                                                 \
921*f5c631daSSadaf Ebrahimi   0x7ffffffd,                                                                 \
922*f5c631daSSadaf Ebrahimi   0x7ffffffe,                                                                 \
923*f5c631daSSadaf Ebrahimi   0x7fffffff,                                                                 \
924*f5c631daSSadaf Ebrahimi   0x80000000,                                                                 \
925*f5c631daSSadaf Ebrahimi   0x80000001,                                                                 \
926*f5c631daSSadaf Ebrahimi   0xaaaaaaaa,                                                                 \
927*f5c631daSSadaf Ebrahimi   0xcccccccc,                                                                 \
928*f5c631daSSadaf Ebrahimi   0xffff8000,                                                                 \
929*f5c631daSSadaf Ebrahimi   0xffff8001,                                                                 \
930*f5c631daSSadaf Ebrahimi   0xffff8002,                                                                 \
931*f5c631daSSadaf Ebrahimi   0xffff8003,                                                                 \
932*f5c631daSSadaf Ebrahimi   0xffffff80,                                                                 \
933*f5c631daSSadaf Ebrahimi   0xffffff81,                                                                 \
934*f5c631daSSadaf Ebrahimi   0xffffff82,                                                                 \
935*f5c631daSSadaf Ebrahimi   0xffffff83,                                                                 \
936*f5c631daSSadaf Ebrahimi   0xffffffe0,                                                                 \
937*f5c631daSSadaf Ebrahimi   0xfffffffd,                                                                 \
938*f5c631daSSadaf Ebrahimi   0xfffffffe,                                                                 \
939*f5c631daSSadaf Ebrahimi   0xffffffff
940*f5c631daSSadaf Ebrahimi 
941*f5c631daSSadaf Ebrahimi // Basic values for vector SIMD operations of type 2D
942*f5c631daSSadaf Ebrahimi #define INPUT_64BITS_BASIC                                                    \
943*f5c631daSSadaf Ebrahimi   0x0000000000000000,                                                         \
944*f5c631daSSadaf Ebrahimi   0x0000000000000001,                                                         \
945*f5c631daSSadaf Ebrahimi   0x0000000000000002,                                                         \
946*f5c631daSSadaf Ebrahimi   0x0000000000000040,                                                         \
947*f5c631daSSadaf Ebrahimi   0x000000000000007d,                                                         \
948*f5c631daSSadaf Ebrahimi   0x000000000000007e,                                                         \
949*f5c631daSSadaf Ebrahimi   0x000000000000007f,                                                         \
950*f5c631daSSadaf Ebrahimi   0x0000000000007ffd,                                                         \
951*f5c631daSSadaf Ebrahimi   0x0000000000007ffe,                                                         \
952*f5c631daSSadaf Ebrahimi   0x0000000000007fff,                                                         \
953*f5c631daSSadaf Ebrahimi   0x000000007ffffffd,                                                         \
954*f5c631daSSadaf Ebrahimi   0x000000007ffffffe,                                                         \
955*f5c631daSSadaf Ebrahimi   0x000000007fffffff,                                                         \
956*f5c631daSSadaf Ebrahimi   0x3333333333333333,                                                         \
957*f5c631daSSadaf Ebrahimi   0x5555555555555555,                                                         \
958*f5c631daSSadaf Ebrahimi   0x7ffffffffffffffd,                                                         \
959*f5c631daSSadaf Ebrahimi   0x7ffffffffffffffe,                                                         \
960*f5c631daSSadaf Ebrahimi   0x7fffffffffffffff,                                                         \
961*f5c631daSSadaf Ebrahimi   0x8000000000000000,                                                         \
962*f5c631daSSadaf Ebrahimi   0x8000000000000001,                                                         \
963*f5c631daSSadaf Ebrahimi   0x8000000000000002,                                                         \
964*f5c631daSSadaf Ebrahimi   0x8000000000000003,                                                         \
965*f5c631daSSadaf Ebrahimi   0xaaaaaaaaaaaaaaaa,                                                         \
966*f5c631daSSadaf Ebrahimi   0xcccccccccccccccc,                                                         \
967*f5c631daSSadaf Ebrahimi   0xffffffff80000000,                                                         \
968*f5c631daSSadaf Ebrahimi   0xffffffff80000001,                                                         \
969*f5c631daSSadaf Ebrahimi   0xffffffff80000002,                                                         \
970*f5c631daSSadaf Ebrahimi   0xffffffff80000003,                                                         \
971*f5c631daSSadaf Ebrahimi   0xffffffffffff8000,                                                         \
972*f5c631daSSadaf Ebrahimi   0xffffffffffff8001,                                                         \
973*f5c631daSSadaf Ebrahimi   0xffffffffffff8002,                                                         \
974*f5c631daSSadaf Ebrahimi   0xffffffffffff8003,                                                         \
975*f5c631daSSadaf Ebrahimi   0xffffffffffffff80,                                                         \
976*f5c631daSSadaf Ebrahimi   0xffffffffffffff81,                                                         \
977*f5c631daSSadaf Ebrahimi   0xffffffffffffff82,                                                         \
978*f5c631daSSadaf Ebrahimi   0xffffffffffffff83,                                                         \
979*f5c631daSSadaf Ebrahimi   0xffffffffffffffc0,                                                         \
980*f5c631daSSadaf Ebrahimi   0xfffffffffffffffd,                                                         \
981*f5c631daSSadaf Ebrahimi   0xfffffffffffffffe,                                                         \
982*f5c631daSSadaf Ebrahimi   0xffffffffffffffff
983*f5c631daSSadaf Ebrahimi 
984*f5c631daSSadaf Ebrahimi // clang-format on
985*f5c631daSSadaf Ebrahimi 
986*f5c631daSSadaf Ebrahimi // For most 2- and 3-op instructions, use only basic inputs. Because every
987*f5c631daSSadaf Ebrahimi // combination is tested, the length of the output trace is very sensitive to
988*f5c631daSSadaf Ebrahimi // the length of this list.
989*f5c631daSSadaf Ebrahimi static const uint64_t kInputDoubleBasic[] = {INPUT_DOUBLE_BASIC};
990*f5c631daSSadaf Ebrahimi static const uint32_t kInputFloatBasic[] = {INPUT_FLOAT_BASIC};
991*f5c631daSSadaf Ebrahimi static const uint16_t kInputFloat16Basic[] = {INPUT_FLOAT16_BASIC};
992*f5c631daSSadaf Ebrahimi 
993*f5c631daSSadaf Ebrahimi // TODO: Define different values when the traces file is split.
994*f5c631daSSadaf Ebrahimi #define INPUT_DOUBLE_ACC_DESTINATION INPUT_DOUBLE_BASIC
995*f5c631daSSadaf Ebrahimi #define INPUT_FLOAT_ACC_DESTINATION INPUT_FLOAT_BASIC
996*f5c631daSSadaf Ebrahimi #define INPUT_FLOAT16_ACC_DESTINATION INPUT_FLOAT16_BASIC
997*f5c631daSSadaf Ebrahimi 
998*f5c631daSSadaf Ebrahimi static const uint64_t kInputDoubleAccDestination[] = {
999*f5c631daSSadaf Ebrahimi     INPUT_DOUBLE_ACC_DESTINATION};
1000*f5c631daSSadaf Ebrahimi 
1001*f5c631daSSadaf Ebrahimi static const uint32_t kInputFloatAccDestination[] = {
1002*f5c631daSSadaf Ebrahimi     INPUT_FLOAT_ACC_DESTINATION};
1003*f5c631daSSadaf Ebrahimi 
1004*f5c631daSSadaf Ebrahimi static const uint16_t kInputFloat16AccDestination[] = {
1005*f5c631daSSadaf Ebrahimi     INPUT_FLOAT16_ACC_DESTINATION};
1006*f5c631daSSadaf Ebrahimi 
1007*f5c631daSSadaf Ebrahimi // For conversions, include several extra inputs.
1008*f5c631daSSadaf Ebrahimi static const uint64_t kInputDoubleConversions[] = {
1009*f5c631daSSadaf Ebrahimi     INPUT_DOUBLE_BASIC INPUT_DOUBLE_CONVERSIONS};
1010*f5c631daSSadaf Ebrahimi 
1011*f5c631daSSadaf Ebrahimi static const uint32_t kInputFloatConversions[] = {
1012*f5c631daSSadaf Ebrahimi     INPUT_FLOAT_BASIC INPUT_FLOAT_CONVERSIONS};
1013*f5c631daSSadaf Ebrahimi 
1014*f5c631daSSadaf Ebrahimi static const uint64_t kInput64bitsFixedPointConversions[] =
1015*f5c631daSSadaf Ebrahimi     {INPUT_64BITS_BASIC, INPUT_64BITS_FIXEDPOINT_CONVERSIONS};
1016*f5c631daSSadaf Ebrahimi 
1017*f5c631daSSadaf Ebrahimi static const uint32_t kInput32bitsFixedPointConversions[] =
1018*f5c631daSSadaf Ebrahimi     {INPUT_32BITS_BASIC, INPUT_32BITS_FIXEDPOINT_CONVERSIONS};
1019*f5c631daSSadaf Ebrahimi 
1020*f5c631daSSadaf Ebrahimi static const uint16_t kInput16bitsFixedPointConversions[] =
1021*f5c631daSSadaf Ebrahimi     {INPUT_16BITS_BASIC, INPUT_16BITS_FIXEDPOINT_CONVERSIONS};
1022*f5c631daSSadaf Ebrahimi 
1023*f5c631daSSadaf Ebrahimi static const uint16_t kInputFloat16Conversions[] = {
1024*f5c631daSSadaf Ebrahimi     INPUT_FLOAT16_BASIC INPUT_FLOAT16_CONVERSIONS};
1025*f5c631daSSadaf Ebrahimi 
1026*f5c631daSSadaf Ebrahimi static const uint8_t kInput8bitsBasic[] = {INPUT_8BITS_BASIC};
1027*f5c631daSSadaf Ebrahimi 
1028*f5c631daSSadaf Ebrahimi static const uint16_t kInput16bitsBasic[] = {INPUT_16BITS_BASIC};
1029*f5c631daSSadaf Ebrahimi 
1030*f5c631daSSadaf Ebrahimi static const uint32_t kInput32bitsBasic[] = {INPUT_32BITS_BASIC};
1031*f5c631daSSadaf Ebrahimi 
1032*f5c631daSSadaf Ebrahimi static const uint64_t kInput64bitsBasic[] = {INPUT_64BITS_BASIC};
1033*f5c631daSSadaf Ebrahimi 
1034*f5c631daSSadaf Ebrahimi static const int kInput8bitsImmTypeWidth[] = {INPUT_8BITS_IMM_TYPEWIDTH};
1035*f5c631daSSadaf Ebrahimi 
1036*f5c631daSSadaf Ebrahimi static const int kInput16bitsImmTypeWidth[] = {INPUT_16BITS_IMM_TYPEWIDTH};
1037*f5c631daSSadaf Ebrahimi 
1038*f5c631daSSadaf Ebrahimi static const int kInput32bitsImmTypeWidth[] = {INPUT_32BITS_IMM_TYPEWIDTH};
1039*f5c631daSSadaf Ebrahimi 
1040*f5c631daSSadaf Ebrahimi static const int kInput64bitsImmTypeWidth[] = {INPUT_64BITS_IMM_TYPEWIDTH};
1041*f5c631daSSadaf Ebrahimi 
1042*f5c631daSSadaf Ebrahimi static const int kInput8bitsImmTypeWidthFromZero[] = {
1043*f5c631daSSadaf Ebrahimi     INPUT_8BITS_IMM_TYPEWIDTH_FROMZERO};
1044*f5c631daSSadaf Ebrahimi 
1045*f5c631daSSadaf Ebrahimi static const int kInput16bitsImmTypeWidthFromZero[] = {
1046*f5c631daSSadaf Ebrahimi     INPUT_16BITS_IMM_TYPEWIDTH_FROMZERO};
1047*f5c631daSSadaf Ebrahimi 
1048*f5c631daSSadaf Ebrahimi static const int kInput32bitsImmTypeWidthFromZero[] = {
1049*f5c631daSSadaf Ebrahimi     INPUT_32BITS_IMM_TYPEWIDTH_FROMZERO};
1050*f5c631daSSadaf Ebrahimi 
1051*f5c631daSSadaf Ebrahimi static const int kInput64bitsImmTypeWidthFromZero[] = {
1052*f5c631daSSadaf Ebrahimi     INPUT_64BITS_IMM_TYPEWIDTH_FROMZERO};
1053*f5c631daSSadaf Ebrahimi 
1054*f5c631daSSadaf Ebrahimi static const int kInput16bitsImmTypeWidthFromZeroToWidth[] = {
1055*f5c631daSSadaf Ebrahimi     INPUT_16BITS_IMM_TYPEWIDTH_FROMZERO_TOWIDTH};
1056*f5c631daSSadaf Ebrahimi 
1057*f5c631daSSadaf Ebrahimi static const int kInput32bitsImmTypeWidthFromZeroToWidth[] = {
1058*f5c631daSSadaf Ebrahimi     INPUT_32BITS_IMM_TYPEWIDTH_FROMZERO_TOWIDTH};
1059*f5c631daSSadaf Ebrahimi 
1060*f5c631daSSadaf Ebrahimi static const int kInput64bitsImmTypeWidthFromZeroToWidth[] = {
1061*f5c631daSSadaf Ebrahimi     INPUT_64BITS_IMM_TYPEWIDTH_FROMZERO_TOWIDTH};
1062*f5c631daSSadaf Ebrahimi 
1063*f5c631daSSadaf Ebrahimi // These immediate values are used only in 'shll{2}' tests.
1064*f5c631daSSadaf Ebrahimi static const int kInput8bitsImmSHLL[] = {8};
1065*f5c631daSSadaf Ebrahimi static const int kInput16bitsImmSHLL[] = {16};
1066*f5c631daSSadaf Ebrahimi static const int kInput32bitsImmSHLL[] = {32};
1067*f5c631daSSadaf Ebrahimi 
1068*f5c631daSSadaf Ebrahimi static const double kInputDoubleImmZero[] = {0.0};
1069*f5c631daSSadaf Ebrahimi 
1070*f5c631daSSadaf Ebrahimi static const int kInput8bitsImmZero[] = {0};
1071*f5c631daSSadaf Ebrahimi 
1072*f5c631daSSadaf Ebrahimi static const int kInput16bitsImmZero[] = {0};
1073*f5c631daSSadaf Ebrahimi 
1074*f5c631daSSadaf Ebrahimi static const int kInput32bitsImmZero[] = {0};
1075*f5c631daSSadaf Ebrahimi 
1076*f5c631daSSadaf Ebrahimi static const int kInput64bitsImmZero[] = {0};
1077*f5c631daSSadaf Ebrahimi 
1078*f5c631daSSadaf Ebrahimi static const int kInput8bitsImmLaneCountFromZero[] = {
1079*f5c631daSSadaf Ebrahimi     INPUT_8BITS_IMM_LANECOUNT_FROMZERO};
1080*f5c631daSSadaf Ebrahimi 
1081*f5c631daSSadaf Ebrahimi static const int kInput16bitsImmLaneCountFromZero[] = {
1082*f5c631daSSadaf Ebrahimi     INPUT_16BITS_IMM_LANECOUNT_FROMZERO};
1083*f5c631daSSadaf Ebrahimi 
1084*f5c631daSSadaf Ebrahimi static const int kInput32bitsImmLaneCountFromZero[] = {
1085*f5c631daSSadaf Ebrahimi     INPUT_32BITS_IMM_LANECOUNT_FROMZERO};
1086*f5c631daSSadaf Ebrahimi 
1087*f5c631daSSadaf Ebrahimi static const int kInput64bitsImmLaneCountFromZero[] = {
1088*f5c631daSSadaf Ebrahimi     INPUT_64BITS_IMM_LANECOUNT_FROMZERO};
1089*f5c631daSSadaf Ebrahimi 
1090*f5c631daSSadaf Ebrahimi // TODO: Define different values when the traces file is split.
1091*f5c631daSSadaf Ebrahimi #define INPUT_8BITS_ACC_DESTINATION INPUT_8BITS_BASIC
1092*f5c631daSSadaf Ebrahimi #define INPUT_16BITS_ACC_DESTINATION INPUT_16BITS_BASIC
1093*f5c631daSSadaf Ebrahimi #define INPUT_32BITS_ACC_DESTINATION INPUT_32BITS_BASIC
1094*f5c631daSSadaf Ebrahimi #define INPUT_64BITS_ACC_DESTINATION INPUT_64BITS_BASIC
1095*f5c631daSSadaf Ebrahimi 
1096*f5c631daSSadaf Ebrahimi static const uint8_t kInput8bitsAccDestination[] = {
1097*f5c631daSSadaf Ebrahimi     INPUT_8BITS_ACC_DESTINATION};
1098*f5c631daSSadaf Ebrahimi 
1099*f5c631daSSadaf Ebrahimi static const uint16_t kInput16bitsAccDestination[] = {
1100*f5c631daSSadaf Ebrahimi     INPUT_16BITS_ACC_DESTINATION};
1101*f5c631daSSadaf Ebrahimi 
1102*f5c631daSSadaf Ebrahimi static const uint32_t kInput32bitsAccDestination[] = {
1103*f5c631daSSadaf Ebrahimi     INPUT_32BITS_ACC_DESTINATION};
1104*f5c631daSSadaf Ebrahimi 
1105*f5c631daSSadaf Ebrahimi static const uint64_t kInput64bitsAccDestination[] = {
1106*f5c631daSSadaf Ebrahimi     INPUT_64BITS_ACC_DESTINATION};
1107*f5c631daSSadaf Ebrahimi 
1108*f5c631daSSadaf Ebrahimi static const int kInputHIndices[] = {0, 1, 2, 3, 4, 5, 6, 7};
1109*f5c631daSSadaf Ebrahimi 
1110*f5c631daSSadaf Ebrahimi static const int kInputSIndices[] = {0, 1, 2, 3};
1111*f5c631daSSadaf Ebrahimi 
1112*f5c631daSSadaf Ebrahimi static const int kInputDIndices[] = {0, 1};
1113