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 113namespace vixl { 114namespace aarch32 { 115 116// List of instruction encodings: 117#define FOREACH_INSTRUCTION(M) \ 118 M(Ldr) \ 119 M(Ldrb) \ 120 M(Str) \ 121 M(Strb) 122 123 124// The following definitions are defined again in each generated test, therefore 125// we need to place them in an anomymous namespace. It expresses that they are 126// local to this file only, and the compiler is not allowed to share these types 127// across test files during template instantiation. Specifically, `Operands` and 128// `Inputs` have various layouts across generated tests so they absolutely 129// cannot be shared. 130 131#ifdef VIXL_INCLUDE_TARGET_A32 132namespace { 133 134// Values to be passed to the assembler to produce the instruction under test. 135struct Operands { 136 Condition cond; 137 Register rd; 138 Register rn; 139 Sign sign; 140 Register rm; 141 ShiftType shift; 142 uint32_t amount; 143 AddrMode addr_mode; 144}; 145 146// Input data to feed to the instruction. 147struct Inputs { 148 uint32_t apsr; 149 uint32_t rd; 150 uint32_t rm; 151 uint32_t memop[2]; 152}; 153 154// This structure contains all input data needed to test one specific encoding. 155// It used to generate a loop over an instruction. 156struct TestLoopData { 157 // The `operands` fields represents the values to pass to the assembler to 158 // produce the instruction. 159 Operands operands; 160 // Description of the operands, used for error reporting. 161 const char* operands_description; 162 // Unique identifier, used for generating traces. 163 const char* identifier; 164 // Array of values to be fed to the instruction. 165 size_t input_size; 166 const Inputs* inputs; 167}; 168 169static const Inputs kCondition[] = {{NFlag, 0xabababab, 0, {0, 0x77777777}}, 170 {ZFlag, 0xabababab, 0, {0, 0x77777777}}, 171 {CFlag, 0xabababab, 0, {0, 0x77777777}}, 172 {VFlag, 0xabababab, 0, {0, 0x77777777}}, 173 {NZFlag, 0xabababab, 0, {0, 0x77777777}}, 174 {NCFlag, 0xabababab, 0, {0, 0x77777777}}, 175 {NVFlag, 0xabababab, 0, {0, 0x77777777}}, 176 {ZCFlag, 0xabababab, 0, {0, 0x77777777}}, 177 {ZVFlag, 0xabababab, 0, {0, 0x77777777}}, 178 {CVFlag, 0xabababab, 0, {0, 0x77777777}}, 179 {NZCFlag, 0xabababab, 0, {0, 0x77777777}}, 180 {NZVFlag, 0xabababab, 0, {0, 0x77777777}}, 181 {NCVFlag, 0xabababab, 0, {0, 0x77777777}}, 182 {ZCVFlag, 0xabababab, 0, {0, 0x77777777}}, 183 {NZCVFlag, 0xabababab, 0, {0, 0x77777777}}}; 184 185static const Inputs kPositiveOffset[] = 186 {{NoFlag, 0xabababab, 2590, {0, 0x77777777}}, 187 {NoFlag, 0xabababab, 180, {0, 0x0cabba9e}}, 188 {NoFlag, 0xabababab, 3870, {0, 0x77777777}}, 189 {NoFlag, 0xabababab, 618, {0, 0x55555555}}, 190 {NoFlag, 0xabababab, 2650, {0, 0x0badbeef}}, 191 {NoFlag, 0xabababab, 2091, {0, 0x77777777}}, 192 {NoFlag, 0xabababab, 778, {0, 0x0badbeef}}, 193 {NoFlag, 0xabababab, 282, {0, 0x0cabba9e}}, 194 {NoFlag, 0xabababab, 263, {0, 0x77777777}}, 195 {NoFlag, 0xabababab, 200, {0, 0x0cabba9e}}}; 196 197static const Inputs kNegativeOffset[] = 198 {{NoFlag, 0xabababab, 3743, {0, 0x77777777}}, 199 {NoFlag, 0xabababab, 2475, {0, 0x0badbeef}}, 200 {NoFlag, 0xabababab, 1159, {0, 0x0cabba9e}}, 201 {NoFlag, 0xabababab, 2345, {0, 0x55555555}}, 202 {NoFlag, 0xabababab, 3625, {0, 0x55555555}}, 203 {NoFlag, 0xabababab, 2381, {0, 0x0badbeef}}, 204 {NoFlag, 0xabababab, 4037, {0, 0x0badbeef}}, 205 {NoFlag, 0xabababab, 778, {0, 0x77777777}}, 206 {NoFlag, 0xabababab, 3880, {0, 0x0cabba9e}}, 207 {NoFlag, 0xabababab, 3384, {0, 0x77777777}}}; 208 209static const Inputs kPositivePostIndex[] = 210 {{NoFlag, 0xabababab, 1526, {0, 0x0cabba9e}}, 211 {NoFlag, 0xabababab, 365, {0, 0x55555555}}, 212 {NoFlag, 0xabababab, 1948, {0, 0x0cabba9e}}, 213 {NoFlag, 0xabababab, 958, {0, 0x0cabba9e}}, 214 {NoFlag, 0xabababab, 969, {0, 0x55555555}}, 215 {NoFlag, 0xabababab, 2695, {0, 0x55555555}}, 216 {NoFlag, 0xabababab, 2690, {0, 0x0cabba9e}}, 217 {NoFlag, 0xabababab, 523, {0, 0x0cabba9e}}, 218 {NoFlag, 0xabababab, 2046, {0, 0x0cabba9e}}, 219 {NoFlag, 0xabababab, 2490, {0, 0x0cabba9e}}}; 220 221static const Inputs kNegativePostIndex[] = 222 {{NoFlag, 0xabababab, 4093, {0, 0x0badbeef}}, 223 {NoFlag, 0xabababab, 1860, {0, 0x0cabba9e}}, 224 {NoFlag, 0xabababab, 3157, {0, 0x55555555}}, 225 {NoFlag, 0xabababab, 3069, {0, 0x55555555}}, 226 {NoFlag, 0xabababab, 932, {0, 0x55555555}}, 227 {NoFlag, 0xabababab, 3287, {0, 0x55555555}}, 228 {NoFlag, 0xabababab, 685, {0, 0x0cabba9e}}, 229 {NoFlag, 0xabababab, 3685, {0, 0x55555555}}, 230 {NoFlag, 0xabababab, 3039, {0, 0x0badbeef}}, 231 {NoFlag, 0xabababab, 2245, {0, 0x0badbeef}}}; 232 233static const Inputs kPositivePreIndex[] = 234 {{NoFlag, 0xabababab, 719, {0, 0x0badbeef}}, 235 {NoFlag, 0xabababab, 2933, {0, 0x0badbeef}}, 236 {NoFlag, 0xabababab, 263, {0, 0x0badbeef}}, 237 {NoFlag, 0xabababab, 2086, {0, 0x55555555}}, 238 {NoFlag, 0xabababab, 2728, {0, 0x0badbeef}}, 239 {NoFlag, 0xabababab, 3399, {0, 0x55555555}}, 240 {NoFlag, 0xabababab, 2532, {0, 0x0badbeef}}, 241 {NoFlag, 0xabababab, 3626, {0, 0x0badbeef}}, 242 {NoFlag, 0xabababab, 612, {0, 0x77777777}}, 243 {NoFlag, 0xabababab, 3811, {0, 0x77777777}}}; 244 245static const Inputs kNegativePreIndex[] = 246 {{NoFlag, 0xabababab, 3564, {0, 0x77777777}}, 247 {NoFlag, 0xabababab, 766, {0, 0x55555555}}, 248 {NoFlag, 0xabababab, 2365, {0, 0x0badbeef}}, 249 {NoFlag, 0xabababab, 2462, {0, 0x0cabba9e}}, 250 {NoFlag, 0xabababab, 3439, {0, 0x0badbeef}}, 251 {NoFlag, 0xabababab, 2810, {0, 0x77777777}}, 252 {NoFlag, 0xabababab, 2590, {0, 0x55555555}}, 253 {NoFlag, 0xabababab, 1527, {0, 0x0cabba9e}}, 254 {NoFlag, 0xabababab, 523, {0, 0x0cabba9e}}, 255 {NoFlag, 0xabababab, 2290, {0, 0x77777777}}}; 256 257 258// A loop will be generated for each element of this array. 259const TestLoopData kTests[] = 260 {{{eq, r0, r1, plus, r8, LSR, 1, Offset}, 261 "eq r0 r1 plus r8 LSR 1 Offset", 262 "Condition_eq_r0_r1_plus_r8_LSR_1_Offset", 263 ARRAY_SIZE(kCondition), 264 kCondition}, 265 {{ne, r0, r1, plus, r8, LSR, 1, Offset}, 266 "ne r0 r1 plus r8 LSR 1 Offset", 267 "Condition_ne_r0_r1_plus_r8_LSR_1_Offset", 268 ARRAY_SIZE(kCondition), 269 kCondition}, 270 {{cs, r0, r1, plus, r8, LSR, 1, Offset}, 271 "cs r0 r1 plus r8 LSR 1 Offset", 272 "Condition_cs_r0_r1_plus_r8_LSR_1_Offset", 273 ARRAY_SIZE(kCondition), 274 kCondition}, 275 {{cc, r0, r1, plus, r8, LSR, 1, Offset}, 276 "cc r0 r1 plus r8 LSR 1 Offset", 277 "Condition_cc_r0_r1_plus_r8_LSR_1_Offset", 278 ARRAY_SIZE(kCondition), 279 kCondition}, 280 {{mi, r0, r1, plus, r8, LSR, 1, Offset}, 281 "mi r0 r1 plus r8 LSR 1 Offset", 282 "Condition_mi_r0_r1_plus_r8_LSR_1_Offset", 283 ARRAY_SIZE(kCondition), 284 kCondition}, 285 {{pl, r0, r1, plus, r8, LSR, 1, Offset}, 286 "pl r0 r1 plus r8 LSR 1 Offset", 287 "Condition_pl_r0_r1_plus_r8_LSR_1_Offset", 288 ARRAY_SIZE(kCondition), 289 kCondition}, 290 {{vs, r0, r1, plus, r8, LSR, 1, Offset}, 291 "vs r0 r1 plus r8 LSR 1 Offset", 292 "Condition_vs_r0_r1_plus_r8_LSR_1_Offset", 293 ARRAY_SIZE(kCondition), 294 kCondition}, 295 {{vc, r0, r1, plus, r8, LSR, 1, Offset}, 296 "vc r0 r1 plus r8 LSR 1 Offset", 297 "Condition_vc_r0_r1_plus_r8_LSR_1_Offset", 298 ARRAY_SIZE(kCondition), 299 kCondition}, 300 {{hi, r0, r1, plus, r8, LSR, 1, Offset}, 301 "hi r0 r1 plus r8 LSR 1 Offset", 302 "Condition_hi_r0_r1_plus_r8_LSR_1_Offset", 303 ARRAY_SIZE(kCondition), 304 kCondition}, 305 {{ls, r0, r1, plus, r8, LSR, 1, Offset}, 306 "ls r0 r1 plus r8 LSR 1 Offset", 307 "Condition_ls_r0_r1_plus_r8_LSR_1_Offset", 308 ARRAY_SIZE(kCondition), 309 kCondition}, 310 {{ge, r0, r1, plus, r8, LSR, 1, Offset}, 311 "ge r0 r1 plus r8 LSR 1 Offset", 312 "Condition_ge_r0_r1_plus_r8_LSR_1_Offset", 313 ARRAY_SIZE(kCondition), 314 kCondition}, 315 {{lt, r0, r1, plus, r8, LSR, 1, Offset}, 316 "lt r0 r1 plus r8 LSR 1 Offset", 317 "Condition_lt_r0_r1_plus_r8_LSR_1_Offset", 318 ARRAY_SIZE(kCondition), 319 kCondition}, 320 {{gt, r0, r1, plus, r8, LSR, 1, Offset}, 321 "gt r0 r1 plus r8 LSR 1 Offset", 322 "Condition_gt_r0_r1_plus_r8_LSR_1_Offset", 323 ARRAY_SIZE(kCondition), 324 kCondition}, 325 {{le, r0, r1, plus, r8, LSR, 1, Offset}, 326 "le r0 r1 plus r8 LSR 1 Offset", 327 "Condition_le_r0_r1_plus_r8_LSR_1_Offset", 328 ARRAY_SIZE(kCondition), 329 kCondition}, 330 {{al, r0, r1, plus, r8, LSR, 1, Offset}, 331 "al r0 r1 plus r8 LSR 1 Offset", 332 "Condition_al_r0_r1_plus_r8_LSR_1_Offset", 333 ARRAY_SIZE(kCondition), 334 kCondition}, 335 {{al, r1, r0, plus, r5, ASR, 24, Offset}, 336 "al r1 r0 plus r5 ASR 24 Offset", 337 "PositiveOffset_al_r1_r0_plus_r5_ASR_24_Offset", 338 ARRAY_SIZE(kPositiveOffset), 339 kPositiveOffset}, 340 {{al, r3, r10, plus, r4, LSR, 31, Offset}, 341 "al r3 r10 plus r4 LSR 31 Offset", 342 "PositiveOffset_al_r3_r10_plus_r4_LSR_31_Offset", 343 ARRAY_SIZE(kPositiveOffset), 344 kPositiveOffset}, 345 {{al, r12, r10, plus, r0, ASR, 16, Offset}, 346 "al r12 r10 plus r0 ASR 16 Offset", 347 "PositiveOffset_al_r12_r10_plus_r0_ASR_16_Offset", 348 ARRAY_SIZE(kPositiveOffset), 349 kPositiveOffset}, 350 {{al, r4, r10, plus, r9, ASR, 19, Offset}, 351 "al r4 r10 plus r9 ASR 19 Offset", 352 "PositiveOffset_al_r4_r10_plus_r9_ASR_19_Offset", 353 ARRAY_SIZE(kPositiveOffset), 354 kPositiveOffset}, 355 {{al, r1, r11, plus, r4, LSR, 17, Offset}, 356 "al r1 r11 plus r4 LSR 17 Offset", 357 "PositiveOffset_al_r1_r11_plus_r4_LSR_17_Offset", 358 ARRAY_SIZE(kPositiveOffset), 359 kPositiveOffset}, 360 {{al, r1, r8, plus, r11, LSR, 22, Offset}, 361 "al r1 r8 plus r11 LSR 22 Offset", 362 "PositiveOffset_al_r1_r8_plus_r11_LSR_22_Offset", 363 ARRAY_SIZE(kPositiveOffset), 364 kPositiveOffset}, 365 {{al, r1, r4, plus, r9, ASR, 25, Offset}, 366 "al r1 r4 plus r9 ASR 25 Offset", 367 "PositiveOffset_al_r1_r4_plus_r9_ASR_25_Offset", 368 ARRAY_SIZE(kPositiveOffset), 369 kPositiveOffset}, 370 {{al, r8, r4, plus, r0, LSR, 32, Offset}, 371 "al r8 r4 plus r0 LSR 32 Offset", 372 "PositiveOffset_al_r8_r4_plus_r0_LSR_32_Offset", 373 ARRAY_SIZE(kPositiveOffset), 374 kPositiveOffset}, 375 {{al, r12, r7, plus, r4, LSR, 7, Offset}, 376 "al r12 r7 plus r4 LSR 7 Offset", 377 "PositiveOffset_al_r12_r7_plus_r4_LSR_7_Offset", 378 ARRAY_SIZE(kPositiveOffset), 379 kPositiveOffset}, 380 {{al, r0, r10, plus, r14, ASR, 11, Offset}, 381 "al r0 r10 plus r14 ASR 11 Offset", 382 "PositiveOffset_al_r0_r10_plus_r14_ASR_11_Offset", 383 ARRAY_SIZE(kPositiveOffset), 384 kPositiveOffset}, 385 {{al, r6, r10, plus, r11, LSR, 32, Offset}, 386 "al r6 r10 plus r11 LSR 32 Offset", 387 "PositiveOffset_al_r6_r10_plus_r11_LSR_32_Offset", 388 ARRAY_SIZE(kPositiveOffset), 389 kPositiveOffset}, 390 {{al, r2, r10, plus, r8, LSR, 12, Offset}, 391 "al r2 r10 plus r8 LSR 12 Offset", 392 "PositiveOffset_al_r2_r10_plus_r8_LSR_12_Offset", 393 ARRAY_SIZE(kPositiveOffset), 394 kPositiveOffset}, 395 {{al, r0, r12, plus, r9, ASR, 29, Offset}, 396 "al r0 r12 plus r9 ASR 29 Offset", 397 "PositiveOffset_al_r0_r12_plus_r9_ASR_29_Offset", 398 ARRAY_SIZE(kPositiveOffset), 399 kPositiveOffset}, 400 {{al, r3, r2, plus, r1, LSR, 19, Offset}, 401 "al r3 r2 plus r1 LSR 19 Offset", 402 "PositiveOffset_al_r3_r2_plus_r1_LSR_19_Offset", 403 ARRAY_SIZE(kPositiveOffset), 404 kPositiveOffset}, 405 {{al, r10, r7, plus, r3, ASR, 29, Offset}, 406 "al r10 r7 plus r3 ASR 29 Offset", 407 "PositiveOffset_al_r10_r7_plus_r3_ASR_29_Offset", 408 ARRAY_SIZE(kPositiveOffset), 409 kPositiveOffset}, 410 {{al, r4, r14, plus, r1, ASR, 30, Offset}, 411 "al r4 r14 plus r1 ASR 30 Offset", 412 "PositiveOffset_al_r4_r14_plus_r1_ASR_30_Offset", 413 ARRAY_SIZE(kPositiveOffset), 414 kPositiveOffset}, 415 {{al, r5, r3, plus, r1, LSR, 5, Offset}, 416 "al r5 r3 plus r1 LSR 5 Offset", 417 "PositiveOffset_al_r5_r3_plus_r1_LSR_5_Offset", 418 ARRAY_SIZE(kPositiveOffset), 419 kPositiveOffset}, 420 {{al, r2, r9, plus, r0, LSR, 11, Offset}, 421 "al r2 r9 plus r0 LSR 11 Offset", 422 "PositiveOffset_al_r2_r9_plus_r0_LSR_11_Offset", 423 ARRAY_SIZE(kPositiveOffset), 424 kPositiveOffset}, 425 {{al, r6, r14, plus, r5, LSR, 23, Offset}, 426 "al r6 r14 plus r5 LSR 23 Offset", 427 "PositiveOffset_al_r6_r14_plus_r5_LSR_23_Offset", 428 ARRAY_SIZE(kPositiveOffset), 429 kPositiveOffset}, 430 {{al, r7, r9, plus, r12, LSR, 8, Offset}, 431 "al r7 r9 plus r12 LSR 8 Offset", 432 "PositiveOffset_al_r7_r9_plus_r12_LSR_8_Offset", 433 ARRAY_SIZE(kPositiveOffset), 434 kPositiveOffset}, 435 {{al, r14, r11, plus, r6, ASR, 16, Offset}, 436 "al r14 r11 plus r6 ASR 16 Offset", 437 "PositiveOffset_al_r14_r11_plus_r6_ASR_16_Offset", 438 ARRAY_SIZE(kPositiveOffset), 439 kPositiveOffset}, 440 {{al, r4, r2, plus, r12, LSR, 5, Offset}, 441 "al r4 r2 plus r12 LSR 5 Offset", 442 "PositiveOffset_al_r4_r2_plus_r12_LSR_5_Offset", 443 ARRAY_SIZE(kPositiveOffset), 444 kPositiveOffset}, 445 {{al, r12, r7, plus, r11, LSR, 32, Offset}, 446 "al r12 r7 plus r11 LSR 32 Offset", 447 "PositiveOffset_al_r12_r7_plus_r11_LSR_32_Offset", 448 ARRAY_SIZE(kPositiveOffset), 449 kPositiveOffset}, 450 {{al, r11, r2, plus, r9, ASR, 21, Offset}, 451 "al r11 r2 plus r9 ASR 21 Offset", 452 "PositiveOffset_al_r11_r2_plus_r9_ASR_21_Offset", 453 ARRAY_SIZE(kPositiveOffset), 454 kPositiveOffset}, 455 {{al, r7, r2, plus, r14, ASR, 11, Offset}, 456 "al r7 r2 plus r14 ASR 11 Offset", 457 "PositiveOffset_al_r7_r2_plus_r14_ASR_11_Offset", 458 ARRAY_SIZE(kPositiveOffset), 459 kPositiveOffset}, 460 {{al, r12, r14, plus, r0, ASR, 2, Offset}, 461 "al r12 r14 plus r0 ASR 2 Offset", 462 "PositiveOffset_al_r12_r14_plus_r0_ASR_2_Offset", 463 ARRAY_SIZE(kPositiveOffset), 464 kPositiveOffset}, 465 {{al, r0, r12, plus, r3, ASR, 18, Offset}, 466 "al r0 r12 plus r3 ASR 18 Offset", 467 "PositiveOffset_al_r0_r12_plus_r3_ASR_18_Offset", 468 ARRAY_SIZE(kPositiveOffset), 469 kPositiveOffset}, 470 {{al, r14, r3, plus, r2, LSR, 4, Offset}, 471 "al r14 r3 plus r2 LSR 4 Offset", 472 "PositiveOffset_al_r14_r3_plus_r2_LSR_4_Offset", 473 ARRAY_SIZE(kPositiveOffset), 474 kPositiveOffset}, 475 {{al, r2, r10, plus, r9, LSR, 20, Offset}, 476 "al r2 r10 plus r9 LSR 20 Offset", 477 "PositiveOffset_al_r2_r10_plus_r9_LSR_20_Offset", 478 ARRAY_SIZE(kPositiveOffset), 479 kPositiveOffset}, 480 {{al, r4, r14, plus, r12, LSR, 8, Offset}, 481 "al r4 r14 plus r12 LSR 8 Offset", 482 "PositiveOffset_al_r4_r14_plus_r12_LSR_8_Offset", 483 ARRAY_SIZE(kPositiveOffset), 484 kPositiveOffset}, 485 {{al, r10, r4, plus, r5, ASR, 24, Offset}, 486 "al r10 r4 plus r5 ASR 24 Offset", 487 "PositiveOffset_al_r10_r4_plus_r5_ASR_24_Offset", 488 ARRAY_SIZE(kPositiveOffset), 489 kPositiveOffset}, 490 {{al, r11, r3, plus, r8, LSR, 22, Offset}, 491 "al r11 r3 plus r8 LSR 22 Offset", 492 "PositiveOffset_al_r11_r3_plus_r8_LSR_22_Offset", 493 ARRAY_SIZE(kPositiveOffset), 494 kPositiveOffset}, 495 {{al, r7, r2, plus, r10, ASR, 7, Offset}, 496 "al r7 r2 plus r10 ASR 7 Offset", 497 "PositiveOffset_al_r7_r2_plus_r10_ASR_7_Offset", 498 ARRAY_SIZE(kPositiveOffset), 499 kPositiveOffset}, 500 {{al, r8, r9, plus, r6, ASR, 27, Offset}, 501 "al r8 r9 plus r6 ASR 27 Offset", 502 "PositiveOffset_al_r8_r9_plus_r6_ASR_27_Offset", 503 ARRAY_SIZE(kPositiveOffset), 504 kPositiveOffset}, 505 {{al, r1, r2, plus, r6, ASR, 10, Offset}, 506 "al r1 r2 plus r6 ASR 10 Offset", 507 "PositiveOffset_al_r1_r2_plus_r6_ASR_10_Offset", 508 ARRAY_SIZE(kPositiveOffset), 509 kPositiveOffset}, 510 {{al, r11, r9, plus, r1, ASR, 19, Offset}, 511 "al r11 r9 plus r1 ASR 19 Offset", 512 "PositiveOffset_al_r11_r9_plus_r1_ASR_19_Offset", 513 ARRAY_SIZE(kPositiveOffset), 514 kPositiveOffset}, 515 {{al, r3, r2, plus, r10, ASR, 31, Offset}, 516 "al r3 r2 plus r10 ASR 31 Offset", 517 "PositiveOffset_al_r3_r2_plus_r10_ASR_31_Offset", 518 ARRAY_SIZE(kPositiveOffset), 519 kPositiveOffset}, 520 {{al, r7, r6, plus, r11, ASR, 12, Offset}, 521 "al r7 r6 plus r11 ASR 12 Offset", 522 "PositiveOffset_al_r7_r6_plus_r11_ASR_12_Offset", 523 ARRAY_SIZE(kPositiveOffset), 524 kPositiveOffset}, 525 {{al, r4, r0, plus, r5, LSR, 10, Offset}, 526 "al r4 r0 plus r5 LSR 10 Offset", 527 "PositiveOffset_al_r4_r0_plus_r5_LSR_10_Offset", 528 ARRAY_SIZE(kPositiveOffset), 529 kPositiveOffset}, 530 {{al, r3, r2, plus, r12, ASR, 22, Offset}, 531 "al r3 r2 plus r12 ASR 22 Offset", 532 "PositiveOffset_al_r3_r2_plus_r12_ASR_22_Offset", 533 ARRAY_SIZE(kPositiveOffset), 534 kPositiveOffset}, 535 {{al, r11, r7, plus, r0, ASR, 13, Offset}, 536 "al r11 r7 plus r0 ASR 13 Offset", 537 "PositiveOffset_al_r11_r7_plus_r0_ASR_13_Offset", 538 ARRAY_SIZE(kPositiveOffset), 539 kPositiveOffset}, 540 {{al, r1, r2, plus, r0, ASR, 9, Offset}, 541 "al r1 r2 plus r0 ASR 9 Offset", 542 "PositiveOffset_al_r1_r2_plus_r0_ASR_9_Offset", 543 ARRAY_SIZE(kPositiveOffset), 544 kPositiveOffset}, 545 {{al, r6, r3, plus, r11, ASR, 9, Offset}, 546 "al r6 r3 plus r11 ASR 9 Offset", 547 "PositiveOffset_al_r6_r3_plus_r11_ASR_9_Offset", 548 ARRAY_SIZE(kPositiveOffset), 549 kPositiveOffset}, 550 {{al, r14, r12, plus, r4, ASR, 4, Offset}, 551 "al r14 r12 plus r4 ASR 4 Offset", 552 "PositiveOffset_al_r14_r12_plus_r4_ASR_4_Offset", 553 ARRAY_SIZE(kPositiveOffset), 554 kPositiveOffset}, 555 {{al, r7, r3, plus, r0, LSR, 14, Offset}, 556 "al r7 r3 plus r0 LSR 14 Offset", 557 "PositiveOffset_al_r7_r3_plus_r0_LSR_14_Offset", 558 ARRAY_SIZE(kPositiveOffset), 559 kPositiveOffset}, 560 {{al, r7, r0, plus, r5, ASR, 4, Offset}, 561 "al r7 r0 plus r5 ASR 4 Offset", 562 "PositiveOffset_al_r7_r0_plus_r5_ASR_4_Offset", 563 ARRAY_SIZE(kPositiveOffset), 564 kPositiveOffset}, 565 {{al, r12, r1, plus, r6, ASR, 13, Offset}, 566 "al r12 r1 plus r6 ASR 13 Offset", 567 "PositiveOffset_al_r12_r1_plus_r6_ASR_13_Offset", 568 ARRAY_SIZE(kPositiveOffset), 569 kPositiveOffset}, 570 {{al, r14, r9, plus, r5, ASR, 32, Offset}, 571 "al r14 r9 plus r5 ASR 32 Offset", 572 "PositiveOffset_al_r14_r9_plus_r5_ASR_32_Offset", 573 ARRAY_SIZE(kPositiveOffset), 574 kPositiveOffset}, 575 {{al, r8, r2, plus, r1, ASR, 24, Offset}, 576 "al r8 r2 plus r1 ASR 24 Offset", 577 "PositiveOffset_al_r8_r2_plus_r1_ASR_24_Offset", 578 ARRAY_SIZE(kPositiveOffset), 579 kPositiveOffset}, 580 {{al, r8, r10, plus, r7, ASR, 3, Offset}, 581 "al r8 r10 plus r7 ASR 3 Offset", 582 "PositiveOffset_al_r8_r10_plus_r7_ASR_3_Offset", 583 ARRAY_SIZE(kPositiveOffset), 584 kPositiveOffset}, 585 {{al, r3, r1, plus, r11, LSR, 15, Offset}, 586 "al r3 r1 plus r11 LSR 15 Offset", 587 "PositiveOffset_al_r3_r1_plus_r11_LSR_15_Offset", 588 ARRAY_SIZE(kPositiveOffset), 589 kPositiveOffset}, 590 {{al, r3, r11, plus, r0, LSR, 19, Offset}, 591 "al r3 r11 plus r0 LSR 19 Offset", 592 "PositiveOffset_al_r3_r11_plus_r0_LSR_19_Offset", 593 ARRAY_SIZE(kPositiveOffset), 594 kPositiveOffset}, 595 {{al, r12, r0, plus, r9, ASR, 8, Offset}, 596 "al r12 r0 plus r9 ASR 8 Offset", 597 "PositiveOffset_al_r12_r0_plus_r9_ASR_8_Offset", 598 ARRAY_SIZE(kPositiveOffset), 599 kPositiveOffset}, 600 {{al, r5, r8, plus, r2, ASR, 22, Offset}, 601 "al r5 r8 plus r2 ASR 22 Offset", 602 "PositiveOffset_al_r5_r8_plus_r2_ASR_22_Offset", 603 ARRAY_SIZE(kPositiveOffset), 604 kPositiveOffset}, 605 {{al, r12, r10, plus, r6, ASR, 17, Offset}, 606 "al r12 r10 plus r6 ASR 17 Offset", 607 "PositiveOffset_al_r12_r10_plus_r6_ASR_17_Offset", 608 ARRAY_SIZE(kPositiveOffset), 609 kPositiveOffset}, 610 {{al, r14, r10, plus, r9, ASR, 7, Offset}, 611 "al r14 r10 plus r9 ASR 7 Offset", 612 "PositiveOffset_al_r14_r10_plus_r9_ASR_7_Offset", 613 ARRAY_SIZE(kPositiveOffset), 614 kPositiveOffset}, 615 {{al, r2, r7, plus, r0, ASR, 3, Offset}, 616 "al r2 r7 plus r0 ASR 3 Offset", 617 "PositiveOffset_al_r2_r7_plus_r0_ASR_3_Offset", 618 ARRAY_SIZE(kPositiveOffset), 619 kPositiveOffset}, 620 {{al, r1, r6, plus, r12, LSR, 5, Offset}, 621 "al r1 r6 plus r12 LSR 5 Offset", 622 "PositiveOffset_al_r1_r6_plus_r12_LSR_5_Offset", 623 ARRAY_SIZE(kPositiveOffset), 624 kPositiveOffset}, 625 {{al, r9, r8, plus, r7, LSR, 2, Offset}, 626 "al r9 r8 plus r7 LSR 2 Offset", 627 "PositiveOffset_al_r9_r8_plus_r7_LSR_2_Offset", 628 ARRAY_SIZE(kPositiveOffset), 629 kPositiveOffset}, 630 {{al, r4, r9, plus, r0, ASR, 23, Offset}, 631 "al r4 r9 plus r0 ASR 23 Offset", 632 "PositiveOffset_al_r4_r9_plus_r0_ASR_23_Offset", 633 ARRAY_SIZE(kPositiveOffset), 634 kPositiveOffset}, 635 {{al, r6, r9, plus, r10, LSR, 14, Offset}, 636 "al r6 r9 plus r10 LSR 14 Offset", 637 "PositiveOffset_al_r6_r9_plus_r10_LSR_14_Offset", 638 ARRAY_SIZE(kPositiveOffset), 639 kPositiveOffset}, 640 {{al, r14, r0, plus, r2, ASR, 11, Offset}, 641 "al r14 r0 plus r2 ASR 11 Offset", 642 "PositiveOffset_al_r14_r0_plus_r2_ASR_11_Offset", 643 ARRAY_SIZE(kPositiveOffset), 644 kPositiveOffset}, 645 {{al, r8, r2, plus, r0, LSR, 24, Offset}, 646 "al r8 r2 plus r0 LSR 24 Offset", 647 "PositiveOffset_al_r8_r2_plus_r0_LSR_24_Offset", 648 ARRAY_SIZE(kPositiveOffset), 649 kPositiveOffset}, 650 {{al, r12, r4, plus, r5, LSR, 5, Offset}, 651 "al r12 r4 plus r5 LSR 5 Offset", 652 "PositiveOffset_al_r12_r4_plus_r5_LSR_5_Offset", 653 ARRAY_SIZE(kPositiveOffset), 654 kPositiveOffset}, 655 {{al, r9, r6, plus, r5, LSR, 11, Offset}, 656 "al r9 r6 plus r5 LSR 11 Offset", 657 "PositiveOffset_al_r9_r6_plus_r5_LSR_11_Offset", 658 ARRAY_SIZE(kPositiveOffset), 659 kPositiveOffset}, 660 {{al, r5, r6, plus, r14, LSR, 4, Offset}, 661 "al r5 r6 plus r14 LSR 4 Offset", 662 "PositiveOffset_al_r5_r6_plus_r14_LSR_4_Offset", 663 ARRAY_SIZE(kPositiveOffset), 664 kPositiveOffset}, 665 {{al, r2, r0, plus, r10, LSR, 15, Offset}, 666 "al r2 r0 plus r10 LSR 15 Offset", 667 "PositiveOffset_al_r2_r0_plus_r10_LSR_15_Offset", 668 ARRAY_SIZE(kPositiveOffset), 669 kPositiveOffset}, 670 {{al, r9, r5, plus, r1, LSR, 22, Offset}, 671 "al r9 r5 plus r1 LSR 22 Offset", 672 "PositiveOffset_al_r9_r5_plus_r1_LSR_22_Offset", 673 ARRAY_SIZE(kPositiveOffset), 674 kPositiveOffset}, 675 {{al, r5, r6, plus, r0, LSR, 26, Offset}, 676 "al r5 r6 plus r0 LSR 26 Offset", 677 "PositiveOffset_al_r5_r6_plus_r0_LSR_26_Offset", 678 ARRAY_SIZE(kPositiveOffset), 679 kPositiveOffset}, 680 {{al, r9, r6, plus, r5, ASR, 19, Offset}, 681 "al r9 r6 plus r5 ASR 19 Offset", 682 "PositiveOffset_al_r9_r6_plus_r5_ASR_19_Offset", 683 ARRAY_SIZE(kPositiveOffset), 684 kPositiveOffset}, 685 {{al, r6, r12, plus, r11, ASR, 3, Offset}, 686 "al r6 r12 plus r11 ASR 3 Offset", 687 "PositiveOffset_al_r6_r12_plus_r11_ASR_3_Offset", 688 ARRAY_SIZE(kPositiveOffset), 689 kPositiveOffset}, 690 {{al, r8, r1, plus, r4, ASR, 30, Offset}, 691 "al r8 r1 plus r4 ASR 30 Offset", 692 "PositiveOffset_al_r8_r1_plus_r4_ASR_30_Offset", 693 ARRAY_SIZE(kPositiveOffset), 694 kPositiveOffset}, 695 {{al, r3, r10, plus, r5, LSR, 22, Offset}, 696 "al r3 r10 plus r5 LSR 22 Offset", 697 "PositiveOffset_al_r3_r10_plus_r5_LSR_22_Offset", 698 ARRAY_SIZE(kPositiveOffset), 699 kPositiveOffset}, 700 {{al, r3, r8, plus, r6, ASR, 8, Offset}, 701 "al r3 r8 plus r6 ASR 8 Offset", 702 "PositiveOffset_al_r3_r8_plus_r6_ASR_8_Offset", 703 ARRAY_SIZE(kPositiveOffset), 704 kPositiveOffset}, 705 {{al, r1, r5, plus, r9, ASR, 26, Offset}, 706 "al r1 r5 plus r9 ASR 26 Offset", 707 "PositiveOffset_al_r1_r5_plus_r9_ASR_26_Offset", 708 ARRAY_SIZE(kPositiveOffset), 709 kPositiveOffset}, 710 {{al, r6, r14, plus, r0, LSR, 7, Offset}, 711 "al r6 r14 plus r0 LSR 7 Offset", 712 "PositiveOffset_al_r6_r14_plus_r0_LSR_7_Offset", 713 ARRAY_SIZE(kPositiveOffset), 714 kPositiveOffset}, 715 {{al, r8, r2, plus, r14, LSR, 20, Offset}, 716 "al r8 r2 plus r14 LSR 20 Offset", 717 "PositiveOffset_al_r8_r2_plus_r14_LSR_20_Offset", 718 ARRAY_SIZE(kPositiveOffset), 719 kPositiveOffset}, 720 {{al, r5, r11, plus, r2, LSR, 16, Offset}, 721 "al r5 r11 plus r2 LSR 16 Offset", 722 "PositiveOffset_al_r5_r11_plus_r2_LSR_16_Offset", 723 ARRAY_SIZE(kPositiveOffset), 724 kPositiveOffset}, 725 {{al, r6, r3, plus, r9, ASR, 23, Offset}, 726 "al r6 r3 plus r9 ASR 23 Offset", 727 "PositiveOffset_al_r6_r3_plus_r9_ASR_23_Offset", 728 ARRAY_SIZE(kPositiveOffset), 729 kPositiveOffset}, 730 {{al, r7, r14, plus, r0, LSR, 9, Offset}, 731 "al r7 r14 plus r0 LSR 9 Offset", 732 "PositiveOffset_al_r7_r14_plus_r0_LSR_9_Offset", 733 ARRAY_SIZE(kPositiveOffset), 734 kPositiveOffset}, 735 {{al, r2, r0, plus, r14, ASR, 7, Offset}, 736 "al r2 r0 plus r14 ASR 7 Offset", 737 "PositiveOffset_al_r2_r0_plus_r14_ASR_7_Offset", 738 ARRAY_SIZE(kPositiveOffset), 739 kPositiveOffset}, 740 {{al, r9, r12, plus, r5, LSR, 9, Offset}, 741 "al r9 r12 plus r5 LSR 9 Offset", 742 "PositiveOffset_al_r9_r12_plus_r5_LSR_9_Offset", 743 ARRAY_SIZE(kPositiveOffset), 744 kPositiveOffset}, 745 {{al, r7, r4, plus, r3, LSR, 14, Offset}, 746 "al r7 r4 plus r3 LSR 14 Offset", 747 "PositiveOffset_al_r7_r4_plus_r3_LSR_14_Offset", 748 ARRAY_SIZE(kPositiveOffset), 749 kPositiveOffset}, 750 {{al, r11, r0, plus, r10, ASR, 20, Offset}, 751 "al r11 r0 plus r10 ASR 20 Offset", 752 "PositiveOffset_al_r11_r0_plus_r10_ASR_20_Offset", 753 ARRAY_SIZE(kPositiveOffset), 754 kPositiveOffset}, 755 {{al, r11, r0, plus, r1, LSR, 21, Offset}, 756 "al r11 r0 plus r1 LSR 21 Offset", 757 "PositiveOffset_al_r11_r0_plus_r1_LSR_21_Offset", 758 ARRAY_SIZE(kPositiveOffset), 759 kPositiveOffset}, 760 {{al, r11, r9, plus, r8, ASR, 14, Offset}, 761 "al r11 r9 plus r8 ASR 14 Offset", 762 "PositiveOffset_al_r11_r9_plus_r8_ASR_14_Offset", 763 ARRAY_SIZE(kPositiveOffset), 764 kPositiveOffset}, 765 {{al, r5, r14, plus, r10, ASR, 10, Offset}, 766 "al r5 r14 plus r10 ASR 10 Offset", 767 "PositiveOffset_al_r5_r14_plus_r10_ASR_10_Offset", 768 ARRAY_SIZE(kPositiveOffset), 769 kPositiveOffset}, 770 {{al, r1, r11, plus, r2, LSR, 12, Offset}, 771 "al r1 r11 plus r2 LSR 12 Offset", 772 "PositiveOffset_al_r1_r11_plus_r2_LSR_12_Offset", 773 ARRAY_SIZE(kPositiveOffset), 774 kPositiveOffset}, 775 {{al, r14, r12, plus, r0, ASR, 7, Offset}, 776 "al r14 r12 plus r0 ASR 7 Offset", 777 "PositiveOffset_al_r14_r12_plus_r0_ASR_7_Offset", 778 ARRAY_SIZE(kPositiveOffset), 779 kPositiveOffset}, 780 {{al, r14, r6, plus, r4, ASR, 2, Offset}, 781 "al r14 r6 plus r4 ASR 2 Offset", 782 "PositiveOffset_al_r14_r6_plus_r4_ASR_2_Offset", 783 ARRAY_SIZE(kPositiveOffset), 784 kPositiveOffset}, 785 {{al, r4, r8, plus, r1, ASR, 9, Offset}, 786 "al r4 r8 plus r1 ASR 9 Offset", 787 "PositiveOffset_al_r4_r8_plus_r1_ASR_9_Offset", 788 ARRAY_SIZE(kPositiveOffset), 789 kPositiveOffset}, 790 {{al, r4, r8, plus, r2, LSR, 2, Offset}, 791 "al r4 r8 plus r2 LSR 2 Offset", 792 "PositiveOffset_al_r4_r8_plus_r2_LSR_2_Offset", 793 ARRAY_SIZE(kPositiveOffset), 794 kPositiveOffset}, 795 {{al, r0, r11, plus, r14, LSR, 17, Offset}, 796 "al r0 r11 plus r14 LSR 17 Offset", 797 "PositiveOffset_al_r0_r11_plus_r14_LSR_17_Offset", 798 ARRAY_SIZE(kPositiveOffset), 799 kPositiveOffset}, 800 {{al, r4, r14, plus, r8, LSR, 31, Offset}, 801 "al r4 r14 plus r8 LSR 31 Offset", 802 "PositiveOffset_al_r4_r14_plus_r8_LSR_31_Offset", 803 ARRAY_SIZE(kPositiveOffset), 804 kPositiveOffset}, 805 {{al, r1, r12, plus, r7, ASR, 1, Offset}, 806 "al r1 r12 plus r7 ASR 1 Offset", 807 "PositiveOffset_al_r1_r12_plus_r7_ASR_1_Offset", 808 ARRAY_SIZE(kPositiveOffset), 809 kPositiveOffset}, 810 {{al, r12, r6, plus, r10, LSR, 7, Offset}, 811 "al r12 r6 plus r10 LSR 7 Offset", 812 "PositiveOffset_al_r12_r6_plus_r10_LSR_7_Offset", 813 ARRAY_SIZE(kPositiveOffset), 814 kPositiveOffset}, 815 {{al, r1, r5, plus, r11, LSR, 9, Offset}, 816 "al r1 r5 plus r11 LSR 9 Offset", 817 "PositiveOffset_al_r1_r5_plus_r11_LSR_9_Offset", 818 ARRAY_SIZE(kPositiveOffset), 819 kPositiveOffset}, 820 {{al, r6, r5, plus, r10, LSR, 16, Offset}, 821 "al r6 r5 plus r10 LSR 16 Offset", 822 "PositiveOffset_al_r6_r5_plus_r10_LSR_16_Offset", 823 ARRAY_SIZE(kPositiveOffset), 824 kPositiveOffset}, 825 {{al, r6, r8, plus, r14, ASR, 18, Offset}, 826 "al r6 r8 plus r14 ASR 18 Offset", 827 "PositiveOffset_al_r6_r8_plus_r14_ASR_18_Offset", 828 ARRAY_SIZE(kPositiveOffset), 829 kPositiveOffset}, 830 {{al, r5, r11, plus, r1, ASR, 20, Offset}, 831 "al r5 r11 plus r1 ASR 20 Offset", 832 "PositiveOffset_al_r5_r11_plus_r1_ASR_20_Offset", 833 ARRAY_SIZE(kPositiveOffset), 834 kPositiveOffset}, 835 {{al, r6, r12, minus, r11, LSR, 3, Offset}, 836 "al r6 r12 minus r11 LSR 3 Offset", 837 "NegativeOffset_al_r6_r12_minus_r11_LSR_3_Offset", 838 ARRAY_SIZE(kNegativeOffset), 839 kNegativeOffset}, 840 {{al, r4, r10, minus, r6, ASR, 15, Offset}, 841 "al r4 r10 minus r6 ASR 15 Offset", 842 "NegativeOffset_al_r4_r10_minus_r6_ASR_15_Offset", 843 ARRAY_SIZE(kNegativeOffset), 844 kNegativeOffset}, 845 {{al, r6, r2, minus, r3, LSR, 4, Offset}, 846 "al r6 r2 minus r3 LSR 4 Offset", 847 "NegativeOffset_al_r6_r2_minus_r3_LSR_4_Offset", 848 ARRAY_SIZE(kNegativeOffset), 849 kNegativeOffset}, 850 {{al, r9, r10, minus, r11, LSR, 15, Offset}, 851 "al r9 r10 minus r11 LSR 15 Offset", 852 "NegativeOffset_al_r9_r10_minus_r11_LSR_15_Offset", 853 ARRAY_SIZE(kNegativeOffset), 854 kNegativeOffset}, 855 {{al, r9, r14, minus, r10, LSR, 6, Offset}, 856 "al r9 r14 minus r10 LSR 6 Offset", 857 "NegativeOffset_al_r9_r14_minus_r10_LSR_6_Offset", 858 ARRAY_SIZE(kNegativeOffset), 859 kNegativeOffset}, 860 {{al, r9, r14, minus, r8, LSR, 8, Offset}, 861 "al r9 r14 minus r8 LSR 8 Offset", 862 "NegativeOffset_al_r9_r14_minus_r8_LSR_8_Offset", 863 ARRAY_SIZE(kNegativeOffset), 864 kNegativeOffset}, 865 {{al, r14, r5, minus, r4, LSR, 30, Offset}, 866 "al r14 r5 minus r4 LSR 30 Offset", 867 "NegativeOffset_al_r14_r5_minus_r4_LSR_30_Offset", 868 ARRAY_SIZE(kNegativeOffset), 869 kNegativeOffset}, 870 {{al, r2, r10, minus, r4, LSR, 12, Offset}, 871 "al r2 r10 minus r4 LSR 12 Offset", 872 "NegativeOffset_al_r2_r10_minus_r4_LSR_12_Offset", 873 ARRAY_SIZE(kNegativeOffset), 874 kNegativeOffset}, 875 {{al, r12, r14, minus, r8, ASR, 3, Offset}, 876 "al r12 r14 minus r8 ASR 3 Offset", 877 "NegativeOffset_al_r12_r14_minus_r8_ASR_3_Offset", 878 ARRAY_SIZE(kNegativeOffset), 879 kNegativeOffset}, 880 {{al, r7, r1, minus, r10, LSR, 26, Offset}, 881 "al r7 r1 minus r10 LSR 26 Offset", 882 "NegativeOffset_al_r7_r1_minus_r10_LSR_26_Offset", 883 ARRAY_SIZE(kNegativeOffset), 884 kNegativeOffset}, 885 {{al, r4, r0, minus, r6, ASR, 23, Offset}, 886 "al r4 r0 minus r6 ASR 23 Offset", 887 "NegativeOffset_al_r4_r0_minus_r6_ASR_23_Offset", 888 ARRAY_SIZE(kNegativeOffset), 889 kNegativeOffset}, 890 {{al, r10, r7, minus, r3, LSR, 3, Offset}, 891 "al r10 r7 minus r3 LSR 3 Offset", 892 "NegativeOffset_al_r10_r7_minus_r3_LSR_3_Offset", 893 ARRAY_SIZE(kNegativeOffset), 894 kNegativeOffset}, 895 {{al, r5, r2, minus, r0, LSR, 3, Offset}, 896 "al r5 r2 minus r0 LSR 3 Offset", 897 "NegativeOffset_al_r5_r2_minus_r0_LSR_3_Offset", 898 ARRAY_SIZE(kNegativeOffset), 899 kNegativeOffset}, 900 {{al, r10, r9, minus, r3, ASR, 15, Offset}, 901 "al r10 r9 minus r3 ASR 15 Offset", 902 "NegativeOffset_al_r10_r9_minus_r3_ASR_15_Offset", 903 ARRAY_SIZE(kNegativeOffset), 904 kNegativeOffset}, 905 {{al, r10, r12, minus, r11, ASR, 30, Offset}, 906 "al r10 r12 minus r11 ASR 30 Offset", 907 "NegativeOffset_al_r10_r12_minus_r11_ASR_30_Offset", 908 ARRAY_SIZE(kNegativeOffset), 909 kNegativeOffset}, 910 {{al, r3, r10, minus, r8, LSR, 8, Offset}, 911 "al r3 r10 minus r8 LSR 8 Offset", 912 "NegativeOffset_al_r3_r10_minus_r8_LSR_8_Offset", 913 ARRAY_SIZE(kNegativeOffset), 914 kNegativeOffset}, 915 {{al, r3, r0, minus, r9, ASR, 15, Offset}, 916 "al r3 r0 minus r9 ASR 15 Offset", 917 "NegativeOffset_al_r3_r0_minus_r9_ASR_15_Offset", 918 ARRAY_SIZE(kNegativeOffset), 919 kNegativeOffset}, 920 {{al, r8, r11, minus, r10, ASR, 31, Offset}, 921 "al r8 r11 minus r10 ASR 31 Offset", 922 "NegativeOffset_al_r8_r11_minus_r10_ASR_31_Offset", 923 ARRAY_SIZE(kNegativeOffset), 924 kNegativeOffset}, 925 {{al, r2, r8, minus, r5, LSR, 10, Offset}, 926 "al r2 r8 minus r5 LSR 10 Offset", 927 "NegativeOffset_al_r2_r8_minus_r5_LSR_10_Offset", 928 ARRAY_SIZE(kNegativeOffset), 929 kNegativeOffset}, 930 {{al, r4, r3, minus, r6, LSR, 24, Offset}, 931 "al r4 r3 minus r6 LSR 24 Offset", 932 "NegativeOffset_al_r4_r3_minus_r6_LSR_24_Offset", 933 ARRAY_SIZE(kNegativeOffset), 934 kNegativeOffset}, 935 {{al, r14, r2, minus, r12, ASR, 1, Offset}, 936 "al r14 r2 minus r12 ASR 1 Offset", 937 "NegativeOffset_al_r14_r2_minus_r12_ASR_1_Offset", 938 ARRAY_SIZE(kNegativeOffset), 939 kNegativeOffset}, 940 {{al, r4, r12, minus, r10, ASR, 4, Offset}, 941 "al r4 r12 minus r10 ASR 4 Offset", 942 "NegativeOffset_al_r4_r12_minus_r10_ASR_4_Offset", 943 ARRAY_SIZE(kNegativeOffset), 944 kNegativeOffset}, 945 {{al, r5, r2, minus, r10, ASR, 16, Offset}, 946 "al r5 r2 minus r10 ASR 16 Offset", 947 "NegativeOffset_al_r5_r2_minus_r10_ASR_16_Offset", 948 ARRAY_SIZE(kNegativeOffset), 949 kNegativeOffset}, 950 {{al, r4, r8, minus, r2, LSR, 8, Offset}, 951 "al r4 r8 minus r2 LSR 8 Offset", 952 "NegativeOffset_al_r4_r8_minus_r2_LSR_8_Offset", 953 ARRAY_SIZE(kNegativeOffset), 954 kNegativeOffset}, 955 {{al, r6, r3, minus, r4, LSR, 11, Offset}, 956 "al r6 r3 minus r4 LSR 11 Offset", 957 "NegativeOffset_al_r6_r3_minus_r4_LSR_11_Offset", 958 ARRAY_SIZE(kNegativeOffset), 959 kNegativeOffset}, 960 {{al, r1, r10, minus, r4, ASR, 31, Offset}, 961 "al r1 r10 minus r4 ASR 31 Offset", 962 "NegativeOffset_al_r1_r10_minus_r4_ASR_31_Offset", 963 ARRAY_SIZE(kNegativeOffset), 964 kNegativeOffset}, 965 {{al, r14, r8, minus, r0, ASR, 6, Offset}, 966 "al r14 r8 minus r0 ASR 6 Offset", 967 "NegativeOffset_al_r14_r8_minus_r0_ASR_6_Offset", 968 ARRAY_SIZE(kNegativeOffset), 969 kNegativeOffset}, 970 {{al, r10, r5, minus, r1, LSR, 14, Offset}, 971 "al r10 r5 minus r1 LSR 14 Offset", 972 "NegativeOffset_al_r10_r5_minus_r1_LSR_14_Offset", 973 ARRAY_SIZE(kNegativeOffset), 974 kNegativeOffset}, 975 {{al, r12, r10, minus, r1, ASR, 20, Offset}, 976 "al r12 r10 minus r1 ASR 20 Offset", 977 "NegativeOffset_al_r12_r10_minus_r1_ASR_20_Offset", 978 ARRAY_SIZE(kNegativeOffset), 979 kNegativeOffset}, 980 {{al, r3, r10, minus, r8, LSR, 29, Offset}, 981 "al r3 r10 minus r8 LSR 29 Offset", 982 "NegativeOffset_al_r3_r10_minus_r8_LSR_29_Offset", 983 ARRAY_SIZE(kNegativeOffset), 984 kNegativeOffset}, 985 {{al, r11, r1, minus, r10, ASR, 31, Offset}, 986 "al r11 r1 minus r10 ASR 31 Offset", 987 "NegativeOffset_al_r11_r1_minus_r10_ASR_31_Offset", 988 ARRAY_SIZE(kNegativeOffset), 989 kNegativeOffset}, 990 {{al, r2, r12, minus, r7, ASR, 24, Offset}, 991 "al r2 r12 minus r7 ASR 24 Offset", 992 "NegativeOffset_al_r2_r12_minus_r7_ASR_24_Offset", 993 ARRAY_SIZE(kNegativeOffset), 994 kNegativeOffset}, 995 {{al, r6, r1, minus, r3, LSR, 30, Offset}, 996 "al r6 r1 minus r3 LSR 30 Offset", 997 "NegativeOffset_al_r6_r1_minus_r3_LSR_30_Offset", 998 ARRAY_SIZE(kNegativeOffset), 999 kNegativeOffset}, 1000 {{al, r8, r11, minus, r10, ASR, 24, Offset}, 1001 "al r8 r11 minus r10 ASR 24 Offset", 1002 "NegativeOffset_al_r8_r11_minus_r10_ASR_24_Offset", 1003 ARRAY_SIZE(kNegativeOffset), 1004 kNegativeOffset}, 1005 {{al, r1, r11, minus, r2, ASR, 9, Offset}, 1006 "al r1 r11 minus r2 ASR 9 Offset", 1007 "NegativeOffset_al_r1_r11_minus_r2_ASR_9_Offset", 1008 ARRAY_SIZE(kNegativeOffset), 1009 kNegativeOffset}, 1010 {{al, r7, r3, minus, r12, ASR, 2, Offset}, 1011 "al r7 r3 minus r12 ASR 2 Offset", 1012 "NegativeOffset_al_r7_r3_minus_r12_ASR_2_Offset", 1013 ARRAY_SIZE(kNegativeOffset), 1014 kNegativeOffset}, 1015 {{al, r11, r8, minus, r12, ASR, 19, Offset}, 1016 "al r11 r8 minus r12 ASR 19 Offset", 1017 "NegativeOffset_al_r11_r8_minus_r12_ASR_19_Offset", 1018 ARRAY_SIZE(kNegativeOffset), 1019 kNegativeOffset}, 1020 {{al, r11, r7, minus, r0, ASR, 2, Offset}, 1021 "al r11 r7 minus r0 ASR 2 Offset", 1022 "NegativeOffset_al_r11_r7_minus_r0_ASR_2_Offset", 1023 ARRAY_SIZE(kNegativeOffset), 1024 kNegativeOffset}, 1025 {{al, r12, r0, minus, r6, ASR, 4, Offset}, 1026 "al r12 r0 minus r6 ASR 4 Offset", 1027 "NegativeOffset_al_r12_r0_minus_r6_ASR_4_Offset", 1028 ARRAY_SIZE(kNegativeOffset), 1029 kNegativeOffset}, 1030 {{al, r8, r10, minus, r12, ASR, 9, Offset}, 1031 "al r8 r10 minus r12 ASR 9 Offset", 1032 "NegativeOffset_al_r8_r10_minus_r12_ASR_9_Offset", 1033 ARRAY_SIZE(kNegativeOffset), 1034 kNegativeOffset}, 1035 {{al, r11, r9, minus, r6, LSR, 20, Offset}, 1036 "al r11 r9 minus r6 LSR 20 Offset", 1037 "NegativeOffset_al_r11_r9_minus_r6_LSR_20_Offset", 1038 ARRAY_SIZE(kNegativeOffset), 1039 kNegativeOffset}, 1040 {{al, r11, r3, minus, r0, ASR, 14, Offset}, 1041 "al r11 r3 minus r0 ASR 14 Offset", 1042 "NegativeOffset_al_r11_r3_minus_r0_ASR_14_Offset", 1043 ARRAY_SIZE(kNegativeOffset), 1044 kNegativeOffset}, 1045 {{al, r6, r7, minus, r14, LSR, 16, Offset}, 1046 "al r6 r7 minus r14 LSR 16 Offset", 1047 "NegativeOffset_al_r6_r7_minus_r14_LSR_16_Offset", 1048 ARRAY_SIZE(kNegativeOffset), 1049 kNegativeOffset}, 1050 {{al, r2, r5, minus, r7, LSR, 32, Offset}, 1051 "al r2 r5 minus r7 LSR 32 Offset", 1052 "NegativeOffset_al_r2_r5_minus_r7_LSR_32_Offset", 1053 ARRAY_SIZE(kNegativeOffset), 1054 kNegativeOffset}, 1055 {{al, r7, r5, minus, r6, ASR, 10, Offset}, 1056 "al r7 r5 minus r6 ASR 10 Offset", 1057 "NegativeOffset_al_r7_r5_minus_r6_ASR_10_Offset", 1058 ARRAY_SIZE(kNegativeOffset), 1059 kNegativeOffset}, 1060 {{al, r10, r5, minus, r4, ASR, 22, Offset}, 1061 "al r10 r5 minus r4 ASR 22 Offset", 1062 "NegativeOffset_al_r10_r5_minus_r4_ASR_22_Offset", 1063 ARRAY_SIZE(kNegativeOffset), 1064 kNegativeOffset}, 1065 {{al, r10, r9, minus, r8, ASR, 3, Offset}, 1066 "al r10 r9 minus r8 ASR 3 Offset", 1067 "NegativeOffset_al_r10_r9_minus_r8_ASR_3_Offset", 1068 ARRAY_SIZE(kNegativeOffset), 1069 kNegativeOffset}, 1070 {{al, r12, r10, minus, r8, LSR, 31, Offset}, 1071 "al r12 r10 minus r8 LSR 31 Offset", 1072 "NegativeOffset_al_r12_r10_minus_r8_LSR_31_Offset", 1073 ARRAY_SIZE(kNegativeOffset), 1074 kNegativeOffset}, 1075 {{al, r1, r9, minus, r11, LSR, 24, Offset}, 1076 "al r1 r9 minus r11 LSR 24 Offset", 1077 "NegativeOffset_al_r1_r9_minus_r11_LSR_24_Offset", 1078 ARRAY_SIZE(kNegativeOffset), 1079 kNegativeOffset}, 1080 {{al, r2, r10, minus, r4, LSR, 15, Offset}, 1081 "al r2 r10 minus r4 LSR 15 Offset", 1082 "NegativeOffset_al_r2_r10_minus_r4_LSR_15_Offset", 1083 ARRAY_SIZE(kNegativeOffset), 1084 kNegativeOffset}, 1085 {{al, r3, r7, minus, r10, ASR, 7, Offset}, 1086 "al r3 r7 minus r10 ASR 7 Offset", 1087 "NegativeOffset_al_r3_r7_minus_r10_ASR_7_Offset", 1088 ARRAY_SIZE(kNegativeOffset), 1089 kNegativeOffset}, 1090 {{al, r14, r0, minus, r4, ASR, 23, Offset}, 1091 "al r14 r0 minus r4 ASR 23 Offset", 1092 "NegativeOffset_al_r14_r0_minus_r4_ASR_23_Offset", 1093 ARRAY_SIZE(kNegativeOffset), 1094 kNegativeOffset}, 1095 {{al, r4, r3, minus, r10, LSR, 19, Offset}, 1096 "al r4 r3 minus r10 LSR 19 Offset", 1097 "NegativeOffset_al_r4_r3_minus_r10_LSR_19_Offset", 1098 ARRAY_SIZE(kNegativeOffset), 1099 kNegativeOffset}, 1100 {{al, r8, r1, minus, r0, LSR, 31, Offset}, 1101 "al r8 r1 minus r0 LSR 31 Offset", 1102 "NegativeOffset_al_r8_r1_minus_r0_LSR_31_Offset", 1103 ARRAY_SIZE(kNegativeOffset), 1104 kNegativeOffset}, 1105 {{al, r3, r4, minus, r5, LSR, 2, Offset}, 1106 "al r3 r4 minus r5 LSR 2 Offset", 1107 "NegativeOffset_al_r3_r4_minus_r5_LSR_2_Offset", 1108 ARRAY_SIZE(kNegativeOffset), 1109 kNegativeOffset}, 1110 {{al, r11, r3, minus, r4, LSR, 22, Offset}, 1111 "al r11 r3 minus r4 LSR 22 Offset", 1112 "NegativeOffset_al_r11_r3_minus_r4_LSR_22_Offset", 1113 ARRAY_SIZE(kNegativeOffset), 1114 kNegativeOffset}, 1115 {{al, r9, r5, minus, r1, LSR, 25, Offset}, 1116 "al r9 r5 minus r1 LSR 25 Offset", 1117 "NegativeOffset_al_r9_r5_minus_r1_LSR_25_Offset", 1118 ARRAY_SIZE(kNegativeOffset), 1119 kNegativeOffset}, 1120 {{al, r1, r2, minus, r9, LSR, 24, Offset}, 1121 "al r1 r2 minus r9 LSR 24 Offset", 1122 "NegativeOffset_al_r1_r2_minus_r9_LSR_24_Offset", 1123 ARRAY_SIZE(kNegativeOffset), 1124 kNegativeOffset}, 1125 {{al, r1, r8, minus, r14, ASR, 29, Offset}, 1126 "al r1 r8 minus r14 ASR 29 Offset", 1127 "NegativeOffset_al_r1_r8_minus_r14_ASR_29_Offset", 1128 ARRAY_SIZE(kNegativeOffset), 1129 kNegativeOffset}, 1130 {{al, r6, r4, minus, r5, LSR, 17, Offset}, 1131 "al r6 r4 minus r5 LSR 17 Offset", 1132 "NegativeOffset_al_r6_r4_minus_r5_LSR_17_Offset", 1133 ARRAY_SIZE(kNegativeOffset), 1134 kNegativeOffset}, 1135 {{al, r6, r10, minus, r11, ASR, 29, Offset}, 1136 "al r6 r10 minus r11 ASR 29 Offset", 1137 "NegativeOffset_al_r6_r10_minus_r11_ASR_29_Offset", 1138 ARRAY_SIZE(kNegativeOffset), 1139 kNegativeOffset}, 1140 {{al, r4, r10, minus, r7, ASR, 10, Offset}, 1141 "al r4 r10 minus r7 ASR 10 Offset", 1142 "NegativeOffset_al_r4_r10_minus_r7_ASR_10_Offset", 1143 ARRAY_SIZE(kNegativeOffset), 1144 kNegativeOffset}, 1145 {{al, r6, r4, minus, r7, LSR, 1, Offset}, 1146 "al r6 r4 minus r7 LSR 1 Offset", 1147 "NegativeOffset_al_r6_r4_minus_r7_LSR_1_Offset", 1148 ARRAY_SIZE(kNegativeOffset), 1149 kNegativeOffset}, 1150 {{al, r2, r7, minus, r8, ASR, 11, Offset}, 1151 "al r2 r7 minus r8 ASR 11 Offset", 1152 "NegativeOffset_al_r2_r7_minus_r8_ASR_11_Offset", 1153 ARRAY_SIZE(kNegativeOffset), 1154 kNegativeOffset}, 1155 {{al, r9, r7, minus, r14, ASR, 13, Offset}, 1156 "al r9 r7 minus r14 ASR 13 Offset", 1157 "NegativeOffset_al_r9_r7_minus_r14_ASR_13_Offset", 1158 ARRAY_SIZE(kNegativeOffset), 1159 kNegativeOffset}, 1160 {{al, r14, r10, minus, r8, ASR, 27, Offset}, 1161 "al r14 r10 minus r8 ASR 27 Offset", 1162 "NegativeOffset_al_r14_r10_minus_r8_ASR_27_Offset", 1163 ARRAY_SIZE(kNegativeOffset), 1164 kNegativeOffset}, 1165 {{al, r10, r14, minus, r1, ASR, 26, Offset}, 1166 "al r10 r14 minus r1 ASR 26 Offset", 1167 "NegativeOffset_al_r10_r14_minus_r1_ASR_26_Offset", 1168 ARRAY_SIZE(kNegativeOffset), 1169 kNegativeOffset}, 1170 {{al, r6, r4, minus, r9, ASR, 20, Offset}, 1171 "al r6 r4 minus r9 ASR 20 Offset", 1172 "NegativeOffset_al_r6_r4_minus_r9_ASR_20_Offset", 1173 ARRAY_SIZE(kNegativeOffset), 1174 kNegativeOffset}, 1175 {{al, r0, r6, minus, r11, ASR, 23, Offset}, 1176 "al r0 r6 minus r11 ASR 23 Offset", 1177 "NegativeOffset_al_r0_r6_minus_r11_ASR_23_Offset", 1178 ARRAY_SIZE(kNegativeOffset), 1179 kNegativeOffset}, 1180 {{al, r8, r3, minus, r9, ASR, 4, Offset}, 1181 "al r8 r3 minus r9 ASR 4 Offset", 1182 "NegativeOffset_al_r8_r3_minus_r9_ASR_4_Offset", 1183 ARRAY_SIZE(kNegativeOffset), 1184 kNegativeOffset}, 1185 {{al, r7, r1, minus, r8, LSR, 27, Offset}, 1186 "al r7 r1 minus r8 LSR 27 Offset", 1187 "NegativeOffset_al_r7_r1_minus_r8_LSR_27_Offset", 1188 ARRAY_SIZE(kNegativeOffset), 1189 kNegativeOffset}, 1190 {{al, r14, r5, minus, r7, LSR, 18, Offset}, 1191 "al r14 r5 minus r7 LSR 18 Offset", 1192 "NegativeOffset_al_r14_r5_minus_r7_LSR_18_Offset", 1193 ARRAY_SIZE(kNegativeOffset), 1194 kNegativeOffset}, 1195 {{al, r12, r7, minus, r3, LSR, 25, Offset}, 1196 "al r12 r7 minus r3 LSR 25 Offset", 1197 "NegativeOffset_al_r12_r7_minus_r3_LSR_25_Offset", 1198 ARRAY_SIZE(kNegativeOffset), 1199 kNegativeOffset}, 1200 {{al, r4, r10, minus, r14, LSR, 27, Offset}, 1201 "al r4 r10 minus r14 LSR 27 Offset", 1202 "NegativeOffset_al_r4_r10_minus_r14_LSR_27_Offset", 1203 ARRAY_SIZE(kNegativeOffset), 1204 kNegativeOffset}, 1205 {{al, r14, r7, minus, r8, LSR, 3, Offset}, 1206 "al r14 r7 minus r8 LSR 3 Offset", 1207 "NegativeOffset_al_r14_r7_minus_r8_LSR_3_Offset", 1208 ARRAY_SIZE(kNegativeOffset), 1209 kNegativeOffset}, 1210 {{al, r6, r9, minus, r5, LSR, 5, Offset}, 1211 "al r6 r9 minus r5 LSR 5 Offset", 1212 "NegativeOffset_al_r6_r9_minus_r5_LSR_5_Offset", 1213 ARRAY_SIZE(kNegativeOffset), 1214 kNegativeOffset}, 1215 {{al, r10, r11, minus, r1, LSR, 12, Offset}, 1216 "al r10 r11 minus r1 LSR 12 Offset", 1217 "NegativeOffset_al_r10_r11_minus_r1_LSR_12_Offset", 1218 ARRAY_SIZE(kNegativeOffset), 1219 kNegativeOffset}, 1220 {{al, r8, r12, minus, r0, LSR, 28, Offset}, 1221 "al r8 r12 minus r0 LSR 28 Offset", 1222 "NegativeOffset_al_r8_r12_minus_r0_LSR_28_Offset", 1223 ARRAY_SIZE(kNegativeOffset), 1224 kNegativeOffset}, 1225 {{al, r0, r6, minus, r2, LSR, 25, Offset}, 1226 "al r0 r6 minus r2 LSR 25 Offset", 1227 "NegativeOffset_al_r0_r6_minus_r2_LSR_25_Offset", 1228 ARRAY_SIZE(kNegativeOffset), 1229 kNegativeOffset}, 1230 {{al, r12, r3, minus, r10, ASR, 4, Offset}, 1231 "al r12 r3 minus r10 ASR 4 Offset", 1232 "NegativeOffset_al_r12_r3_minus_r10_ASR_4_Offset", 1233 ARRAY_SIZE(kNegativeOffset), 1234 kNegativeOffset}, 1235 {{al, r0, r10, minus, r12, LSR, 4, Offset}, 1236 "al r0 r10 minus r12 LSR 4 Offset", 1237 "NegativeOffset_al_r0_r10_minus_r12_LSR_4_Offset", 1238 ARRAY_SIZE(kNegativeOffset), 1239 kNegativeOffset}, 1240 {{al, r10, r14, minus, r7, ASR, 1, Offset}, 1241 "al r10 r14 minus r7 ASR 1 Offset", 1242 "NegativeOffset_al_r10_r14_minus_r7_ASR_1_Offset", 1243 ARRAY_SIZE(kNegativeOffset), 1244 kNegativeOffset}, 1245 {{al, r4, r9, minus, r0, ASR, 14, Offset}, 1246 "al r4 r9 minus r0 ASR 14 Offset", 1247 "NegativeOffset_al_r4_r9_minus_r0_ASR_14_Offset", 1248 ARRAY_SIZE(kNegativeOffset), 1249 kNegativeOffset}, 1250 {{al, r6, r12, minus, r0, LSR, 8, Offset}, 1251 "al r6 r12 minus r0 LSR 8 Offset", 1252 "NegativeOffset_al_r6_r12_minus_r0_LSR_8_Offset", 1253 ARRAY_SIZE(kNegativeOffset), 1254 kNegativeOffset}, 1255 {{al, r6, r9, minus, r3, LSR, 22, Offset}, 1256 "al r6 r9 minus r3 LSR 22 Offset", 1257 "NegativeOffset_al_r6_r9_minus_r3_LSR_22_Offset", 1258 ARRAY_SIZE(kNegativeOffset), 1259 kNegativeOffset}, 1260 {{al, r14, r11, minus, r6, LSR, 21, Offset}, 1261 "al r14 r11 minus r6 LSR 21 Offset", 1262 "NegativeOffset_al_r14_r11_minus_r6_LSR_21_Offset", 1263 ARRAY_SIZE(kNegativeOffset), 1264 kNegativeOffset}, 1265 {{al, r5, r14, minus, r0, LSR, 3, Offset}, 1266 "al r5 r14 minus r0 LSR 3 Offset", 1267 "NegativeOffset_al_r5_r14_minus_r0_LSR_3_Offset", 1268 ARRAY_SIZE(kNegativeOffset), 1269 kNegativeOffset}, 1270 {{al, r9, r0, minus, r2, ASR, 17, Offset}, 1271 "al r9 r0 minus r2 ASR 17 Offset", 1272 "NegativeOffset_al_r9_r0_minus_r2_ASR_17_Offset", 1273 ARRAY_SIZE(kNegativeOffset), 1274 kNegativeOffset}, 1275 {{al, r14, r10, minus, r4, ASR, 4, Offset}, 1276 "al r14 r10 minus r4 ASR 4 Offset", 1277 "NegativeOffset_al_r14_r10_minus_r4_ASR_4_Offset", 1278 ARRAY_SIZE(kNegativeOffset), 1279 kNegativeOffset}, 1280 {{al, r11, r8, minus, r9, LSR, 6, Offset}, 1281 "al r11 r8 minus r9 LSR 6 Offset", 1282 "NegativeOffset_al_r11_r8_minus_r9_LSR_6_Offset", 1283 ARRAY_SIZE(kNegativeOffset), 1284 kNegativeOffset}, 1285 {{al, r9, r4, minus, r12, ASR, 10, Offset}, 1286 "al r9 r4 minus r12 ASR 10 Offset", 1287 "NegativeOffset_al_r9_r4_minus_r12_ASR_10_Offset", 1288 ARRAY_SIZE(kNegativeOffset), 1289 kNegativeOffset}, 1290 {{al, r8, r12, minus, r5, ASR, 8, Offset}, 1291 "al r8 r12 minus r5 ASR 8 Offset", 1292 "NegativeOffset_al_r8_r12_minus_r5_ASR_8_Offset", 1293 ARRAY_SIZE(kNegativeOffset), 1294 kNegativeOffset}, 1295 {{al, r11, r10, minus, r5, LSR, 32, Offset}, 1296 "al r11 r10 minus r5 LSR 32 Offset", 1297 "NegativeOffset_al_r11_r10_minus_r5_LSR_32_Offset", 1298 ARRAY_SIZE(kNegativeOffset), 1299 kNegativeOffset}, 1300 {{al, r6, r3, minus, r9, ASR, 9, Offset}, 1301 "al r6 r3 minus r9 ASR 9 Offset", 1302 "NegativeOffset_al_r6_r3_minus_r9_ASR_9_Offset", 1303 ARRAY_SIZE(kNegativeOffset), 1304 kNegativeOffset}, 1305 {{al, r1, r12, minus, r2, ASR, 22, Offset}, 1306 "al r1 r12 minus r2 ASR 22 Offset", 1307 "NegativeOffset_al_r1_r12_minus_r2_ASR_22_Offset", 1308 ARRAY_SIZE(kNegativeOffset), 1309 kNegativeOffset}, 1310 {{al, r12, r14, minus, r5, ASR, 18, Offset}, 1311 "al r12 r14 minus r5 ASR 18 Offset", 1312 "NegativeOffset_al_r12_r14_minus_r5_ASR_18_Offset", 1313 ARRAY_SIZE(kNegativeOffset), 1314 kNegativeOffset}, 1315 {{al, r12, r14, minus, r9, LSR, 7, Offset}, 1316 "al r12 r14 minus r9 LSR 7 Offset", 1317 "NegativeOffset_al_r12_r14_minus_r9_LSR_7_Offset", 1318 ARRAY_SIZE(kNegativeOffset), 1319 kNegativeOffset}, 1320 {{al, r9, r3, minus, r0, LSR, 3, Offset}, 1321 "al r9 r3 minus r0 LSR 3 Offset", 1322 "NegativeOffset_al_r9_r3_minus_r0_LSR_3_Offset", 1323 ARRAY_SIZE(kNegativeOffset), 1324 kNegativeOffset}, 1325 {{al, r4, r6, minus, r14, ASR, 4, Offset}, 1326 "al r4 r6 minus r14 ASR 4 Offset", 1327 "NegativeOffset_al_r4_r6_minus_r14_ASR_4_Offset", 1328 ARRAY_SIZE(kNegativeOffset), 1329 kNegativeOffset}, 1330 {{al, r0, r12, minus, r6, LSR, 30, Offset}, 1331 "al r0 r12 minus r6 LSR 30 Offset", 1332 "NegativeOffset_al_r0_r12_minus_r6_LSR_30_Offset", 1333 ARRAY_SIZE(kNegativeOffset), 1334 kNegativeOffset}, 1335 {{al, r9, r0, plus, r4, LSR, 26, PostIndex}, 1336 "al r9 r0 plus r4 LSR 26 PostIndex", 1337 "PositivePostIndex_al_r9_r0_plus_r4_LSR_26_PostIndex", 1338 ARRAY_SIZE(kPositivePostIndex), 1339 kPositivePostIndex}, 1340 {{al, r2, r1, plus, r9, LSR, 30, PostIndex}, 1341 "al r2 r1 plus r9 LSR 30 PostIndex", 1342 "PositivePostIndex_al_r2_r1_plus_r9_LSR_30_PostIndex", 1343 ARRAY_SIZE(kPositivePostIndex), 1344 kPositivePostIndex}, 1345 {{al, r11, r7, plus, r8, LSR, 13, PostIndex}, 1346 "al r11 r7 plus r8 LSR 13 PostIndex", 1347 "PositivePostIndex_al_r11_r7_plus_r8_LSR_13_PostIndex", 1348 ARRAY_SIZE(kPositivePostIndex), 1349 kPositivePostIndex}, 1350 {{al, r5, r11, plus, r3, ASR, 2, PostIndex}, 1351 "al r5 r11 plus r3 ASR 2 PostIndex", 1352 "PositivePostIndex_al_r5_r11_plus_r3_ASR_2_PostIndex", 1353 ARRAY_SIZE(kPositivePostIndex), 1354 kPositivePostIndex}, 1355 {{al, r5, r12, plus, r11, LSR, 27, PostIndex}, 1356 "al r5 r12 plus r11 LSR 27 PostIndex", 1357 "PositivePostIndex_al_r5_r12_plus_r11_LSR_27_PostIndex", 1358 ARRAY_SIZE(kPositivePostIndex), 1359 kPositivePostIndex}, 1360 {{al, r3, r1, plus, r9, ASR, 5, PostIndex}, 1361 "al r3 r1 plus r9 ASR 5 PostIndex", 1362 "PositivePostIndex_al_r3_r1_plus_r9_ASR_5_PostIndex", 1363 ARRAY_SIZE(kPositivePostIndex), 1364 kPositivePostIndex}, 1365 {{al, r12, r6, plus, r8, ASR, 9, PostIndex}, 1366 "al r12 r6 plus r8 ASR 9 PostIndex", 1367 "PositivePostIndex_al_r12_r6_plus_r8_ASR_9_PostIndex", 1368 ARRAY_SIZE(kPositivePostIndex), 1369 kPositivePostIndex}, 1370 {{al, r4, r12, plus, r8, ASR, 10, PostIndex}, 1371 "al r4 r12 plus r8 ASR 10 PostIndex", 1372 "PositivePostIndex_al_r4_r12_plus_r8_ASR_10_PostIndex", 1373 ARRAY_SIZE(kPositivePostIndex), 1374 kPositivePostIndex}, 1375 {{al, r4, r9, plus, r10, LSR, 7, PostIndex}, 1376 "al r4 r9 plus r10 LSR 7 PostIndex", 1377 "PositivePostIndex_al_r4_r9_plus_r10_LSR_7_PostIndex", 1378 ARRAY_SIZE(kPositivePostIndex), 1379 kPositivePostIndex}, 1380 {{al, r6, r7, plus, r3, LSR, 8, PostIndex}, 1381 "al r6 r7 plus r3 LSR 8 PostIndex", 1382 "PositivePostIndex_al_r6_r7_plus_r3_LSR_8_PostIndex", 1383 ARRAY_SIZE(kPositivePostIndex), 1384 kPositivePostIndex}, 1385 {{al, r3, r8, plus, r10, LSR, 2, PostIndex}, 1386 "al r3 r8 plus r10 LSR 2 PostIndex", 1387 "PositivePostIndex_al_r3_r8_plus_r10_LSR_2_PostIndex", 1388 ARRAY_SIZE(kPositivePostIndex), 1389 kPositivePostIndex}, 1390 {{al, r3, r4, plus, r1, ASR, 26, PostIndex}, 1391 "al r3 r4 plus r1 ASR 26 PostIndex", 1392 "PositivePostIndex_al_r3_r4_plus_r1_ASR_26_PostIndex", 1393 ARRAY_SIZE(kPositivePostIndex), 1394 kPositivePostIndex}, 1395 {{al, r8, r7, plus, r11, ASR, 28, PostIndex}, 1396 "al r8 r7 plus r11 ASR 28 PostIndex", 1397 "PositivePostIndex_al_r8_r7_plus_r11_ASR_28_PostIndex", 1398 ARRAY_SIZE(kPositivePostIndex), 1399 kPositivePostIndex}, 1400 {{al, r10, r14, plus, r9, ASR, 17, PostIndex}, 1401 "al r10 r14 plus r9 ASR 17 PostIndex", 1402 "PositivePostIndex_al_r10_r14_plus_r9_ASR_17_PostIndex", 1403 ARRAY_SIZE(kPositivePostIndex), 1404 kPositivePostIndex}, 1405 {{al, r8, r9, plus, r3, LSR, 19, PostIndex}, 1406 "al r8 r9 plus r3 LSR 19 PostIndex", 1407 "PositivePostIndex_al_r8_r9_plus_r3_LSR_19_PostIndex", 1408 ARRAY_SIZE(kPositivePostIndex), 1409 kPositivePostIndex}, 1410 {{al, r14, r1, plus, r10, LSR, 20, PostIndex}, 1411 "al r14 r1 plus r10 LSR 20 PostIndex", 1412 "PositivePostIndex_al_r14_r1_plus_r10_LSR_20_PostIndex", 1413 ARRAY_SIZE(kPositivePostIndex), 1414 kPositivePostIndex}, 1415 {{al, r2, r4, plus, r0, ASR, 29, PostIndex}, 1416 "al r2 r4 plus r0 ASR 29 PostIndex", 1417 "PositivePostIndex_al_r2_r4_plus_r0_ASR_29_PostIndex", 1418 ARRAY_SIZE(kPositivePostIndex), 1419 kPositivePostIndex}, 1420 {{al, r14, r12, plus, r3, ASR, 26, PostIndex}, 1421 "al r14 r12 plus r3 ASR 26 PostIndex", 1422 "PositivePostIndex_al_r14_r12_plus_r3_ASR_26_PostIndex", 1423 ARRAY_SIZE(kPositivePostIndex), 1424 kPositivePostIndex}, 1425 {{al, r1, r14, plus, r0, LSR, 9, PostIndex}, 1426 "al r1 r14 plus r0 LSR 9 PostIndex", 1427 "PositivePostIndex_al_r1_r14_plus_r0_LSR_9_PostIndex", 1428 ARRAY_SIZE(kPositivePostIndex), 1429 kPositivePostIndex}, 1430 {{al, r8, r11, plus, r1, ASR, 24, PostIndex}, 1431 "al r8 r11 plus r1 ASR 24 PostIndex", 1432 "PositivePostIndex_al_r8_r11_plus_r1_ASR_24_PostIndex", 1433 ARRAY_SIZE(kPositivePostIndex), 1434 kPositivePostIndex}, 1435 {{al, r7, r12, plus, r6, ASR, 11, PostIndex}, 1436 "al r7 r12 plus r6 ASR 11 PostIndex", 1437 "PositivePostIndex_al_r7_r12_plus_r6_ASR_11_PostIndex", 1438 ARRAY_SIZE(kPositivePostIndex), 1439 kPositivePostIndex}, 1440 {{al, r10, r6, plus, r9, ASR, 30, PostIndex}, 1441 "al r10 r6 plus r9 ASR 30 PostIndex", 1442 "PositivePostIndex_al_r10_r6_plus_r9_ASR_30_PostIndex", 1443 ARRAY_SIZE(kPositivePostIndex), 1444 kPositivePostIndex}, 1445 {{al, r9, r0, plus, r7, ASR, 30, PostIndex}, 1446 "al r9 r0 plus r7 ASR 30 PostIndex", 1447 "PositivePostIndex_al_r9_r0_plus_r7_ASR_30_PostIndex", 1448 ARRAY_SIZE(kPositivePostIndex), 1449 kPositivePostIndex}, 1450 {{al, r5, r14, plus, r7, LSR, 6, PostIndex}, 1451 "al r5 r14 plus r7 LSR 6 PostIndex", 1452 "PositivePostIndex_al_r5_r14_plus_r7_LSR_6_PostIndex", 1453 ARRAY_SIZE(kPositivePostIndex), 1454 kPositivePostIndex}, 1455 {{al, r9, r7, plus, r5, ASR, 8, PostIndex}, 1456 "al r9 r7 plus r5 ASR 8 PostIndex", 1457 "PositivePostIndex_al_r9_r7_plus_r5_ASR_8_PostIndex", 1458 ARRAY_SIZE(kPositivePostIndex), 1459 kPositivePostIndex}, 1460 {{al, r11, r3, plus, r2, ASR, 10, PostIndex}, 1461 "al r11 r3 plus r2 ASR 10 PostIndex", 1462 "PositivePostIndex_al_r11_r3_plus_r2_ASR_10_PostIndex", 1463 ARRAY_SIZE(kPositivePostIndex), 1464 kPositivePostIndex}, 1465 {{al, r1, r3, plus, r10, ASR, 2, PostIndex}, 1466 "al r1 r3 plus r10 ASR 2 PostIndex", 1467 "PositivePostIndex_al_r1_r3_plus_r10_ASR_2_PostIndex", 1468 ARRAY_SIZE(kPositivePostIndex), 1469 kPositivePostIndex}, 1470 {{al, r3, r0, plus, r10, LSR, 12, PostIndex}, 1471 "al r3 r0 plus r10 LSR 12 PostIndex", 1472 "PositivePostIndex_al_r3_r0_plus_r10_LSR_12_PostIndex", 1473 ARRAY_SIZE(kPositivePostIndex), 1474 kPositivePostIndex}, 1475 {{al, r6, r11, plus, r5, LSR, 25, PostIndex}, 1476 "al r6 r11 plus r5 LSR 25 PostIndex", 1477 "PositivePostIndex_al_r6_r11_plus_r5_LSR_25_PostIndex", 1478 ARRAY_SIZE(kPositivePostIndex), 1479 kPositivePostIndex}, 1480 {{al, r0, r7, plus, r12, LSR, 18, PostIndex}, 1481 "al r0 r7 plus r12 LSR 18 PostIndex", 1482 "PositivePostIndex_al_r0_r7_plus_r12_LSR_18_PostIndex", 1483 ARRAY_SIZE(kPositivePostIndex), 1484 kPositivePostIndex}, 1485 {{al, r5, r2, plus, r9, LSR, 14, PostIndex}, 1486 "al r5 r2 plus r9 LSR 14 PostIndex", 1487 "PositivePostIndex_al_r5_r2_plus_r9_LSR_14_PostIndex", 1488 ARRAY_SIZE(kPositivePostIndex), 1489 kPositivePostIndex}, 1490 {{al, r8, r9, plus, r12, LSR, 1, PostIndex}, 1491 "al r8 r9 plus r12 LSR 1 PostIndex", 1492 "PositivePostIndex_al_r8_r9_plus_r12_LSR_1_PostIndex", 1493 ARRAY_SIZE(kPositivePostIndex), 1494 kPositivePostIndex}, 1495 {{al, r11, r2, plus, r9, ASR, 9, PostIndex}, 1496 "al r11 r2 plus r9 ASR 9 PostIndex", 1497 "PositivePostIndex_al_r11_r2_plus_r9_ASR_9_PostIndex", 1498 ARRAY_SIZE(kPositivePostIndex), 1499 kPositivePostIndex}, 1500 {{al, r14, r0, plus, r3, LSR, 17, PostIndex}, 1501 "al r14 r0 plus r3 LSR 17 PostIndex", 1502 "PositivePostIndex_al_r14_r0_plus_r3_LSR_17_PostIndex", 1503 ARRAY_SIZE(kPositivePostIndex), 1504 kPositivePostIndex}, 1505 {{al, r5, r4, plus, r9, ASR, 6, PostIndex}, 1506 "al r5 r4 plus r9 ASR 6 PostIndex", 1507 "PositivePostIndex_al_r5_r4_plus_r9_ASR_6_PostIndex", 1508 ARRAY_SIZE(kPositivePostIndex), 1509 kPositivePostIndex}, 1510 {{al, r8, r5, plus, r2, ASR, 29, PostIndex}, 1511 "al r8 r5 plus r2 ASR 29 PostIndex", 1512 "PositivePostIndex_al_r8_r5_plus_r2_ASR_29_PostIndex", 1513 ARRAY_SIZE(kPositivePostIndex), 1514 kPositivePostIndex}, 1515 {{al, r4, r10, plus, r3, LSR, 23, PostIndex}, 1516 "al r4 r10 plus r3 LSR 23 PostIndex", 1517 "PositivePostIndex_al_r4_r10_plus_r3_LSR_23_PostIndex", 1518 ARRAY_SIZE(kPositivePostIndex), 1519 kPositivePostIndex}, 1520 {{al, r7, r11, plus, r12, LSR, 10, PostIndex}, 1521 "al r7 r11 plus r12 LSR 10 PostIndex", 1522 "PositivePostIndex_al_r7_r11_plus_r12_LSR_10_PostIndex", 1523 ARRAY_SIZE(kPositivePostIndex), 1524 kPositivePostIndex}, 1525 {{al, r14, r8, plus, r7, ASR, 1, PostIndex}, 1526 "al r14 r8 plus r7 ASR 1 PostIndex", 1527 "PositivePostIndex_al_r14_r8_plus_r7_ASR_1_PostIndex", 1528 ARRAY_SIZE(kPositivePostIndex), 1529 kPositivePostIndex}, 1530 {{al, r11, r2, plus, r4, ASR, 31, PostIndex}, 1531 "al r11 r2 plus r4 ASR 31 PostIndex", 1532 "PositivePostIndex_al_r11_r2_plus_r4_ASR_31_PostIndex", 1533 ARRAY_SIZE(kPositivePostIndex), 1534 kPositivePostIndex}, 1535 {{al, r5, r12, plus, r11, ASR, 21, PostIndex}, 1536 "al r5 r12 plus r11 ASR 21 PostIndex", 1537 "PositivePostIndex_al_r5_r12_plus_r11_ASR_21_PostIndex", 1538 ARRAY_SIZE(kPositivePostIndex), 1539 kPositivePostIndex}, 1540 {{al, r3, r9, plus, r11, LSR, 29, PostIndex}, 1541 "al r3 r9 plus r11 LSR 29 PostIndex", 1542 "PositivePostIndex_al_r3_r9_plus_r11_LSR_29_PostIndex", 1543 ARRAY_SIZE(kPositivePostIndex), 1544 kPositivePostIndex}, 1545 {{al, r4, r10, plus, r1, LSR, 9, PostIndex}, 1546 "al r4 r10 plus r1 LSR 9 PostIndex", 1547 "PositivePostIndex_al_r4_r10_plus_r1_LSR_9_PostIndex", 1548 ARRAY_SIZE(kPositivePostIndex), 1549 kPositivePostIndex}, 1550 {{al, r0, r4, plus, r5, ASR, 21, PostIndex}, 1551 "al r0 r4 plus r5 ASR 21 PostIndex", 1552 "PositivePostIndex_al_r0_r4_plus_r5_ASR_21_PostIndex", 1553 ARRAY_SIZE(kPositivePostIndex), 1554 kPositivePostIndex}, 1555 {{al, r8, r12, plus, r9, ASR, 3, PostIndex}, 1556 "al r8 r12 plus r9 ASR 3 PostIndex", 1557 "PositivePostIndex_al_r8_r12_plus_r9_ASR_3_PostIndex", 1558 ARRAY_SIZE(kPositivePostIndex), 1559 kPositivePostIndex}, 1560 {{al, r3, r6, plus, r2, ASR, 2, PostIndex}, 1561 "al r3 r6 plus r2 ASR 2 PostIndex", 1562 "PositivePostIndex_al_r3_r6_plus_r2_ASR_2_PostIndex", 1563 ARRAY_SIZE(kPositivePostIndex), 1564 kPositivePostIndex}, 1565 {{al, r12, r11, plus, r2, ASR, 28, PostIndex}, 1566 "al r12 r11 plus r2 ASR 28 PostIndex", 1567 "PositivePostIndex_al_r12_r11_plus_r2_ASR_28_PostIndex", 1568 ARRAY_SIZE(kPositivePostIndex), 1569 kPositivePostIndex}, 1570 {{al, r4, r10, plus, r11, LSR, 28, PostIndex}, 1571 "al r4 r10 plus r11 LSR 28 PostIndex", 1572 "PositivePostIndex_al_r4_r10_plus_r11_LSR_28_PostIndex", 1573 ARRAY_SIZE(kPositivePostIndex), 1574 kPositivePostIndex}, 1575 {{al, r7, r10, plus, r9, ASR, 22, PostIndex}, 1576 "al r7 r10 plus r9 ASR 22 PostIndex", 1577 "PositivePostIndex_al_r7_r10_plus_r9_ASR_22_PostIndex", 1578 ARRAY_SIZE(kPositivePostIndex), 1579 kPositivePostIndex}, 1580 {{al, r5, r6, plus, r11, LSR, 9, PostIndex}, 1581 "al r5 r6 plus r11 LSR 9 PostIndex", 1582 "PositivePostIndex_al_r5_r6_plus_r11_LSR_9_PostIndex", 1583 ARRAY_SIZE(kPositivePostIndex), 1584 kPositivePostIndex}, 1585 {{al, r7, r3, plus, r8, ASR, 26, PostIndex}, 1586 "al r7 r3 plus r8 ASR 26 PostIndex", 1587 "PositivePostIndex_al_r7_r3_plus_r8_ASR_26_PostIndex", 1588 ARRAY_SIZE(kPositivePostIndex), 1589 kPositivePostIndex}, 1590 {{al, r7, r9, plus, r8, LSR, 15, PostIndex}, 1591 "al r7 r9 plus r8 LSR 15 PostIndex", 1592 "PositivePostIndex_al_r7_r9_plus_r8_LSR_15_PostIndex", 1593 ARRAY_SIZE(kPositivePostIndex), 1594 kPositivePostIndex}, 1595 {{al, r0, r14, plus, r12, ASR, 17, PostIndex}, 1596 "al r0 r14 plus r12 ASR 17 PostIndex", 1597 "PositivePostIndex_al_r0_r14_plus_r12_ASR_17_PostIndex", 1598 ARRAY_SIZE(kPositivePostIndex), 1599 kPositivePostIndex}, 1600 {{al, r11, r12, plus, r14, ASR, 18, PostIndex}, 1601 "al r11 r12 plus r14 ASR 18 PostIndex", 1602 "PositivePostIndex_al_r11_r12_plus_r14_ASR_18_PostIndex", 1603 ARRAY_SIZE(kPositivePostIndex), 1604 kPositivePostIndex}, 1605 {{al, r11, r0, plus, r6, LSR, 17, PostIndex}, 1606 "al r11 r0 plus r6 LSR 17 PostIndex", 1607 "PositivePostIndex_al_r11_r0_plus_r6_LSR_17_PostIndex", 1608 ARRAY_SIZE(kPositivePostIndex), 1609 kPositivePostIndex}, 1610 {{al, r10, r14, plus, r9, LSR, 29, PostIndex}, 1611 "al r10 r14 plus r9 LSR 29 PostIndex", 1612 "PositivePostIndex_al_r10_r14_plus_r9_LSR_29_PostIndex", 1613 ARRAY_SIZE(kPositivePostIndex), 1614 kPositivePostIndex}, 1615 {{al, r6, r2, plus, r0, LSR, 6, PostIndex}, 1616 "al r6 r2 plus r0 LSR 6 PostIndex", 1617 "PositivePostIndex_al_r6_r2_plus_r0_LSR_6_PostIndex", 1618 ARRAY_SIZE(kPositivePostIndex), 1619 kPositivePostIndex}, 1620 {{al, r0, r1, plus, r12, ASR, 5, PostIndex}, 1621 "al r0 r1 plus r12 ASR 5 PostIndex", 1622 "PositivePostIndex_al_r0_r1_plus_r12_ASR_5_PostIndex", 1623 ARRAY_SIZE(kPositivePostIndex), 1624 kPositivePostIndex}, 1625 {{al, r2, r7, plus, r11, ASR, 11, PostIndex}, 1626 "al r2 r7 plus r11 ASR 11 PostIndex", 1627 "PositivePostIndex_al_r2_r7_plus_r11_ASR_11_PostIndex", 1628 ARRAY_SIZE(kPositivePostIndex), 1629 kPositivePostIndex}, 1630 {{al, r1, r4, plus, r3, ASR, 5, PostIndex}, 1631 "al r1 r4 plus r3 ASR 5 PostIndex", 1632 "PositivePostIndex_al_r1_r4_plus_r3_ASR_5_PostIndex", 1633 ARRAY_SIZE(kPositivePostIndex), 1634 kPositivePostIndex}, 1635 {{al, r0, r2, plus, r6, LSR, 23, PostIndex}, 1636 "al r0 r2 plus r6 LSR 23 PostIndex", 1637 "PositivePostIndex_al_r0_r2_plus_r6_LSR_23_PostIndex", 1638 ARRAY_SIZE(kPositivePostIndex), 1639 kPositivePostIndex}, 1640 {{al, r2, r11, plus, r0, ASR, 4, PostIndex}, 1641 "al r2 r11 plus r0 ASR 4 PostIndex", 1642 "PositivePostIndex_al_r2_r11_plus_r0_ASR_4_PostIndex", 1643 ARRAY_SIZE(kPositivePostIndex), 1644 kPositivePostIndex}, 1645 {{al, r14, r0, plus, r2, LSR, 9, PostIndex}, 1646 "al r14 r0 plus r2 LSR 9 PostIndex", 1647 "PositivePostIndex_al_r14_r0_plus_r2_LSR_9_PostIndex", 1648 ARRAY_SIZE(kPositivePostIndex), 1649 kPositivePostIndex}, 1650 {{al, r12, r1, plus, r3, LSR, 24, PostIndex}, 1651 "al r12 r1 plus r3 LSR 24 PostIndex", 1652 "PositivePostIndex_al_r12_r1_plus_r3_LSR_24_PostIndex", 1653 ARRAY_SIZE(kPositivePostIndex), 1654 kPositivePostIndex}, 1655 {{al, r1, r10, plus, r11, ASR, 29, PostIndex}, 1656 "al r1 r10 plus r11 ASR 29 PostIndex", 1657 "PositivePostIndex_al_r1_r10_plus_r11_ASR_29_PostIndex", 1658 ARRAY_SIZE(kPositivePostIndex), 1659 kPositivePostIndex}, 1660 {{al, r5, r6, plus, r0, LSR, 12, PostIndex}, 1661 "al r5 r6 plus r0 LSR 12 PostIndex", 1662 "PositivePostIndex_al_r5_r6_plus_r0_LSR_12_PostIndex", 1663 ARRAY_SIZE(kPositivePostIndex), 1664 kPositivePostIndex}, 1665 {{al, r8, r7, plus, r5, ASR, 17, PostIndex}, 1666 "al r8 r7 plus r5 ASR 17 PostIndex", 1667 "PositivePostIndex_al_r8_r7_plus_r5_ASR_17_PostIndex", 1668 ARRAY_SIZE(kPositivePostIndex), 1669 kPositivePostIndex}, 1670 {{al, r14, r1, plus, r5, LSR, 26, PostIndex}, 1671 "al r14 r1 plus r5 LSR 26 PostIndex", 1672 "PositivePostIndex_al_r14_r1_plus_r5_LSR_26_PostIndex", 1673 ARRAY_SIZE(kPositivePostIndex), 1674 kPositivePostIndex}, 1675 {{al, r7, r0, plus, r11, ASR, 13, PostIndex}, 1676 "al r7 r0 plus r11 ASR 13 PostIndex", 1677 "PositivePostIndex_al_r7_r0_plus_r11_ASR_13_PostIndex", 1678 ARRAY_SIZE(kPositivePostIndex), 1679 kPositivePostIndex}, 1680 {{al, r0, r8, plus, r1, ASR, 14, PostIndex}, 1681 "al r0 r8 plus r1 ASR 14 PostIndex", 1682 "PositivePostIndex_al_r0_r8_plus_r1_ASR_14_PostIndex", 1683 ARRAY_SIZE(kPositivePostIndex), 1684 kPositivePostIndex}, 1685 {{al, r7, r4, plus, r3, ASR, 4, PostIndex}, 1686 "al r7 r4 plus r3 ASR 4 PostIndex", 1687 "PositivePostIndex_al_r7_r4_plus_r3_ASR_4_PostIndex", 1688 ARRAY_SIZE(kPositivePostIndex), 1689 kPositivePostIndex}, 1690 {{al, r5, r2, plus, r11, LSR, 3, PostIndex}, 1691 "al r5 r2 plus r11 LSR 3 PostIndex", 1692 "PositivePostIndex_al_r5_r2_plus_r11_LSR_3_PostIndex", 1693 ARRAY_SIZE(kPositivePostIndex), 1694 kPositivePostIndex}, 1695 {{al, r2, r7, plus, r1, ASR, 5, PostIndex}, 1696 "al r2 r7 plus r1 ASR 5 PostIndex", 1697 "PositivePostIndex_al_r2_r7_plus_r1_ASR_5_PostIndex", 1698 ARRAY_SIZE(kPositivePostIndex), 1699 kPositivePostIndex}, 1700 {{al, r8, r14, plus, r6, LSR, 30, PostIndex}, 1701 "al r8 r14 plus r6 LSR 30 PostIndex", 1702 "PositivePostIndex_al_r8_r14_plus_r6_LSR_30_PostIndex", 1703 ARRAY_SIZE(kPositivePostIndex), 1704 kPositivePostIndex}, 1705 {{al, r5, r8, plus, r14, ASR, 11, PostIndex}, 1706 "al r5 r8 plus r14 ASR 11 PostIndex", 1707 "PositivePostIndex_al_r5_r8_plus_r14_ASR_11_PostIndex", 1708 ARRAY_SIZE(kPositivePostIndex), 1709 kPositivePostIndex}, 1710 {{al, r3, r5, plus, r6, ASR, 22, PostIndex}, 1711 "al r3 r5 plus r6 ASR 22 PostIndex", 1712 "PositivePostIndex_al_r3_r5_plus_r6_ASR_22_PostIndex", 1713 ARRAY_SIZE(kPositivePostIndex), 1714 kPositivePostIndex}, 1715 {{al, r3, r5, plus, r4, LSR, 9, PostIndex}, 1716 "al r3 r5 plus r4 LSR 9 PostIndex", 1717 "PositivePostIndex_al_r3_r5_plus_r4_LSR_9_PostIndex", 1718 ARRAY_SIZE(kPositivePostIndex), 1719 kPositivePostIndex}, 1720 {{al, r7, r1, plus, r11, LSR, 7, PostIndex}, 1721 "al r7 r1 plus r11 LSR 7 PostIndex", 1722 "PositivePostIndex_al_r7_r1_plus_r11_LSR_7_PostIndex", 1723 ARRAY_SIZE(kPositivePostIndex), 1724 kPositivePostIndex}, 1725 {{al, r2, r10, plus, r6, ASR, 3, PostIndex}, 1726 "al r2 r10 plus r6 ASR 3 PostIndex", 1727 "PositivePostIndex_al_r2_r10_plus_r6_ASR_3_PostIndex", 1728 ARRAY_SIZE(kPositivePostIndex), 1729 kPositivePostIndex}, 1730 {{al, r6, r7, plus, r12, LSR, 5, PostIndex}, 1731 "al r6 r7 plus r12 LSR 5 PostIndex", 1732 "PositivePostIndex_al_r6_r7_plus_r12_LSR_5_PostIndex", 1733 ARRAY_SIZE(kPositivePostIndex), 1734 kPositivePostIndex}, 1735 {{al, r3, r14, plus, r1, ASR, 18, PostIndex}, 1736 "al r3 r14 plus r1 ASR 18 PostIndex", 1737 "PositivePostIndex_al_r3_r14_plus_r1_ASR_18_PostIndex", 1738 ARRAY_SIZE(kPositivePostIndex), 1739 kPositivePostIndex}, 1740 {{al, r1, r9, plus, r12, LSR, 29, PostIndex}, 1741 "al r1 r9 plus r12 LSR 29 PostIndex", 1742 "PositivePostIndex_al_r1_r9_plus_r12_LSR_29_PostIndex", 1743 ARRAY_SIZE(kPositivePostIndex), 1744 kPositivePostIndex}, 1745 {{al, r9, r2, plus, r0, LSR, 16, PostIndex}, 1746 "al r9 r2 plus r0 LSR 16 PostIndex", 1747 "PositivePostIndex_al_r9_r2_plus_r0_LSR_16_PostIndex", 1748 ARRAY_SIZE(kPositivePostIndex), 1749 kPositivePostIndex}, 1750 {{al, r8, r9, plus, r2, ASR, 1, PostIndex}, 1751 "al r8 r9 plus r2 ASR 1 PostIndex", 1752 "PositivePostIndex_al_r8_r9_plus_r2_ASR_1_PostIndex", 1753 ARRAY_SIZE(kPositivePostIndex), 1754 kPositivePostIndex}, 1755 {{al, r4, r6, plus, r2, LSR, 6, PostIndex}, 1756 "al r4 r6 plus r2 LSR 6 PostIndex", 1757 "PositivePostIndex_al_r4_r6_plus_r2_LSR_6_PostIndex", 1758 ARRAY_SIZE(kPositivePostIndex), 1759 kPositivePostIndex}, 1760 {{al, r14, r7, plus, r0, LSR, 25, PostIndex}, 1761 "al r14 r7 plus r0 LSR 25 PostIndex", 1762 "PositivePostIndex_al_r14_r7_plus_r0_LSR_25_PostIndex", 1763 ARRAY_SIZE(kPositivePostIndex), 1764 kPositivePostIndex}, 1765 {{al, r12, r1, plus, r14, LSR, 9, PostIndex}, 1766 "al r12 r1 plus r14 LSR 9 PostIndex", 1767 "PositivePostIndex_al_r12_r1_plus_r14_LSR_9_PostIndex", 1768 ARRAY_SIZE(kPositivePostIndex), 1769 kPositivePostIndex}, 1770 {{al, r1, r6, plus, r5, ASR, 12, PostIndex}, 1771 "al r1 r6 plus r5 ASR 12 PostIndex", 1772 "PositivePostIndex_al_r1_r6_plus_r5_ASR_12_PostIndex", 1773 ARRAY_SIZE(kPositivePostIndex), 1774 kPositivePostIndex}, 1775 {{al, r9, r6, plus, r7, LSR, 22, PostIndex}, 1776 "al r9 r6 plus r7 LSR 22 PostIndex", 1777 "PositivePostIndex_al_r9_r6_plus_r7_LSR_22_PostIndex", 1778 ARRAY_SIZE(kPositivePostIndex), 1779 kPositivePostIndex}, 1780 {{al, r0, r2, plus, r11, ASR, 31, PostIndex}, 1781 "al r0 r2 plus r11 ASR 31 PostIndex", 1782 "PositivePostIndex_al_r0_r2_plus_r11_ASR_31_PostIndex", 1783 ARRAY_SIZE(kPositivePostIndex), 1784 kPositivePostIndex}, 1785 {{al, r8, r14, plus, r1, ASR, 3, PostIndex}, 1786 "al r8 r14 plus r1 ASR 3 PostIndex", 1787 "PositivePostIndex_al_r8_r14_plus_r1_ASR_3_PostIndex", 1788 ARRAY_SIZE(kPositivePostIndex), 1789 kPositivePostIndex}, 1790 {{al, r10, r0, plus, r5, LSR, 3, PostIndex}, 1791 "al r10 r0 plus r5 LSR 3 PostIndex", 1792 "PositivePostIndex_al_r10_r0_plus_r5_LSR_3_PostIndex", 1793 ARRAY_SIZE(kPositivePostIndex), 1794 kPositivePostIndex}, 1795 {{al, r3, r5, plus, r14, ASR, 28, PostIndex}, 1796 "al r3 r5 plus r14 ASR 28 PostIndex", 1797 "PositivePostIndex_al_r3_r5_plus_r14_ASR_28_PostIndex", 1798 ARRAY_SIZE(kPositivePostIndex), 1799 kPositivePostIndex}, 1800 {{al, r1, r3, plus, r0, ASR, 23, PostIndex}, 1801 "al r1 r3 plus r0 ASR 23 PostIndex", 1802 "PositivePostIndex_al_r1_r3_plus_r0_ASR_23_PostIndex", 1803 ARRAY_SIZE(kPositivePostIndex), 1804 kPositivePostIndex}, 1805 {{al, r9, r6, plus, r4, LSR, 8, PostIndex}, 1806 "al r9 r6 plus r4 LSR 8 PostIndex", 1807 "PositivePostIndex_al_r9_r6_plus_r4_LSR_8_PostIndex", 1808 ARRAY_SIZE(kPositivePostIndex), 1809 kPositivePostIndex}, 1810 {{al, r10, r14, plus, r0, LSR, 22, PostIndex}, 1811 "al r10 r14 plus r0 LSR 22 PostIndex", 1812 "PositivePostIndex_al_r10_r14_plus_r0_LSR_22_PostIndex", 1813 ARRAY_SIZE(kPositivePostIndex), 1814 kPositivePostIndex}, 1815 {{al, r10, r12, plus, r2, ASR, 7, PostIndex}, 1816 "al r10 r12 plus r2 ASR 7 PostIndex", 1817 "PositivePostIndex_al_r10_r12_plus_r2_ASR_7_PostIndex", 1818 ARRAY_SIZE(kPositivePostIndex), 1819 kPositivePostIndex}, 1820 {{al, r2, r1, plus, r8, LSR, 27, PostIndex}, 1821 "al r2 r1 plus r8 LSR 27 PostIndex", 1822 "PositivePostIndex_al_r2_r1_plus_r8_LSR_27_PostIndex", 1823 ARRAY_SIZE(kPositivePostIndex), 1824 kPositivePostIndex}, 1825 {{al, r14, r9, plus, r6, LSR, 23, PostIndex}, 1826 "al r14 r9 plus r6 LSR 23 PostIndex", 1827 "PositivePostIndex_al_r14_r9_plus_r6_LSR_23_PostIndex", 1828 ARRAY_SIZE(kPositivePostIndex), 1829 kPositivePostIndex}, 1830 {{al, r12, r10, plus, r7, LSR, 27, PostIndex}, 1831 "al r12 r10 plus r7 LSR 27 PostIndex", 1832 "PositivePostIndex_al_r12_r10_plus_r7_LSR_27_PostIndex", 1833 ARRAY_SIZE(kPositivePostIndex), 1834 kPositivePostIndex}, 1835 {{al, r10, r14, minus, r7, LSR, 30, PostIndex}, 1836 "al r10 r14 minus r7 LSR 30 PostIndex", 1837 "NegativePostIndex_al_r10_r14_minus_r7_LSR_30_PostIndex", 1838 ARRAY_SIZE(kNegativePostIndex), 1839 kNegativePostIndex}, 1840 {{al, r5, r9, minus, r7, LSR, 11, PostIndex}, 1841 "al r5 r9 minus r7 LSR 11 PostIndex", 1842 "NegativePostIndex_al_r5_r9_minus_r7_LSR_11_PostIndex", 1843 ARRAY_SIZE(kNegativePostIndex), 1844 kNegativePostIndex}, 1845 {{al, r4, r3, minus, r5, ASR, 1, PostIndex}, 1846 "al r4 r3 minus r5 ASR 1 PostIndex", 1847 "NegativePostIndex_al_r4_r3_minus_r5_ASR_1_PostIndex", 1848 ARRAY_SIZE(kNegativePostIndex), 1849 kNegativePostIndex}, 1850 {{al, r14, r7, minus, r4, LSR, 3, PostIndex}, 1851 "al r14 r7 minus r4 LSR 3 PostIndex", 1852 "NegativePostIndex_al_r14_r7_minus_r4_LSR_3_PostIndex", 1853 ARRAY_SIZE(kNegativePostIndex), 1854 kNegativePostIndex}, 1855 {{al, r11, r3, minus, r4, ASR, 4, PostIndex}, 1856 "al r11 r3 minus r4 ASR 4 PostIndex", 1857 "NegativePostIndex_al_r11_r3_minus_r4_ASR_4_PostIndex", 1858 ARRAY_SIZE(kNegativePostIndex), 1859 kNegativePostIndex}, 1860 {{al, r2, r6, minus, r3, ASR, 5, PostIndex}, 1861 "al r2 r6 minus r3 ASR 5 PostIndex", 1862 "NegativePostIndex_al_r2_r6_minus_r3_ASR_5_PostIndex", 1863 ARRAY_SIZE(kNegativePostIndex), 1864 kNegativePostIndex}, 1865 {{al, r14, r8, minus, r5, ASR, 31, PostIndex}, 1866 "al r14 r8 minus r5 ASR 31 PostIndex", 1867 "NegativePostIndex_al_r14_r8_minus_r5_ASR_31_PostIndex", 1868 ARRAY_SIZE(kNegativePostIndex), 1869 kNegativePostIndex}, 1870 {{al, r2, r12, minus, r5, ASR, 21, PostIndex}, 1871 "al r2 r12 minus r5 ASR 21 PostIndex", 1872 "NegativePostIndex_al_r2_r12_minus_r5_ASR_21_PostIndex", 1873 ARRAY_SIZE(kNegativePostIndex), 1874 kNegativePostIndex}, 1875 {{al, r8, r14, minus, r9, ASR, 12, PostIndex}, 1876 "al r8 r14 minus r9 ASR 12 PostIndex", 1877 "NegativePostIndex_al_r8_r14_minus_r9_ASR_12_PostIndex", 1878 ARRAY_SIZE(kNegativePostIndex), 1879 kNegativePostIndex}, 1880 {{al, r6, r3, minus, r4, ASR, 20, PostIndex}, 1881 "al r6 r3 minus r4 ASR 20 PostIndex", 1882 "NegativePostIndex_al_r6_r3_minus_r4_ASR_20_PostIndex", 1883 ARRAY_SIZE(kNegativePostIndex), 1884 kNegativePostIndex}, 1885 {{al, r11, r8, minus, r10, ASR, 28, PostIndex}, 1886 "al r11 r8 minus r10 ASR 28 PostIndex", 1887 "NegativePostIndex_al_r11_r8_minus_r10_ASR_28_PostIndex", 1888 ARRAY_SIZE(kNegativePostIndex), 1889 kNegativePostIndex}, 1890 {{al, r3, r10, minus, r12, ASR, 4, PostIndex}, 1891 "al r3 r10 minus r12 ASR 4 PostIndex", 1892 "NegativePostIndex_al_r3_r10_minus_r12_ASR_4_PostIndex", 1893 ARRAY_SIZE(kNegativePostIndex), 1894 kNegativePostIndex}, 1895 {{al, r5, r6, minus, r14, ASR, 23, PostIndex}, 1896 "al r5 r6 minus r14 ASR 23 PostIndex", 1897 "NegativePostIndex_al_r5_r6_minus_r14_ASR_23_PostIndex", 1898 ARRAY_SIZE(kNegativePostIndex), 1899 kNegativePostIndex}, 1900 {{al, r8, r1, minus, r14, LSR, 28, PostIndex}, 1901 "al r8 r1 minus r14 LSR 28 PostIndex", 1902 "NegativePostIndex_al_r8_r1_minus_r14_LSR_28_PostIndex", 1903 ARRAY_SIZE(kNegativePostIndex), 1904 kNegativePostIndex}, 1905 {{al, r1, r5, minus, r8, ASR, 22, PostIndex}, 1906 "al r1 r5 minus r8 ASR 22 PostIndex", 1907 "NegativePostIndex_al_r1_r5_minus_r8_ASR_22_PostIndex", 1908 ARRAY_SIZE(kNegativePostIndex), 1909 kNegativePostIndex}, 1910 {{al, r14, r0, minus, r10, LSR, 11, PostIndex}, 1911 "al r14 r0 minus r10 LSR 11 PostIndex", 1912 "NegativePostIndex_al_r14_r0_minus_r10_LSR_11_PostIndex", 1913 ARRAY_SIZE(kNegativePostIndex), 1914 kNegativePostIndex}, 1915 {{al, r5, r10, minus, r6, ASR, 25, PostIndex}, 1916 "al r5 r10 minus r6 ASR 25 PostIndex", 1917 "NegativePostIndex_al_r5_r10_minus_r6_ASR_25_PostIndex", 1918 ARRAY_SIZE(kNegativePostIndex), 1919 kNegativePostIndex}, 1920 {{al, r0, r6, minus, r3, ASR, 19, PostIndex}, 1921 "al r0 r6 minus r3 ASR 19 PostIndex", 1922 "NegativePostIndex_al_r0_r6_minus_r3_ASR_19_PostIndex", 1923 ARRAY_SIZE(kNegativePostIndex), 1924 kNegativePostIndex}, 1925 {{al, r8, r0, minus, r3, LSR, 23, PostIndex}, 1926 "al r8 r0 minus r3 LSR 23 PostIndex", 1927 "NegativePostIndex_al_r8_r0_minus_r3_LSR_23_PostIndex", 1928 ARRAY_SIZE(kNegativePostIndex), 1929 kNegativePostIndex}, 1930 {{al, r6, r0, minus, r11, LSR, 17, PostIndex}, 1931 "al r6 r0 minus r11 LSR 17 PostIndex", 1932 "NegativePostIndex_al_r6_r0_minus_r11_LSR_17_PostIndex", 1933 ARRAY_SIZE(kNegativePostIndex), 1934 kNegativePostIndex}, 1935 {{al, r6, r7, minus, r11, LSR, 9, PostIndex}, 1936 "al r6 r7 minus r11 LSR 9 PostIndex", 1937 "NegativePostIndex_al_r6_r7_minus_r11_LSR_9_PostIndex", 1938 ARRAY_SIZE(kNegativePostIndex), 1939 kNegativePostIndex}, 1940 {{al, r0, r4, minus, r5, LSR, 9, PostIndex}, 1941 "al r0 r4 minus r5 LSR 9 PostIndex", 1942 "NegativePostIndex_al_r0_r4_minus_r5_LSR_9_PostIndex", 1943 ARRAY_SIZE(kNegativePostIndex), 1944 kNegativePostIndex}, 1945 {{al, r11, r9, minus, r10, ASR, 18, PostIndex}, 1946 "al r11 r9 minus r10 ASR 18 PostIndex", 1947 "NegativePostIndex_al_r11_r9_minus_r10_ASR_18_PostIndex", 1948 ARRAY_SIZE(kNegativePostIndex), 1949 kNegativePostIndex}, 1950 {{al, r11, r12, minus, r14, LSR, 32, PostIndex}, 1951 "al r11 r12 minus r14 LSR 32 PostIndex", 1952 "NegativePostIndex_al_r11_r12_minus_r14_LSR_32_PostIndex", 1953 ARRAY_SIZE(kNegativePostIndex), 1954 kNegativePostIndex}, 1955 {{al, r3, r12, minus, r6, ASR, 7, PostIndex}, 1956 "al r3 r12 minus r6 ASR 7 PostIndex", 1957 "NegativePostIndex_al_r3_r12_minus_r6_ASR_7_PostIndex", 1958 ARRAY_SIZE(kNegativePostIndex), 1959 kNegativePostIndex}, 1960 {{al, r11, r8, minus, r2, ASR, 18, PostIndex}, 1961 "al r11 r8 minus r2 ASR 18 PostIndex", 1962 "NegativePostIndex_al_r11_r8_minus_r2_ASR_18_PostIndex", 1963 ARRAY_SIZE(kNegativePostIndex), 1964 kNegativePostIndex}, 1965 {{al, r7, r0, minus, r6, LSR, 24, PostIndex}, 1966 "al r7 r0 minus r6 LSR 24 PostIndex", 1967 "NegativePostIndex_al_r7_r0_minus_r6_LSR_24_PostIndex", 1968 ARRAY_SIZE(kNegativePostIndex), 1969 kNegativePostIndex}, 1970 {{al, r11, r8, minus, r0, ASR, 15, PostIndex}, 1971 "al r11 r8 minus r0 ASR 15 PostIndex", 1972 "NegativePostIndex_al_r11_r8_minus_r0_ASR_15_PostIndex", 1973 ARRAY_SIZE(kNegativePostIndex), 1974 kNegativePostIndex}, 1975 {{al, r1, r8, minus, r0, LSR, 22, PostIndex}, 1976 "al r1 r8 minus r0 LSR 22 PostIndex", 1977 "NegativePostIndex_al_r1_r8_minus_r0_LSR_22_PostIndex", 1978 ARRAY_SIZE(kNegativePostIndex), 1979 kNegativePostIndex}, 1980 {{al, r3, r2, minus, r10, ASR, 11, PostIndex}, 1981 "al r3 r2 minus r10 ASR 11 PostIndex", 1982 "NegativePostIndex_al_r3_r2_minus_r10_ASR_11_PostIndex", 1983 ARRAY_SIZE(kNegativePostIndex), 1984 kNegativePostIndex}, 1985 {{al, r0, r10, minus, r3, ASR, 1, PostIndex}, 1986 "al r0 r10 minus r3 ASR 1 PostIndex", 1987 "NegativePostIndex_al_r0_r10_minus_r3_ASR_1_PostIndex", 1988 ARRAY_SIZE(kNegativePostIndex), 1989 kNegativePostIndex}, 1990 {{al, r10, r14, minus, r8, LSR, 7, PostIndex}, 1991 "al r10 r14 minus r8 LSR 7 PostIndex", 1992 "NegativePostIndex_al_r10_r14_minus_r8_LSR_7_PostIndex", 1993 ARRAY_SIZE(kNegativePostIndex), 1994 kNegativePostIndex}, 1995 {{al, r4, r12, minus, r3, LSR, 3, PostIndex}, 1996 "al r4 r12 minus r3 LSR 3 PostIndex", 1997 "NegativePostIndex_al_r4_r12_minus_r3_LSR_3_PostIndex", 1998 ARRAY_SIZE(kNegativePostIndex), 1999 kNegativePostIndex}, 2000 {{al, r2, r4, minus, r7, ASR, 10, PostIndex}, 2001 "al r2 r4 minus r7 ASR 10 PostIndex", 2002 "NegativePostIndex_al_r2_r4_minus_r7_ASR_10_PostIndex", 2003 ARRAY_SIZE(kNegativePostIndex), 2004 kNegativePostIndex}, 2005 {{al, r4, r6, minus, r3, ASR, 32, PostIndex}, 2006 "al r4 r6 minus r3 ASR 32 PostIndex", 2007 "NegativePostIndex_al_r4_r6_minus_r3_ASR_32_PostIndex", 2008 ARRAY_SIZE(kNegativePostIndex), 2009 kNegativePostIndex}, 2010 {{al, r4, r0, minus, r14, ASR, 12, PostIndex}, 2011 "al r4 r0 minus r14 ASR 12 PostIndex", 2012 "NegativePostIndex_al_r4_r0_minus_r14_ASR_12_PostIndex", 2013 ARRAY_SIZE(kNegativePostIndex), 2014 kNegativePostIndex}, 2015 {{al, r2, r0, minus, r5, ASR, 28, PostIndex}, 2016 "al r2 r0 minus r5 ASR 28 PostIndex", 2017 "NegativePostIndex_al_r2_r0_minus_r5_ASR_28_PostIndex", 2018 ARRAY_SIZE(kNegativePostIndex), 2019 kNegativePostIndex}, 2020 {{al, r1, r11, minus, r8, LSR, 10, PostIndex}, 2021 "al r1 r11 minus r8 LSR 10 PostIndex", 2022 "NegativePostIndex_al_r1_r11_minus_r8_LSR_10_PostIndex", 2023 ARRAY_SIZE(kNegativePostIndex), 2024 kNegativePostIndex}, 2025 {{al, r5, r9, minus, r12, ASR, 24, PostIndex}, 2026 "al r5 r9 minus r12 ASR 24 PostIndex", 2027 "NegativePostIndex_al_r5_r9_minus_r12_ASR_24_PostIndex", 2028 ARRAY_SIZE(kNegativePostIndex), 2029 kNegativePostIndex}, 2030 {{al, r14, r11, minus, r9, ASR, 28, PostIndex}, 2031 "al r14 r11 minus r9 ASR 28 PostIndex", 2032 "NegativePostIndex_al_r14_r11_minus_r9_ASR_28_PostIndex", 2033 ARRAY_SIZE(kNegativePostIndex), 2034 kNegativePostIndex}, 2035 {{al, r1, r8, minus, r3, ASR, 7, PostIndex}, 2036 "al r1 r8 minus r3 ASR 7 PostIndex", 2037 "NegativePostIndex_al_r1_r8_minus_r3_ASR_7_PostIndex", 2038 ARRAY_SIZE(kNegativePostIndex), 2039 kNegativePostIndex}, 2040 {{al, r12, r3, minus, r4, ASR, 7, PostIndex}, 2041 "al r12 r3 minus r4 ASR 7 PostIndex", 2042 "NegativePostIndex_al_r12_r3_minus_r4_ASR_7_PostIndex", 2043 ARRAY_SIZE(kNegativePostIndex), 2044 kNegativePostIndex}, 2045 {{al, r10, r4, minus, r5, LSR, 22, PostIndex}, 2046 "al r10 r4 minus r5 LSR 22 PostIndex", 2047 "NegativePostIndex_al_r10_r4_minus_r5_LSR_22_PostIndex", 2048 ARRAY_SIZE(kNegativePostIndex), 2049 kNegativePostIndex}, 2050 {{al, r3, r14, minus, r6, LSR, 11, PostIndex}, 2051 "al r3 r14 minus r6 LSR 11 PostIndex", 2052 "NegativePostIndex_al_r3_r14_minus_r6_LSR_11_PostIndex", 2053 ARRAY_SIZE(kNegativePostIndex), 2054 kNegativePostIndex}, 2055 {{al, r5, r14, minus, r1, LSR, 31, PostIndex}, 2056 "al r5 r14 minus r1 LSR 31 PostIndex", 2057 "NegativePostIndex_al_r5_r14_minus_r1_LSR_31_PostIndex", 2058 ARRAY_SIZE(kNegativePostIndex), 2059 kNegativePostIndex}, 2060 {{al, r3, r0, minus, r9, LSR, 9, PostIndex}, 2061 "al r3 r0 minus r9 LSR 9 PostIndex", 2062 "NegativePostIndex_al_r3_r0_minus_r9_LSR_9_PostIndex", 2063 ARRAY_SIZE(kNegativePostIndex), 2064 kNegativePostIndex}, 2065 {{al, r0, r4, minus, r8, LSR, 28, PostIndex}, 2066 "al r0 r4 minus r8 LSR 28 PostIndex", 2067 "NegativePostIndex_al_r0_r4_minus_r8_LSR_28_PostIndex", 2068 ARRAY_SIZE(kNegativePostIndex), 2069 kNegativePostIndex}, 2070 {{al, r7, r9, minus, r12, ASR, 32, PostIndex}, 2071 "al r7 r9 minus r12 ASR 32 PostIndex", 2072 "NegativePostIndex_al_r7_r9_minus_r12_ASR_32_PostIndex", 2073 ARRAY_SIZE(kNegativePostIndex), 2074 kNegativePostIndex}, 2075 {{al, r4, r8, minus, r14, LSR, 20, PostIndex}, 2076 "al r4 r8 minus r14 LSR 20 PostIndex", 2077 "NegativePostIndex_al_r4_r8_minus_r14_LSR_20_PostIndex", 2078 ARRAY_SIZE(kNegativePostIndex), 2079 kNegativePostIndex}, 2080 {{al, r0, r11, minus, r1, ASR, 1, PostIndex}, 2081 "al r0 r11 minus r1 ASR 1 PostIndex", 2082 "NegativePostIndex_al_r0_r11_minus_r1_ASR_1_PostIndex", 2083 ARRAY_SIZE(kNegativePostIndex), 2084 kNegativePostIndex}, 2085 {{al, r6, r2, minus, r0, ASR, 6, PostIndex}, 2086 "al r6 r2 minus r0 ASR 6 PostIndex", 2087 "NegativePostIndex_al_r6_r2_minus_r0_ASR_6_PostIndex", 2088 ARRAY_SIZE(kNegativePostIndex), 2089 kNegativePostIndex}, 2090 {{al, r9, r2, minus, r7, LSR, 26, PostIndex}, 2091 "al r9 r2 minus r7 LSR 26 PostIndex", 2092 "NegativePostIndex_al_r9_r2_minus_r7_LSR_26_PostIndex", 2093 ARRAY_SIZE(kNegativePostIndex), 2094 kNegativePostIndex}, 2095 {{al, r6, r9, minus, r7, ASR, 25, PostIndex}, 2096 "al r6 r9 minus r7 ASR 25 PostIndex", 2097 "NegativePostIndex_al_r6_r9_minus_r7_ASR_25_PostIndex", 2098 ARRAY_SIZE(kNegativePostIndex), 2099 kNegativePostIndex}, 2100 {{al, r7, r8, minus, r12, ASR, 10, PostIndex}, 2101 "al r7 r8 minus r12 ASR 10 PostIndex", 2102 "NegativePostIndex_al_r7_r8_minus_r12_ASR_10_PostIndex", 2103 ARRAY_SIZE(kNegativePostIndex), 2104 kNegativePostIndex}, 2105 {{al, r4, r11, minus, r12, LSR, 4, PostIndex}, 2106 "al r4 r11 minus r12 LSR 4 PostIndex", 2107 "NegativePostIndex_al_r4_r11_minus_r12_LSR_4_PostIndex", 2108 ARRAY_SIZE(kNegativePostIndex), 2109 kNegativePostIndex}, 2110 {{al, r7, r4, minus, r11, LSR, 31, PostIndex}, 2111 "al r7 r4 minus r11 LSR 31 PostIndex", 2112 "NegativePostIndex_al_r7_r4_minus_r11_LSR_31_PostIndex", 2113 ARRAY_SIZE(kNegativePostIndex), 2114 kNegativePostIndex}, 2115 {{al, r2, r9, minus, r5, LSR, 14, PostIndex}, 2116 "al r2 r9 minus r5 LSR 14 PostIndex", 2117 "NegativePostIndex_al_r2_r9_minus_r5_LSR_14_PostIndex", 2118 ARRAY_SIZE(kNegativePostIndex), 2119 kNegativePostIndex}, 2120 {{al, r14, r3, minus, r0, LSR, 30, PostIndex}, 2121 "al r14 r3 minus r0 LSR 30 PostIndex", 2122 "NegativePostIndex_al_r14_r3_minus_r0_LSR_30_PostIndex", 2123 ARRAY_SIZE(kNegativePostIndex), 2124 kNegativePostIndex}, 2125 {{al, r12, r1, minus, r11, ASR, 1, PostIndex}, 2126 "al r12 r1 minus r11 ASR 1 PostIndex", 2127 "NegativePostIndex_al_r12_r1_minus_r11_ASR_1_PostIndex", 2128 ARRAY_SIZE(kNegativePostIndex), 2129 kNegativePostIndex}, 2130 {{al, r7, r4, minus, r5, ASR, 32, PostIndex}, 2131 "al r7 r4 minus r5 ASR 32 PostIndex", 2132 "NegativePostIndex_al_r7_r4_minus_r5_ASR_32_PostIndex", 2133 ARRAY_SIZE(kNegativePostIndex), 2134 kNegativePostIndex}, 2135 {{al, r3, r1, minus, r6, LSR, 32, PostIndex}, 2136 "al r3 r1 minus r6 LSR 32 PostIndex", 2137 "NegativePostIndex_al_r3_r1_minus_r6_LSR_32_PostIndex", 2138 ARRAY_SIZE(kNegativePostIndex), 2139 kNegativePostIndex}, 2140 {{al, r4, r7, minus, r6, LSR, 4, PostIndex}, 2141 "al r4 r7 minus r6 LSR 4 PostIndex", 2142 "NegativePostIndex_al_r4_r7_minus_r6_LSR_4_PostIndex", 2143 ARRAY_SIZE(kNegativePostIndex), 2144 kNegativePostIndex}, 2145 {{al, r10, r9, minus, r11, LSR, 3, PostIndex}, 2146 "al r10 r9 minus r11 LSR 3 PostIndex", 2147 "NegativePostIndex_al_r10_r9_minus_r11_LSR_3_PostIndex", 2148 ARRAY_SIZE(kNegativePostIndex), 2149 kNegativePostIndex}, 2150 {{al, r8, r2, minus, r1, ASR, 12, PostIndex}, 2151 "al r8 r2 minus r1 ASR 12 PostIndex", 2152 "NegativePostIndex_al_r8_r2_minus_r1_ASR_12_PostIndex", 2153 ARRAY_SIZE(kNegativePostIndex), 2154 kNegativePostIndex}, 2155 {{al, r6, r2, minus, r12, ASR, 30, PostIndex}, 2156 "al r6 r2 minus r12 ASR 30 PostIndex", 2157 "NegativePostIndex_al_r6_r2_minus_r12_ASR_30_PostIndex", 2158 ARRAY_SIZE(kNegativePostIndex), 2159 kNegativePostIndex}, 2160 {{al, r4, r5, minus, r9, LSR, 22, PostIndex}, 2161 "al r4 r5 minus r9 LSR 22 PostIndex", 2162 "NegativePostIndex_al_r4_r5_minus_r9_LSR_22_PostIndex", 2163 ARRAY_SIZE(kNegativePostIndex), 2164 kNegativePostIndex}, 2165 {{al, r8, r9, minus, r2, LSR, 3, PostIndex}, 2166 "al r8 r9 minus r2 LSR 3 PostIndex", 2167 "NegativePostIndex_al_r8_r9_minus_r2_LSR_3_PostIndex", 2168 ARRAY_SIZE(kNegativePostIndex), 2169 kNegativePostIndex}, 2170 {{al, r14, r1, minus, r9, ASR, 13, PostIndex}, 2171 "al r14 r1 minus r9 ASR 13 PostIndex", 2172 "NegativePostIndex_al_r14_r1_minus_r9_ASR_13_PostIndex", 2173 ARRAY_SIZE(kNegativePostIndex), 2174 kNegativePostIndex}, 2175 {{al, r12, r11, minus, r3, ASR, 23, PostIndex}, 2176 "al r12 r11 minus r3 ASR 23 PostIndex", 2177 "NegativePostIndex_al_r12_r11_minus_r3_ASR_23_PostIndex", 2178 ARRAY_SIZE(kNegativePostIndex), 2179 kNegativePostIndex}, 2180 {{al, r1, r12, minus, r11, LSR, 29, PostIndex}, 2181 "al r1 r12 minus r11 LSR 29 PostIndex", 2182 "NegativePostIndex_al_r1_r12_minus_r11_LSR_29_PostIndex", 2183 ARRAY_SIZE(kNegativePostIndex), 2184 kNegativePostIndex}, 2185 {{al, r3, r1, minus, r6, ASR, 15, PostIndex}, 2186 "al r3 r1 minus r6 ASR 15 PostIndex", 2187 "NegativePostIndex_al_r3_r1_minus_r6_ASR_15_PostIndex", 2188 ARRAY_SIZE(kNegativePostIndex), 2189 kNegativePostIndex}, 2190 {{al, r7, r0, minus, r6, ASR, 2, PostIndex}, 2191 "al r7 r0 minus r6 ASR 2 PostIndex", 2192 "NegativePostIndex_al_r7_r0_minus_r6_ASR_2_PostIndex", 2193 ARRAY_SIZE(kNegativePostIndex), 2194 kNegativePostIndex}, 2195 {{al, r11, r7, minus, r9, LSR, 14, PostIndex}, 2196 "al r11 r7 minus r9 LSR 14 PostIndex", 2197 "NegativePostIndex_al_r11_r7_minus_r9_LSR_14_PostIndex", 2198 ARRAY_SIZE(kNegativePostIndex), 2199 kNegativePostIndex}, 2200 {{al, r14, r10, minus, r4, ASR, 23, PostIndex}, 2201 "al r14 r10 minus r4 ASR 23 PostIndex", 2202 "NegativePostIndex_al_r14_r10_minus_r4_ASR_23_PostIndex", 2203 ARRAY_SIZE(kNegativePostIndex), 2204 kNegativePostIndex}, 2205 {{al, r10, r12, minus, r4, ASR, 5, PostIndex}, 2206 "al r10 r12 minus r4 ASR 5 PostIndex", 2207 "NegativePostIndex_al_r10_r12_minus_r4_ASR_5_PostIndex", 2208 ARRAY_SIZE(kNegativePostIndex), 2209 kNegativePostIndex}, 2210 {{al, r10, r11, minus, r3, LSR, 7, PostIndex}, 2211 "al r10 r11 minus r3 LSR 7 PostIndex", 2212 "NegativePostIndex_al_r10_r11_minus_r3_LSR_7_PostIndex", 2213 ARRAY_SIZE(kNegativePostIndex), 2214 kNegativePostIndex}, 2215 {{al, r14, r1, minus, r11, ASR, 6, PostIndex}, 2216 "al r14 r1 minus r11 ASR 6 PostIndex", 2217 "NegativePostIndex_al_r14_r1_minus_r11_ASR_6_PostIndex", 2218 ARRAY_SIZE(kNegativePostIndex), 2219 kNegativePostIndex}, 2220 {{al, r12, r7, minus, r4, ASR, 9, PostIndex}, 2221 "al r12 r7 minus r4 ASR 9 PostIndex", 2222 "NegativePostIndex_al_r12_r7_minus_r4_ASR_9_PostIndex", 2223 ARRAY_SIZE(kNegativePostIndex), 2224 kNegativePostIndex}, 2225 {{al, r6, r7, minus, r10, ASR, 21, PostIndex}, 2226 "al r6 r7 minus r10 ASR 21 PostIndex", 2227 "NegativePostIndex_al_r6_r7_minus_r10_ASR_21_PostIndex", 2228 ARRAY_SIZE(kNegativePostIndex), 2229 kNegativePostIndex}, 2230 {{al, r1, r5, minus, r0, ASR, 28, PostIndex}, 2231 "al r1 r5 minus r0 ASR 28 PostIndex", 2232 "NegativePostIndex_al_r1_r5_minus_r0_ASR_28_PostIndex", 2233 ARRAY_SIZE(kNegativePostIndex), 2234 kNegativePostIndex}, 2235 {{al, r2, r8, minus, r0, ASR, 10, PostIndex}, 2236 "al r2 r8 minus r0 ASR 10 PostIndex", 2237 "NegativePostIndex_al_r2_r8_minus_r0_ASR_10_PostIndex", 2238 ARRAY_SIZE(kNegativePostIndex), 2239 kNegativePostIndex}, 2240 {{al, r9, r0, minus, r3, ASR, 24, PostIndex}, 2241 "al r9 r0 minus r3 ASR 24 PostIndex", 2242 "NegativePostIndex_al_r9_r0_minus_r3_ASR_24_PostIndex", 2243 ARRAY_SIZE(kNegativePostIndex), 2244 kNegativePostIndex}, 2245 {{al, r5, r1, minus, r3, LSR, 14, PostIndex}, 2246 "al r5 r1 minus r3 LSR 14 PostIndex", 2247 "NegativePostIndex_al_r5_r1_minus_r3_LSR_14_PostIndex", 2248 ARRAY_SIZE(kNegativePostIndex), 2249 kNegativePostIndex}, 2250 {{al, r3, r14, minus, r1, ASR, 12, PostIndex}, 2251 "al r3 r14 minus r1 ASR 12 PostIndex", 2252 "NegativePostIndex_al_r3_r14_minus_r1_ASR_12_PostIndex", 2253 ARRAY_SIZE(kNegativePostIndex), 2254 kNegativePostIndex}, 2255 {{al, r4, r2, minus, r1, LSR, 5, PostIndex}, 2256 "al r4 r2 minus r1 LSR 5 PostIndex", 2257 "NegativePostIndex_al_r4_r2_minus_r1_LSR_5_PostIndex", 2258 ARRAY_SIZE(kNegativePostIndex), 2259 kNegativePostIndex}, 2260 {{al, r12, r6, minus, r4, LSR, 16, PostIndex}, 2261 "al r12 r6 minus r4 LSR 16 PostIndex", 2262 "NegativePostIndex_al_r12_r6_minus_r4_LSR_16_PostIndex", 2263 ARRAY_SIZE(kNegativePostIndex), 2264 kNegativePostIndex}, 2265 {{al, r9, r12, minus, r3, ASR, 24, PostIndex}, 2266 "al r9 r12 minus r3 ASR 24 PostIndex", 2267 "NegativePostIndex_al_r9_r12_minus_r3_ASR_24_PostIndex", 2268 ARRAY_SIZE(kNegativePostIndex), 2269 kNegativePostIndex}, 2270 {{al, r5, r10, minus, r7, ASR, 3, PostIndex}, 2271 "al r5 r10 minus r7 ASR 3 PostIndex", 2272 "NegativePostIndex_al_r5_r10_minus_r7_ASR_3_PostIndex", 2273 ARRAY_SIZE(kNegativePostIndex), 2274 kNegativePostIndex}, 2275 {{al, r3, r7, minus, r14, LSR, 3, PostIndex}, 2276 "al r3 r7 minus r14 LSR 3 PostIndex", 2277 "NegativePostIndex_al_r3_r7_minus_r14_LSR_3_PostIndex", 2278 ARRAY_SIZE(kNegativePostIndex), 2279 kNegativePostIndex}, 2280 {{al, r7, r14, minus, r5, LSR, 18, PostIndex}, 2281 "al r7 r14 minus r5 LSR 18 PostIndex", 2282 "NegativePostIndex_al_r7_r14_minus_r5_LSR_18_PostIndex", 2283 ARRAY_SIZE(kNegativePostIndex), 2284 kNegativePostIndex}, 2285 {{al, r6, r12, minus, r14, ASR, 2, PostIndex}, 2286 "al r6 r12 minus r14 ASR 2 PostIndex", 2287 "NegativePostIndex_al_r6_r12_minus_r14_ASR_2_PostIndex", 2288 ARRAY_SIZE(kNegativePostIndex), 2289 kNegativePostIndex}, 2290 {{al, r7, r9, minus, r2, LSR, 28, PostIndex}, 2291 "al r7 r9 minus r2 LSR 28 PostIndex", 2292 "NegativePostIndex_al_r7_r9_minus_r2_LSR_28_PostIndex", 2293 ARRAY_SIZE(kNegativePostIndex), 2294 kNegativePostIndex}, 2295 {{al, r8, r0, minus, r9, ASR, 25, PostIndex}, 2296 "al r8 r0 minus r9 ASR 25 PostIndex", 2297 "NegativePostIndex_al_r8_r0_minus_r9_ASR_25_PostIndex", 2298 ARRAY_SIZE(kNegativePostIndex), 2299 kNegativePostIndex}, 2300 {{al, r2, r9, minus, r4, ASR, 15, PostIndex}, 2301 "al r2 r9 minus r4 ASR 15 PostIndex", 2302 "NegativePostIndex_al_r2_r9_minus_r4_ASR_15_PostIndex", 2303 ARRAY_SIZE(kNegativePostIndex), 2304 kNegativePostIndex}, 2305 {{al, r11, r7, minus, r2, ASR, 31, PostIndex}, 2306 "al r11 r7 minus r2 ASR 31 PostIndex", 2307 "NegativePostIndex_al_r11_r7_minus_r2_ASR_31_PostIndex", 2308 ARRAY_SIZE(kNegativePostIndex), 2309 kNegativePostIndex}, 2310 {{al, r7, r4, minus, r2, ASR, 28, PostIndex}, 2311 "al r7 r4 minus r2 ASR 28 PostIndex", 2312 "NegativePostIndex_al_r7_r4_minus_r2_ASR_28_PostIndex", 2313 ARRAY_SIZE(kNegativePostIndex), 2314 kNegativePostIndex}, 2315 {{al, r7, r1, minus, r4, LSR, 21, PostIndex}, 2316 "al r7 r1 minus r4 LSR 21 PostIndex", 2317 "NegativePostIndex_al_r7_r1_minus_r4_LSR_21_PostIndex", 2318 ARRAY_SIZE(kNegativePostIndex), 2319 kNegativePostIndex}, 2320 {{al, r6, r0, minus, r11, ASR, 5, PostIndex}, 2321 "al r6 r0 minus r11 ASR 5 PostIndex", 2322 "NegativePostIndex_al_r6_r0_minus_r11_ASR_5_PostIndex", 2323 ARRAY_SIZE(kNegativePostIndex), 2324 kNegativePostIndex}, 2325 {{al, r7, r8, minus, r14, ASR, 7, PostIndex}, 2326 "al r7 r8 minus r14 ASR 7 PostIndex", 2327 "NegativePostIndex_al_r7_r8_minus_r14_ASR_7_PostIndex", 2328 ARRAY_SIZE(kNegativePostIndex), 2329 kNegativePostIndex}, 2330 {{al, r1, r12, minus, r6, LSR, 8, PostIndex}, 2331 "al r1 r12 minus r6 LSR 8 PostIndex", 2332 "NegativePostIndex_al_r1_r12_minus_r6_LSR_8_PostIndex", 2333 ARRAY_SIZE(kNegativePostIndex), 2334 kNegativePostIndex}, 2335 {{al, r4, r7, plus, r5, LSR, 28, PreIndex}, 2336 "al r4 r7 plus r5 LSR 28 PreIndex", 2337 "PositivePreIndex_al_r4_r7_plus_r5_LSR_28_PreIndex", 2338 ARRAY_SIZE(kPositivePreIndex), 2339 kPositivePreIndex}, 2340 {{al, r1, r9, plus, r0, LSR, 17, PreIndex}, 2341 "al r1 r9 plus r0 LSR 17 PreIndex", 2342 "PositivePreIndex_al_r1_r9_plus_r0_LSR_17_PreIndex", 2343 ARRAY_SIZE(kPositivePreIndex), 2344 kPositivePreIndex}, 2345 {{al, r12, r9, plus, r7, ASR, 17, PreIndex}, 2346 "al r12 r9 plus r7 ASR 17 PreIndex", 2347 "PositivePreIndex_al_r12_r9_plus_r7_ASR_17_PreIndex", 2348 ARRAY_SIZE(kPositivePreIndex), 2349 kPositivePreIndex}, 2350 {{al, r3, r9, plus, r6, LSR, 2, PreIndex}, 2351 "al r3 r9 plus r6 LSR 2 PreIndex", 2352 "PositivePreIndex_al_r3_r9_plus_r6_LSR_2_PreIndex", 2353 ARRAY_SIZE(kPositivePreIndex), 2354 kPositivePreIndex}, 2355 {{al, r10, r0, plus, r11, ASR, 9, PreIndex}, 2356 "al r10 r0 plus r11 ASR 9 PreIndex", 2357 "PositivePreIndex_al_r10_r0_plus_r11_ASR_9_PreIndex", 2358 ARRAY_SIZE(kPositivePreIndex), 2359 kPositivePreIndex}, 2360 {{al, r1, r6, plus, r12, ASR, 32, PreIndex}, 2361 "al r1 r6 plus r12 ASR 32 PreIndex", 2362 "PositivePreIndex_al_r1_r6_plus_r12_ASR_32_PreIndex", 2363 ARRAY_SIZE(kPositivePreIndex), 2364 kPositivePreIndex}, 2365 {{al, r5, r2, plus, r14, ASR, 15, PreIndex}, 2366 "al r5 r2 plus r14 ASR 15 PreIndex", 2367 "PositivePreIndex_al_r5_r2_plus_r14_ASR_15_PreIndex", 2368 ARRAY_SIZE(kPositivePreIndex), 2369 kPositivePreIndex}, 2370 {{al, r4, r3, plus, r7, LSR, 12, PreIndex}, 2371 "al r4 r3 plus r7 LSR 12 PreIndex", 2372 "PositivePreIndex_al_r4_r3_plus_r7_LSR_12_PreIndex", 2373 ARRAY_SIZE(kPositivePreIndex), 2374 kPositivePreIndex}, 2375 {{al, r0, r11, plus, r7, LSR, 3, PreIndex}, 2376 "al r0 r11 plus r7 LSR 3 PreIndex", 2377 "PositivePreIndex_al_r0_r11_plus_r7_LSR_3_PreIndex", 2378 ARRAY_SIZE(kPositivePreIndex), 2379 kPositivePreIndex}, 2380 {{al, r2, r12, plus, r8, ASR, 31, PreIndex}, 2381 "al r2 r12 plus r8 ASR 31 PreIndex", 2382 "PositivePreIndex_al_r2_r12_plus_r8_ASR_31_PreIndex", 2383 ARRAY_SIZE(kPositivePreIndex), 2384 kPositivePreIndex}, 2385 {{al, r8, r2, plus, r9, ASR, 27, PreIndex}, 2386 "al r8 r2 plus r9 ASR 27 PreIndex", 2387 "PositivePreIndex_al_r8_r2_plus_r9_ASR_27_PreIndex", 2388 ARRAY_SIZE(kPositivePreIndex), 2389 kPositivePreIndex}, 2390 {{al, r9, r4, plus, r7, ASR, 2, PreIndex}, 2391 "al r9 r4 plus r7 ASR 2 PreIndex", 2392 "PositivePreIndex_al_r9_r4_plus_r7_ASR_2_PreIndex", 2393 ARRAY_SIZE(kPositivePreIndex), 2394 kPositivePreIndex}, 2395 {{al, r4, r3, plus, r1, ASR, 19, PreIndex}, 2396 "al r4 r3 plus r1 ASR 19 PreIndex", 2397 "PositivePreIndex_al_r4_r3_plus_r1_ASR_19_PreIndex", 2398 ARRAY_SIZE(kPositivePreIndex), 2399 kPositivePreIndex}, 2400 {{al, r2, r9, plus, r11, ASR, 4, PreIndex}, 2401 "al r2 r9 plus r11 ASR 4 PreIndex", 2402 "PositivePreIndex_al_r2_r9_plus_r11_ASR_4_PreIndex", 2403 ARRAY_SIZE(kPositivePreIndex), 2404 kPositivePreIndex}, 2405 {{al, r0, r9, plus, r11, ASR, 22, PreIndex}, 2406 "al r0 r9 plus r11 ASR 22 PreIndex", 2407 "PositivePreIndex_al_r0_r9_plus_r11_ASR_22_PreIndex", 2408 ARRAY_SIZE(kPositivePreIndex), 2409 kPositivePreIndex}, 2410 {{al, r11, r6, plus, r4, LSR, 29, PreIndex}, 2411 "al r11 r6 plus r4 LSR 29 PreIndex", 2412 "PositivePreIndex_al_r11_r6_plus_r4_LSR_29_PreIndex", 2413 ARRAY_SIZE(kPositivePreIndex), 2414 kPositivePreIndex}, 2415 {{al, r10, r1, plus, r5, ASR, 2, PreIndex}, 2416 "al r10 r1 plus r5 ASR 2 PreIndex", 2417 "PositivePreIndex_al_r10_r1_plus_r5_ASR_2_PreIndex", 2418 ARRAY_SIZE(kPositivePreIndex), 2419 kPositivePreIndex}, 2420 {{al, r10, r12, plus, r14, ASR, 9, PreIndex}, 2421 "al r10 r12 plus r14 ASR 9 PreIndex", 2422 "PositivePreIndex_al_r10_r12_plus_r14_ASR_9_PreIndex", 2423 ARRAY_SIZE(kPositivePreIndex), 2424 kPositivePreIndex}, 2425 {{al, r11, r8, plus, r14, ASR, 24, PreIndex}, 2426 "al r11 r8 plus r14 ASR 24 PreIndex", 2427 "PositivePreIndex_al_r11_r8_plus_r14_ASR_24_PreIndex", 2428 ARRAY_SIZE(kPositivePreIndex), 2429 kPositivePreIndex}, 2430 {{al, r12, r14, plus, r8, ASR, 14, PreIndex}, 2431 "al r12 r14 plus r8 ASR 14 PreIndex", 2432 "PositivePreIndex_al_r12_r14_plus_r8_ASR_14_PreIndex", 2433 ARRAY_SIZE(kPositivePreIndex), 2434 kPositivePreIndex}, 2435 {{al, r14, r2, plus, r1, ASR, 13, PreIndex}, 2436 "al r14 r2 plus r1 ASR 13 PreIndex", 2437 "PositivePreIndex_al_r14_r2_plus_r1_ASR_13_PreIndex", 2438 ARRAY_SIZE(kPositivePreIndex), 2439 kPositivePreIndex}, 2440 {{al, r11, r10, plus, r6, ASR, 26, PreIndex}, 2441 "al r11 r10 plus r6 ASR 26 PreIndex", 2442 "PositivePreIndex_al_r11_r10_plus_r6_ASR_26_PreIndex", 2443 ARRAY_SIZE(kPositivePreIndex), 2444 kPositivePreIndex}, 2445 {{al, r14, r10, plus, r12, LSR, 11, PreIndex}, 2446 "al r14 r10 plus r12 LSR 11 PreIndex", 2447 "PositivePreIndex_al_r14_r10_plus_r12_LSR_11_PreIndex", 2448 ARRAY_SIZE(kPositivePreIndex), 2449 kPositivePreIndex}, 2450 {{al, r6, r3, plus, r4, LSR, 19, PreIndex}, 2451 "al r6 r3 plus r4 LSR 19 PreIndex", 2452 "PositivePreIndex_al_r6_r3_plus_r4_LSR_19_PreIndex", 2453 ARRAY_SIZE(kPositivePreIndex), 2454 kPositivePreIndex}, 2455 {{al, r1, r12, plus, r6, ASR, 11, PreIndex}, 2456 "al r1 r12 plus r6 ASR 11 PreIndex", 2457 "PositivePreIndex_al_r1_r12_plus_r6_ASR_11_PreIndex", 2458 ARRAY_SIZE(kPositivePreIndex), 2459 kPositivePreIndex}, 2460 {{al, r8, r14, plus, r0, ASR, 14, PreIndex}, 2461 "al r8 r14 plus r0 ASR 14 PreIndex", 2462 "PositivePreIndex_al_r8_r14_plus_r0_ASR_14_PreIndex", 2463 ARRAY_SIZE(kPositivePreIndex), 2464 kPositivePreIndex}, 2465 {{al, r6, r4, plus, r12, ASR, 28, PreIndex}, 2466 "al r6 r4 plus r12 ASR 28 PreIndex", 2467 "PositivePreIndex_al_r6_r4_plus_r12_ASR_28_PreIndex", 2468 ARRAY_SIZE(kPositivePreIndex), 2469 kPositivePreIndex}, 2470 {{al, r7, r11, plus, r10, LSR, 6, PreIndex}, 2471 "al r7 r11 plus r10 LSR 6 PreIndex", 2472 "PositivePreIndex_al_r7_r11_plus_r10_LSR_6_PreIndex", 2473 ARRAY_SIZE(kPositivePreIndex), 2474 kPositivePreIndex}, 2475 {{al, r12, r8, plus, r2, LSR, 2, PreIndex}, 2476 "al r12 r8 plus r2 LSR 2 PreIndex", 2477 "PositivePreIndex_al_r12_r8_plus_r2_LSR_2_PreIndex", 2478 ARRAY_SIZE(kPositivePreIndex), 2479 kPositivePreIndex}, 2480 {{al, r1, r5, plus, r8, LSR, 23, PreIndex}, 2481 "al r1 r5 plus r8 LSR 23 PreIndex", 2482 "PositivePreIndex_al_r1_r5_plus_r8_LSR_23_PreIndex", 2483 ARRAY_SIZE(kPositivePreIndex), 2484 kPositivePreIndex}, 2485 {{al, r11, r14, plus, r8, ASR, 11, PreIndex}, 2486 "al r11 r14 plus r8 ASR 11 PreIndex", 2487 "PositivePreIndex_al_r11_r14_plus_r8_ASR_11_PreIndex", 2488 ARRAY_SIZE(kPositivePreIndex), 2489 kPositivePreIndex}, 2490 {{al, r4, r14, plus, r8, ASR, 20, PreIndex}, 2491 "al r4 r14 plus r8 ASR 20 PreIndex", 2492 "PositivePreIndex_al_r4_r14_plus_r8_ASR_20_PreIndex", 2493 ARRAY_SIZE(kPositivePreIndex), 2494 kPositivePreIndex}, 2495 {{al, r6, r11, plus, r1, ASR, 24, PreIndex}, 2496 "al r6 r11 plus r1 ASR 24 PreIndex", 2497 "PositivePreIndex_al_r6_r11_plus_r1_ASR_24_PreIndex", 2498 ARRAY_SIZE(kPositivePreIndex), 2499 kPositivePreIndex}, 2500 {{al, r0, r3, plus, r4, ASR, 19, PreIndex}, 2501 "al r0 r3 plus r4 ASR 19 PreIndex", 2502 "PositivePreIndex_al_r0_r3_plus_r4_ASR_19_PreIndex", 2503 ARRAY_SIZE(kPositivePreIndex), 2504 kPositivePreIndex}, 2505 {{al, r2, r10, plus, r0, ASR, 25, PreIndex}, 2506 "al r2 r10 plus r0 ASR 25 PreIndex", 2507 "PositivePreIndex_al_r2_r10_plus_r0_ASR_25_PreIndex", 2508 ARRAY_SIZE(kPositivePreIndex), 2509 kPositivePreIndex}, 2510 {{al, r3, r2, plus, r5, LSR, 18, PreIndex}, 2511 "al r3 r2 plus r5 LSR 18 PreIndex", 2512 "PositivePreIndex_al_r3_r2_plus_r5_LSR_18_PreIndex", 2513 ARRAY_SIZE(kPositivePreIndex), 2514 kPositivePreIndex}, 2515 {{al, r6, r8, plus, r10, ASR, 3, PreIndex}, 2516 "al r6 r8 plus r10 ASR 3 PreIndex", 2517 "PositivePreIndex_al_r6_r8_plus_r10_ASR_3_PreIndex", 2518 ARRAY_SIZE(kPositivePreIndex), 2519 kPositivePreIndex}, 2520 {{al, r4, r10, plus, r1, LSR, 19, PreIndex}, 2521 "al r4 r10 plus r1 LSR 19 PreIndex", 2522 "PositivePreIndex_al_r4_r10_plus_r1_LSR_19_PreIndex", 2523 ARRAY_SIZE(kPositivePreIndex), 2524 kPositivePreIndex}, 2525 {{al, r4, r3, plus, r5, ASR, 13, PreIndex}, 2526 "al r4 r3 plus r5 ASR 13 PreIndex", 2527 "PositivePreIndex_al_r4_r3_plus_r5_ASR_13_PreIndex", 2528 ARRAY_SIZE(kPositivePreIndex), 2529 kPositivePreIndex}, 2530 {{al, r5, r0, plus, r4, ASR, 3, PreIndex}, 2531 "al r5 r0 plus r4 ASR 3 PreIndex", 2532 "PositivePreIndex_al_r5_r0_plus_r4_ASR_3_PreIndex", 2533 ARRAY_SIZE(kPositivePreIndex), 2534 kPositivePreIndex}, 2535 {{al, r9, r2, plus, r7, ASR, 16, PreIndex}, 2536 "al r9 r2 plus r7 ASR 16 PreIndex", 2537 "PositivePreIndex_al_r9_r2_plus_r7_ASR_16_PreIndex", 2538 ARRAY_SIZE(kPositivePreIndex), 2539 kPositivePreIndex}, 2540 {{al, r4, r1, plus, r9, ASR, 21, PreIndex}, 2541 "al r4 r1 plus r9 ASR 21 PreIndex", 2542 "PositivePreIndex_al_r4_r1_plus_r9_ASR_21_PreIndex", 2543 ARRAY_SIZE(kPositivePreIndex), 2544 kPositivePreIndex}, 2545 {{al, r5, r12, plus, r2, LSR, 9, PreIndex}, 2546 "al r5 r12 plus r2 LSR 9 PreIndex", 2547 "PositivePreIndex_al_r5_r12_plus_r2_LSR_9_PreIndex", 2548 ARRAY_SIZE(kPositivePreIndex), 2549 kPositivePreIndex}, 2550 {{al, r10, r7, plus, r11, LSR, 9, PreIndex}, 2551 "al r10 r7 plus r11 LSR 9 PreIndex", 2552 "PositivePreIndex_al_r10_r7_plus_r11_LSR_9_PreIndex", 2553 ARRAY_SIZE(kPositivePreIndex), 2554 kPositivePreIndex}, 2555 {{al, r1, r9, plus, r7, LSR, 32, PreIndex}, 2556 "al r1 r9 plus r7 LSR 32 PreIndex", 2557 "PositivePreIndex_al_r1_r9_plus_r7_LSR_32_PreIndex", 2558 ARRAY_SIZE(kPositivePreIndex), 2559 kPositivePreIndex}, 2560 {{al, r6, r7, plus, r4, LSR, 23, PreIndex}, 2561 "al r6 r7 plus r4 LSR 23 PreIndex", 2562 "PositivePreIndex_al_r6_r7_plus_r4_LSR_23_PreIndex", 2563 ARRAY_SIZE(kPositivePreIndex), 2564 kPositivePreIndex}, 2565 {{al, r4, r14, plus, r11, LSR, 17, PreIndex}, 2566 "al r4 r14 plus r11 LSR 17 PreIndex", 2567 "PositivePreIndex_al_r4_r14_plus_r11_LSR_17_PreIndex", 2568 ARRAY_SIZE(kPositivePreIndex), 2569 kPositivePreIndex}, 2570 {{al, r6, r9, plus, r14, ASR, 17, PreIndex}, 2571 "al r6 r9 plus r14 ASR 17 PreIndex", 2572 "PositivePreIndex_al_r6_r9_plus_r14_ASR_17_PreIndex", 2573 ARRAY_SIZE(kPositivePreIndex), 2574 kPositivePreIndex}, 2575 {{al, r10, r1, plus, r5, ASR, 8, PreIndex}, 2576 "al r10 r1 plus r5 ASR 8 PreIndex", 2577 "PositivePreIndex_al_r10_r1_plus_r5_ASR_8_PreIndex", 2578 ARRAY_SIZE(kPositivePreIndex), 2579 kPositivePreIndex}, 2580 {{al, r12, r3, plus, r4, ASR, 2, PreIndex}, 2581 "al r12 r3 plus r4 ASR 2 PreIndex", 2582 "PositivePreIndex_al_r12_r3_plus_r4_ASR_2_PreIndex", 2583 ARRAY_SIZE(kPositivePreIndex), 2584 kPositivePreIndex}, 2585 {{al, r14, r0, plus, r11, LSR, 8, PreIndex}, 2586 "al r14 r0 plus r11 LSR 8 PreIndex", 2587 "PositivePreIndex_al_r14_r0_plus_r11_LSR_8_PreIndex", 2588 ARRAY_SIZE(kPositivePreIndex), 2589 kPositivePreIndex}, 2590 {{al, r5, r6, plus, r2, ASR, 15, PreIndex}, 2591 "al r5 r6 plus r2 ASR 15 PreIndex", 2592 "PositivePreIndex_al_r5_r6_plus_r2_ASR_15_PreIndex", 2593 ARRAY_SIZE(kPositivePreIndex), 2594 kPositivePreIndex}, 2595 {{al, r1, r4, plus, r3, ASR, 4, PreIndex}, 2596 "al r1 r4 plus r3 ASR 4 PreIndex", 2597 "PositivePreIndex_al_r1_r4_plus_r3_ASR_4_PreIndex", 2598 ARRAY_SIZE(kPositivePreIndex), 2599 kPositivePreIndex}, 2600 {{al, r8, r4, plus, r9, LSR, 22, PreIndex}, 2601 "al r8 r4 plus r9 LSR 22 PreIndex", 2602 "PositivePreIndex_al_r8_r4_plus_r9_LSR_22_PreIndex", 2603 ARRAY_SIZE(kPositivePreIndex), 2604 kPositivePreIndex}, 2605 {{al, r0, r2, plus, r6, LSR, 5, PreIndex}, 2606 "al r0 r2 plus r6 LSR 5 PreIndex", 2607 "PositivePreIndex_al_r0_r2_plus_r6_LSR_5_PreIndex", 2608 ARRAY_SIZE(kPositivePreIndex), 2609 kPositivePreIndex}, 2610 {{al, r4, r12, plus, r14, ASR, 21, PreIndex}, 2611 "al r4 r12 plus r14 ASR 21 PreIndex", 2612 "PositivePreIndex_al_r4_r12_plus_r14_ASR_21_PreIndex", 2613 ARRAY_SIZE(kPositivePreIndex), 2614 kPositivePreIndex}, 2615 {{al, r4, r3, plus, r5, LSR, 1, PreIndex}, 2616 "al r4 r3 plus r5 LSR 1 PreIndex", 2617 "PositivePreIndex_al_r4_r3_plus_r5_LSR_1_PreIndex", 2618 ARRAY_SIZE(kPositivePreIndex), 2619 kPositivePreIndex}, 2620 {{al, r7, r3, plus, r4, ASR, 15, PreIndex}, 2621 "al r7 r3 plus r4 ASR 15 PreIndex", 2622 "PositivePreIndex_al_r7_r3_plus_r4_ASR_15_PreIndex", 2623 ARRAY_SIZE(kPositivePreIndex), 2624 kPositivePreIndex}, 2625 {{al, r3, r8, plus, r11, ASR, 5, PreIndex}, 2626 "al r3 r8 plus r11 ASR 5 PreIndex", 2627 "PositivePreIndex_al_r3_r8_plus_r11_ASR_5_PreIndex", 2628 ARRAY_SIZE(kPositivePreIndex), 2629 kPositivePreIndex}, 2630 {{al, r11, r6, plus, r1, LSR, 17, PreIndex}, 2631 "al r11 r6 plus r1 LSR 17 PreIndex", 2632 "PositivePreIndex_al_r11_r6_plus_r1_LSR_17_PreIndex", 2633 ARRAY_SIZE(kPositivePreIndex), 2634 kPositivePreIndex}, 2635 {{al, r12, r4, plus, r0, LSR, 1, PreIndex}, 2636 "al r12 r4 plus r0 LSR 1 PreIndex", 2637 "PositivePreIndex_al_r12_r4_plus_r0_LSR_1_PreIndex", 2638 ARRAY_SIZE(kPositivePreIndex), 2639 kPositivePreIndex}, 2640 {{al, r1, r4, plus, r5, ASR, 12, PreIndex}, 2641 "al r1 r4 plus r5 ASR 12 PreIndex", 2642 "PositivePreIndex_al_r1_r4_plus_r5_ASR_12_PreIndex", 2643 ARRAY_SIZE(kPositivePreIndex), 2644 kPositivePreIndex}, 2645 {{al, r14, r0, plus, r2, LSR, 5, PreIndex}, 2646 "al r14 r0 plus r2 LSR 5 PreIndex", 2647 "PositivePreIndex_al_r14_r0_plus_r2_LSR_5_PreIndex", 2648 ARRAY_SIZE(kPositivePreIndex), 2649 kPositivePreIndex}, 2650 {{al, r14, r8, plus, r7, LSR, 10, PreIndex}, 2651 "al r14 r8 plus r7 LSR 10 PreIndex", 2652 "PositivePreIndex_al_r14_r8_plus_r7_LSR_10_PreIndex", 2653 ARRAY_SIZE(kPositivePreIndex), 2654 kPositivePreIndex}, 2655 {{al, r8, r6, plus, r4, ASR, 21, PreIndex}, 2656 "al r8 r6 plus r4 ASR 21 PreIndex", 2657 "PositivePreIndex_al_r8_r6_plus_r4_ASR_21_PreIndex", 2658 ARRAY_SIZE(kPositivePreIndex), 2659 kPositivePreIndex}, 2660 {{al, r4, r7, plus, r11, ASR, 8, PreIndex}, 2661 "al r4 r7 plus r11 ASR 8 PreIndex", 2662 "PositivePreIndex_al_r4_r7_plus_r11_ASR_8_PreIndex", 2663 ARRAY_SIZE(kPositivePreIndex), 2664 kPositivePreIndex}, 2665 {{al, r3, r0, plus, r10, LSR, 30, PreIndex}, 2666 "al r3 r0 plus r10 LSR 30 PreIndex", 2667 "PositivePreIndex_al_r3_r0_plus_r10_LSR_30_PreIndex", 2668 ARRAY_SIZE(kPositivePreIndex), 2669 kPositivePreIndex}, 2670 {{al, r7, r8, plus, r5, ASR, 7, PreIndex}, 2671 "al r7 r8 plus r5 ASR 7 PreIndex", 2672 "PositivePreIndex_al_r7_r8_plus_r5_ASR_7_PreIndex", 2673 ARRAY_SIZE(kPositivePreIndex), 2674 kPositivePreIndex}, 2675 {{al, r1, r14, plus, r10, LSR, 20, PreIndex}, 2676 "al r1 r14 plus r10 LSR 20 PreIndex", 2677 "PositivePreIndex_al_r1_r14_plus_r10_LSR_20_PreIndex", 2678 ARRAY_SIZE(kPositivePreIndex), 2679 kPositivePreIndex}, 2680 {{al, r7, r4, plus, r6, ASR, 24, PreIndex}, 2681 "al r7 r4 plus r6 ASR 24 PreIndex", 2682 "PositivePreIndex_al_r7_r4_plus_r6_ASR_24_PreIndex", 2683 ARRAY_SIZE(kPositivePreIndex), 2684 kPositivePreIndex}, 2685 {{al, r2, r0, plus, r11, ASR, 9, PreIndex}, 2686 "al r2 r0 plus r11 ASR 9 PreIndex", 2687 "PositivePreIndex_al_r2_r0_plus_r11_ASR_9_PreIndex", 2688 ARRAY_SIZE(kPositivePreIndex), 2689 kPositivePreIndex}, 2690 {{al, r4, r5, plus, r6, ASR, 24, PreIndex}, 2691 "al r4 r5 plus r6 ASR 24 PreIndex", 2692 "PositivePreIndex_al_r4_r5_plus_r6_ASR_24_PreIndex", 2693 ARRAY_SIZE(kPositivePreIndex), 2694 kPositivePreIndex}, 2695 {{al, r9, r0, plus, r3, ASR, 26, PreIndex}, 2696 "al r9 r0 plus r3 ASR 26 PreIndex", 2697 "PositivePreIndex_al_r9_r0_plus_r3_ASR_26_PreIndex", 2698 ARRAY_SIZE(kPositivePreIndex), 2699 kPositivePreIndex}, 2700 {{al, r3, r8, plus, r12, ASR, 21, PreIndex}, 2701 "al r3 r8 plus r12 ASR 21 PreIndex", 2702 "PositivePreIndex_al_r3_r8_plus_r12_ASR_21_PreIndex", 2703 ARRAY_SIZE(kPositivePreIndex), 2704 kPositivePreIndex}, 2705 {{al, r3, r1, plus, r0, ASR, 22, PreIndex}, 2706 "al r3 r1 plus r0 ASR 22 PreIndex", 2707 "PositivePreIndex_al_r3_r1_plus_r0_ASR_22_PreIndex", 2708 ARRAY_SIZE(kPositivePreIndex), 2709 kPositivePreIndex}, 2710 {{al, r9, r8, plus, r5, ASR, 25, PreIndex}, 2711 "al r9 r8 plus r5 ASR 25 PreIndex", 2712 "PositivePreIndex_al_r9_r8_plus_r5_ASR_25_PreIndex", 2713 ARRAY_SIZE(kPositivePreIndex), 2714 kPositivePreIndex}, 2715 {{al, r12, r10, plus, r9, LSR, 2, PreIndex}, 2716 "al r12 r10 plus r9 LSR 2 PreIndex", 2717 "PositivePreIndex_al_r12_r10_plus_r9_LSR_2_PreIndex", 2718 ARRAY_SIZE(kPositivePreIndex), 2719 kPositivePreIndex}, 2720 {{al, r12, r10, plus, r14, LSR, 11, PreIndex}, 2721 "al r12 r10 plus r14 LSR 11 PreIndex", 2722 "PositivePreIndex_al_r12_r10_plus_r14_LSR_11_PreIndex", 2723 ARRAY_SIZE(kPositivePreIndex), 2724 kPositivePreIndex}, 2725 {{al, r1, r11, plus, r6, LSR, 12, PreIndex}, 2726 "al r1 r11 plus r6 LSR 12 PreIndex", 2727 "PositivePreIndex_al_r1_r11_plus_r6_LSR_12_PreIndex", 2728 ARRAY_SIZE(kPositivePreIndex), 2729 kPositivePreIndex}, 2730 {{al, r1, r4, plus, r14, LSR, 14, PreIndex}, 2731 "al r1 r4 plus r14 LSR 14 PreIndex", 2732 "PositivePreIndex_al_r1_r4_plus_r14_LSR_14_PreIndex", 2733 ARRAY_SIZE(kPositivePreIndex), 2734 kPositivePreIndex}, 2735 {{al, r6, r7, plus, r12, LSR, 14, PreIndex}, 2736 "al r6 r7 plus r12 LSR 14 PreIndex", 2737 "PositivePreIndex_al_r6_r7_plus_r12_LSR_14_PreIndex", 2738 ARRAY_SIZE(kPositivePreIndex), 2739 kPositivePreIndex}, 2740 {{al, r10, r9, plus, r11, ASR, 9, PreIndex}, 2741 "al r10 r9 plus r11 ASR 9 PreIndex", 2742 "PositivePreIndex_al_r10_r9_plus_r11_ASR_9_PreIndex", 2743 ARRAY_SIZE(kPositivePreIndex), 2744 kPositivePreIndex}, 2745 {{al, r12, r8, plus, r7, ASR, 7, PreIndex}, 2746 "al r12 r8 plus r7 ASR 7 PreIndex", 2747 "PositivePreIndex_al_r12_r8_plus_r7_ASR_7_PreIndex", 2748 ARRAY_SIZE(kPositivePreIndex), 2749 kPositivePreIndex}, 2750 {{al, r10, r7, plus, r9, LSR, 11, PreIndex}, 2751 "al r10 r7 plus r9 LSR 11 PreIndex", 2752 "PositivePreIndex_al_r10_r7_plus_r9_LSR_11_PreIndex", 2753 ARRAY_SIZE(kPositivePreIndex), 2754 kPositivePreIndex}, 2755 {{al, r14, r1, plus, r7, LSR, 27, PreIndex}, 2756 "al r14 r1 plus r7 LSR 27 PreIndex", 2757 "PositivePreIndex_al_r14_r1_plus_r7_LSR_27_PreIndex", 2758 ARRAY_SIZE(kPositivePreIndex), 2759 kPositivePreIndex}, 2760 {{al, r4, r7, plus, r8, ASR, 9, PreIndex}, 2761 "al r4 r7 plus r8 ASR 9 PreIndex", 2762 "PositivePreIndex_al_r4_r7_plus_r8_ASR_9_PreIndex", 2763 ARRAY_SIZE(kPositivePreIndex), 2764 kPositivePreIndex}, 2765 {{al, r3, r10, plus, r5, LSR, 10, PreIndex}, 2766 "al r3 r10 plus r5 LSR 10 PreIndex", 2767 "PositivePreIndex_al_r3_r10_plus_r5_LSR_10_PreIndex", 2768 ARRAY_SIZE(kPositivePreIndex), 2769 kPositivePreIndex}, 2770 {{al, r3, r0, plus, r8, ASR, 3, PreIndex}, 2771 "al r3 r0 plus r8 ASR 3 PreIndex", 2772 "PositivePreIndex_al_r3_r0_plus_r8_ASR_3_PreIndex", 2773 ARRAY_SIZE(kPositivePreIndex), 2774 kPositivePreIndex}, 2775 {{al, r1, r12, plus, r0, ASR, 9, PreIndex}, 2776 "al r1 r12 plus r0 ASR 9 PreIndex", 2777 "PositivePreIndex_al_r1_r12_plus_r0_ASR_9_PreIndex", 2778 ARRAY_SIZE(kPositivePreIndex), 2779 kPositivePreIndex}, 2780 {{al, r14, r3, plus, r5, ASR, 16, PreIndex}, 2781 "al r14 r3 plus r5 ASR 16 PreIndex", 2782 "PositivePreIndex_al_r14_r3_plus_r5_ASR_16_PreIndex", 2783 ARRAY_SIZE(kPositivePreIndex), 2784 kPositivePreIndex}, 2785 {{al, r0, r5, plus, r2, ASR, 9, PreIndex}, 2786 "al r0 r5 plus r2 ASR 9 PreIndex", 2787 "PositivePreIndex_al_r0_r5_plus_r2_ASR_9_PreIndex", 2788 ARRAY_SIZE(kPositivePreIndex), 2789 kPositivePreIndex}, 2790 {{al, r11, r4, plus, r10, ASR, 32, PreIndex}, 2791 "al r11 r4 plus r10 ASR 32 PreIndex", 2792 "PositivePreIndex_al_r11_r4_plus_r10_ASR_32_PreIndex", 2793 ARRAY_SIZE(kPositivePreIndex), 2794 kPositivePreIndex}, 2795 {{al, r11, r0, plus, r5, ASR, 5, PreIndex}, 2796 "al r11 r0 plus r5 ASR 5 PreIndex", 2797 "PositivePreIndex_al_r11_r0_plus_r5_ASR_5_PreIndex", 2798 ARRAY_SIZE(kPositivePreIndex), 2799 kPositivePreIndex}, 2800 {{al, r8, r5, plus, r2, ASR, 20, PreIndex}, 2801 "al r8 r5 plus r2 ASR 20 PreIndex", 2802 "PositivePreIndex_al_r8_r5_plus_r2_ASR_20_PreIndex", 2803 ARRAY_SIZE(kPositivePreIndex), 2804 kPositivePreIndex}, 2805 {{al, r5, r0, plus, r7, LSR, 23, PreIndex}, 2806 "al r5 r0 plus r7 LSR 23 PreIndex", 2807 "PositivePreIndex_al_r5_r0_plus_r7_LSR_23_PreIndex", 2808 ARRAY_SIZE(kPositivePreIndex), 2809 kPositivePreIndex}, 2810 {{al, r7, r11, plus, r2, LSR, 23, PreIndex}, 2811 "al r7 r11 plus r2 LSR 23 PreIndex", 2812 "PositivePreIndex_al_r7_r11_plus_r2_LSR_23_PreIndex", 2813 ARRAY_SIZE(kPositivePreIndex), 2814 kPositivePreIndex}, 2815 {{al, r0, r10, plus, r1, ASR, 28, PreIndex}, 2816 "al r0 r10 plus r1 ASR 28 PreIndex", 2817 "PositivePreIndex_al_r0_r10_plus_r1_ASR_28_PreIndex", 2818 ARRAY_SIZE(kPositivePreIndex), 2819 kPositivePreIndex}, 2820 {{al, r8, r7, plus, r10, ASR, 14, PreIndex}, 2821 "al r8 r7 plus r10 ASR 14 PreIndex", 2822 "PositivePreIndex_al_r8_r7_plus_r10_ASR_14_PreIndex", 2823 ARRAY_SIZE(kPositivePreIndex), 2824 kPositivePreIndex}, 2825 {{al, r8, r12, plus, r11, LSR, 31, PreIndex}, 2826 "al r8 r12 plus r11 LSR 31 PreIndex", 2827 "PositivePreIndex_al_r8_r12_plus_r11_LSR_31_PreIndex", 2828 ARRAY_SIZE(kPositivePreIndex), 2829 kPositivePreIndex}, 2830 {{al, r11, r12, plus, r8, LSR, 4, PreIndex}, 2831 "al r11 r12 plus r8 LSR 4 PreIndex", 2832 "PositivePreIndex_al_r11_r12_plus_r8_LSR_4_PreIndex", 2833 ARRAY_SIZE(kPositivePreIndex), 2834 kPositivePreIndex}, 2835 {{al, r4, r8, minus, r7, ASR, 31, PreIndex}, 2836 "al r4 r8 minus r7 ASR 31 PreIndex", 2837 "NegativePreIndex_al_r4_r8_minus_r7_ASR_31_PreIndex", 2838 ARRAY_SIZE(kNegativePreIndex), 2839 kNegativePreIndex}, 2840 {{al, r9, r0, minus, r12, ASR, 12, PreIndex}, 2841 "al r9 r0 minus r12 ASR 12 PreIndex", 2842 "NegativePreIndex_al_r9_r0_minus_r12_ASR_12_PreIndex", 2843 ARRAY_SIZE(kNegativePreIndex), 2844 kNegativePreIndex}, 2845 {{al, r3, r1, minus, r9, ASR, 9, PreIndex}, 2846 "al r3 r1 minus r9 ASR 9 PreIndex", 2847 "NegativePreIndex_al_r3_r1_minus_r9_ASR_9_PreIndex", 2848 ARRAY_SIZE(kNegativePreIndex), 2849 kNegativePreIndex}, 2850 {{al, r14, r9, minus, r10, ASR, 27, PreIndex}, 2851 "al r14 r9 minus r10 ASR 27 PreIndex", 2852 "NegativePreIndex_al_r14_r9_minus_r10_ASR_27_PreIndex", 2853 ARRAY_SIZE(kNegativePreIndex), 2854 kNegativePreIndex}, 2855 {{al, r1, r5, minus, r14, ASR, 25, PreIndex}, 2856 "al r1 r5 minus r14 ASR 25 PreIndex", 2857 "NegativePreIndex_al_r1_r5_minus_r14_ASR_25_PreIndex", 2858 ARRAY_SIZE(kNegativePreIndex), 2859 kNegativePreIndex}, 2860 {{al, r0, r10, minus, r11, LSR, 7, PreIndex}, 2861 "al r0 r10 minus r11 LSR 7 PreIndex", 2862 "NegativePreIndex_al_r0_r10_minus_r11_LSR_7_PreIndex", 2863 ARRAY_SIZE(kNegativePreIndex), 2864 kNegativePreIndex}, 2865 {{al, r6, r9, minus, r1, LSR, 13, PreIndex}, 2866 "al r6 r9 minus r1 LSR 13 PreIndex", 2867 "NegativePreIndex_al_r6_r9_minus_r1_LSR_13_PreIndex", 2868 ARRAY_SIZE(kNegativePreIndex), 2869 kNegativePreIndex}, 2870 {{al, r11, r10, minus, r9, LSR, 27, PreIndex}, 2871 "al r11 r10 minus r9 LSR 27 PreIndex", 2872 "NegativePreIndex_al_r11_r10_minus_r9_LSR_27_PreIndex", 2873 ARRAY_SIZE(kNegativePreIndex), 2874 kNegativePreIndex}, 2875 {{al, r6, r1, minus, r11, ASR, 23, PreIndex}, 2876 "al r6 r1 minus r11 ASR 23 PreIndex", 2877 "NegativePreIndex_al_r6_r1_minus_r11_ASR_23_PreIndex", 2878 ARRAY_SIZE(kNegativePreIndex), 2879 kNegativePreIndex}, 2880 {{al, r0, r2, minus, r11, ASR, 11, PreIndex}, 2881 "al r0 r2 minus r11 ASR 11 PreIndex", 2882 "NegativePreIndex_al_r0_r2_minus_r11_ASR_11_PreIndex", 2883 ARRAY_SIZE(kNegativePreIndex), 2884 kNegativePreIndex}, 2885 {{al, r2, r9, minus, r8, ASR, 9, PreIndex}, 2886 "al r2 r9 minus r8 ASR 9 PreIndex", 2887 "NegativePreIndex_al_r2_r9_minus_r8_ASR_9_PreIndex", 2888 ARRAY_SIZE(kNegativePreIndex), 2889 kNegativePreIndex}, 2890 {{al, r14, r9, minus, r4, LSR, 28, PreIndex}, 2891 "al r14 r9 minus r4 LSR 28 PreIndex", 2892 "NegativePreIndex_al_r14_r9_minus_r4_LSR_28_PreIndex", 2893 ARRAY_SIZE(kNegativePreIndex), 2894 kNegativePreIndex}, 2895 {{al, r5, r14, minus, r11, LSR, 10, PreIndex}, 2896 "al r5 r14 minus r11 LSR 10 PreIndex", 2897 "NegativePreIndex_al_r5_r14_minus_r11_LSR_10_PreIndex", 2898 ARRAY_SIZE(kNegativePreIndex), 2899 kNegativePreIndex}, 2900 {{al, r10, r2, minus, r14, ASR, 20, PreIndex}, 2901 "al r10 r2 minus r14 ASR 20 PreIndex", 2902 "NegativePreIndex_al_r10_r2_minus_r14_ASR_20_PreIndex", 2903 ARRAY_SIZE(kNegativePreIndex), 2904 kNegativePreIndex}, 2905 {{al, r9, r5, minus, r3, LSR, 16, PreIndex}, 2906 "al r9 r5 minus r3 LSR 16 PreIndex", 2907 "NegativePreIndex_al_r9_r5_minus_r3_LSR_16_PreIndex", 2908 ARRAY_SIZE(kNegativePreIndex), 2909 kNegativePreIndex}, 2910 {{al, r1, r12, minus, r7, ASR, 20, PreIndex}, 2911 "al r1 r12 minus r7 ASR 20 PreIndex", 2912 "NegativePreIndex_al_r1_r12_minus_r7_ASR_20_PreIndex", 2913 ARRAY_SIZE(kNegativePreIndex), 2914 kNegativePreIndex}, 2915 {{al, r10, r11, minus, r4, ASR, 12, PreIndex}, 2916 "al r10 r11 minus r4 ASR 12 PreIndex", 2917 "NegativePreIndex_al_r10_r11_minus_r4_ASR_12_PreIndex", 2918 ARRAY_SIZE(kNegativePreIndex), 2919 kNegativePreIndex}, 2920 {{al, r12, r7, minus, r3, LSR, 4, PreIndex}, 2921 "al r12 r7 minus r3 LSR 4 PreIndex", 2922 "NegativePreIndex_al_r12_r7_minus_r3_LSR_4_PreIndex", 2923 ARRAY_SIZE(kNegativePreIndex), 2924 kNegativePreIndex}, 2925 {{al, r1, r14, minus, r6, ASR, 8, PreIndex}, 2926 "al r1 r14 minus r6 ASR 8 PreIndex", 2927 "NegativePreIndex_al_r1_r14_minus_r6_ASR_8_PreIndex", 2928 ARRAY_SIZE(kNegativePreIndex), 2929 kNegativePreIndex}, 2930 {{al, r12, r7, minus, r8, LSR, 8, PreIndex}, 2931 "al r12 r7 minus r8 LSR 8 PreIndex", 2932 "NegativePreIndex_al_r12_r7_minus_r8_LSR_8_PreIndex", 2933 ARRAY_SIZE(kNegativePreIndex), 2934 kNegativePreIndex}, 2935 {{al, r7, r10, minus, r5, ASR, 2, PreIndex}, 2936 "al r7 r10 minus r5 ASR 2 PreIndex", 2937 "NegativePreIndex_al_r7_r10_minus_r5_ASR_2_PreIndex", 2938 ARRAY_SIZE(kNegativePreIndex), 2939 kNegativePreIndex}, 2940 {{al, r11, r4, minus, r6, ASR, 23, PreIndex}, 2941 "al r11 r4 minus r6 ASR 23 PreIndex", 2942 "NegativePreIndex_al_r11_r4_minus_r6_ASR_23_PreIndex", 2943 ARRAY_SIZE(kNegativePreIndex), 2944 kNegativePreIndex}, 2945 {{al, r5, r2, minus, r3, ASR, 17, PreIndex}, 2946 "al r5 r2 minus r3 ASR 17 PreIndex", 2947 "NegativePreIndex_al_r5_r2_minus_r3_ASR_17_PreIndex", 2948 ARRAY_SIZE(kNegativePreIndex), 2949 kNegativePreIndex}, 2950 {{al, r1, r14, minus, r5, LSR, 13, PreIndex}, 2951 "al r1 r14 minus r5 LSR 13 PreIndex", 2952 "NegativePreIndex_al_r1_r14_minus_r5_LSR_13_PreIndex", 2953 ARRAY_SIZE(kNegativePreIndex), 2954 kNegativePreIndex}, 2955 {{al, r0, r14, minus, r7, LSR, 4, PreIndex}, 2956 "al r0 r14 minus r7 LSR 4 PreIndex", 2957 "NegativePreIndex_al_r0_r14_minus_r7_LSR_4_PreIndex", 2958 ARRAY_SIZE(kNegativePreIndex), 2959 kNegativePreIndex}, 2960 {{al, r11, r14, minus, r2, LSR, 12, PreIndex}, 2961 "al r11 r14 minus r2 LSR 12 PreIndex", 2962 "NegativePreIndex_al_r11_r14_minus_r2_LSR_12_PreIndex", 2963 ARRAY_SIZE(kNegativePreIndex), 2964 kNegativePreIndex}, 2965 {{al, r2, r10, minus, r14, LSR, 32, PreIndex}, 2966 "al r2 r10 minus r14 LSR 32 PreIndex", 2967 "NegativePreIndex_al_r2_r10_minus_r14_LSR_32_PreIndex", 2968 ARRAY_SIZE(kNegativePreIndex), 2969 kNegativePreIndex}, 2970 {{al, r8, r14, minus, r2, LSR, 25, PreIndex}, 2971 "al r8 r14 minus r2 LSR 25 PreIndex", 2972 "NegativePreIndex_al_r8_r14_minus_r2_LSR_25_PreIndex", 2973 ARRAY_SIZE(kNegativePreIndex), 2974 kNegativePreIndex}, 2975 {{al, r0, r7, minus, r14, LSR, 9, PreIndex}, 2976 "al r0 r7 minus r14 LSR 9 PreIndex", 2977 "NegativePreIndex_al_r0_r7_minus_r14_LSR_9_PreIndex", 2978 ARRAY_SIZE(kNegativePreIndex), 2979 kNegativePreIndex}, 2980 {{al, r7, r8, minus, r10, LSR, 15, PreIndex}, 2981 "al r7 r8 minus r10 LSR 15 PreIndex", 2982 "NegativePreIndex_al_r7_r8_minus_r10_LSR_15_PreIndex", 2983 ARRAY_SIZE(kNegativePreIndex), 2984 kNegativePreIndex}, 2985 {{al, r5, r0, minus, r10, LSR, 21, PreIndex}, 2986 "al r5 r0 minus r10 LSR 21 PreIndex", 2987 "NegativePreIndex_al_r5_r0_minus_r10_LSR_21_PreIndex", 2988 ARRAY_SIZE(kNegativePreIndex), 2989 kNegativePreIndex}, 2990 {{al, r9, r0, minus, r4, LSR, 16, PreIndex}, 2991 "al r9 r0 minus r4 LSR 16 PreIndex", 2992 "NegativePreIndex_al_r9_r0_minus_r4_LSR_16_PreIndex", 2993 ARRAY_SIZE(kNegativePreIndex), 2994 kNegativePreIndex}, 2995 {{al, r0, r7, minus, r11, LSR, 30, PreIndex}, 2996 "al r0 r7 minus r11 LSR 30 PreIndex", 2997 "NegativePreIndex_al_r0_r7_minus_r11_LSR_30_PreIndex", 2998 ARRAY_SIZE(kNegativePreIndex), 2999 kNegativePreIndex}, 3000 {{al, r9, r8, minus, r4, ASR, 26, PreIndex}, 3001 "al r9 r8 minus r4 ASR 26 PreIndex", 3002 "NegativePreIndex_al_r9_r8_minus_r4_ASR_26_PreIndex", 3003 ARRAY_SIZE(kNegativePreIndex), 3004 kNegativePreIndex}, 3005 {{al, r11, r12, minus, r7, LSR, 9, PreIndex}, 3006 "al r11 r12 minus r7 LSR 9 PreIndex", 3007 "NegativePreIndex_al_r11_r12_minus_r7_LSR_9_PreIndex", 3008 ARRAY_SIZE(kNegativePreIndex), 3009 kNegativePreIndex}, 3010 {{al, r3, r2, minus, r10, LSR, 13, PreIndex}, 3011 "al r3 r2 minus r10 LSR 13 PreIndex", 3012 "NegativePreIndex_al_r3_r2_minus_r10_LSR_13_PreIndex", 3013 ARRAY_SIZE(kNegativePreIndex), 3014 kNegativePreIndex}, 3015 {{al, r8, r10, minus, r2, LSR, 27, PreIndex}, 3016 "al r8 r10 minus r2 LSR 27 PreIndex", 3017 "NegativePreIndex_al_r8_r10_minus_r2_LSR_27_PreIndex", 3018 ARRAY_SIZE(kNegativePreIndex), 3019 kNegativePreIndex}, 3020 {{al, r7, r5, minus, r12, LSR, 7, PreIndex}, 3021 "al r7 r5 minus r12 LSR 7 PreIndex", 3022 "NegativePreIndex_al_r7_r5_minus_r12_LSR_7_PreIndex", 3023 ARRAY_SIZE(kNegativePreIndex), 3024 kNegativePreIndex}, 3025 {{al, r14, r7, minus, r8, ASR, 14, PreIndex}, 3026 "al r14 r7 minus r8 ASR 14 PreIndex", 3027 "NegativePreIndex_al_r14_r7_minus_r8_ASR_14_PreIndex", 3028 ARRAY_SIZE(kNegativePreIndex), 3029 kNegativePreIndex}, 3030 {{al, r1, r12, minus, r3, ASR, 23, PreIndex}, 3031 "al r1 r12 minus r3 ASR 23 PreIndex", 3032 "NegativePreIndex_al_r1_r12_minus_r3_ASR_23_PreIndex", 3033 ARRAY_SIZE(kNegativePreIndex), 3034 kNegativePreIndex}, 3035 {{al, r6, r9, minus, r8, ASR, 22, PreIndex}, 3036 "al r6 r9 minus r8 ASR 22 PreIndex", 3037 "NegativePreIndex_al_r6_r9_minus_r8_ASR_22_PreIndex", 3038 ARRAY_SIZE(kNegativePreIndex), 3039 kNegativePreIndex}, 3040 {{al, r5, r11, minus, r2, ASR, 29, PreIndex}, 3041 "al r5 r11 minus r2 ASR 29 PreIndex", 3042 "NegativePreIndex_al_r5_r11_minus_r2_ASR_29_PreIndex", 3043 ARRAY_SIZE(kNegativePreIndex), 3044 kNegativePreIndex}, 3045 {{al, r4, r1, minus, r10, ASR, 32, PreIndex}, 3046 "al r4 r1 minus r10 ASR 32 PreIndex", 3047 "NegativePreIndex_al_r4_r1_minus_r10_ASR_32_PreIndex", 3048 ARRAY_SIZE(kNegativePreIndex), 3049 kNegativePreIndex}, 3050 {{al, r8, r4, minus, r3, ASR, 5, PreIndex}, 3051 "al r8 r4 minus r3 ASR 5 PreIndex", 3052 "NegativePreIndex_al_r8_r4_minus_r3_ASR_5_PreIndex", 3053 ARRAY_SIZE(kNegativePreIndex), 3054 kNegativePreIndex}, 3055 {{al, r14, r10, minus, r1, LSR, 13, PreIndex}, 3056 "al r14 r10 minus r1 LSR 13 PreIndex", 3057 "NegativePreIndex_al_r14_r10_minus_r1_LSR_13_PreIndex", 3058 ARRAY_SIZE(kNegativePreIndex), 3059 kNegativePreIndex}, 3060 {{al, r2, r10, minus, r3, LSR, 32, PreIndex}, 3061 "al r2 r10 minus r3 LSR 32 PreIndex", 3062 "NegativePreIndex_al_r2_r10_minus_r3_LSR_32_PreIndex", 3063 ARRAY_SIZE(kNegativePreIndex), 3064 kNegativePreIndex}, 3065 {{al, r0, r7, minus, r6, LSR, 17, PreIndex}, 3066 "al r0 r7 minus r6 LSR 17 PreIndex", 3067 "NegativePreIndex_al_r0_r7_minus_r6_LSR_17_PreIndex", 3068 ARRAY_SIZE(kNegativePreIndex), 3069 kNegativePreIndex}, 3070 {{al, r11, r3, minus, r5, LSR, 2, PreIndex}, 3071 "al r11 r3 minus r5 LSR 2 PreIndex", 3072 "NegativePreIndex_al_r11_r3_minus_r5_LSR_2_PreIndex", 3073 ARRAY_SIZE(kNegativePreIndex), 3074 kNegativePreIndex}, 3075 {{al, r9, r10, minus, r14, ASR, 1, PreIndex}, 3076 "al r9 r10 minus r14 ASR 1 PreIndex", 3077 "NegativePreIndex_al_r9_r10_minus_r14_ASR_1_PreIndex", 3078 ARRAY_SIZE(kNegativePreIndex), 3079 kNegativePreIndex}, 3080 {{al, r1, r4, minus, r12, LSR, 20, PreIndex}, 3081 "al r1 r4 minus r12 LSR 20 PreIndex", 3082 "NegativePreIndex_al_r1_r4_minus_r12_LSR_20_PreIndex", 3083 ARRAY_SIZE(kNegativePreIndex), 3084 kNegativePreIndex}, 3085 {{al, r6, r12, minus, r2, LSR, 31, PreIndex}, 3086 "al r6 r12 minus r2 LSR 31 PreIndex", 3087 "NegativePreIndex_al_r6_r12_minus_r2_LSR_31_PreIndex", 3088 ARRAY_SIZE(kNegativePreIndex), 3089 kNegativePreIndex}, 3090 {{al, r12, r8, minus, r14, LSR, 20, PreIndex}, 3091 "al r12 r8 minus r14 LSR 20 PreIndex", 3092 "NegativePreIndex_al_r12_r8_minus_r14_LSR_20_PreIndex", 3093 ARRAY_SIZE(kNegativePreIndex), 3094 kNegativePreIndex}, 3095 {{al, r0, r12, minus, r1, ASR, 10, PreIndex}, 3096 "al r0 r12 minus r1 ASR 10 PreIndex", 3097 "NegativePreIndex_al_r0_r12_minus_r1_ASR_10_PreIndex", 3098 ARRAY_SIZE(kNegativePreIndex), 3099 kNegativePreIndex}, 3100 {{al, r2, r10, minus, r8, LSR, 14, PreIndex}, 3101 "al r2 r10 minus r8 LSR 14 PreIndex", 3102 "NegativePreIndex_al_r2_r10_minus_r8_LSR_14_PreIndex", 3103 ARRAY_SIZE(kNegativePreIndex), 3104 kNegativePreIndex}, 3105 {{al, r7, r8, minus, r11, ASR, 22, PreIndex}, 3106 "al r7 r8 minus r11 ASR 22 PreIndex", 3107 "NegativePreIndex_al_r7_r8_minus_r11_ASR_22_PreIndex", 3108 ARRAY_SIZE(kNegativePreIndex), 3109 kNegativePreIndex}, 3110 {{al, r12, r7, minus, r6, LSR, 26, PreIndex}, 3111 "al r12 r7 minus r6 LSR 26 PreIndex", 3112 "NegativePreIndex_al_r12_r7_minus_r6_LSR_26_PreIndex", 3113 ARRAY_SIZE(kNegativePreIndex), 3114 kNegativePreIndex}, 3115 {{al, r2, r5, minus, r11, ASR, 2, PreIndex}, 3116 "al r2 r5 minus r11 ASR 2 PreIndex", 3117 "NegativePreIndex_al_r2_r5_minus_r11_ASR_2_PreIndex", 3118 ARRAY_SIZE(kNegativePreIndex), 3119 kNegativePreIndex}, 3120 {{al, r12, r8, minus, r10, LSR, 1, PreIndex}, 3121 "al r12 r8 minus r10 LSR 1 PreIndex", 3122 "NegativePreIndex_al_r12_r8_minus_r10_LSR_1_PreIndex", 3123 ARRAY_SIZE(kNegativePreIndex), 3124 kNegativePreIndex}, 3125 {{al, r8, r11, minus, r9, ASR, 18, PreIndex}, 3126 "al r8 r11 minus r9 ASR 18 PreIndex", 3127 "NegativePreIndex_al_r8_r11_minus_r9_ASR_18_PreIndex", 3128 ARRAY_SIZE(kNegativePreIndex), 3129 kNegativePreIndex}, 3130 {{al, r7, r1, minus, r0, ASR, 6, PreIndex}, 3131 "al r7 r1 minus r0 ASR 6 PreIndex", 3132 "NegativePreIndex_al_r7_r1_minus_r0_ASR_6_PreIndex", 3133 ARRAY_SIZE(kNegativePreIndex), 3134 kNegativePreIndex}, 3135 {{al, r10, r6, minus, r5, LSR, 12, PreIndex}, 3136 "al r10 r6 minus r5 LSR 12 PreIndex", 3137 "NegativePreIndex_al_r10_r6_minus_r5_LSR_12_PreIndex", 3138 ARRAY_SIZE(kNegativePreIndex), 3139 kNegativePreIndex}, 3140 {{al, r8, r12, minus, r2, ASR, 1, PreIndex}, 3141 "al r8 r12 minus r2 ASR 1 PreIndex", 3142 "NegativePreIndex_al_r8_r12_minus_r2_ASR_1_PreIndex", 3143 ARRAY_SIZE(kNegativePreIndex), 3144 kNegativePreIndex}, 3145 {{al, r9, r1, minus, r14, LSR, 30, PreIndex}, 3146 "al r9 r1 minus r14 LSR 30 PreIndex", 3147 "NegativePreIndex_al_r9_r1_minus_r14_LSR_30_PreIndex", 3148 ARRAY_SIZE(kNegativePreIndex), 3149 kNegativePreIndex}, 3150 {{al, r1, r14, minus, r0, ASR, 2, PreIndex}, 3151 "al r1 r14 minus r0 ASR 2 PreIndex", 3152 "NegativePreIndex_al_r1_r14_minus_r0_ASR_2_PreIndex", 3153 ARRAY_SIZE(kNegativePreIndex), 3154 kNegativePreIndex}, 3155 {{al, r10, r7, minus, r2, ASR, 26, PreIndex}, 3156 "al r10 r7 minus r2 ASR 26 PreIndex", 3157 "NegativePreIndex_al_r10_r7_minus_r2_ASR_26_PreIndex", 3158 ARRAY_SIZE(kNegativePreIndex), 3159 kNegativePreIndex}, 3160 {{al, r5, r6, minus, r0, LSR, 29, PreIndex}, 3161 "al r5 r6 minus r0 LSR 29 PreIndex", 3162 "NegativePreIndex_al_r5_r6_minus_r0_LSR_29_PreIndex", 3163 ARRAY_SIZE(kNegativePreIndex), 3164 kNegativePreIndex}, 3165 {{al, r2, r12, minus, r11, LSR, 11, PreIndex}, 3166 "al r2 r12 minus r11 LSR 11 PreIndex", 3167 "NegativePreIndex_al_r2_r12_minus_r11_LSR_11_PreIndex", 3168 ARRAY_SIZE(kNegativePreIndex), 3169 kNegativePreIndex}, 3170 {{al, r5, r0, minus, r10, LSR, 10, PreIndex}, 3171 "al r5 r0 minus r10 LSR 10 PreIndex", 3172 "NegativePreIndex_al_r5_r0_minus_r10_LSR_10_PreIndex", 3173 ARRAY_SIZE(kNegativePreIndex), 3174 kNegativePreIndex}, 3175 {{al, r3, r6, minus, r2, LSR, 8, PreIndex}, 3176 "al r3 r6 minus r2 LSR 8 PreIndex", 3177 "NegativePreIndex_al_r3_r6_minus_r2_LSR_8_PreIndex", 3178 ARRAY_SIZE(kNegativePreIndex), 3179 kNegativePreIndex}, 3180 {{al, r2, r14, minus, r1, LSR, 5, PreIndex}, 3181 "al r2 r14 minus r1 LSR 5 PreIndex", 3182 "NegativePreIndex_al_r2_r14_minus_r1_LSR_5_PreIndex", 3183 ARRAY_SIZE(kNegativePreIndex), 3184 kNegativePreIndex}, 3185 {{al, r2, r7, minus, r5, LSR, 16, PreIndex}, 3186 "al r2 r7 minus r5 LSR 16 PreIndex", 3187 "NegativePreIndex_al_r2_r7_minus_r5_LSR_16_PreIndex", 3188 ARRAY_SIZE(kNegativePreIndex), 3189 kNegativePreIndex}, 3190 {{al, r1, r2, minus, r7, ASR, 27, PreIndex}, 3191 "al r1 r2 minus r7 ASR 27 PreIndex", 3192 "NegativePreIndex_al_r1_r2_minus_r7_ASR_27_PreIndex", 3193 ARRAY_SIZE(kNegativePreIndex), 3194 kNegativePreIndex}, 3195 {{al, r8, r0, minus, r12, LSR, 5, PreIndex}, 3196 "al r8 r0 minus r12 LSR 5 PreIndex", 3197 "NegativePreIndex_al_r8_r0_minus_r12_LSR_5_PreIndex", 3198 ARRAY_SIZE(kNegativePreIndex), 3199 kNegativePreIndex}, 3200 {{al, r0, r12, minus, r2, LSR, 10, PreIndex}, 3201 "al r0 r12 minus r2 LSR 10 PreIndex", 3202 "NegativePreIndex_al_r0_r12_minus_r2_LSR_10_PreIndex", 3203 ARRAY_SIZE(kNegativePreIndex), 3204 kNegativePreIndex}, 3205 {{al, r7, r1, minus, r12, LSR, 26, PreIndex}, 3206 "al r7 r1 minus r12 LSR 26 PreIndex", 3207 "NegativePreIndex_al_r7_r1_minus_r12_LSR_26_PreIndex", 3208 ARRAY_SIZE(kNegativePreIndex), 3209 kNegativePreIndex}, 3210 {{al, r3, r4, minus, r14, ASR, 30, PreIndex}, 3211 "al r3 r4 minus r14 ASR 30 PreIndex", 3212 "NegativePreIndex_al_r3_r4_minus_r14_ASR_30_PreIndex", 3213 ARRAY_SIZE(kNegativePreIndex), 3214 kNegativePreIndex}, 3215 {{al, r6, r10, minus, r9, LSR, 1, PreIndex}, 3216 "al r6 r10 minus r9 LSR 1 PreIndex", 3217 "NegativePreIndex_al_r6_r10_minus_r9_LSR_1_PreIndex", 3218 ARRAY_SIZE(kNegativePreIndex), 3219 kNegativePreIndex}, 3220 {{al, r4, r0, minus, r12, LSR, 8, PreIndex}, 3221 "al r4 r0 minus r12 LSR 8 PreIndex", 3222 "NegativePreIndex_al_r4_r0_minus_r12_LSR_8_PreIndex", 3223 ARRAY_SIZE(kNegativePreIndex), 3224 kNegativePreIndex}, 3225 {{al, r8, r4, minus, r11, LSR, 32, PreIndex}, 3226 "al r8 r4 minus r11 LSR 32 PreIndex", 3227 "NegativePreIndex_al_r8_r4_minus_r11_LSR_32_PreIndex", 3228 ARRAY_SIZE(kNegativePreIndex), 3229 kNegativePreIndex}, 3230 {{al, r8, r10, minus, r2, LSR, 23, PreIndex}, 3231 "al r8 r10 minus r2 LSR 23 PreIndex", 3232 "NegativePreIndex_al_r8_r10_minus_r2_LSR_23_PreIndex", 3233 ARRAY_SIZE(kNegativePreIndex), 3234 kNegativePreIndex}, 3235 {{al, r14, r9, minus, r11, LSR, 27, PreIndex}, 3236 "al r14 r9 minus r11 LSR 27 PreIndex", 3237 "NegativePreIndex_al_r14_r9_minus_r11_LSR_27_PreIndex", 3238 ARRAY_SIZE(kNegativePreIndex), 3239 kNegativePreIndex}, 3240 {{al, r7, r3, minus, r4, ASR, 28, PreIndex}, 3241 "al r7 r3 minus r4 ASR 28 PreIndex", 3242 "NegativePreIndex_al_r7_r3_minus_r4_ASR_28_PreIndex", 3243 ARRAY_SIZE(kNegativePreIndex), 3244 kNegativePreIndex}, 3245 {{al, r12, r4, minus, r7, ASR, 19, PreIndex}, 3246 "al r12 r4 minus r7 ASR 19 PreIndex", 3247 "NegativePreIndex_al_r12_r4_minus_r7_ASR_19_PreIndex", 3248 ARRAY_SIZE(kNegativePreIndex), 3249 kNegativePreIndex}, 3250 {{al, r7, r10, minus, r6, ASR, 6, PreIndex}, 3251 "al r7 r10 minus r6 ASR 6 PreIndex", 3252 "NegativePreIndex_al_r7_r10_minus_r6_ASR_6_PreIndex", 3253 ARRAY_SIZE(kNegativePreIndex), 3254 kNegativePreIndex}, 3255 {{al, r2, r0, minus, r4, ASR, 2, PreIndex}, 3256 "al r2 r0 minus r4 ASR 2 PreIndex", 3257 "NegativePreIndex_al_r2_r0_minus_r4_ASR_2_PreIndex", 3258 ARRAY_SIZE(kNegativePreIndex), 3259 kNegativePreIndex}, 3260 {{al, r3, r7, minus, r14, ASR, 26, PreIndex}, 3261 "al r3 r7 minus r14 ASR 26 PreIndex", 3262 "NegativePreIndex_al_r3_r7_minus_r14_ASR_26_PreIndex", 3263 ARRAY_SIZE(kNegativePreIndex), 3264 kNegativePreIndex}, 3265 {{al, r7, r8, minus, r1, ASR, 29, PreIndex}, 3266 "al r7 r8 minus r1 ASR 29 PreIndex", 3267 "NegativePreIndex_al_r7_r8_minus_r1_ASR_29_PreIndex", 3268 ARRAY_SIZE(kNegativePreIndex), 3269 kNegativePreIndex}, 3270 {{al, r11, r14, minus, r3, LSR, 11, PreIndex}, 3271 "al r11 r14 minus r3 LSR 11 PreIndex", 3272 "NegativePreIndex_al_r11_r14_minus_r3_LSR_11_PreIndex", 3273 ARRAY_SIZE(kNegativePreIndex), 3274 kNegativePreIndex}, 3275 {{al, r11, r12, minus, r4, LSR, 20, PreIndex}, 3276 "al r11 r12 minus r4 LSR 20 PreIndex", 3277 "NegativePreIndex_al_r11_r12_minus_r4_LSR_20_PreIndex", 3278 ARRAY_SIZE(kNegativePreIndex), 3279 kNegativePreIndex}, 3280 {{al, r8, r11, minus, r10, ASR, 23, PreIndex}, 3281 "al r8 r11 minus r10 ASR 23 PreIndex", 3282 "NegativePreIndex_al_r8_r11_minus_r10_ASR_23_PreIndex", 3283 ARRAY_SIZE(kNegativePreIndex), 3284 kNegativePreIndex}, 3285 {{al, r2, r10, minus, r5, ASR, 24, PreIndex}, 3286 "al r2 r10 minus r5 ASR 24 PreIndex", 3287 "NegativePreIndex_al_r2_r10_minus_r5_ASR_24_PreIndex", 3288 ARRAY_SIZE(kNegativePreIndex), 3289 kNegativePreIndex}, 3290 {{al, r5, r7, minus, r1, ASR, 9, PreIndex}, 3291 "al r5 r7 minus r1 ASR 9 PreIndex", 3292 "NegativePreIndex_al_r5_r7_minus_r1_ASR_9_PreIndex", 3293 ARRAY_SIZE(kNegativePreIndex), 3294 kNegativePreIndex}, 3295 {{al, r3, r5, minus, r11, LSR, 16, PreIndex}, 3296 "al r3 r5 minus r11 LSR 16 PreIndex", 3297 "NegativePreIndex_al_r3_r5_minus_r11_LSR_16_PreIndex", 3298 ARRAY_SIZE(kNegativePreIndex), 3299 kNegativePreIndex}, 3300 {{al, r4, r6, minus, r1, ASR, 27, PreIndex}, 3301 "al r4 r6 minus r1 ASR 27 PreIndex", 3302 "NegativePreIndex_al_r4_r6_minus_r1_ASR_27_PreIndex", 3303 ARRAY_SIZE(kNegativePreIndex), 3304 kNegativePreIndex}, 3305 {{al, r8, r5, minus, r14, LSR, 5, PreIndex}, 3306 "al r8 r5 minus r14 LSR 5 PreIndex", 3307 "NegativePreIndex_al_r8_r5_minus_r14_LSR_5_PreIndex", 3308 ARRAY_SIZE(kNegativePreIndex), 3309 kNegativePreIndex}, 3310 {{al, r11, r7, minus, r2, LSR, 9, PreIndex}, 3311 "al r11 r7 minus r2 LSR 9 PreIndex", 3312 "NegativePreIndex_al_r11_r7_minus_r2_LSR_9_PreIndex", 3313 ARRAY_SIZE(kNegativePreIndex), 3314 kNegativePreIndex}, 3315 {{al, r6, r11, minus, r4, LSR, 29, PreIndex}, 3316 "al r6 r11 minus r4 LSR 29 PreIndex", 3317 "NegativePreIndex_al_r6_r11_minus_r4_LSR_29_PreIndex", 3318 ARRAY_SIZE(kNegativePreIndex), 3319 kNegativePreIndex}, 3320 {{al, r4, r10, minus, r1, ASR, 10, PreIndex}, 3321 "al r4 r10 minus r1 ASR 10 PreIndex", 3322 "NegativePreIndex_al_r4_r10_minus_r1_ASR_10_PreIndex", 3323 ARRAY_SIZE(kNegativePreIndex), 3324 kNegativePreIndex}, 3325 {{al, r3, r0, minus, r12, ASR, 18, PreIndex}, 3326 "al r3 r0 minus r12 ASR 18 PreIndex", 3327 "NegativePreIndex_al_r3_r0_minus_r12_ASR_18_PreIndex", 3328 ARRAY_SIZE(kNegativePreIndex), 3329 kNegativePreIndex}, 3330 {{al, r4, r3, minus, r14, ASR, 14, PreIndex}, 3331 "al r4 r3 minus r14 ASR 14 PreIndex", 3332 "NegativePreIndex_al_r4_r3_minus_r14_ASR_14_PreIndex", 3333 ARRAY_SIZE(kNegativePreIndex), 3334 kNegativePreIndex}}; 3335 3336// We record all inputs to the instructions as outputs. This way, we also check 3337// that what shouldn't change didn't change. 3338struct TestResult { 3339 size_t output_size; 3340 const Inputs* outputs; 3341}; 3342 3343// These headers each contain an array of `TestResult` with the reference output 3344// values. The reference arrays are names `kReference{mnemonic}`. 3345#include "aarch32/traces/simulator-cond-rd-memop-rs-shift-amount-1to32-a32-ldr.h" 3346#include "aarch32/traces/simulator-cond-rd-memop-rs-shift-amount-1to32-a32-ldrb.h" 3347#include "aarch32/traces/simulator-cond-rd-memop-rs-shift-amount-1to32-a32-str.h" 3348#include "aarch32/traces/simulator-cond-rd-memop-rs-shift-amount-1to32-a32-strb.h" 3349 3350 3351// The maximum number of errors to report in detail for each test. 3352const unsigned kErrorReportLimit = 8; 3353 3354typedef void (MacroAssembler::*Fn)(Condition cond, 3355 Register rd, 3356 const MemOperand& memop); 3357 3358void TestHelper(Fn instruction, 3359 const char* mnemonic, 3360 const TestResult reference[]) { 3361 SETUP(); 3362 masm.UseA32(); 3363 START(); 3364 3365 // Data to compare to `reference`. 3366 TestResult* results[ARRAY_SIZE(kTests)]; 3367 3368 // Test cases for memory bound instructions may allocate a buffer and save its 3369 // address in this array. 3370 byte* scratch_memory_buffers[ARRAY_SIZE(kTests)]; 3371 3372 // Generate a loop for each element in `kTests`. Each loop tests one specific 3373 // instruction. 3374 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 3375 // Allocate results on the heap for this test. 3376 results[i] = new TestResult; 3377 results[i]->outputs = new Inputs[kTests[i].input_size]; 3378 results[i]->output_size = kTests[i].input_size; 3379 3380 size_t input_stride = sizeof(kTests[i].inputs[0]) * kTests[i].input_size; 3381 VIXL_ASSERT(IsUint32(input_stride)); 3382 3383 scratch_memory_buffers[i] = NULL; 3384 3385 Label loop; 3386 UseScratchRegisterScope scratch_registers(&masm); 3387 // Include all registers from r0 ro r12. 3388 scratch_registers.Include(RegisterList(0x1fff)); 3389 3390 // Values to pass to the macro-assembler. 3391 Condition cond = kTests[i].operands.cond; 3392 Register rd = kTests[i].operands.rd; 3393 Register rn = kTests[i].operands.rn; 3394 Sign sign = kTests[i].operands.sign; 3395 Register rm = kTests[i].operands.rm; 3396 ShiftType shift = kTests[i].operands.shift; 3397 uint32_t amount = kTests[i].operands.amount; 3398 AddrMode addr_mode = kTests[i].operands.addr_mode; 3399 MemOperand memop(rn, sign, rm, shift, amount, addr_mode); 3400 scratch_registers.Exclude(rd); 3401 scratch_registers.Exclude(rn); 3402 scratch_registers.Exclude(rm); 3403 3404 // Allocate reserved registers for our own use. 3405 Register input_ptr = scratch_registers.Acquire(); 3406 Register input_end = scratch_registers.Acquire(); 3407 Register result_ptr = scratch_registers.Acquire(); 3408 3409 // Initialize `input_ptr` to the first element and `input_end` the address 3410 // after the array. 3411 __ Mov(input_ptr, Operand::From(kTests[i].inputs)); 3412 __ Add(input_end, input_ptr, static_cast<uint32_t>(input_stride)); 3413 __ Mov(result_ptr, Operand::From(results[i]->outputs)); 3414 __ Bind(&loop); 3415 3416 { 3417 UseScratchRegisterScope temp_registers(&masm); 3418 Register nzcv_bits = temp_registers.Acquire(); 3419 Register saved_q_bit = temp_registers.Acquire(); 3420 // Save the `Q` bit flag. 3421 __ Mrs(saved_q_bit, APSR); 3422 __ And(saved_q_bit, saved_q_bit, QFlag); 3423 // Set the `NZCV` and `Q` flags together. 3424 __ Ldr(nzcv_bits, MemOperand(input_ptr, offsetof(Inputs, apsr))); 3425 __ Orr(nzcv_bits, nzcv_bits, saved_q_bit); 3426 __ Msr(APSR_nzcvq, nzcv_bits); 3427 } 3428 __ Ldr(rd, MemOperand(input_ptr, offsetof(Inputs, rd))); 3429 __ Ldr(rm, MemOperand(input_ptr, offsetof(Inputs, rm))); 3430 // Allocate 4 bytes for the instruction to work with. 3431 scratch_memory_buffers[i] = new byte[4]; 3432 { 3433 UseScratchRegisterScope temp_registers(&masm); 3434 3435 Register memop_tmp = temp_registers.Acquire(); 3436 Register base_register = memop.GetBaseRegister(); 3437 3438 // Write the expected data into the scratch buffer. 3439 __ Mov(base_register, Operand::From(scratch_memory_buffers[i])); 3440 __ Ldr(memop_tmp, MemOperand(input_ptr, offsetof(Inputs, memop) + 4)); 3441 __ Str(memop_tmp, MemOperand(base_register)); 3442 3443 // Compute the address to put into the base register so that the 3444 // `MemOperand` points to the right location. 3445 // TODO: Support more kinds of `MemOperand`. 3446 if (!memop.IsPostIndex()) { 3447 if (memop.IsImmediate()) { 3448 if (memop.GetSign().IsPlus()) { 3449 __ Mov(memop_tmp, memop.GetOffsetImmediate()); 3450 __ Sub(base_register, base_register, memop_tmp); 3451 } else { 3452 __ Mov(memop_tmp, -memop.GetOffsetImmediate()); 3453 __ Add(base_register, base_register, memop_tmp); 3454 } 3455 } else if (memop.IsShiftedRegister()) { 3456 __ Mov(memop_tmp, 3457 Operand(memop.GetOffsetRegister(), 3458 memop.GetShift(), 3459 memop.GetShiftAmount())); 3460 if (memop.GetSign().IsPlus()) { 3461 __ Sub(base_register, base_register, memop_tmp); 3462 } else { 3463 __ Add(base_register, base_register, memop_tmp); 3464 } 3465 } 3466 } 3467 } 3468 3469 3470 (masm.*instruction)(cond, rd, memop); 3471 3472 { 3473 UseScratchRegisterScope temp_registers(&masm); 3474 Register nzcv_bits = temp_registers.Acquire(); 3475 __ Mrs(nzcv_bits, APSR); 3476 // Only record the NZCV bits. 3477 __ And(nzcv_bits, nzcv_bits, NZCVFlag); 3478 __ Str(nzcv_bits, MemOperand(result_ptr, offsetof(Inputs, apsr))); 3479 } 3480 __ Str(rd, MemOperand(result_ptr, offsetof(Inputs, rd))); 3481 __ Str(rm, MemOperand(result_ptr, offsetof(Inputs, rm))); 3482 { 3483 UseScratchRegisterScope temp_registers(&masm); 3484 Register memop_tmp = temp_registers.Acquire(); 3485 Register base_register = memop.GetBaseRegister(); 3486 3487 // Compute the address of the scratch buffer by from the base register. If 3488 // the instruction has updated the base register, we will be able to 3489 // record it. 3490 if (!memop.IsPostIndex()) { 3491 if (memop.IsImmediate()) { 3492 if (memop.GetSign().IsPlus()) { 3493 __ Mov(memop_tmp, memop.GetOffsetImmediate()); 3494 __ Add(base_register, base_register, memop_tmp); 3495 } else { 3496 __ Mov(memop_tmp, -memop.GetOffsetImmediate()); 3497 __ Sub(base_register, base_register, memop_tmp); 3498 } 3499 } else if (memop.IsShiftedRegister()) { 3500 __ Mov(memop_tmp, 3501 Operand(memop.GetOffsetRegister(), 3502 memop.GetShift(), 3503 memop.GetShiftAmount())); 3504 if (memop.GetSign().IsPlus()) { 3505 __ Add(base_register, base_register, memop_tmp); 3506 } else { 3507 __ Sub(base_register, base_register, memop_tmp); 3508 } 3509 } 3510 } 3511 3512 // Record the value of the base register, as an offset from the scratch 3513 // buffer's address. 3514 __ Mov(memop_tmp, Operand::From(scratch_memory_buffers[i])); 3515 __ Sub(base_register, base_register, memop_tmp); 3516 __ Str(base_register, MemOperand(result_ptr, offsetof(Inputs, memop))); 3517 3518 // Record the 32 bit word from memory. 3519 __ Ldr(memop_tmp, MemOperand(memop_tmp)); 3520 __ Str(memop_tmp, MemOperand(result_ptr, offsetof(Inputs, memop) + 4)); 3521 } 3522 3523 3524 // Advance the result pointer. 3525 __ Add(result_ptr, result_ptr, Operand::From(sizeof(kTests[i].inputs[0]))); 3526 // Loop back until `input_ptr` is lower than `input_base`. 3527 __ Add(input_ptr, input_ptr, Operand::From(sizeof(kTests[i].inputs[0]))); 3528 __ Cmp(input_ptr, input_end); 3529 __ B(ne, &loop); 3530 } 3531 3532 END(); 3533 3534 RUN(); 3535 3536 if (Test::generate_test_trace()) { 3537 // Print the results. 3538 for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) { 3539 printf("const Inputs kOutputs_%s_%s[] = {\n", 3540 mnemonic, 3541 kTests[i].identifier); 3542 for (size_t j = 0; j < results[i]->output_size; j++) { 3543 printf(" { "); 3544 printf("0x%08" PRIx32, results[i]->outputs[j].apsr); 3545 printf(", "); 3546 printf("0x%08" PRIx32, results[i]->outputs[j].rd); 3547 printf(", "); 3548 printf("0x%08" PRIx32, results[i]->outputs[j].rm); 3549 printf(", "); 3550 printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}", 3551 results[i]->outputs[j].memop[0], 3552 results[i]->outputs[j].memop[1]); 3553 printf(" },\n"); 3554 } 3555 printf("};\n"); 3556 } 3557 printf("const TestResult kReference%s[] = {\n", mnemonic); 3558 for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) { 3559 printf(" {\n"); 3560 printf(" ARRAY_SIZE(kOutputs_%s_%s),\n", 3561 mnemonic, 3562 kTests[i].identifier); 3563 printf(" kOutputs_%s_%s,\n", mnemonic, kTests[i].identifier); 3564 printf(" },\n"); 3565 } 3566 printf("};\n"); 3567 } else if (kCheckSimulatorTestResults) { 3568 // Check the results. 3569 unsigned total_error_count = 0; 3570 for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) { 3571 bool instruction_has_errors = false; 3572 for (size_t j = 0; j < kTests[i].input_size; j++) { 3573 uint32_t apsr = results[i]->outputs[j].apsr; 3574 uint32_t rd = results[i]->outputs[j].rd; 3575 uint32_t rm = results[i]->outputs[j].rm; 3576 uint32_t memop[2] = {results[i]->outputs[j].memop[0], 3577 results[i]->outputs[j].memop[1]}; 3578 3579 uint32_t apsr_input = kTests[i].inputs[j].apsr; 3580 uint32_t rd_input = kTests[i].inputs[j].rd; 3581 uint32_t rm_input = kTests[i].inputs[j].rm; 3582 uint32_t memop_input[2] = {kTests[i].inputs[j].memop[0], 3583 kTests[i].inputs[j].memop[1]}; 3584 3585 uint32_t apsr_ref = reference[i].outputs[j].apsr; 3586 uint32_t rd_ref = reference[i].outputs[j].rd; 3587 uint32_t rm_ref = reference[i].outputs[j].rm; 3588 uint32_t memop_ref[2] = {results[i]->outputs[j].memop[0], 3589 results[i]->outputs[j].memop[1]}; 3590 3591 3592 if (((apsr != apsr_ref) || (rd != rd_ref) || (rm != rm_ref) || 3593 ((memop[0] != memop_ref[0]) && (memop[1] != memop_ref[1]))) && 3594 (++total_error_count <= kErrorReportLimit)) { 3595 // Print the instruction once even if it triggered multiple failures. 3596 if (!instruction_has_errors) { 3597 printf("Error(s) when testing \"%s %s\":\n", 3598 mnemonic, 3599 kTests[i].operands_description); 3600 instruction_has_errors = true; 3601 } 3602 // Print subsequent errors. 3603 printf(" Input: "); 3604 printf("0x%08" PRIx32, apsr_input); 3605 printf(", "); 3606 printf("0x%08" PRIx32, rd_input); 3607 printf(", "); 3608 printf("0x%08" PRIx32, rm_input); 3609 printf(", "); 3610 printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}", 3611 memop_input[0], 3612 memop_input[1]); 3613 printf("\n"); 3614 printf(" Expected: "); 3615 printf("0x%08" PRIx32, apsr_ref); 3616 printf(", "); 3617 printf("0x%08" PRIx32, rd_ref); 3618 printf(", "); 3619 printf("0x%08" PRIx32, rm_ref); 3620 printf(", "); 3621 printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}", 3622 memop_ref[0], 3623 memop_ref[1]); 3624 printf("\n"); 3625 printf(" Found: "); 3626 printf("0x%08" PRIx32, apsr); 3627 printf(", "); 3628 printf("0x%08" PRIx32, rd); 3629 printf(", "); 3630 printf("0x%08" PRIx32, rm); 3631 printf(", "); 3632 printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}", memop[0], memop[1]); 3633 printf("\n\n"); 3634 } 3635 } 3636 } 3637 3638 if (total_error_count > kErrorReportLimit) { 3639 printf("%u other errors follow.\n", 3640 total_error_count - kErrorReportLimit); 3641 } 3642 VIXL_CHECK(total_error_count == 0); 3643 } else { 3644 VIXL_WARNING("Assembled the code, but did not run anything.\n"); 3645 } 3646 3647 for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) { 3648 delete[] results[i]->outputs; 3649 delete results[i]; 3650 delete[] scratch_memory_buffers[i]; 3651 } 3652 3653 TEARDOWN(); 3654} 3655 3656// Instantiate tests for each instruction in the list. 3657// TODO: Remove this limitation by having a sandboxing mechanism. 3658#if defined(VIXL_HOST_POINTER_32) 3659#define TEST(mnemonic) \ 3660 void Test_##mnemonic() { \ 3661 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \ 3662 } \ 3663 Test test_##mnemonic( \ 3664 "AARCH32_SIMULATOR_COND_RD_MEMOP_RS_SHIFT_AMOUNT_1TO32_A32_" #mnemonic, \ 3665 &Test_##mnemonic); 3666#else 3667#define TEST(mnemonic) \ 3668 void Test_##mnemonic() { \ 3669 VIXL_WARNING("This test can only run on a 32-bit host.\n"); \ 3670 USE(TestHelper); \ 3671 } \ 3672 Test test_##mnemonic( \ 3673 "AARCH32_SIMULATOR_COND_RD_MEMOP_RS_SHIFT_AMOUNT_1TO32_A32_" #mnemonic, \ 3674 &Test_##mnemonic); 3675#endif 3676 3677FOREACH_INSTRUCTION(TEST) 3678#undef TEST 3679 3680} // namespace 3681#endif 3682 3683} // namespace aarch32 3684} // namespace vixl 3685