1 // Copyright 2016, VIXL authors
2 // All rights reserved.
3 //
4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are met:
6 //
7 // * Redistributions of source code must retain the above copyright notice,
8 // this list of conditions and the following disclaimer.
9 // * Redistributions in binary form must reproduce the above copyright notice,
10 // this list of conditions and the following disclaimer in the documentation
11 // and/or other materials provided with the distribution.
12 // * Neither the name of ARM Limited nor the names of its contributors may be
13 // used to endorse or promote products derived from this software without
14 // specific prior written permission.
15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27
28 // -----------------------------------------------------------------------------
29 // This file is auto generated from the
30 // test/aarch32/config/template-simulator-aarch32.cc.in template file using
31 // tools/generate_tests.py.
32 //
33 // PLEASE DO NOT EDIT.
34 // -----------------------------------------------------------------------------
35
36
37 #include "test-runner.h"
38
39 #include "test-utils.h"
40 #include "test-utils-aarch32.h"
41
42 #include "aarch32/assembler-aarch32.h"
43 #include "aarch32/macro-assembler-aarch32.h"
44 #include "aarch32/disasm-aarch32.h"
45
46 #define __ masm.
47 #define BUF_SIZE (4096)
48
49 #ifdef VIXL_INCLUDE_SIMULATOR_AARCH32
50 // Run tests with the simulator.
51
52 #define SETUP() MacroAssembler masm(BUF_SIZE)
53
54 #define START() masm.GetBuffer()->Reset()
55
56 #define END() \
57 __ Hlt(0); \
58 __ FinalizeCode();
59
60 // TODO: Run the tests in the simulator.
61 #define RUN()
62
63 #define TEARDOWN()
64
65 #else // ifdef VIXL_INCLUDE_SIMULATOR_AARCH32.
66
67 #define SETUP() \
68 MacroAssembler masm(BUF_SIZE); \
69 UseScratchRegisterScope harness_scratch(&masm); \
70 harness_scratch.ExcludeAll();
71
72 #define START() \
73 masm.GetBuffer()->Reset(); \
74 __ Push(r4); \
75 __ Push(r5); \
76 __ Push(r6); \
77 __ Push(r7); \
78 __ Push(r8); \
79 __ Push(r9); \
80 __ Push(r10); \
81 __ Push(r11); \
82 __ Push(lr); \
83 harness_scratch.Include(ip);
84
85 #define END() \
86 harness_scratch.Exclude(ip); \
87 __ Pop(lr); \
88 __ Pop(r11); \
89 __ Pop(r10); \
90 __ Pop(r9); \
91 __ Pop(r8); \
92 __ Pop(r7); \
93 __ Pop(r6); \
94 __ Pop(r5); \
95 __ Pop(r4); \
96 __ Bx(lr); \
97 __ FinalizeCode();
98
99 #define RUN() \
100 { \
101 int pcs_offset = masm.IsUsingT32() ? 1 : 0; \
102 masm.GetBuffer()->SetExecutable(); \
103 ExecuteMemory(masm.GetBuffer()->GetStartAddress<byte*>(), \
104 masm.GetSizeOfCodeGenerated(), \
105 pcs_offset); \
106 masm.GetBuffer()->SetWritable(); \
107 }
108
109 #define TEARDOWN() harness_scratch.Close();
110
111 #endif // ifdef VIXL_INCLUDE_SIMULATOR_AARCH32
112
113 namespace vixl {
114 namespace aarch32 {
115
116 // List of instruction encodings:
117 #define FOREACH_INSTRUCTION(M) \
118 M(Ldr) \
119 M(Ldrb) \
120 M(Str) \
121 M(Strb)
122
123
124 // The following definitions are defined again in each generated test, therefore
125 // we need to place them in an anomymous namespace. It expresses that they are
126 // local to this file only, and the compiler is not allowed to share these types
127 // across test files during template instantiation. Specifically, `Operands` and
128 // `Inputs` have various layouts across generated tests so they absolutely
129 // cannot be shared.
130
131 #ifdef VIXL_INCLUDE_TARGET_A32
132 namespace {
133
134 // Values to be passed to the assembler to produce the instruction under test.
135 struct Operands {
136 Condition cond;
137 Register rd;
138 Register rn;
139 Sign sign;
140 int32_t offset;
141 AddrMode addr_mode;
142 };
143
144 // Input data to feed to the instruction.
145 struct Inputs {
146 uint32_t apsr;
147 uint32_t rd;
148 uint32_t memop[2];
149 };
150
151 // This structure contains all input data needed to test one specific encoding.
152 // It used to generate a loop over an instruction.
153 struct TestLoopData {
154 // The `operands` fields represents the values to pass to the assembler to
155 // produce the instruction.
156 Operands operands;
157 // Description of the operands, used for error reporting.
158 const char* operands_description;
159 // Unique identifier, used for generating traces.
160 const char* identifier;
161 // Array of values to be fed to the instruction.
162 size_t input_size;
163 const Inputs* inputs;
164 };
165
166 static const Inputs kCondition[] = {{NFlag, 0xabababab, {0, 0x77777777}},
167 {ZFlag, 0xabababab, {0, 0x77777777}},
168 {CFlag, 0xabababab, {0, 0x77777777}},
169 {VFlag, 0xabababab, {0, 0x77777777}},
170 {NZFlag, 0xabababab, {0, 0x77777777}},
171 {NCFlag, 0xabababab, {0, 0x77777777}},
172 {NVFlag, 0xabababab, {0, 0x77777777}},
173 {ZCFlag, 0xabababab, {0, 0x77777777}},
174 {ZVFlag, 0xabababab, {0, 0x77777777}},
175 {CVFlag, 0xabababab, {0, 0x77777777}},
176 {NZCFlag, 0xabababab, {0, 0x77777777}},
177 {NZVFlag, 0xabababab, {0, 0x77777777}},
178 {NCVFlag, 0xabababab, {0, 0x77777777}},
179 {ZCVFlag, 0xabababab, {0, 0x77777777}},
180 {NZCVFlag, 0xabababab, {0, 0x77777777}}};
181
182 static const Inputs kPositiveOffset[] = {{NoFlag, 0x00000000, {0, 0x0badbeef}},
183 {NoFlag, 0x00000020, {0, 0x0badbeef}},
184 {NoFlag, 0x00000020, {0, 0x55555555}},
185 {NoFlag, 0x33333333, {0, 0x0badbeef}},
186 {NoFlag, 0x00000002, {0, 0x0cabba9e}},
187 {NoFlag, 0x7fffffff, {0, 0x0cabba9e}},
188 {NoFlag, 0xcccccccc, {0, 0x77777777}},
189 {NoFlag, 0x7ffffffd, {0, 0x55555555}},
190 {NoFlag, 0xffffff83, {0, 0x77777777}},
191 {NoFlag, 0xaaaaaaaa, {0, 0x77777777}}};
192
193 static const Inputs kNegativeOffset[] = {{NoFlag, 0xcccccccc, {0, 0x0badbeef}},
194 {NoFlag, 0x0000007f, {0, 0x0cabba9e}},
195 {NoFlag, 0x00007ffe, {0, 0x55555555}},
196 {NoFlag, 0xffffffff, {0, 0x0cabba9e}},
197 {NoFlag, 0x00007ffd, {0, 0x77777777}},
198 {NoFlag, 0x0000007d, {0, 0x0badbeef}},
199 {NoFlag, 0xffff8001, {0, 0x0cabba9e}},
200 {NoFlag, 0xaaaaaaaa, {0, 0x55555555}},
201 {NoFlag, 0x55555555, {0, 0x0badbeef}},
202 {NoFlag, 0xffffff82, {0, 0x77777777}}};
203
204 static const Inputs kPositivePostIndex[] =
205 {{NoFlag, 0xffff8003, {0, 0x77777777}},
206 {NoFlag, 0xfffffffd, {0, 0x55555555}},
207 {NoFlag, 0xffffff83, {0, 0x0cabba9e}},
208 {NoFlag, 0x7ffffffd, {0, 0x0badbeef}},
209 {NoFlag, 0xcccccccc, {0, 0x55555555}},
210 {NoFlag, 0x00007ffd, {0, 0x55555555}},
211 {NoFlag, 0x00007fff, {0, 0x0badbeef}},
212 {NoFlag, 0x00000020, {0, 0x77777777}},
213 {NoFlag, 0x80000000, {0, 0x0cabba9e}},
214 {NoFlag, 0x80000001, {0, 0x0badbeef}}};
215
216 static const Inputs kNegativePostIndex[] =
217 {{NoFlag, 0x80000001, {0, 0x77777777}},
218 {NoFlag, 0x7ffffffe, {0, 0x0badbeef}},
219 {NoFlag, 0x0000007d, {0, 0x0badbeef}},
220 {NoFlag, 0x0000007d, {0, 0x77777777}},
221 {NoFlag, 0xcccccccc, {0, 0x77777777}},
222 {NoFlag, 0xffff8003, {0, 0x77777777}},
223 {NoFlag, 0x00000001, {0, 0x77777777}},
224 {NoFlag, 0xffff8003, {0, 0x0badbeef}},
225 {NoFlag, 0xffff8000, {0, 0x0badbeef}},
226 {NoFlag, 0xffffff80, {0, 0x0badbeef}}};
227
228 static const Inputs kPositivePreIndex[] =
229 {{NoFlag, 0xffff8003, {0, 0x55555555}},
230 {NoFlag, 0x7ffffffd, {0, 0x55555555}},
231 {NoFlag, 0x33333333, {0, 0x77777777}},
232 {NoFlag, 0xcccccccc, {0, 0x0cabba9e}},
233 {NoFlag, 0xffffffff, {0, 0x0cabba9e}},
234 {NoFlag, 0x33333333, {0, 0x55555555}},
235 {NoFlag, 0xffffff82, {0, 0x77777777}},
236 {NoFlag, 0x55555555, {0, 0x0cabba9e}},
237 {NoFlag, 0xfffffffe, {0, 0x77777777}},
238 {NoFlag, 0x0000007e, {0, 0x0cabba9e}}};
239
240 static const Inputs kNegativePreIndex[] =
241 {{NoFlag, 0x00007ffd, {0, 0x0badbeef}},
242 {NoFlag, 0xffffffff, {0, 0x77777777}},
243 {NoFlag, 0x00000002, {0, 0x0cabba9e}},
244 {NoFlag, 0xfffffffd, {0, 0x0cabba9e}},
245 {NoFlag, 0x7ffffffd, {0, 0x77777777}},
246 {NoFlag, 0xffffffff, {0, 0x55555555}},
247 {NoFlag, 0x00007ffe, {0, 0x77777777}},
248 {NoFlag, 0xffffff82, {0, 0x0cabba9e}},
249 {NoFlag, 0x0000007e, {0, 0x55555555}},
250 {NoFlag, 0x7ffffffe, {0, 0x77777777}}};
251
252
253 // A loop will be generated for each element of this array.
254 const TestLoopData kTests[] =
255 {{{eq, r0, r1, plus, 0, Offset},
256 "eq r0 r1 plus 0 Offset",
257 "Condition_eq_r0_r1_plus_0_Offset",
258 ARRAY_SIZE(kCondition),
259 kCondition},
260 {{ne, r0, r1, plus, 0, Offset},
261 "ne r0 r1 plus 0 Offset",
262 "Condition_ne_r0_r1_plus_0_Offset",
263 ARRAY_SIZE(kCondition),
264 kCondition},
265 {{cs, r0, r1, plus, 0, Offset},
266 "cs r0 r1 plus 0 Offset",
267 "Condition_cs_r0_r1_plus_0_Offset",
268 ARRAY_SIZE(kCondition),
269 kCondition},
270 {{cc, r0, r1, plus, 0, Offset},
271 "cc r0 r1 plus 0 Offset",
272 "Condition_cc_r0_r1_plus_0_Offset",
273 ARRAY_SIZE(kCondition),
274 kCondition},
275 {{mi, r0, r1, plus, 0, Offset},
276 "mi r0 r1 plus 0 Offset",
277 "Condition_mi_r0_r1_plus_0_Offset",
278 ARRAY_SIZE(kCondition),
279 kCondition},
280 {{pl, r0, r1, plus, 0, Offset},
281 "pl r0 r1 plus 0 Offset",
282 "Condition_pl_r0_r1_plus_0_Offset",
283 ARRAY_SIZE(kCondition),
284 kCondition},
285 {{vs, r0, r1, plus, 0, Offset},
286 "vs r0 r1 plus 0 Offset",
287 "Condition_vs_r0_r1_plus_0_Offset",
288 ARRAY_SIZE(kCondition),
289 kCondition},
290 {{vc, r0, r1, plus, 0, Offset},
291 "vc r0 r1 plus 0 Offset",
292 "Condition_vc_r0_r1_plus_0_Offset",
293 ARRAY_SIZE(kCondition),
294 kCondition},
295 {{hi, r0, r1, plus, 0, Offset},
296 "hi r0 r1 plus 0 Offset",
297 "Condition_hi_r0_r1_plus_0_Offset",
298 ARRAY_SIZE(kCondition),
299 kCondition},
300 {{ls, r0, r1, plus, 0, Offset},
301 "ls r0 r1 plus 0 Offset",
302 "Condition_ls_r0_r1_plus_0_Offset",
303 ARRAY_SIZE(kCondition),
304 kCondition},
305 {{ge, r0, r1, plus, 0, Offset},
306 "ge r0 r1 plus 0 Offset",
307 "Condition_ge_r0_r1_plus_0_Offset",
308 ARRAY_SIZE(kCondition),
309 kCondition},
310 {{lt, r0, r1, plus, 0, Offset},
311 "lt r0 r1 plus 0 Offset",
312 "Condition_lt_r0_r1_plus_0_Offset",
313 ARRAY_SIZE(kCondition),
314 kCondition},
315 {{gt, r0, r1, plus, 0, Offset},
316 "gt r0 r1 plus 0 Offset",
317 "Condition_gt_r0_r1_plus_0_Offset",
318 ARRAY_SIZE(kCondition),
319 kCondition},
320 {{le, r0, r1, plus, 0, Offset},
321 "le r0 r1 plus 0 Offset",
322 "Condition_le_r0_r1_plus_0_Offset",
323 ARRAY_SIZE(kCondition),
324 kCondition},
325 {{al, r0, r1, plus, 0, Offset},
326 "al r0 r1 plus 0 Offset",
327 "Condition_al_r0_r1_plus_0_Offset",
328 ARRAY_SIZE(kCondition),
329 kCondition},
330 {{al, r0, r6, plus, 2582, Offset},
331 "al r0 r6 plus 2582 Offset",
332 "PositiveOffset_al_r0_r6_plus_2582_Offset",
333 ARRAY_SIZE(kPositiveOffset),
334 kPositiveOffset},
335 {{al, r2, r5, plus, 0, Offset},
336 "al r2 r5 plus 0 Offset",
337 "PositiveOffset_al_r2_r5_plus_0_Offset",
338 ARRAY_SIZE(kPositiveOffset),
339 kPositiveOffset},
340 {{al, r2, r1, plus, 3989, Offset},
341 "al r2 r1 plus 3989 Offset",
342 "PositiveOffset_al_r2_r1_plus_3989_Offset",
343 ARRAY_SIZE(kPositiveOffset),
344 kPositiveOffset},
345 {{al, r6, r10, plus, 1892, Offset},
346 "al r6 r10 plus 1892 Offset",
347 "PositiveOffset_al_r6_r10_plus_1892_Offset",
348 ARRAY_SIZE(kPositiveOffset),
349 kPositiveOffset},
350 {{al, r1, r12, plus, 1677, Offset},
351 "al r1 r12 plus 1677 Offset",
352 "PositiveOffset_al_r1_r12_plus_1677_Offset",
353 ARRAY_SIZE(kPositiveOffset),
354 kPositiveOffset},
355 {{al, r9, r4, plus, 3015, Offset},
356 "al r9 r4 plus 3015 Offset",
357 "PositiveOffset_al_r9_r4_plus_3015_Offset",
358 ARRAY_SIZE(kPositiveOffset),
359 kPositiveOffset},
360 {{al, r11, r4, plus, 1231, Offset},
361 "al r11 r4 plus 1231 Offset",
362 "PositiveOffset_al_r11_r4_plus_1231_Offset",
363 ARRAY_SIZE(kPositiveOffset),
364 kPositiveOffset},
365 {{al, r7, r10, plus, 523, Offset},
366 "al r7 r10 plus 523 Offset",
367 "PositiveOffset_al_r7_r10_plus_523_Offset",
368 ARRAY_SIZE(kPositiveOffset),
369 kPositiveOffset},
370 {{al, r10, r9, plus, 1485, Offset},
371 "al r10 r9 plus 1485 Offset",
372 "PositiveOffset_al_r10_r9_plus_1485_Offset",
373 ARRAY_SIZE(kPositiveOffset),
374 kPositiveOffset},
375 {{al, r11, r0, plus, 1924, Offset},
376 "al r11 r0 plus 1924 Offset",
377 "PositiveOffset_al_r11_r0_plus_1924_Offset",
378 ARRAY_SIZE(kPositiveOffset),
379 kPositiveOffset},
380 {{al, r9, r2, plus, 670, Offset},
381 "al r9 r2 plus 670 Offset",
382 "PositiveOffset_al_r9_r2_plus_670_Offset",
383 ARRAY_SIZE(kPositiveOffset),
384 kPositiveOffset},
385 {{al, r2, r7, plus, 3417, Offset},
386 "al r2 r7 plus 3417 Offset",
387 "PositiveOffset_al_r2_r7_plus_3417_Offset",
388 ARRAY_SIZE(kPositiveOffset),
389 kPositiveOffset},
390 {{al, r1, r5, plus, 470, Offset},
391 "al r1 r5 plus 470 Offset",
392 "PositiveOffset_al_r1_r5_plus_470_Offset",
393 ARRAY_SIZE(kPositiveOffset),
394 kPositiveOffset},
395 {{al, r5, r11, plus, 1660, Offset},
396 "al r5 r11 plus 1660 Offset",
397 "PositiveOffset_al_r5_r11_plus_1660_Offset",
398 ARRAY_SIZE(kPositiveOffset),
399 kPositiveOffset},
400 {{al, r8, r6, plus, 3978, Offset},
401 "al r8 r6 plus 3978 Offset",
402 "PositiveOffset_al_r8_r6_plus_3978_Offset",
403 ARRAY_SIZE(kPositiveOffset),
404 kPositiveOffset},
405 {{al, r4, r3, plus, 3739, Offset},
406 "al r4 r3 plus 3739 Offset",
407 "PositiveOffset_al_r4_r3_plus_3739_Offset",
408 ARRAY_SIZE(kPositiveOffset),
409 kPositiveOffset},
410 {{al, r14, r4, plus, 3787, Offset},
411 "al r14 r4 plus 3787 Offset",
412 "PositiveOffset_al_r14_r4_plus_3787_Offset",
413 ARRAY_SIZE(kPositiveOffset),
414 kPositiveOffset},
415 {{al, r12, r0, plus, 732, Offset},
416 "al r12 r0 plus 732 Offset",
417 "PositiveOffset_al_r12_r0_plus_732_Offset",
418 ARRAY_SIZE(kPositiveOffset),
419 kPositiveOffset},
420 {{al, r10, r14, plus, 3625, Offset},
421 "al r10 r14 plus 3625 Offset",
422 "PositiveOffset_al_r10_r14_plus_3625_Offset",
423 ARRAY_SIZE(kPositiveOffset),
424 kPositiveOffset},
425 {{al, r3, r1, plus, 2451, Offset},
426 "al r3 r1 plus 2451 Offset",
427 "PositiveOffset_al_r3_r1_plus_2451_Offset",
428 ARRAY_SIZE(kPositiveOffset),
429 kPositiveOffset},
430 {{al, r0, r6, plus, 1241, Offset},
431 "al r0 r6 plus 1241 Offset",
432 "PositiveOffset_al_r0_r6_plus_1241_Offset",
433 ARRAY_SIZE(kPositiveOffset),
434 kPositiveOffset},
435 {{al, r5, r4, plus, 2040, Offset},
436 "al r5 r4 plus 2040 Offset",
437 "PositiveOffset_al_r5_r4_plus_2040_Offset",
438 ARRAY_SIZE(kPositiveOffset),
439 kPositiveOffset},
440 {{al, r9, r12, plus, 251, Offset},
441 "al r9 r12 plus 251 Offset",
442 "PositiveOffset_al_r9_r12_plus_251_Offset",
443 ARRAY_SIZE(kPositiveOffset),
444 kPositiveOffset},
445 {{al, r11, r14, plus, 3765, Offset},
446 "al r11 r14 plus 3765 Offset",
447 "PositiveOffset_al_r11_r14_plus_3765_Offset",
448 ARRAY_SIZE(kPositiveOffset),
449 kPositiveOffset},
450 {{al, r6, r0, plus, 3028, Offset},
451 "al r6 r0 plus 3028 Offset",
452 "PositiveOffset_al_r6_r0_plus_3028_Offset",
453 ARRAY_SIZE(kPositiveOffset),
454 kPositiveOffset},
455 {{al, r14, r7, plus, 1872, Offset},
456 "al r14 r7 plus 1872 Offset",
457 "PositiveOffset_al_r14_r7_plus_1872_Offset",
458 ARRAY_SIZE(kPositiveOffset),
459 kPositiveOffset},
460 {{al, r0, r11, plus, 3450, Offset},
461 "al r0 r11 plus 3450 Offset",
462 "PositiveOffset_al_r0_r11_plus_3450_Offset",
463 ARRAY_SIZE(kPositiveOffset),
464 kPositiveOffset},
465 {{al, r12, r7, plus, 3717, Offset},
466 "al r12 r7 plus 3717 Offset",
467 "PositiveOffset_al_r12_r7_plus_3717_Offset",
468 ARRAY_SIZE(kPositiveOffset),
469 kPositiveOffset},
470 {{al, r9, r3, plus, 2011, Offset},
471 "al r9 r3 plus 2011 Offset",
472 "PositiveOffset_al_r9_r3_plus_2011_Offset",
473 ARRAY_SIZE(kPositiveOffset),
474 kPositiveOffset},
475 {{al, r1, r6, plus, 1399, Offset},
476 "al r1 r6 plus 1399 Offset",
477 "PositiveOffset_al_r1_r6_plus_1399_Offset",
478 ARRAY_SIZE(kPositiveOffset),
479 kPositiveOffset},
480 {{al, r3, r6, plus, 2546, Offset},
481 "al r3 r6 plus 2546 Offset",
482 "PositiveOffset_al_r3_r6_plus_2546_Offset",
483 ARRAY_SIZE(kPositiveOffset),
484 kPositiveOffset},
485 {{al, r1, r2, plus, 850, Offset},
486 "al r1 r2 plus 850 Offset",
487 "PositiveOffset_al_r1_r2_plus_850_Offset",
488 ARRAY_SIZE(kPositiveOffset),
489 kPositiveOffset},
490 {{al, r4, r10, plus, 371, Offset},
491 "al r4 r10 plus 371 Offset",
492 "PositiveOffset_al_r4_r10_plus_371_Offset",
493 ARRAY_SIZE(kPositiveOffset),
494 kPositiveOffset},
495 {{al, r5, r10, plus, 2240, Offset},
496 "al r5 r10 plus 2240 Offset",
497 "PositiveOffset_al_r5_r10_plus_2240_Offset",
498 ARRAY_SIZE(kPositiveOffset),
499 kPositiveOffset},
500 {{al, r5, r9, plus, 712, Offset},
501 "al r5 r9 plus 712 Offset",
502 "PositiveOffset_al_r5_r9_plus_712_Offset",
503 ARRAY_SIZE(kPositiveOffset),
504 kPositiveOffset},
505 {{al, r14, r7, plus, 2025, Offset},
506 "al r14 r7 plus 2025 Offset",
507 "PositiveOffset_al_r14_r7_plus_2025_Offset",
508 ARRAY_SIZE(kPositiveOffset),
509 kPositiveOffset},
510 {{al, r0, r3, plus, 595, Offset},
511 "al r0 r3 plus 595 Offset",
512 "PositiveOffset_al_r0_r3_plus_595_Offset",
513 ARRAY_SIZE(kPositiveOffset),
514 kPositiveOffset},
515 {{al, r14, r3, plus, 1459, Offset},
516 "al r14 r3 plus 1459 Offset",
517 "PositiveOffset_al_r14_r3_plus_1459_Offset",
518 ARRAY_SIZE(kPositiveOffset),
519 kPositiveOffset},
520 {{al, r12, r7, plus, 582, Offset},
521 "al r12 r7 plus 582 Offset",
522 "PositiveOffset_al_r12_r7_plus_582_Offset",
523 ARRAY_SIZE(kPositiveOffset),
524 kPositiveOffset},
525 {{al, r7, r10, plus, 3282, Offset},
526 "al r7 r10 plus 3282 Offset",
527 "PositiveOffset_al_r7_r10_plus_3282_Offset",
528 ARRAY_SIZE(kPositiveOffset),
529 kPositiveOffset},
530 {{al, r14, r3, plus, 674, Offset},
531 "al r14 r3 plus 674 Offset",
532 "PositiveOffset_al_r14_r3_plus_674_Offset",
533 ARRAY_SIZE(kPositiveOffset),
534 kPositiveOffset},
535 {{al, r10, r1, plus, 72, Offset},
536 "al r10 r1 plus 72 Offset",
537 "PositiveOffset_al_r10_r1_plus_72_Offset",
538 ARRAY_SIZE(kPositiveOffset),
539 kPositiveOffset},
540 {{al, r1, r7, plus, 3702, Offset},
541 "al r1 r7 plus 3702 Offset",
542 "PositiveOffset_al_r1_r7_plus_3702_Offset",
543 ARRAY_SIZE(kPositiveOffset),
544 kPositiveOffset},
545 {{al, r3, r5, plus, 932, Offset},
546 "al r3 r5 plus 932 Offset",
547 "PositiveOffset_al_r3_r5_plus_932_Offset",
548 ARRAY_SIZE(kPositiveOffset),
549 kPositiveOffset},
550 {{al, r0, r9, plus, 233, Offset},
551 "al r0 r9 plus 233 Offset",
552 "PositiveOffset_al_r0_r9_plus_233_Offset",
553 ARRAY_SIZE(kPositiveOffset),
554 kPositiveOffset},
555 {{al, r0, r5, plus, 523, Offset},
556 "al r0 r5 plus 523 Offset",
557 "PositiveOffset_al_r0_r5_plus_523_Offset",
558 ARRAY_SIZE(kPositiveOffset),
559 kPositiveOffset},
560 {{al, r14, r9, plus, 844, Offset},
561 "al r14 r9 plus 844 Offset",
562 "PositiveOffset_al_r14_r9_plus_844_Offset",
563 ARRAY_SIZE(kPositiveOffset),
564 kPositiveOffset},
565 {{al, r6, r5, plus, 1459, Offset},
566 "al r6 r5 plus 1459 Offset",
567 "PositiveOffset_al_r6_r5_plus_1459_Offset",
568 ARRAY_SIZE(kPositiveOffset),
569 kPositiveOffset},
570 {{al, r10, r14, plus, 3384, Offset},
571 "al r10 r14 plus 3384 Offset",
572 "PositiveOffset_al_r10_r14_plus_3384_Offset",
573 ARRAY_SIZE(kPositiveOffset),
574 kPositiveOffset},
575 {{al, r4, r12, plus, 2345, Offset},
576 "al r4 r12 plus 2345 Offset",
577 "PositiveOffset_al_r4_r12_plus_2345_Offset",
578 ARRAY_SIZE(kPositiveOffset),
579 kPositiveOffset},
580 {{al, r11, r9, plus, 1642, Offset},
581 "al r11 r9 plus 1642 Offset",
582 "PositiveOffset_al_r11_r9_plus_1642_Offset",
583 ARRAY_SIZE(kPositiveOffset),
584 kPositiveOffset},
585 {{al, r3, r7, plus, 2901, Offset},
586 "al r3 r7 plus 2901 Offset",
587 "PositiveOffset_al_r3_r7_plus_2901_Offset",
588 ARRAY_SIZE(kPositiveOffset),
589 kPositiveOffset},
590 {{al, r4, r3, plus, 1934, Offset},
591 "al r4 r3 plus 1934 Offset",
592 "PositiveOffset_al_r4_r3_plus_1934_Offset",
593 ARRAY_SIZE(kPositiveOffset),
594 kPositiveOffset},
595 {{al, r8, r4, plus, 3952, Offset},
596 "al r8 r4 plus 3952 Offset",
597 "PositiveOffset_al_r8_r4_plus_3952_Offset",
598 ARRAY_SIZE(kPositiveOffset),
599 kPositiveOffset},
600 {{al, r5, r0, plus, 2710, Offset},
601 "al r5 r0 plus 2710 Offset",
602 "PositiveOffset_al_r5_r0_plus_2710_Offset",
603 ARRAY_SIZE(kPositiveOffset),
604 kPositiveOffset},
605 {{al, r12, r2, plus, 270, Offset},
606 "al r12 r2 plus 270 Offset",
607 "PositiveOffset_al_r12_r2_plus_270_Offset",
608 ARRAY_SIZE(kPositiveOffset),
609 kPositiveOffset},
610 {{al, r9, r2, plus, 132, Offset},
611 "al r9 r2 plus 132 Offset",
612 "PositiveOffset_al_r9_r2_plus_132_Offset",
613 ARRAY_SIZE(kPositiveOffset),
614 kPositiveOffset},
615 {{al, r11, r5, plus, 19, Offset},
616 "al r11 r5 plus 19 Offset",
617 "PositiveOffset_al_r11_r5_plus_19_Offset",
618 ARRAY_SIZE(kPositiveOffset),
619 kPositiveOffset},
620 {{al, r7, r14, plus, 1848, Offset},
621 "al r7 r14 plus 1848 Offset",
622 "PositiveOffset_al_r7_r14_plus_1848_Offset",
623 ARRAY_SIZE(kPositiveOffset),
624 kPositiveOffset},
625 {{al, r6, r10, plus, 977, Offset},
626 "al r6 r10 plus 977 Offset",
627 "PositiveOffset_al_r6_r10_plus_977_Offset",
628 ARRAY_SIZE(kPositiveOffset),
629 kPositiveOffset},
630 {{al, r10, r8, plus, 3239, Offset},
631 "al r10 r8 plus 3239 Offset",
632 "PositiveOffset_al_r10_r8_plus_3239_Offset",
633 ARRAY_SIZE(kPositiveOffset),
634 kPositiveOffset},
635 {{al, r7, r0, plus, 1295, Offset},
636 "al r7 r0 plus 1295 Offset",
637 "PositiveOffset_al_r7_r0_plus_1295_Offset",
638 ARRAY_SIZE(kPositiveOffset),
639 kPositiveOffset},
640 {{al, r9, r5, plus, 517, Offset},
641 "al r9 r5 plus 517 Offset",
642 "PositiveOffset_al_r9_r5_plus_517_Offset",
643 ARRAY_SIZE(kPositiveOffset),
644 kPositiveOffset},
645 {{al, r12, r8, plus, 3071, Offset},
646 "al r12 r8 plus 3071 Offset",
647 "PositiveOffset_al_r12_r8_plus_3071_Offset",
648 ARRAY_SIZE(kPositiveOffset),
649 kPositiveOffset},
650 {{al, r5, r6, plus, 3194, Offset},
651 "al r5 r6 plus 3194 Offset",
652 "PositiveOffset_al_r5_r6_plus_3194_Offset",
653 ARRAY_SIZE(kPositiveOffset),
654 kPositiveOffset},
655 {{al, r10, r2, plus, 198, Offset},
656 "al r10 r2 plus 198 Offset",
657 "PositiveOffset_al_r10_r2_plus_198_Offset",
658 ARRAY_SIZE(kPositiveOffset),
659 kPositiveOffset},
660 {{al, r8, r3, plus, 565, Offset},
661 "al r8 r3 plus 565 Offset",
662 "PositiveOffset_al_r8_r3_plus_565_Offset",
663 ARRAY_SIZE(kPositiveOffset),
664 kPositiveOffset},
665 {{al, r7, r0, plus, 3399, Offset},
666 "al r7 r0 plus 3399 Offset",
667 "PositiveOffset_al_r7_r0_plus_3399_Offset",
668 ARRAY_SIZE(kPositiveOffset),
669 kPositiveOffset},
670 {{al, r7, r1, plus, 1916, Offset},
671 "al r7 r1 plus 1916 Offset",
672 "PositiveOffset_al_r7_r1_plus_1916_Offset",
673 ARRAY_SIZE(kPositiveOffset),
674 kPositiveOffset},
675 {{al, r3, r9, plus, 263, Offset},
676 "al r3 r9 plus 263 Offset",
677 "PositiveOffset_al_r3_r9_plus_263_Offset",
678 ARRAY_SIZE(kPositiveOffset),
679 kPositiveOffset},
680 {{al, r3, r1, plus, 3772, Offset},
681 "al r3 r1 plus 3772 Offset",
682 "PositiveOffset_al_r3_r1_plus_3772_Offset",
683 ARRAY_SIZE(kPositiveOffset),
684 kPositiveOffset},
685 {{al, r9, r2, plus, 2906, Offset},
686 "al r9 r2 plus 2906 Offset",
687 "PositiveOffset_al_r9_r2_plus_2906_Offset",
688 ARRAY_SIZE(kPositiveOffset),
689 kPositiveOffset},
690 {{al, r12, r0, plus, 2451, Offset},
691 "al r12 r0 plus 2451 Offset",
692 "PositiveOffset_al_r12_r0_plus_2451_Offset",
693 ARRAY_SIZE(kPositiveOffset),
694 kPositiveOffset},
695 {{al, r8, r0, plus, 689, Offset},
696 "al r8 r0 plus 689 Offset",
697 "PositiveOffset_al_r8_r0_plus_689_Offset",
698 ARRAY_SIZE(kPositiveOffset),
699 kPositiveOffset},
700 {{al, r0, r9, plus, 3063, Offset},
701 "al r0 r9 plus 3063 Offset",
702 "PositiveOffset_al_r0_r9_plus_3063_Offset",
703 ARRAY_SIZE(kPositiveOffset),
704 kPositiveOffset},
705 {{al, r3, r4, plus, 932, Offset},
706 "al r3 r4 plus 932 Offset",
707 "PositiveOffset_al_r3_r4_plus_932_Offset",
708 ARRAY_SIZE(kPositiveOffset),
709 kPositiveOffset},
710 {{al, r12, r10, plus, 704, Offset},
711 "al r12 r10 plus 704 Offset",
712 "PositiveOffset_al_r12_r10_plus_704_Offset",
713 ARRAY_SIZE(kPositiveOffset),
714 kPositiveOffset},
715 {{al, r8, r4, plus, 2374, Offset},
716 "al r8 r4 plus 2374 Offset",
717 "PositiveOffset_al_r8_r4_plus_2374_Offset",
718 ARRAY_SIZE(kPositiveOffset),
719 kPositiveOffset},
720 {{al, r12, r9, plus, 2345, Offset},
721 "al r12 r9 plus 2345 Offset",
722 "PositiveOffset_al_r12_r9_plus_2345_Offset",
723 ARRAY_SIZE(kPositiveOffset),
724 kPositiveOffset},
725 {{al, r6, r1, plus, 2651, Offset},
726 "al r6 r1 plus 2651 Offset",
727 "PositiveOffset_al_r6_r1_plus_2651_Offset",
728 ARRAY_SIZE(kPositiveOffset),
729 kPositiveOffset},
730 {{al, r0, r3, plus, 998, Offset},
731 "al r0 r3 plus 998 Offset",
732 "PositiveOffset_al_r0_r3_plus_998_Offset",
733 ARRAY_SIZE(kPositiveOffset),
734 kPositiveOffset},
735 {{al, r8, r11, plus, 679, Offset},
736 "al r8 r11 plus 679 Offset",
737 "PositiveOffset_al_r8_r11_plus_679_Offset",
738 ARRAY_SIZE(kPositiveOffset),
739 kPositiveOffset},
740 {{al, r5, r1, plus, 2945, Offset},
741 "al r5 r1 plus 2945 Offset",
742 "PositiveOffset_al_r5_r1_plus_2945_Offset",
743 ARRAY_SIZE(kPositiveOffset),
744 kPositiveOffset},
745 {{al, r2, r9, plus, 3439, Offset},
746 "al r2 r9 plus 3439 Offset",
747 "PositiveOffset_al_r2_r9_plus_3439_Offset",
748 ARRAY_SIZE(kPositiveOffset),
749 kPositiveOffset},
750 {{al, r8, r10, plus, 3636, Offset},
751 "al r8 r10 plus 3636 Offset",
752 "PositiveOffset_al_r8_r10_plus_3636_Offset",
753 ARRAY_SIZE(kPositiveOffset),
754 kPositiveOffset},
755 {{al, r11, r12, plus, 3986, Offset},
756 "al r11 r12 plus 3986 Offset",
757 "PositiveOffset_al_r11_r12_plus_3986_Offset",
758 ARRAY_SIZE(kPositiveOffset),
759 kPositiveOffset},
760 {{al, r6, r8, plus, 2240, Offset},
761 "al r6 r8 plus 2240 Offset",
762 "PositiveOffset_al_r6_r8_plus_2240_Offset",
763 ARRAY_SIZE(kPositiveOffset),
764 kPositiveOffset},
765 {{al, r11, r8, plus, 1961, Offset},
766 "al r11 r8 plus 1961 Offset",
767 "PositiveOffset_al_r11_r8_plus_1961_Offset",
768 ARRAY_SIZE(kPositiveOffset),
769 kPositiveOffset},
770 {{al, r5, r6, plus, 1536, Offset},
771 "al r5 r6 plus 1536 Offset",
772 "PositiveOffset_al_r5_r6_plus_1536_Offset",
773 ARRAY_SIZE(kPositiveOffset),
774 kPositiveOffset},
775 {{al, r0, r12, plus, 1759, Offset},
776 "al r0 r12 plus 1759 Offset",
777 "PositiveOffset_al_r0_r12_plus_1759_Offset",
778 ARRAY_SIZE(kPositiveOffset),
779 kPositiveOffset},
780 {{al, r7, r1, plus, 1266, Offset},
781 "al r7 r1 plus 1266 Offset",
782 "PositiveOffset_al_r7_r1_plus_1266_Offset",
783 ARRAY_SIZE(kPositiveOffset),
784 kPositiveOffset},
785 {{al, r1, r4, plus, 1017, Offset},
786 "al r1 r4 plus 1017 Offset",
787 "PositiveOffset_al_r1_r4_plus_1017_Offset",
788 ARRAY_SIZE(kPositiveOffset),
789 kPositiveOffset},
790 {{al, r9, r3, plus, 2224, Offset},
791 "al r9 r3 plus 2224 Offset",
792 "PositiveOffset_al_r9_r3_plus_2224_Offset",
793 ARRAY_SIZE(kPositiveOffset),
794 kPositiveOffset},
795 {{al, r2, r9, plus, 3078, Offset},
796 "al r2 r9 plus 3078 Offset",
797 "PositiveOffset_al_r2_r9_plus_3078_Offset",
798 ARRAY_SIZE(kPositiveOffset),
799 kPositiveOffset},
800 {{al, r7, r2, plus, 2690, Offset},
801 "al r7 r2 plus 2690 Offset",
802 "PositiveOffset_al_r7_r2_plus_2690_Offset",
803 ARRAY_SIZE(kPositiveOffset),
804 kPositiveOffset},
805 {{al, r3, r0, plus, 3078, Offset},
806 "al r3 r0 plus 3078 Offset",
807 "PositiveOffset_al_r3_r0_plus_3078_Offset",
808 ARRAY_SIZE(kPositiveOffset),
809 kPositiveOffset},
810 {{al, r4, r12, plus, 1017, Offset},
811 "al r4 r12 plus 1017 Offset",
812 "PositiveOffset_al_r4_r12_plus_1017_Offset",
813 ARRAY_SIZE(kPositiveOffset),
814 kPositiveOffset},
815 {{al, r0, r5, plus, 3787, Offset},
816 "al r0 r5 plus 3787 Offset",
817 "PositiveOffset_al_r0_r5_plus_3787_Offset",
818 ARRAY_SIZE(kPositiveOffset),
819 kPositiveOffset},
820 {{al, r0, r10, plus, 342, Offset},
821 "al r0 r10 plus 342 Offset",
822 "PositiveOffset_al_r0_r10_plus_342_Offset",
823 ARRAY_SIZE(kPositiveOffset),
824 kPositiveOffset},
825 {{al, r1, r2, plus, 1097, Offset},
826 "al r1 r2 plus 1097 Offset",
827 "PositiveOffset_al_r1_r2_plus_1097_Offset",
828 ARRAY_SIZE(kPositiveOffset),
829 kPositiveOffset},
830 {{al, r11, r8, minus, 4065, Offset},
831 "al r11 r8 minus 4065 Offset",
832 "NegativeOffset_al_r11_r8_minus_4065_Offset",
833 ARRAY_SIZE(kNegativeOffset),
834 kNegativeOffset},
835 {{al, r4, r5, minus, 1459, Offset},
836 "al r4 r5 minus 1459 Offset",
837 "NegativeOffset_al_r4_r5_minus_1459_Offset",
838 ARRAY_SIZE(kNegativeOffset),
839 kNegativeOffset},
840 {{al, r5, r3, minus, 1867, Offset},
841 "al r5 r3 minus 1867 Offset",
842 "NegativeOffset_al_r5_r3_minus_1867_Offset",
843 ARRAY_SIZE(kNegativeOffset),
844 kNegativeOffset},
845 {{al, r11, r9, minus, 1537, Offset},
846 "al r11 r9 minus 1537 Offset",
847 "NegativeOffset_al_r11_r9_minus_1537_Offset",
848 ARRAY_SIZE(kNegativeOffset),
849 kNegativeOffset},
850 {{al, r4, r8, minus, 421, Offset},
851 "al r4 r8 minus 421 Offset",
852 "NegativeOffset_al_r4_r8_minus_421_Offset",
853 ARRAY_SIZE(kNegativeOffset),
854 kNegativeOffset},
855 {{al, r2, r12, minus, 3625, Offset},
856 "al r2 r12 minus 3625 Offset",
857 "NegativeOffset_al_r2_r12_minus_3625_Offset",
858 ARRAY_SIZE(kNegativeOffset),
859 kNegativeOffset},
860 {{al, r14, r1, minus, 1536, Offset},
861 "al r14 r1 minus 1536 Offset",
862 "NegativeOffset_al_r14_r1_minus_1536_Offset",
863 ARRAY_SIZE(kNegativeOffset),
864 kNegativeOffset},
865 {{al, r10, r12, minus, 3397, Offset},
866 "al r10 r12 minus 3397 Offset",
867 "NegativeOffset_al_r10_r12_minus_3397_Offset",
868 ARRAY_SIZE(kNegativeOffset),
869 kNegativeOffset},
870 {{al, r7, r2, minus, 3450, Offset},
871 "al r7 r2 minus 3450 Offset",
872 "NegativeOffset_al_r7_r2_minus_3450_Offset",
873 ARRAY_SIZE(kNegativeOffset),
874 kNegativeOffset},
875 {{al, r10, r14, minus, 1551, Offset},
876 "al r10 r14 minus 1551 Offset",
877 "NegativeOffset_al_r10_r14_minus_1551_Offset",
878 ARRAY_SIZE(kNegativeOffset),
879 kNegativeOffset},
880 {{al, r11, r5, minus, 3625, Offset},
881 "al r11 r5 minus 3625 Offset",
882 "NegativeOffset_al_r11_r5_minus_3625_Offset",
883 ARRAY_SIZE(kNegativeOffset),
884 kNegativeOffset},
885 {{al, r9, r11, minus, 3633, Offset},
886 "al r9 r11 minus 3633 Offset",
887 "NegativeOffset_al_r9_r11_minus_3633_Offset",
888 ARRAY_SIZE(kNegativeOffset),
889 kNegativeOffset},
890 {{al, r9, r6, minus, 2490, Offset},
891 "al r9 r6 minus 2490 Offset",
892 "NegativeOffset_al_r9_r6_minus_2490_Offset",
893 ARRAY_SIZE(kNegativeOffset),
894 kNegativeOffset},
895 {{al, r14, r12, minus, 3003, Offset},
896 "al r14 r12 minus 3003 Offset",
897 "NegativeOffset_al_r14_r12_minus_3003_Offset",
898 ARRAY_SIZE(kNegativeOffset),
899 kNegativeOffset},
900 {{al, r8, r10, minus, 1848, Offset},
901 "al r8 r10 minus 1848 Offset",
902 "NegativeOffset_al_r8_r10_minus_1848_Offset",
903 ARRAY_SIZE(kNegativeOffset),
904 kNegativeOffset},
905 {{al, r9, r6, minus, 342, Offset},
906 "al r9 r6 minus 342 Offset",
907 "NegativeOffset_al_r9_r6_minus_342_Offset",
908 ARRAY_SIZE(kNegativeOffset),
909 kNegativeOffset},
910 {{al, r5, r2, minus, 3254, Offset},
911 "al r5 r2 minus 3254 Offset",
912 "NegativeOffset_al_r5_r2_minus_3254_Offset",
913 ARRAY_SIZE(kNegativeOffset),
914 kNegativeOffset},
915 {{al, r0, r5, minus, 2233, Offset},
916 "al r0 r5 minus 2233 Offset",
917 "NegativeOffset_al_r0_r5_minus_2233_Offset",
918 ARRAY_SIZE(kNegativeOffset),
919 kNegativeOffset},
920 {{al, r2, r1, minus, 3608, Offset},
921 "al r2 r1 minus 3608 Offset",
922 "NegativeOffset_al_r2_r1_minus_3608_Offset",
923 ARRAY_SIZE(kNegativeOffset),
924 kNegativeOffset},
925 {{al, r7, r5, minus, 624, Offset},
926 "al r7 r5 minus 624 Offset",
927 "NegativeOffset_al_r7_r5_minus_624_Offset",
928 ARRAY_SIZE(kNegativeOffset),
929 kNegativeOffset},
930 {{al, r11, r5, minus, 3774, Offset},
931 "al r11 r5 minus 3774 Offset",
932 "NegativeOffset_al_r11_r5_minus_3774_Offset",
933 ARRAY_SIZE(kNegativeOffset),
934 kNegativeOffset},
935 {{al, r3, r6, minus, 2427, Offset},
936 "al r3 r6 minus 2427 Offset",
937 "NegativeOffset_al_r3_r6_minus_2427_Offset",
938 ARRAY_SIZE(kNegativeOffset),
939 kNegativeOffset},
940 {{al, r7, r8, minus, 322, Offset},
941 "al r7 r8 minus 322 Offset",
942 "NegativeOffset_al_r7_r8_minus_322_Offset",
943 ARRAY_SIZE(kNegativeOffset),
944 kNegativeOffset},
945 {{al, r5, r8, minus, 3626, Offset},
946 "al r5 r8 minus 3626 Offset",
947 "NegativeOffset_al_r5_r8_minus_3626_Offset",
948 ARRAY_SIZE(kNegativeOffset),
949 kNegativeOffset},
950 {{al, r3, r11, minus, 1867, Offset},
951 "al r3 r11 minus 1867 Offset",
952 "NegativeOffset_al_r3_r11_minus_1867_Offset",
953 ARRAY_SIZE(kNegativeOffset),
954 kNegativeOffset},
955 {{al, r14, r12, minus, 2864, Offset},
956 "al r14 r12 minus 2864 Offset",
957 "NegativeOffset_al_r14_r12_minus_2864_Offset",
958 ARRAY_SIZE(kNegativeOffset),
959 kNegativeOffset},
960 {{al, r5, r9, minus, 4018, Offset},
961 "al r5 r9 minus 4018 Offset",
962 "NegativeOffset_al_r5_r9_minus_4018_Offset",
963 ARRAY_SIZE(kNegativeOffset),
964 kNegativeOffset},
965 {{al, r3, r2, minus, 1231, Offset},
966 "al r3 r2 minus 1231 Offset",
967 "NegativeOffset_al_r3_r2_minus_1231_Offset",
968 ARRAY_SIZE(kNegativeOffset),
969 kNegativeOffset},
970 {{al, r2, r3, minus, 601, Offset},
971 "al r2 r3 minus 601 Offset",
972 "NegativeOffset_al_r2_r3_minus_601_Offset",
973 ARRAY_SIZE(kNegativeOffset),
974 kNegativeOffset},
975 {{al, r0, r2, minus, 263, Offset},
976 "al r0 r2 minus 263 Offset",
977 "NegativeOffset_al_r0_r2_minus_263_Offset",
978 ARRAY_SIZE(kNegativeOffset),
979 kNegativeOffset},
980 {{al, r5, r8, minus, 1234, Offset},
981 "al r5 r8 minus 1234 Offset",
982 "NegativeOffset_al_r5_r8_minus_1234_Offset",
983 ARRAY_SIZE(kNegativeOffset),
984 kNegativeOffset},
985 {{al, r3, r10, minus, 2311, Offset},
986 "al r3 r10 minus 2311 Offset",
987 "NegativeOffset_al_r3_r10_minus_2311_Offset",
988 ARRAY_SIZE(kNegativeOffset),
989 kNegativeOffset},
990 {{al, r5, r1, minus, 3714, Offset},
991 "al r5 r1 minus 3714 Offset",
992 "NegativeOffset_al_r5_r1_minus_3714_Offset",
993 ARRAY_SIZE(kNegativeOffset),
994 kNegativeOffset},
995 {{al, r5, r1, minus, 1479, Offset},
996 "al r5 r1 minus 1479 Offset",
997 "NegativeOffset_al_r5_r1_minus_1479_Offset",
998 ARRAY_SIZE(kNegativeOffset),
999 kNegativeOffset},
1000 {{al, r1, r12, minus, 213, Offset},
1001 "al r1 r12 minus 213 Offset",
1002 "NegativeOffset_al_r1_r12_minus_213_Offset",
1003 ARRAY_SIZE(kNegativeOffset),
1004 kNegativeOffset},
1005 {{al, r0, r9, minus, 3071, Offset},
1006 "al r0 r9 minus 3071 Offset",
1007 "NegativeOffset_al_r0_r9_minus_3071_Offset",
1008 ARRAY_SIZE(kNegativeOffset),
1009 kNegativeOffset},
1010 {{al, r9, r12, minus, 2, Offset},
1011 "al r9 r12 minus 2 Offset",
1012 "NegativeOffset_al_r9_r12_minus_2_Offset",
1013 ARRAY_SIZE(kNegativeOffset),
1014 kNegativeOffset},
1015 {{al, r11, r3, minus, 831, Offset},
1016 "al r11 r3 minus 831 Offset",
1017 "NegativeOffset_al_r11_r3_minus_831_Offset",
1018 ARRAY_SIZE(kNegativeOffset),
1019 kNegativeOffset},
1020 {{al, r11, r0, minus, 3443, Offset},
1021 "al r11 r0 minus 3443 Offset",
1022 "NegativeOffset_al_r11_r0_minus_3443_Offset",
1023 ARRAY_SIZE(kNegativeOffset),
1024 kNegativeOffset},
1025 {{al, r9, r7, minus, 3256, Offset},
1026 "al r9 r7 minus 3256 Offset",
1027 "NegativeOffset_al_r9_r7_minus_3256_Offset",
1028 ARRAY_SIZE(kNegativeOffset),
1029 kNegativeOffset},
1030 {{al, r8, r9, minus, 1372, Offset},
1031 "al r8 r9 minus 1372 Offset",
1032 "NegativeOffset_al_r8_r9_minus_1372_Offset",
1033 ARRAY_SIZE(kNegativeOffset),
1034 kNegativeOffset},
1035 {{al, r0, r7, minus, 1665, Offset},
1036 "al r0 r7 minus 1665 Offset",
1037 "NegativeOffset_al_r0_r7_minus_1665_Offset",
1038 ARRAY_SIZE(kNegativeOffset),
1039 kNegativeOffset},
1040 {{al, r7, r0, minus, 3325, Offset},
1041 "al r7 r0 minus 3325 Offset",
1042 "NegativeOffset_al_r7_r0_minus_3325_Offset",
1043 ARRAY_SIZE(kNegativeOffset),
1044 kNegativeOffset},
1045 {{al, r4, r5, minus, 132, Offset},
1046 "al r4 r5 minus 132 Offset",
1047 "NegativeOffset_al_r4_r5_minus_132_Offset",
1048 ARRAY_SIZE(kNegativeOffset),
1049 kNegativeOffset},
1050 {{al, r3, r10, minus, 828, Offset},
1051 "al r3 r10 minus 828 Offset",
1052 "NegativeOffset_al_r3_r10_minus_828_Offset",
1053 ARRAY_SIZE(kNegativeOffset),
1054 kNegativeOffset},
1055 {{al, r9, r12, minus, 3002, Offset},
1056 "al r9 r12 minus 3002 Offset",
1057 "NegativeOffset_al_r9_r12_minus_3002_Offset",
1058 ARRAY_SIZE(kNegativeOffset),
1059 kNegativeOffset},
1060 {{al, r7, r9, minus, 371, Offset},
1061 "al r7 r9 minus 371 Offset",
1062 "NegativeOffset_al_r7_r9_minus_371_Offset",
1063 ARRAY_SIZE(kNegativeOffset),
1064 kNegativeOffset},
1065 {{al, r5, r14, minus, 2326, Offset},
1066 "al r5 r14 minus 2326 Offset",
1067 "NegativeOffset_al_r5_r14_minus_2326_Offset",
1068 ARRAY_SIZE(kNegativeOffset),
1069 kNegativeOffset},
1070 {{al, r8, r7, minus, 811, Offset},
1071 "al r8 r7 minus 811 Offset",
1072 "NegativeOffset_al_r8_r7_minus_811_Offset",
1073 ARRAY_SIZE(kNegativeOffset),
1074 kNegativeOffset},
1075 {{al, r2, r11, minus, 2946, Offset},
1076 "al r2 r11 minus 2946 Offset",
1077 "NegativeOffset_al_r2_r11_minus_2946_Offset",
1078 ARRAY_SIZE(kNegativeOffset),
1079 kNegativeOffset},
1080 {{al, r11, r12, minus, 216, Offset},
1081 "al r11 r12 minus 216 Offset",
1082 "NegativeOffset_al_r11_r12_minus_216_Offset",
1083 ARRAY_SIZE(kNegativeOffset),
1084 kNegativeOffset},
1085 {{al, r4, r12, minus, 2651, Offset},
1086 "al r4 r12 minus 2651 Offset",
1087 "NegativeOffset_al_r4_r12_minus_2651_Offset",
1088 ARRAY_SIZE(kNegativeOffset),
1089 kNegativeOffset},
1090 {{al, r14, r5, minus, 2072, Offset},
1091 "al r14 r5 minus 2072 Offset",
1092 "NegativeOffset_al_r14_r5_minus_2072_Offset",
1093 ARRAY_SIZE(kNegativeOffset),
1094 kNegativeOffset},
1095 {{al, r12, r4, minus, 2690, Offset},
1096 "al r12 r4 minus 2690 Offset",
1097 "NegativeOffset_al_r12_r4_minus_2690_Offset",
1098 ARRAY_SIZE(kNegativeOffset),
1099 kNegativeOffset},
1100 {{al, r0, r9, minus, 3041, Offset},
1101 "al r0 r9 minus 3041 Offset",
1102 "NegativeOffset_al_r0_r9_minus_3041_Offset",
1103 ARRAY_SIZE(kNegativeOffset),
1104 kNegativeOffset},
1105 {{al, r8, r6, minus, 732, Offset},
1106 "al r8 r6 minus 732 Offset",
1107 "NegativeOffset_al_r8_r6_minus_732_Offset",
1108 ARRAY_SIZE(kNegativeOffset),
1109 kNegativeOffset},
1110 {{al, r7, r4, minus, 1567, Offset},
1111 "al r7 r4 minus 1567 Offset",
1112 "NegativeOffset_al_r7_r4_minus_1567_Offset",
1113 ARRAY_SIZE(kNegativeOffset),
1114 kNegativeOffset},
1115 {{al, r0, r9, minus, 2036, Offset},
1116 "al r0 r9 minus 2036 Offset",
1117 "NegativeOffset_al_r0_r9_minus_2036_Offset",
1118 ARRAY_SIZE(kNegativeOffset),
1119 kNegativeOffset},
1120 {{al, r7, r9, minus, 618, Offset},
1121 "al r7 r9 minus 618 Offset",
1122 "NegativeOffset_al_r7_r9_minus_618_Offset",
1123 ARRAY_SIZE(kNegativeOffset),
1124 kNegativeOffset},
1125 {{al, r4, r10, minus, 1437, Offset},
1126 "al r4 r10 minus 1437 Offset",
1127 "NegativeOffset_al_r4_r10_minus_1437_Offset",
1128 ARRAY_SIZE(kNegativeOffset),
1129 kNegativeOffset},
1130 {{al, r4, r9, minus, 3105, Offset},
1131 "al r4 r9 minus 3105 Offset",
1132 "NegativeOffset_al_r4_r9_minus_3105_Offset",
1133 ARRAY_SIZE(kNegativeOffset),
1134 kNegativeOffset},
1135 {{al, r5, r6, minus, 1116, Offset},
1136 "al r5 r6 minus 1116 Offset",
1137 "NegativeOffset_al_r5_r6_minus_1116_Offset",
1138 ARRAY_SIZE(kNegativeOffset),
1139 kNegativeOffset},
1140 {{al, r2, r0, minus, 2892, Offset},
1141 "al r2 r0 minus 2892 Offset",
1142 "NegativeOffset_al_r2_r0_minus_2892_Offset",
1143 ARRAY_SIZE(kNegativeOffset),
1144 kNegativeOffset},
1145 {{al, r1, r8, minus, 3069, Offset},
1146 "al r1 r8 minus 3069 Offset",
1147 "NegativeOffset_al_r1_r8_minus_3069_Offset",
1148 ARRAY_SIZE(kNegativeOffset),
1149 kNegativeOffset},
1150 {{al, r3, r2, minus, 1498, Offset},
1151 "al r3 r2 minus 1498 Offset",
1152 "NegativeOffset_al_r3_r2_minus_1498_Offset",
1153 ARRAY_SIZE(kNegativeOffset),
1154 kNegativeOffset},
1155 {{al, r5, r9, minus, 1999, Offset},
1156 "al r5 r9 minus 1999 Offset",
1157 "NegativeOffset_al_r5_r9_minus_1999_Offset",
1158 ARRAY_SIZE(kNegativeOffset),
1159 kNegativeOffset},
1160 {{al, r5, r6, minus, 2588, Offset},
1161 "al r5 r6 minus 2588 Offset",
1162 "NegativeOffset_al_r5_r6_minus_2588_Offset",
1163 ARRAY_SIZE(kNegativeOffset),
1164 kNegativeOffset},
1165 {{al, r5, r12, minus, 2792, Offset},
1166 "al r5 r12 minus 2792 Offset",
1167 "NegativeOffset_al_r5_r12_minus_2792_Offset",
1168 ARRAY_SIZE(kNegativeOffset),
1169 kNegativeOffset},
1170 {{al, r7, r10, minus, 251, Offset},
1171 "al r7 r10 minus 251 Offset",
1172 "NegativeOffset_al_r7_r10_minus_251_Offset",
1173 ARRAY_SIZE(kNegativeOffset),
1174 kNegativeOffset},
1175 {{al, r6, r8, minus, 3696, Offset},
1176 "al r6 r8 minus 3696 Offset",
1177 "NegativeOffset_al_r6_r8_minus_3696_Offset",
1178 ARRAY_SIZE(kNegativeOffset),
1179 kNegativeOffset},
1180 {{al, r7, r6, minus, 3856, Offset},
1181 "al r7 r6 minus 3856 Offset",
1182 "NegativeOffset_al_r7_r6_minus_3856_Offset",
1183 ARRAY_SIZE(kNegativeOffset),
1184 kNegativeOffset},
1185 {{al, r9, r6, minus, 233, Offset},
1186 "al r9 r6 minus 233 Offset",
1187 "NegativeOffset_al_r9_r6_minus_233_Offset",
1188 ARRAY_SIZE(kNegativeOffset),
1189 kNegativeOffset},
1190 {{al, r6, r5, minus, 3366, Offset},
1191 "al r6 r5 minus 3366 Offset",
1192 "NegativeOffset_al_r6_r5_minus_3366_Offset",
1193 ARRAY_SIZE(kNegativeOffset),
1194 kNegativeOffset},
1195 {{al, r8, r3, minus, 2359, Offset},
1196 "al r8 r3 minus 2359 Offset",
1197 "NegativeOffset_al_r8_r3_minus_2359_Offset",
1198 ARRAY_SIZE(kNegativeOffset),
1199 kNegativeOffset},
1200 {{al, r4, r9, minus, 2866, Offset},
1201 "al r4 r9 minus 2866 Offset",
1202 "NegativeOffset_al_r4_r9_minus_2866_Offset",
1203 ARRAY_SIZE(kNegativeOffset),
1204 kNegativeOffset},
1205 {{al, r6, r3, minus, 2381, Offset},
1206 "al r6 r3 minus 2381 Offset",
1207 "NegativeOffset_al_r6_r3_minus_2381_Offset",
1208 ARRAY_SIZE(kNegativeOffset),
1209 kNegativeOffset},
1210 {{al, r5, r3, minus, 3221, Offset},
1211 "al r5 r3 minus 3221 Offset",
1212 "NegativeOffset_al_r5_r3_minus_3221_Offset",
1213 ARRAY_SIZE(kNegativeOffset),
1214 kNegativeOffset},
1215 {{al, r10, r8, minus, 2036, Offset},
1216 "al r10 r8 minus 2036 Offset",
1217 "NegativeOffset_al_r10_r8_minus_2036_Offset",
1218 ARRAY_SIZE(kNegativeOffset),
1219 kNegativeOffset},
1220 {{al, r4, r0, minus, 2591, Offset},
1221 "al r4 r0 minus 2591 Offset",
1222 "NegativeOffset_al_r4_r0_minus_2591_Offset",
1223 ARRAY_SIZE(kNegativeOffset),
1224 kNegativeOffset},
1225 {{al, r4, r10, minus, 2040, Offset},
1226 "al r4 r10 minus 2040 Offset",
1227 "NegativeOffset_al_r4_r10_minus_2040_Offset",
1228 ARRAY_SIZE(kNegativeOffset),
1229 kNegativeOffset},
1230 {{al, r9, r7, minus, 2929, Offset},
1231 "al r9 r7 minus 2929 Offset",
1232 "NegativeOffset_al_r9_r7_minus_2929_Offset",
1233 ARRAY_SIZE(kNegativeOffset),
1234 kNegativeOffset},
1235 {{al, r1, r14, minus, 1867, Offset},
1236 "al r1 r14 minus 1867 Offset",
1237 "NegativeOffset_al_r1_r14_minus_1867_Offset",
1238 ARRAY_SIZE(kNegativeOffset),
1239 kNegativeOffset},
1240 {{al, r9, r0, minus, 2945, Offset},
1241 "al r9 r0 minus 2945 Offset",
1242 "NegativeOffset_al_r9_r0_minus_2945_Offset",
1243 ARRAY_SIZE(kNegativeOffset),
1244 kNegativeOffset},
1245 {{al, r14, r3, minus, 2403, Offset},
1246 "al r14 r3 minus 2403 Offset",
1247 "NegativeOffset_al_r14_r3_minus_2403_Offset",
1248 ARRAY_SIZE(kNegativeOffset),
1249 kNegativeOffset},
1250 {{al, r12, r8, minus, 1999, Offset},
1251 "al r12 r8 minus 1999 Offset",
1252 "NegativeOffset_al_r12_r8_minus_1999_Offset",
1253 ARRAY_SIZE(kNegativeOffset),
1254 kNegativeOffset},
1255 {{al, r9, r5, minus, 3994, Offset},
1256 "al r9 r5 minus 3994 Offset",
1257 "NegativeOffset_al_r9_r5_minus_3994_Offset",
1258 ARRAY_SIZE(kNegativeOffset),
1259 kNegativeOffset},
1260 {{al, r14, r3, minus, 2180, Offset},
1261 "al r14 r3 minus 2180 Offset",
1262 "NegativeOffset_al_r14_r3_minus_2180_Offset",
1263 ARRAY_SIZE(kNegativeOffset),
1264 kNegativeOffset},
1265 {{al, r1, r5, minus, 3914, Offset},
1266 "al r1 r5 minus 3914 Offset",
1267 "NegativeOffset_al_r1_r5_minus_3914_Offset",
1268 ARRAY_SIZE(kNegativeOffset),
1269 kNegativeOffset},
1270 {{al, r4, r10, minus, 3079, Offset},
1271 "al r4 r10 minus 3079 Offset",
1272 "NegativeOffset_al_r4_r10_minus_3079_Offset",
1273 ARRAY_SIZE(kNegativeOffset),
1274 kNegativeOffset},
1275 {{al, r8, r14, minus, 3266, Offset},
1276 "al r8 r14 minus 3266 Offset",
1277 "NegativeOffset_al_r8_r14_minus_3266_Offset",
1278 ARRAY_SIZE(kNegativeOffset),
1279 kNegativeOffset},
1280 {{al, r4, r11, minus, 1732, Offset},
1281 "al r4 r11 minus 1732 Offset",
1282 "NegativeOffset_al_r4_r11_minus_1732_Offset",
1283 ARRAY_SIZE(kNegativeOffset),
1284 kNegativeOffset},
1285 {{al, r11, r5, minus, 806, Offset},
1286 "al r11 r5 minus 806 Offset",
1287 "NegativeOffset_al_r11_r5_minus_806_Offset",
1288 ARRAY_SIZE(kNegativeOffset),
1289 kNegativeOffset},
1290 {{al, r9, r7, minus, 3039, Offset},
1291 "al r9 r7 minus 3039 Offset",
1292 "NegativeOffset_al_r9_r7_minus_3039_Offset",
1293 ARRAY_SIZE(kNegativeOffset),
1294 kNegativeOffset},
1295 {{al, r12, r9, minus, 2453, Offset},
1296 "al r12 r9 minus 2453 Offset",
1297 "NegativeOffset_al_r12_r9_minus_2453_Offset",
1298 ARRAY_SIZE(kNegativeOffset),
1299 kNegativeOffset},
1300 {{al, r0, r7, minus, 3626, Offset},
1301 "al r0 r7 minus 3626 Offset",
1302 "NegativeOffset_al_r0_r7_minus_3626_Offset",
1303 ARRAY_SIZE(kNegativeOffset),
1304 kNegativeOffset},
1305 {{al, r3, r11, minus, 1981, Offset},
1306 "al r3 r11 minus 1981 Offset",
1307 "NegativeOffset_al_r3_r11_minus_1981_Offset",
1308 ARRAY_SIZE(kNegativeOffset),
1309 kNegativeOffset},
1310 {{al, r2, r8, minus, 3082, Offset},
1311 "al r2 r8 minus 3082 Offset",
1312 "NegativeOffset_al_r2_r8_minus_3082_Offset",
1313 ARRAY_SIZE(kNegativeOffset),
1314 kNegativeOffset},
1315 {{al, r1, r11, minus, 3608, Offset},
1316 "al r1 r11 minus 3608 Offset",
1317 "NegativeOffset_al_r1_r11_minus_3608_Offset",
1318 ARRAY_SIZE(kNegativeOffset),
1319 kNegativeOffset},
1320 {{al, r5, r11, minus, 3391, Offset},
1321 "al r5 r11 minus 3391 Offset",
1322 "NegativeOffset_al_r5_r11_minus_3391_Offset",
1323 ARRAY_SIZE(kNegativeOffset),
1324 kNegativeOffset},
1325 {{al, r7, r12, minus, 872, Offset},
1326 "al r7 r12 minus 872 Offset",
1327 "NegativeOffset_al_r7_r12_minus_872_Offset",
1328 ARRAY_SIZE(kNegativeOffset),
1329 kNegativeOffset},
1330 {{al, r14, r11, plus, 1506, PostIndex},
1331 "al r14 r11 plus 1506 PostIndex",
1332 "PositivePostIndex_al_r14_r11_plus_1506_PostIndex",
1333 ARRAY_SIZE(kPositivePostIndex),
1334 kPositivePostIndex},
1335 {{al, r7, r14, plus, 3399, PostIndex},
1336 "al r7 r14 plus 3399 PostIndex",
1337 "PositivePostIndex_al_r7_r14_plus_3399_PostIndex",
1338 ARRAY_SIZE(kPositivePostIndex),
1339 kPositivePostIndex},
1340 {{al, r11, r6, plus, 2588, PostIndex},
1341 "al r11 r6 plus 2588 PostIndex",
1342 "PositivePostIndex_al_r11_r6_plus_2588_PostIndex",
1343 ARRAY_SIZE(kPositivePostIndex),
1344 kPositivePostIndex},
1345 {{al, r4, r9, plus, 2906, PostIndex},
1346 "al r4 r9 plus 2906 PostIndex",
1347 "PositivePostIndex_al_r4_r9_plus_2906_PostIndex",
1348 ARRAY_SIZE(kPositivePostIndex),
1349 kPositivePostIndex},
1350 {{al, r4, r8, plus, 1916, PostIndex},
1351 "al r4 r8 plus 1916 PostIndex",
1352 "PositivePostIndex_al_r4_r8_plus_1916_PostIndex",
1353 ARRAY_SIZE(kPositivePostIndex),
1354 kPositivePostIndex},
1355 {{al, r6, r0, plus, 1835, PostIndex},
1356 "al r6 r0 plus 1835 PostIndex",
1357 "PositivePostIndex_al_r6_r0_plus_1835_PostIndex",
1358 ARRAY_SIZE(kPositivePostIndex),
1359 kPositivePostIndex},
1360 {{al, r1, r14, plus, 2984, PostIndex},
1361 "al r1 r14 plus 2984 PostIndex",
1362 "PositivePostIndex_al_r1_r14_plus_2984_PostIndex",
1363 ARRAY_SIZE(kPositivePostIndex),
1364 kPositivePostIndex},
1365 {{al, r9, r12, plus, 3994, PostIndex},
1366 "al r9 r12 plus 3994 PostIndex",
1367 "PositivePostIndex_al_r9_r12_plus_3994_PostIndex",
1368 ARRAY_SIZE(kPositivePostIndex),
1369 kPositivePostIndex},
1370 {{al, r10, r5, plus, 766, PostIndex},
1371 "al r10 r5 plus 766 PostIndex",
1372 "PositivePostIndex_al_r10_r5_plus_766_PostIndex",
1373 ARRAY_SIZE(kPositivePostIndex),
1374 kPositivePostIndex},
1375 {{al, r5, r9, plus, 188, PostIndex},
1376 "al r5 r9 plus 188 PostIndex",
1377 "PositivePostIndex_al_r5_r9_plus_188_PostIndex",
1378 ARRAY_SIZE(kPositivePostIndex),
1379 kPositivePostIndex},
1380 {{al, r11, r14, plus, 479, PostIndex},
1381 "al r11 r14 plus 479 PostIndex",
1382 "PositivePostIndex_al_r11_r14_plus_479_PostIndex",
1383 ARRAY_SIZE(kPositivePostIndex),
1384 kPositivePostIndex},
1385 {{al, r6, r14, plus, 2797, PostIndex},
1386 "al r6 r14 plus 2797 PostIndex",
1387 "PositivePostIndex_al_r6_r14_plus_2797_PostIndex",
1388 ARRAY_SIZE(kPositivePostIndex),
1389 kPositivePostIndex},
1390 {{al, r5, r8, plus, 3170, PostIndex},
1391 "al r5 r8 plus 3170 PostIndex",
1392 "PositivePostIndex_al_r5_r8_plus_3170_PostIndex",
1393 ARRAY_SIZE(kPositivePostIndex),
1394 kPositivePostIndex},
1395 {{al, r0, r2, plus, 663, PostIndex},
1396 "al r0 r2 plus 663 PostIndex",
1397 "PositivePostIndex_al_r0_r2_plus_663_PostIndex",
1398 ARRAY_SIZE(kPositivePostIndex),
1399 kPositivePostIndex},
1400 {{al, r14, r0, plus, 1097, PostIndex},
1401 "al r14 r0 plus 1097 PostIndex",
1402 "PositivePostIndex_al_r14_r0_plus_1097_PostIndex",
1403 ARRAY_SIZE(kPositivePostIndex),
1404 kPositivePostIndex},
1405 {{al, r0, r7, plus, 3481, PostIndex},
1406 "al r0 r7 plus 3481 PostIndex",
1407 "PositivePostIndex_al_r0_r7_plus_3481_PostIndex",
1408 ARRAY_SIZE(kPositivePostIndex),
1409 kPositivePostIndex},
1410 {{al, r5, r2, plus, 2183, PostIndex},
1411 "al r5 r2 plus 2183 PostIndex",
1412 "PositivePostIndex_al_r5_r2_plus_2183_PostIndex",
1413 ARRAY_SIZE(kPositivePostIndex),
1414 kPositivePostIndex},
1415 {{al, r7, r4, plus, 1948, PostIndex},
1416 "al r7 r4 plus 1948 PostIndex",
1417 "PositivePostIndex_al_r7_r4_plus_1948_PostIndex",
1418 ARRAY_SIZE(kPositivePostIndex),
1419 kPositivePostIndex},
1420 {{al, r3, r12, plus, 2047, PostIndex},
1421 "al r3 r12 plus 2047 PostIndex",
1422 "PositivePostIndex_al_r3_r12_plus_2047_PostIndex",
1423 ARRAY_SIZE(kPositivePostIndex),
1424 kPositivePostIndex},
1425 {{al, r4, r0, plus, 2451, PostIndex},
1426 "al r4 r0 plus 2451 PostIndex",
1427 "PositivePostIndex_al_r4_r0_plus_2451_PostIndex",
1428 ARRAY_SIZE(kPositivePostIndex),
1429 kPositivePostIndex},
1430 {{al, r1, r4, plus, 3057, PostIndex},
1431 "al r1 r4 plus 3057 PostIndex",
1432 "PositivePostIndex_al_r1_r4_plus_3057_PostIndex",
1433 ARRAY_SIZE(kPositivePostIndex),
1434 kPositivePostIndex},
1435 {{al, r6, r9, plus, 3308, PostIndex},
1436 "al r6 r9 plus 3308 PostIndex",
1437 "PositivePostIndex_al_r6_r9_plus_3308_PostIndex",
1438 ARRAY_SIZE(kPositivePostIndex),
1439 kPositivePostIndex},
1440 {{al, r0, r14, plus, 2677, PostIndex},
1441 "al r0 r14 plus 2677 PostIndex",
1442 "PositivePostIndex_al_r0_r14_plus_2677_PostIndex",
1443 ARRAY_SIZE(kPositivePostIndex),
1444 kPositivePostIndex},
1445 {{al, r3, r1, plus, 1601, PostIndex},
1446 "al r3 r1 plus 1601 PostIndex",
1447 "PositivePostIndex_al_r3_r1_plus_1601_PostIndex",
1448 ARRAY_SIZE(kPositivePostIndex),
1449 kPositivePostIndex},
1450 {{al, r2, r1, plus, 662, PostIndex},
1451 "al r2 r1 plus 662 PostIndex",
1452 "PositivePostIndex_al_r2_r1_plus_662_PostIndex",
1453 ARRAY_SIZE(kPositivePostIndex),
1454 kPositivePostIndex},
1455 {{al, r3, r2, plus, 1485, PostIndex},
1456 "al r3 r2 plus 1485 PostIndex",
1457 "PositivePostIndex_al_r3_r2_plus_1485_PostIndex",
1458 ARRAY_SIZE(kPositivePostIndex),
1459 kPositivePostIndex},
1460 {{al, r7, r3, plus, 3413, PostIndex},
1461 "al r7 r3 plus 3413 PostIndex",
1462 "PositivePostIndex_al_r7_r3_plus_3413_PostIndex",
1463 ARRAY_SIZE(kPositivePostIndex),
1464 kPositivePostIndex},
1465 {{al, r9, r4, plus, 2175, PostIndex},
1466 "al r9 r4 plus 2175 PostIndex",
1467 "PositivePostIndex_al_r9_r4_plus_2175_PostIndex",
1468 ARRAY_SIZE(kPositivePostIndex),
1469 kPositivePostIndex},
1470 {{al, r1, r2, plus, 3517, PostIndex},
1471 "al r1 r2 plus 3517 PostIndex",
1472 "PositivePostIndex_al_r1_r2_plus_3517_PostIndex",
1473 ARRAY_SIZE(kPositivePostIndex),
1474 kPositivePostIndex},
1475 {{al, r8, r6, plus, 2535, PostIndex},
1476 "al r8 r6 plus 2535 PostIndex",
1477 "PositivePostIndex_al_r8_r6_plus_2535_PostIndex",
1478 ARRAY_SIZE(kPositivePostIndex),
1479 kPositivePostIndex},
1480 {{al, r12, r2, plus, 2982, PostIndex},
1481 "al r12 r2 plus 2982 PostIndex",
1482 "PositivePostIndex_al_r12_r2_plus_2982_PostIndex",
1483 ARRAY_SIZE(kPositivePostIndex),
1484 kPositivePostIndex},
1485 {{al, r0, r5, plus, 1867, PostIndex},
1486 "al r0 r5 plus 1867 PostIndex",
1487 "PositivePostIndex_al_r0_r5_plus_1867_PostIndex",
1488 ARRAY_SIZE(kPositivePostIndex),
1489 kPositivePostIndex},
1490 {{al, r11, r1, plus, 3209, PostIndex},
1491 "al r11 r1 plus 3209 PostIndex",
1492 "PositivePostIndex_al_r11_r1_plus_3209_PostIndex",
1493 ARRAY_SIZE(kPositivePostIndex),
1494 kPositivePostIndex},
1495 {{al, r6, r10, plus, 977, PostIndex},
1496 "al r6 r10 plus 977 PostIndex",
1497 "PositivePostIndex_al_r6_r10_plus_977_PostIndex",
1498 ARRAY_SIZE(kPositivePostIndex),
1499 kPositivePostIndex},
1500 {{al, r0, r5, plus, 3239, PostIndex},
1501 "al r0 r5 plus 3239 PostIndex",
1502 "PositivePostIndex_al_r0_r5_plus_3239_PostIndex",
1503 ARRAY_SIZE(kPositivePostIndex),
1504 kPositivePostIndex},
1505 {{al, r7, r0, plus, 1808, PostIndex},
1506 "al r7 r0 plus 1808 PostIndex",
1507 "PositivePostIndex_al_r7_r0_plus_1808_PostIndex",
1508 ARRAY_SIZE(kPositivePostIndex),
1509 kPositivePostIndex},
1510 {{al, r6, r7, plus, 3787, PostIndex},
1511 "al r6 r7 plus 3787 PostIndex",
1512 "PositivePostIndex_al_r6_r7_plus_3787_PostIndex",
1513 ARRAY_SIZE(kPositivePostIndex),
1514 kPositivePostIndex},
1515 {{al, r4, r7, plus, 678, PostIndex},
1516 "al r4 r7 plus 678 PostIndex",
1517 "PositivePostIndex_al_r4_r7_plus_678_PostIndex",
1518 ARRAY_SIZE(kPositivePostIndex),
1519 kPositivePostIndex},
1520 {{al, r7, r9, plus, 4090, PostIndex},
1521 "al r7 r9 plus 4090 PostIndex",
1522 "PositivePostIndex_al_r7_r9_plus_4090_PostIndex",
1523 ARRAY_SIZE(kPositivePostIndex),
1524 kPositivePostIndex},
1525 {{al, r0, r2, plus, 1438, PostIndex},
1526 "al r0 r2 plus 1438 PostIndex",
1527 "PositivePostIndex_al_r0_r2_plus_1438_PostIndex",
1528 ARRAY_SIZE(kPositivePostIndex),
1529 kPositivePostIndex},
1530 {{al, r2, r5, plus, 3195, PostIndex},
1531 "al r2 r5 plus 3195 PostIndex",
1532 "PositivePostIndex_al_r2_r5_plus_3195_PostIndex",
1533 ARRAY_SIZE(kPositivePostIndex),
1534 kPositivePostIndex},
1535 {{al, r8, r2, plus, 1922, PostIndex},
1536 "al r8 r2 plus 1922 PostIndex",
1537 "PositivePostIndex_al_r8_r2_plus_1922_PostIndex",
1538 ARRAY_SIZE(kPositivePostIndex),
1539 kPositivePostIndex},
1540 {{al, r8, r1, plus, 4095, PostIndex},
1541 "al r8 r1 plus 4095 PostIndex",
1542 "PositivePostIndex_al_r8_r1_plus_4095_PostIndex",
1543 ARRAY_SIZE(kPositivePostIndex),
1544 kPositivePostIndex},
1545 {{al, r1, r9, plus, 1261, PostIndex},
1546 "al r1 r9 plus 1261 PostIndex",
1547 "PositivePostIndex_al_r1_r9_plus_1261_PostIndex",
1548 ARRAY_SIZE(kPositivePostIndex),
1549 kPositivePostIndex},
1550 {{al, r12, r11, plus, 2718, PostIndex},
1551 "al r12 r11 plus 2718 PostIndex",
1552 "PositivePostIndex_al_r12_r11_plus_2718_PostIndex",
1553 ARRAY_SIZE(kPositivePostIndex),
1554 kPositivePostIndex},
1555 {{al, r9, r0, plus, 132, PostIndex},
1556 "al r9 r0 plus 132 PostIndex",
1557 "PositivePostIndex_al_r9_r0_plus_132_PostIndex",
1558 ARRAY_SIZE(kPositivePostIndex),
1559 kPositivePostIndex},
1560 {{al, r11, r5, plus, 1601, PostIndex},
1561 "al r11 r5 plus 1601 PostIndex",
1562 "PositivePostIndex_al_r11_r5_plus_1601_PostIndex",
1563 ARRAY_SIZE(kPositivePostIndex),
1564 kPositivePostIndex},
1565 {{al, r14, r4, plus, 19, PostIndex},
1566 "al r14 r4 plus 19 PostIndex",
1567 "PositivePostIndex_al_r14_r4_plus_19_PostIndex",
1568 ARRAY_SIZE(kPositivePostIndex),
1569 kPositivePostIndex},
1570 {{al, r6, r0, plus, 386, PostIndex},
1571 "al r6 r0 plus 386 PostIndex",
1572 "PositivePostIndex_al_r6_r0_plus_386_PostIndex",
1573 ARRAY_SIZE(kPositivePostIndex),
1574 kPositivePostIndex},
1575 {{al, r14, r2, plus, 672, PostIndex},
1576 "al r14 r2 plus 672 PostIndex",
1577 "PositivePostIndex_al_r14_r2_plus_672_PostIndex",
1578 ARRAY_SIZE(kPositivePostIndex),
1579 kPositivePostIndex},
1580 {{al, r1, r10, plus, 3626, PostIndex},
1581 "al r1 r10 plus 3626 PostIndex",
1582 "PositivePostIndex_al_r1_r10_plus_3626_PostIndex",
1583 ARRAY_SIZE(kPositivePostIndex),
1584 kPositivePostIndex},
1585 {{al, r9, r14, plus, 2813, PostIndex},
1586 "al r9 r14 plus 2813 PostIndex",
1587 "PositivePostIndex_al_r9_r14_plus_2813_PostIndex",
1588 ARRAY_SIZE(kPositivePostIndex),
1589 kPositivePostIndex},
1590 {{al, r9, r3, plus, 2091, PostIndex},
1591 "al r9 r3 plus 2091 PostIndex",
1592 "PositivePostIndex_al_r9_r3_plus_2091_PostIndex",
1593 ARRAY_SIZE(kPositivePostIndex),
1594 kPositivePostIndex},
1595 {{al, r5, r3, plus, 932, PostIndex},
1596 "al r5 r3 plus 932 PostIndex",
1597 "PositivePostIndex_al_r5_r3_plus_932_PostIndex",
1598 ARRAY_SIZE(kPositivePostIndex),
1599 kPositivePostIndex},
1600 {{al, r0, r8, plus, 970, PostIndex},
1601 "al r0 r8 plus 970 PostIndex",
1602 "PositivePostIndex_al_r0_r8_plus_970_PostIndex",
1603 ARRAY_SIZE(kPositivePostIndex),
1604 kPositivePostIndex},
1605 {{al, r0, r5, plus, 3610, PostIndex},
1606 "al r0 r5 plus 3610 PostIndex",
1607 "PositivePostIndex_al_r0_r5_plus_3610_PostIndex",
1608 ARRAY_SIZE(kPositivePostIndex),
1609 kPositivePostIndex},
1610 {{al, r1, r5, plus, 2180, PostIndex},
1611 "al r1 r5 plus 2180 PostIndex",
1612 "PositivePostIndex_al_r1_r5_plus_2180_PostIndex",
1613 ARRAY_SIZE(kPositivePostIndex),
1614 kPositivePostIndex},
1615 {{al, r9, r6, plus, 3397, PostIndex},
1616 "al r9 r6 plus 3397 PostIndex",
1617 "PositivePostIndex_al_r9_r6_plus_3397_PostIndex",
1618 ARRAY_SIZE(kPositivePostIndex),
1619 kPositivePostIndex},
1620 {{al, r14, r8, plus, 3063, PostIndex},
1621 "al r14 r8 plus 3063 PostIndex",
1622 "PositivePostIndex_al_r14_r8_plus_3063_PostIndex",
1623 ARRAY_SIZE(kPositivePostIndex),
1624 kPositivePostIndex},
1625 {{al, r10, r3, plus, 3028, PostIndex},
1626 "al r10 r3 plus 3028 PostIndex",
1627 "PositivePostIndex_al_r10_r3_plus_3028_PostIndex",
1628 ARRAY_SIZE(kPositivePostIndex),
1629 kPositivePostIndex},
1630 {{al, r7, r4, plus, 1099, PostIndex},
1631 "al r7 r4 plus 1099 PostIndex",
1632 "PositivePostIndex_al_r7_r4_plus_1099_PostIndex",
1633 ARRAY_SIZE(kPositivePostIndex),
1634 kPositivePostIndex},
1635 {{al, r2, r5, plus, 2175, PostIndex},
1636 "al r2 r5 plus 2175 PostIndex",
1637 "PositivePostIndex_al_r2_r5_plus_2175_PostIndex",
1638 ARRAY_SIZE(kPositivePostIndex),
1639 kPositivePostIndex},
1640 {{al, r8, r12, plus, 3221, PostIndex},
1641 "al r8 r12 plus 3221 PostIndex",
1642 "PositivePostIndex_al_r8_r12_plus_3221_PostIndex",
1643 ARRAY_SIZE(kPositivePostIndex),
1644 kPositivePostIndex},
1645 {{al, r4, r1, plus, 2475, PostIndex},
1646 "al r4 r1 plus 2475 PostIndex",
1647 "PositivePostIndex_al_r4_r1_plus_2475_PostIndex",
1648 ARRAY_SIZE(kPositivePostIndex),
1649 kPositivePostIndex},
1650 {{al, r9, r11, plus, 1009, PostIndex},
1651 "al r9 r11 plus 1009 PostIndex",
1652 "PositivePostIndex_al_r9_r11_plus_1009_PostIndex",
1653 ARRAY_SIZE(kPositivePostIndex),
1654 kPositivePostIndex},
1655 {{al, r9, r1, plus, 1526, PostIndex},
1656 "al r9 r1 plus 1526 PostIndex",
1657 "PositivePostIndex_al_r9_r1_plus_1526_PostIndex",
1658 ARRAY_SIZE(kPositivePostIndex),
1659 kPositivePostIndex},
1660 {{al, r2, r11, plus, 282, PostIndex},
1661 "al r2 r11 plus 282 PostIndex",
1662 "PositivePostIndex_al_r2_r11_plus_282_PostIndex",
1663 ARRAY_SIZE(kPositivePostIndex),
1664 kPositivePostIndex},
1665 {{al, r10, r11, plus, 3583, PostIndex},
1666 "al r10 r11 plus 3583 PostIndex",
1667 "PositivePostIndex_al_r10_r11_plus_3583_PostIndex",
1668 ARRAY_SIZE(kPositivePostIndex),
1669 kPositivePostIndex},
1670 {{al, r11, r6, plus, 3209, PostIndex},
1671 "al r11 r6 plus 3209 PostIndex",
1672 "PositivePostIndex_al_r11_r6_plus_3209_PostIndex",
1673 ARRAY_SIZE(kPositivePostIndex),
1674 kPositivePostIndex},
1675 {{al, r7, r8, plus, 1736, PostIndex},
1676 "al r7 r8 plus 1736 PostIndex",
1677 "PositivePostIndex_al_r7_r8_plus_1736_PostIndex",
1678 ARRAY_SIZE(kPositivePostIndex),
1679 kPositivePostIndex},
1680 {{al, r3, r8, plus, 1542, PostIndex},
1681 "al r3 r8 plus 1542 PostIndex",
1682 "PositivePostIndex_al_r3_r8_plus_1542_PostIndex",
1683 ARRAY_SIZE(kPositivePostIndex),
1684 kPositivePostIndex},
1685 {{al, r14, r4, plus, 180, PostIndex},
1686 "al r14 r4 plus 180 PostIndex",
1687 "PositivePostIndex_al_r14_r4_plus_180_PostIndex",
1688 ARRAY_SIZE(kPositivePostIndex),
1689 kPositivePostIndex},
1690 {{al, r1, r5, plus, 3076, PostIndex},
1691 "al r1 r5 plus 3076 PostIndex",
1692 "PositivePostIndex_al_r1_r5_plus_3076_PostIndex",
1693 ARRAY_SIZE(kPositivePostIndex),
1694 kPositivePostIndex},
1695 {{al, r8, r2, plus, 2541, PostIndex},
1696 "al r8 r2 plus 2541 PostIndex",
1697 "PositivePostIndex_al_r8_r2_plus_2541_PostIndex",
1698 ARRAY_SIZE(kPositivePostIndex),
1699 kPositivePostIndex},
1700 {{al, r4, r2, plus, 2946, PostIndex},
1701 "al r4 r2 plus 2946 PostIndex",
1702 "PositivePostIndex_al_r4_r2_plus_2946_PostIndex",
1703 ARRAY_SIZE(kPositivePostIndex),
1704 kPositivePostIndex},
1705 {{al, r1, r6, plus, 3743, PostIndex},
1706 "al r1 r6 plus 3743 PostIndex",
1707 "PositivePostIndex_al_r1_r6_plus_3743_PostIndex",
1708 ARRAY_SIZE(kPositivePostIndex),
1709 kPositivePostIndex},
1710 {{al, r2, r8, plus, 3907, PostIndex},
1711 "al r2 r8 plus 3907 PostIndex",
1712 "PositivePostIndex_al_r2_r8_plus_3907_PostIndex",
1713 ARRAY_SIZE(kPositivePostIndex),
1714 kPositivePostIndex},
1715 {{al, r3, r9, plus, 791, PostIndex},
1716 "al r3 r9 plus 791 PostIndex",
1717 "PositivePostIndex_al_r3_r9_plus_791_PostIndex",
1718 ARRAY_SIZE(kPositivePostIndex),
1719 kPositivePostIndex},
1720 {{al, r12, r5, plus, 3636, PostIndex},
1721 "al r12 r5 plus 3636 PostIndex",
1722 "PositivePostIndex_al_r12_r5_plus_3636_PostIndex",
1723 ARRAY_SIZE(kPositivePostIndex),
1724 kPositivePostIndex},
1725 {{al, r0, r12, plus, 2545, PostIndex},
1726 "al r0 r12 plus 2545 PostIndex",
1727 "PositivePostIndex_al_r0_r12_plus_2545_PostIndex",
1728 ARRAY_SIZE(kPositivePostIndex),
1729 kPositivePostIndex},
1730 {{al, r12, r5, plus, 3450, PostIndex},
1731 "al r12 r5 plus 3450 PostIndex",
1732 "PositivePostIndex_al_r12_r5_plus_3450_PostIndex",
1733 ARRAY_SIZE(kPositivePostIndex),
1734 kPositivePostIndex},
1735 {{al, r1, r5, plus, 1712, PostIndex},
1736 "al r1 r5 plus 1712 PostIndex",
1737 "PositivePostIndex_al_r1_r5_plus_1712_PostIndex",
1738 ARRAY_SIZE(kPositivePostIndex),
1739 kPositivePostIndex},
1740 {{al, r6, r11, plus, 2665, PostIndex},
1741 "al r6 r11 plus 2665 PostIndex",
1742 "PositivePostIndex_al_r6_r11_plus_2665_PostIndex",
1743 ARRAY_SIZE(kPositivePostIndex),
1744 kPositivePostIndex},
1745 {{al, r10, r8, plus, 3450, PostIndex},
1746 "al r10 r8 plus 3450 PostIndex",
1747 "PositivePostIndex_al_r10_r8_plus_3450_PostIndex",
1748 ARRAY_SIZE(kPositivePostIndex),
1749 kPositivePostIndex},
1750 {{al, r8, r9, plus, 386, PostIndex},
1751 "al r8 r9 plus 386 PostIndex",
1752 "PositivePostIndex_al_r8_r9_plus_386_PostIndex",
1753 ARRAY_SIZE(kPositivePostIndex),
1754 kPositivePostIndex},
1755 {{al, r12, r0, plus, 2462, PostIndex},
1756 "al r12 r0 plus 2462 PostIndex",
1757 "PositivePostIndex_al_r12_r0_plus_2462_PostIndex",
1758 ARRAY_SIZE(kPositivePostIndex),
1759 kPositivePostIndex},
1760 {{al, r4, r1, plus, 3313, PostIndex},
1761 "al r4 r1 plus 3313 PostIndex",
1762 "PositivePostIndex_al_r4_r1_plus_3313_PostIndex",
1763 ARRAY_SIZE(kPositivePostIndex),
1764 kPositivePostIndex},
1765 {{al, r5, r1, plus, 4093, PostIndex},
1766 "al r5 r1 plus 4093 PostIndex",
1767 "PositivePostIndex_al_r5_r1_plus_4093_PostIndex",
1768 ARRAY_SIZE(kPositivePostIndex),
1769 kPositivePostIndex},
1770 {{al, r5, r6, plus, 3287, PostIndex},
1771 "al r5 r6 plus 3287 PostIndex",
1772 "PositivePostIndex_al_r5_r6_plus_3287_PostIndex",
1773 ARRAY_SIZE(kPositivePostIndex),
1774 kPositivePostIndex},
1775 {{al, r2, r14, plus, 48, PostIndex},
1776 "al r2 r14 plus 48 PostIndex",
1777 "PositivePostIndex_al_r2_r14_plus_48_PostIndex",
1778 ARRAY_SIZE(kPositivePostIndex),
1779 kPositivePostIndex},
1780 {{al, r12, r0, plus, 484, PostIndex},
1781 "al r12 r0 plus 484 PostIndex",
1782 "PositivePostIndex_al_r12_r0_plus_484_PostIndex",
1783 ARRAY_SIZE(kPositivePostIndex),
1784 kPositivePostIndex},
1785 {{al, r10, r9, plus, 1505, PostIndex},
1786 "al r10 r9 plus 1505 PostIndex",
1787 "PositivePostIndex_al_r10_r9_plus_1505_PostIndex",
1788 ARRAY_SIZE(kPositivePostIndex),
1789 kPositivePostIndex},
1790 {{al, r12, r11, plus, 2464, PostIndex},
1791 "al r12 r11 plus 2464 PostIndex",
1792 "PositivePostIndex_al_r12_r11_plus_2464_PostIndex",
1793 ARRAY_SIZE(kPositivePostIndex),
1794 kPositivePostIndex},
1795 {{al, r0, r5, plus, 4076, PostIndex},
1796 "al r0 r5 plus 4076 PostIndex",
1797 "PositivePostIndex_al_r0_r5_plus_4076_PostIndex",
1798 ARRAY_SIZE(kPositivePostIndex),
1799 kPositivePostIndex},
1800 {{al, r8, r12, plus, 2326, PostIndex},
1801 "al r8 r12 plus 2326 PostIndex",
1802 "PositivePostIndex_al_r8_r12_plus_2326_PostIndex",
1803 ARRAY_SIZE(kPositivePostIndex),
1804 kPositivePostIndex},
1805 {{al, r9, r7, plus, 2025, PostIndex},
1806 "al r9 r7 plus 2025 PostIndex",
1807 "PositivePostIndex_al_r9_r7_plus_2025_PostIndex",
1808 ARRAY_SIZE(kPositivePostIndex),
1809 kPositivePostIndex},
1810 {{al, r14, r3, plus, 831, PostIndex},
1811 "al r14 r3 plus 831 PostIndex",
1812 "PositivePostIndex_al_r14_r3_plus_831_PostIndex",
1813 ARRAY_SIZE(kPositivePostIndex),
1814 kPositivePostIndex},
1815 {{al, r8, r2, plus, 136, PostIndex},
1816 "al r8 r2 plus 136 PostIndex",
1817 "PositivePostIndex_al_r8_r2_plus_136_PostIndex",
1818 ARRAY_SIZE(kPositivePostIndex),
1819 kPositivePostIndex},
1820 {{al, r11, r4, plus, 774, PostIndex},
1821 "al r11 r4 plus 774 PostIndex",
1822 "PositivePostIndex_al_r11_r4_plus_774_PostIndex",
1823 ARRAY_SIZE(kPositivePostIndex),
1824 kPositivePostIndex},
1825 {{al, r5, r10, plus, 2395, PostIndex},
1826 "al r5 r10 plus 2395 PostIndex",
1827 "PositivePostIndex_al_r5_r10_plus_2395_PostIndex",
1828 ARRAY_SIZE(kPositivePostIndex),
1829 kPositivePostIndex},
1830 {{al, r10, r1, minus, 2642, PostIndex},
1831 "al r10 r1 minus 2642 PostIndex",
1832 "NegativePostIndex_al_r10_r1_minus_2642_PostIndex",
1833 ARRAY_SIZE(kNegativePostIndex),
1834 kNegativePostIndex},
1835 {{al, r8, r6, minus, 4093, PostIndex},
1836 "al r8 r6 minus 4093 PostIndex",
1837 "NegativePostIndex_al_r8_r6_minus_4093_PostIndex",
1838 ARRAY_SIZE(kNegativePostIndex),
1839 kNegativePostIndex},
1840 {{al, r2, r11, minus, 3162, PostIndex},
1841 "al r2 r11 minus 3162 PostIndex",
1842 "NegativePostIndex_al_r2_r11_minus_3162_PostIndex",
1843 ARRAY_SIZE(kNegativePostIndex),
1844 kNegativePostIndex},
1845 {{al, r2, r8, minus, 2311, PostIndex},
1846 "al r2 r8 minus 2311 PostIndex",
1847 "NegativePostIndex_al_r2_r8_minus_2311_PostIndex",
1848 ARRAY_SIZE(kNegativePostIndex),
1849 kNegativePostIndex},
1850 {{al, r11, r5, minus, 806, PostIndex},
1851 "al r11 r5 minus 806 PostIndex",
1852 "NegativePostIndex_al_r11_r5_minus_806_PostIndex",
1853 ARRAY_SIZE(kNegativePostIndex),
1854 kNegativePostIndex},
1855 {{al, r14, r11, minus, 2628, PostIndex},
1856 "al r14 r11 minus 2628 PostIndex",
1857 "NegativePostIndex_al_r14_r11_minus_2628_PostIndex",
1858 ARRAY_SIZE(kNegativePostIndex),
1859 kNegativePostIndex},
1860 {{al, r0, r10, minus, 672, PostIndex},
1861 "al r0 r10 minus 672 PostIndex",
1862 "NegativePostIndex_al_r0_r10_minus_672_PostIndex",
1863 ARRAY_SIZE(kNegativePostIndex),
1864 kNegativePostIndex},
1865 {{al, r12, r4, minus, 2619, PostIndex},
1866 "al r12 r4 minus 2619 PostIndex",
1867 "NegativePostIndex_al_r12_r4_minus_2619_PostIndex",
1868 ARRAY_SIZE(kNegativePostIndex),
1869 kNegativePostIndex},
1870 {{al, r11, r8, minus, 1035, PostIndex},
1871 "al r11 r8 minus 1035 PostIndex",
1872 "NegativePostIndex_al_r11_r8_minus_1035_PostIndex",
1873 ARRAY_SIZE(kNegativePostIndex),
1874 kNegativePostIndex},
1875 {{al, r9, r7, minus, 3771, PostIndex},
1876 "al r9 r7 minus 3771 PostIndex",
1877 "NegativePostIndex_al_r9_r7_minus_3771_PostIndex",
1878 ARRAY_SIZE(kNegativePostIndex),
1879 kNegativePostIndex},
1880 {{al, r0, r10, minus, 1372, PostIndex},
1881 "al r0 r10 minus 1372 PostIndex",
1882 "NegativePostIndex_al_r0_r10_minus_1372_PostIndex",
1883 ARRAY_SIZE(kNegativePostIndex),
1884 kNegativePostIndex},
1885 {{al, r9, r4, minus, 4065, PostIndex},
1886 "al r9 r4 minus 4065 PostIndex",
1887 "NegativePostIndex_al_r9_r4_minus_4065_PostIndex",
1888 ARRAY_SIZE(kNegativePostIndex),
1889 kNegativePostIndex},
1890 {{al, r10, r5, minus, 3344, PostIndex},
1891 "al r10 r5 minus 3344 PostIndex",
1892 "NegativePostIndex_al_r10_r5_minus_3344_PostIndex",
1893 ARRAY_SIZE(kNegativePostIndex),
1894 kNegativePostIndex},
1895 {{al, r9, r11, minus, 2726, PostIndex},
1896 "al r9 r11 minus 2726 PostIndex",
1897 "NegativePostIndex_al_r9_r11_minus_2726_PostIndex",
1898 ARRAY_SIZE(kNegativePostIndex),
1899 kNegativePostIndex},
1900 {{al, r2, r11, minus, 3282, PostIndex},
1901 "al r2 r11 minus 3282 PostIndex",
1902 "NegativePostIndex_al_r2_r11_minus_3282_PostIndex",
1903 ARRAY_SIZE(kNegativePostIndex),
1904 kNegativePostIndex},
1905 {{al, r8, r0, minus, 1231, PostIndex},
1906 "al r8 r0 minus 1231 PostIndex",
1907 "NegativePostIndex_al_r8_r0_minus_1231_PostIndex",
1908 ARRAY_SIZE(kNegativePostIndex),
1909 kNegativePostIndex},
1910 {{al, r12, r8, minus, 2490, PostIndex},
1911 "al r12 r8 minus 2490 PostIndex",
1912 "NegativePostIndex_al_r12_r8_minus_2490_PostIndex",
1913 ARRAY_SIZE(kNegativePostIndex),
1914 kNegativePostIndex},
1915 {{al, r3, r14, minus, 2963, PostIndex},
1916 "al r3 r14 minus 2963 PostIndex",
1917 "NegativePostIndex_al_r3_r14_minus_2963_PostIndex",
1918 ARRAY_SIZE(kNegativePostIndex),
1919 kNegativePostIndex},
1920 {{al, r10, r5, minus, 3069, PostIndex},
1921 "al r10 r5 minus 3069 PostIndex",
1922 "NegativePostIndex_al_r10_r5_minus_3069_PostIndex",
1923 ARRAY_SIZE(kNegativePostIndex),
1924 kNegativePostIndex},
1925 {{al, r5, r6, minus, 3743, PostIndex},
1926 "al r5 r6 minus 3743 PostIndex",
1927 "NegativePostIndex_al_r5_r6_minus_3743_PostIndex",
1928 ARRAY_SIZE(kNegativePostIndex),
1929 kNegativePostIndex},
1930 {{al, r10, r0, minus, 1175, PostIndex},
1931 "al r10 r0 minus 1175 PostIndex",
1932 "NegativePostIndex_al_r10_r0_minus_1175_PostIndex",
1933 ARRAY_SIZE(kNegativePostIndex),
1934 kNegativePostIndex},
1935 {{al, r14, r0, minus, 479, PostIndex},
1936 "al r14 r0 minus 479 PostIndex",
1937 "NegativePostIndex_al_r14_r0_minus_479_PostIndex",
1938 ARRAY_SIZE(kNegativePostIndex),
1939 kNegativePostIndex},
1940 {{al, r2, r1, minus, 2464, PostIndex},
1941 "al r2 r1 minus 2464 PostIndex",
1942 "NegativePostIndex_al_r2_r1_minus_2464_PostIndex",
1943 ARRAY_SIZE(kNegativePostIndex),
1944 kNegativePostIndex},
1945 {{al, r7, r6, minus, 1171, PostIndex},
1946 "al r7 r6 minus 1171 PostIndex",
1947 "NegativePostIndex_al_r7_r6_minus_1171_PostIndex",
1948 ARRAY_SIZE(kNegativePostIndex),
1949 kNegativePostIndex},
1950 {{al, r14, r2, minus, 871, PostIndex},
1951 "al r14 r2 minus 871 PostIndex",
1952 "NegativePostIndex_al_r14_r2_minus_871_PostIndex",
1953 ARRAY_SIZE(kNegativePostIndex),
1954 kNegativePostIndex},
1955 {{al, r9, r10, minus, 1687, PostIndex},
1956 "al r9 r10 minus 1687 PostIndex",
1957 "NegativePostIndex_al_r9_r10_minus_1687_PostIndex",
1958 ARRAY_SIZE(kNegativePostIndex),
1959 kNegativePostIndex},
1960 {{al, r3, r1, minus, 1527, PostIndex},
1961 "al r3 r1 minus 1527 PostIndex",
1962 "NegativePostIndex_al_r3_r1_minus_1527_PostIndex",
1963 ARRAY_SIZE(kNegativePostIndex),
1964 kNegativePostIndex},
1965 {{al, r6, r7, minus, 2365, PostIndex},
1966 "al r6 r7 minus 2365 PostIndex",
1967 "NegativePostIndex_al_r6_r7_minus_2365_PostIndex",
1968 ARRAY_SIZE(kNegativePostIndex),
1969 kNegativePostIndex},
1970 {{al, r7, r12, minus, 2619, PostIndex},
1971 "al r7 r12 minus 2619 PostIndex",
1972 "NegativePostIndex_al_r7_r12_minus_2619_PostIndex",
1973 ARRAY_SIZE(kNegativePostIndex),
1974 kNegativePostIndex},
1975 {{al, r14, r7, minus, 1695, PostIndex},
1976 "al r14 r7 minus 1695 PostIndex",
1977 "NegativePostIndex_al_r14_r7_minus_1695_PostIndex",
1978 ARRAY_SIZE(kNegativePostIndex),
1979 kNegativePostIndex},
1980 {{al, r3, r8, minus, 3949, PostIndex},
1981 "al r3 r8 minus 3949 PostIndex",
1982 "NegativePostIndex_al_r3_r8_minus_3949_PostIndex",
1983 ARRAY_SIZE(kNegativePostIndex),
1984 kNegativePostIndex},
1985 {{al, r4, r8, minus, 1359, PostIndex},
1986 "al r4 r8 minus 1359 PostIndex",
1987 "NegativePostIndex_al_r4_r8_minus_1359_PostIndex",
1988 ARRAY_SIZE(kNegativePostIndex),
1989 kNegativePostIndex},
1990 {{al, r10, r6, minus, 3117, PostIndex},
1991 "al r10 r6 minus 3117 PostIndex",
1992 "NegativePostIndex_al_r10_r6_minus_3117_PostIndex",
1993 ARRAY_SIZE(kNegativePostIndex),
1994 kNegativePostIndex},
1995 {{al, r7, r12, minus, 831, PostIndex},
1996 "al r7 r12 minus 831 PostIndex",
1997 "NegativePostIndex_al_r7_r12_minus_831_PostIndex",
1998 ARRAY_SIZE(kNegativePostIndex),
1999 kNegativePostIndex},
2000 {{al, r0, r7, minus, 1537, PostIndex},
2001 "al r0 r7 minus 1537 PostIndex",
2002 "NegativePostIndex_al_r0_r7_minus_1537_PostIndex",
2003 ARRAY_SIZE(kNegativePostIndex),
2004 kNegativePostIndex},
2005 {{al, r1, r11, minus, 1948, PostIndex},
2006 "al r1 r11 minus 1948 PostIndex",
2007 "NegativePostIndex_al_r1_r11_minus_1948_PostIndex",
2008 ARRAY_SIZE(kNegativePostIndex),
2009 kNegativePostIndex},
2010 {{al, r8, r12, minus, 362, PostIndex},
2011 "al r8 r12 minus 362 PostIndex",
2012 "NegativePostIndex_al_r8_r12_minus_362_PostIndex",
2013 ARRAY_SIZE(kNegativePostIndex),
2014 kNegativePostIndex},
2015 {{al, r3, r0, minus, 3583, PostIndex},
2016 "al r3 r0 minus 3583 PostIndex",
2017 "NegativePostIndex_al_r3_r0_minus_3583_PostIndex",
2018 ARRAY_SIZE(kNegativePostIndex),
2019 kNegativePostIndex},
2020 {{al, r10, r3, minus, 2794, PostIndex},
2021 "al r10 r3 minus 2794 PostIndex",
2022 "NegativePostIndex_al_r10_r3_minus_2794_PostIndex",
2023 ARRAY_SIZE(kNegativePostIndex),
2024 kNegativePostIndex},
2025 {{al, r10, r3, minus, 53, PostIndex},
2026 "al r10 r3 minus 53 PostIndex",
2027 "NegativePostIndex_al_r10_r3_minus_53_PostIndex",
2028 ARRAY_SIZE(kNegativePostIndex),
2029 kNegativePostIndex},
2030 {{al, r9, r8, minus, 2026, PostIndex},
2031 "al r9 r8 minus 2026 PostIndex",
2032 "NegativePostIndex_al_r9_r8_minus_2026_PostIndex",
2033 ARRAY_SIZE(kNegativePostIndex),
2034 kNegativePostIndex},
2035 {{al, r14, r11, minus, 3472, PostIndex},
2036 "al r14 r11 minus 3472 PostIndex",
2037 "NegativePostIndex_al_r14_r11_minus_3472_PostIndex",
2038 ARRAY_SIZE(kNegativePostIndex),
2039 kNegativePostIndex},
2040 {{al, r5, r8, minus, 200, PostIndex},
2041 "al r5 r8 minus 200 PostIndex",
2042 "NegativePostIndex_al_r5_r8_minus_200_PostIndex",
2043 ARRAY_SIZE(kNegativePostIndex),
2044 kNegativePostIndex},
2045 {{al, r9, r11, minus, 398, PostIndex},
2046 "al r9 r11 minus 398 PostIndex",
2047 "NegativePostIndex_al_r9_r11_minus_398_PostIndex",
2048 ARRAY_SIZE(kNegativePostIndex),
2049 kNegativePostIndex},
2050 {{al, r7, r1, minus, 4091, PostIndex},
2051 "al r7 r1 minus 4091 PostIndex",
2052 "NegativePostIndex_al_r7_r1_minus_4091_PostIndex",
2053 ARRAY_SIZE(kNegativePostIndex),
2054 kNegativePostIndex},
2055 {{al, r9, r7, minus, 601, PostIndex},
2056 "al r9 r7 minus 601 PostIndex",
2057 "NegativePostIndex_al_r9_r7_minus_601_PostIndex",
2058 ARRAY_SIZE(kNegativePostIndex),
2059 kNegativePostIndex},
2060 {{al, r14, r0, minus, 2849, PostIndex},
2061 "al r14 r0 minus 2849 PostIndex",
2062 "NegativePostIndex_al_r14_r0_minus_2849_PostIndex",
2063 ARRAY_SIZE(kNegativePostIndex),
2064 kNegativePostIndex},
2065 {{al, r1, r3, minus, 1323, PostIndex},
2066 "al r1 r3 minus 1323 PostIndex",
2067 "NegativePostIndex_al_r1_r3_minus_1323_PostIndex",
2068 ARRAY_SIZE(kNegativePostIndex),
2069 kNegativePostIndex},
2070 {{al, r11, r9, minus, 969, PostIndex},
2071 "al r11 r9 minus 969 PostIndex",
2072 "NegativePostIndex_al_r11_r9_minus_969_PostIndex",
2073 ARRAY_SIZE(kNegativePostIndex),
2074 kNegativePostIndex},
2075 {{al, r1, r14, minus, 2628, PostIndex},
2076 "al r1 r14 minus 2628 PostIndex",
2077 "NegativePostIndex_al_r1_r14_minus_2628_PostIndex",
2078 ARRAY_SIZE(kNegativePostIndex),
2079 kNegativePostIndex},
2080 {{al, r10, r1, minus, 251, PostIndex},
2081 "al r10 r1 minus 251 PostIndex",
2082 "NegativePostIndex_al_r10_r1_minus_251_PostIndex",
2083 ARRAY_SIZE(kNegativePostIndex),
2084 kNegativePostIndex},
2085 {{al, r1, r2, minus, 1266, PostIndex},
2086 "al r1 r2 minus 1266 PostIndex",
2087 "NegativePostIndex_al_r1_r2_minus_1266_PostIndex",
2088 ARRAY_SIZE(kNegativePostIndex),
2089 kNegativePostIndex},
2090 {{al, r0, r7, minus, 2588, PostIndex},
2091 "al r0 r7 minus 2588 PostIndex",
2092 "NegativePostIndex_al_r0_r7_minus_2588_PostIndex",
2093 ARRAY_SIZE(kNegativePostIndex),
2094 kNegativePostIndex},
2095 {{al, r7, r10, minus, 2669, PostIndex},
2096 "al r7 r10 minus 2669 PostIndex",
2097 "NegativePostIndex_al_r7_r10_minus_2669_PostIndex",
2098 ARRAY_SIZE(kNegativePostIndex),
2099 kNegativePostIndex},
2100 {{al, r14, r11, minus, 2023, PostIndex},
2101 "al r14 r11 minus 2023 PostIndex",
2102 "NegativePostIndex_al_r14_r11_minus_2023_PostIndex",
2103 ARRAY_SIZE(kNegativePostIndex),
2104 kNegativePostIndex},
2105 {{al, r4, r1, minus, 3610, PostIndex},
2106 "al r4 r1 minus 3610 PostIndex",
2107 "NegativePostIndex_al_r4_r1_minus_3610_PostIndex",
2108 ARRAY_SIZE(kNegativePostIndex),
2109 kNegativePostIndex},
2110 {{al, r2, r9, minus, 624, PostIndex},
2111 "al r2 r9 minus 624 PostIndex",
2112 "NegativePostIndex_al_r2_r9_minus_624_PostIndex",
2113 ARRAY_SIZE(kNegativePostIndex),
2114 kNegativePostIndex},
2115 {{al, r12, r8, minus, 1610, PostIndex},
2116 "al r12 r8 minus 1610 PostIndex",
2117 "NegativePostIndex_al_r12_r8_minus_1610_PostIndex",
2118 ARRAY_SIZE(kNegativePostIndex),
2119 kNegativePostIndex},
2120 {{al, r4, r11, minus, 3136, PostIndex},
2121 "al r4 r11 minus 3136 PostIndex",
2122 "NegativePostIndex_al_r4_r11_minus_3136_PostIndex",
2123 ARRAY_SIZE(kNegativePostIndex),
2124 kNegativePostIndex},
2125 {{al, r2, r7, minus, 3949, PostIndex},
2126 "al r2 r7 minus 3949 PostIndex",
2127 "NegativePostIndex_al_r2_r7_minus_3949_PostIndex",
2128 ARRAY_SIZE(kNegativePostIndex),
2129 kNegativePostIndex},
2130 {{al, r7, r0, minus, 1635, PostIndex},
2131 "al r7 r0 minus 1635 PostIndex",
2132 "NegativePostIndex_al_r7_r0_minus_1635_PostIndex",
2133 ARRAY_SIZE(kNegativePostIndex),
2134 kNegativePostIndex},
2135 {{al, r4, r2, minus, 3008, PostIndex},
2136 "al r4 r2 minus 3008 PostIndex",
2137 "NegativePostIndex_al_r4_r2_minus_3008_PostIndex",
2138 ARRAY_SIZE(kNegativePostIndex),
2139 kNegativePostIndex},
2140 {{al, r6, r3, minus, 3566, PostIndex},
2141 "al r6 r3 minus 3566 PostIndex",
2142 "NegativePostIndex_al_r6_r3_minus_3566_PostIndex",
2143 ARRAY_SIZE(kNegativePostIndex),
2144 kNegativePostIndex},
2145 {{al, r12, r8, minus, 3774, PostIndex},
2146 "al r12 r8 minus 3774 PostIndex",
2147 "NegativePostIndex_al_r12_r8_minus_3774_PostIndex",
2148 ARRAY_SIZE(kNegativePostIndex),
2149 kNegativePostIndex},
2150 {{al, r14, r10, minus, 3978, PostIndex},
2151 "al r14 r10 minus 3978 PostIndex",
2152 "NegativePostIndex_al_r14_r10_minus_3978_PostIndex",
2153 ARRAY_SIZE(kNegativePostIndex),
2154 kNegativePostIndex},
2155 {{al, r2, r6, minus, 2358, PostIndex},
2156 "al r2 r6 minus 2358 PostIndex",
2157 "NegativePostIndex_al_r2_r6_minus_2358_PostIndex",
2158 ARRAY_SIZE(kNegativePostIndex),
2159 kNegativePostIndex},
2160 {{al, r14, r9, minus, 2650, PostIndex},
2161 "al r14 r9 minus 2650 PostIndex",
2162 "NegativePostIndex_al_r14_r9_minus_2650_PostIndex",
2163 ARRAY_SIZE(kNegativePostIndex),
2164 kNegativePostIndex},
2165 {{al, r4, r14, minus, 2365, PostIndex},
2166 "al r4 r14 minus 2365 PostIndex",
2167 "NegativePostIndex_al_r4_r14_minus_2365_PostIndex",
2168 ARRAY_SIZE(kNegativePostIndex),
2169 kNegativePostIndex},
2170 {{al, r14, r2, minus, 496, PostIndex},
2171 "al r14 r2 minus 496 PostIndex",
2172 "NegativePostIndex_al_r14_r2_minus_496_PostIndex",
2173 ARRAY_SIZE(kNegativePostIndex),
2174 kNegativePostIndex},
2175 {{al, r9, r0, minus, 2124, PostIndex},
2176 "al r9 r0 minus 2124 PostIndex",
2177 "NegativePostIndex_al_r9_r0_minus_2124_PostIndex",
2178 ARRAY_SIZE(kNegativePostIndex),
2179 kNegativePostIndex},
2180 {{al, r4, r2, minus, 3366, PostIndex},
2181 "al r4 r2 minus 3366 PostIndex",
2182 "NegativePostIndex_al_r4_r2_minus_3366_PostIndex",
2183 ARRAY_SIZE(kNegativePostIndex),
2184 kNegativePostIndex},
2185 {{al, r1, r2, minus, 2866, PostIndex},
2186 "al r1 r2 minus 2866 PostIndex",
2187 "NegativePostIndex_al_r1_r2_minus_2866_PostIndex",
2188 ARRAY_SIZE(kNegativePostIndex),
2189 kNegativePostIndex},
2190 {{al, r8, r4, minus, 3003, PostIndex},
2191 "al r8 r4 minus 3003 PostIndex",
2192 "NegativePostIndex_al_r8_r4_minus_3003_PostIndex",
2193 ARRAY_SIZE(kNegativePostIndex),
2194 kNegativePostIndex},
2195 {{al, r9, r3, minus, 1234, PostIndex},
2196 "al r9 r3 minus 1234 PostIndex",
2197 "NegativePostIndex_al_r9_r3_minus_1234_PostIndex",
2198 ARRAY_SIZE(kNegativePostIndex),
2199 kNegativePostIndex},
2200 {{al, r1, r8, minus, 2290, PostIndex},
2201 "al r1 r8 minus 2290 PostIndex",
2202 "NegativePostIndex_al_r1_r8_minus_2290_PostIndex",
2203 ARRAY_SIZE(kNegativePostIndex),
2204 kNegativePostIndex},
2205 {{al, r8, r2, minus, 3811, PostIndex},
2206 "al r8 r2 minus 3811 PostIndex",
2207 "NegativePostIndex_al_r8_r2_minus_3811_PostIndex",
2208 ARRAY_SIZE(kNegativePostIndex),
2209 kNegativePostIndex},
2210 {{al, r4, r9, minus, 429, PostIndex},
2211 "al r4 r9 minus 429 PostIndex",
2212 "NegativePostIndex_al_r4_r9_minus_429_PostIndex",
2213 ARRAY_SIZE(kNegativePostIndex),
2214 kNegativePostIndex},
2215 {{al, r6, r1, minus, 2025, PostIndex},
2216 "al r6 r1 minus 2025 PostIndex",
2217 "NegativePostIndex_al_r6_r1_minus_2025_PostIndex",
2218 ARRAY_SIZE(kNegativePostIndex),
2219 kNegativePostIndex},
2220 {{al, r11, r7, minus, 3517, PostIndex},
2221 "al r11 r7 minus 3517 PostIndex",
2222 "NegativePostIndex_al_r11_r7_minus_3517_PostIndex",
2223 ARRAY_SIZE(kNegativePostIndex),
2224 kNegativePostIndex},
2225 {{al, r7, r4, minus, 251, PostIndex},
2226 "al r7 r4 minus 251 PostIndex",
2227 "NegativePostIndex_al_r7_r4_minus_251_PostIndex",
2228 ARRAY_SIZE(kNegativePostIndex),
2229 kNegativePostIndex},
2230 {{al, r1, r12, minus, 1635, PostIndex},
2231 "al r1 r12 minus 1635 PostIndex",
2232 "NegativePostIndex_al_r1_r12_minus_1635_PostIndex",
2233 ARRAY_SIZE(kNegativePostIndex),
2234 kNegativePostIndex},
2235 {{al, r6, r7, minus, 3685, PostIndex},
2236 "al r6 r7 minus 3685 PostIndex",
2237 "NegativePostIndex_al_r6_r7_minus_3685_PostIndex",
2238 ARRAY_SIZE(kNegativePostIndex),
2239 kNegativePostIndex},
2240 {{al, r9, r11, minus, 1981, PostIndex},
2241 "al r9 r11 minus 1981 PostIndex",
2242 "NegativePostIndex_al_r9_r11_minus_1981_PostIndex",
2243 ARRAY_SIZE(kNegativePostIndex),
2244 kNegativePostIndex},
2245 {{al, r6, r2, minus, 180, PostIndex},
2246 "al r6 r2 minus 180 PostIndex",
2247 "NegativePostIndex_al_r6_r2_minus_180_PostIndex",
2248 ARRAY_SIZE(kNegativePostIndex),
2249 kNegativePostIndex},
2250 {{al, r12, r6, minus, 2490, PostIndex},
2251 "al r12 r6 minus 2490 PostIndex",
2252 "NegativePostIndex_al_r12_r6_minus_2490_PostIndex",
2253 ARRAY_SIZE(kNegativePostIndex),
2254 kNegativePostIndex},
2255 {{al, r1, r3, minus, 3994, PostIndex},
2256 "al r1 r3 minus 3994 PostIndex",
2257 "NegativePostIndex_al_r1_r3_minus_3994_PostIndex",
2258 ARRAY_SIZE(kNegativePostIndex),
2259 kNegativePostIndex},
2260 {{al, r3, r2, minus, 3094, PostIndex},
2261 "al r3 r2 minus 3094 PostIndex",
2262 "NegativePostIndex_al_r3_r2_minus_3094_PostIndex",
2263 ARRAY_SIZE(kNegativePostIndex),
2264 kNegativePostIndex},
2265 {{al, r2, r7, minus, 1377, PostIndex},
2266 "al r2 r7 minus 1377 PostIndex",
2267 "NegativePostIndex_al_r2_r7_minus_1377_PostIndex",
2268 ARRAY_SIZE(kNegativePostIndex),
2269 kNegativePostIndex},
2270 {{al, r12, r11, minus, 2098, PostIndex},
2271 "al r12 r11 minus 2098 PostIndex",
2272 "NegativePostIndex_al_r12_r11_minus_2098_PostIndex",
2273 ARRAY_SIZE(kNegativePostIndex),
2274 kNegativePostIndex},
2275 {{al, r0, r3, minus, 2462, PostIndex},
2276 "al r0 r3 minus 2462 PostIndex",
2277 "NegativePostIndex_al_r0_r3_minus_2462_PostIndex",
2278 ARRAY_SIZE(kNegativePostIndex),
2279 kNegativePostIndex},
2280 {{al, r6, r3, minus, 3659, PostIndex},
2281 "al r6 r3 minus 3659 PostIndex",
2282 "NegativePostIndex_al_r6_r3_minus_3659_PostIndex",
2283 ARRAY_SIZE(kNegativePostIndex),
2284 kNegativePostIndex},
2285 {{al, r5, r1, minus, 2139, PostIndex},
2286 "al r5 r1 minus 2139 PostIndex",
2287 "NegativePostIndex_al_r5_r1_minus_2139_PostIndex",
2288 ARRAY_SIZE(kNegativePostIndex),
2289 kNegativePostIndex},
2290 {{al, r11, r1, minus, 1934, PostIndex},
2291 "al r11 r1 minus 1934 PostIndex",
2292 "NegativePostIndex_al_r11_r1_minus_1934_PostIndex",
2293 ARRAY_SIZE(kNegativePostIndex),
2294 kNegativePostIndex},
2295 {{al, r8, r11, minus, 1961, PostIndex},
2296 "al r8 r11 minus 1961 PostIndex",
2297 "NegativePostIndex_al_r8_r11_minus_1961_PostIndex",
2298 ARRAY_SIZE(kNegativePostIndex),
2299 kNegativePostIndex},
2300 {{al, r3, r8, minus, 2535, PostIndex},
2301 "al r3 r8 minus 2535 PostIndex",
2302 "NegativePostIndex_al_r3_r8_minus_2535_PostIndex",
2303 ARRAY_SIZE(kNegativePostIndex),
2304 kNegativePostIndex},
2305 {{al, r12, r7, minus, 3688, PostIndex},
2306 "al r12 r7 minus 3688 PostIndex",
2307 "NegativePostIndex_al_r12_r7_minus_3688_PostIndex",
2308 ARRAY_SIZE(kNegativePostIndex),
2309 kNegativePostIndex},
2310 {{al, r8, r1, minus, 513, PostIndex},
2311 "al r8 r1 minus 513 PostIndex",
2312 "NegativePostIndex_al_r8_r1_minus_513_PostIndex",
2313 ARRAY_SIZE(kNegativePostIndex),
2314 kNegativePostIndex},
2315 {{al, r8, r2, minus, 213, PostIndex},
2316 "al r8 r2 minus 213 PostIndex",
2317 "NegativePostIndex_al_r8_r2_minus_213_PostIndex",
2318 ARRAY_SIZE(kNegativePostIndex),
2319 kNegativePostIndex},
2320 {{al, r2, r5, minus, 670, PostIndex},
2321 "al r2 r5 minus 670 PostIndex",
2322 "NegativePostIndex_al_r2_r5_minus_670_PostIndex",
2323 ARRAY_SIZE(kNegativePostIndex),
2324 kNegativePostIndex},
2325 {{al, r5, r6, minus, 3986, PostIndex},
2326 "al r5 r6 minus 3986 PostIndex",
2327 "NegativePostIndex_al_r5_r6_minus_3986_PostIndex",
2328 ARRAY_SIZE(kNegativePostIndex),
2329 kNegativePostIndex},
2330 {{al, r14, r12, plus, 2982, PreIndex},
2331 "al r14 r12 plus 2982 PreIndex",
2332 "PositivePreIndex_al_r14_r12_plus_2982_PreIndex",
2333 ARRAY_SIZE(kPositivePreIndex),
2334 kPositivePreIndex},
2335 {{al, r7, r11, plus, 1241, PreIndex},
2336 "al r7 r11 plus 1241 PreIndex",
2337 "PositivePreIndex_al_r7_r11_plus_1241_PreIndex",
2338 ARRAY_SIZE(kPositivePreIndex),
2339 kPositivePreIndex},
2340 {{al, r6, r5, plus, 2677, PreIndex},
2341 "al r6 r5 plus 2677 PreIndex",
2342 "PositivePreIndex_al_r6_r5_plus_2677_PreIndex",
2343 ARRAY_SIZE(kPositivePreIndex),
2344 kPositivePreIndex},
2345 {{al, r11, r12, plus, 2403, PreIndex},
2346 "al r11 r12 plus 2403 PreIndex",
2347 "PositivePreIndex_al_r11_r12_plus_2403_PreIndex",
2348 ARRAY_SIZE(kPositivePreIndex),
2349 kPositivePreIndex},
2350 {{al, r6, r5, plus, 1274, PreIndex},
2351 "al r6 r5 plus 1274 PreIndex",
2352 "PositivePreIndex_al_r6_r5_plus_1274_PreIndex",
2353 ARRAY_SIZE(kPositivePreIndex),
2354 kPositivePreIndex},
2355 {{al, r6, r7, plus, 2208, PreIndex},
2356 "al r6 r7 plus 2208 PreIndex",
2357 "PositivePreIndex_al_r6_r7_plus_2208_PreIndex",
2358 ARRAY_SIZE(kPositivePreIndex),
2359 kPositivePreIndex},
2360 {{al, r7, r10, plus, 3583, PreIndex},
2361 "al r7 r10 plus 3583 PreIndex",
2362 "PositivePreIndex_al_r7_r10_plus_3583_PreIndex",
2363 ARRAY_SIZE(kPositivePreIndex),
2364 kPositivePreIndex},
2365 {{al, r7, r5, plus, 3975, PreIndex},
2366 "al r7 r5 plus 3975 PreIndex",
2367 "PositivePreIndex_al_r7_r5_plus_3975_PreIndex",
2368 ARRAY_SIZE(kPositivePreIndex),
2369 kPositivePreIndex},
2370 {{al, r3, r9, plus, 2326, PreIndex},
2371 "al r3 r9 plus 2326 PreIndex",
2372 "PositivePreIndex_al_r3_r9_plus_2326_PreIndex",
2373 ARRAY_SIZE(kPositivePreIndex),
2374 kPositivePreIndex},
2375 {{al, r8, r7, plus, 2098, PreIndex},
2376 "al r8 r7 plus 2098 PreIndex",
2377 "PositivePreIndex_al_r8_r7_plus_2098_PreIndex",
2378 ARRAY_SIZE(kPositivePreIndex),
2379 kPositivePreIndex},
2380 {{al, r5, r11, plus, 3015, PreIndex},
2381 "al r5 r11 plus 3015 PreIndex",
2382 "PositivePreIndex_al_r5_r11_plus_3015_PreIndex",
2383 ARRAY_SIZE(kPositivePreIndex),
2384 kPositivePreIndex},
2385 {{al, r1, r12, plus, 719, PreIndex},
2386 "al r1 r12 plus 719 PreIndex",
2387 "PositivePreIndex_al_r1_r12_plus_719_PreIndex",
2388 ARRAY_SIZE(kPositivePreIndex),
2389 kPositivePreIndex},
2390 {{al, r14, r1, plus, 3413, PreIndex},
2391 "al r14 r1 plus 3413 PreIndex",
2392 "PositivePreIndex_al_r14_r1_plus_3413_PreIndex",
2393 ARRAY_SIZE(kPositivePreIndex),
2394 kPositivePreIndex},
2395 {{al, r10, r0, plus, 3949, PreIndex},
2396 "al r10 r0 plus 3949 PreIndex",
2397 "PositivePreIndex_al_r10_r0_plus_3949_PreIndex",
2398 ARRAY_SIZE(kPositivePreIndex),
2399 kPositivePreIndex},
2400 {{al, r12, r4, plus, 3088, PreIndex},
2401 "al r12 r4 plus 3088 PreIndex",
2402 "PositivePreIndex_al_r12_r4_plus_3088_PreIndex",
2403 ARRAY_SIZE(kPositivePreIndex),
2404 kPositivePreIndex},
2405 {{al, r6, r3, plus, 2690, PreIndex},
2406 "al r6 r3 plus 2690 PreIndex",
2407 "PositivePreIndex_al_r6_r3_plus_2690_PreIndex",
2408 ARRAY_SIZE(kPositivePreIndex),
2409 kPositivePreIndex},
2410 {{al, r9, r6, plus, 3384, PreIndex},
2411 "al r9 r6 plus 3384 PreIndex",
2412 "PositivePreIndex_al_r9_r6_plus_3384_PreIndex",
2413 ARRAY_SIZE(kPositivePreIndex),
2414 kPositivePreIndex},
2415 {{al, r2, r7, plus, 3636, PreIndex},
2416 "al r2 r7 plus 3636 PreIndex",
2417 "PositivePreIndex_al_r2_r7_plus_3636_PreIndex",
2418 ARRAY_SIZE(kPositivePreIndex),
2419 kPositivePreIndex},
2420 {{al, r10, r1, plus, 1390, PreIndex},
2421 "al r10 r1 plus 1390 PreIndex",
2422 "PositivePreIndex_al_r10_r1_plus_1390_PreIndex",
2423 ARRAY_SIZE(kPositivePreIndex),
2424 kPositivePreIndex},
2425 {{al, r2, r8, plus, 2546, PreIndex},
2426 "al r2 r8 plus 2546 PreIndex",
2427 "PositivePreIndex_al_r2_r8_plus_2546_PreIndex",
2428 ARRAY_SIZE(kPositivePreIndex),
2429 kPositivePreIndex},
2430 {{al, r2, r14, plus, 2619, PreIndex},
2431 "al r2 r14 plus 2619 PreIndex",
2432 "PositivePreIndex_al_r2_r14_plus_2619_PreIndex",
2433 ARRAY_SIZE(kPositivePreIndex),
2434 kPositivePreIndex},
2435 {{al, r0, r12, plus, 2591, PreIndex},
2436 "al r0 r12 plus 2591 PreIndex",
2437 "PositivePreIndex_al_r0_r12_plus_2591_PreIndex",
2438 ARRAY_SIZE(kPositivePreIndex),
2439 kPositivePreIndex},
2440 {{al, r11, r7, plus, 3287, PreIndex},
2441 "al r11 r7 plus 3287 PreIndex",
2442 "PositivePreIndex_al_r11_r7_plus_3287_PreIndex",
2443 ARRAY_SIZE(kPositivePreIndex),
2444 kPositivePreIndex},
2445 {{al, r12, r0, plus, 3638, PreIndex},
2446 "al r12 r0 plus 3638 PreIndex",
2447 "PositivePreIndex_al_r12_r0_plus_3638_PreIndex",
2448 ARRAY_SIZE(kPositivePreIndex),
2449 kPositivePreIndex},
2450 {{al, r4, r2, plus, 2944, PreIndex},
2451 "al r4 r2 plus 2944 PreIndex",
2452 "PositivePreIndex_al_r4_r2_plus_2944_PreIndex",
2453 ARRAY_SIZE(kPositivePreIndex),
2454 kPositivePreIndex},
2455 {{al, r12, r3, plus, 2290, PreIndex},
2456 "al r12 r3 plus 2290 PreIndex",
2457 "PositivePreIndex_al_r12_r3_plus_2290_PreIndex",
2458 ARRAY_SIZE(kPositivePreIndex),
2459 kPositivePreIndex},
2460 {{al, r9, r7, plus, 1567, PreIndex},
2461 "al r9 r7 plus 1567 PreIndex",
2462 "PositivePreIndex_al_r9_r7_plus_1567_PreIndex",
2463 ARRAY_SIZE(kPositivePreIndex),
2464 kPositivePreIndex},
2465 {{al, r2, r14, plus, 3994, PreIndex},
2466 "al r2 r14 plus 3994 PreIndex",
2467 "PositivePreIndex_al_r2_r14_plus_3994_PreIndex",
2468 ARRAY_SIZE(kPositivePreIndex),
2469 kPositivePreIndex},
2470 {{al, r9, r11, plus, 3504, PreIndex},
2471 "al r9 r11 plus 3504 PreIndex",
2472 "PositivePreIndex_al_r9_r11_plus_3504_PreIndex",
2473 ARRAY_SIZE(kPositivePreIndex),
2474 kPositivePreIndex},
2475 {{al, r8, r10, plus, 3564, PreIndex},
2476 "al r8 r10 plus 3564 PreIndex",
2477 "PositivePreIndex_al_r8_r10_plus_3564_PreIndex",
2478 ARRAY_SIZE(kPositivePreIndex),
2479 kPositivePreIndex},
2480 {{al, r11, r3, plus, 872, PreIndex},
2481 "al r11 r3 plus 872 PreIndex",
2482 "PositivePreIndex_al_r11_r3_plus_872_PreIndex",
2483 ARRAY_SIZE(kPositivePreIndex),
2484 kPositivePreIndex},
2485 {{al, r6, r7, plus, 3685, PreIndex},
2486 "al r6 r7 plus 3685 PreIndex",
2487 "PositivePreIndex_al_r6_r7_plus_3685_PreIndex",
2488 ARRAY_SIZE(kPositivePreIndex),
2489 kPositivePreIndex},
2490 {{al, r8, r0, plus, 2532, PreIndex},
2491 "al r8 r0 plus 2532 PreIndex",
2492 "PositivePreIndex_al_r8_r0_plus_2532_PreIndex",
2493 ARRAY_SIZE(kPositivePreIndex),
2494 kPositivePreIndex},
2495 {{al, r11, r4, plus, 57, PreIndex},
2496 "al r11 r4 plus 57 PreIndex",
2497 "PositivePreIndex_al_r11_r4_plus_57_PreIndex",
2498 ARRAY_SIZE(kPositivePreIndex),
2499 kPositivePreIndex},
2500 {{al, r12, r1, plus, 3343, PreIndex},
2501 "al r12 r1 plus 3343 PreIndex",
2502 "PositivePreIndex_al_r12_r1_plus_3343_PreIndex",
2503 ARRAY_SIZE(kPositivePreIndex),
2504 kPositivePreIndex},
2505 {{al, r11, r10, plus, 459, PreIndex},
2506 "al r11 r10 plus 459 PreIndex",
2507 "PositivePreIndex_al_r11_r10_plus_459_PreIndex",
2508 ARRAY_SIZE(kPositivePreIndex),
2509 kPositivePreIndex},
2510 {{al, r2, r6, plus, 3867, PreIndex},
2511 "al r2 r6 plus 3867 PreIndex",
2512 "PositivePreIndex_al_r2_r6_plus_3867_PreIndex",
2513 ARRAY_SIZE(kPositivePreIndex),
2514 kPositivePreIndex},
2515 {{al, r11, r12, plus, 1035, PreIndex},
2516 "al r11 r12 plus 1035 PreIndex",
2517 "PositivePreIndex_al_r11_r12_plus_1035_PreIndex",
2518 ARRAY_SIZE(kPositivePreIndex),
2519 kPositivePreIndex},
2520 {{al, r6, r10, plus, 3597, PreIndex},
2521 "al r6 r10 plus 3597 PreIndex",
2522 "PositivePreIndex_al_r6_r10_plus_3597_PreIndex",
2523 ARRAY_SIZE(kPositivePreIndex),
2524 kPositivePreIndex},
2525 {{al, r14, r2, plus, 2281, PreIndex},
2526 "al r14 r2 plus 2281 PreIndex",
2527 "PositivePreIndex_al_r14_r2_plus_2281_PreIndex",
2528 ARRAY_SIZE(kPositivePreIndex),
2529 kPositivePreIndex},
2530 {{al, r3, r10, plus, 2901, PreIndex},
2531 "al r3 r10 plus 2901 PreIndex",
2532 "PositivePreIndex_al_r3_r10_plus_2901_PreIndex",
2533 ARRAY_SIZE(kPositivePreIndex),
2534 kPositivePreIndex},
2535 {{al, r4, r14, plus, 2052, PreIndex},
2536 "al r4 r14 plus 2052 PreIndex",
2537 "PositivePreIndex_al_r4_r14_plus_2052_PreIndex",
2538 ARRAY_SIZE(kPositivePreIndex),
2539 kPositivePreIndex},
2540 {{al, r4, r6, plus, 4091, PreIndex},
2541 "al r4 r6 plus 4091 PreIndex",
2542 "PositivePreIndex_al_r4_r6_plus_4091_PreIndex",
2543 ARRAY_SIZE(kPositivePreIndex),
2544 kPositivePreIndex},
2545 {{al, r4, r12, plus, 871, PreIndex},
2546 "al r4 r12 plus 871 PreIndex",
2547 "PositivePreIndex_al_r4_r12_plus_871_PreIndex",
2548 ARRAY_SIZE(kPositivePreIndex),
2549 kPositivePreIndex},
2550 {{al, r9, r2, plus, 1860, PreIndex},
2551 "al r9 r2 plus 1860 PreIndex",
2552 "PositivePreIndex_al_r9_r2_plus_1860_PreIndex",
2553 ARRAY_SIZE(kPositivePreIndex),
2554 kPositivePreIndex},
2555 {{al, r11, r0, plus, 2345, PreIndex},
2556 "al r11 r0 plus 2345 PreIndex",
2557 "PositivePreIndex_al_r11_r0_plus_2345_PreIndex",
2558 ARRAY_SIZE(kPositivePreIndex),
2559 kPositivePreIndex},
2560 {{al, r4, r12, plus, 1601, PreIndex},
2561 "al r4 r12 plus 1601 PreIndex",
2562 "PositivePreIndex_al_r4_r12_plus_1601_PreIndex",
2563 ARRAY_SIZE(kPositivePreIndex),
2564 kPositivePreIndex},
2565 {{al, r7, r5, plus, 2240, PreIndex},
2566 "al r7 r5 plus 2240 PreIndex",
2567 "PositivePreIndex_al_r7_r5_plus_2240_PreIndex",
2568 ARRAY_SIZE(kPositivePreIndex),
2569 kPositivePreIndex},
2570 {{al, r10, r14, plus, 1542, PreIndex},
2571 "al r10 r14 plus 1542 PreIndex",
2572 "PositivePreIndex_al_r10_r14_plus_1542_PreIndex",
2573 ARRAY_SIZE(kPositivePreIndex),
2574 kPositivePreIndex},
2575 {{al, r8, r12, plus, 1246, PreIndex},
2576 "al r8 r12 plus 1246 PreIndex",
2577 "PositivePreIndex_al_r8_r12_plus_1246_PreIndex",
2578 ARRAY_SIZE(kPositivePreIndex),
2579 kPositivePreIndex},
2580 {{al, r0, r10, plus, 770, PreIndex},
2581 "al r0 r10 plus 770 PreIndex",
2582 "PositivePreIndex_al_r0_r10_plus_770_PreIndex",
2583 ARRAY_SIZE(kPositivePreIndex),
2584 kPositivePreIndex},
2585 {{al, r5, r8, plus, 3076, PreIndex},
2586 "al r5 r8 plus 3076 PreIndex",
2587 "PositivePreIndex_al_r5_r8_plus_3076_PreIndex",
2588 ARRAY_SIZE(kPositivePreIndex),
2589 kPositivePreIndex},
2590 {{al, r3, r10, plus, 3572, PreIndex},
2591 "al r3 r10 plus 3572 PreIndex",
2592 "PositivePreIndex_al_r3_r10_plus_3572_PreIndex",
2593 ARRAY_SIZE(kPositivePreIndex),
2594 kPositivePreIndex},
2595 {{al, r11, r8, plus, 2, PreIndex},
2596 "al r11 r8 plus 2 PreIndex",
2597 "PositivePreIndex_al_r11_r8_plus_2_PreIndex",
2598 ARRAY_SIZE(kPositivePreIndex),
2599 kPositivePreIndex},
2600 {{al, r12, r1, plus, 670, PreIndex},
2601 "al r12 r1 plus 670 PreIndex",
2602 "PositivePreIndex_al_r12_r1_plus_670_PreIndex",
2603 ARRAY_SIZE(kPositivePreIndex),
2604 kPositivePreIndex},
2605 {{al, r6, r4, plus, 251, PreIndex},
2606 "al r6 r4 plus 251 PreIndex",
2607 "PositivePreIndex_al_r6_r4_plus_251_PreIndex",
2608 ARRAY_SIZE(kPositivePreIndex),
2609 kPositivePreIndex},
2610 {{al, r10, r2, plus, 2532, PreIndex},
2611 "al r10 r2 plus 2532 PreIndex",
2612 "PositivePreIndex_al_r10_r2_plus_2532_PreIndex",
2613 ARRAY_SIZE(kPositivePreIndex),
2614 kPositivePreIndex},
2615 {{al, r4, r14, plus, 2906, PreIndex},
2616 "al r4 r14 plus 2906 PreIndex",
2617 "PositivePreIndex_al_r4_r14_plus_2906_PreIndex",
2618 ARRAY_SIZE(kPositivePreIndex),
2619 kPositivePreIndex},
2620 {{al, r3, r5, plus, 2864, PreIndex},
2621 "al r3 r5 plus 2864 PreIndex",
2622 "PositivePreIndex_al_r3_r5_plus_2864_PreIndex",
2623 ARRAY_SIZE(kPositivePreIndex),
2624 kPositivePreIndex},
2625 {{al, r9, r7, plus, 53, PreIndex},
2626 "al r9 r7 plus 53 PreIndex",
2627 "PositivePreIndex_al_r9_r7_plus_53_PreIndex",
2628 ARRAY_SIZE(kPositivePreIndex),
2629 kPositivePreIndex},
2630 {{al, r0, r12, plus, 2462, PreIndex},
2631 "al r0 r12 plus 2462 PreIndex",
2632 "PositivePreIndex_al_r0_r12_plus_2462_PreIndex",
2633 ARRAY_SIZE(kPositivePreIndex),
2634 kPositivePreIndex},
2635 {{al, r3, r1, plus, 2183, PreIndex},
2636 "al r3 r1 plus 2183 PreIndex",
2637 "PositivePreIndex_al_r3_r1_plus_2183_PreIndex",
2638 ARRAY_SIZE(kPositivePreIndex),
2639 kPositivePreIndex},
2640 {{al, r4, r14, plus, 3774, PreIndex},
2641 "al r4 r14 plus 3774 PreIndex",
2642 "PositivePreIndex_al_r4_r14_plus_3774_PreIndex",
2643 ARRAY_SIZE(kPositivePreIndex),
2644 kPositivePreIndex},
2645 {{al, r8, r0, plus, 3994, PreIndex},
2646 "al r8 r0 plus 3994 PreIndex",
2647 "PositivePreIndex_al_r8_r0_plus_3994_PreIndex",
2648 ARRAY_SIZE(kPositivePreIndex),
2649 kPositivePreIndex},
2650 {{al, r1, r5, plus, 3039, PreIndex},
2651 "al r1 r5 plus 3039 PreIndex",
2652 "PositivePreIndex_al_r1_r5_plus_3039_PreIndex",
2653 ARRAY_SIZE(kPositivePreIndex),
2654 kPositivePreIndex},
2655 {{al, r3, r12, plus, 3425, PreIndex},
2656 "al r3 r12 plus 3425 PreIndex",
2657 "PositivePreIndex_al_r3_r12_plus_3425_PreIndex",
2658 ARRAY_SIZE(kPositivePreIndex),
2659 kPositivePreIndex},
2660 {{al, r14, r9, plus, 4046, PreIndex},
2661 "al r14 r9 plus 4046 PreIndex",
2662 "PositivePreIndex_al_r14_r9_plus_4046_PreIndex",
2663 ARRAY_SIZE(kPositivePreIndex),
2664 kPositivePreIndex},
2665 {{al, r10, r11, plus, 2451, PreIndex},
2666 "al r10 r11 plus 2451 PreIndex",
2667 "PositivePreIndex_al_r10_r11_plus_2451_PreIndex",
2668 ARRAY_SIZE(kPositivePreIndex),
2669 kPositivePreIndex},
2670 {{al, r6, r9, plus, 3063, PreIndex},
2671 "al r6 r9 plus 3063 PreIndex",
2672 "PositivePreIndex_al_r6_r9_plus_3063_PreIndex",
2673 ARRAY_SIZE(kPositivePreIndex),
2674 kPositivePreIndex},
2675 {{al, r3, r1, plus, 3865, PreIndex},
2676 "al r3 r1 plus 3865 PreIndex",
2677 "PositivePreIndex_al_r3_r1_plus_3865_PreIndex",
2678 ARRAY_SIZE(kPositivePreIndex),
2679 kPositivePreIndex},
2680 {{al, r14, r4, plus, 1537, PreIndex},
2681 "al r14 r4 plus 1537 PreIndex",
2682 "PositivePreIndex_al_r14_r4_plus_1537_PreIndex",
2683 ARRAY_SIZE(kPositivePreIndex),
2684 kPositivePreIndex},
2685 {{al, r9, r6, plus, 3413, PreIndex},
2686 "al r9 r6 plus 3413 PreIndex",
2687 "PositivePreIndex_al_r9_r6_plus_3413_PreIndex",
2688 ARRAY_SIZE(kPositivePreIndex),
2689 kPositivePreIndex},
2690 {{al, r2, r1, plus, 2403, PreIndex},
2691 "al r2 r1 plus 2403 PreIndex",
2692 "PositivePreIndex_al_r2_r1_plus_2403_PreIndex",
2693 ARRAY_SIZE(kPositivePreIndex),
2694 kPositivePreIndex},
2695 {{al, r14, r4, plus, 2224, PreIndex},
2696 "al r14 r4 plus 2224 PreIndex",
2697 "PositivePreIndex_al_r14_r4_plus_2224_PreIndex",
2698 ARRAY_SIZE(kPositivePreIndex),
2699 kPositivePreIndex},
2700 {{al, r4, r5, plus, 3743, PreIndex},
2701 "al r4 r5 plus 3743 PreIndex",
2702 "PositivePreIndex_al_r4_r5_plus_3743_PreIndex",
2703 ARRAY_SIZE(kPositivePreIndex),
2704 kPositivePreIndex},
2705 {{al, r6, r1, plus, 1475, PreIndex},
2706 "al r6 r1 plus 1475 PreIndex",
2707 "PositivePreIndex_al_r6_r1_plus_1475_PreIndex",
2708 ARRAY_SIZE(kPositivePreIndex),
2709 kPositivePreIndex},
2710 {{al, r10, r8, plus, 132, PreIndex},
2711 "al r10 r8 plus 132 PreIndex",
2712 "PositivePreIndex_al_r10_r8_plus_132_PreIndex",
2713 ARRAY_SIZE(kPositivePreIndex),
2714 kPositivePreIndex},
2715 {{al, r6, r10, plus, 1459, PreIndex},
2716 "al r6 r10 plus 1459 PreIndex",
2717 "PositivePreIndex_al_r6_r10_plus_1459_PreIndex",
2718 ARRAY_SIZE(kPositivePreIndex),
2719 kPositivePreIndex},
2720 {{al, r12, r8, plus, 2254, PreIndex},
2721 "al r12 r8 plus 2254 PreIndex",
2722 "PositivePreIndex_al_r12_r8_plus_2254_PreIndex",
2723 ARRAY_SIZE(kPositivePreIndex),
2724 kPositivePreIndex},
2725 {{al, r4, r0, plus, 3079, PreIndex},
2726 "al r4 r0 plus 3079 PreIndex",
2727 "PositivePreIndex_al_r4_r0_plus_3079_PreIndex",
2728 ARRAY_SIZE(kPositivePreIndex),
2729 kPositivePreIndex},
2730 {{al, r9, r14, plus, 3717, PreIndex},
2731 "al r9 r14 plus 3717 PreIndex",
2732 "PositivePreIndex_al_r9_r14_plus_3717_PreIndex",
2733 ARRAY_SIZE(kPositivePreIndex),
2734 kPositivePreIndex},
2735 {{al, r2, r10, plus, 2490, PreIndex},
2736 "al r2 r10 plus 2490 PreIndex",
2737 "PositivePreIndex_al_r2_r10_plus_2490_PreIndex",
2738 ARRAY_SIZE(kPositivePreIndex),
2739 kPositivePreIndex},
2740 {{al, r2, r8, plus, 210, PreIndex},
2741 "al r2 r8 plus 210 PreIndex",
2742 "PositivePreIndex_al_r2_r8_plus_210_PreIndex",
2743 ARRAY_SIZE(kPositivePreIndex),
2744 kPositivePreIndex},
2745 {{al, r5, r2, plus, 2559, PreIndex},
2746 "al r5 r2 plus 2559 PreIndex",
2747 "PositivePreIndex_al_r5_r2_plus_2559_PreIndex",
2748 ARRAY_SIZE(kPositivePreIndex),
2749 kPositivePreIndex},
2750 {{al, r4, r11, plus, 2326, PreIndex},
2751 "al r4 r11 plus 2326 PreIndex",
2752 "PositivePreIndex_al_r4_r11_plus_2326_PreIndex",
2753 ARRAY_SIZE(kPositivePreIndex),
2754 kPositivePreIndex},
2755 {{al, r7, r1, plus, 4093, PreIndex},
2756 "al r7 r1 plus 4093 PreIndex",
2757 "PositivePreIndex_al_r7_r1_plus_4093_PreIndex",
2758 ARRAY_SIZE(kPositivePreIndex),
2759 kPositivePreIndex},
2760 {{al, r8, r1, plus, 663, PreIndex},
2761 "al r8 r1 plus 663 PreIndex",
2762 "PositivePreIndex_al_r8_r1_plus_663_PreIndex",
2763 ARRAY_SIZE(kPositivePreIndex),
2764 kPositivePreIndex},
2765 {{al, r9, r3, plus, 1551, PreIndex},
2766 "al r9 r3 plus 1551 PreIndex",
2767 "PositivePreIndex_al_r9_r3_plus_1551_PreIndex",
2768 ARRAY_SIZE(kPositivePreIndex),
2769 kPositivePreIndex},
2770 {{al, r3, r14, plus, 1556, PreIndex},
2771 "al r3 r14 plus 1556 PreIndex",
2772 "PositivePreIndex_al_r3_r14_plus_1556_PreIndex",
2773 ARRAY_SIZE(kPositivePreIndex),
2774 kPositivePreIndex},
2775 {{al, r6, r9, plus, 1359, PreIndex},
2776 "al r6 r9 plus 1359 PreIndex",
2777 "PositivePreIndex_al_r6_r9_plus_1359_PreIndex",
2778 ARRAY_SIZE(kPositivePreIndex),
2779 kPositivePreIndex},
2780 {{al, r2, r7, plus, 3438, PreIndex},
2781 "al r2 r7 plus 3438 PreIndex",
2782 "PositivePreIndex_al_r2_r7_plus_3438_PreIndex",
2783 ARRAY_SIZE(kPositivePreIndex),
2784 kPositivePreIndex},
2785 {{al, r7, r5, plus, 1526, PreIndex},
2786 "al r7 r5 plus 1526 PreIndex",
2787 "PositivePreIndex_al_r7_r5_plus_1526_PreIndex",
2788 ARRAY_SIZE(kPositivePreIndex),
2789 kPositivePreIndex},
2790 {{al, r12, r7, plus, 57, PreIndex},
2791 "al r12 r7 plus 57 PreIndex",
2792 "PositivePreIndex_al_r12_r7_plus_57_PreIndex",
2793 ARRAY_SIZE(kPositivePreIndex),
2794 kPositivePreIndex},
2795 {{al, r12, r0, plus, 3138, PreIndex},
2796 "al r12 r0 plus 3138 PreIndex",
2797 "PositivePreIndex_al_r12_r0_plus_3138_PreIndex",
2798 ARRAY_SIZE(kPositivePreIndex),
2799 kPositivePreIndex},
2800 {{al, r4, r11, plus, 672, PreIndex},
2801 "al r4 r11 plus 672 PreIndex",
2802 "PositivePreIndex_al_r4_r11_plus_672_PreIndex",
2803 ARRAY_SIZE(kPositivePreIndex),
2804 kPositivePreIndex},
2805 {{al, r10, r14, plus, 689, PreIndex},
2806 "al r10 r14 plus 689 PreIndex",
2807 "PositivePreIndex_al_r10_r14_plus_689_PreIndex",
2808 ARRAY_SIZE(kPositivePreIndex),
2809 kPositivePreIndex},
2810 {{al, r1, r8, plus, 3572, PreIndex},
2811 "al r1 r8 plus 3572 PreIndex",
2812 "PositivePreIndex_al_r1_r8_plus_3572_PreIndex",
2813 ARRAY_SIZE(kPositivePreIndex),
2814 kPositivePreIndex},
2815 {{al, r8, r6, plus, 3405, PreIndex},
2816 "al r8 r6 plus 3405 PreIndex",
2817 "PositivePreIndex_al_r8_r6_plus_3405_PreIndex",
2818 ARRAY_SIZE(kPositivePreIndex),
2819 kPositivePreIndex},
2820 {{al, r11, r0, plus, 1845, PreIndex},
2821 "al r11 r0 plus 1845 PreIndex",
2822 "PositivePreIndex_al_r11_r0_plus_1845_PreIndex",
2823 ARRAY_SIZE(kPositivePreIndex),
2824 kPositivePreIndex},
2825 {{al, r11, r3, plus, 791, PreIndex},
2826 "al r11 r3 plus 791 PreIndex",
2827 "PositivePreIndex_al_r11_r3_plus_791_PreIndex",
2828 ARRAY_SIZE(kPositivePreIndex),
2829 kPositivePreIndex},
2830 {{al, r4, r11, minus, 479, PreIndex},
2831 "al r4 r11 minus 479 PreIndex",
2832 "NegativePreIndex_al_r4_r11_minus_479_PreIndex",
2833 ARRAY_SIZE(kNegativePreIndex),
2834 kNegativePreIndex},
2835 {{al, r1, r10, minus, 3603, PreIndex},
2836 "al r1 r10 minus 3603 PreIndex",
2837 "NegativePreIndex_al_r1_r10_minus_3603_PreIndex",
2838 ARRAY_SIZE(kNegativePreIndex),
2839 kNegativePreIndex},
2840 {{al, r7, r9, minus, 704, PreIndex},
2841 "al r7 r9 minus 704 PreIndex",
2842 "NegativePreIndex_al_r7_r9_minus_704_PreIndex",
2843 ARRAY_SIZE(kNegativePreIndex),
2844 kNegativePreIndex},
2845 {{al, r5, r1, minus, 1017, PreIndex},
2846 "al r5 r1 minus 1017 PreIndex",
2847 "NegativePreIndex_al_r5_r1_minus_1017_PreIndex",
2848 ARRAY_SIZE(kNegativePreIndex),
2849 kNegativePreIndex},
2850 {{al, r3, r5, minus, 1712, PreIndex},
2851 "al r3 r5 minus 1712 PreIndex",
2852 "NegativePreIndex_al_r3_r5_minus_1712_PreIndex",
2853 ARRAY_SIZE(kNegativePreIndex),
2854 kNegativePreIndex},
2855 {{al, r8, r2, minus, 2046, PreIndex},
2856 "al r8 r2 minus 2046 PreIndex",
2857 "NegativePreIndex_al_r8_r2_minus_2046_PreIndex",
2858 ARRAY_SIZE(kNegativePreIndex),
2859 kNegativePreIndex},
2860 {{al, r14, r5, minus, 1999, PreIndex},
2861 "al r14 r5 minus 1999 PreIndex",
2862 "NegativePreIndex_al_r14_r5_minus_1999_PreIndex",
2863 ARRAY_SIZE(kNegativePreIndex),
2864 kNegativePreIndex},
2865 {{al, r5, r4, minus, 2849, PreIndex},
2866 "al r5 r4 minus 2849 PreIndex",
2867 "NegativePreIndex_al_r5_r4_minus_2849_PreIndex",
2868 ARRAY_SIZE(kNegativePreIndex),
2869 kNegativePreIndex},
2870 {{al, r9, r14, minus, 263, PreIndex},
2871 "al r9 r14 minus 263 PreIndex",
2872 "NegativePreIndex_al_r9_r14_minus_263_PreIndex",
2873 ARRAY_SIZE(kNegativePreIndex),
2874 kNegativePreIndex},
2875 {{al, r7, r1, minus, 517, PreIndex},
2876 "al r7 r1 minus 517 PreIndex",
2877 "NegativePreIndex_al_r7_r1_minus_517_PreIndex",
2878 ARRAY_SIZE(kNegativePreIndex),
2879 kNegativePreIndex},
2880 {{al, r14, r10, minus, 1961, PreIndex},
2881 "al r14 r10 minus 1961 PreIndex",
2882 "NegativePreIndex_al_r14_r10_minus_1961_PreIndex",
2883 ARRAY_SIZE(kNegativePreIndex),
2884 kNegativePreIndex},
2885 {{al, r7, r14, minus, 1295, PreIndex},
2886 "al r7 r14 minus 1295 PreIndex",
2887 "NegativePreIndex_al_r7_r14_minus_1295_PreIndex",
2888 ARRAY_SIZE(kNegativePreIndex),
2889 kNegativePreIndex},
2890 {{al, r1, r8, minus, 213, PreIndex},
2891 "al r1 r8 minus 213 PreIndex",
2892 "NegativePreIndex_al_r1_r8_minus_213_PreIndex",
2893 ARRAY_SIZE(kNegativePreIndex),
2894 kNegativePreIndex},
2895 {{al, r10, r9, minus, 2866, PreIndex},
2896 "al r10 r9 minus 2866 PreIndex",
2897 "NegativePreIndex_al_r10_r9_minus_2866_PreIndex",
2898 ARRAY_SIZE(kNegativePreIndex),
2899 kNegativePreIndex},
2900 {{al, r14, r6, minus, 1823, PreIndex},
2901 "al r14 r6 minus 1823 PreIndex",
2902 "NegativePreIndex_al_r14_r6_minus_1823_PreIndex",
2903 ARRAY_SIZE(kNegativePreIndex),
2904 kNegativePreIndex},
2905 {{al, r1, r14, minus, 2395, PreIndex},
2906 "al r1 r14 minus 2395 PreIndex",
2907 "NegativePreIndex_al_r1_r14_minus_2395_PreIndex",
2908 ARRAY_SIZE(kNegativePreIndex),
2909 kNegativePreIndex},
2910 {{al, r1, r6, minus, 2044, PreIndex},
2911 "al r1 r6 minus 2044 PreIndex",
2912 "NegativePreIndex_al_r1_r6_minus_2044_PreIndex",
2913 ARRAY_SIZE(kNegativePreIndex),
2914 kNegativePreIndex},
2915 {{al, r3, r5, minus, 3963, PreIndex},
2916 "al r3 r5 minus 3963 PreIndex",
2917 "NegativePreIndex_al_r3_r5_minus_3963_PreIndex",
2918 ARRAY_SIZE(kNegativePreIndex),
2919 kNegativePreIndex},
2920 {{al, r7, r8, minus, 3989, PreIndex},
2921 "al r7 r8 minus 3989 PreIndex",
2922 "NegativePreIndex_al_r7_r8_minus_3989_PreIndex",
2923 ARRAY_SIZE(kNegativePreIndex),
2924 kNegativePreIndex},
2925 {{al, r2, r0, minus, 3975, PreIndex},
2926 "al r2 r0 minus 3975 PreIndex",
2927 "NegativePreIndex_al_r2_r0_minus_3975_PreIndex",
2928 ARRAY_SIZE(kNegativePreIndex),
2929 kNegativePreIndex},
2930 {{al, r0, r10, minus, 481, PreIndex},
2931 "al r0 r10 minus 481 PreIndex",
2932 "NegativePreIndex_al_r0_r10_minus_481_PreIndex",
2933 ARRAY_SIZE(kNegativePreIndex),
2934 kNegativePreIndex},
2935 {{al, r1, r11, minus, 3696, PreIndex},
2936 "al r1 r11 minus 3696 PreIndex",
2937 "NegativePreIndex_al_r1_r11_minus_3696_PreIndex",
2938 ARRAY_SIZE(kNegativePreIndex),
2939 kNegativePreIndex},
2940 {{al, r12, r9, minus, 371, PreIndex},
2941 "al r12 r9 minus 371 PreIndex",
2942 "NegativePreIndex_al_r12_r9_minus_371_PreIndex",
2943 ARRAY_SIZE(kNegativePreIndex),
2944 kNegativePreIndex},
2945 {{al, r3, r9, minus, 2464, PreIndex},
2946 "al r3 r9 minus 2464 PreIndex",
2947 "NegativePreIndex_al_r3_r9_minus_2464_PreIndex",
2948 ARRAY_SIZE(kNegativePreIndex),
2949 kNegativePreIndex},
2950 {{al, r3, r0, minus, 1168, PreIndex},
2951 "al r3 r0 minus 1168 PreIndex",
2952 "NegativePreIndex_al_r3_r0_minus_1168_PreIndex",
2953 ARRAY_SIZE(kNegativePreIndex),
2954 kNegativePreIndex},
2955 {{al, r10, r0, minus, 1066, PreIndex},
2956 "al r10 r0 minus 1066 PreIndex",
2957 "NegativePreIndex_al_r10_r0_minus_1066_PreIndex",
2958 ARRAY_SIZE(kNegativePreIndex),
2959 kNegativePreIndex},
2960 {{al, r9, r1, minus, 1651, PreIndex},
2961 "al r9 r1 minus 1651 PreIndex",
2962 "NegativePreIndex_al_r9_r1_minus_1651_PreIndex",
2963 ARRAY_SIZE(kNegativePreIndex),
2964 kNegativePreIndex},
2965 {{al, r5, r0, minus, 3821, PreIndex},
2966 "al r5 r0 minus 3821 PreIndex",
2967 "NegativePreIndex_al_r5_r0_minus_3821_PreIndex",
2968 ARRAY_SIZE(kNegativePreIndex),
2969 kNegativePreIndex},
2970 {{al, r1, r6, minus, 2052, PreIndex},
2971 "al r1 r6 minus 2052 PreIndex",
2972 "NegativePreIndex_al_r1_r6_minus_2052_PreIndex",
2973 ARRAY_SIZE(kNegativePreIndex),
2974 kNegativePreIndex},
2975 {{al, r4, r12, minus, 490, PreIndex},
2976 "al r4 r12 minus 490 PreIndex",
2977 "NegativePreIndex_al_r4_r12_minus_490_PreIndex",
2978 ARRAY_SIZE(kNegativePreIndex),
2979 kNegativePreIndex},
2980 {{al, r5, r3, minus, 1922, PreIndex},
2981 "al r5 r3 minus 1922 PreIndex",
2982 "NegativePreIndex_al_r5_r3_minus_1922_PreIndex",
2983 ARRAY_SIZE(kNegativePreIndex),
2984 kNegativePreIndex},
2985 {{al, r14, r5, minus, 875, PreIndex},
2986 "al r14 r5 minus 875 PreIndex",
2987 "NegativePreIndex_al_r14_r5_minus_875_PreIndex",
2988 ARRAY_SIZE(kNegativePreIndex),
2989 kNegativePreIndex},
2990 {{al, r10, r2, minus, 2183, PreIndex},
2991 "al r10 r2 minus 2183 PreIndex",
2992 "NegativePreIndex_al_r10_r2_minus_2183_PreIndex",
2993 ARRAY_SIZE(kNegativePreIndex),
2994 kNegativePreIndex},
2995 {{al, r9, r4, minus, 1961, PreIndex},
2996 "al r9 r4 minus 1961 PreIndex",
2997 "NegativePreIndex_al_r9_r4_minus_1961_PreIndex",
2998 ARRAY_SIZE(kNegativePreIndex),
2999 kNegativePreIndex},
3000 {{al, r3, r5, minus, 3413, PreIndex},
3001 "al r3 r5 minus 3413 PreIndex",
3002 "NegativePreIndex_al_r3_r5_minus_3413_PreIndex",
3003 ARRAY_SIZE(kNegativePreIndex),
3004 kNegativePreIndex},
3005 {{al, r4, r14, minus, 2016, PreIndex},
3006 "al r4 r14 minus 2016 PreIndex",
3007 "NegativePreIndex_al_r4_r14_minus_2016_PreIndex",
3008 ARRAY_SIZE(kNegativePreIndex),
3009 kNegativePreIndex},
3010 {{al, r0, r3, minus, 484, PreIndex},
3011 "al r0 r3 minus 484 PreIndex",
3012 "NegativePreIndex_al_r0_r3_minus_484_PreIndex",
3013 ARRAY_SIZE(kNegativePreIndex),
3014 kNegativePreIndex},
3015 {{al, r11, r14, minus, 322, PreIndex},
3016 "al r11 r14 minus 322 PreIndex",
3017 "NegativePreIndex_al_r11_r14_minus_322_PreIndex",
3018 ARRAY_SIZE(kNegativePreIndex),
3019 kNegativePreIndex},
3020 {{al, r0, r5, minus, 2139, PreIndex},
3021 "al r0 r5 minus 2139 PreIndex",
3022 "NegativePreIndex_al_r0_r5_minus_2139_PreIndex",
3023 ARRAY_SIZE(kNegativePreIndex),
3024 kNegativePreIndex},
3025 {{al, r9, r14, minus, 2976, PreIndex},
3026 "al r9 r14 minus 2976 PreIndex",
3027 "NegativePreIndex_al_r9_r14_minus_2976_PreIndex",
3028 ARRAY_SIZE(kNegativePreIndex),
3029 kNegativePreIndex},
3030 {{al, r10, r0, minus, 2839, PreIndex},
3031 "al r10 r0 minus 2839 PreIndex",
3032 "NegativePreIndex_al_r10_r0_minus_2839_PreIndex",
3033 ARRAY_SIZE(kNegativePreIndex),
3034 kNegativePreIndex},
3035 {{al, r4, r2, minus, 2541, PreIndex},
3036 "al r4 r2 minus 2541 PreIndex",
3037 "NegativePreIndex_al_r4_r2_minus_2541_PreIndex",
3038 ARRAY_SIZE(kNegativePreIndex),
3039 kNegativePreIndex},
3040 {{al, r7, r0, minus, 3907, PreIndex},
3041 "al r7 r0 minus 3907 PreIndex",
3042 "NegativePreIndex_al_r7_r0_minus_3907_PreIndex",
3043 ARRAY_SIZE(kNegativePreIndex),
3044 kNegativePreIndex},
3045 {{al, r5, r14, minus, 3449, PreIndex},
3046 "al r5 r14 minus 3449 PreIndex",
3047 "NegativePreIndex_al_r5_r14_minus_3449_PreIndex",
3048 ARRAY_SIZE(kNegativePreIndex),
3049 kNegativePreIndex},
3050 {{al, r8, r14, minus, 2069, PreIndex},
3051 "al r8 r14 minus 2069 PreIndex",
3052 "NegativePreIndex_al_r8_r14_minus_2069_PreIndex",
3053 ARRAY_SIZE(kNegativePreIndex),
3054 kNegativePreIndex},
3055 {{al, r5, r6, minus, 3570, PreIndex},
3056 "al r5 r6 minus 3570 PreIndex",
3057 "NegativePreIndex_al_r5_r6_minus_3570_PreIndex",
3058 ARRAY_SIZE(kNegativePreIndex),
3059 kNegativePreIndex},
3060 {{al, r11, r4, minus, 811, PreIndex},
3061 "al r11 r4 minus 811 PreIndex",
3062 "NegativePreIndex_al_r11_r4_minus_811_PreIndex",
3063 ARRAY_SIZE(kNegativePreIndex),
3064 kNegativePreIndex},
3065 {{al, r5, r8, minus, 1867, PreIndex},
3066 "al r5 r8 minus 1867 PreIndex",
3067 "NegativePreIndex_al_r5_r8_minus_1867_PreIndex",
3068 ARRAY_SIZE(kNegativePreIndex),
3069 kNegativePreIndex},
3070 {{al, r8, r7, minus, 3978, PreIndex},
3071 "al r8 r7 minus 3978 PreIndex",
3072 "NegativePreIndex_al_r8_r7_minus_3978_PreIndex",
3073 ARRAY_SIZE(kNegativePreIndex),
3074 kNegativePreIndex},
3075 {{al, r6, r11, minus, 3438, PreIndex},
3076 "al r6 r11 minus 3438 PreIndex",
3077 "NegativePreIndex_al_r6_r11_minus_3438_PreIndex",
3078 ARRAY_SIZE(kNegativePreIndex),
3079 kNegativePreIndex},
3080 {{al, r9, r0, minus, 669, PreIndex},
3081 "al r9 r0 minus 669 PreIndex",
3082 "NegativePreIndex_al_r9_r0_minus_669_PreIndex",
3083 ARRAY_SIZE(kNegativePreIndex),
3084 kNegativePreIndex},
3085 {{al, r2, r7, minus, 1916, PreIndex},
3086 "al r2 r7 minus 1916 PreIndex",
3087 "NegativePreIndex_al_r2_r7_minus_1916_PreIndex",
3088 ARRAY_SIZE(kNegativePreIndex),
3089 kNegativePreIndex},
3090 {{al, r12, r6, minus, 3949, PreIndex},
3091 "al r12 r6 minus 3949 PreIndex",
3092 "NegativePreIndex_al_r12_r6_minus_3949_PreIndex",
3093 ARRAY_SIZE(kNegativePreIndex),
3094 kNegativePreIndex},
3095 {{al, r2, r14, minus, 496, PreIndex},
3096 "al r2 r14 minus 496 PreIndex",
3097 "NegativePreIndex_al_r2_r14_minus_496_PreIndex",
3098 ARRAY_SIZE(kNegativePreIndex),
3099 kNegativePreIndex},
3100 {{al, r2, r9, minus, 3914, PreIndex},
3101 "al r2 r9 minus 3914 PreIndex",
3102 "NegativePreIndex_al_r2_r9_minus_3914_PreIndex",
3103 ARRAY_SIZE(kNegativePreIndex),
3104 kNegativePreIndex},
3105 {{al, r11, r2, minus, 1377, PreIndex},
3106 "al r11 r2 minus 1377 PreIndex",
3107 "NegativePreIndex_al_r11_r2_minus_1377_PreIndex",
3108 ARRAY_SIZE(kNegativePreIndex),
3109 kNegativePreIndex},
3110 {{al, r8, r7, minus, 3007, PreIndex},
3111 "al r8 r7 minus 3007 PreIndex",
3112 "NegativePreIndex_al_r8_r7_minus_3007_PreIndex",
3113 ARRAY_SIZE(kNegativePreIndex),
3114 kNegativePreIndex},
3115 {{al, r9, r1, minus, 496, PreIndex},
3116 "al r9 r1 minus 496 PreIndex",
3117 "NegativePreIndex_al_r9_r1_minus_496_PreIndex",
3118 ARRAY_SIZE(kNegativePreIndex),
3119 kNegativePreIndex},
3120 {{al, r11, r7, minus, 138, PreIndex},
3121 "al r11 r7 minus 138 PreIndex",
3122 "NegativePreIndex_al_r11_r7_minus_138_PreIndex",
3123 ARRAY_SIZE(kNegativePreIndex),
3124 kNegativePreIndex},
3125 {{al, r0, r3, minus, 732, PreIndex},
3126 "al r0 r3 minus 732 PreIndex",
3127 "NegativePreIndex_al_r0_r3_minus_732_PreIndex",
3128 ARRAY_SIZE(kNegativePreIndex),
3129 kNegativePreIndex},
3130 {{al, r9, r14, minus, 1635, PreIndex},
3131 "al r9 r14 minus 1635 PreIndex",
3132 "NegativePreIndex_al_r9_r14_minus_1635_PreIndex",
3133 ARRAY_SIZE(kNegativePreIndex),
3134 kNegativePreIndex},
3135 {{al, r3, r0, minus, 2119, PreIndex},
3136 "al r3 r0 minus 2119 PreIndex",
3137 "NegativePreIndex_al_r3_r0_minus_2119_PreIndex",
3138 ARRAY_SIZE(kNegativePreIndex),
3139 kNegativePreIndex},
3140 {{al, r3, r14, minus, 1585, PreIndex},
3141 "al r3 r14 minus 1585 PreIndex",
3142 "NegativePreIndex_al_r3_r14_minus_1585_PreIndex",
3143 ARRAY_SIZE(kNegativePreIndex),
3144 kNegativePreIndex},
3145 {{al, r8, r11, minus, 831, PreIndex},
3146 "al r8 r11 minus 831 PreIndex",
3147 "NegativePreIndex_al_r8_r11_minus_831_PreIndex",
3148 ARRAY_SIZE(kNegativePreIndex),
3149 kNegativePreIndex},
3150 {{al, r11, r3, minus, 470, PreIndex},
3151 "al r11 r3 minus 470 PreIndex",
3152 "NegativePreIndex_al_r11_r3_minus_470_PreIndex",
3153 ARRAY_SIZE(kNegativePreIndex),
3154 kNegativePreIndex},
3155 {{al, r12, r6, minus, 47, PreIndex},
3156 "al r12 r6 minus 47 PreIndex",
3157 "NegativePreIndex_al_r12_r6_minus_47_PreIndex",
3158 ARRAY_SIZE(kNegativePreIndex),
3159 kNegativePreIndex},
3160 {{al, r1, r2, minus, 1542, PreIndex},
3161 "al r1 r2 minus 1542 PreIndex",
3162 "NegativePreIndex_al_r1_r2_minus_1542_PreIndex",
3163 ARRAY_SIZE(kNegativePreIndex),
3164 kNegativePreIndex},
3165 {{al, r11, r7, minus, 2442, PreIndex},
3166 "al r11 r7 minus 2442 PreIndex",
3167 "NegativePreIndex_al_r11_r7_minus_2442_PreIndex",
3168 ARRAY_SIZE(kNegativePreIndex),
3169 kNegativePreIndex},
3170 {{al, r7, r10, minus, 1896, PreIndex},
3171 "al r7 r10 minus 1896 PreIndex",
3172 "NegativePreIndex_al_r7_r10_minus_1896_PreIndex",
3173 ARRAY_SIZE(kNegativePreIndex),
3174 kNegativePreIndex},
3175 {{al, r14, r6, minus, 3504, PreIndex},
3176 "al r14 r6 minus 3504 PreIndex",
3177 "NegativePreIndex_al_r14_r6_minus_3504_PreIndex",
3178 ARRAY_SIZE(kNegativePreIndex),
3179 kNegativePreIndex},
3180 {{al, r11, r5, minus, 1872, PreIndex},
3181 "al r11 r5 minus 1872 PreIndex",
3182 "NegativePreIndex_al_r11_r5_minus_1872_PreIndex",
3183 ARRAY_SIZE(kNegativePreIndex),
3184 kNegativePreIndex},
3185 {{al, r14, r11, minus, 386, PreIndex},
3186 "al r14 r11 minus 386 PreIndex",
3187 "NegativePreIndex_al_r14_r11_minus_386_PreIndex",
3188 ARRAY_SIZE(kNegativePreIndex),
3189 kNegativePreIndex},
3190 {{al, r3, r12, minus, 2483, PreIndex},
3191 "al r3 r12 minus 2483 PreIndex",
3192 "NegativePreIndex_al_r3_r12_minus_2483_PreIndex",
3193 ARRAY_SIZE(kNegativePreIndex),
3194 kNegativePreIndex},
3195 {{al, r6, r2, minus, 2052, PreIndex},
3196 "al r6 r2 minus 2052 PreIndex",
3197 "NegativePreIndex_al_r6_r2_minus_2052_PreIndex",
3198 ARRAY_SIZE(kNegativePreIndex),
3199 kNegativePreIndex},
3200 {{al, r4, r10, minus, 1399, PreIndex},
3201 "al r4 r10 minus 1399 PreIndex",
3202 "NegativePreIndex_al_r4_r10_minus_1399_PreIndex",
3203 ARRAY_SIZE(kNegativePreIndex),
3204 kNegativePreIndex},
3205 {{al, r3, r5, minus, 1027, PreIndex},
3206 "al r3 r5 minus 1027 PreIndex",
3207 "NegativePreIndex_al_r3_r5_minus_1027_PreIndex",
3208 ARRAY_SIZE(kNegativePreIndex),
3209 kNegativePreIndex},
3210 {{al, r10, r14, minus, 2627, PreIndex},
3211 "al r10 r14 minus 2627 PreIndex",
3212 "NegativePreIndex_al_r10_r14_minus_2627_PreIndex",
3213 ARRAY_SIZE(kNegativePreIndex),
3214 kNegativePreIndex},
3215 {{al, r3, r9, minus, 2728, PreIndex},
3216 "al r3 r9 minus 2728 PreIndex",
3217 "NegativePreIndex_al_r3_r9_minus_2728_PreIndex",
3218 ARRAY_SIZE(kNegativePreIndex),
3219 kNegativePreIndex},
3220 {{al, r14, r8, minus, 2475, PreIndex},
3221 "al r14 r8 minus 2475 PreIndex",
3222 "NegativePreIndex_al_r14_r8_minus_2475_PreIndex",
3223 ARRAY_SIZE(kNegativePreIndex),
3224 kNegativePreIndex},
3225 {{al, r14, r5, minus, 510, PreIndex},
3226 "al r14 r5 minus 510 PreIndex",
3227 "NegativePreIndex_al_r14_r5_minus_510_PreIndex",
3228 ARRAY_SIZE(kNegativePreIndex),
3229 kNegativePreIndex},
3230 {{al, r14, r3, minus, 2311, PreIndex},
3231 "al r14 r3 minus 2311 PreIndex",
3232 "NegativePreIndex_al_r14_r3_minus_2311_PreIndex",
3233 ARRAY_SIZE(kNegativePreIndex),
3234 kNegativePreIndex},
3235 {{al, r7, r12, minus, 2792, PreIndex},
3236 "al r7 r12 minus 2792 PreIndex",
3237 "NegativePreIndex_al_r7_r12_minus_2792_PreIndex",
3238 ARRAY_SIZE(kNegativePreIndex),
3239 kNegativePreIndex},
3240 {{al, r4, r14, minus, 1655, PreIndex},
3241 "al r4 r14 minus 1655 PreIndex",
3242 "NegativePreIndex_al_r4_r14_minus_1655_PreIndex",
3243 ARRAY_SIZE(kNegativePreIndex),
3244 kNegativePreIndex},
3245 {{al, r10, r5, minus, 3282, PreIndex},
3246 "al r10 r5 minus 3282 PreIndex",
3247 "NegativePreIndex_al_r10_r5_minus_3282_PreIndex",
3248 ARRAY_SIZE(kNegativePreIndex),
3249 kNegativePreIndex},
3250 {{al, r11, r7, minus, 3472, PreIndex},
3251 "al r11 r7 minus 3472 PreIndex",
3252 "NegativePreIndex_al_r11_r7_minus_3472_PreIndex",
3253 ARRAY_SIZE(kNegativePreIndex),
3254 kNegativePreIndex},
3255 {{al, r14, r1, minus, 3266, PreIndex},
3256 "al r14 r1 minus 3266 PreIndex",
3257 "NegativePreIndex_al_r14_r1_minus_3266_PreIndex",
3258 ARRAY_SIZE(kNegativePreIndex),
3259 kNegativePreIndex},
3260 {{al, r5, r1, minus, 3256, PreIndex},
3261 "al r5 r1 minus 3256 PreIndex",
3262 "NegativePreIndex_al_r5_r1_minus_3256_PreIndex",
3263 ARRAY_SIZE(kNegativePreIndex),
3264 kNegativePreIndex},
3265 {{al, r7, r11, minus, 4, PreIndex},
3266 "al r7 r11 minus 4 PreIndex",
3267 "NegativePreIndex_al_r7_r11_minus_4_PreIndex",
3268 ARRAY_SIZE(kNegativePreIndex),
3269 kNegativePreIndex},
3270 {{al, r9, r3, minus, 1695, PreIndex},
3271 "al r9 r3 minus 1695 PreIndex",
3272 "NegativePreIndex_al_r9_r3_minus_1695_PreIndex",
3273 ARRAY_SIZE(kNegativePreIndex),
3274 kNegativePreIndex},
3275 {{al, r8, r1, minus, 2326, PreIndex},
3276 "al r8 r1 minus 2326 PreIndex",
3277 "NegativePreIndex_al_r8_r1_minus_2326_PreIndex",
3278 ARRAY_SIZE(kNegativePreIndex),
3279 kNegativePreIndex},
3280 {{al, r2, r14, minus, 1651, PreIndex},
3281 "al r2 r14 minus 1651 PreIndex",
3282 "NegativePreIndex_al_r2_r14_minus_1651_PreIndex",
3283 ARRAY_SIZE(kNegativePreIndex),
3284 kNegativePreIndex},
3285 {{al, r3, r1, minus, 955, PreIndex},
3286 "al r3 r1 minus 955 PreIndex",
3287 "NegativePreIndex_al_r3_r1_minus_955_PreIndex",
3288 ARRAY_SIZE(kNegativePreIndex),
3289 kNegativePreIndex},
3290 {{al, r0, r9, minus, 3443, PreIndex},
3291 "al r0 r9 minus 3443 PreIndex",
3292 "NegativePreIndex_al_r0_r9_minus_3443_PreIndex",
3293 ARRAY_SIZE(kNegativePreIndex),
3294 kNegativePreIndex},
3295 {{al, r14, r10, minus, 1017, PreIndex},
3296 "al r14 r10 minus 1017 PreIndex",
3297 "NegativePreIndex_al_r14_r10_minus_1017_PreIndex",
3298 ARRAY_SIZE(kNegativePreIndex),
3299 kNegativePreIndex},
3300 {{al, r4, r3, minus, 2703, PreIndex},
3301 "al r4 r3 minus 2703 PreIndex",
3302 "NegativePreIndex_al_r4_r3_minus_2703_PreIndex",
3303 ARRAY_SIZE(kNegativePreIndex),
3304 kNegativePreIndex},
3305 {{al, r8, r10, minus, 831, PreIndex},
3306 "al r8 r10 minus 831 PreIndex",
3307 "NegativePreIndex_al_r8_r10_minus_831_PreIndex",
3308 ARRAY_SIZE(kNegativePreIndex),
3309 kNegativePreIndex},
3310 {{al, r5, r6, minus, 3194, PreIndex},
3311 "al r5 r6 minus 3194 PreIndex",
3312 "NegativePreIndex_al_r5_r6_minus_3194_PreIndex",
3313 ARRAY_SIZE(kNegativePreIndex),
3314 kNegativePreIndex},
3315 {{al, r2, r3, minus, 3607, PreIndex},
3316 "al r2 r3 minus 3607 PreIndex",
3317 "NegativePreIndex_al_r2_r3_minus_3607_PreIndex",
3318 ARRAY_SIZE(kNegativePreIndex),
3319 kNegativePreIndex},
3320 {{al, r14, r7, minus, 2119, PreIndex},
3321 "al r14 r7 minus 2119 PreIndex",
3322 "NegativePreIndex_al_r14_r7_minus_2119_PreIndex",
3323 ARRAY_SIZE(kNegativePreIndex),
3324 kNegativePreIndex},
3325 {{al, r4, r3, minus, 2559, PreIndex},
3326 "al r4 r3 minus 2559 PreIndex",
3327 "NegativePreIndex_al_r4_r3_minus_2559_PreIndex",
3328 ARRAY_SIZE(kNegativePreIndex),
3329 kNegativePreIndex}};
3330
3331 // We record all inputs to the instructions as outputs. This way, we also check
3332 // that what shouldn't change didn't change.
3333 struct TestResult {
3334 size_t output_size;
3335 const Inputs* outputs;
3336 };
3337
3338 // These headers each contain an array of `TestResult` with the reference output
3339 // values. The reference arrays are names `kReference{mnemonic}`.
3340 #include "aarch32/traces/simulator-cond-rd-memop-immediate-8192-a32-ldr.h"
3341 #include "aarch32/traces/simulator-cond-rd-memop-immediate-8192-a32-ldrb.h"
3342 #include "aarch32/traces/simulator-cond-rd-memop-immediate-8192-a32-str.h"
3343 #include "aarch32/traces/simulator-cond-rd-memop-immediate-8192-a32-strb.h"
3344
3345
3346 // The maximum number of errors to report in detail for each test.
3347 const unsigned kErrorReportLimit = 8;
3348
3349 typedef void (MacroAssembler::*Fn)(Condition cond,
3350 Register rd,
3351 const MemOperand& memop);
3352
TestHelper(Fn instruction,const char * mnemonic,const TestResult reference[])3353 void TestHelper(Fn instruction,
3354 const char* mnemonic,
3355 const TestResult reference[]) {
3356 SETUP();
3357 masm.UseA32();
3358 START();
3359
3360 // Data to compare to `reference`.
3361 TestResult* results[ARRAY_SIZE(kTests)];
3362
3363 // Test cases for memory bound instructions may allocate a buffer and save its
3364 // address in this array.
3365 byte* scratch_memory_buffers[ARRAY_SIZE(kTests)];
3366
3367 // Generate a loop for each element in `kTests`. Each loop tests one specific
3368 // instruction.
3369 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
3370 // Allocate results on the heap for this test.
3371 results[i] = new TestResult;
3372 results[i]->outputs = new Inputs[kTests[i].input_size];
3373 results[i]->output_size = kTests[i].input_size;
3374
3375 size_t input_stride = sizeof(kTests[i].inputs[0]) * kTests[i].input_size;
3376 VIXL_ASSERT(IsUint32(input_stride));
3377
3378 scratch_memory_buffers[i] = NULL;
3379
3380 Label loop;
3381 UseScratchRegisterScope scratch_registers(&masm);
3382 // Include all registers from r0 ro r12.
3383 scratch_registers.Include(RegisterList(0x1fff));
3384
3385 // Values to pass to the macro-assembler.
3386 Condition cond = kTests[i].operands.cond;
3387 Register rd = kTests[i].operands.rd;
3388 Register rn = kTests[i].operands.rn;
3389 Sign sign = kTests[i].operands.sign;
3390 int32_t offset = kTests[i].operands.offset;
3391 AddrMode addr_mode = kTests[i].operands.addr_mode;
3392 MemOperand memop(rn, sign, offset, addr_mode);
3393 scratch_registers.Exclude(rd);
3394 scratch_registers.Exclude(rn);
3395
3396 // Allocate reserved registers for our own use.
3397 Register input_ptr = scratch_registers.Acquire();
3398 Register input_end = scratch_registers.Acquire();
3399 Register result_ptr = scratch_registers.Acquire();
3400
3401 // Initialize `input_ptr` to the first element and `input_end` the address
3402 // after the array.
3403 __ Mov(input_ptr, Operand::From(kTests[i].inputs));
3404 __ Add(input_end, input_ptr, static_cast<uint32_t>(input_stride));
3405 __ Mov(result_ptr, Operand::From(results[i]->outputs));
3406 __ Bind(&loop);
3407
3408 {
3409 UseScratchRegisterScope temp_registers(&masm);
3410 Register nzcv_bits = temp_registers.Acquire();
3411 Register saved_q_bit = temp_registers.Acquire();
3412 // Save the `Q` bit flag.
3413 __ Mrs(saved_q_bit, APSR);
3414 __ And(saved_q_bit, saved_q_bit, QFlag);
3415 // Set the `NZCV` and `Q` flags together.
3416 __ Ldr(nzcv_bits, MemOperand(input_ptr, offsetof(Inputs, apsr)));
3417 __ Orr(nzcv_bits, nzcv_bits, saved_q_bit);
3418 __ Msr(APSR_nzcvq, nzcv_bits);
3419 }
3420 __ Ldr(rd, MemOperand(input_ptr, offsetof(Inputs, rd)));
3421 // Allocate 4 bytes for the instruction to work with.
3422 scratch_memory_buffers[i] = new byte[4];
3423 {
3424 UseScratchRegisterScope temp_registers(&masm);
3425
3426 Register memop_tmp = temp_registers.Acquire();
3427 Register base_register = memop.GetBaseRegister();
3428
3429 // Write the expected data into the scratch buffer.
3430 __ Mov(base_register, Operand::From(scratch_memory_buffers[i]));
3431 __ Ldr(memop_tmp, MemOperand(input_ptr, offsetof(Inputs, memop) + 4));
3432 __ Str(memop_tmp, MemOperand(base_register));
3433
3434 // Compute the address to put into the base register so that the
3435 // `MemOperand` points to the right location.
3436 // TODO: Support more kinds of `MemOperand`.
3437 if (!memop.IsPostIndex()) {
3438 if (memop.IsImmediate()) {
3439 if (memop.GetSign().IsPlus()) {
3440 __ Mov(memop_tmp, memop.GetOffsetImmediate());
3441 __ Sub(base_register, base_register, memop_tmp);
3442 } else {
3443 __ Mov(memop_tmp, -memop.GetOffsetImmediate());
3444 __ Add(base_register, base_register, memop_tmp);
3445 }
3446 } else if (memop.IsShiftedRegister()) {
3447 __ Mov(memop_tmp,
3448 Operand(memop.GetOffsetRegister(),
3449 memop.GetShift(),
3450 memop.GetShiftAmount()));
3451 if (memop.GetSign().IsPlus()) {
3452 __ Sub(base_register, base_register, memop_tmp);
3453 } else {
3454 __ Add(base_register, base_register, memop_tmp);
3455 }
3456 }
3457 }
3458 }
3459
3460
3461 (masm.*instruction)(cond, rd, memop);
3462
3463 {
3464 UseScratchRegisterScope temp_registers(&masm);
3465 Register nzcv_bits = temp_registers.Acquire();
3466 __ Mrs(nzcv_bits, APSR);
3467 // Only record the NZCV bits.
3468 __ And(nzcv_bits, nzcv_bits, NZCVFlag);
3469 __ Str(nzcv_bits, MemOperand(result_ptr, offsetof(Inputs, apsr)));
3470 }
3471 __ Str(rd, MemOperand(result_ptr, offsetof(Inputs, rd)));
3472 {
3473 UseScratchRegisterScope temp_registers(&masm);
3474 Register memop_tmp = temp_registers.Acquire();
3475 Register base_register = memop.GetBaseRegister();
3476
3477 // Compute the address of the scratch buffer by from the base register. If
3478 // the instruction has updated the base register, we will be able to
3479 // record it.
3480 if (!memop.IsPostIndex()) {
3481 if (memop.IsImmediate()) {
3482 if (memop.GetSign().IsPlus()) {
3483 __ Mov(memop_tmp, memop.GetOffsetImmediate());
3484 __ Add(base_register, base_register, memop_tmp);
3485 } else {
3486 __ Mov(memop_tmp, -memop.GetOffsetImmediate());
3487 __ Sub(base_register, base_register, memop_tmp);
3488 }
3489 } else if (memop.IsShiftedRegister()) {
3490 __ Mov(memop_tmp,
3491 Operand(memop.GetOffsetRegister(),
3492 memop.GetShift(),
3493 memop.GetShiftAmount()));
3494 if (memop.GetSign().IsPlus()) {
3495 __ Add(base_register, base_register, memop_tmp);
3496 } else {
3497 __ Sub(base_register, base_register, memop_tmp);
3498 }
3499 }
3500 }
3501
3502 // Record the value of the base register, as an offset from the scratch
3503 // buffer's address.
3504 __ Mov(memop_tmp, Operand::From(scratch_memory_buffers[i]));
3505 __ Sub(base_register, base_register, memop_tmp);
3506 __ Str(base_register, MemOperand(result_ptr, offsetof(Inputs, memop)));
3507
3508 // Record the 32 bit word from memory.
3509 __ Ldr(memop_tmp, MemOperand(memop_tmp));
3510 __ Str(memop_tmp, MemOperand(result_ptr, offsetof(Inputs, memop) + 4));
3511 }
3512
3513
3514 // Advance the result pointer.
3515 __ Add(result_ptr, result_ptr, Operand::From(sizeof(kTests[i].inputs[0])));
3516 // Loop back until `input_ptr` is lower than `input_base`.
3517 __ Add(input_ptr, input_ptr, Operand::From(sizeof(kTests[i].inputs[0])));
3518 __ Cmp(input_ptr, input_end);
3519 __ B(ne, &loop);
3520 }
3521
3522 END();
3523
3524 RUN();
3525
3526 if (Test::generate_test_trace()) {
3527 // Print the results.
3528 for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) {
3529 printf("const Inputs kOutputs_%s_%s[] = {\n",
3530 mnemonic,
3531 kTests[i].identifier);
3532 for (size_t j = 0; j < results[i]->output_size; j++) {
3533 printf(" { ");
3534 printf("0x%08" PRIx32, results[i]->outputs[j].apsr);
3535 printf(", ");
3536 printf("0x%08" PRIx32, results[i]->outputs[j].rd);
3537 printf(", ");
3538 printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}",
3539 results[i]->outputs[j].memop[0],
3540 results[i]->outputs[j].memop[1]);
3541 printf(" },\n");
3542 }
3543 printf("};\n");
3544 }
3545 printf("const TestResult kReference%s[] = {\n", mnemonic);
3546 for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) {
3547 printf(" {\n");
3548 printf(" ARRAY_SIZE(kOutputs_%s_%s),\n",
3549 mnemonic,
3550 kTests[i].identifier);
3551 printf(" kOutputs_%s_%s,\n", mnemonic, kTests[i].identifier);
3552 printf(" },\n");
3553 }
3554 printf("};\n");
3555 } else if (kCheckSimulatorTestResults) {
3556 // Check the results.
3557 unsigned total_error_count = 0;
3558 for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) {
3559 bool instruction_has_errors = false;
3560 for (size_t j = 0; j < kTests[i].input_size; j++) {
3561 uint32_t apsr = results[i]->outputs[j].apsr;
3562 uint32_t rd = results[i]->outputs[j].rd;
3563 uint32_t memop[2] = {results[i]->outputs[j].memop[0],
3564 results[i]->outputs[j].memop[1]};
3565
3566 uint32_t apsr_input = kTests[i].inputs[j].apsr;
3567 uint32_t rd_input = kTests[i].inputs[j].rd;
3568 uint32_t memop_input[2] = {kTests[i].inputs[j].memop[0],
3569 kTests[i].inputs[j].memop[1]};
3570
3571 uint32_t apsr_ref = reference[i].outputs[j].apsr;
3572 uint32_t rd_ref = reference[i].outputs[j].rd;
3573 uint32_t memop_ref[2] = {results[i]->outputs[j].memop[0],
3574 results[i]->outputs[j].memop[1]};
3575
3576
3577 if (((apsr != apsr_ref) || (rd != rd_ref) ||
3578 ((memop[0] != memop_ref[0]) && (memop[1] != memop_ref[1]))) &&
3579 (++total_error_count <= kErrorReportLimit)) {
3580 // Print the instruction once even if it triggered multiple failures.
3581 if (!instruction_has_errors) {
3582 printf("Error(s) when testing \"%s %s\":\n",
3583 mnemonic,
3584 kTests[i].operands_description);
3585 instruction_has_errors = true;
3586 }
3587 // Print subsequent errors.
3588 printf(" Input: ");
3589 printf("0x%08" PRIx32, apsr_input);
3590 printf(", ");
3591 printf("0x%08" PRIx32, rd_input);
3592 printf(", ");
3593 printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}",
3594 memop_input[0],
3595 memop_input[1]);
3596 printf("\n");
3597 printf(" Expected: ");
3598 printf("0x%08" PRIx32, apsr_ref);
3599 printf(", ");
3600 printf("0x%08" PRIx32, rd_ref);
3601 printf(", ");
3602 printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}",
3603 memop_ref[0],
3604 memop_ref[1]);
3605 printf("\n");
3606 printf(" Found: ");
3607 printf("0x%08" PRIx32, apsr);
3608 printf(", ");
3609 printf("0x%08" PRIx32, rd);
3610 printf(", ");
3611 printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}", memop[0], memop[1]);
3612 printf("\n\n");
3613 }
3614 }
3615 }
3616
3617 if (total_error_count > kErrorReportLimit) {
3618 printf("%u other errors follow.\n",
3619 total_error_count - kErrorReportLimit);
3620 }
3621 VIXL_CHECK(total_error_count == 0);
3622 } else {
3623 VIXL_WARNING("Assembled the code, but did not run anything.\n");
3624 }
3625
3626 for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) {
3627 delete[] results[i]->outputs;
3628 delete results[i];
3629 delete[] scratch_memory_buffers[i];
3630 }
3631
3632 TEARDOWN();
3633 }
3634
3635 // Instantiate tests for each instruction in the list.
3636 // TODO: Remove this limitation by having a sandboxing mechanism.
3637 #if defined(VIXL_HOST_POINTER_32)
3638 #define TEST(mnemonic) \
3639 void Test_##mnemonic() { \
3640 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \
3641 } \
3642 Test test_##mnemonic( \
3643 "AARCH32_SIMULATOR_COND_RD_MEMOP_IMMEDIATE_8192_A32_" #mnemonic, \
3644 &Test_##mnemonic);
3645 #else
3646 #define TEST(mnemonic) \
3647 void Test_##mnemonic() { \
3648 VIXL_WARNING("This test can only run on a 32-bit host.\n"); \
3649 USE(TestHelper); \
3650 } \
3651 Test test_##mnemonic( \
3652 "AARCH32_SIMULATOR_COND_RD_MEMOP_IMMEDIATE_8192_A32_" #mnemonic, \
3653 &Test_##mnemonic);
3654 #endif
3655
3656 FOREACH_INSTRUCTION(TEST)
3657 #undef TEST
3658
3659 } // namespace
3660 #endif
3661
3662 } // namespace aarch32
3663 } // namespace vixl
3664