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(Ldrh) \
119 M(Ldrsh) \
120 M(Ldrsb) \
121 M(Strh)
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, 126, Offset},
331 "al r0 r6 plus 126 Offset",
332 "PositiveOffset_al_r0_r6_plus_126_Offset",
333 ARRAY_SIZE(kPositiveOffset),
334 kPositiveOffset},
335 {{al, r2, r4, plus, 106, Offset},
336 "al r2 r4 plus 106 Offset",
337 "PositiveOffset_al_r2_r4_plus_106_Offset",
338 ARRAY_SIZE(kPositiveOffset),
339 kPositiveOffset},
340 {{al, r2, r1, plus, 108, Offset},
341 "al r2 r1 plus 108 Offset",
342 "PositiveOffset_al_r2_r1_plus_108_Offset",
343 ARRAY_SIZE(kPositiveOffset),
344 kPositiveOffset},
345 {{al, r6, r8, plus, 186, Offset},
346 "al r6 r8 plus 186 Offset",
347 "PositiveOffset_al_r6_r8_plus_186_Offset",
348 ARRAY_SIZE(kPositiveOffset),
349 kPositiveOffset},
350 {{al, r1, r11, plus, 233, Offset},
351 "al r1 r11 plus 233 Offset",
352 "PositiveOffset_al_r1_r11_plus_233_Offset",
353 ARRAY_SIZE(kPositiveOffset),
354 kPositiveOffset},
355 {{al, r9, r2, plus, 89, Offset},
356 "al r9 r2 plus 89 Offset",
357 "PositiveOffset_al_r9_r2_plus_89_Offset",
358 ARRAY_SIZE(kPositiveOffset),
359 kPositiveOffset},
360 {{al, r11, r1, plus, 103, Offset},
361 "al r11 r1 plus 103 Offset",
362 "PositiveOffset_al_r11_r1_plus_103_Offset",
363 ARRAY_SIZE(kPositiveOffset),
364 kPositiveOffset},
365 {{al, r7, r8, plus, 42, Offset},
366 "al r7 r8 plus 42 Offset",
367 "PositiveOffset_al_r7_r8_plus_42_Offset",
368 ARRAY_SIZE(kPositiveOffset),
369 kPositiveOffset},
370 {{al, r10, r6, plus, 158, Offset},
371 "al r10 r6 plus 158 Offset",
372 "PositiveOffset_al_r10_r6_plus_158_Offset",
373 ARRAY_SIZE(kPositiveOffset),
374 kPositiveOffset},
375 {{al, r10, r11, plus, 164, Offset},
376 "al r10 r11 plus 164 Offset",
377 "PositiveOffset_al_r10_r11_plus_164_Offset",
378 ARRAY_SIZE(kPositiveOffset),
379 kPositiveOffset},
380 {{al, r8, r14, plus, 211, Offset},
381 "al r8 r14 plus 211 Offset",
382 "PositiveOffset_al_r8_r14_plus_211_Offset",
383 ARRAY_SIZE(kPositiveOffset),
384 kPositiveOffset},
385 {{al, r2, r7, plus, 46, Offset},
386 "al r2 r7 plus 46 Offset",
387 "PositiveOffset_al_r2_r7_plus_46_Offset",
388 ARRAY_SIZE(kPositiveOffset),
389 kPositiveOffset},
390 {{al, r1, r4, plus, 196, Offset},
391 "al r1 r4 plus 196 Offset",
392 "PositiveOffset_al_r1_r4_plus_196_Offset",
393 ARRAY_SIZE(kPositiveOffset),
394 kPositiveOffset},
395 {{al, r5, r9, plus, 232, Offset},
396 "al r5 r9 plus 232 Offset",
397 "PositiveOffset_al_r5_r9_plus_232_Offset",
398 ARRAY_SIZE(kPositiveOffset),
399 kPositiveOffset},
400 {{al, r8, r4, plus, 204, Offset},
401 "al r8 r4 plus 204 Offset",
402 "PositiveOffset_al_r8_r4_plus_204_Offset",
403 ARRAY_SIZE(kPositiveOffset),
404 kPositiveOffset},
405 {{al, r4, r2, plus, 210, Offset},
406 "al r4 r2 plus 210 Offset",
407 "PositiveOffset_al_r4_r2_plus_210_Offset",
408 ARRAY_SIZE(kPositiveOffset),
409 kPositiveOffset},
410 {{al, r14, r1, plus, 136, Offset},
411 "al r14 r1 plus 136 Offset",
412 "PositiveOffset_al_r14_r1_plus_136_Offset",
413 ARRAY_SIZE(kPositiveOffset),
414 kPositiveOffset},
415 {{al, r11, r10, plus, 32, Offset},
416 "al r11 r10 plus 32 Offset",
417 "PositiveOffset_al_r11_r10_plus_32_Offset",
418 ARRAY_SIZE(kPositiveOffset),
419 kPositiveOffset},
420 {{al, r10, r11, plus, 23, Offset},
421 "al r10 r11 plus 23 Offset",
422 "PositiveOffset_al_r10_r11_plus_23_Offset",
423 ARRAY_SIZE(kPositiveOffset),
424 kPositiveOffset},
425 {{al, r3, r0, plus, 199, Offset},
426 "al r3 r0 plus 199 Offset",
427 "PositiveOffset_al_r3_r0_plus_199_Offset",
428 ARRAY_SIZE(kPositiveOffset),
429 kPositiveOffset},
430 {{al, r0, r6, plus, 46, Offset},
431 "al r0 r6 plus 46 Offset",
432 "PositiveOffset_al_r0_r6_plus_46_Offset",
433 ARRAY_SIZE(kPositiveOffset),
434 kPositiveOffset},
435 {{al, r5, r3, plus, 31, Offset},
436 "al r5 r3 plus 31 Offset",
437 "PositiveOffset_al_r5_r3_plus_31_Offset",
438 ARRAY_SIZE(kPositiveOffset),
439 kPositiveOffset},
440 {{al, r9, r8, plus, 143, Offset},
441 "al r9 r8 plus 143 Offset",
442 "PositiveOffset_al_r9_r8_plus_143_Offset",
443 ARRAY_SIZE(kPositiveOffset),
444 kPositiveOffset},
445 {{al, r11, r9, plus, 224, Offset},
446 "al r11 r9 plus 224 Offset",
447 "PositiveOffset_al_r11_r9_plus_224_Offset",
448 ARRAY_SIZE(kPositiveOffset),
449 kPositiveOffset},
450 {{al, r5, r14, plus, 48, Offset},
451 "al r5 r14 plus 48 Offset",
452 "PositiveOffset_al_r5_r14_plus_48_Offset",
453 ARRAY_SIZE(kPositiveOffset),
454 kPositiveOffset},
455 {{al, r14, r3, plus, 252, Offset},
456 "al r14 r3 plus 252 Offset",
457 "PositiveOffset_al_r14_r3_plus_252_Offset",
458 ARRAY_SIZE(kPositiveOffset),
459 kPositiveOffset},
460 {{al, r0, r11, plus, 159, Offset},
461 "al r0 r11 plus 159 Offset",
462 "PositiveOffset_al_r0_r11_plus_159_Offset",
463 ARRAY_SIZE(kPositiveOffset),
464 kPositiveOffset},
465 {{al, r12, r4, plus, 181, Offset},
466 "al r12 r4 plus 181 Offset",
467 "PositiveOffset_al_r12_r4_plus_181_Offset",
468 ARRAY_SIZE(kPositiveOffset),
469 kPositiveOffset},
470 {{al, r9, r1, plus, 28, Offset},
471 "al r9 r1 plus 28 Offset",
472 "PositiveOffset_al_r9_r1_plus_28_Offset",
473 ARRAY_SIZE(kPositiveOffset),
474 kPositiveOffset},
475 {{al, r1, r5, plus, 245, Offset},
476 "al r1 r5 plus 245 Offset",
477 "PositiveOffset_al_r1_r5_plus_245_Offset",
478 ARRAY_SIZE(kPositiveOffset),
479 kPositiveOffset},
480 {{al, r3, r5, plus, 186, Offset},
481 "al r3 r5 plus 186 Offset",
482 "PositiveOffset_al_r3_r5_plus_186_Offset",
483 ARRAY_SIZE(kPositiveOffset),
484 kPositiveOffset},
485 {{al, r1, r0, plus, 238, Offset},
486 "al r1 r0 plus 238 Offset",
487 "PositiveOffset_al_r1_r0_plus_238_Offset",
488 ARRAY_SIZE(kPositiveOffset),
489 kPositiveOffset},
490 {{al, r4, r8, plus, 228, Offset},
491 "al r4 r8 plus 228 Offset",
492 "PositiveOffset_al_r4_r8_plus_228_Offset",
493 ARRAY_SIZE(kPositiveOffset),
494 kPositiveOffset},
495 {{al, r5, r9, plus, 17, Offset},
496 "al r5 r9 plus 17 Offset",
497 "PositiveOffset_al_r5_r9_plus_17_Offset",
498 ARRAY_SIZE(kPositiveOffset),
499 kPositiveOffset},
500 {{al, r5, r7, plus, 190, Offset},
501 "al r5 r7 plus 190 Offset",
502 "PositiveOffset_al_r5_r7_plus_190_Offset",
503 ARRAY_SIZE(kPositiveOffset),
504 kPositiveOffset},
505 {{al, r14, r4, plus, 6, Offset},
506 "al r14 r4 plus 6 Offset",
507 "PositiveOffset_al_r14_r4_plus_6_Offset",
508 ARRAY_SIZE(kPositiveOffset),
509 kPositiveOffset},
510 {{al, r0, r3, plus, 24, Offset},
511 "al r0 r3 plus 24 Offset",
512 "PositiveOffset_al_r0_r3_plus_24_Offset",
513 ARRAY_SIZE(kPositiveOffset),
514 kPositiveOffset},
515 {{al, r12, r14, plus, 247, Offset},
516 "al r12 r14 plus 247 Offset",
517 "PositiveOffset_al_r12_r14_plus_247_Offset",
518 ARRAY_SIZE(kPositiveOffset),
519 kPositiveOffset},
520 {{al, r12, r3, plus, 242, Offset},
521 "al r12 r3 plus 242 Offset",
522 "PositiveOffset_al_r12_r3_plus_242_Offset",
523 ARRAY_SIZE(kPositiveOffset),
524 kPositiveOffset},
525 {{al, r7, r8, plus, 211, Offset},
526 "al r7 r8 plus 211 Offset",
527 "PositiveOffset_al_r7_r8_plus_211_Offset",
528 ARRAY_SIZE(kPositiveOffset),
529 kPositiveOffset},
530 {{al, r12, r14, plus, 203, Offset},
531 "al r12 r14 plus 203 Offset",
532 "PositiveOffset_al_r12_r14_plus_203_Offset",
533 ARRAY_SIZE(kPositiveOffset),
534 kPositiveOffset},
535 {{al, r9, r12, plus, 119, Offset},
536 "al r9 r12 plus 119 Offset",
537 "PositiveOffset_al_r9_r12_plus_119_Offset",
538 ARRAY_SIZE(kPositiveOffset),
539 kPositiveOffset},
540 {{al, r1, r7, plus, 132, Offset},
541 "al r1 r7 plus 132 Offset",
542 "PositiveOffset_al_r1_r7_plus_132_Offset",
543 ARRAY_SIZE(kPositiveOffset),
544 kPositiveOffset},
545 {{al, r3, r4, plus, 96, Offset},
546 "al r3 r4 plus 96 Offset",
547 "PositiveOffset_al_r3_r4_plus_96_Offset",
548 ARRAY_SIZE(kPositiveOffset),
549 kPositiveOffset},
550 {{al, r0, r8, plus, 230, Offset},
551 "al r0 r8 plus 230 Offset",
552 "PositiveOffset_al_r0_r8_plus_230_Offset",
553 ARRAY_SIZE(kPositiveOffset),
554 kPositiveOffset},
555 {{al, r0, r5, plus, 10, Offset},
556 "al r0 r5 plus 10 Offset",
557 "PositiveOffset_al_r0_r5_plus_10_Offset",
558 ARRAY_SIZE(kPositiveOffset),
559 kPositiveOffset},
560 {{al, r14, r5, plus, 185, Offset},
561 "al r14 r5 plus 185 Offset",
562 "PositiveOffset_al_r14_r5_plus_185_Offset",
563 ARRAY_SIZE(kPositiveOffset),
564 kPositiveOffset},
565 {{al, r6, r3, plus, 180, Offset},
566 "al r6 r3 plus 180 Offset",
567 "PositiveOffset_al_r6_r3_plus_180_Offset",
568 ARRAY_SIZE(kPositiveOffset),
569 kPositiveOffset},
570 {{al, r10, r11, plus, 5, Offset},
571 "al r10 r11 plus 5 Offset",
572 "PositiveOffset_al_r10_r11_plus_5_Offset",
573 ARRAY_SIZE(kPositiveOffset),
574 kPositiveOffset},
575 {{al, r4, r11, plus, 78, Offset},
576 "al r4 r11 plus 78 Offset",
577 "PositiveOffset_al_r4_r11_plus_78_Offset",
578 ARRAY_SIZE(kPositiveOffset),
579 kPositiveOffset},
580 {{al, r11, r6, plus, 101, Offset},
581 "al r11 r6 plus 101 Offset",
582 "PositiveOffset_al_r11_r6_plus_101_Offset",
583 ARRAY_SIZE(kPositiveOffset),
584 kPositiveOffset},
585 {{al, r3, r6, plus, 203, Offset},
586 "al r3 r6 plus 203 Offset",
587 "PositiveOffset_al_r3_r6_plus_203_Offset",
588 ARRAY_SIZE(kPositiveOffset),
589 kPositiveOffset},
590 {{al, r4, r2, plus, 93, Offset},
591 "al r4 r2 plus 93 Offset",
592 "PositiveOffset_al_r4_r2_plus_93_Offset",
593 ARRAY_SIZE(kPositiveOffset),
594 kPositiveOffset},
595 {{al, r8, r2, plus, 213, Offset},
596 "al r8 r2 plus 213 Offset",
597 "PositiveOffset_al_r8_r2_plus_213_Offset",
598 ARRAY_SIZE(kPositiveOffset),
599 kPositiveOffset},
600 {{al, r4, r14, plus, 92, Offset},
601 "al r4 r14 plus 92 Offset",
602 "PositiveOffset_al_r4_r14_plus_92_Offset",
603 ARRAY_SIZE(kPositiveOffset),
604 kPositiveOffset},
605 {{al, r11, r12, plus, 250, Offset},
606 "al r11 r12 plus 250 Offset",
607 "PositiveOffset_al_r11_r12_plus_250_Offset",
608 ARRAY_SIZE(kPositiveOffset),
609 kPositiveOffset},
610 {{al, r8, r14, plus, 181, Offset},
611 "al r8 r14 plus 181 Offset",
612 "PositiveOffset_al_r8_r14_plus_181_Offset",
613 ARRAY_SIZE(kPositiveOffset),
614 kPositiveOffset},
615 {{al, r11, r2, plus, 30, Offset},
616 "al r11 r2 plus 30 Offset",
617 "PositiveOffset_al_r11_r2_plus_30_Offset",
618 ARRAY_SIZE(kPositiveOffset),
619 kPositiveOffset},
620 {{al, r7, r11, plus, 102, Offset},
621 "al r7 r11 plus 102 Offset",
622 "PositiveOffset_al_r7_r11_plus_102_Offset",
623 ARRAY_SIZE(kPositiveOffset),
624 kPositiveOffset},
625 {{al, r6, r8, plus, 135, Offset},
626 "al r6 r8 plus 135 Offset",
627 "PositiveOffset_al_r6_r8_plus_135_Offset",
628 ARRAY_SIZE(kPositiveOffset),
629 kPositiveOffset},
630 {{al, r10, r6, plus, 19, Offset},
631 "al r10 r6 plus 19 Offset",
632 "PositiveOffset_al_r10_r6_plus_19_Offset",
633 ARRAY_SIZE(kPositiveOffset),
634 kPositiveOffset},
635 {{al, r6, r12, plus, 130, Offset},
636 "al r6 r12 plus 130 Offset",
637 "PositiveOffset_al_r6_r12_plus_130_Offset",
638 ARRAY_SIZE(kPositiveOffset),
639 kPositiveOffset},
640 {{al, r9, r2, plus, 187, Offset},
641 "al r9 r2 plus 187 Offset",
642 "PositiveOffset_al_r9_r2_plus_187_Offset",
643 ARRAY_SIZE(kPositiveOffset),
644 kPositiveOffset},
645 {{al, r12, r5, plus, 134, Offset},
646 "al r12 r5 plus 134 Offset",
647 "PositiveOffset_al_r12_r5_plus_134_Offset",
648 ARRAY_SIZE(kPositiveOffset),
649 kPositiveOffset},
650 {{al, r5, r4, plus, 101, Offset},
651 "al r5 r4 plus 101 Offset",
652 "PositiveOffset_al_r5_r4_plus_101_Offset",
653 ARRAY_SIZE(kPositiveOffset),
654 kPositiveOffset},
655 {{al, r14, r9, plus, 124, Offset},
656 "al r14 r9 plus 124 Offset",
657 "PositiveOffset_al_r14_r9_plus_124_Offset",
658 ARRAY_SIZE(kPositiveOffset),
659 kPositiveOffset},
660 {{al, r9, r14, plus, 119, Offset},
661 "al r9 r14 plus 119 Offset",
662 "PositiveOffset_al_r9_r14_plus_119_Offset",
663 ARRAY_SIZE(kPositiveOffset),
664 kPositiveOffset},
665 {{al, r8, r1, plus, 9, Offset},
666 "al r8 r1 plus 9 Offset",
667 "PositiveOffset_al_r8_r1_plus_9_Offset",
668 ARRAY_SIZE(kPositiveOffset),
669 kPositiveOffset},
670 {{al, r6, r14, plus, 6, Offset},
671 "al r6 r14 plus 6 Offset",
672 "PositiveOffset_al_r6_r14_plus_6_Offset",
673 ARRAY_SIZE(kPositiveOffset),
674 kPositiveOffset},
675 {{al, r6, r14, plus, 162, Offset},
676 "al r6 r14 plus 162 Offset",
677 "PositiveOffset_al_r6_r14_plus_162_Offset",
678 ARRAY_SIZE(kPositiveOffset),
679 kPositiveOffset},
680 {{al, r3, r8, plus, 36, Offset},
681 "al r3 r8 plus 36 Offset",
682 "PositiveOffset_al_r3_r8_plus_36_Offset",
683 ARRAY_SIZE(kPositiveOffset),
684 kPositiveOffset},
685 {{al, r3, r1, plus, 32, Offset},
686 "al r3 r1 plus 32 Offset",
687 "PositiveOffset_al_r3_r1_plus_32_Offset",
688 ARRAY_SIZE(kPositiveOffset),
689 kPositiveOffset},
690 {{al, r9, r0, plus, 90, Offset},
691 "al r9 r0 plus 90 Offset",
692 "PositiveOffset_al_r9_r0_plus_90_Offset",
693 ARRAY_SIZE(kPositiveOffset),
694 kPositiveOffset},
695 {{al, r11, r10, plus, 131, Offset},
696 "al r11 r10 plus 131 Offset",
697 "PositiveOffset_al_r11_r10_plus_131_Offset",
698 ARRAY_SIZE(kPositiveOffset),
699 kPositiveOffset},
700 {{al, r7, r12, plus, 34, Offset},
701 "al r7 r12 plus 34 Offset",
702 "PositiveOffset_al_r7_r12_plus_34_Offset",
703 ARRAY_SIZE(kPositiveOffset),
704 kPositiveOffset},
705 {{al, r0, r9, plus, 145, Offset},
706 "al r0 r9 plus 145 Offset",
707 "PositiveOffset_al_r0_r9_plus_145_Offset",
708 ARRAY_SIZE(kPositiveOffset),
709 kPositiveOffset},
710 {{al, r3, r2, plus, 101, Offset},
711 "al r3 r2 plus 101 Offset",
712 "PositiveOffset_al_r3_r2_plus_101_Offset",
713 ARRAY_SIZE(kPositiveOffset),
714 kPositiveOffset},
715 {{al, r12, r6, plus, 236, Offset},
716 "al r12 r6 plus 236 Offset",
717 "PositiveOffset_al_r12_r6_plus_236_Offset",
718 ARRAY_SIZE(kPositiveOffset),
719 kPositiveOffset},
720 {{al, r8, r2, plus, 111, Offset},
721 "al r8 r2 plus 111 Offset",
722 "PositiveOffset_al_r8_r2_plus_111_Offset",
723 ARRAY_SIZE(kPositiveOffset),
724 kPositiveOffset},
725 {{al, r12, r6, plus, 80, Offset},
726 "al r12 r6 plus 80 Offset",
727 "PositiveOffset_al_r12_r6_plus_80_Offset",
728 ARRAY_SIZE(kPositiveOffset),
729 kPositiveOffset},
730 {{al, r6, r0, plus, 17, Offset},
731 "al r6 r0 plus 17 Offset",
732 "PositiveOffset_al_r6_r0_plus_17_Offset",
733 ARRAY_SIZE(kPositiveOffset),
734 kPositiveOffset},
735 {{al, r0, r3, plus, 50, Offset},
736 "al r0 r3 plus 50 Offset",
737 "PositiveOffset_al_r0_r3_plus_50_Offset",
738 ARRAY_SIZE(kPositiveOffset),
739 kPositiveOffset},
740 {{al, r8, r7, plus, 238, Offset},
741 "al r8 r7 plus 238 Offset",
742 "PositiveOffset_al_r8_r7_plus_238_Offset",
743 ARRAY_SIZE(kPositiveOffset),
744 kPositiveOffset},
745 {{al, r5, r0, plus, 101, Offset},
746 "al r5 r0 plus 101 Offset",
747 "PositiveOffset_al_r5_r0_plus_101_Offset",
748 ARRAY_SIZE(kPositiveOffset),
749 kPositiveOffset},
750 {{al, r2, r9, plus, 38, Offset},
751 "al r2 r9 plus 38 Offset",
752 "PositiveOffset_al_r2_r9_plus_38_Offset",
753 ARRAY_SIZE(kPositiveOffset),
754 kPositiveOffset},
755 {{al, r8, r7, plus, 169, Offset},
756 "al r8 r7 plus 169 Offset",
757 "PositiveOffset_al_r8_r7_plus_169_Offset",
758 ARRAY_SIZE(kPositiveOffset),
759 kPositiveOffset},
760 {{al, r11, r8, plus, 241, Offset},
761 "al r11 r8 plus 241 Offset",
762 "PositiveOffset_al_r11_r8_plus_241_Offset",
763 ARRAY_SIZE(kPositiveOffset),
764 kPositiveOffset},
765 {{al, r6, r5, plus, 218, Offset},
766 "al r6 r5 plus 218 Offset",
767 "PositiveOffset_al_r6_r5_plus_218_Offset",
768 ARRAY_SIZE(kPositiveOffset),
769 kPositiveOffset},
770 {{al, r11, r5, plus, 126, Offset},
771 "al r11 r5 plus 126 Offset",
772 "PositiveOffset_al_r11_r5_plus_126_Offset",
773 ARRAY_SIZE(kPositiveOffset),
774 kPositiveOffset},
775 {{al, r5, r3, plus, 250, Offset},
776 "al r5 r3 plus 250 Offset",
777 "PositiveOffset_al_r5_r3_plus_250_Offset",
778 ARRAY_SIZE(kPositiveOffset),
779 kPositiveOffset},
780 {{al, r0, r12, plus, 46, Offset},
781 "al r0 r12 plus 46 Offset",
782 "PositiveOffset_al_r0_r12_plus_46_Offset",
783 ARRAY_SIZE(kPositiveOffset),
784 kPositiveOffset},
785 {{al, r6, r14, plus, 124, Offset},
786 "al r6 r14 plus 124 Offset",
787 "PositiveOffset_al_r6_r14_plus_124_Offset",
788 ARRAY_SIZE(kPositiveOffset),
789 kPositiveOffset},
790 {{al, r1, r3, plus, 237, Offset},
791 "al r1 r3 plus 237 Offset",
792 "PositiveOffset_al_r1_r3_plus_237_Offset",
793 ARRAY_SIZE(kPositiveOffset),
794 kPositiveOffset},
795 {{al, r9, r1, plus, 42, Offset},
796 "al r9 r1 plus 42 Offset",
797 "PositiveOffset_al_r9_r1_plus_42_Offset",
798 ARRAY_SIZE(kPositiveOffset),
799 kPositiveOffset},
800 {{al, r2, r9, plus, 17, Offset},
801 "al r2 r9 plus 17 Offset",
802 "PositiveOffset_al_r2_r9_plus_17_Offset",
803 ARRAY_SIZE(kPositiveOffset),
804 kPositiveOffset},
805 {{al, r7, r0, plus, 206, Offset},
806 "al r7 r0 plus 206 Offset",
807 "PositiveOffset_al_r7_r0_plus_206_Offset",
808 ARRAY_SIZE(kPositiveOffset),
809 kPositiveOffset},
810 {{al, r2, r14, plus, 248, Offset},
811 "al r2 r14 plus 248 Offset",
812 "PositiveOffset_al_r2_r14_plus_248_Offset",
813 ARRAY_SIZE(kPositiveOffset),
814 kPositiveOffset},
815 {{al, r4, r11, plus, 2, Offset},
816 "al r4 r11 plus 2 Offset",
817 "PositiveOffset_al_r4_r11_plus_2_Offset",
818 ARRAY_SIZE(kPositiveOffset),
819 kPositiveOffset},
820 {{al, r0, r5, plus, 213, Offset},
821 "al r0 r5 plus 213 Offset",
822 "PositiveOffset_al_r0_r5_plus_213_Offset",
823 ARRAY_SIZE(kPositiveOffset),
824 kPositiveOffset},
825 {{al, r0, r9, plus, 229, Offset},
826 "al r0 r9 plus 229 Offset",
827 "PositiveOffset_al_r0_r9_plus_229_Offset",
828 ARRAY_SIZE(kPositiveOffset),
829 kPositiveOffset},
830 {{al, r11, r6, minus, 4, Offset},
831 "al r11 r6 minus 4 Offset",
832 "NegativeOffset_al_r11_r6_minus_4_Offset",
833 ARRAY_SIZE(kNegativeOffset),
834 kNegativeOffset},
835 {{al, r4, r3, minus, 59, Offset},
836 "al r4 r3 minus 59 Offset",
837 "NegativeOffset_al_r4_r3_minus_59_Offset",
838 ARRAY_SIZE(kNegativeOffset),
839 kNegativeOffset},
840 {{al, r5, r2, minus, 23, Offset},
841 "al r5 r2 minus 23 Offset",
842 "NegativeOffset_al_r5_r2_minus_23_Offset",
843 ARRAY_SIZE(kNegativeOffset),
844 kNegativeOffset},
845 {{al, r11, r6, minus, 97, Offset},
846 "al r11 r6 minus 97 Offset",
847 "NegativeOffset_al_r11_r6_minus_97_Offset",
848 ARRAY_SIZE(kNegativeOffset),
849 kNegativeOffset},
850 {{al, r4, r6, minus, 239, Offset},
851 "al r4 r6 minus 239 Offset",
852 "NegativeOffset_al_r4_r6_minus_239_Offset",
853 ARRAY_SIZE(kNegativeOffset),
854 kNegativeOffset},
855 {{al, r2, r12, minus, 36, Offset},
856 "al r2 r12 minus 36 Offset",
857 "NegativeOffset_al_r2_r12_minus_36_Offset",
858 ARRAY_SIZE(kNegativeOffset),
859 kNegativeOffset},
860 {{al, r12, r11, minus, 6, Offset},
861 "al r12 r11 minus 6 Offset",
862 "NegativeOffset_al_r12_r11_minus_6_Offset",
863 ARRAY_SIZE(kNegativeOffset),
864 kNegativeOffset},
865 {{al, r10, r9, minus, 11, Offset},
866 "al r10 r9 minus 11 Offset",
867 "NegativeOffset_al_r10_r9_minus_11_Offset",
868 ARRAY_SIZE(kNegativeOffset),
869 kNegativeOffset},
870 {{al, r7, r1, minus, 0, Offset},
871 "al r7 r1 minus 0 Offset",
872 "NegativeOffset_al_r7_r1_minus_0_Offset",
873 ARRAY_SIZE(kNegativeOffset),
874 kNegativeOffset},
875 {{al, r10, r9, minus, 148, Offset},
876 "al r10 r9 minus 148 Offset",
877 "NegativeOffset_al_r10_r9_minus_148_Offset",
878 ARRAY_SIZE(kNegativeOffset),
879 kNegativeOffset},
880 {{al, r11, r2, minus, 249, Offset},
881 "al r11 r2 minus 249 Offset",
882 "NegativeOffset_al_r11_r2_minus_249_Offset",
883 ARRAY_SIZE(kNegativeOffset),
884 kNegativeOffset},
885 {{al, r9, r8, minus, 99, Offset},
886 "al r9 r8 minus 99 Offset",
887 "NegativeOffset_al_r9_r8_minus_99_Offset",
888 ARRAY_SIZE(kNegativeOffset),
889 kNegativeOffset},
890 {{al, r9, r4, minus, 43, Offset},
891 "al r9 r4 minus 43 Offset",
892 "NegativeOffset_al_r9_r4_minus_43_Offset",
893 ARRAY_SIZE(kNegativeOffset),
894 kNegativeOffset},
895 {{al, r14, r9, minus, 43, Offset},
896 "al r14 r9 minus 43 Offset",
897 "NegativeOffset_al_r14_r9_minus_43_Offset",
898 ARRAY_SIZE(kNegativeOffset),
899 kNegativeOffset},
900 {{al, r8, r7, minus, 52, Offset},
901 "al r8 r7 minus 52 Offset",
902 "NegativeOffset_al_r8_r7_minus_52_Offset",
903 ARRAY_SIZE(kNegativeOffset),
904 kNegativeOffset},
905 {{al, r9, r3, minus, 171, Offset},
906 "al r9 r3 minus 171 Offset",
907 "NegativeOffset_al_r9_r3_minus_171_Offset",
908 ARRAY_SIZE(kNegativeOffset),
909 kNegativeOffset},
910 {{al, r5, r1, minus, 119, Offset},
911 "al r5 r1 minus 119 Offset",
912 "NegativeOffset_al_r5_r1_minus_119_Offset",
913 ARRAY_SIZE(kNegativeOffset),
914 kNegativeOffset},
915 {{al, r14, r12, minus, 144, Offset},
916 "al r14 r12 minus 144 Offset",
917 "NegativeOffset_al_r14_r12_minus_144_Offset",
918 ARRAY_SIZE(kNegativeOffset),
919 kNegativeOffset},
920 {{al, r0, r5, minus, 111, Offset},
921 "al r0 r5 minus 111 Offset",
922 "NegativeOffset_al_r0_r5_minus_111_Offset",
923 ARRAY_SIZE(kNegativeOffset),
924 kNegativeOffset},
925 {{al, r2, r1, minus, 85, Offset},
926 "al r2 r1 minus 85 Offset",
927 "NegativeOffset_al_r2_r1_minus_85_Offset",
928 ARRAY_SIZE(kNegativeOffset),
929 kNegativeOffset},
930 {{al, r7, r3, minus, 68, Offset},
931 "al r7 r3 minus 68 Offset",
932 "NegativeOffset_al_r7_r3_minus_68_Offset",
933 ARRAY_SIZE(kNegativeOffset),
934 kNegativeOffset},
935 {{al, r11, r3, minus, 4, Offset},
936 "al r11 r3 minus 4 Offset",
937 "NegativeOffset_al_r11_r3_minus_4_Offset",
938 ARRAY_SIZE(kNegativeOffset),
939 kNegativeOffset},
940 {{al, r3, r5, minus, 178, Offset},
941 "al r3 r5 minus 178 Offset",
942 "NegativeOffset_al_r3_r5_minus_178_Offset",
943 ARRAY_SIZE(kNegativeOffset),
944 kNegativeOffset},
945 {{al, r7, r5, minus, 40, Offset},
946 "al r7 r5 minus 40 Offset",
947 "NegativeOffset_al_r7_r5_minus_40_Offset",
948 ARRAY_SIZE(kNegativeOffset),
949 kNegativeOffset},
950 {{al, r5, r7, minus, 117, Offset},
951 "al r5 r7 minus 117 Offset",
952 "NegativeOffset_al_r5_r7_minus_117_Offset",
953 ARRAY_SIZE(kNegativeOffset),
954 kNegativeOffset},
955 {{al, r14, r10, minus, 118, Offset},
956 "al r14 r10 minus 118 Offset",
957 "NegativeOffset_al_r14_r10_minus_118_Offset",
958 ARRAY_SIZE(kNegativeOffset),
959 kNegativeOffset},
960 {{al, r3, r10, minus, 118, Offset},
961 "al r3 r10 minus 118 Offset",
962 "NegativeOffset_al_r3_r10_minus_118_Offset",
963 ARRAY_SIZE(kNegativeOffset),
964 kNegativeOffset},
965 {{al, r14, r9, minus, 34, Offset},
966 "al r14 r9 minus 34 Offset",
967 "NegativeOffset_al_r14_r9_minus_34_Offset",
968 ARRAY_SIZE(kNegativeOffset),
969 kNegativeOffset},
970 {{al, r5, r8, minus, 135, Offset},
971 "al r5 r8 minus 135 Offset",
972 "NegativeOffset_al_r5_r8_minus_135_Offset",
973 ARRAY_SIZE(kNegativeOffset),
974 kNegativeOffset},
975 {{al, r3, r1, minus, 121, Offset},
976 "al r3 r1 minus 121 Offset",
977 "NegativeOffset_al_r3_r1_minus_121_Offset",
978 ARRAY_SIZE(kNegativeOffset),
979 kNegativeOffset},
980 {{al, r2, r1, minus, 150, Offset},
981 "al r2 r1 minus 150 Offset",
982 "NegativeOffset_al_r2_r1_minus_150_Offset",
983 ARRAY_SIZE(kNegativeOffset),
984 kNegativeOffset},
985 {{al, r0, r2, minus, 10, Offset},
986 "al r0 r2 minus 10 Offset",
987 "NegativeOffset_al_r0_r2_minus_10_Offset",
988 ARRAY_SIZE(kNegativeOffset),
989 kNegativeOffset},
990 {{al, r5, r6, minus, 222, Offset},
991 "al r5 r6 minus 222 Offset",
992 "NegativeOffset_al_r5_r6_minus_222_Offset",
993 ARRAY_SIZE(kNegativeOffset),
994 kNegativeOffset},
995 {{al, r3, r9, minus, 150, Offset},
996 "al r3 r9 minus 150 Offset",
997 "NegativeOffset_al_r3_r9_minus_150_Offset",
998 ARRAY_SIZE(kNegativeOffset),
999 kNegativeOffset},
1000 {{al, r5, r0, minus, 154, Offset},
1001 "al r5 r0 minus 154 Offset",
1002 "NegativeOffset_al_r5_r0_minus_154_Offset",
1003 ARRAY_SIZE(kNegativeOffset),
1004 kNegativeOffset},
1005 {{al, r5, r0, minus, 11, Offset},
1006 "al r5 r0 minus 11 Offset",
1007 "NegativeOffset_al_r5_r0_minus_11_Offset",
1008 ARRAY_SIZE(kNegativeOffset),
1009 kNegativeOffset},
1010 {{al, r1, r11, minus, 149, Offset},
1011 "al r1 r11 minus 149 Offset",
1012 "NegativeOffset_al_r1_r11_minus_149_Offset",
1013 ARRAY_SIZE(kNegativeOffset),
1014 kNegativeOffset},
1015 {{al, r0, r9, minus, 146, Offset},
1016 "al r0 r9 minus 146 Offset",
1017 "NegativeOffset_al_r0_r9_minus_146_Offset",
1018 ARRAY_SIZE(kNegativeOffset),
1019 kNegativeOffset},
1020 {{al, r9, r8, minus, 129, Offset},
1021 "al r9 r8 minus 129 Offset",
1022 "NegativeOffset_al_r9_r8_minus_129_Offset",
1023 ARRAY_SIZE(kNegativeOffset),
1024 kNegativeOffset},
1025 {{al, r11, r0, minus, 88, Offset},
1026 "al r11 r0 minus 88 Offset",
1027 "NegativeOffset_al_r11_r0_minus_88_Offset",
1028 ARRAY_SIZE(kNegativeOffset),
1029 kNegativeOffset},
1030 {{al, r10, r12, minus, 5, Offset},
1031 "al r10 r12 minus 5 Offset",
1032 "NegativeOffset_al_r10_r12_minus_5_Offset",
1033 ARRAY_SIZE(kNegativeOffset),
1034 kNegativeOffset},
1035 {{al, r9, r5, minus, 90, Offset},
1036 "al r9 r5 minus 90 Offset",
1037 "NegativeOffset_al_r9_r5_minus_90_Offset",
1038 ARRAY_SIZE(kNegativeOffset),
1039 kNegativeOffset},
1040 {{al, r8, r6, minus, 28, Offset},
1041 "al r8 r6 minus 28 Offset",
1042 "NegativeOffset_al_r8_r6_minus_28_Offset",
1043 ARRAY_SIZE(kNegativeOffset),
1044 kNegativeOffset},
1045 {{al, r0, r7, minus, 66, Offset},
1046 "al r0 r7 minus 66 Offset",
1047 "NegativeOffset_al_r0_r7_minus_66_Offset",
1048 ARRAY_SIZE(kNegativeOffset),
1049 kNegativeOffset},
1050 {{al, r6, r14, minus, 2, Offset},
1051 "al r6 r14 minus 2 Offset",
1052 "NegativeOffset_al_r6_r14_minus_2_Offset",
1053 ARRAY_SIZE(kNegativeOffset),
1054 kNegativeOffset},
1055 {{al, r4, r2, minus, 240, Offset},
1056 "al r4 r2 minus 240 Offset",
1057 "NegativeOffset_al_r4_r2_minus_240_Offset",
1058 ARRAY_SIZE(kNegativeOffset),
1059 kNegativeOffset},
1060 {{al, r3, r9, minus, 66, Offset},
1061 "al r3 r9 minus 66 Offset",
1062 "NegativeOffset_al_r3_r9_minus_66_Offset",
1063 ARRAY_SIZE(kNegativeOffset),
1064 kNegativeOffset},
1065 {{al, r9, r10, minus, 52, Offset},
1066 "al r9 r10 minus 52 Offset",
1067 "NegativeOffset_al_r9_r10_minus_52_Offset",
1068 ARRAY_SIZE(kNegativeOffset),
1069 kNegativeOffset},
1070 {{al, r7, r6, minus, 38, Offset},
1071 "al r7 r6 minus 38 Offset",
1072 "NegativeOffset_al_r7_r6_minus_38_Offset",
1073 ARRAY_SIZE(kNegativeOffset),
1074 kNegativeOffset},
1075 {{al, r5, r12, minus, 7, Offset},
1076 "al r5 r12 minus 7 Offset",
1077 "NegativeOffset_al_r5_r12_minus_7_Offset",
1078 ARRAY_SIZE(kNegativeOffset),
1079 kNegativeOffset},
1080 {{al, r8, r5, minus, 6, Offset},
1081 "al r8 r5 minus 6 Offset",
1082 "NegativeOffset_al_r8_r5_minus_6_Offset",
1083 ARRAY_SIZE(kNegativeOffset),
1084 kNegativeOffset},
1085 {{al, r2, r10, minus, 251, Offset},
1086 "al r2 r10 minus 251 Offset",
1087 "NegativeOffset_al_r2_r10_minus_251_Offset",
1088 ARRAY_SIZE(kNegativeOffset),
1089 kNegativeOffset},
1090 {{al, r11, r8, minus, 11, Offset},
1091 "al r11 r8 minus 11 Offset",
1092 "NegativeOffset_al_r11_r8_minus_11_Offset",
1093 ARRAY_SIZE(kNegativeOffset),
1094 kNegativeOffset},
1095 {{al, r4, r11, minus, 97, Offset},
1096 "al r4 r11 minus 97 Offset",
1097 "NegativeOffset_al_r4_r11_minus_97_Offset",
1098 ARRAY_SIZE(kNegativeOffset),
1099 kNegativeOffset},
1100 {{al, r14, r2, minus, 21, Offset},
1101 "al r14 r2 minus 21 Offset",
1102 "NegativeOffset_al_r14_r2_minus_21_Offset",
1103 ARRAY_SIZE(kNegativeOffset),
1104 kNegativeOffset},
1105 {{al, r12, r1, minus, 127, Offset},
1106 "al r12 r1 minus 127 Offset",
1107 "NegativeOffset_al_r12_r1_minus_127_Offset",
1108 ARRAY_SIZE(kNegativeOffset),
1109 kNegativeOffset},
1110 {{al, r0, r9, minus, 144, Offset},
1111 "al r0 r9 minus 144 Offset",
1112 "NegativeOffset_al_r0_r9_minus_144_Offset",
1113 ARRAY_SIZE(kNegativeOffset),
1114 kNegativeOffset},
1115 {{al, r8, r4, minus, 6, Offset},
1116 "al r8 r4 minus 6 Offset",
1117 "NegativeOffset_al_r8_r4_minus_6_Offset",
1118 ARRAY_SIZE(kNegativeOffset),
1119 kNegativeOffset},
1120 {{al, r7, r2, minus, 128, Offset},
1121 "al r7 r2 minus 128 Offset",
1122 "NegativeOffset_al_r7_r2_minus_128_Offset",
1123 ARRAY_SIZE(kNegativeOffset),
1124 kNegativeOffset},
1125 {{al, r0, r9, minus, 79, Offset},
1126 "al r0 r9 minus 79 Offset",
1127 "NegativeOffset_al_r0_r9_minus_79_Offset",
1128 ARRAY_SIZE(kNegativeOffset),
1129 kNegativeOffset},
1130 {{al, r7, r6, minus, 53, Offset},
1131 "al r7 r6 minus 53 Offset",
1132 "NegativeOffset_al_r7_r6_minus_53_Offset",
1133 ARRAY_SIZE(kNegativeOffset),
1134 kNegativeOffset},
1135 {{al, r4, r9, minus, 32, Offset},
1136 "al r4 r9 minus 32 Offset",
1137 "NegativeOffset_al_r4_r9_minus_32_Offset",
1138 ARRAY_SIZE(kNegativeOffset),
1139 kNegativeOffset},
1140 {{al, r4, r8, minus, 146, Offset},
1141 "al r4 r8 minus 146 Offset",
1142 "NegativeOffset_al_r4_r8_minus_146_Offset",
1143 ARRAY_SIZE(kNegativeOffset),
1144 kNegativeOffset},
1145 {{al, r5, r3, minus, 228, Offset},
1146 "al r5 r3 minus 228 Offset",
1147 "NegativeOffset_al_r5_r3_minus_228_Offset",
1148 ARRAY_SIZE(kNegativeOffset),
1149 kNegativeOffset},
1150 {{al, r2, r0, minus, 42, Offset},
1151 "al r2 r0 minus 42 Offset",
1152 "NegativeOffset_al_r2_r0_minus_42_Offset",
1153 ARRAY_SIZE(kNegativeOffset),
1154 kNegativeOffset},
1155 {{al, r1, r8, minus, 85, Offset},
1156 "al r1 r8 minus 85 Offset",
1157 "NegativeOffset_al_r1_r8_minus_85_Offset",
1158 ARRAY_SIZE(kNegativeOffset),
1159 kNegativeOffset},
1160 {{al, r3, r1, minus, 137, Offset},
1161 "al r3 r1 minus 137 Offset",
1162 "NegativeOffset_al_r3_r1_minus_137_Offset",
1163 ARRAY_SIZE(kNegativeOffset),
1164 kNegativeOffset},
1165 {{al, r5, r8, minus, 6, Offset},
1166 "al r5 r8 minus 6 Offset",
1167 "NegativeOffset_al_r5_r8_minus_6_Offset",
1168 ARRAY_SIZE(kNegativeOffset),
1169 kNegativeOffset},
1170 {{al, r5, r4, minus, 58, Offset},
1171 "al r5 r4 minus 58 Offset",
1172 "NegativeOffset_al_r5_r4_minus_58_Offset",
1173 ARRAY_SIZE(kNegativeOffset),
1174 kNegativeOffset},
1175 {{al, r5, r11, minus, 41, Offset},
1176 "al r5 r11 minus 41 Offset",
1177 "NegativeOffset_al_r5_r11_minus_41_Offset",
1178 ARRAY_SIZE(kNegativeOffset),
1179 kNegativeOffset},
1180 {{al, r7, r8, minus, 27, Offset},
1181 "al r7 r8 minus 27 Offset",
1182 "NegativeOffset_al_r7_r8_minus_27_Offset",
1183 ARRAY_SIZE(kNegativeOffset),
1184 kNegativeOffset},
1185 {{al, r6, r7, minus, 58, Offset},
1186 "al r6 r7 minus 58 Offset",
1187 "NegativeOffset_al_r6_r7_minus_58_Offset",
1188 ARRAY_SIZE(kNegativeOffset),
1189 kNegativeOffset},
1190 {{al, r7, r5, minus, 6, Offset},
1191 "al r7 r5 minus 6 Offset",
1192 "NegativeOffset_al_r7_r5_minus_6_Offset",
1193 ARRAY_SIZE(kNegativeOffset),
1194 kNegativeOffset},
1195 {{al, r9, r3, minus, 167, Offset},
1196 "al r9 r3 minus 167 Offset",
1197 "NegativeOffset_al_r9_r3_minus_167_Offset",
1198 ARRAY_SIZE(kNegativeOffset),
1199 kNegativeOffset},
1200 {{al, r6, r4, minus, 44, Offset},
1201 "al r6 r4 minus 44 Offset",
1202 "NegativeOffset_al_r6_r4_minus_44_Offset",
1203 ARRAY_SIZE(kNegativeOffset),
1204 kNegativeOffset},
1205 {{al, r8, r1, minus, 115, Offset},
1206 "al r8 r1 minus 115 Offset",
1207 "NegativeOffset_al_r8_r1_minus_115_Offset",
1208 ARRAY_SIZE(kNegativeOffset),
1209 kNegativeOffset},
1210 {{al, r4, r8, minus, 127, Offset},
1211 "al r4 r8 minus 127 Offset",
1212 "NegativeOffset_al_r4_r8_minus_127_Offset",
1213 ARRAY_SIZE(kNegativeOffset),
1214 kNegativeOffset},
1215 {{al, r6, r1, minus, 247, Offset},
1216 "al r6 r1 minus 247 Offset",
1217 "NegativeOffset_al_r6_r1_minus_247_Offset",
1218 ARRAY_SIZE(kNegativeOffset),
1219 kNegativeOffset},
1220 {{al, r5, r2, minus, 113, Offset},
1221 "al r5 r2 minus 113 Offset",
1222 "NegativeOffset_al_r5_r2_minus_113_Offset",
1223 ARRAY_SIZE(kNegativeOffset),
1224 kNegativeOffset},
1225 {{al, r10, r5, minus, 197, Offset},
1226 "al r10 r5 minus 197 Offset",
1227 "NegativeOffset_al_r10_r5_minus_197_Offset",
1228 ARRAY_SIZE(kNegativeOffset),
1229 kNegativeOffset},
1230 {{al, r3, r14, minus, 149, Offset},
1231 "al r3 r14 minus 149 Offset",
1232 "NegativeOffset_al_r3_r14_minus_149_Offset",
1233 ARRAY_SIZE(kNegativeOffset),
1234 kNegativeOffset},
1235 {{al, r4, r9, minus, 71, Offset},
1236 "al r4 r9 minus 71 Offset",
1237 "NegativeOffset_al_r4_r9_minus_71_Offset",
1238 ARRAY_SIZE(kNegativeOffset),
1239 kNegativeOffset},
1240 {{al, r9, r5, minus, 65, Offset},
1241 "al r9 r5 minus 65 Offset",
1242 "NegativeOffset_al_r9_r5_minus_65_Offset",
1243 ARRAY_SIZE(kNegativeOffset),
1244 kNegativeOffset},
1245 {{al, r1, r12, minus, 238, Offset},
1246 "al r1 r12 minus 238 Offset",
1247 "NegativeOffset_al_r1_r12_minus_238_Offset",
1248 ARRAY_SIZE(kNegativeOffset),
1249 kNegativeOffset},
1250 {{al, r8, r12, minus, 102, Offset},
1251 "al r8 r12 minus 102 Offset",
1252 "NegativeOffset_al_r8_r12_minus_102_Offset",
1253 ARRAY_SIZE(kNegativeOffset),
1254 kNegativeOffset},
1255 {{al, r14, r0, minus, 49, Offset},
1256 "al r14 r0 minus 49 Offset",
1257 "NegativeOffset_al_r14_r0_minus_49_Offset",
1258 ARRAY_SIZE(kNegativeOffset),
1259 kNegativeOffset},
1260 {{al, r12, r5, minus, 63, Offset},
1261 "al r12 r5 minus 63 Offset",
1262 "NegativeOffset_al_r12_r5_minus_63_Offset",
1263 ARRAY_SIZE(kNegativeOffset),
1264 kNegativeOffset},
1265 {{al, r9, r3, minus, 146, Offset},
1266 "al r9 r3 minus 146 Offset",
1267 "NegativeOffset_al_r9_r3_minus_146_Offset",
1268 ARRAY_SIZE(kNegativeOffset),
1269 kNegativeOffset},
1270 {{al, r14, r0, minus, 36, Offset},
1271 "al r14 r0 minus 36 Offset",
1272 "NegativeOffset_al_r14_r0_minus_36_Offset",
1273 ARRAY_SIZE(kNegativeOffset),
1274 kNegativeOffset},
1275 {{al, r1, r5, minus, 154, Offset},
1276 "al r1 r5 minus 154 Offset",
1277 "NegativeOffset_al_r1_r5_minus_154_Offset",
1278 ARRAY_SIZE(kNegativeOffset),
1279 kNegativeOffset},
1280 {{al, r4, r9, minus, 139, Offset},
1281 "al r4 r9 minus 139 Offset",
1282 "NegativeOffset_al_r4_r9_minus_139_Offset",
1283 ARRAY_SIZE(kNegativeOffset),
1284 kNegativeOffset},
1285 {{al, r8, r11, minus, 131, Offset},
1286 "al r8 r11 minus 131 Offset",
1287 "NegativeOffset_al_r8_r11_minus_131_Offset",
1288 ARRAY_SIZE(kNegativeOffset),
1289 kNegativeOffset},
1290 {{al, r4, r10, minus, 45, Offset},
1291 "al r4 r10 minus 45 Offset",
1292 "NegativeOffset_al_r4_r10_minus_45_Offset",
1293 ARRAY_SIZE(kNegativeOffset),
1294 kNegativeOffset},
1295 {{al, r11, r2, minus, 77, Offset},
1296 "al r11 r2 minus 77 Offset",
1297 "NegativeOffset_al_r11_r2_minus_77_Offset",
1298 ARRAY_SIZE(kNegativeOffset),
1299 kNegativeOffset},
1300 {{al, r9, r5, minus, 75, Offset},
1301 "al r9 r5 minus 75 Offset",
1302 "NegativeOffset_al_r9_r5_minus_75_Offset",
1303 ARRAY_SIZE(kNegativeOffset),
1304 kNegativeOffset},
1305 {{al, r12, r6, minus, 86, Offset},
1306 "al r12 r6 minus 86 Offset",
1307 "NegativeOffset_al_r12_r6_minus_86_Offset",
1308 ARRAY_SIZE(kNegativeOffset),
1309 kNegativeOffset},
1310 {{al, r0, r7, minus, 191, Offset},
1311 "al r0 r7 minus 191 Offset",
1312 "NegativeOffset_al_r0_r7_minus_191_Offset",
1313 ARRAY_SIZE(kNegativeOffset),
1314 kNegativeOffset},
1315 {{al, r3, r10, minus, 125, Offset},
1316 "al r3 r10 minus 125 Offset",
1317 "NegativeOffset_al_r3_r10_minus_125_Offset",
1318 ARRAY_SIZE(kNegativeOffset),
1319 kNegativeOffset},
1320 {{al, r2, r8, minus, 23, Offset},
1321 "al r2 r8 minus 23 Offset",
1322 "NegativeOffset_al_r2_r8_minus_23_Offset",
1323 ARRAY_SIZE(kNegativeOffset),
1324 kNegativeOffset},
1325 {{al, r1, r11, minus, 105, Offset},
1326 "al r1 r11 minus 105 Offset",
1327 "NegativeOffset_al_r1_r11_minus_105_Offset",
1328 ARRAY_SIZE(kNegativeOffset),
1329 kNegativeOffset},
1330 {{al, r14, r7, plus, 211, PostIndex},
1331 "al r14 r7 plus 211 PostIndex",
1332 "PositivePostIndex_al_r14_r7_plus_211_PostIndex",
1333 ARRAY_SIZE(kPositivePostIndex),
1334 kPositivePostIndex},
1335 {{al, r7, r11, plus, 202, PostIndex},
1336 "al r7 r11 plus 202 PostIndex",
1337 "PositivePostIndex_al_r7_r11_plus_202_PostIndex",
1338 ARRAY_SIZE(kPositivePostIndex),
1339 kPositivePostIndex},
1340 {{al, r11, r3, plus, 175, PostIndex},
1341 "al r11 r3 plus 175 PostIndex",
1342 "PositivePostIndex_al_r11_r3_plus_175_PostIndex",
1343 ARRAY_SIZE(kPositivePostIndex),
1344 kPositivePostIndex},
1345 {{al, r4, r8, plus, 129, PostIndex},
1346 "al r4 r8 plus 129 PostIndex",
1347 "PositivePostIndex_al_r4_r8_plus_129_PostIndex",
1348 ARRAY_SIZE(kPositivePostIndex),
1349 kPositivePostIndex},
1350 {{al, r4, r7, plus, 71, PostIndex},
1351 "al r4 r7 plus 71 PostIndex",
1352 "PositivePostIndex_al_r4_r7_plus_71_PostIndex",
1353 ARRAY_SIZE(kPositivePostIndex),
1354 kPositivePostIndex},
1355 {{al, r5, r12, plus, 226, PostIndex},
1356 "al r5 r12 plus 226 PostIndex",
1357 "PositivePostIndex_al_r5_r12_plus_226_PostIndex",
1358 ARRAY_SIZE(kPositivePostIndex),
1359 kPositivePostIndex},
1360 {{al, r1, r14, plus, 53, PostIndex},
1361 "al r1 r14 plus 53 PostIndex",
1362 "PositivePostIndex_al_r1_r14_plus_53_PostIndex",
1363 ARRAY_SIZE(kPositivePostIndex),
1364 kPositivePostIndex},
1365 {{al, r9, r10, plus, 116, PostIndex},
1366 "al r9 r10 plus 116 PostIndex",
1367 "PositivePostIndex_al_r9_r10_plus_116_PostIndex",
1368 ARRAY_SIZE(kPositivePostIndex),
1369 kPositivePostIndex},
1370 {{al, r10, r2, plus, 137, PostIndex},
1371 "al r10 r2 plus 137 PostIndex",
1372 "PositivePostIndex_al_r10_r2_plus_137_PostIndex",
1373 ARRAY_SIZE(kPositivePostIndex),
1374 kPositivePostIndex},
1375 {{al, r5, r7, plus, 157, PostIndex},
1376 "al r5 r7 plus 157 PostIndex",
1377 "PositivePostIndex_al_r5_r7_plus_157_PostIndex",
1378 ARRAY_SIZE(kPositivePostIndex),
1379 kPositivePostIndex},
1380 {{al, r11, r9, plus, 19, PostIndex},
1381 "al r11 r9 plus 19 PostIndex",
1382 "PositivePostIndex_al_r11_r9_plus_19_PostIndex",
1383 ARRAY_SIZE(kPositivePostIndex),
1384 kPositivePostIndex},
1385 {{al, r6, r11, plus, 229, PostIndex},
1386 "al r6 r11 plus 229 PostIndex",
1387 "PositivePostIndex_al_r6_r11_plus_229_PostIndex",
1388 ARRAY_SIZE(kPositivePostIndex),
1389 kPositivePostIndex},
1390 {{al, r5, r7, plus, 91, PostIndex},
1391 "al r5 r7 plus 91 PostIndex",
1392 "PositivePostIndex_al_r5_r7_plus_91_PostIndex",
1393 ARRAY_SIZE(kPositivePostIndex),
1394 kPositivePostIndex},
1395 {{al, r0, r2, plus, 32, PostIndex},
1396 "al r0 r2 plus 32 PostIndex",
1397 "PositivePostIndex_al_r0_r2_plus_32_PostIndex",
1398 ARRAY_SIZE(kPositivePostIndex),
1399 kPositivePostIndex},
1400 {{al, r12, r9, plus, 244, PostIndex},
1401 "al r12 r9 plus 244 PostIndex",
1402 "PositivePostIndex_al_r12_r9_plus_244_PostIndex",
1403 ARRAY_SIZE(kPositivePostIndex),
1404 kPositivePostIndex},
1405 {{al, r0, r7, plus, 180, PostIndex},
1406 "al r0 r7 plus 180 PostIndex",
1407 "PositivePostIndex_al_r0_r7_plus_180_PostIndex",
1408 ARRAY_SIZE(kPositivePostIndex),
1409 kPositivePostIndex},
1410 {{al, r5, r1, plus, 49, PostIndex},
1411 "al r5 r1 plus 49 PostIndex",
1412 "PositivePostIndex_al_r5_r1_plus_49_PostIndex",
1413 ARRAY_SIZE(kPositivePostIndex),
1414 kPositivePostIndex},
1415 {{al, r7, r2, plus, 149, PostIndex},
1416 "al r7 r2 plus 149 PostIndex",
1417 "PositivePostIndex_al_r7_r2_plus_149_PostIndex",
1418 ARRAY_SIZE(kPositivePostIndex),
1419 kPositivePostIndex},
1420 {{al, r3, r11, plus, 128, PostIndex},
1421 "al r3 r11 plus 128 PostIndex",
1422 "PositivePostIndex_al_r3_r11_plus_128_PostIndex",
1423 ARRAY_SIZE(kPositivePostIndex),
1424 kPositivePostIndex},
1425 {{al, r3, r14, plus, 139, PostIndex},
1426 "al r3 r14 plus 139 PostIndex",
1427 "PositivePostIndex_al_r3_r14_plus_139_PostIndex",
1428 ARRAY_SIZE(kPositivePostIndex),
1429 kPositivePostIndex},
1430 {{al, r1, r4, plus, 104, PostIndex},
1431 "al r1 r4 plus 104 PostIndex",
1432 "PositivePostIndex_al_r1_r4_plus_104_PostIndex",
1433 ARRAY_SIZE(kPositivePostIndex),
1434 kPositivePostIndex},
1435 {{al, r6, r8, plus, 26, PostIndex},
1436 "al r6 r8 plus 26 PostIndex",
1437 "PositivePostIndex_al_r6_r8_plus_26_PostIndex",
1438 ARRAY_SIZE(kPositivePostIndex),
1439 kPositivePostIndex},
1440 {{al, r0, r14, plus, 98, PostIndex},
1441 "al r0 r14 plus 98 PostIndex",
1442 "PositivePostIndex_al_r0_r14_plus_98_PostIndex",
1443 ARRAY_SIZE(kPositivePostIndex),
1444 kPositivePostIndex},
1445 {{al, r3, r0, plus, 148, PostIndex},
1446 "al r3 r0 plus 148 PostIndex",
1447 "PositivePostIndex_al_r3_r0_plus_148_PostIndex",
1448 ARRAY_SIZE(kPositivePostIndex),
1449 kPositivePostIndex},
1450 {{al, r2, r0, plus, 158, PostIndex},
1451 "al r2 r0 plus 158 PostIndex",
1452 "PositivePostIndex_al_r2_r0_plus_158_PostIndex",
1453 ARRAY_SIZE(kPositivePostIndex),
1454 kPositivePostIndex},
1455 {{al, r3, r1, plus, 136, PostIndex},
1456 "al r3 r1 plus 136 PostIndex",
1457 "PositivePostIndex_al_r3_r1_plus_136_PostIndex",
1458 ARRAY_SIZE(kPositivePostIndex),
1459 kPositivePostIndex},
1460 {{al, r7, r1, plus, 248, PostIndex},
1461 "al r7 r1 plus 248 PostIndex",
1462 "PositivePostIndex_al_r7_r1_plus_248_PostIndex",
1463 ARRAY_SIZE(kPositivePostIndex),
1464 kPositivePostIndex},
1465 {{al, r9, r2, plus, 34, PostIndex},
1466 "al r9 r2 plus 34 PostIndex",
1467 "PositivePostIndex_al_r9_r2_plus_34_PostIndex",
1468 ARRAY_SIZE(kPositivePostIndex),
1469 kPositivePostIndex},
1470 {{al, r1, r2, plus, 142, PostIndex},
1471 "al r1 r2 plus 142 PostIndex",
1472 "PositivePostIndex_al_r1_r2_plus_142_PostIndex",
1473 ARRAY_SIZE(kPositivePostIndex),
1474 kPositivePostIndex},
1475 {{al, r8, r4, plus, 111, PostIndex},
1476 "al r8 r4 plus 111 PostIndex",
1477 "PositivePostIndex_al_r8_r4_plus_111_PostIndex",
1478 ARRAY_SIZE(kPositivePostIndex),
1479 kPositivePostIndex},
1480 {{al, r11, r14, plus, 156, PostIndex},
1481 "al r11 r14 plus 156 PostIndex",
1482 "PositivePostIndex_al_r11_r14_plus_156_PostIndex",
1483 ARRAY_SIZE(kPositivePostIndex),
1484 kPositivePostIndex},
1485 {{al, r0, r5, plus, 87, PostIndex},
1486 "al r0 r5 plus 87 PostIndex",
1487 "PositivePostIndex_al_r0_r5_plus_87_PostIndex",
1488 ARRAY_SIZE(kPositivePostIndex),
1489 kPositivePostIndex},
1490 {{al, r10, r12, plus, 244, PostIndex},
1491 "al r10 r12 plus 244 PostIndex",
1492 "PositivePostIndex_al_r10_r12_plus_244_PostIndex",
1493 ARRAY_SIZE(kPositivePostIndex),
1494 kPositivePostIndex},
1495 {{al, r6, r8, plus, 135, PostIndex},
1496 "al r6 r8 plus 135 PostIndex",
1497 "PositivePostIndex_al_r6_r8_plus_135_PostIndex",
1498 ARRAY_SIZE(kPositivePostIndex),
1499 kPositivePostIndex},
1500 {{al, r0, r5, plus, 177, PostIndex},
1501 "al r0 r5 plus 177 PostIndex",
1502 "PositivePostIndex_al_r0_r5_plus_177_PostIndex",
1503 ARRAY_SIZE(kPositivePostIndex),
1504 kPositivePostIndex},
1505 {{al, r6, r12, plus, 160, PostIndex},
1506 "al r6 r12 plus 160 PostIndex",
1507 "PositivePostIndex_al_r6_r12_plus_160_PostIndex",
1508 ARRAY_SIZE(kPositivePostIndex),
1509 kPositivePostIndex},
1510 {{al, r6, r5, plus, 69, PostIndex},
1511 "al r6 r5 plus 69 PostIndex",
1512 "PositivePostIndex_al_r6_r5_plus_69_PostIndex",
1513 ARRAY_SIZE(kPositivePostIndex),
1514 kPositivePostIndex},
1515 {{al, r4, r6, plus, 6, PostIndex},
1516 "al r4 r6 plus 6 PostIndex",
1517 "PositivePostIndex_al_r4_r6_plus_6_PostIndex",
1518 ARRAY_SIZE(kPositivePostIndex),
1519 kPositivePostIndex},
1520 {{al, r7, r8, plus, 10, PostIndex},
1521 "al r7 r8 plus 10 PostIndex",
1522 "PositivePostIndex_al_r7_r8_plus_10_PostIndex",
1523 ARRAY_SIZE(kPositivePostIndex),
1524 kPositivePostIndex},
1525 {{al, r0, r2, plus, 76, PostIndex},
1526 "al r0 r2 plus 76 PostIndex",
1527 "PositivePostIndex_al_r0_r2_plus_76_PostIndex",
1528 ARRAY_SIZE(kPositivePostIndex),
1529 kPositivePostIndex},
1530 {{al, r2, r5, plus, 46, PostIndex},
1531 "al r2 r5 plus 46 PostIndex",
1532 "PositivePostIndex_al_r2_r5_plus_46_PostIndex",
1533 ARRAY_SIZE(kPositivePostIndex),
1534 kPositivePostIndex},
1535 {{al, r8, r0, plus, 93, PostIndex},
1536 "al r8 r0 plus 93 PostIndex",
1537 "PositivePostIndex_al_r8_r0_plus_93_PostIndex",
1538 ARRAY_SIZE(kPositivePostIndex),
1539 kPositivePostIndex},
1540 {{al, r7, r12, plus, 243, PostIndex},
1541 "al r7 r12 plus 243 PostIndex",
1542 "PositivePostIndex_al_r7_r12_plus_243_PostIndex",
1543 ARRAY_SIZE(kPositivePostIndex),
1544 kPositivePostIndex},
1545 {{al, r1, r8, plus, 223, PostIndex},
1546 "al r1 r8 plus 223 PostIndex",
1547 "PositivePostIndex_al_r1_r8_plus_223_PostIndex",
1548 ARRAY_SIZE(kPositivePostIndex),
1549 kPositivePostIndex},
1550 {{al, r12, r8, plus, 95, PostIndex},
1551 "al r12 r8 plus 95 PostIndex",
1552 "PositivePostIndex_al_r12_r8_plus_95_PostIndex",
1553 ARRAY_SIZE(kPositivePostIndex),
1554 kPositivePostIndex},
1555 {{al, r8, r11, plus, 191, PostIndex},
1556 "al r8 r11 plus 191 PostIndex",
1557 "PositivePostIndex_al_r8_r11_plus_191_PostIndex",
1558 ARRAY_SIZE(kPositivePostIndex),
1559 kPositivePostIndex},
1560 {{al, r11, r2, plus, 120, PostIndex},
1561 "al r11 r2 plus 120 PostIndex",
1562 "PositivePostIndex_al_r11_r2_plus_120_PostIndex",
1563 ARRAY_SIZE(kPositivePostIndex),
1564 kPositivePostIndex},
1565 {{al, r14, r0, plus, 161, PostIndex},
1566 "al r14 r0 plus 161 PostIndex",
1567 "PositivePostIndex_al_r14_r0_plus_161_PostIndex",
1568 ARRAY_SIZE(kPositivePostIndex),
1569 kPositivePostIndex},
1570 {{al, r5, r12, plus, 143, PostIndex},
1571 "al r5 r12 plus 143 PostIndex",
1572 "PositivePostIndex_al_r5_r12_plus_143_PostIndex",
1573 ARRAY_SIZE(kPositivePostIndex),
1574 kPositivePostIndex},
1575 {{al, r12, r11, plus, 208, PostIndex},
1576 "al r12 r11 plus 208 PostIndex",
1577 "PositivePostIndex_al_r12_r11_plus_208_PostIndex",
1578 ARRAY_SIZE(kPositivePostIndex),
1579 kPositivePostIndex},
1580 {{al, r1, r10, plus, 111, PostIndex},
1581 "al r1 r10 plus 111 PostIndex",
1582 "PositivePostIndex_al_r1_r10_plus_111_PostIndex",
1583 ARRAY_SIZE(kPositivePostIndex),
1584 kPositivePostIndex},
1585 {{al, r9, r11, plus, 36, PostIndex},
1586 "al r9 r11 plus 36 PostIndex",
1587 "PositivePostIndex_al_r9_r11_plus_36_PostIndex",
1588 ARRAY_SIZE(kPositivePostIndex),
1589 kPositivePostIndex},
1590 {{al, r9, r1, plus, 36, PostIndex},
1591 "al r9 r1 plus 36 PostIndex",
1592 "PositivePostIndex_al_r9_r1_plus_36_PostIndex",
1593 ARRAY_SIZE(kPositivePostIndex),
1594 kPositivePostIndex},
1595 {{al, r5, r1, plus, 227, PostIndex},
1596 "al r5 r1 plus 227 PostIndex",
1597 "PositivePostIndex_al_r5_r1_plus_227_PostIndex",
1598 ARRAY_SIZE(kPositivePostIndex),
1599 kPositivePostIndex},
1600 {{al, r0, r8, plus, 23, PostIndex},
1601 "al r0 r8 plus 23 PostIndex",
1602 "PositivePostIndex_al_r0_r8_plus_23_PostIndex",
1603 ARRAY_SIZE(kPositivePostIndex),
1604 kPositivePostIndex},
1605 {{al, r0, r5, plus, 200, PostIndex},
1606 "al r0 r5 plus 200 PostIndex",
1607 "PositivePostIndex_al_r0_r5_plus_200_PostIndex",
1608 ARRAY_SIZE(kPositivePostIndex),
1609 kPositivePostIndex},
1610 {{al, r1, r5, plus, 43, PostIndex},
1611 "al r1 r5 plus 43 PostIndex",
1612 "PositivePostIndex_al_r1_r5_plus_43_PostIndex",
1613 ARRAY_SIZE(kPositivePostIndex),
1614 kPositivePostIndex},
1615 {{al, r9, r4, plus, 101, PostIndex},
1616 "al r9 r4 plus 101 PostIndex",
1617 "PositivePostIndex_al_r9_r4_plus_101_PostIndex",
1618 ARRAY_SIZE(kPositivePostIndex),
1619 kPositivePostIndex},
1620 {{al, r14, r5, plus, 68, PostIndex},
1621 "al r14 r5 plus 68 PostIndex",
1622 "PositivePostIndex_al_r14_r5_plus_68_PostIndex",
1623 ARRAY_SIZE(kPositivePostIndex),
1624 kPositivePostIndex},
1625 {{al, r10, r1, plus, 29, PostIndex},
1626 "al r10 r1 plus 29 PostIndex",
1627 "PositivePostIndex_al_r10_r1_plus_29_PostIndex",
1628 ARRAY_SIZE(kPositivePostIndex),
1629 kPositivePostIndex},
1630 {{al, r7, r2, plus, 102, PostIndex},
1631 "al r7 r2 plus 102 PostIndex",
1632 "PositivePostIndex_al_r7_r2_plus_102_PostIndex",
1633 ARRAY_SIZE(kPositivePostIndex),
1634 kPositivePostIndex},
1635 {{al, r2, r4, plus, 233, PostIndex},
1636 "al r2 r4 plus 233 PostIndex",
1637 "PositivePostIndex_al_r2_r4_plus_233_PostIndex",
1638 ARRAY_SIZE(kPositivePostIndex),
1639 kPositivePostIndex},
1640 {{al, r8, r10, plus, 134, PostIndex},
1641 "al r8 r10 plus 134 PostIndex",
1642 "PositivePostIndex_al_r8_r10_plus_134_PostIndex",
1643 ARRAY_SIZE(kPositivePostIndex),
1644 kPositivePostIndex},
1645 {{al, r4, r0, plus, 136, PostIndex},
1646 "al r4 r0 plus 136 PostIndex",
1647 "PositivePostIndex_al_r4_r0_plus_136_PostIndex",
1648 ARRAY_SIZE(kPositivePostIndex),
1649 kPositivePostIndex},
1650 {{al, r9, r7, plus, 194, PostIndex},
1651 "al r9 r7 plus 194 PostIndex",
1652 "PositivePostIndex_al_r9_r7_plus_194_PostIndex",
1653 ARRAY_SIZE(kPositivePostIndex),
1654 kPositivePostIndex},
1655 {{al, r8, r14, plus, 9, PostIndex},
1656 "al r8 r14 plus 9 PostIndex",
1657 "PositivePostIndex_al_r8_r14_plus_9_PostIndex",
1658 ARRAY_SIZE(kPositivePostIndex),
1659 kPositivePostIndex},
1660 {{al, r2, r10, plus, 93, PostIndex},
1661 "al r2 r10 plus 93 PostIndex",
1662 "PositivePostIndex_al_r2_r10_plus_93_PostIndex",
1663 ARRAY_SIZE(kPositivePostIndex),
1664 kPositivePostIndex},
1665 {{al, r10, r8, plus, 29, PostIndex},
1666 "al r10 r8 plus 29 PostIndex",
1667 "PositivePostIndex_al_r10_r8_plus_29_PostIndex",
1668 ARRAY_SIZE(kPositivePostIndex),
1669 kPositivePostIndex},
1670 {{al, r11, r3, plus, 219, PostIndex},
1671 "al r11 r3 plus 219 PostIndex",
1672 "PositivePostIndex_al_r11_r3_plus_219_PostIndex",
1673 ARRAY_SIZE(kPositivePostIndex),
1674 kPositivePostIndex},
1675 {{al, r7, r5, plus, 122, PostIndex},
1676 "al r7 r5 plus 122 PostIndex",
1677 "PositivePostIndex_al_r7_r5_plus_122_PostIndex",
1678 ARRAY_SIZE(kPositivePostIndex),
1679 kPositivePostIndex},
1680 {{al, r3, r7, plus, 115, PostIndex},
1681 "al r3 r7 plus 115 PostIndex",
1682 "PositivePostIndex_al_r3_r7_plus_115_PostIndex",
1683 ARRAY_SIZE(kPositivePostIndex),
1684 kPositivePostIndex},
1685 {{al, r14, r0, plus, 168, PostIndex},
1686 "al r14 r0 plus 168 PostIndex",
1687 "PositivePostIndex_al_r14_r0_plus_168_PostIndex",
1688 ARRAY_SIZE(kPositivePostIndex),
1689 kPositivePostIndex},
1690 {{al, r1, r5, plus, 102, PostIndex},
1691 "al r1 r5 plus 102 PostIndex",
1692 "PositivePostIndex_al_r1_r5_plus_102_PostIndex",
1693 ARRAY_SIZE(kPositivePostIndex),
1694 kPositivePostIndex},
1695 {{al, r8, r0, plus, 131, PostIndex},
1696 "al r8 r0 plus 131 PostIndex",
1697 "PositivePostIndex_al_r8_r0_plus_131_PostIndex",
1698 ARRAY_SIZE(kPositivePostIndex),
1699 kPositivePostIndex},
1700 {{al, r4, r1, plus, 161, PostIndex},
1701 "al r4 r1 plus 161 PostIndex",
1702 "PositivePostIndex_al_r4_r1_plus_161_PostIndex",
1703 ARRAY_SIZE(kPositivePostIndex),
1704 kPositivePostIndex},
1705 {{al, r1, r6, plus, 140, PostIndex},
1706 "al r1 r6 plus 140 PostIndex",
1707 "PositivePostIndex_al_r1_r6_plus_140_PostIndex",
1708 ARRAY_SIZE(kPositivePostIndex),
1709 kPositivePostIndex},
1710 {{al, r2, r8, plus, 73, PostIndex},
1711 "al r2 r8 plus 73 PostIndex",
1712 "PositivePostIndex_al_r2_r8_plus_73_PostIndex",
1713 ARRAY_SIZE(kPositivePostIndex),
1714 kPositivePostIndex},
1715 {{al, r3, r8, plus, 68, PostIndex},
1716 "al r3 r8 plus 68 PostIndex",
1717 "PositivePostIndex_al_r3_r8_plus_68_PostIndex",
1718 ARRAY_SIZE(kPositivePostIndex),
1719 kPositivePostIndex},
1720 {{al, r12, r2, plus, 185, PostIndex},
1721 "al r12 r2 plus 185 PostIndex",
1722 "PositivePostIndex_al_r12_r2_plus_185_PostIndex",
1723 ARRAY_SIZE(kPositivePostIndex),
1724 kPositivePostIndex},
1725 {{al, r0, r12, plus, 95, PostIndex},
1726 "al r0 r12 plus 95 PostIndex",
1727 "PositivePostIndex_al_r0_r12_plus_95_PostIndex",
1728 ARRAY_SIZE(kPositivePostIndex),
1729 kPositivePostIndex},
1730 {{al, r12, r2, plus, 172, PostIndex},
1731 "al r12 r2 plus 172 PostIndex",
1732 "PositivePostIndex_al_r12_r2_plus_172_PostIndex",
1733 ARRAY_SIZE(kPositivePostIndex),
1734 kPositivePostIndex},
1735 {{al, r1, r5, plus, 14, PostIndex},
1736 "al r1 r5 plus 14 PostIndex",
1737 "PositivePostIndex_al_r1_r5_plus_14_PostIndex",
1738 ARRAY_SIZE(kPositivePostIndex),
1739 kPositivePostIndex},
1740 {{al, r6, r9, plus, 229, PostIndex},
1741 "al r6 r9 plus 229 PostIndex",
1742 "PositivePostIndex_al_r6_r9_plus_229_PostIndex",
1743 ARRAY_SIZE(kPositivePostIndex),
1744 kPositivePostIndex},
1745 {{al, r10, r6, plus, 31, PostIndex},
1746 "al r10 r6 plus 31 PostIndex",
1747 "PositivePostIndex_al_r10_r6_plus_31_PostIndex",
1748 ARRAY_SIZE(kPositivePostIndex),
1749 kPositivePostIndex},
1750 {{al, r8, r5, plus, 229, PostIndex},
1751 "al r8 r5 plus 229 PostIndex",
1752 "PositivePostIndex_al_r8_r5_plus_229_PostIndex",
1753 ARRAY_SIZE(kPositivePostIndex),
1754 kPositivePostIndex},
1755 {{al, r11, r10, plus, 132, PostIndex},
1756 "al r11 r10 plus 132 PostIndex",
1757 "PositivePostIndex_al_r11_r10_plus_132_PostIndex",
1758 ARRAY_SIZE(kPositivePostIndex),
1759 kPositivePostIndex},
1760 {{al, r4, r0, plus, 192, PostIndex},
1761 "al r4 r0 plus 192 PostIndex",
1762 "PositivePostIndex_al_r4_r0_plus_192_PostIndex",
1763 ARRAY_SIZE(kPositivePostIndex),
1764 kPositivePostIndex},
1765 {{al, r5, r0, plus, 176, PostIndex},
1766 "al r5 r0 plus 176 PostIndex",
1767 "PositivePostIndex_al_r5_r0_plus_176_PostIndex",
1768 ARRAY_SIZE(kPositivePostIndex),
1769 kPositivePostIndex},
1770 {{al, r5, r4, plus, 106, PostIndex},
1771 "al r5 r4 plus 106 PostIndex",
1772 "PositivePostIndex_al_r5_r4_plus_106_PostIndex",
1773 ARRAY_SIZE(kPositivePostIndex),
1774 kPositivePostIndex},
1775 {{al, r2, r12, plus, 69, PostIndex},
1776 "al r2 r12 plus 69 PostIndex",
1777 "PositivePostIndex_al_r2_r12_plus_69_PostIndex",
1778 ARRAY_SIZE(kPositivePostIndex),
1779 kPositivePostIndex},
1780 {{al, r11, r10, plus, 15, PostIndex},
1781 "al r11 r10 plus 15 PostIndex",
1782 "PositivePostIndex_al_r11_r10_plus_15_PostIndex",
1783 ARRAY_SIZE(kPositivePostIndex),
1784 kPositivePostIndex},
1785 {{al, r10, r6, plus, 159, PostIndex},
1786 "al r10 r6 plus 159 PostIndex",
1787 "PositivePostIndex_al_r10_r6_plus_159_PostIndex",
1788 ARRAY_SIZE(kPositivePostIndex),
1789 kPositivePostIndex},
1790 {{al, r12, r8, plus, 78, PostIndex},
1791 "al r12 r8 plus 78 PostIndex",
1792 "PositivePostIndex_al_r12_r8_plus_78_PostIndex",
1793 ARRAY_SIZE(kPositivePostIndex),
1794 kPositivePostIndex},
1795 {{al, r0, r5, plus, 227, PostIndex},
1796 "al r0 r5 plus 227 PostIndex",
1797 "PositivePostIndex_al_r0_r5_plus_227_PostIndex",
1798 ARRAY_SIZE(kPositivePostIndex),
1799 kPositivePostIndex},
1800 {{al, r8, r10, plus, 73, PostIndex},
1801 "al r8 r10 plus 73 PostIndex",
1802 "PositivePostIndex_al_r8_r10_plus_73_PostIndex",
1803 ARRAY_SIZE(kPositivePostIndex),
1804 kPositivePostIndex},
1805 {{al, r9, r5, plus, 10, PostIndex},
1806 "al r9 r5 plus 10 PostIndex",
1807 "PositivePostIndex_al_r9_r5_plus_10_PostIndex",
1808 ARRAY_SIZE(kPositivePostIndex),
1809 kPositivePostIndex},
1810 {{al, r12, r14, plus, 214, PostIndex},
1811 "al r12 r14 plus 214 PostIndex",
1812 "PositivePostIndex_al_r12_r14_plus_214_PostIndex",
1813 ARRAY_SIZE(kPositivePostIndex),
1814 kPositivePostIndex},
1815 {{al, r7, r14, plus, 246, PostIndex},
1816 "al r7 r14 plus 246 PostIndex",
1817 "PositivePostIndex_al_r7_r14_plus_246_PostIndex",
1818 ARRAY_SIZE(kPositivePostIndex),
1819 kPositivePostIndex},
1820 {{al, r11, r1, plus, 78, PostIndex},
1821 "al r11 r1 plus 78 PostIndex",
1822 "PositivePostIndex_al_r11_r1_plus_78_PostIndex",
1823 ARRAY_SIZE(kPositivePostIndex),
1824 kPositivePostIndex},
1825 {{al, r5, r9, plus, 26, PostIndex},
1826 "al r5 r9 plus 26 PostIndex",
1827 "PositivePostIndex_al_r5_r9_plus_26_PostIndex",
1828 ARRAY_SIZE(kPositivePostIndex),
1829 kPositivePostIndex},
1830 {{al, r9, r14, minus, 12, PostIndex},
1831 "al r9 r14 minus 12 PostIndex",
1832 "NegativePostIndex_al_r9_r14_minus_12_PostIndex",
1833 ARRAY_SIZE(kNegativePostIndex),
1834 kNegativePostIndex},
1835 {{al, r8, r4, minus, 212, PostIndex},
1836 "al r8 r4 minus 212 PostIndex",
1837 "NegativePostIndex_al_r8_r4_minus_212_PostIndex",
1838 ARRAY_SIZE(kNegativePostIndex),
1839 kNegativePostIndex},
1840 {{al, r2, r11, minus, 14, PostIndex},
1841 "al r2 r11 minus 14 PostIndex",
1842 "NegativePostIndex_al_r2_r11_minus_14_PostIndex",
1843 ARRAY_SIZE(kNegativePostIndex),
1844 kNegativePostIndex},
1845 {{al, r2, r7, minus, 225, PostIndex},
1846 "al r2 r7 minus 225 PostIndex",
1847 "NegativePostIndex_al_r2_r7_minus_225_PostIndex",
1848 ARRAY_SIZE(kNegativePostIndex),
1849 kNegativePostIndex},
1850 {{al, r11, r2, minus, 77, PostIndex},
1851 "al r11 r2 minus 77 PostIndex",
1852 "NegativePostIndex_al_r11_r2_minus_77_PostIndex",
1853 ARRAY_SIZE(kNegativePostIndex),
1854 kNegativePostIndex},
1855 {{al, r14, r8, minus, 23, PostIndex},
1856 "al r14 r8 minus 23 PostIndex",
1857 "NegativePostIndex_al_r14_r8_minus_23_PostIndex",
1858 ARRAY_SIZE(kNegativePostIndex),
1859 kNegativePostIndex},
1860 {{al, r0, r9, minus, 250, PostIndex},
1861 "al r0 r9 minus 250 PostIndex",
1862 "NegativePostIndex_al_r0_r9_minus_250_PostIndex",
1863 ARRAY_SIZE(kNegativePostIndex),
1864 kNegativePostIndex},
1865 {{al, r14, r11, minus, 121, PostIndex},
1866 "al r14 r11 minus 121 PostIndex",
1867 "NegativePostIndex_al_r14_r11_minus_121_PostIndex",
1868 ARRAY_SIZE(kNegativePostIndex),
1869 kNegativePostIndex},
1870 {{al, r12, r1, minus, 122, PostIndex},
1871 "al r12 r1 minus 122 PostIndex",
1872 "NegativePostIndex_al_r12_r1_minus_122_PostIndex",
1873 ARRAY_SIZE(kNegativePostIndex),
1874 kNegativePostIndex},
1875 {{al, r11, r5, minus, 75, PostIndex},
1876 "al r11 r5 minus 75 PostIndex",
1877 "NegativePostIndex_al_r11_r5_minus_75_PostIndex",
1878 ARRAY_SIZE(kNegativePostIndex),
1879 kNegativePostIndex},
1880 {{al, r9, r5, minus, 123, PostIndex},
1881 "al r9 r5 minus 123 PostIndex",
1882 "NegativePostIndex_al_r9_r5_minus_123_PostIndex",
1883 ARRAY_SIZE(kNegativePostIndex),
1884 kNegativePostIndex},
1885 {{al, r0, r10, minus, 31, PostIndex},
1886 "al r0 r10 minus 31 PostIndex",
1887 "NegativePostIndex_al_r0_r10_minus_31_PostIndex",
1888 ARRAY_SIZE(kNegativePostIndex),
1889 kNegativePostIndex},
1890 {{al, r9, r2, minus, 154, PostIndex},
1891 "al r9 r2 minus 154 PostIndex",
1892 "NegativePostIndex_al_r9_r2_minus_154_PostIndex",
1893 ARRAY_SIZE(kNegativePostIndex),
1894 kNegativePostIndex},
1895 {{al, r10, r3, minus, 39, PostIndex},
1896 "al r10 r3 minus 39 PostIndex",
1897 "NegativePostIndex_al_r10_r3_minus_39_PostIndex",
1898 ARRAY_SIZE(kNegativePostIndex),
1899 kNegativePostIndex},
1900 {{al, r9, r8, minus, 40, PostIndex},
1901 "al r9 r8 minus 40 PostIndex",
1902 "NegativePostIndex_al_r9_r8_minus_40_PostIndex",
1903 ARRAY_SIZE(kNegativePostIndex),
1904 kNegativePostIndex},
1905 {{al, r2, r11, minus, 19, PostIndex},
1906 "al r2 r11 minus 19 PostIndex",
1907 "NegativePostIndex_al_r2_r11_minus_19_PostIndex",
1908 ARRAY_SIZE(kNegativePostIndex),
1909 kNegativePostIndex},
1910 {{al, r7, r12, minus, 62, PostIndex},
1911 "al r7 r12 minus 62 PostIndex",
1912 "NegativePostIndex_al_r7_r12_minus_62_PostIndex",
1913 ARRAY_SIZE(kNegativePostIndex),
1914 kNegativePostIndex},
1915 {{al, r12, r5, minus, 94, PostIndex},
1916 "al r12 r5 minus 94 PostIndex",
1917 "NegativePostIndex_al_r12_r5_minus_94_PostIndex",
1918 ARRAY_SIZE(kNegativePostIndex),
1919 kNegativePostIndex},
1920 {{al, r3, r12, minus, 177, PostIndex},
1921 "al r3 r12 minus 177 PostIndex",
1922 "NegativePostIndex_al_r3_r12_minus_177_PostIndex",
1923 ARRAY_SIZE(kNegativePostIndex),
1924 kNegativePostIndex},
1925 {{al, r10, r3, minus, 22, PostIndex},
1926 "al r10 r3 minus 22 PostIndex",
1927 "NegativePostIndex_al_r10_r3_minus_22_PostIndex",
1928 ARRAY_SIZE(kNegativePostIndex),
1929 kNegativePostIndex},
1930 {{al, r5, r4, minus, 136, PostIndex},
1931 "al r5 r4 minus 136 PostIndex",
1932 "NegativePostIndex_al_r5_r4_minus_136_PostIndex",
1933 ARRAY_SIZE(kNegativePostIndex),
1934 kNegativePostIndex},
1935 {{al, r9, r11, minus, 186, PostIndex},
1936 "al r9 r11 minus 186 PostIndex",
1937 "NegativePostIndex_al_r9_r11_minus_186_PostIndex",
1938 ARRAY_SIZE(kNegativePostIndex),
1939 kNegativePostIndex},
1940 {{al, r12, r9, minus, 205, PostIndex},
1941 "al r12 r9 minus 205 PostIndex",
1942 "NegativePostIndex_al_r12_r9_minus_205_PostIndex",
1943 ARRAY_SIZE(kNegativePostIndex),
1944 kNegativePostIndex},
1945 {{al, r2, r1, minus, 10, PostIndex},
1946 "al r2 r1 minus 10 PostIndex",
1947 "NegativePostIndex_al_r2_r1_minus_10_PostIndex",
1948 ARRAY_SIZE(kNegativePostIndex),
1949 kNegativePostIndex},
1950 {{al, r7, r4, minus, 95, PostIndex},
1951 "al r7 r4 minus 95 PostIndex",
1952 "NegativePostIndex_al_r7_r4_minus_95_PostIndex",
1953 ARRAY_SIZE(kNegativePostIndex),
1954 kNegativePostIndex},
1955 {{al, r12, r11, minus, 221, PostIndex},
1956 "al r12 r11 minus 221 PostIndex",
1957 "NegativePostIndex_al_r12_r11_minus_221_PostIndex",
1958 ARRAY_SIZE(kNegativePostIndex),
1959 kNegativePostIndex},
1960 {{al, r9, r6, minus, 235, PostIndex},
1961 "al r9 r6 minus 235 PostIndex",
1962 "NegativePostIndex_al_r9_r6_minus_235_PostIndex",
1963 ARRAY_SIZE(kNegativePostIndex),
1964 kNegativePostIndex},
1965 {{al, r3, r0, minus, 144, PostIndex},
1966 "al r3 r0 minus 144 PostIndex",
1967 "NegativePostIndex_al_r3_r0_minus_144_PostIndex",
1968 ARRAY_SIZE(kNegativePostIndex),
1969 kNegativePostIndex},
1970 {{al, r6, r4, minus, 230, PostIndex},
1971 "al r6 r4 minus 230 PostIndex",
1972 "NegativePostIndex_al_r6_r4_minus_230_PostIndex",
1973 ARRAY_SIZE(kNegativePostIndex),
1974 kNegativePostIndex},
1975 {{al, r7, r10, minus, 156, PostIndex},
1976 "al r7 r10 minus 156 PostIndex",
1977 "NegativePostIndex_al_r7_r10_minus_156_PostIndex",
1978 ARRAY_SIZE(kNegativePostIndex),
1979 kNegativePostIndex},
1980 {{al, r14, r10, minus, 232, PostIndex},
1981 "al r14 r10 minus 232 PostIndex",
1982 "NegativePostIndex_al_r14_r10_minus_232_PostIndex",
1983 ARRAY_SIZE(kNegativePostIndex),
1984 kNegativePostIndex},
1985 {{al, r14, r3, minus, 242, PostIndex},
1986 "al r14 r3 minus 242 PostIndex",
1987 "NegativePostIndex_al_r14_r3_minus_242_PostIndex",
1988 ARRAY_SIZE(kNegativePostIndex),
1989 kNegativePostIndex},
1990 {{al, r3, r8, minus, 10, PostIndex},
1991 "al r3 r8 minus 10 PostIndex",
1992 "NegativePostIndex_al_r3_r8_minus_10_PostIndex",
1993 ARRAY_SIZE(kNegativePostIndex),
1994 kNegativePostIndex},
1995 {{al, r4, r7, minus, 37, PostIndex},
1996 "al r4 r7 minus 37 PostIndex",
1997 "NegativePostIndex_al_r4_r7_minus_37_PostIndex",
1998 ARRAY_SIZE(kNegativePostIndex),
1999 kNegativePostIndex},
2000 {{al, r10, r4, minus, 23, PostIndex},
2001 "al r10 r4 minus 23 PostIndex",
2002 "NegativePostIndex_al_r10_r4_minus_23_PostIndex",
2003 ARRAY_SIZE(kNegativePostIndex),
2004 kNegativePostIndex},
2005 {{al, r7, r10, minus, 52, PostIndex},
2006 "al r7 r10 minus 52 PostIndex",
2007 "NegativePostIndex_al_r7_r10_minus_52_PostIndex",
2008 ARRAY_SIZE(kNegativePostIndex),
2009 kNegativePostIndex},
2010 {{al, r0, r7, minus, 59, PostIndex},
2011 "al r0 r7 minus 59 PostIndex",
2012 "NegativePostIndex_al_r0_r7_minus_59_PostIndex",
2013 ARRAY_SIZE(kNegativePostIndex),
2014 kNegativePostIndex},
2015 {{al, r1, r10, minus, 253, PostIndex},
2016 "al r1 r10 minus 253 PostIndex",
2017 "NegativePostIndex_al_r1_r10_minus_253_PostIndex",
2018 ARRAY_SIZE(kNegativePostIndex),
2019 kNegativePostIndex},
2020 {{al, r8, r9, minus, 213, PostIndex},
2021 "al r8 r9 minus 213 PostIndex",
2022 "NegativePostIndex_al_r8_r9_minus_213_PostIndex",
2023 ARRAY_SIZE(kNegativePostIndex),
2024 kNegativePostIndex},
2025 {{al, r3, r0, minus, 22, PostIndex},
2026 "al r3 r0 minus 22 PostIndex",
2027 "NegativePostIndex_al_r3_r0_minus_22_PostIndex",
2028 ARRAY_SIZE(kNegativePostIndex),
2029 kNegativePostIndex},
2030 {{al, r10, r1, minus, 13, PostIndex},
2031 "al r10 r1 minus 13 PostIndex",
2032 "NegativePostIndex_al_r10_r1_minus_13_PostIndex",
2033 ARRAY_SIZE(kNegativePostIndex),
2034 kNegativePostIndex},
2035 {{al, r10, r0, minus, 107, PostIndex},
2036 "al r10 r0 minus 107 PostIndex",
2037 "NegativePostIndex_al_r10_r0_minus_107_PostIndex",
2038 ARRAY_SIZE(kNegativePostIndex),
2039 kNegativePostIndex},
2040 {{al, r9, r6, minus, 6, PostIndex},
2041 "al r9 r6 minus 6 PostIndex",
2042 "NegativePostIndex_al_r9_r6_minus_6_PostIndex",
2043 ARRAY_SIZE(kNegativePostIndex),
2044 kNegativePostIndex},
2045 {{al, r14, r8, minus, 78, PostIndex},
2046 "al r14 r8 minus 78 PostIndex",
2047 "NegativePostIndex_al_r14_r8_minus_78_PostIndex",
2048 ARRAY_SIZE(kNegativePostIndex),
2049 kNegativePostIndex},
2050 {{al, r5, r6, minus, 164, PostIndex},
2051 "al r5 r6 minus 164 PostIndex",
2052 "NegativePostIndex_al_r5_r6_minus_164_PostIndex",
2053 ARRAY_SIZE(kNegativePostIndex),
2054 kNegativePostIndex},
2055 {{al, r9, r7, minus, 155, PostIndex},
2056 "al r9 r7 minus 155 PostIndex",
2057 "NegativePostIndex_al_r9_r7_minus_155_PostIndex",
2058 ARRAY_SIZE(kNegativePostIndex),
2059 kNegativePostIndex},
2060 {{al, r7, r0, minus, 45, PostIndex},
2061 "al r7 r0 minus 45 PostIndex",
2062 "NegativePostIndex_al_r7_r0_minus_45_PostIndex",
2063 ARRAY_SIZE(kNegativePostIndex),
2064 kNegativePostIndex},
2065 {{al, r9, r4, minus, 182, PostIndex},
2066 "al r9 r4 minus 182 PostIndex",
2067 "NegativePostIndex_al_r9_r4_minus_182_PostIndex",
2068 ARRAY_SIZE(kNegativePostIndex),
2069 kNegativePostIndex},
2070 {{al, r14, r12, minus, 238, PostIndex},
2071 "al r14 r12 minus 238 PostIndex",
2072 "NegativePostIndex_al_r14_r12_minus_238_PostIndex",
2073 ARRAY_SIZE(kNegativePostIndex),
2074 kNegativePostIndex},
2075 {{al, r12, r10, minus, 93, PostIndex},
2076 "al r12 r10 minus 93 PostIndex",
2077 "NegativePostIndex_al_r12_r10_minus_93_PostIndex",
2078 ARRAY_SIZE(kNegativePostIndex),
2079 kNegativePostIndex},
2080 {{al, r1, r2, minus, 255, PostIndex},
2081 "al r1 r2 minus 255 PostIndex",
2082 "NegativePostIndex_al_r1_r2_minus_255_PostIndex",
2083 ARRAY_SIZE(kNegativePostIndex),
2084 kNegativePostIndex},
2085 {{al, r11, r6, minus, 65, PostIndex},
2086 "al r11 r6 minus 65 PostIndex",
2087 "NegativePostIndex_al_r11_r6_minus_65_PostIndex",
2088 ARRAY_SIZE(kNegativePostIndex),
2089 kNegativePostIndex},
2090 {{al, r1, r14, minus, 30, PostIndex},
2091 "al r1 r14 minus 30 PostIndex",
2092 "NegativePostIndex_al_r1_r14_minus_30_PostIndex",
2093 ARRAY_SIZE(kNegativePostIndex),
2094 kNegativePostIndex},
2095 {{al, r9, r12, minus, 128, PostIndex},
2096 "al r9 r12 minus 128 PostIndex",
2097 "NegativePostIndex_al_r9_r12_minus_128_PostIndex",
2098 ARRAY_SIZE(kNegativePostIndex),
2099 kNegativePostIndex},
2100 {{al, r1, r2, minus, 2, PostIndex},
2101 "al r1 r2 minus 2 PostIndex",
2102 "NegativePostIndex_al_r1_r2_minus_2_PostIndex",
2103 ARRAY_SIZE(kNegativePostIndex),
2104 kNegativePostIndex},
2105 {{al, r0, r7, minus, 122, PostIndex},
2106 "al r0 r7 minus 122 PostIndex",
2107 "NegativePostIndex_al_r0_r7_minus_122_PostIndex",
2108 ARRAY_SIZE(kNegativePostIndex),
2109 kNegativePostIndex},
2110 {{al, r7, r8, minus, 170, PostIndex},
2111 "al r7 r8 minus 170 PostIndex",
2112 "NegativePostIndex_al_r7_r8_minus_170_PostIndex",
2113 ARRAY_SIZE(kNegativePostIndex),
2114 kNegativePostIndex},
2115 {{al, r14, r7, minus, 242, PostIndex},
2116 "al r14 r7 minus 242 PostIndex",
2117 "NegativePostIndex_al_r14_r7_minus_242_PostIndex",
2118 ARRAY_SIZE(kNegativePostIndex),
2119 kNegativePostIndex},
2120 {{al, r4, r0, minus, 211, PostIndex},
2121 "al r4 r0 minus 211 PostIndex",
2122 "NegativePostIndex_al_r4_r0_minus_211_PostIndex",
2123 ARRAY_SIZE(kNegativePostIndex),
2124 kNegativePostIndex},
2125 {{al, r2, r8, minus, 122, PostIndex},
2126 "al r2 r8 minus 122 PostIndex",
2127 "NegativePostIndex_al_r2_r8_minus_122_PostIndex",
2128 ARRAY_SIZE(kNegativePostIndex),
2129 kNegativePostIndex},
2130 {{al, r12, r5, minus, 40, PostIndex},
2131 "al r12 r5 minus 40 PostIndex",
2132 "NegativePostIndex_al_r12_r5_minus_40_PostIndex",
2133 ARRAY_SIZE(kNegativePostIndex),
2134 kNegativePostIndex},
2135 {{al, r4, r10, minus, 138, PostIndex},
2136 "al r4 r10 minus 138 PostIndex",
2137 "NegativePostIndex_al_r4_r10_minus_138_PostIndex",
2138 ARRAY_SIZE(kNegativePostIndex),
2139 kNegativePostIndex},
2140 {{al, r2, r7, minus, 80, PostIndex},
2141 "al r2 r7 minus 80 PostIndex",
2142 "NegativePostIndex_al_r2_r7_minus_80_PostIndex",
2143 ARRAY_SIZE(kNegativePostIndex),
2144 kNegativePostIndex},
2145 {{al, r6, r12, minus, 150, PostIndex},
2146 "al r6 r12 minus 150 PostIndex",
2147 "NegativePostIndex_al_r6_r12_minus_150_PostIndex",
2148 ARRAY_SIZE(kNegativePostIndex),
2149 kNegativePostIndex},
2150 {{al, r4, r1, minus, 167, PostIndex},
2151 "al r4 r1 minus 167 PostIndex",
2152 "NegativePostIndex_al_r4_r1_minus_167_PostIndex",
2153 ARRAY_SIZE(kNegativePostIndex),
2154 kNegativePostIndex},
2155 {{al, r6, r2, minus, 67, PostIndex},
2156 "al r6 r2 minus 67 PostIndex",
2157 "NegativePostIndex_al_r6_r2_minus_67_PostIndex",
2158 ARRAY_SIZE(kNegativePostIndex),
2159 kNegativePostIndex},
2160 {{al, r12, r5, minus, 180, PostIndex},
2161 "al r12 r5 minus 180 PostIndex",
2162 "NegativePostIndex_al_r12_r5_minus_180_PostIndex",
2163 ARRAY_SIZE(kNegativePostIndex),
2164 kNegativePostIndex},
2165 {{al, r14, r7, minus, 115, PostIndex},
2166 "al r14 r7 minus 115 PostIndex",
2167 "NegativePostIndex_al_r14_r7_minus_115_PostIndex",
2168 ARRAY_SIZE(kNegativePostIndex),
2169 kNegativePostIndex},
2170 {{al, r2, r5, minus, 238, PostIndex},
2171 "al r2 r5 minus 238 PostIndex",
2172 "NegativePostIndex_al_r2_r5_minus_238_PostIndex",
2173 ARRAY_SIZE(kNegativePostIndex),
2174 kNegativePostIndex},
2175 {{al, r14, r6, minus, 34, PostIndex},
2176 "al r14 r6 minus 34 PostIndex",
2177 "NegativePostIndex_al_r14_r6_minus_34_PostIndex",
2178 ARRAY_SIZE(kNegativePostIndex),
2179 kNegativePostIndex},
2180 {{al, r4, r12, minus, 74, PostIndex},
2181 "al r4 r12 minus 74 PostIndex",
2182 "NegativePostIndex_al_r4_r12_minus_74_PostIndex",
2183 ARRAY_SIZE(kNegativePostIndex),
2184 kNegativePostIndex},
2185 {{al, r12, r11, minus, 197, PostIndex},
2186 "al r12 r11 minus 197 PostIndex",
2187 "NegativePostIndex_al_r12_r11_minus_197_PostIndex",
2188 ARRAY_SIZE(kNegativePostIndex),
2189 kNegativePostIndex},
2190 {{al, r8, r12, minus, 53, PostIndex},
2191 "al r8 r12 minus 53 PostIndex",
2192 "NegativePostIndex_al_r8_r12_minus_53_PostIndex",
2193 ARRAY_SIZE(kNegativePostIndex),
2194 kNegativePostIndex},
2195 {{al, r4, r1, minus, 189, PostIndex},
2196 "al r4 r1 minus 189 PostIndex",
2197 "NegativePostIndex_al_r4_r1_minus_189_PostIndex",
2198 ARRAY_SIZE(kNegativePostIndex),
2199 kNegativePostIndex},
2200 {{al, r1, r2, minus, 101, PostIndex},
2201 "al r1 r2 minus 101 PostIndex",
2202 "NegativePostIndex_al_r1_r2_minus_101_PostIndex",
2203 ARRAY_SIZE(kNegativePostIndex),
2204 kNegativePostIndex},
2205 {{al, r8, r2, minus, 152, PostIndex},
2206 "al r8 r2 minus 152 PostIndex",
2207 "NegativePostIndex_al_r8_r2_minus_152_PostIndex",
2208 ARRAY_SIZE(kNegativePostIndex),
2209 kNegativePostIndex},
2210 {{al, r9, r0, minus, 238, PostIndex},
2211 "al r9 r0 minus 238 PostIndex",
2212 "NegativePostIndex_al_r9_r0_minus_238_PostIndex",
2213 ARRAY_SIZE(kNegativePostIndex),
2214 kNegativePostIndex},
2215 {{al, r1, r8, minus, 34, PostIndex},
2216 "al r1 r8 minus 34 PostIndex",
2217 "NegativePostIndex_al_r1_r8_minus_34_PostIndex",
2218 ARRAY_SIZE(kNegativePostIndex),
2219 kNegativePostIndex},
2220 {{al, r8, r0, minus, 216, PostIndex},
2221 "al r8 r0 minus 216 PostIndex",
2222 "NegativePostIndex_al_r8_r0_minus_216_PostIndex",
2223 ARRAY_SIZE(kNegativePostIndex),
2224 kNegativePostIndex},
2225 {{al, r4, r7, minus, 235, PostIndex},
2226 "al r4 r7 minus 235 PostIndex",
2227 "NegativePostIndex_al_r4_r7_minus_235_PostIndex",
2228 ARRAY_SIZE(kNegativePostIndex),
2229 kNegativePostIndex},
2230 {{al, r5, r14, minus, 235, PostIndex},
2231 "al r5 r14 minus 235 PostIndex",
2232 "NegativePostIndex_al_r5_r14_minus_235_PostIndex",
2233 ARRAY_SIZE(kNegativePostIndex),
2234 kNegativePostIndex},
2235 {{al, r11, r4, minus, 230, PostIndex},
2236 "al r11 r4 minus 230 PostIndex",
2237 "NegativePostIndex_al_r11_r4_minus_230_PostIndex",
2238 ARRAY_SIZE(kNegativePostIndex),
2239 kNegativePostIndex},
2240 {{al, r7, r2, minus, 52, PostIndex},
2241 "al r7 r2 minus 52 PostIndex",
2242 "NegativePostIndex_al_r7_r2_minus_52_PostIndex",
2243 ARRAY_SIZE(kNegativePostIndex),
2244 kNegativePostIndex},
2245 {{al, r1, r11, minus, 229, PostIndex},
2246 "al r1 r11 minus 229 PostIndex",
2247 "NegativePostIndex_al_r1_r11_minus_229_PostIndex",
2248 ARRAY_SIZE(kNegativePostIndex),
2249 kNegativePostIndex},
2250 {{al, r6, r5, minus, 62, PostIndex},
2251 "al r6 r5 minus 62 PostIndex",
2252 "NegativePostIndex_al_r6_r5_minus_62_PostIndex",
2253 ARRAY_SIZE(kNegativePostIndex),
2254 kNegativePostIndex},
2255 {{al, r9, r7, minus, 247, PostIndex},
2256 "al r9 r7 minus 247 PostIndex",
2257 "NegativePostIndex_al_r9_r7_minus_247_PostIndex",
2258 ARRAY_SIZE(kNegativePostIndex),
2259 kNegativePostIndex},
2260 {{al, r6, r0, minus, 121, PostIndex},
2261 "al r6 r0 minus 121 PostIndex",
2262 "NegativePostIndex_al_r6_r0_minus_121_PostIndex",
2263 ARRAY_SIZE(kNegativePostIndex),
2264 kNegativePostIndex},
2265 {{al, r12, r3, minus, 104, PostIndex},
2266 "al r12 r3 minus 104 PostIndex",
2267 "NegativePostIndex_al_r12_r3_minus_104_PostIndex",
2268 ARRAY_SIZE(kNegativePostIndex),
2269 kNegativePostIndex},
2270 {{al, r1, r3, minus, 169, PostIndex},
2271 "al r1 r3 minus 169 PostIndex",
2272 "NegativePostIndex_al_r1_r3_minus_169_PostIndex",
2273 ARRAY_SIZE(kNegativePostIndex),
2274 kNegativePostIndex},
2275 {{al, r3, r1, minus, 240, PostIndex},
2276 "al r3 r1 minus 240 PostIndex",
2277 "NegativePostIndex_al_r3_r1_minus_240_PostIndex",
2278 ARRAY_SIZE(kNegativePostIndex),
2279 kNegativePostIndex},
2280 {{al, r2, r6, minus, 173, PostIndex},
2281 "al r2 r6 minus 173 PostIndex",
2282 "NegativePostIndex_al_r2_r6_minus_173_PostIndex",
2283 ARRAY_SIZE(kNegativePostIndex),
2284 kNegativePostIndex},
2285 {{al, r12, r8, minus, 58, PostIndex},
2286 "al r12 r8 minus 58 PostIndex",
2287 "NegativePostIndex_al_r12_r8_minus_58_PostIndex",
2288 ARRAY_SIZE(kNegativePostIndex),
2289 kNegativePostIndex},
2290 {{al, r0, r3, minus, 134, PostIndex},
2291 "al r0 r3 minus 134 PostIndex",
2292 "NegativePostIndex_al_r0_r3_minus_134_PostIndex",
2293 ARRAY_SIZE(kNegativePostIndex),
2294 kNegativePostIndex},
2295 {{al, r6, r2, minus, 75, PostIndex},
2296 "al r6 r2 minus 75 PostIndex",
2297 "NegativePostIndex_al_r6_r2_minus_75_PostIndex",
2298 ARRAY_SIZE(kNegativePostIndex),
2299 kNegativePostIndex},
2300 {{al, r5, r0, minus, 53, PostIndex},
2301 "al r5 r0 minus 53 PostIndex",
2302 "NegativePostIndex_al_r5_r0_minus_53_PostIndex",
2303 ARRAY_SIZE(kNegativePostIndex),
2304 kNegativePostIndex},
2305 {{al, r10, r12, minus, 160, PostIndex},
2306 "al r10 r12 minus 160 PostIndex",
2307 "NegativePostIndex_al_r10_r12_minus_160_PostIndex",
2308 ARRAY_SIZE(kNegativePostIndex),
2309 kNegativePostIndex},
2310 {{al, r8, r9, minus, 55, PostIndex},
2311 "al r8 r9 minus 55 PostIndex",
2312 "NegativePostIndex_al_r8_r9_minus_55_PostIndex",
2313 ARRAY_SIZE(kNegativePostIndex),
2314 kNegativePostIndex},
2315 {{al, r3, r7, minus, 175, PostIndex},
2316 "al r3 r7 minus 175 PostIndex",
2317 "NegativePostIndex_al_r3_r7_minus_175_PostIndex",
2318 ARRAY_SIZE(kNegativePostIndex),
2319 kNegativePostIndex},
2320 {{al, r12, r4, minus, 179, PostIndex},
2321 "al r12 r4 minus 179 PostIndex",
2322 "NegativePostIndex_al_r12_r4_minus_179_PostIndex",
2323 ARRAY_SIZE(kNegativePostIndex),
2324 kNegativePostIndex},
2325 {{al, r7, r14, minus, 16, PostIndex},
2326 "al r7 r14 minus 16 PostIndex",
2327 "NegativePostIndex_al_r7_r14_minus_16_PostIndex",
2328 ARRAY_SIZE(kNegativePostIndex),
2329 kNegativePostIndex},
2330 {{al, r14, r9, plus, 41, PreIndex},
2331 "al r14 r9 plus 41 PreIndex",
2332 "PositivePreIndex_al_r14_r9_plus_41_PreIndex",
2333 ARRAY_SIZE(kPositivePreIndex),
2334 kPositivePreIndex},
2335 {{al, r7, r9, plus, 78, PreIndex},
2336 "al r7 r9 plus 78 PreIndex",
2337 "PositivePreIndex_al_r7_r9_plus_78_PreIndex",
2338 ARRAY_SIZE(kPositivePreIndex),
2339 kPositivePreIndex},
2340 {{al, r6, r3, plus, 255, PreIndex},
2341 "al r6 r3 plus 255 PreIndex",
2342 "PositivePreIndex_al_r6_r3_plus_255_PreIndex",
2343 ARRAY_SIZE(kPositivePreIndex),
2344 kPositivePreIndex},
2345 {{al, r11, r8, plus, 139, PreIndex},
2346 "al r11 r8 plus 139 PreIndex",
2347 "PositivePreIndex_al_r11_r8_plus_139_PreIndex",
2348 ARRAY_SIZE(kPositivePreIndex),
2349 kPositivePreIndex},
2350 {{al, r6, r3, plus, 170, PreIndex},
2351 "al r6 r3 plus 170 PreIndex",
2352 "PositivePreIndex_al_r6_r3_plus_170_PreIndex",
2353 ARRAY_SIZE(kPositivePreIndex),
2354 kPositivePreIndex},
2355 {{al, r6, r4, plus, 221, PreIndex},
2356 "al r6 r4 plus 221 PreIndex",
2357 "PositivePreIndex_al_r6_r4_plus_221_PreIndex",
2358 ARRAY_SIZE(kPositivePreIndex),
2359 kPositivePreIndex},
2360 {{al, r7, r8, plus, 229, PreIndex},
2361 "al r7 r8 plus 229 PreIndex",
2362 "PositivePreIndex_al_r7_r8_plus_229_PreIndex",
2363 ARRAY_SIZE(kPositivePreIndex),
2364 kPositivePreIndex},
2365 {{al, r7, r4, plus, 18, PreIndex},
2366 "al r7 r4 plus 18 PreIndex",
2367 "PositivePreIndex_al_r7_r4_plus_18_PreIndex",
2368 ARRAY_SIZE(kPositivePreIndex),
2369 kPositivePreIndex},
2370 {{al, r3, r8, plus, 157, PreIndex},
2371 "al r3 r8 plus 157 PreIndex",
2372 "PositivePreIndex_al_r3_r8_plus_157_PreIndex",
2373 ARRAY_SIZE(kPositivePreIndex),
2374 kPositivePreIndex},
2375 {{al, r8, r5, plus, 82, PreIndex},
2376 "al r8 r5 plus 82 PreIndex",
2377 "PositivePreIndex_al_r8_r5_plus_82_PreIndex",
2378 ARRAY_SIZE(kPositivePreIndex),
2379 kPositivePreIndex},
2380 {{al, r5, r10, plus, 63, PreIndex},
2381 "al r5 r10 plus 63 PreIndex",
2382 "PositivePreIndex_al_r5_r10_plus_63_PreIndex",
2383 ARRAY_SIZE(kPositivePreIndex),
2384 kPositivePreIndex},
2385 {{al, r1, r11, plus, 179, PreIndex},
2386 "al r1 r11 plus 179 PreIndex",
2387 "PositivePreIndex_al_r1_r11_plus_179_PreIndex",
2388 ARRAY_SIZE(kPositivePreIndex),
2389 kPositivePreIndex},
2390 {{al, r12, r11, plus, 124, PreIndex},
2391 "al r12 r11 plus 124 PreIndex",
2392 "PositivePreIndex_al_r12_r11_plus_124_PreIndex",
2393 ARRAY_SIZE(kPositivePreIndex),
2394 kPositivePreIndex},
2395 {{al, r9, r12, plus, 102, PreIndex},
2396 "al r9 r12 plus 102 PreIndex",
2397 "PositivePreIndex_al_r9_r12_plus_102_PreIndex",
2398 ARRAY_SIZE(kPositivePreIndex),
2399 kPositivePreIndex},
2400 {{al, r12, r1, plus, 157, PreIndex},
2401 "al r12 r1 plus 157 PreIndex",
2402 "PositivePreIndex_al_r12_r1_plus_157_PreIndex",
2403 ARRAY_SIZE(kPositivePreIndex),
2404 kPositivePreIndex},
2405 {{al, r6, r2, plus, 10, PreIndex},
2406 "al r6 r2 plus 10 PreIndex",
2407 "PositivePreIndex_al_r6_r2_plus_10_PreIndex",
2408 ARRAY_SIZE(kPositivePreIndex),
2409 kPositivePreIndex},
2410 {{al, r9, r4, plus, 100, PreIndex},
2411 "al r9 r4 plus 100 PreIndex",
2412 "PositivePreIndex_al_r9_r4_plus_100_PreIndex",
2413 ARRAY_SIZE(kPositivePreIndex),
2414 kPositivePreIndex},
2415 {{al, r2, r7, plus, 62, PreIndex},
2416 "al r2 r7 plus 62 PreIndex",
2417 "PositivePreIndex_al_r2_r7_plus_62_PreIndex",
2418 ARRAY_SIZE(kPositivePreIndex),
2419 kPositivePreIndex},
2420 {{al, r9, r12, plus, 191, PreIndex},
2421 "al r9 r12 plus 191 PreIndex",
2422 "PositivePreIndex_al_r9_r12_plus_191_PreIndex",
2423 ARRAY_SIZE(kPositivePreIndex),
2424 kPositivePreIndex},
2425 {{al, r2, r7, plus, 241, PreIndex},
2426 "al r2 r7 plus 241 PreIndex",
2427 "PositivePreIndex_al_r2_r7_plus_241_PreIndex",
2428 ARRAY_SIZE(kPositivePreIndex),
2429 kPositivePreIndex},
2430 {{al, r2, r12, plus, 220, PreIndex},
2431 "al r2 r12 plus 220 PreIndex",
2432 "PositivePreIndex_al_r2_r12_plus_220_PreIndex",
2433 ARRAY_SIZE(kPositivePreIndex),
2434 kPositivePreIndex},
2435 {{al, r0, r12, plus, 98, PreIndex},
2436 "al r0 r12 plus 98 PreIndex",
2437 "PositivePreIndex_al_r0_r12_plus_98_PreIndex",
2438 ARRAY_SIZE(kPositivePreIndex),
2439 kPositivePreIndex},
2440 {{al, r11, r4, plus, 218, PreIndex},
2441 "al r11 r4 plus 218 PreIndex",
2442 "PositivePreIndex_al_r11_r4_plus_218_PreIndex",
2443 ARRAY_SIZE(kPositivePreIndex),
2444 kPositivePreIndex},
2445 {{al, r11, r10, plus, 211, PreIndex},
2446 "al r11 r10 plus 211 PreIndex",
2447 "PositivePreIndex_al_r11_r10_plus_211_PreIndex",
2448 ARRAY_SIZE(kPositivePreIndex),
2449 kPositivePreIndex},
2450 {{al, r4, r1, plus, 160, PreIndex},
2451 "al r4 r1 plus 160 PreIndex",
2452 "PositivePreIndex_al_r4_r1_plus_160_PreIndex",
2453 ARRAY_SIZE(kPositivePreIndex),
2454 kPositivePreIndex},
2455 {{al, r12, r0, plus, 107, PreIndex},
2456 "al r12 r0 plus 107 PreIndex",
2457 "PositivePreIndex_al_r12_r0_plus_107_PreIndex",
2458 ARRAY_SIZE(kPositivePreIndex),
2459 kPositivePreIndex},
2460 {{al, r9, r4, plus, 239, PreIndex},
2461 "al r9 r4 plus 239 PreIndex",
2462 "PositivePreIndex_al_r9_r4_plus_239_PreIndex",
2463 ARRAY_SIZE(kPositivePreIndex),
2464 kPositivePreIndex},
2465 {{al, r2, r14, plus, 54, PreIndex},
2466 "al r2 r14 plus 54 PreIndex",
2467 "PositivePreIndex_al_r2_r14_plus_54_PreIndex",
2468 ARRAY_SIZE(kPositivePreIndex),
2469 kPositivePreIndex},
2470 {{al, r9, r8, plus, 89, PreIndex},
2471 "al r9 r8 plus 89 PreIndex",
2472 "PositivePreIndex_al_r9_r8_plus_89_PreIndex",
2473 ARRAY_SIZE(kPositivePreIndex),
2474 kPositivePreIndex},
2475 {{al, r8, r7, plus, 162, PreIndex},
2476 "al r8 r7 plus 162 PreIndex",
2477 "PositivePreIndex_al_r8_r7_plus_162_PreIndex",
2478 ARRAY_SIZE(kPositivePreIndex),
2479 kPositivePreIndex},
2480 {{al, r11, r0, plus, 91, PreIndex},
2481 "al r11 r0 plus 91 PreIndex",
2482 "PositivePreIndex_al_r11_r0_plus_91_PreIndex",
2483 ARRAY_SIZE(kPositivePreIndex),
2484 kPositivePreIndex},
2485 {{al, r6, r5, plus, 62, PreIndex},
2486 "al r6 r5 plus 62 PreIndex",
2487 "PositivePreIndex_al_r6_r5_plus_62_PreIndex",
2488 ARRAY_SIZE(kPositivePreIndex),
2489 kPositivePreIndex},
2490 {{al, r7, r12, plus, 140, PreIndex},
2491 "al r7 r12 plus 140 PreIndex",
2492 "PositivePreIndex_al_r7_r12_plus_140_PreIndex",
2493 ARRAY_SIZE(kPositivePreIndex),
2494 kPositivePreIndex},
2495 {{al, r11, r1, plus, 38, PreIndex},
2496 "al r11 r1 plus 38 PreIndex",
2497 "PositivePreIndex_al_r11_r1_plus_38_PreIndex",
2498 ARRAY_SIZE(kPositivePreIndex),
2499 kPositivePreIndex},
2500 {{al, r11, r12, plus, 185, PreIndex},
2501 "al r11 r12 plus 185 PreIndex",
2502 "PositivePreIndex_al_r11_r12_plus_185_PreIndex",
2503 ARRAY_SIZE(kPositivePreIndex),
2504 kPositivePreIndex},
2505 {{al, r11, r7, plus, 27, PreIndex},
2506 "al r11 r7 plus 27 PreIndex",
2507 "PositivePreIndex_al_r11_r7_plus_27_PreIndex",
2508 ARRAY_SIZE(kPositivePreIndex),
2509 kPositivePreIndex},
2510 {{al, r2, r6, plus, 81, PreIndex},
2511 "al r2 r6 plus 81 PreIndex",
2512 "PositivePreIndex_al_r2_r6_plus_81_PreIndex",
2513 ARRAY_SIZE(kPositivePreIndex),
2514 kPositivePreIndex},
2515 {{al, r11, r8, plus, 60, PreIndex},
2516 "al r11 r8 plus 60 PreIndex",
2517 "PositivePreIndex_al_r11_r8_plus_60_PreIndex",
2518 ARRAY_SIZE(kPositivePreIndex),
2519 kPositivePreIndex},
2520 {{al, r6, r9, plus, 39, PreIndex},
2521 "al r6 r9 plus 39 PreIndex",
2522 "PositivePreIndex_al_r6_r9_plus_39_PreIndex",
2523 ARRAY_SIZE(kPositivePreIndex),
2524 kPositivePreIndex},
2525 {{al, r12, r14, plus, 46, PreIndex},
2526 "al r12 r14 plus 46 PreIndex",
2527 "PositivePreIndex_al_r12_r14_plus_46_PreIndex",
2528 ARRAY_SIZE(kPositivePreIndex),
2529 kPositivePreIndex},
2530 {{al, r3, r9, plus, 188, PreIndex},
2531 "al r3 r9 plus 188 PreIndex",
2532 "PositivePreIndex_al_r3_r9_plus_188_PreIndex",
2533 ARRAY_SIZE(kPositivePreIndex),
2534 kPositivePreIndex},
2535 {{al, r4, r12, plus, 58, PreIndex},
2536 "al r4 r12 plus 58 PreIndex",
2537 "PositivePreIndex_al_r4_r12_plus_58_PreIndex",
2538 ARRAY_SIZE(kPositivePreIndex),
2539 kPositivePreIndex},
2540 {{al, r4, r5, plus, 220, PreIndex},
2541 "al r4 r5 plus 220 PreIndex",
2542 "PositivePreIndex_al_r4_r5_plus_220_PreIndex",
2543 ARRAY_SIZE(kPositivePreIndex),
2544 kPositivePreIndex},
2545 {{al, r4, r10, plus, 249, PreIndex},
2546 "al r4 r10 plus 249 PreIndex",
2547 "PositivePreIndex_al_r4_r10_plus_249_PreIndex",
2548 ARRAY_SIZE(kPositivePreIndex),
2549 kPositivePreIndex},
2550 {{al, r9, r0, plus, 23, PreIndex},
2551 "al r9 r0 plus 23 PreIndex",
2552 "PositivePreIndex_al_r9_r0_plus_23_PreIndex",
2553 ARRAY_SIZE(kPositivePreIndex),
2554 kPositivePreIndex},
2555 {{al, r10, r11, plus, 190, PreIndex},
2556 "al r10 r11 plus 190 PreIndex",
2557 "PositivePreIndex_al_r10_r11_plus_190_PreIndex",
2558 ARRAY_SIZE(kPositivePreIndex),
2559 kPositivePreIndex},
2560 {{al, r4, r11, plus, 33, PreIndex},
2561 "al r4 r11 plus 33 PreIndex",
2562 "PositivePreIndex_al_r4_r11_plus_33_PreIndex",
2563 ARRAY_SIZE(kPositivePreIndex),
2564 kPositivePreIndex},
2565 {{al, r7, r3, plus, 163, PreIndex},
2566 "al r7 r3 plus 163 PreIndex",
2567 "PositivePreIndex_al_r7_r3_plus_163_PreIndex",
2568 ARRAY_SIZE(kPositivePreIndex),
2569 kPositivePreIndex},
2570 {{al, r10, r9, plus, 147, PreIndex},
2571 "al r10 r9 plus 147 PreIndex",
2572 "PositivePreIndex_al_r10_r9_plus_147_PreIndex",
2573 ARRAY_SIZE(kPositivePreIndex),
2574 kPositivePreIndex},
2575 {{al, r8, r10, plus, 8, PreIndex},
2576 "al r8 r10 plus 8 PreIndex",
2577 "PositivePreIndex_al_r8_r10_plus_8_PreIndex",
2578 ARRAY_SIZE(kPositivePreIndex),
2579 kPositivePreIndex},
2580 {{al, r0, r10, plus, 0, PreIndex},
2581 "al r0 r10 plus 0 PreIndex",
2582 "PositivePreIndex_al_r0_r10_plus_0_PreIndex",
2583 ARRAY_SIZE(kPositivePreIndex),
2584 kPositivePreIndex},
2585 {{al, r5, r7, plus, 83, PreIndex},
2586 "al r5 r7 plus 83 PreIndex",
2587 "PositivePreIndex_al_r5_r7_plus_83_PreIndex",
2588 ARRAY_SIZE(kPositivePreIndex),
2589 kPositivePreIndex},
2590 {{al, r3, r9, plus, 233, PreIndex},
2591 "al r3 r9 plus 233 PreIndex",
2592 "PositivePreIndex_al_r3_r9_plus_233_PreIndex",
2593 ARRAY_SIZE(kPositivePreIndex),
2594 kPositivePreIndex},
2595 {{al, r11, r5, plus, 14, PreIndex},
2596 "al r11 r5 plus 14 PreIndex",
2597 "PositivePreIndex_al_r11_r5_plus_14_PreIndex",
2598 ARRAY_SIZE(kPositivePreIndex),
2599 kPositivePreIndex},
2600 {{al, r11, r12, plus, 21, PreIndex},
2601 "al r11 r12 plus 21 PreIndex",
2602 "PositivePreIndex_al_r11_r12_plus_21_PreIndex",
2603 ARRAY_SIZE(kPositivePreIndex),
2604 kPositivePreIndex},
2605 {{al, r6, r2, plus, 117, PreIndex},
2606 "al r6 r2 plus 117 PreIndex",
2607 "PositivePreIndex_al_r6_r2_plus_117_PreIndex",
2608 ARRAY_SIZE(kPositivePreIndex),
2609 kPositivePreIndex},
2610 {{al, r10, r0, plus, 0, PreIndex},
2611 "al r10 r0 plus 0 PreIndex",
2612 "PositivePreIndex_al_r10_r0_plus_0_PreIndex",
2613 ARRAY_SIZE(kPositivePreIndex),
2614 kPositivePreIndex},
2615 {{al, r4, r12, plus, 109, PreIndex},
2616 "al r4 r12 plus 109 PreIndex",
2617 "PositivePreIndex_al_r4_r12_plus_109_PreIndex",
2618 ARRAY_SIZE(kPositivePreIndex),
2619 kPositivePreIndex},
2620 {{al, r3, r4, plus, 212, PreIndex},
2621 "al r3 r4 plus 212 PreIndex",
2622 "PositivePreIndex_al_r3_r4_plus_212_PreIndex",
2623 ARRAY_SIZE(kPositivePreIndex),
2624 kPositivePreIndex},
2625 {{al, r9, r4, plus, 152, PreIndex},
2626 "al r9 r4 plus 152 PreIndex",
2627 "PositivePreIndex_al_r9_r4_plus_152_PreIndex",
2628 ARRAY_SIZE(kPositivePreIndex),
2629 kPositivePreIndex},
2630 {{al, r0, r12, plus, 89, PreIndex},
2631 "al r0 r12 plus 89 PreIndex",
2632 "PositivePreIndex_al_r0_r12_plus_89_PreIndex",
2633 ARRAY_SIZE(kPositivePreIndex),
2634 kPositivePreIndex},
2635 {{al, r3, r0, plus, 184, PreIndex},
2636 "al r3 r0 plus 184 PreIndex",
2637 "PositivePreIndex_al_r3_r0_plus_184_PreIndex",
2638 ARRAY_SIZE(kPositivePreIndex),
2639 kPositivePreIndex},
2640 {{al, r4, r12, plus, 168, PreIndex},
2641 "al r4 r12 plus 168 PreIndex",
2642 "PositivePreIndex_al_r4_r12_plus_168_PreIndex",
2643 ARRAY_SIZE(kPositivePreIndex),
2644 kPositivePreIndex},
2645 {{al, r7, r12, plus, 236, PreIndex},
2646 "al r7 r12 plus 236 PreIndex",
2647 "PositivePreIndex_al_r7_r12_plus_236_PreIndex",
2648 ARRAY_SIZE(kPositivePreIndex),
2649 kPositivePreIndex},
2650 {{al, r1, r5, plus, 98, PreIndex},
2651 "al r1 r5 plus 98 PreIndex",
2652 "PositivePreIndex_al_r1_r5_plus_98_PreIndex",
2653 ARRAY_SIZE(kPositivePreIndex),
2654 kPositivePreIndex},
2655 {{al, r3, r11, plus, 213, PreIndex},
2656 "al r3 r11 plus 213 PreIndex",
2657 "PositivePreIndex_al_r3_r11_plus_213_PreIndex",
2658 ARRAY_SIZE(kPositivePreIndex),
2659 kPositivePreIndex},
2660 {{al, r14, r6, plus, 123, PreIndex},
2661 "al r14 r6 plus 123 PreIndex",
2662 "PositivePreIndex_al_r14_r6_plus_123_PreIndex",
2663 ARRAY_SIZE(kPositivePreIndex),
2664 kPositivePreIndex},
2665 {{al, r10, r7, plus, 211, PreIndex},
2666 "al r10 r7 plus 211 PreIndex",
2667 "PositivePreIndex_al_r10_r7_plus_211_PreIndex",
2668 ARRAY_SIZE(kPositivePreIndex),
2669 kPositivePreIndex},
2670 {{al, r6, r8, plus, 11, PreIndex},
2671 "al r6 r8 plus 11 PreIndex",
2672 "PositivePreIndex_al_r6_r8_plus_11_PreIndex",
2673 ARRAY_SIZE(kPositivePreIndex),
2674 kPositivePreIndex},
2675 {{al, r3, r1, plus, 35, PreIndex},
2676 "al r3 r1 plus 35 PreIndex",
2677 "PositivePreIndex_al_r3_r1_plus_35_PreIndex",
2678 ARRAY_SIZE(kPositivePreIndex),
2679 kPositivePreIndex},
2680 {{al, r14, r0, plus, 248, PreIndex},
2681 "al r14 r0 plus 248 PreIndex",
2682 "PositivePreIndex_al_r14_r0_plus_248_PreIndex",
2683 ARRAY_SIZE(kPositivePreIndex),
2684 kPositivePreIndex},
2685 {{al, r9, r4, plus, 103, PreIndex},
2686 "al r9 r4 plus 103 PreIndex",
2687 "PositivePreIndex_al_r9_r4_plus_103_PreIndex",
2688 ARRAY_SIZE(kPositivePreIndex),
2689 kPositivePreIndex},
2690 {{al, r2, r1, plus, 6, PreIndex},
2691 "al r2 r1 plus 6 PreIndex",
2692 "PositivePreIndex_al_r2_r1_plus_6_PreIndex",
2693 ARRAY_SIZE(kPositivePreIndex),
2694 kPositivePreIndex},
2695 {{al, r14, r1, plus, 33, PreIndex},
2696 "al r14 r1 plus 33 PreIndex",
2697 "PositivePreIndex_al_r14_r1_plus_33_PreIndex",
2698 ARRAY_SIZE(kPositivePreIndex),
2699 kPositivePreIndex},
2700 {{al, r4, r3, plus, 206, PreIndex},
2701 "al r4 r3 plus 206 PreIndex",
2702 "PositivePreIndex_al_r4_r3_plus_206_PreIndex",
2703 ARRAY_SIZE(kPositivePreIndex),
2704 kPositivePreIndex},
2705 {{al, r5, r14, plus, 201, PreIndex},
2706 "al r5 r14 plus 201 PreIndex",
2707 "PositivePreIndex_al_r5_r14_plus_201_PreIndex",
2708 ARRAY_SIZE(kPositivePreIndex),
2709 kPositivePreIndex},
2710 {{al, r10, r5, plus, 86, PreIndex},
2711 "al r10 r5 plus 86 PreIndex",
2712 "PositivePreIndex_al_r10_r5_plus_86_PreIndex",
2713 ARRAY_SIZE(kPositivePreIndex),
2714 kPositivePreIndex},
2715 {{al, r6, r8, plus, 160, PreIndex},
2716 "al r6 r8 plus 160 PreIndex",
2717 "PositivePreIndex_al_r6_r8_plus_160_PreIndex",
2718 ARRAY_SIZE(kPositivePreIndex),
2719 kPositivePreIndex},
2720 {{al, r12, r5, plus, 81, PreIndex},
2721 "al r12 r5 plus 81 PreIndex",
2722 "PositivePreIndex_al_r12_r5_plus_81_PreIndex",
2723 ARRAY_SIZE(kPositivePreIndex),
2724 kPositivePreIndex},
2725 {{al, r3, r14, plus, 184, PreIndex},
2726 "al r3 r14 plus 184 PreIndex",
2727 "PositivePreIndex_al_r3_r14_plus_184_PreIndex",
2728 ARRAY_SIZE(kPositivePreIndex),
2729 kPositivePreIndex},
2730 {{al, r9, r11, plus, 95, PreIndex},
2731 "al r9 r11 plus 95 PreIndex",
2732 "PositivePreIndex_al_r9_r11_plus_95_PreIndex",
2733 ARRAY_SIZE(kPositivePreIndex),
2734 kPositivePreIndex},
2735 {{al, r2, r9, plus, 227, PreIndex},
2736 "al r2 r9 plus 227 PreIndex",
2737 "PositivePreIndex_al_r2_r9_plus_227_PreIndex",
2738 ARRAY_SIZE(kPositivePreIndex),
2739 kPositivePreIndex},
2740 {{al, r2, r7, plus, 103, PreIndex},
2741 "al r2 r7 plus 103 PreIndex",
2742 "PositivePreIndex_al_r2_r7_plus_103_PreIndex",
2743 ARRAY_SIZE(kPositivePreIndex),
2744 kPositivePreIndex},
2745 {{al, r5, r1, plus, 72, PreIndex},
2746 "al r5 r1 plus 72 PreIndex",
2747 "PositivePreIndex_al_r5_r1_plus_72_PreIndex",
2748 ARRAY_SIZE(kPositivePreIndex),
2749 kPositivePreIndex},
2750 {{al, r4, r10, plus, 82, PreIndex},
2751 "al r4 r10 plus 82 PreIndex",
2752 "PositivePreIndex_al_r4_r10_plus_82_PreIndex",
2753 ARRAY_SIZE(kPositivePreIndex),
2754 kPositivePreIndex},
2755 {{al, r7, r0, plus, 46, PreIndex},
2756 "al r7 r0 plus 46 PreIndex",
2757 "PositivePreIndex_al_r7_r0_plus_46_PreIndex",
2758 ARRAY_SIZE(kPositivePreIndex),
2759 kPositivePreIndex},
2760 {{al, r7, r14, plus, 24, PreIndex},
2761 "al r7 r14 plus 24 PreIndex",
2762 "PositivePreIndex_al_r7_r14_plus_24_PreIndex",
2763 ARRAY_SIZE(kPositivePreIndex),
2764 kPositivePreIndex},
2765 {{al, r9, r1, plus, 2, PreIndex},
2766 "al r9 r1 plus 2 PreIndex",
2767 "PositivePreIndex_al_r9_r1_plus_2_PreIndex",
2768 ARRAY_SIZE(kPositivePreIndex),
2769 kPositivePreIndex},
2770 {{al, r3, r12, plus, 91, PreIndex},
2771 "al r3 r12 plus 91 PreIndex",
2772 "PositivePreIndex_al_r3_r12_plus_91_PreIndex",
2773 ARRAY_SIZE(kPositivePreIndex),
2774 kPositivePreIndex},
2775 {{al, r6, r7, plus, 158, PreIndex},
2776 "al r6 r7 plus 158 PreIndex",
2777 "PositivePreIndex_al_r6_r7_plus_158_PreIndex",
2778 ARRAY_SIZE(kPositivePreIndex),
2779 kPositivePreIndex},
2780 {{al, r2, r7, plus, 47, PreIndex},
2781 "al r2 r7 plus 47 PreIndex",
2782 "PositivePreIndex_al_r2_r7_plus_47_PreIndex",
2783 ARRAY_SIZE(kPositivePreIndex),
2784 kPositivePreIndex},
2785 {{al, r7, r3, plus, 119, PreIndex},
2786 "al r7 r3 plus 119 PreIndex",
2787 "PositivePreIndex_al_r7_r3_plus_119_PreIndex",
2788 ARRAY_SIZE(kPositivePreIndex),
2789 kPositivePreIndex},
2790 {{al, r12, r3, plus, 214, PreIndex},
2791 "al r12 r3 plus 214 PreIndex",
2792 "PositivePreIndex_al_r12_r3_plus_214_PreIndex",
2793 ARRAY_SIZE(kPositivePreIndex),
2794 kPositivePreIndex},
2795 {{al, r11, r10, plus, 180, PreIndex},
2796 "al r11 r10 plus 180 PreIndex",
2797 "PositivePreIndex_al_r11_r10_plus_180_PreIndex",
2798 ARRAY_SIZE(kPositivePreIndex),
2799 kPositivePreIndex},
2800 {{al, r4, r9, plus, 241, PreIndex},
2801 "al r4 r9 plus 241 PreIndex",
2802 "PositivePreIndex_al_r4_r9_plus_241_PreIndex",
2803 ARRAY_SIZE(kPositivePreIndex),
2804 kPositivePreIndex},
2805 {{al, r10, r9, plus, 100, PreIndex},
2806 "al r10 r9 plus 100 PreIndex",
2807 "PositivePreIndex_al_r10_r9_plus_100_PreIndex",
2808 ARRAY_SIZE(kPositivePreIndex),
2809 kPositivePreIndex},
2810 {{al, r1, r8, plus, 117, PreIndex},
2811 "al r1 r8 plus 117 PreIndex",
2812 "PositivePreIndex_al_r1_r8_plus_117_PreIndex",
2813 ARRAY_SIZE(kPositivePreIndex),
2814 kPositivePreIndex},
2815 {{al, r8, r4, plus, 167, PreIndex},
2816 "al r8 r4 plus 167 PreIndex",
2817 "PositivePreIndex_al_r8_r4_plus_167_PreIndex",
2818 ARRAY_SIZE(kPositivePreIndex),
2819 kPositivePreIndex},
2820 {{al, r10, r11, plus, 158, PreIndex},
2821 "al r10 r11 plus 158 PreIndex",
2822 "PositivePreIndex_al_r10_r11_plus_158_PreIndex",
2823 ARRAY_SIZE(kPositivePreIndex),
2824 kPositivePreIndex},
2825 {{al, r11, r0, plus, 85, PreIndex},
2826 "al r11 r0 plus 85 PreIndex",
2827 "PositivePreIndex_al_r11_r0_plus_85_PreIndex",
2828 ARRAY_SIZE(kPositivePreIndex),
2829 kPositivePreIndex},
2830 {{al, r4, r9, minus, 228, PreIndex},
2831 "al r4 r9 minus 228 PreIndex",
2832 "NegativePreIndex_al_r4_r9_minus_228_PreIndex",
2833 ARRAY_SIZE(kNegativePreIndex),
2834 kNegativePreIndex},
2835 {{al, r1, r10, minus, 109, PreIndex},
2836 "al r1 r10 minus 109 PreIndex",
2837 "NegativePreIndex_al_r1_r10_minus_109_PreIndex",
2838 ARRAY_SIZE(kNegativePreIndex),
2839 kNegativePreIndex},
2840 {{al, r7, r6, minus, 59, PreIndex},
2841 "al r7 r6 minus 59 PreIndex",
2842 "NegativePreIndex_al_r7_r6_minus_59_PreIndex",
2843 ARRAY_SIZE(kNegativePreIndex),
2844 kNegativePreIndex},
2845 {{al, r4, r14, minus, 243, PreIndex},
2846 "al r4 r14 minus 243 PreIndex",
2847 "NegativePreIndex_al_r4_r14_minus_243_PreIndex",
2848 ARRAY_SIZE(kNegativePreIndex),
2849 kNegativePreIndex},
2850 {{al, r3, r4, minus, 140, PreIndex},
2851 "al r3 r4 minus 140 PreIndex",
2852 "NegativePreIndex_al_r3_r4_minus_140_PreIndex",
2853 ARRAY_SIZE(kNegativePreIndex),
2854 kNegativePreIndex},
2855 {{al, r8, r0, minus, 103, PreIndex},
2856 "al r8 r0 minus 103 PreIndex",
2857 "NegativePreIndex_al_r8_r0_minus_103_PreIndex",
2858 ARRAY_SIZE(kNegativePreIndex),
2859 kNegativePreIndex},
2860 {{al, r14, r2, minus, 13, PreIndex},
2861 "al r14 r2 minus 13 PreIndex",
2862 "NegativePreIndex_al_r14_r2_minus_13_PreIndex",
2863 ARRAY_SIZE(kNegativePreIndex),
2864 kNegativePreIndex},
2865 {{al, r5, r3, minus, 81, PreIndex},
2866 "al r5 r3 minus 81 PreIndex",
2867 "NegativePreIndex_al_r5_r3_minus_81_PreIndex",
2868 ARRAY_SIZE(kNegativePreIndex),
2869 kNegativePreIndex},
2870 {{al, r9, r10, minus, 138, PreIndex},
2871 "al r9 r10 minus 138 PreIndex",
2872 "NegativePreIndex_al_r9_r10_minus_138_PreIndex",
2873 ARRAY_SIZE(kNegativePreIndex),
2874 kNegativePreIndex},
2875 {{al, r6, r14, minus, 81, PreIndex},
2876 "al r6 r14 minus 81 PreIndex",
2877 "NegativePreIndex_al_r6_r14_minus_81_PreIndex",
2878 ARRAY_SIZE(kNegativePreIndex),
2879 kNegativePreIndex},
2880 {{al, r14, r6, minus, 242, PreIndex},
2881 "al r14 r6 minus 242 PreIndex",
2882 "NegativePreIndex_al_r14_r6_minus_242_PreIndex",
2883 ARRAY_SIZE(kNegativePreIndex),
2884 kNegativePreIndex},
2885 {{al, r7, r11, minus, 70, PreIndex},
2886 "al r7 r11 minus 70 PreIndex",
2887 "NegativePreIndex_al_r7_r11_minus_70_PreIndex",
2888 ARRAY_SIZE(kNegativePreIndex),
2889 kNegativePreIndex},
2890 {{al, r1, r7, minus, 169, PreIndex},
2891 "al r1 r7 minus 169 PreIndex",
2892 "NegativePreIndex_al_r1_r7_minus_169_PreIndex",
2893 ARRAY_SIZE(kNegativePreIndex),
2894 kNegativePreIndex},
2895 {{al, r10, r6, minus, 244, PreIndex},
2896 "al r10 r6 minus 244 PreIndex",
2897 "NegativePreIndex_al_r10_r6_minus_244_PreIndex",
2898 ARRAY_SIZE(kNegativePreIndex),
2899 kNegativePreIndex},
2900 {{al, r14, r2, minus, 252, PreIndex},
2901 "al r14 r2 minus 252 PreIndex",
2902 "NegativePreIndex_al_r14_r2_minus_252_PreIndex",
2903 ARRAY_SIZE(kNegativePreIndex),
2904 kNegativePreIndex},
2905 {{al, r1, r14, minus, 15, PreIndex},
2906 "al r1 r14 minus 15 PreIndex",
2907 "NegativePreIndex_al_r1_r14_minus_15_PreIndex",
2908 ARRAY_SIZE(kNegativePreIndex),
2909 kNegativePreIndex},
2910 {{al, r1, r6, minus, 31, PreIndex},
2911 "al r1 r6 minus 31 PreIndex",
2912 "NegativePreIndex_al_r1_r6_minus_31_PreIndex",
2913 ARRAY_SIZE(kNegativePreIndex),
2914 kNegativePreIndex},
2915 {{al, r3, r5, minus, 26, PreIndex},
2916 "al r3 r5 minus 26 PreIndex",
2917 "NegativePreIndex_al_r3_r5_minus_26_PreIndex",
2918 ARRAY_SIZE(kNegativePreIndex),
2919 kNegativePreIndex},
2920 {{al, r7, r6, minus, 9, PreIndex},
2921 "al r7 r6 minus 9 PreIndex",
2922 "NegativePreIndex_al_r7_r6_minus_9_PreIndex",
2923 ARRAY_SIZE(kNegativePreIndex),
2924 kNegativePreIndex},
2925 {{al, r2, r0, minus, 112, PreIndex},
2926 "al r2 r0 minus 112 PreIndex",
2927 "NegativePreIndex_al_r2_r0_minus_112_PreIndex",
2928 ARRAY_SIZE(kNegativePreIndex),
2929 kNegativePreIndex},
2930 {{al, r0, r9, minus, 237, PreIndex},
2931 "al r0 r9 minus 237 PreIndex",
2932 "NegativePreIndex_al_r0_r9_minus_237_PreIndex",
2933 ARRAY_SIZE(kNegativePreIndex),
2934 kNegativePreIndex},
2935 {{al, r1, r11, minus, 112, PreIndex},
2936 "al r1 r11 minus 112 PreIndex",
2937 "NegativePreIndex_al_r1_r11_minus_112_PreIndex",
2938 ARRAY_SIZE(kNegativePreIndex),
2939 kNegativePreIndex},
2940 {{al, r12, r5, minus, 220, PreIndex},
2941 "al r12 r5 minus 220 PreIndex",
2942 "NegativePreIndex_al_r12_r5_minus_220_PreIndex",
2943 ARRAY_SIZE(kNegativePreIndex),
2944 kNegativePreIndex},
2945 {{al, r3, r8, minus, 166, PreIndex},
2946 "al r3 r8 minus 166 PreIndex",
2947 "NegativePreIndex_al_r3_r8_minus_166_PreIndex",
2948 ARRAY_SIZE(kNegativePreIndex),
2949 kNegativePreIndex},
2950 {{al, r2, r14, minus, 128, PreIndex},
2951 "al r2 r14 minus 128 PreIndex",
2952 "NegativePreIndex_al_r2_r14_minus_128_PreIndex",
2953 ARRAY_SIZE(kNegativePreIndex),
2954 kNegativePreIndex},
2955 {{al, r9, r11, minus, 182, PreIndex},
2956 "al r9 r11 minus 182 PreIndex",
2957 "NegativePreIndex_al_r9_r11_minus_182_PreIndex",
2958 ARRAY_SIZE(kNegativePreIndex),
2959 kNegativePreIndex},
2960 {{al, r8, r14, minus, 16, PreIndex},
2961 "al r8 r14 minus 16 PreIndex",
2962 "NegativePreIndex_al_r8_r14_minus_16_PreIndex",
2963 ARRAY_SIZE(kNegativePreIndex),
2964 kNegativePreIndex},
2965 {{al, r4, r14, minus, 165, PreIndex},
2966 "al r4 r14 minus 165 PreIndex",
2967 "NegativePreIndex_al_r4_r14_minus_165_PreIndex",
2968 ARRAY_SIZE(kNegativePreIndex),
2969 kNegativePreIndex},
2970 {{al, r1, r6, minus, 32, PreIndex},
2971 "al r1 r6 minus 32 PreIndex",
2972 "NegativePreIndex_al_r1_r6_minus_32_PreIndex",
2973 ARRAY_SIZE(kNegativePreIndex),
2974 kNegativePreIndex},
2975 {{al, r4, r10, minus, 224, PreIndex},
2976 "al r4 r10 minus 224 PreIndex",
2977 "NegativePreIndex_al_r4_r10_minus_224_PreIndex",
2978 ARRAY_SIZE(kNegativePreIndex),
2979 kNegativePreIndex},
2980 {{al, r5, r2, minus, 27, PreIndex},
2981 "al r5 r2 minus 27 PreIndex",
2982 "NegativePreIndex_al_r5_r2_minus_27_PreIndex",
2983 ARRAY_SIZE(kNegativePreIndex),
2984 kNegativePreIndex},
2985 {{al, r14, r1, minus, 207, PreIndex},
2986 "al r14 r1 minus 207 PreIndex",
2987 "NegativePreIndex_al_r14_r1_minus_207_PreIndex",
2988 ARRAY_SIZE(kNegativePreIndex),
2989 kNegativePreIndex},
2990 {{al, r9, r14, minus, 236, PreIndex},
2991 "al r9 r14 minus 236 PreIndex",
2992 "NegativePreIndex_al_r9_r14_minus_236_PreIndex",
2993 ARRAY_SIZE(kNegativePreIndex),
2994 kNegativePreIndex},
2995 {{al, r9, r2, minus, 20, PreIndex},
2996 "al r9 r2 minus 20 PreIndex",
2997 "NegativePreIndex_al_r9_r2_minus_20_PreIndex",
2998 ARRAY_SIZE(kNegativePreIndex),
2999 kNegativePreIndex},
3000 {{al, r3, r4, minus, 247, PreIndex},
3001 "al r3 r4 minus 247 PreIndex",
3002 "NegativePreIndex_al_r3_r4_minus_247_PreIndex",
3003 ARRAY_SIZE(kNegativePreIndex),
3004 kNegativePreIndex},
3005 {{al, r4, r12, minus, 53, PreIndex},
3006 "al r4 r12 minus 53 PreIndex",
3007 "NegativePreIndex_al_r4_r12_minus_53_PreIndex",
3008 ARRAY_SIZE(kNegativePreIndex),
3009 kNegativePreIndex},
3010 {{al, r0, r3, minus, 17, PreIndex},
3011 "al r0 r3 minus 17 PreIndex",
3012 "NegativePreIndex_al_r0_r3_minus_17_PreIndex",
3013 ARRAY_SIZE(kNegativePreIndex),
3014 kNegativePreIndex},
3015 {{al, r11, r9, minus, 11, PreIndex},
3016 "al r11 r9 minus 11 PreIndex",
3017 "NegativePreIndex_al_r11_r9_minus_11_PreIndex",
3018 ARRAY_SIZE(kNegativePreIndex),
3019 kNegativePreIndex},
3020 {{al, r0, r5, minus, 107, PreIndex},
3021 "al r0 r5 minus 107 PreIndex",
3022 "NegativePreIndex_al_r0_r5_minus_107_PreIndex",
3023 ARRAY_SIZE(kNegativePreIndex),
3024 kNegativePreIndex},
3025 {{al, r9, r11, minus, 44, PreIndex},
3026 "al r9 r11 minus 44 PreIndex",
3027 "NegativePreIndex_al_r9_r11_minus_44_PreIndex",
3028 ARRAY_SIZE(kNegativePreIndex),
3029 kNegativePreIndex},
3030 {{al, r9, r12, minus, 32, PreIndex},
3031 "al r9 r12 minus 32 PreIndex",
3032 "NegativePreIndex_al_r9_r12_minus_32_PreIndex",
3033 ARRAY_SIZE(kNegativePreIndex),
3034 kNegativePreIndex},
3035 {{al, r4, r1, minus, 135, PreIndex},
3036 "al r4 r1 minus 135 PreIndex",
3037 "NegativePreIndex_al_r4_r1_minus_135_PreIndex",
3038 ARRAY_SIZE(kNegativePreIndex),
3039 kNegativePreIndex},
3040 {{al, r6, r14, minus, 39, PreIndex},
3041 "al r6 r14 minus 39 PreIndex",
3042 "NegativePreIndex_al_r6_r14_minus_39_PreIndex",
3043 ARRAY_SIZE(kNegativePreIndex),
3044 kNegativePreIndex},
3045 {{al, r5, r12, minus, 80, PreIndex},
3046 "al r5 r12 minus 80 PreIndex",
3047 "NegativePreIndex_al_r5_r12_minus_80_PreIndex",
3048 ARRAY_SIZE(kNegativePreIndex),
3049 kNegativePreIndex},
3050 {{al, r8, r11, minus, 55, PreIndex},
3051 "al r8 r11 minus 55 PreIndex",
3052 "NegativePreIndex_al_r8_r11_minus_55_PreIndex",
3053 ARRAY_SIZE(kNegativePreIndex),
3054 kNegativePreIndex},
3055 {{al, r5, r4, minus, 122, PreIndex},
3056 "al r5 r4 minus 122 PreIndex",
3057 "NegativePreIndex_al_r5_r4_minus_122_PreIndex",
3058 ARRAY_SIZE(kNegativePreIndex),
3059 kNegativePreIndex},
3060 {{al, r11, r1, minus, 82, PreIndex},
3061 "al r11 r1 minus 82 PreIndex",
3062 "NegativePreIndex_al_r11_r1_minus_82_PreIndex",
3063 ARRAY_SIZE(kNegativePreIndex),
3064 kNegativePreIndex},
3065 {{al, r5, r7, minus, 3, PreIndex},
3066 "al r5 r7 minus 3 PreIndex",
3067 "NegativePreIndex_al_r5_r7_minus_3_PreIndex",
3068 ARRAY_SIZE(kNegativePreIndex),
3069 kNegativePreIndex},
3070 {{al, r8, r5, minus, 199, PreIndex},
3071 "al r8 r5 minus 199 PreIndex",
3072 "NegativePreIndex_al_r8_r5_minus_199_PreIndex",
3073 ARRAY_SIZE(kNegativePreIndex),
3074 kNegativePreIndex},
3075 {{al, r6, r10, minus, 23, PreIndex},
3076 "al r6 r10 minus 23 PreIndex",
3077 "NegativePreIndex_al_r6_r10_minus_23_PreIndex",
3078 ARRAY_SIZE(kNegativePreIndex),
3079 kNegativePreIndex},
3080 {{al, r8, r11, minus, 221, PreIndex},
3081 "al r8 r11 minus 221 PreIndex",
3082 "NegativePreIndex_al_r8_r11_minus_221_PreIndex",
3083 ARRAY_SIZE(kNegativePreIndex),
3084 kNegativePreIndex},
3085 {{al, r2, r6, minus, 206, PreIndex},
3086 "al r2 r6 minus 206 PreIndex",
3087 "NegativePreIndex_al_r2_r6_minus_206_PreIndex",
3088 ARRAY_SIZE(kNegativePreIndex),
3089 kNegativePreIndex},
3090 {{al, r12, r3, minus, 198, PreIndex},
3091 "al r12 r3 minus 198 PreIndex",
3092 "NegativePreIndex_al_r12_r3_minus_198_PreIndex",
3093 ARRAY_SIZE(kNegativePreIndex),
3094 kNegativePreIndex},
3095 {{al, r2, r12, minus, 94, PreIndex},
3096 "al r2 r12 minus 94 PreIndex",
3097 "NegativePreIndex_al_r2_r12_minus_94_PreIndex",
3098 ARRAY_SIZE(kNegativePreIndex),
3099 kNegativePreIndex},
3100 {{al, r2, r9, minus, 69, PreIndex},
3101 "al r2 r9 minus 69 PreIndex",
3102 "NegativePreIndex_al_r2_r9_minus_69_PreIndex",
3103 ARRAY_SIZE(kNegativePreIndex),
3104 kNegativePreIndex},
3105 {{al, r10, r14, minus, 120, PreIndex},
3106 "al r10 r14 minus 120 PreIndex",
3107 "NegativePreIndex_al_r10_r14_minus_120_PreIndex",
3108 ARRAY_SIZE(kNegativePreIndex),
3109 kNegativePreIndex},
3110 {{al, r8, r5, minus, 138, PreIndex},
3111 "al r8 r5 minus 138 PreIndex",
3112 "NegativePreIndex_al_r8_r5_minus_138_PreIndex",
3113 ARRAY_SIZE(kNegativePreIndex),
3114 kNegativePreIndex},
3115 {{al, r8, r12, minus, 206, PreIndex},
3116 "al r8 r12 minus 206 PreIndex",
3117 "NegativePreIndex_al_r8_r12_minus_206_PreIndex",
3118 ARRAY_SIZE(kNegativePreIndex),
3119 kNegativePreIndex},
3120 {{al, r11, r4, minus, 27, PreIndex},
3121 "al r11 r4 minus 27 PreIndex",
3122 "NegativePreIndex_al_r11_r4_minus_27_PreIndex",
3123 ARRAY_SIZE(kNegativePreIndex),
3124 kNegativePreIndex},
3125 {{al, r0, r3, minus, 34, PreIndex},
3126 "al r0 r3 minus 34 PreIndex",
3127 "NegativePreIndex_al_r0_r3_minus_34_PreIndex",
3128 ARRAY_SIZE(kNegativePreIndex),
3129 kNegativePreIndex},
3130 {{al, r9, r10, minus, 216, PreIndex},
3131 "al r9 r10 minus 216 PreIndex",
3132 "NegativePreIndex_al_r9_r10_minus_216_PreIndex",
3133 ARRAY_SIZE(kNegativePreIndex),
3134 kNegativePreIndex},
3135 {{al, r2, r14, minus, 186, PreIndex},
3136 "al r2 r14 minus 186 PreIndex",
3137 "NegativePreIndex_al_r2_r14_minus_186_PreIndex",
3138 ARRAY_SIZE(kNegativePreIndex),
3139 kNegativePreIndex},
3140 {{al, r3, r12, minus, 92, PreIndex},
3141 "al r3 r12 minus 92 PreIndex",
3142 "NegativePreIndex_al_r3_r12_minus_92_PreIndex",
3143 ARRAY_SIZE(kNegativePreIndex),
3144 kNegativePreIndex},
3145 {{al, r8, r7, minus, 248, PreIndex},
3146 "al r8 r7 minus 248 PreIndex",
3147 "NegativePreIndex_al_r8_r7_minus_248_PreIndex",
3148 ARRAY_SIZE(kNegativePreIndex),
3149 kNegativePreIndex},
3150 {{al, r11, r0, minus, 63, PreIndex},
3151 "al r11 r0 minus 63 PreIndex",
3152 "NegativePreIndex_al_r11_r0_minus_63_PreIndex",
3153 ARRAY_SIZE(kNegativePreIndex),
3154 kNegativePreIndex},
3155 {{al, r12, r2, minus, 217, PreIndex},
3156 "al r12 r2 minus 217 PreIndex",
3157 "NegativePreIndex_al_r12_r2_minus_217_PreIndex",
3158 ARRAY_SIZE(kNegativePreIndex),
3159 kNegativePreIndex},
3160 {{al, r1, r2, minus, 19, PreIndex},
3161 "al r1 r2 minus 19 PreIndex",
3162 "NegativePreIndex_al_r1_r2_minus_19_PreIndex",
3163 ARRAY_SIZE(kNegativePreIndex),
3164 kNegativePreIndex},
3165 {{al, r11, r4, minus, 160, PreIndex},
3166 "al r11 r4 minus 160 PreIndex",
3167 "NegativePreIndex_al_r11_r4_minus_160_PreIndex",
3168 ARRAY_SIZE(kNegativePreIndex),
3169 kNegativePreIndex},
3170 {{al, r7, r8, minus, 121, PreIndex},
3171 "al r7 r8 minus 121 PreIndex",
3172 "NegativePreIndex_al_r7_r8_minus_121_PreIndex",
3173 ARRAY_SIZE(kNegativePreIndex),
3174 kNegativePreIndex},
3175 {{al, r14, r3, minus, 105, PreIndex},
3176 "al r14 r3 minus 105 PreIndex",
3177 "NegativePreIndex_al_r14_r3_minus_105_PreIndex",
3178 ARRAY_SIZE(kNegativePreIndex),
3179 kNegativePreIndex},
3180 {{al, r11, r2, minus, 136, PreIndex},
3181 "al r11 r2 minus 136 PreIndex",
3182 "NegativePreIndex_al_r11_r2_minus_136_PreIndex",
3183 ARRAY_SIZE(kNegativePreIndex),
3184 kNegativePreIndex},
3185 {{al, r14, r7, minus, 145, PreIndex},
3186 "al r14 r7 minus 145 PreIndex",
3187 "NegativePreIndex_al_r14_r7_minus_145_PreIndex",
3188 ARRAY_SIZE(kNegativePreIndex),
3189 kNegativePreIndex},
3190 {{al, r3, r11, minus, 152, PreIndex},
3191 "al r3 r11 minus 152 PreIndex",
3192 "NegativePreIndex_al_r3_r11_minus_152_PreIndex",
3193 ARRAY_SIZE(kNegativePreIndex),
3194 kNegativePreIndex},
3195 {{al, r6, r0, minus, 234, PreIndex},
3196 "al r6 r0 minus 234 PreIndex",
3197 "NegativePreIndex_al_r6_r0_minus_234_PreIndex",
3198 ARRAY_SIZE(kNegativePreIndex),
3199 kNegativePreIndex},
3200 {{al, r4, r9, minus, 30, PreIndex},
3201 "al r4 r9 minus 30 PreIndex",
3202 "NegativePreIndex_al_r4_r9_minus_30_PreIndex",
3203 ARRAY_SIZE(kNegativePreIndex),
3204 kNegativePreIndex},
3205 {{al, r3, r4, minus, 103, PreIndex},
3206 "al r3 r4 minus 103 PreIndex",
3207 "NegativePreIndex_al_r3_r4_minus_103_PreIndex",
3208 ARRAY_SIZE(kNegativePreIndex),
3209 kNegativePreIndex},
3210 {{al, r10, r9, minus, 212, PreIndex},
3211 "al r10 r9 minus 212 PreIndex",
3212 "NegativePreIndex_al_r10_r9_minus_212_PreIndex",
3213 ARRAY_SIZE(kNegativePreIndex),
3214 kNegativePreIndex},
3215 {{al, r3, r8, minus, 184, PreIndex},
3216 "al r3 r8 minus 184 PreIndex",
3217 "NegativePreIndex_al_r3_r8_minus_184_PreIndex",
3218 ARRAY_SIZE(kNegativePreIndex),
3219 kNegativePreIndex},
3220 {{al, r14, r5, minus, 28, PreIndex},
3221 "al r14 r5 minus 28 PreIndex",
3222 "NegativePreIndex_al_r14_r5_minus_28_PreIndex",
3223 ARRAY_SIZE(kNegativePreIndex),
3224 kNegativePreIndex},
3225 {{al, r14, r1, minus, 182, PreIndex},
3226 "al r14 r1 minus 182 PreIndex",
3227 "NegativePreIndex_al_r14_r1_minus_182_PreIndex",
3228 ARRAY_SIZE(kNegativePreIndex),
3229 kNegativePreIndex},
3230 {{al, r14, r0, minus, 42, PreIndex},
3231 "al r14 r0 minus 42 PreIndex",
3232 "NegativePreIndex_al_r14_r0_minus_42_PreIndex",
3233 ARRAY_SIZE(kNegativePreIndex),
3234 kNegativePreIndex},
3235 {{al, r7, r10, minus, 167, PreIndex},
3236 "al r7 r10 minus 167 PreIndex",
3237 "NegativePreIndex_al_r7_r10_minus_167_PreIndex",
3238 ARRAY_SIZE(kNegativePreIndex),
3239 kNegativePreIndex},
3240 {{al, r4, r12, minus, 31, PreIndex},
3241 "al r4 r12 minus 31 PreIndex",
3242 "NegativePreIndex_al_r4_r12_minus_31_PreIndex",
3243 ARRAY_SIZE(kNegativePreIndex),
3244 kNegativePreIndex},
3245 {{al, r10, r3, minus, 36, PreIndex},
3246 "al r10 r3 minus 36 PreIndex",
3247 "NegativePreIndex_al_r10_r3_minus_36_PreIndex",
3248 ARRAY_SIZE(kNegativePreIndex),
3249 kNegativePreIndex},
3250 {{al, r11, r4, minus, 228, PreIndex},
3251 "al r11 r4 minus 228 PreIndex",
3252 "NegativePreIndex_al_r11_r4_minus_228_PreIndex",
3253 ARRAY_SIZE(kNegativePreIndex),
3254 kNegativePreIndex},
3255 {{al, r12, r11, minus, 117, PreIndex},
3256 "al r12 r11 minus 117 PreIndex",
3257 "NegativePreIndex_al_r12_r11_minus_117_PreIndex",
3258 ARRAY_SIZE(kNegativePreIndex),
3259 kNegativePreIndex},
3260 {{al, r5, r0, minus, 124, PreIndex},
3261 "al r5 r0 minus 124 PreIndex",
3262 "NegativePreIndex_al_r5_r0_minus_124_PreIndex",
3263 ARRAY_SIZE(kNegativePreIndex),
3264 kNegativePreIndex},
3265 {{al, r7, r9, minus, 8, PreIndex},
3266 "al r7 r9 minus 8 PreIndex",
3267 "NegativePreIndex_al_r7_r9_minus_8_PreIndex",
3268 ARRAY_SIZE(kNegativePreIndex),
3269 kNegativePreIndex},
3270 {{al, r9, r1, minus, 10, PreIndex},
3271 "al r9 r1 minus 10 PreIndex",
3272 "NegativePreIndex_al_r9_r1_minus_10_PreIndex",
3273 ARRAY_SIZE(kNegativePreIndex),
3274 kNegativePreIndex},
3275 {{al, r7, r14, minus, 123, PreIndex},
3276 "al r7 r14 minus 123 PreIndex",
3277 "NegativePreIndex_al_r7_r14_minus_123_PreIndex",
3278 ARRAY_SIZE(kNegativePreIndex),
3279 kNegativePreIndex},
3280 {{al, r2, r12, minus, 160, PreIndex},
3281 "al r2 r12 minus 160 PreIndex",
3282 "NegativePreIndex_al_r2_r12_minus_160_PreIndex",
3283 ARRAY_SIZE(kNegativePreIndex),
3284 kNegativePreIndex},
3285 {{al, r3, r0, minus, 111, PreIndex},
3286 "al r3 r0 minus 111 PreIndex",
3287 "NegativePreIndex_al_r3_r0_minus_111_PreIndex",
3288 ARRAY_SIZE(kNegativePreIndex),
3289 kNegativePreIndex},
3290 {{al, r0, r9, minus, 168, PreIndex},
3291 "al r0 r9 minus 168 PreIndex",
3292 "NegativePreIndex_al_r0_r9_minus_168_PreIndex",
3293 ARRAY_SIZE(kNegativePreIndex),
3294 kNegativePreIndex},
3295 {{al, r14, r6, minus, 190, PreIndex},
3296 "al r14 r6 minus 190 PreIndex",
3297 "NegativePreIndex_al_r14_r6_minus_190_PreIndex",
3298 ARRAY_SIZE(kNegativePreIndex),
3299 kNegativePreIndex},
3300 {{al, r4, r2, minus, 142, PreIndex},
3301 "al r4 r2 minus 142 PreIndex",
3302 "NegativePreIndex_al_r4_r2_minus_142_PreIndex",
3303 ARRAY_SIZE(kNegativePreIndex),
3304 kNegativePreIndex},
3305 {{al, r8, r6, minus, 253, PreIndex},
3306 "al r8 r6 minus 253 PreIndex",
3307 "NegativePreIndex_al_r8_r6_minus_253_PreIndex",
3308 ARRAY_SIZE(kNegativePreIndex),
3309 kNegativePreIndex},
3310 {{al, r5, r4, minus, 101, PreIndex},
3311 "al r5 r4 minus 101 PreIndex",
3312 "NegativePreIndex_al_r5_r4_minus_101_PreIndex",
3313 ARRAY_SIZE(kNegativePreIndex),
3314 kNegativePreIndex},
3315 {{al, r2, r3, minus, 79, PreIndex},
3316 "al r2 r3 minus 79 PreIndex",
3317 "NegativePreIndex_al_r2_r3_minus_79_PreIndex",
3318 ARRAY_SIZE(kNegativePreIndex),
3319 kNegativePreIndex},
3320 {{al, r14, r4, minus, 13, PreIndex},
3321 "al r14 r4 minus 13 PreIndex",
3322 "NegativePreIndex_al_r14_r4_minus_13_PreIndex",
3323 ARRAY_SIZE(kNegativePreIndex),
3324 kNegativePreIndex},
3325 {{al, r4, r2, minus, 132, PreIndex},
3326 "al r4 r2 minus 132 PreIndex",
3327 "NegativePreIndex_al_r4_r2_minus_132_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-512-a32-ldrh.h"
3341 #include "aarch32/traces/simulator-cond-rd-memop-immediate-512-a32-ldrsh.h"
3342 #include "aarch32/traces/simulator-cond-rd-memop-immediate-512-a32-ldrsb.h"
3343 #include "aarch32/traces/simulator-cond-rd-memop-immediate-512-a32-strh.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_512_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_512_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