1b78f13911bfe6eda303e91ef215c87a165aae8aeAlexandre Rames// Copyright 2016, VIXL authors
288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// All rights reserved.
388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois//
488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// Redistribution and use in source and binary forms, with or without
588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// modification, are permitted provided that the following conditions are met:
688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois//
788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois//   * Redistributions of source code must retain the above copyright notice,
888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois//     this list of conditions and the following disclaimer.
988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois//   * Redistributions in binary form must reproduce the above copyright notice,
1088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois//     this list of conditions and the following disclaimer in the documentation
1188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois//     and/or other materials provided with the distribution.
1288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois//   * Neither the name of ARM Limited nor the names of its contributors may be
1388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois//     used to endorse or promote products derived from this software without
1488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois//     specific prior written permission.
1588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois//
1688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
1788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
2088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
2388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
2488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
2719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
2888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// -----------------------------------------------------------------------------
2988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// This file is auto generated from the
30d3832965c62a8ad461b9ea9eb0994ca6b0a3da2cAlexandre Rames// test/aarch32/config/template-simulator-aarch32.cc.in template file using
3188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// tools/generate_tests.py.
3288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois//
3388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// PLEASE DO NOT EDIT.
3488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// -----------------------------------------------------------------------------
3588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
3619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
3788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois#include "test-runner.h"
3888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
3988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois#include "test-utils.h"
40d3832965c62a8ad461b9ea9eb0994ca6b0a3da2cAlexandre Rames#include "test-utils-aarch32.h"
4188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
42d3832965c62a8ad461b9ea9eb0994ca6b0a3da2cAlexandre Rames#include "aarch32/assembler-aarch32.h"
43d3832965c62a8ad461b9ea9eb0994ca6b0a3da2cAlexandre Rames#include "aarch32/macro-assembler-aarch32.h"
44d3832965c62a8ad461b9ea9eb0994ca6b0a3da2cAlexandre Rames#include "aarch32/disasm-aarch32.h"
4588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
4688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois#define __ masm.
4788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois#define BUF_SIZE (4096)
4888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
491e85b7f2e8ad2bfb233de29405aade635ed207cePierre Langlois#ifdef VIXL_INCLUDE_SIMULATOR_AARCH32
5088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// Run tests with the simulator.
5188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
5288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois#define SETUP() MacroAssembler masm(BUF_SIZE)
5388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
54919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames#define START() masm.GetBuffer()->Reset()
5588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
5688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois#define END() \
5788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  __ Hlt(0);  \
5888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  __ FinalizeCode();
5988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
6088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// TODO: Run the tests in the simulator.
6188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois#define RUN()
6288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
6388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois#define TEARDOWN()
6488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
651e85b7f2e8ad2bfb233de29405aade635ed207cePierre Langlois#else  // ifdef VIXL_INCLUDE_SIMULATOR_AARCH32.
6688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
674cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli#define SETUP()                                   \
684cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  MacroAssembler masm(BUF_SIZE);                  \
694cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  UseScratchRegisterScope harness_scratch(&masm); \
704cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  harness_scratch.ExcludeAll();
7188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
72919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames#define START()              \
73919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames  masm.GetBuffer()->Reset(); \
74919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames  __ Push(r4);               \
75919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames  __ Push(r5);               \
76919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames  __ Push(r6);               \
77919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames  __ Push(r7);               \
78919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames  __ Push(r8);               \
79919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames  __ Push(r9);               \
80919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames  __ Push(r10);              \
81919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames  __ Push(r11);              \
824cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  __ Push(lr);               \
834cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  harness_scratch.Include(ip);
844cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli
854cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli#define END()                  \
864cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  harness_scratch.Exclude(ip); \
874cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  __ Pop(lr);                  \
884cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  __ Pop(r11);                 \
894cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  __ Pop(r10);                 \
904cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  __ Pop(r9);                  \
914cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  __ Pop(r8);                  \
924cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  __ Pop(r7);                  \
934cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  __ Pop(r6);                  \
944cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  __ Pop(r5);                  \
954cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  __ Pop(r4);                  \
964cb13e841305b38acbd8195b1c511d59c91ec8d9Georgia Kouveli  __ Bx(lr);                   \
97cb6592f4b00347a84f9d7638473f0af8f1b6b1ddGeorgia Kouveli  __ FinalizeCode();
9888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
99919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames#define RUN()                                                 \
100919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames  {                                                           \
101919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames    int pcs_offset = masm.IsUsingT32() ? 1 : 0;               \
1026a049f97861bd71c69d81f643e42308d28c5de31Alexandre Rames    masm.GetBuffer()->SetExecutable();                        \
103919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames    ExecuteMemory(masm.GetBuffer()->GetStartAddress<byte*>(), \
104919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames                  masm.GetSizeOfCodeGenerated(),              \
105919e3fe28a5024c53ede42922092bbc32e89dcb8Alexandre Rames                  pcs_offset);                                \
1066a049f97861bd71c69d81f643e42308d28c5de31Alexandre Rames    masm.GetBuffer()->SetWritable();                          \
10788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  }
10888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
109cb6592f4b00347a84f9d7638473f0af8f1b6b1ddGeorgia Kouveli#define TEARDOWN() harness_scratch.Close();
11088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
1111e85b7f2e8ad2bfb233de29405aade635ed207cePierre Langlois#endif  // ifdef VIXL_INCLUDE_SIMULATOR_AARCH32
11288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
11388c46b84df005638546de5e4e965bdcc31352f48Pierre Langloisnamespace vixl {
11488c46b84df005638546de5e4e965bdcc31352f48Pierre Langloisnamespace aarch32 {
11588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
11688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// List of instruction encodings:
11788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois#define FOREACH_INSTRUCTION(M) \
11888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  M(Ldr)                       \
11988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  M(Ldrb)                      \
12088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  M(Str)                       \
12188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  M(Strb)
12288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
12319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
1241d451fce2580f360ef249893135526156985a85cPierre Langlois// The following definitions are defined again in each generated test, therefore
1251d451fce2580f360ef249893135526156985a85cPierre Langlois// we need to place them in an anomymous namespace. It expresses that they are
1261d451fce2580f360ef249893135526156985a85cPierre Langlois// local to this file only, and the compiler is not allowed to share these types
1271d451fce2580f360ef249893135526156985a85cPierre Langlois// across test files during template instantiation. Specifically, `Operands` and
1281d451fce2580f360ef249893135526156985a85cPierre Langlois// `Inputs` have various layouts across generated tests so they absolutely
1291d451fce2580f360ef249893135526156985a85cPierre Langlois// cannot be shared.
1301d451fce2580f360ef249893135526156985a85cPierre Langlois
1319a9331faeba996d6c85e6e2a6355ccfc22c6cab6Rodolph Perfetta#ifdef VIXL_INCLUDE_TARGET_A32
1321d451fce2580f360ef249893135526156985a85cPierre Langloisnamespace {
1331d451fce2580f360ef249893135526156985a85cPierre Langlois
13488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// Values to be passed to the assembler to produce the instruction under test.
13588c46b84df005638546de5e4e965bdcc31352f48Pierre Langloisstruct Operands {
13688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  Condition cond;
13788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  Register rd;
13888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  Register rn;
13988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  Sign sign;
14088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  Register rm;
14188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  ShiftType shift;
14288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  uint32_t amount;
14388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  AddrMode addr_mode;
14488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois};
14588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
14688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// Input data to feed to the instruction.
14788c46b84df005638546de5e4e965bdcc31352f48Pierre Langloisstruct Inputs {
14888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  uint32_t apsr;
14988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  uint32_t rd;
15088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  uint32_t rm;
15188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  uint32_t memop[2];
15288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois};
15388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
15488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// This structure contains all input data needed to test one specific encoding.
15588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// It used to generate a loop over an instruction.
15688c46b84df005638546de5e4e965bdcc31352f48Pierre Langloisstruct TestLoopData {
15788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  // The `operands` fields represents the values to pass to the assembler to
15888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  // produce the instruction.
15988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  Operands operands;
16088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  // Description of the operands, used for error reporting.
16188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  const char* operands_description;
16288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  // Unique identifier, used for generating traces.
16388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  const char* identifier;
16488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  // Array of values to be fed to the instruction.
16588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  size_t input_size;
16688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  const Inputs* inputs;
16788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois};
16888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
16988c46b84df005638546de5e4e965bdcc31352f48Pierre Langloisstatic const Inputs kCondition[] = {{NFlag, 0xabababab, 0, {0, 0x77777777}},
17088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {ZFlag, 0xabababab, 0, {0, 0x77777777}},
17188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {CFlag, 0xabababab, 0, {0, 0x77777777}},
17288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {VFlag, 0xabababab, 0, {0, 0x77777777}},
17388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {NZFlag, 0xabababab, 0, {0, 0x77777777}},
17488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {NCFlag, 0xabababab, 0, {0, 0x77777777}},
17588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {NVFlag, 0xabababab, 0, {0, 0x77777777}},
17688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {ZCFlag, 0xabababab, 0, {0, 0x77777777}},
17788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {ZVFlag, 0xabababab, 0, {0, 0x77777777}},
17888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {CVFlag, 0xabababab, 0, {0, 0x77777777}},
17988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {NZCFlag, 0xabababab, 0, {0, 0x77777777}},
18088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {NZVFlag, 0xabababab, 0, {0, 0x77777777}},
18188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {NCVFlag, 0xabababab, 0, {0, 0x77777777}},
18288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {ZCVFlag, 0xabababab, 0, {0, 0x77777777}},
18388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                    {NZCVFlag, 0xabababab, 0, {0, 0x77777777}}};
18488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
18519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langloisstatic const Inputs kPositiveOffset[] =
18619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois    {{NoFlag, 0xabababab, 2590, {0, 0x77777777}},
18719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 180, {0, 0x0cabba9e}},
18819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3870, {0, 0x77777777}},
18919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 618, {0, 0x55555555}},
19019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2650, {0, 0x0badbeef}},
19119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2091, {0, 0x77777777}},
19219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 778, {0, 0x0badbeef}},
19319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 282, {0, 0x0cabba9e}},
19419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 263, {0, 0x77777777}},
19519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 200, {0, 0x0cabba9e}}};
19619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
19719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langloisstatic const Inputs kNegativeOffset[] =
19819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois    {{NoFlag, 0xabababab, 3743, {0, 0x77777777}},
19919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2475, {0, 0x0badbeef}},
20019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 1159, {0, 0x0cabba9e}},
20119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2345, {0, 0x55555555}},
20219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3625, {0, 0x55555555}},
20319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2381, {0, 0x0badbeef}},
20419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 4037, {0, 0x0badbeef}},
20519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 778, {0, 0x77777777}},
20619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3880, {0, 0x0cabba9e}},
20719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3384, {0, 0x77777777}}};
20819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
20919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langloisstatic const Inputs kPositivePostIndex[] =
21019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois    {{NoFlag, 0xabababab, 1526, {0, 0x0cabba9e}},
21119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 365, {0, 0x55555555}},
21219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 1948, {0, 0x0cabba9e}},
21319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 958, {0, 0x0cabba9e}},
21419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 969, {0, 0x55555555}},
21519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2695, {0, 0x55555555}},
21619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2690, {0, 0x0cabba9e}},
21719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 523, {0, 0x0cabba9e}},
21819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2046, {0, 0x0cabba9e}},
21919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2490, {0, 0x0cabba9e}}};
22019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
22119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langloisstatic const Inputs kNegativePostIndex[] =
22219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois    {{NoFlag, 0xabababab, 4093, {0, 0x0badbeef}},
22319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 1860, {0, 0x0cabba9e}},
22419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3157, {0, 0x55555555}},
22519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3069, {0, 0x55555555}},
22619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 932, {0, 0x55555555}},
22719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3287, {0, 0x55555555}},
22819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 685, {0, 0x0cabba9e}},
22919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3685, {0, 0x55555555}},
23019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3039, {0, 0x0badbeef}},
23119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2245, {0, 0x0badbeef}}};
23219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
23319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langloisstatic const Inputs kPositivePreIndex[] =
23419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois    {{NoFlag, 0xabababab, 719, {0, 0x0badbeef}},
23519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2933, {0, 0x0badbeef}},
23619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 263, {0, 0x0badbeef}},
23719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2086, {0, 0x55555555}},
23819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2728, {0, 0x0badbeef}},
23919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3399, {0, 0x55555555}},
24019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2532, {0, 0x0badbeef}},
24119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3626, {0, 0x0badbeef}},
24219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 612, {0, 0x77777777}},
24319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3811, {0, 0x77777777}}};
24419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
24519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langloisstatic const Inputs kNegativePreIndex[] =
24619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois    {{NoFlag, 0xabababab, 3564, {0, 0x77777777}},
24719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 766, {0, 0x55555555}},
24819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2365, {0, 0x0badbeef}},
24919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2462, {0, 0x0cabba9e}},
25019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 3439, {0, 0x0badbeef}},
25119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2810, {0, 0x77777777}},
25219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2590, {0, 0x55555555}},
25319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 1527, {0, 0x0cabba9e}},
25419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 523, {0, 0x0cabba9e}},
25519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {NoFlag, 0xabababab, 2290, {0, 0x77777777}}};
25619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
25788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
25888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// A loop will be generated for each element of this array.
2591d451fce2580f360ef249893135526156985a85cPierre Langloisconst TestLoopData kTests[] =
26019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois    {{{eq, r0, r1, plus, r8, LSL, 1, Offset},
26119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "eq r0 r1 plus r8 LSL 1 Offset",
26219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_eq_r0_r1_plus_r8_LSL_1_Offset",
26319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
26419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
26519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{ne, r0, r1, plus, r8, LSL, 1, Offset},
26619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "ne r0 r1 plus r8 LSL 1 Offset",
26719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_ne_r0_r1_plus_r8_LSL_1_Offset",
26819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
26919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
27019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{cs, r0, r1, plus, r8, LSL, 1, Offset},
27119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "cs r0 r1 plus r8 LSL 1 Offset",
27219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_cs_r0_r1_plus_r8_LSL_1_Offset",
27319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
27419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
27519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{cc, r0, r1, plus, r8, LSL, 1, Offset},
27619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "cc r0 r1 plus r8 LSL 1 Offset",
27719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_cc_r0_r1_plus_r8_LSL_1_Offset",
27819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
27919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
28019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{mi, r0, r1, plus, r8, LSL, 1, Offset},
28119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "mi r0 r1 plus r8 LSL 1 Offset",
28219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_mi_r0_r1_plus_r8_LSL_1_Offset",
28319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
28419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
28519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{pl, r0, r1, plus, r8, LSL, 1, Offset},
28619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "pl r0 r1 plus r8 LSL 1 Offset",
28719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_pl_r0_r1_plus_r8_LSL_1_Offset",
28819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
28919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
29019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{vs, r0, r1, plus, r8, LSL, 1, Offset},
29119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "vs r0 r1 plus r8 LSL 1 Offset",
29219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_vs_r0_r1_plus_r8_LSL_1_Offset",
29319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
29419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
29519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{vc, r0, r1, plus, r8, LSL, 1, Offset},
29619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "vc r0 r1 plus r8 LSL 1 Offset",
29719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_vc_r0_r1_plus_r8_LSL_1_Offset",
29819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
29919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
30019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{hi, r0, r1, plus, r8, LSL, 1, Offset},
30119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "hi r0 r1 plus r8 LSL 1 Offset",
30219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_hi_r0_r1_plus_r8_LSL_1_Offset",
30319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
30419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
30519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{ls, r0, r1, plus, r8, LSL, 1, Offset},
30619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "ls r0 r1 plus r8 LSL 1 Offset",
30719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_ls_r0_r1_plus_r8_LSL_1_Offset",
30819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
30919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
31019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{ge, r0, r1, plus, r8, LSL, 1, Offset},
31119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "ge r0 r1 plus r8 LSL 1 Offset",
31219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_ge_r0_r1_plus_r8_LSL_1_Offset",
31319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
31419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
31519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{lt, r0, r1, plus, r8, LSL, 1, Offset},
31619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "lt r0 r1 plus r8 LSL 1 Offset",
31719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_lt_r0_r1_plus_r8_LSL_1_Offset",
31819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
31919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
32019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{gt, r0, r1, plus, r8, LSL, 1, Offset},
32119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "gt r0 r1 plus r8 LSL 1 Offset",
32219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_gt_r0_r1_plus_r8_LSL_1_Offset",
32319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
32419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
32519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{le, r0, r1, plus, r8, LSL, 1, Offset},
32619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "le r0 r1 plus r8 LSL 1 Offset",
32719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_le_r0_r1_plus_r8_LSL_1_Offset",
32819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
32919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
33019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r1, plus, r8, LSL, 1, Offset},
33119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r1 plus r8 LSL 1 Offset",
33219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "Condition_al_r0_r1_plus_r8_LSL_1_Offset",
33319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kCondition),
33419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kCondition},
33519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r0, plus, r11, LSL, 2, Offset},
33619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r0 plus r11 LSL 2 Offset",
33719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r1_r0_plus_r11_LSL_2_Offset",
33819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
33919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
34019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r11, plus, r12, LSL, 11, Offset},
34119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r11 plus r12 LSL 11 Offset",
34219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r3_r11_plus_r12_LSL_11_Offset",
34319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
34419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
34519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r2, plus, r6, LSL, 2, Offset},
34619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r2 plus r6 LSL 2 Offset",
34719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r14_r2_plus_r6_LSL_2_Offset",
34819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
34919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
35019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r12, plus, r9, ROR, 12, Offset},
35119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r12 plus r9 ROR 12 Offset",
35219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r4_r12_plus_r9_ROR_12_Offset",
35319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
35419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
35519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r12, plus, r0, LSL, 17, Offset},
35619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r12 plus r0 LSL 17 Offset",
35719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r1_r12_plus_r0_LSL_17_Offset",
35819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
35919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
36019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r9, plus, r6, LSL, 24, Offset},
36119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r9 plus r6 LSL 24 Offset",
36219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r1_r9_plus_r6_LSL_24_Offset",
36319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
36419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
36519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r5, plus, r3, LSL, 21, Offset},
36619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r5 plus r3 LSL 21 Offset",
36719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r1_r5_plus_r3_LSL_21_Offset",
36819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
36919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
37019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r7, plus, r6, LSL, 20, Offset},
37119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r7 plus r6 LSL 20 Offset",
37219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r8_r7_plus_r6_LSL_20_Offset",
37319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
37419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
37519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r14, plus, r7, LSL, 21, Offset},
37619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r14 plus r7 LSL 21 Offset",
37719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r12_r14_plus_r7_LSL_21_Offset",
37819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
37919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
38019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r11, plus, r4, ROR, 2, Offset},
38119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r11 plus r4 ROR 2 Offset",
38219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r0_r11_plus_r4_ROR_2_Offset",
38319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
38419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
38519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r14, plus, r8, LSL, 30, Offset},
38619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r14 plus r8 LSL 30 Offset",
38719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r6_r14_plus_r8_LSL_30_Offset",
38819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
38919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
39019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r11, plus, r9, ROR, 29, Offset},
39119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r11 plus r9 ROR 29 Offset",
39219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r2_r11_plus_r9_ROR_29_Offset",
39319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
39419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
39519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r14, plus, r2, LSL, 31, Offset},
39619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r14 plus r2 LSL 31 Offset",
39719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r0_r14_plus_r2_LSL_31_Offset",
39819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
39919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
40019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r4, plus, r7, LSL, 13, Offset},
40119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r4 plus r7 LSL 13 Offset",
40219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r3_r4_plus_r7_LSL_13_Offset",
40319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
40419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
40519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r12, plus, r9, LSL, 7, Offset},
40619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r12 plus r9 LSL 7 Offset",
40719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r10_r12_plus_r9_LSL_7_Offset",
40819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
40919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
41019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r1, plus, r3, ROR, 19, Offset},
41119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r1 plus r3 ROR 19 Offset",
41219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r5_r1_plus_r3_ROR_19_Offset",
41319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
41419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
41519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r6, plus, r3, LSL, 27, Offset},
41619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r6 plus r3 LSL 27 Offset",
41719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r5_r6_plus_r3_LSL_27_Offset",
41819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
41919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
42019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r10, plus, r1, LSL, 21, Offset},
42119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r10 plus r1 LSL 21 Offset",
42219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r2_r10_plus_r1_LSL_21_Offset",
42319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
42419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
42519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r2, plus, r5, LSL, 23, Offset},
42619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r2 plus r5 LSL 23 Offset",
42719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r7_r2_plus_r5_LSL_23_Offset",
42819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
42919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
43019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r14, plus, r0, ROR, 17, Offset},
43119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r14 plus r0 ROR 17 Offset",
43219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r7_r14_plus_r0_ROR_17_Offset",
43319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
43419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
43519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r5, plus, r9, LSL, 19, Offset},
43619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r5 plus r9 LSL 19 Offset",
43719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r4_r5_plus_r9_LSL_19_Offset",
43819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
43919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
44019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r0, plus, r2, ROR, 27, Offset},
44119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r0 plus r2 ROR 27 Offset",
44219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r14_r0_plus_r2_ROR_27_Offset",
44319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
44419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
44519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r7, plus, r5, LSL, 15, Offset},
44619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r7 plus r5 LSL 15 Offset",
44719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r11_r7_plus_r5_LSL_15_Offset",
44819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
44919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
45019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r6, plus, r0, LSL, 3, Offset},
45119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r6 plus r0 LSL 3 Offset",
45219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r7_r6_plus_r0_LSL_3_Offset",
45319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
45419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
45519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r4, plus, r6, ROR, 5, Offset},
45619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r4 plus r6 ROR 5 Offset",
45719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r14_r4_plus_r6_ROR_5_Offset",
45819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
45919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
46019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r12, plus, r8, LSL, 8, Offset},
46119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r12 plus r8 LSL 8 Offset",
46219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r0_r12_plus_r8_LSL_8_Offset",
46319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
46419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
46519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r8, plus, r9, ROR, 13, Offset},
46619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r8 plus r9 ROR 13 Offset",
46719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r14_r8_plus_r9_ROR_13_Offset",
46819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
46919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
47019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r11, plus, r12, LSL, 8, Offset},
47119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r11 plus r12 LSL 8 Offset",
47219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r2_r11_plus_r12_LSL_8_Offset",
47319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
47419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
47519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r2, plus, r0, LSL, 16, Offset},
47619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r2 plus r0 LSL 16 Offset",
47719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r5_r2_plus_r0_LSL_16_Offset",
47819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
47919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
48019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r8, plus, r9, ROR, 25, Offset},
48119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r8 plus r9 ROR 25 Offset",
48219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r10_r8_plus_r9_ROR_25_Offset",
48319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
48419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
48519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r8, plus, r4, LSL, 6, Offset},
48619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r8 plus r4 LSL 6 Offset",
48719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r11_r8_plus_r4_LSL_6_Offset",
48819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
48919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
49019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r5, plus, r10, ROR, 24, Offset},
49119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r5 plus r10 ROR 24 Offset",
49219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r7_r5_plus_r10_ROR_24_Offset",
49319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
49419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
49519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r14, plus, r2, LSL, 31, Offset},
49619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r14 plus r2 LSL 31 Offset",
49719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r8_r14_plus_r2_LSL_31_Offset",
49819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
49919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
50019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r2, plus, r12, LSL, 14, Offset},
50119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r2 plus r12 LSL 14 Offset",
50219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r1_r2_plus_r12_LSL_14_Offset",
50319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
50419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
50519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r1, plus, r0, ROR, 12, Offset},
50619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r1 plus r0 ROR 12 Offset",
50719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r12_r1_plus_r0_ROR_12_Offset",
50819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
50919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
51019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r5, plus, r1, LSL, 9, Offset},
51119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r5 plus r1 LSL 9 Offset",
51219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r3_r5_plus_r1_LSL_9_Offset",
51319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
51419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
51519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r10, plus, r14, ROR, 3, Offset},
51619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r10 plus r14 ROR 3 Offset",
51719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r7_r10_plus_r14_ROR_3_Offset",
51819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
51919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
52019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r1, plus, r14, LSL, 24, Offset},
52119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r1 plus r14 LSL 24 Offset",
52219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r4_r1_plus_r14_LSL_24_Offset",
52319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
52419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
52519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r5, plus, r4, LSL, 4, Offset},
52619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r5 plus r4 LSL 4 Offset",
52719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r3_r5_plus_r4_LSL_4_Offset",
52819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
52919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
53019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r12, plus, r10, ROR, 18, Offset},
53119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r12 plus r10 ROR 18 Offset",
53219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r11_r12_plus_r10_ROR_18_Offset",
53319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
53419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
53519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r2, plus, r8, LSL, 5, Offset},
53619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r2 plus r8 LSL 5 Offset",
53719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r1_r2_plus_r8_LSL_5_Offset",
53819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
53919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
54019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r7, plus, r5, LSL, 19, Offset},
54119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r7 plus r5 LSL 19 Offset",
54219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r6_r7_plus_r5_LSL_19_Offset",
54319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
54419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
54519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r6, plus, r0, ROR, 7, Offset},
54619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r6 plus r0 ROR 7 Offset",
54719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r7_r6_plus_r0_ROR_7_Offset",
54819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
54919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
55019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r3, plus, r4, ROR, 27, Offset},
55119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r3 plus r4 ROR 27 Offset",
55219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r7_r3_plus_r4_ROR_27_Offset",
55319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
55419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
55519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r6, plus, r7, ROR, 10, Offset},
55619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r6 plus r7 ROR 10 Offset",
55719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r12_r6_plus_r7_ROR_10_Offset",
55819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
55919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
56019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r5, plus, r7, ROR, 29, Offset},
56119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r5 plus r7 ROR 29 Offset",
56219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r8_r5_plus_r7_ROR_29_Offset",
56319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
56419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
56519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r0, plus, r4, ROR, 2, Offset},
56619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r0 plus r4 ROR 2 Offset",
56719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r9_r0_plus_r4_ROR_2_Offset",
56819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
56919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
57019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r4, plus, r1, LSL, 1, Offset},
57119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r4 plus r1 LSL 1 Offset",
57219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r3_r4_plus_r1_LSL_1_Offset",
57319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
57419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
57519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r12, plus, r8, LSL, 17, Offset},
57619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r12 plus r8 LSL 17 Offset",
57719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r3_r12_plus_r8_LSL_17_Offset",
57819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
57919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
58019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r5, plus, r10, LSL, 18, Offset},
58119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r5 plus r10 LSL 18 Offset",
58219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r12_r5_plus_r10_LSL_18_Offset",
58319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
58419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
58519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r10, plus, r7, ROR, 19, Offset},
58619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r10 plus r7 ROR 19 Offset",
58719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r5_r10_plus_r7_ROR_19_Offset",
58819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
58919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
59019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r2, plus, r12, LSL, 15, Offset},
59119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r2 plus r12 LSL 15 Offset",
59219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r14_r2_plus_r12_LSL_15_Offset",
59319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
59419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
59519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r8, plus, r0, ROR, 28, Offset},
59619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r8 plus r0 ROR 28 Offset",
59719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r2_r8_plus_r0_ROR_28_Offset",
59819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
59919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
60019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r7, plus, r6, LSL, 23, Offset},
60119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r7 plus r6 LSL 23 Offset",
60219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r1_r7_plus_r6_LSL_23_Offset",
60319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
60419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
60519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r14, plus, r7, ROR, 9, Offset},
60619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r14 plus r7 ROR 9 Offset",
60719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r9_r14_plus_r7_ROR_9_Offset",
60819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
60919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
61019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r11, plus, r0, LSL, 7, Offset},
61119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r11 plus r0 LSL 7 Offset",
61219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r4_r11_plus_r0_LSL_7_Offset",
61319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
61419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
61519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r12, plus, r5, ROR, 17, Offset},
61619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r12 plus r5 ROR 17 Offset",
61719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r6_r12_plus_r5_ROR_17_Offset",
61819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
61919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
62019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r5, plus, r8, LSL, 9, Offset},
62119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r5 plus r8 LSL 9 Offset",
62219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r14_r5_plus_r8_LSL_9_Offset",
62319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
62419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
62519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r5, plus, r6, LSL, 26, Offset},
62619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r5 plus r6 LSL 26 Offset",
62719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r8_r5_plus_r6_LSL_26_Offset",
62819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
62919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
63019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r9, plus, r6, LSL, 9, Offset},
63119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r9 plus r6 LSL 9 Offset",
63219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r12_r9_plus_r6_LSL_9_Offset",
63319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
63419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
63519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r11, plus, r4, ROR, 28, Offset},
63619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r11 plus r4 ROR 28 Offset",
63719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r9_r11_plus_r4_ROR_28_Offset",
63819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
63919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
64019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r9, plus, r2, ROR, 1, Offset},
64119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r9 plus r2 ROR 1 Offset",
64219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r5_r9_plus_r2_ROR_1_Offset",
64319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
64419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
64519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r1, plus, r8, ROR, 4, Offset},
64619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r1 plus r8 ROR 4 Offset",
64719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r2_r1_plus_r8_ROR_4_Offset",
64819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
64919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
65019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r10, plus, r0, ROR, 7, Offset},
65119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r10 plus r0 ROR 7 Offset",
65219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r9_r10_plus_r0_ROR_7_Offset",
65319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
65419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
65519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r8, plus, r3, ROR, 1, Offset},
65619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r8 plus r3 ROR 1 Offset",
65719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r5_r8_plus_r3_ROR_1_Offset",
65819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
65919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
66019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r11, plus, r5, ROR, 6, Offset},
66119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r11 plus r5 ROR 6 Offset",
66219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r9_r11_plus_r5_ROR_6_Offset",
66319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
66419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
66519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r1, plus, r11, LSL, 21, Offset},
66619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r1 plus r11 LSL 21 Offset",
66719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r7_r1_plus_r11_LSL_21_Offset",
66819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
66919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
67019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r4, plus, r10, ROR, 15, Offset},
67119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r4 plus r10 ROR 15 Offset",
67219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r8_r4_plus_r10_ROR_15_Offset",
67319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
67419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
67519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r11, plus, r14, LSL, 4, Offset},
67619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r11 plus r14 LSL 4 Offset",
67719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r3_r11_plus_r14_LSL_4_Offset",
67819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
67919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
68019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r9, plus, r14, ROR, 7, Offset},
68119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r9 plus r14 ROR 7 Offset",
68219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r3_r9_plus_r14_ROR_7_Offset",
68319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
68419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
68519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r6, plus, r3, ROR, 15, Offset},
68619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r6 plus r3 ROR 15 Offset",
68719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r1_r6_plus_r3_ROR_15_Offset",
68819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
68919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
69019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r1, plus, r12, ROR, 28, Offset},
69119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r1 plus r12 ROR 28 Offset",
69219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r7_r1_plus_r12_ROR_28_Offset",
69319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
69419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
69519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r6, plus, r4, ROR, 13, Offset},
69619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r6 plus r4 ROR 13 Offset",
69719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r8_r6_plus_r4_ROR_13_Offset",
69819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
69919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
70019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r14, plus, r8, LSL, 22, Offset},
70119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r14 plus r8 LSL 22 Offset",
70219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r5_r14_plus_r8_LSL_22_Offset",
70319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
70419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
70519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r7, plus, r3, LSL, 29, Offset},
70619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r7 plus r3 LSL 29 Offset",
70719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r6_r7_plus_r3_LSL_29_Offset",
70819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
70919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
71019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r2, plus, r5, LSL, 1, Offset},
71119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r2 plus r5 LSL 1 Offset",
71219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r8_r2_plus_r5_LSL_1_Offset",
71319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
71419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
71519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r1, plus, r12, LSL, 3, Offset},
71619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r1 plus r12 LSL 3 Offset",
71719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r2_r1_plus_r12_LSL_3_Offset",
71819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
71919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
72019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r2, plus, r7, ROR, 22, Offset},
72119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r2 plus r7 ROR 22 Offset",
72219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r10_r2_plus_r7_ROR_22_Offset",
72319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
72419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
72519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r8, plus, r4, LSL, 6, Offset},
72619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r8 plus r4 LSL 6 Offset",
72719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r7_r8_plus_r4_LSL_6_Offset",
72819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
72919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
73019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r5, plus, r6, LSL, 30, Offset},
73119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r5 plus r6 LSL 30 Offset",
73219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r11_r5_plus_r6_LSL_30_Offset",
73319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
73419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
73519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r4, plus, r8, ROR, 12, Offset},
73619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r4 plus r8 ROR 12 Offset",
73719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r11_r4_plus_r8_ROR_12_Offset",
73819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
73919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
74019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r1, plus, r8, ROR, 21, Offset},
74119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r1 plus r8 ROR 21 Offset",
74219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r12_r1_plus_r8_ROR_21_Offset",
74319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
74419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
74519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r2, plus, r4, ROR, 17, Offset},
74619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r2 plus r4 ROR 17 Offset",
74719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r6_r2_plus_r4_ROR_17_Offset",
74819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
74919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
75019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r11, plus, r12, LSL, 8, Offset},
75119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r11 plus r12 LSL 8 Offset",
75219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r1_r11_plus_r12_LSL_8_Offset",
75319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
75419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
75519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r12, plus, r0, LSL, 26, Offset},
75619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r12 plus r0 LSL 26 Offset",
75719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r14_r12_plus_r0_LSL_26_Offset",
75819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
75919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
76019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r10, plus, r0, ROR, 2, Offset},
76119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r10 plus r0 ROR 2 Offset",
76219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r4_r10_plus_r0_ROR_2_Offset",
76319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
76419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
76519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r10, plus, r0, ROR, 27, Offset},
76619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r10 plus r0 ROR 27 Offset",
76719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r4_r10_plus_r0_ROR_27_Offset",
76819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
76919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
77019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r12, plus, r4, LSL, 31, Offset},
77119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r12 plus r4 LSL 31 Offset",
77219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r0_r12_plus_r4_LSL_31_Offset",
77319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
77419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
77519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r1, plus, r10, LSL, 31, Offset},
77619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r1 plus r10 LSL 31 Offset",
77719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r5_r1_plus_r10_LSL_31_Offset",
77819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
77919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
78019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r14, plus, r5, LSL, 1, Offset},
78119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r14 plus r5 LSL 1 Offset",
78219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r1_r14_plus_r5_LSL_1_Offset",
78319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
78419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
78519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r14, plus, r0, LSL, 7, Offset},
78619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r14 plus r0 LSL 7 Offset",
78719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r12_r14_plus_r0_LSL_7_Offset",
78819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
78919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
79019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r6, plus, r5, LSL, 1, Offset},
79119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r6 plus r5 LSL 1 Offset",
79219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r1_r6_plus_r5_LSL_1_Offset",
79319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
79419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
79519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r9, plus, r4, ROR, 9, Offset},
79619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r9 plus r4 ROR 9 Offset",
79719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r6_r9_plus_r4_ROR_9_Offset",
79819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
79919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
80019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r11, plus, r10, LSL, 4, Offset},
80119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r11 plus r10 LSL 4 Offset",
80219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r6_r11_plus_r10_LSL_4_Offset",
80319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
80419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
80519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r14, plus, r7, ROR, 25, Offset},
80619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r14 plus r7 ROR 25 Offset",
80719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r5_r14_plus_r7_ROR_25_Offset",
80819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
80919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
81019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r6, plus, r3, LSL, 23, Offset},
81119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r6 plus r3 LSL 23 Offset",
81219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r9_r6_plus_r3_LSL_23_Offset",
81319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
81419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
81519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r4, plus, r0, ROR, 27, Offset},
81619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r4 plus r0 ROR 27 Offset",
81719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r3_r4_plus_r0_ROR_27_Offset",
81819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
81919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
82019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r0, plus, r2, ROR, 17, Offset},
82119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r0 plus r2 ROR 17 Offset",
82219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r1_r0_plus_r2_ROR_17_Offset",
82319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
82419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
82519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r5, plus, r6, LSL, 10, Offset},
82619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r5 plus r6 LSL 10 Offset",
82719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r9_r5_plus_r6_LSL_10_Offset",
82819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
82919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
83019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r4, plus, r9, LSL, 28, Offset},
83119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r4 plus r9 LSL 28 Offset",
83219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositiveOffset_al_r11_r4_plus_r9_LSL_28_Offset",
83319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositiveOffset),
83419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositiveOffset},
83519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r1, minus, r10, ROR, 20, Offset},
83619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r1 minus r10 ROR 20 Offset",
83719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r7_r1_minus_r10_ROR_20_Offset",
83819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
83919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
84019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r12, minus, r6, ROR, 2, Offset},
84119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r12 minus r6 ROR 2 Offset",
84219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r4_r12_minus_r6_ROR_2_Offset",
84319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
84419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
84519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r4, minus, r11, LSL, 6, Offset},
84619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r4 minus r11 LSL 6 Offset",
84719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r6_r4_minus_r11_LSL_6_Offset",
84819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
84919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
85019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r0, minus, r12, LSL, 19, Offset},
85119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r0 minus r12 LSL 19 Offset",
85219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r10_r0_minus_r12_LSL_19_Offset",
85319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
85419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
85519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r3, minus, r14, LSL, 20, Offset},
85619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r3 minus r14 LSL 20 Offset",
85719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r10_r3_minus_r14_LSL_20_Offset",
85819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
85919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
86019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r3, minus, r12, LSL, 20, Offset},
86119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r3 minus r12 LSL 20 Offset",
86219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r10_r3_minus_r12_LSL_20_Offset",
86319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
86419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
86519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r10, minus, r12, ROR, 29, Offset},
86619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r10 minus r12 ROR 29 Offset",
86719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r14_r10_minus_r12_ROR_29_Offset",
86819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
86919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
87019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r11, minus, r5, ROR, 21, Offset},
87119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r11 minus r5 ROR 21 Offset",
87219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r2_r11_minus_r5_ROR_21_Offset",
87319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
87419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
87519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r5, minus, r1, ROR, 22, Offset},
87619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r5 minus r1 ROR 22 Offset",
87719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r14_r5_minus_r1_ROR_22_Offset",
87819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
87919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
88019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r4, minus, r10, LSL, 18, Offset},
88119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r4 minus r10 LSL 18 Offset",
88219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r7_r4_minus_r10_LSL_18_Offset",
88319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
88419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
88519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r2, minus, r1, LSL, 9, Offset},
88619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r2 minus r1 LSL 9 Offset",
88719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r4_r2_minus_r1_LSL_9_Offset",
88819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
88919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
89019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r12, minus, r8, LSL, 11, Offset},
89119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r12 minus r8 LSL 11 Offset",
89219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r10_r12_minus_r8_LSL_11_Offset",
89319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
89419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
89519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r4, minus, r1, ROR, 30, Offset},
89619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r4 minus r1 ROR 30 Offset",
89719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r5_r4_minus_r1_ROR_30_Offset",
89819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
89919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
90019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r0, minus, r10, ROR, 10, Offset},
90119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r0 minus r10 ROR 10 Offset",
90219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r11_r0_minus_r10_ROR_10_Offset",
90319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
90419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
90519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r3, minus, r6, ROR, 25, Offset},
90619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r3 minus r6 ROR 25 Offset",
90719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r11_r3_minus_r6_ROR_25_Offset",
90819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
90919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
91019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r12, minus, r1, ROR, 27, Offset},
91119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r12 minus r1 ROR 27 Offset",
91219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r3_r12_minus_r1_ROR_27_Offset",
91319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
91419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
91519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r1, minus, r14, LSL, 5, Offset},
91619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r1 minus r14 LSL 5 Offset",
91719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r3_r1_minus_r14_LSL_5_Offset",
91819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
91919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
92019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r1, minus, r7, LSL, 27, Offset},
92119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r1 minus r7 LSL 27 Offset",
92219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r9_r1_minus_r7_LSL_27_Offset",
92319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
92419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
92519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r9, minus, r6, LSL, 4, Offset},
92619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r9 minus r6 LSL 4 Offset",
92719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r2_r9_minus_r6_LSL_4_Offset",
92819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
92919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
93019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r6, minus, r1, ROR, 19, Offset},
93119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r6 minus r1 ROR 19 Offset",
93219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r4_r6_minus_r1_ROR_19_Offset",
93319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
93419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
93519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r8, minus, r6, LSL, 5, Offset},
93619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r8 minus r6 LSL 5 Offset",
93719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r14_r8_minus_r6_LSL_5_Offset",
93819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
93919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
94019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r0, minus, r12, LSL, 16, Offset},
94119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r0 minus r12 LSL 16 Offset",
94219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r5_r0_minus_r12_LSL_16_Offset",
94319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
94419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
94519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r4, minus, r12, ROR, 29, Offset},
94619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r4 minus r12 ROR 29 Offset",
94719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r5_r4_minus_r12_ROR_29_Offset",
94819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
94919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
95019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r10, minus, r1, LSL, 2, Offset},
95119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r10 minus r1 LSL 2 Offset",
95219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r4_r10_minus_r1_LSL_2_Offset",
95319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
95419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
95519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r5, minus, r12, ROR, 8, Offset},
95619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r5 minus r12 ROR 8 Offset",
95719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r6_r5_minus_r12_ROR_8_Offset",
95819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
95919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
96019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r11, minus, r0, ROR, 8, Offset},
96119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r11 minus r0 ROR 8 Offset",
96219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r1_r11_minus_r0_ROR_8_Offset",
96319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
96419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
96519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r9, minus, r5, ROR, 1, Offset},
96619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r9 minus r5 ROR 1 Offset",
96719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r10_r9_minus_r5_ROR_1_Offset",
96819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
96919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
97019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r2, minus, r7, LSL, 8, Offset},
97119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r2 minus r7 LSL 8 Offset",
97219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r14_r2_minus_r7_LSL_8_Offset",
97319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
97419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
97519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r12, minus, r2, LSL, 17, Offset},
97619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r12 minus r2 LSL 17 Offset",
97719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r3_r12_minus_r2_LSL_17_Offset",
97819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
97919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
98019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r6, minus, r7, LSL, 3, Offset},
98119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r6 minus r7 LSL 3 Offset",
98219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r11_r6_minus_r7_LSL_3_Offset",
98319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
98419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
98519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r14, minus, r10, LSL, 26, Offset},
98619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r14 minus r10 LSL 26 Offset",
98719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r2_r14_minus_r10_LSL_26_Offset",
98819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
98919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
99019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r3, minus, r11, LSL, 8, Offset},
99119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r3 minus r11 LSL 8 Offset",
99219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r6_r3_minus_r11_LSL_8_Offset",
99319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
99419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
99519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r1, minus, r7, LSL, 20, Offset},
99619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r1 minus r7 LSL 20 Offset",
99719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r9_r1_minus_r7_LSL_20_Offset",
99819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
99919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
100019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r11, minus, r12, ROR, 6, Offset},
100119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r11 minus r12 ROR 6 Offset",
100219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r1_r11_minus_r12_ROR_6_Offset",
100319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
100419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
100519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r6, minus, r14, LSL, 16, Offset},
100619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r6 minus r14 LSL 16 Offset",
100719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r7_r6_minus_r14_LSL_16_Offset",
100819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
100919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
101019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r0, minus, r10, ROR, 6, Offset},
101119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r0 minus r10 ROR 6 Offset",
101219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r12_r0_minus_r10_ROR_6_Offset",
101319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
101419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
101519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r12, minus, r10, ROR, 7, Offset},
101619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r12 minus r10 ROR 7 Offset",
101719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r11_r12_minus_r10_ROR_7_Offset",
101819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
101919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
102019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r5, minus, r7, LSL, 8, Offset},
102119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r5 minus r7 LSL 8 Offset",
102219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r12_r5_minus_r7_LSL_8_Offset",
102319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
102419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
102519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r0, minus, r7, ROR, 14, Offset},
102619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r0 minus r7 ROR 14 Offset",
102719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r9_r0_minus_r7_ROR_14_Offset",
102819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
102919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
103019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r1, minus, r6, LSL, 22, Offset},
103119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r1 minus r6 LSL 22 Offset",
103219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r12_r1_minus_r6_LSL_22_Offset",
103319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
103419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
103519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r7, minus, r10, LSL, 16, Offset},
103619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r7 minus r10 LSL 16 Offset",
103719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r11_r7_minus_r10_LSL_16_Offset",
103819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
103919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
104019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r10, minus, r9, LSL, 8, Offset},
104119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r10 minus r9 LSL 8 Offset",
104219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r6_r10_minus_r9_LSL_8_Offset",
104319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
104419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
104519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r6, minus, r7, LSL, 18, Offset},
104619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r6 minus r7 LSL 18 Offset",
104719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r2_r6_minus_r7_LSL_18_Offset",
104819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
104919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
105019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r9, minus, r6, ROR, 31, Offset},
105119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r9 minus r6 ROR 31 Offset",
105219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r7_r9_minus_r6_ROR_31_Offset",
105319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
105419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
105519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r9, minus, r11, LSL, 16, Offset},
105619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r9 minus r11 LSL 16 Offset",
105719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r10_r9_minus_r11_LSL_16_Offset",
105819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
105919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
106019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r1, minus, r3, ROR, 8, Offset},
106119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r1 minus r3 ROR 8 Offset",
106219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r11_r1_minus_r3_ROR_8_Offset",
106319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
106419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
106519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r3, minus, r1, LSL, 1, Offset},
106619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r3 minus r1 LSL 1 Offset",
106719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r14_r3_minus_r1_LSL_1_Offset",
106819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
106919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
107019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r10, minus, r6, ROR, 19, Offset},
107119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r10 minus r6 ROR 19 Offset",
107219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r1_r10_minus_r6_ROR_19_Offset",
107319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
107419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
107519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r11, minus, r5, ROR, 24, Offset},
107619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r11 minus r5 ROR 24 Offset",
107719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r2_r11_minus_r5_ROR_24_Offset",
107819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
107919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
108019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r9, minus, r2, LSL, 19, Offset},
108119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r9 minus r2 LSL 19 Offset",
108219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r3_r9_minus_r2_LSL_19_Offset",
108319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
108419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
108519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r5, minus, r10, LSL, 25, Offset},
108619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r5 minus r10 LSL 25 Offset",
108719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r14_r5_minus_r10_LSL_25_Offset",
108819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
108919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
109019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r6, minus, r7, ROR, 22, Offset},
109119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r6 minus r7 ROR 22 Offset",
109219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r4_r6_minus_r7_ROR_22_Offset",
109319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
109419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
109519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r4, minus, r6, LSL, 9, Offset},
109619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r4 minus r6 LSL 9 Offset",
109719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r8_r4_minus_r6_LSL_9_Offset",
109819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
109919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
110019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r5, minus, r9, LSL, 24, Offset},
110119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r5 minus r9 LSL 24 Offset",
110219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r3_r5_minus_r9_LSL_24_Offset",
110319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
110419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
110519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r7, minus, r14, ROR, 29, Offset},
110619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r7 minus r14 ROR 29 Offset",
110719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r11_r7_minus_r14_ROR_29_Offset",
110819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
110919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
111019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r10, minus, r0, ROR, 10, Offset},
111119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r10 minus r0 ROR 10 Offset",
111219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r9_r10_minus_r0_ROR_10_Offset",
111319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
111419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
111519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r3, minus, r2, LSL, 2, Offset},
111619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r3 minus r2 LSL 2 Offset",
111719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r1_r3_minus_r2_LSL_2_Offset",
111819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
111919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
112019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r9, minus, r10, LSL, 5, Offset},
112119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r9 minus r10 LSL 5 Offset",
112219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r1_r9_minus_r10_LSL_5_Offset",
112319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
112419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
112519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r8, minus, r0, LSL, 9, Offset},
112619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r8 minus r0 LSL 9 Offset",
112719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r6_r8_minus_r0_LSL_9_Offset",
112819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
112919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
113019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r14, minus, r8, ROR, 28, Offset},
113119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r14 minus r8 ROR 28 Offset",
113219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r6_r14_minus_r8_ROR_28_Offset",
113319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
113419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
113519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r12, minus, r7, LSL, 30, Offset},
113619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r12 minus r7 LSL 30 Offset",
113719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r4_r12_minus_r7_LSL_30_Offset",
113819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
113919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
114019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r8, minus, r0, ROR, 26, Offset},
114119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r8 minus r0 ROR 26 Offset",
114219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r6_r8_minus_r0_ROR_26_Offset",
114319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
114419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
114519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r8, minus, r9, LSL, 17, Offset},
114619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r8 minus r9 LSL 17 Offset",
114719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r2_r8_minus_r9_LSL_17_Offset",
114819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
114919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
115019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r14, minus, r0, LSL, 5, Offset},
115119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r14 minus r0 LSL 5 Offset",
115219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r9_r14_minus_r0_LSL_5_Offset",
115319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
115419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
115519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r3, minus, r9, ROR, 27, Offset},
115619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r3 minus r9 ROR 27 Offset",
115719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r11_r3_minus_r9_ROR_27_Offset",
115819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
115919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
116019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r8, minus, r3, ROR, 19, Offset},
116119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r8 minus r3 ROR 19 Offset",
116219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r6_r8_minus_r3_ROR_19_Offset",
116319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
116419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
116519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r7, minus, r1, LSL, 7, Offset},
116619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r7 minus r1 LSL 7 Offset",
116719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r0_r7_minus_r1_LSL_7_Offset",
116819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
116919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
117019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r7, minus, r1, LSL, 14, Offset},
117119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r7 minus r1 LSL 14 Offset",
117219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r8_r7_minus_r1_LSL_14_Offset",
117319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
117419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
117519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r4, minus, r8, LSL, 15, Offset},
117619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r4 minus r8 LSL 15 Offset",
117719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r7_r4_minus_r8_LSL_15_Offset",
117819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
117919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
118019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r11, minus, r1, ROR, 21, Offset},
118119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r11 minus r1 ROR 21 Offset",
118219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r14_r11_minus_r1_ROR_21_Offset",
118319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
118419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
118519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r14, minus, r6, ROR, 6, Offset},
118619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r14 minus r6 ROR 6 Offset",
118719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r12_r14_minus_r6_ROR_6_Offset",
118819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
118919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
119019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r12, minus, r14, LSL, 25, Offset},
119119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r12 minus r14 LSL 25 Offset",
119219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r4_r12_minus_r14_LSL_25_Offset",
119319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
119419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
119519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r12, minus, r2, ROR, 2, Offset},
119619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r12 minus r2 ROR 2 Offset",
119719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r6_r12_minus_r2_ROR_2_Offset",
119819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
119919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
120019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r1, minus, r8, LSL, 26, Offset},
120119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r1 minus r8 LSL 26 Offset",
120219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r11_r1_minus_r8_LSL_26_Offset",
120319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
120419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
120519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r1, minus, r10, ROR, 29, Offset},
120619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r1 minus r10 ROR 29 Offset",
120719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r9_r1_minus_r10_ROR_29_Offset",
120819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
120919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
121019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r6, minus, r4, LSL, 23, Offset},
121119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r6 minus r4 LSL 23 Offset",
121219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r0_r6_minus_r4_LSL_23_Offset",
121319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
121419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
121519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r8, minus, r14, LSL, 26, Offset},
121619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r8 minus r14 LSL 26 Offset",
121719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r12_r8_minus_r14_LSL_26_Offset",
121819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
121919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
122019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r11, minus, r2, ROR, 23, Offset},
122119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r11 minus r2 ROR 23 Offset",
122219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r0_r11_minus_r2_ROR_23_Offset",
122319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
122419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
122519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r4, minus, r2, ROR, 14, Offset},
122619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r4 minus r2 ROR 14 Offset",
122719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r11_r4_minus_r2_ROR_14_Offset",
122819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
122919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
123019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r10, minus, r14, ROR, 29, Offset},
123119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r10 minus r14 ROR 29 Offset",
123219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r4_r10_minus_r14_ROR_29_Offset",
123319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
123419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
123519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r0, minus, r12, ROR, 5, Offset},
123619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r0 minus r12 ROR 5 Offset",
123719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r7_r0_minus_r12_ROR_5_Offset",
123819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
123919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
124019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r12, minus, r0, ROR, 15, Offset},
124119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r12 minus r0 ROR 15 Offset",
124219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r6_r12_minus_r0_ROR_15_Offset",
124319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
124419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
124519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r1, minus, r7, ROR, 22, Offset},
124619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r1 minus r7 ROR 22 Offset",
124719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r6_r1_minus_r7_ROR_22_Offset",
124819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
124919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
125019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r3, minus, r14, LSL, 7, Offset},
125119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r3 minus r14 LSL 7 Offset",
125219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r9_r3_minus_r14_LSL_7_Offset",
125319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
125419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
125519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r0, minus, r7, ROR, 19, Offset},
125619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r0 minus r7 ROR 19 Offset",
125719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r12_r0_minus_r7_ROR_19_Offset",
125819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
125919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
126019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r8, minus, r11, ROR, 21, Offset},
126119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r8 minus r11 ROR 21 Offset",
126219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r9_r8_minus_r11_ROR_21_Offset",
126319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
126419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
126519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r2, minus, r3, LSL, 20, Offset},
126619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r2 minus r3 LSL 20 Offset",
126719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r9_r2_minus_r3_LSL_20_Offset",
126819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
126919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
127019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r2, minus, r5, ROR, 25, Offset},
127119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r2 minus r5 ROR 25 Offset",
127219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r12_r2_minus_r5_ROR_25_Offset",
127319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
127419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
127519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r7, minus, r3, LSL, 15, Offset},
127619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r7 minus r3 LSL 15 Offset",
127719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r6_r7_minus_r3_LSL_15_Offset",
127819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
127919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
128019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r12, minus, r14, LSL, 12, Offset},
128119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r12 minus r14 LSL 12 Offset",
128219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r1_r12_minus_r14_LSL_12_Offset",
128319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
128419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
128519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r4, minus, r11, ROR, 31, Offset},
128619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r4 minus r11 ROR 31 Offset",
128719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r14_r4_minus_r11_ROR_31_Offset",
128819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
128919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
129019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r5, minus, r2, LSL, 27, Offset},
129119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r5 minus r2 LSL 27 Offset",
129219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r14_r5_minus_r2_LSL_27_Offset",
129319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
129419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
129519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r6, minus, r12, LSL, 31, Offset},
129619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r6 minus r12 LSL 31 Offset",
129719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r9_r6_minus_r12_LSL_31_Offset",
129819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
129919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
130019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r8, minus, r11, ROR, 31, Offset},
130119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r8 minus r11 ROR 31 Offset",
130219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r4_r8_minus_r11_ROR_31_Offset",
130319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
130419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
130519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r12, minus, r10, ROR, 25, Offset},
130619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r12 minus r10 ROR 25 Offset",
130719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r0_r12_minus_r10_ROR_25_Offset",
130819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
130919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
131019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r0, minus, r7, ROR, 5, Offset},
131119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r0 minus r7 ROR 5 Offset",
131219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r1_r0_minus_r7_ROR_5_Offset",
131319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
131419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
131519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r4, minus, r11, LSL, 26, Offset},
131619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r4 minus r11 LSL 26 Offset",
131719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r12_r4_minus_r11_LSL_26_Offset",
131819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
131919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
132019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r3, minus, r4, LSL, 10, Offset},
132119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r3 minus r4 LSL 10 Offset",
132219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r2_r3_minus_r4_LSL_10_Offset",
132319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
132419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
132519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r10, minus, r6, LSL, 8, Offset},
132619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r10 minus r6 LSL 8 Offset",
132719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r1_r10_minus_r6_LSL_8_Offset",
132819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
132919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
133019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r10, minus, r2, LSL, 8, Offset},
133119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r10 minus r2 LSL 8 Offset",
133219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativeOffset_al_r7_r10_minus_r2_LSL_8_Offset",
133319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativeOffset),
133419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativeOffset},
133519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r4, plus, r0, ROR, 19, PostIndex},
133619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r4 plus r0 ROR 19 PostIndex",
133719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r9_r4_plus_r0_ROR_19_PostIndex",
133819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
133919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
134019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r3, plus, r8, LSL, 10, PostIndex},
134119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r3 plus r8 LSL 10 PostIndex",
134219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r2_r3_plus_r8_LSL_10_PostIndex",
134319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
134419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
134519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r14, plus, r5, LSL, 31, PostIndex},
134619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r14 plus r5 LSL 31 PostIndex",
134719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r11_r14_plus_r5_LSL_31_PostIndex",
134819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
134919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
135019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r14, plus, r9, ROR, 11, PostIndex},
135119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r14 plus r9 ROR 11 PostIndex",
135219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r5_r14_plus_r9_ROR_11_PostIndex",
135319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
135419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
135519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r1, plus, r5, LSL, 11, PostIndex},
135619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r1 plus r5 LSL 11 PostIndex",
135719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r6_r1_plus_r5_LSL_11_PostIndex",
135819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
135919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
136019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r2, plus, r14, LSL, 19, PostIndex},
136119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r2 plus r14 LSL 19 PostIndex",
136219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r3_r2_plus_r14_LSL_19_PostIndex",
136319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
136419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
136519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r11, plus, r10, ROR, 6, PostIndex},
136619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r11 plus r10 ROR 6 PostIndex",
136719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r12_r11_plus_r10_ROR_6_PostIndex",
136819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
136919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
137019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r0, plus, r10, LSL, 18, PostIndex},
137119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r0 plus r10 LSL 18 PostIndex",
137219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r5_r0_plus_r10_LSL_18_PostIndex",
137319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
137419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
137519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r11, plus, r8, ROR, 6, PostIndex},
137619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r11 plus r8 ROR 6 PostIndex",
137719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r4_r11_plus_r8_ROR_6_PostIndex",
137819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
137919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
138019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r9, plus, r14, ROR, 15, PostIndex},
138119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r9 plus r14 ROR 15 PostIndex",
138219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r6_r9_plus_r14_ROR_15_PostIndex",
138319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
138419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
138519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r10, plus, r2, LSL, 6, PostIndex},
138619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r10 plus r2 LSL 6 PostIndex",
138719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r3_r10_plus_r2_LSL_6_PostIndex",
138819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
138919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
139019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r5, plus, r8, LSL, 14, PostIndex},
139119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r5 plus r8 LSL 14 PostIndex",
139219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r3_r5_plus_r8_LSL_14_PostIndex",
139319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
139419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
139519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r12, plus, r5, LSL, 14, PostIndex},
139619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r12 plus r5 LSL 14 PostIndex",
139719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r8_r12_plus_r5_LSL_14_PostIndex",
139819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
139919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
140019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r4, plus, r6, LSL, 3, PostIndex},
140119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r4 plus r6 LSL 3 PostIndex",
140219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r11_r4_plus_r6_LSL_3_PostIndex",
140319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
140419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
140519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r12, plus, r11, ROR, 16, PostIndex},
140619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r12 plus r11 ROR 16 PostIndex",
140719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r8_r12_plus_r11_ROR_16_PostIndex",
140819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
140919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
141019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r7, plus, r3, LSL, 26, PostIndex},
141119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r7 plus r3 LSL 26 PostIndex",
141219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r14_r7_plus_r3_LSL_26_PostIndex",
141319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
141419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
141519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r5, plus, r0, LSL, 13, PostIndex},
141619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r5 plus r0 LSL 13 PostIndex",
141719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r2_r5_plus_r0_LSL_13_PostIndex",
141819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
141919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
142019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r14, plus, r10, ROR, 20, PostIndex},
142119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r14 plus r10 ROR 20 PostIndex",
142219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r1_r14_plus_r10_ROR_20_PostIndex",
142319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
142419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
142519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r0, plus, r12, LSL, 4, PostIndex},
142619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r0 plus r12 LSL 4 PostIndex",
142719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r9_r0_plus_r12_LSL_4_PostIndex",
142819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
142919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
143019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r1, plus, r12, LSL, 23, PostIndex},
143119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r1 plus r12 LSL 23 PostIndex",
143219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r8_r1_plus_r12_LSL_23_PostIndex",
143319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
143419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
143519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r12, plus, r1, ROR, 25, PostIndex},
143619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r12 plus r1 ROR 25 PostIndex",
143719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r10_r12_plus_r1_ROR_25_PostIndex",
143819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
143919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
144019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r4, plus, r5, LSL, 30, PostIndex},
144119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r4 plus r5 LSL 30 PostIndex",
144219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r9_r4_plus_r5_LSL_30_PostIndex",
144319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
144419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
144519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r2, plus, r0, LSL, 6, PostIndex},
144619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r2 plus r0 LSL 6 PostIndex",
144719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r6_r2_plus_r0_LSL_6_PostIndex",
144819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
144919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
145019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r12, plus, r5, ROR, 19, PostIndex},
145119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r12 plus r5 ROR 19 PostIndex",
145219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r9_r12_plus_r5_ROR_19_PostIndex",
145319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
145419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
145519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r7, plus, r14, LSL, 16, PostIndex},
145619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r7 plus r14 LSL 16 PostIndex",
145719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r11_r7_plus_r14_LSL_16_PostIndex",
145819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
145919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
146019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r4, plus, r3, ROR, 7, PostIndex},
146119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r4 plus r3 ROR 7 PostIndex",
146219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r1_r4_plus_r3_ROR_7_PostIndex",
146319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
146419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
146519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r1, plus, r14, ROR, 3, PostIndex},
146619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r1 plus r14 ROR 3 PostIndex",
146719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r3_r1_plus_r14_ROR_3_PostIndex",
146819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
146919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
147019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r0, plus, r4, ROR, 8, PostIndex},
147119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r0 plus r4 ROR 8 PostIndex",
147219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r7_r0_plus_r4_ROR_8_PostIndex",
147319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
147419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
147519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r8, plus, r1, ROR, 27, PostIndex},
147619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r8 plus r1 ROR 27 PostIndex",
147719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r0_r8_plus_r1_ROR_27_PostIndex",
147819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
147919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
148019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r4, plus, r11, LSL, 24, PostIndex},
148119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r4 plus r11 LSL 24 PostIndex",
148219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r5_r4_plus_r11_LSL_24_PostIndex",
148319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
148419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
148519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r14, plus, r5, ROR, 12, PostIndex},
148619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r14 plus r5 ROR 12 PostIndex",
148719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r8_r14_plus_r5_ROR_12_PostIndex",
148819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
148919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
149019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r7, plus, r5, LSL, 3, PostIndex},
149119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r7 plus r5 LSL 3 PostIndex",
149219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r11_r7_plus_r5_LSL_3_PostIndex",
149319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
149419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
149519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r5, plus, r8, ROR, 16, PostIndex},
149619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r5 plus r8 ROR 16 PostIndex",
149719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r14_r5_plus_r8_ROR_16_PostIndex",
149819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
149919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
150019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r7, plus, r12, ROR, 3, PostIndex},
150119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r7 plus r12 ROR 3 PostIndex",
150219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r5_r7_plus_r12_ROR_3_PostIndex",
150319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
150419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
150519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r9, plus, r11, LSL, 15, PostIndex},
150619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r9 plus r11 LSL 15 PostIndex",
150719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r8_r9_plus_r11_LSL_15_PostIndex",
150819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
150919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
151019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r12, plus, r3, LSL, 5, PostIndex},
151119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r12 plus r3 LSL 5 PostIndex",
151219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r4_r12_plus_r3_LSL_5_PostIndex",
151319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
151419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
151519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r1, plus, r2, ROR, 5, PostIndex},
151619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r1 plus r2 ROR 5 PostIndex",
151719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r8_r1_plus_r2_ROR_5_PostIndex",
151819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
151919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
152019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r7, plus, r0, LSL, 15, PostIndex},
152119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r7 plus r0 LSL 15 PostIndex",
152219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r11_r7_plus_r0_LSL_15_PostIndex",
152319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
152419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
152519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r1, plus, r5, ROR, 6, PostIndex},
152619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r1 plus r5 ROR 6 PostIndex",
152719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r6_r1_plus_r5_ROR_6_PostIndex",
152819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
152919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
153019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r11, plus, r4, ROR, 28, PostIndex},
153119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r11 plus r4 ROR 28 PostIndex",
153219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r3_r11_plus_r4_ROR_28_PostIndex",
153319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
153419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
153519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r12, plus, r0, ROR, 18, PostIndex},
153619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r12 plus r0 ROR 18 PostIndex",
153719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r4_r12_plus_r0_ROR_18_PostIndex",
153819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
153919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
154019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r4, plus, r7, LSL, 7, PostIndex},
154119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r4 plus r7 LSL 7 PostIndex",
154219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r0_r4_plus_r7_LSL_7_PostIndex",
154319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
154419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
154519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r2, plus, r6, LSL, 21, PostIndex},
154619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r2 plus r6 LSL 21 PostIndex",
154719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r9_r2_plus_r6_LSL_21_PostIndex",
154819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
154919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
155019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r7, plus, r9, ROR, 9, PostIndex},
155119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r7 plus r9 ROR 9 PostIndex",
155219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r3_r7_plus_r9_ROR_9_PostIndex",
155319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
155419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
155519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r3, plus, r8, ROR, 11, PostIndex},
155619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r3 plus r8 ROR 11 PostIndex",
155719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r14_r3_plus_r8_ROR_11_PostIndex",
155819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
155919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
156019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r12, plus, r10, LSL, 22, PostIndex},
156119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r12 plus r10 LSL 22 PostIndex",
156219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r4_r12_plus_r10_LSL_22_PostIndex",
156319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
156419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
156519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r14, plus, r12, ROR, 21, PostIndex},
156619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r14 plus r12 ROR 21 PostIndex",
156719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r7_r14_plus_r12_ROR_21_PostIndex",
156819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
156919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
157019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r9, plus, r0, ROR, 2, PostIndex},
157119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r9 plus r0 ROR 2 PostIndex",
157219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r5_r9_plus_r0_ROR_2_PostIndex",
157319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
157419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
157519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r6, plus, r9, ROR, 1, PostIndex},
157619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r6 plus r9 ROR 1 PostIndex",
157719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r7_r6_plus_r9_ROR_1_PostIndex",
157819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
157919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
158019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r12, plus, r10, ROR, 18, PostIndex},
158119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r12 plus r10 ROR 18 PostIndex",
158219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r7_r12_plus_r10_ROR_18_PostIndex",
158319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
158419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
158519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r0, plus, r6, ROR, 18, PostIndex},
158619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r0 plus r6 ROR 18 PostIndex",
158719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r1_r0_plus_r6_ROR_18_PostIndex",
158819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
158919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
159019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r3, plus, r14, ROR, 17, PostIndex},
159119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r3 plus r14 ROR 17 PostIndex",
159219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r12_r3_plus_r14_ROR_17_PostIndex",
159319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
159419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
159519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r5, plus, r0, ROR, 18, PostIndex},
159619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r5 plus r0 ROR 18 PostIndex",
159719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r11_r5_plus_r0_ROR_18_PostIndex",
159819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
159919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
160019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r4, plus, r5, ROR, 14, PostIndex},
160119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r4 plus r5 ROR 14 PostIndex",
160219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r11_r4_plus_r5_ROR_14_PostIndex",
160319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
160419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
160519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r4, plus, r9, LSL, 4, PostIndex},
160619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r4 plus r9 LSL 4 PostIndex",
160719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r6_r4_plus_r9_LSL_4_PostIndex",
160819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
160919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
161019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r1, plus, r12, ROR, 26, PostIndex},
161119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r1 plus r12 ROR 26 PostIndex",
161219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r0_r1_plus_r12_ROR_26_PostIndex",
161319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
161419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
161519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r8, plus, r12, LSL, 23, PostIndex},
161619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r8 plus r12 LSL 23 PostIndex",
161719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r2_r8_plus_r12_LSL_23_PostIndex",
161819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
161919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
162019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r4, plus, r10, ROR, 22, PostIndex},
162119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r4 plus r10 ROR 22 PostIndex",
162219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r1_r4_plus_r10_ROR_22_PostIndex",
162319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
162419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
162519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r2, plus, r6, ROR, 24, PostIndex},
162619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r2 plus r6 ROR 24 PostIndex",
162719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r0_r2_plus_r6_ROR_24_PostIndex",
162819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
162919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
163019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r12, plus, r3, ROR, 1, PostIndex},
163119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r12 plus r3 ROR 1 PostIndex",
163219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r2_r12_plus_r3_ROR_1_PostIndex",
163319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
163419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
163519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r5, plus, r7, ROR, 6, PostIndex},
163619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r5 plus r7 ROR 6 PostIndex",
163719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r14_r5_plus_r7_ROR_6_PostIndex",
163819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
163919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
164019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r6, plus, r3, LSL, 14, PostIndex},
164119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r6 plus r3 LSL 14 PostIndex",
164219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r12_r6_plus_r3_LSL_14_PostIndex",
164319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
164419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
164519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r11, plus, r7, ROR, 18, PostIndex},
164619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r11 plus r7 ROR 18 PostIndex",
164719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r1_r11_plus_r7_ROR_18_PostIndex",
164819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
164919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
165019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r8, plus, r3, LSL, 18, PostIndex},
165119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r8 plus r3 LSL 18 PostIndex",
165219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r5_r8_plus_r3_LSL_18_PostIndex",
165319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
165419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
165519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r12, plus, r0, ROR, 26, PostIndex},
165619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r12 plus r0 ROR 26 PostIndex",
165719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r8_r12_plus_r0_ROR_26_PostIndex",
165819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
165919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
166019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r6, plus, r11, LSL, 22, PostIndex},
166119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r6 plus r11 LSL 22 PostIndex",
166219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r14_r6_plus_r11_LSL_22_PostIndex",
166319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
166419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
166519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r3, plus, r11, LSL, 15, PostIndex},
166619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r3 plus r11 LSL 15 PostIndex",
166719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r7_r3_plus_r11_LSL_15_PostIndex",
166819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
166919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
167019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r8, plus, r4, LSL, 28, PostIndex},
167119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r8 plus r4 LSL 28 PostIndex",
167219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r0_r8_plus_r4_LSL_28_PostIndex",
167319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
167419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
167519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r8, plus, r4, LSL, 28, PostIndex},
167619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r8 plus r4 LSL 28 PostIndex",
167719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r7_r8_plus_r4_LSL_28_PostIndex",
167819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
167919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
168019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r4, plus, r14, LSL, 17, PostIndex},
168119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r4 plus r14 LSL 17 PostIndex",
168219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r5_r4_plus_r14_LSL_17_PostIndex",
168319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
168419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
168519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r8, plus, r3, LSL, 1, PostIndex},
168619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r8 plus r3 LSL 1 PostIndex",
168719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r2_r8_plus_r3_LSL_1_PostIndex",
168819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
168919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
169019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r3, plus, r4, ROR, 5, PostIndex},
169119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r3 plus r4 ROR 5 PostIndex",
169219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r9_r3_plus_r4_ROR_5_PostIndex",
169319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
169419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
169519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r11, plus, r3, ROR, 26, PostIndex},
169619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r11 plus r3 ROR 26 PostIndex",
169719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r5_r11_plus_r3_ROR_26_PostIndex",
169819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
169919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
170019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r6, plus, r11, ROR, 9, PostIndex},
170119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r6 plus r11 ROR 9 PostIndex",
170219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r3_r6_plus_r11_ROR_9_PostIndex",
170319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
170419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
170519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r6, plus, r9, ROR, 24, PostIndex},
170619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r6 plus r9 ROR 24 PostIndex",
170719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r3_r6_plus_r9_ROR_24_PostIndex",
170819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
170919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
171019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r4, plus, r11, LSL, 1, PostIndex},
171119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r4 plus r11 LSL 1 PostIndex",
171219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r7_r4_plus_r11_LSL_1_PostIndex",
171319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
171419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
171519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r11, plus, r8, LSL, 17, PostIndex},
171619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r11 plus r8 LSL 17 PostIndex",
171719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r2_r11_plus_r8_LSL_17_PostIndex",
171819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
171919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
172019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r10, plus, r7, ROR, 26, PostIndex},
172119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r10 plus r7 ROR 26 PostIndex",
172219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r6_r10_plus_r7_ROR_26_PostIndex",
172319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
172419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
172519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r0, plus, r11, ROR, 5, PostIndex},
172619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r0 plus r11 ROR 5 PostIndex",
172719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r4_r0_plus_r11_ROR_5_PostIndex",
172819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
172919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
173019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r10, plus, r7, ROR, 26, PostIndex},
173119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r10 plus r7 ROR 26 PostIndex",
173219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r1_r10_plus_r7_ROR_26_PostIndex",
173319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
173419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
173519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r5, plus, r12, LSL, 20, PostIndex},
173619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r5 plus r12 LSL 20 PostIndex",
173719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r9_r5_plus_r12_LSL_20_PostIndex",
173819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
173919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
174019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r12, plus, r10, ROR, 28, PostIndex},
174119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r12 plus r10 ROR 28 PostIndex",
174219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r8_r12_plus_r10_ROR_28_PostIndex",
174319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
174419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
174519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r8, plus, r0, LSL, 14, PostIndex},
174619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r8 plus r0 LSL 14 PostIndex",
174719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r4_r8_plus_r0_LSL_14_PostIndex",
174819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
174919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
175019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r12, plus, r8, ROR, 2, PostIndex},
175119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r12 plus r8 ROR 2 PostIndex",
175219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r14_r12_plus_r8_ROR_2_PostIndex",
175319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
175419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
175519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r7, plus, r0, LSL, 17, PostIndex},
175619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r7 plus r0 LSL 17 PostIndex",
175719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r12_r7_plus_r0_LSL_17_PostIndex",
175819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
175919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
176019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r6, plus, r14, ROR, 19, PostIndex},
176119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r6 plus r14 ROR 19 PostIndex",
176219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r1_r6_plus_r14_ROR_19_PostIndex",
176319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
176419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
176519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r11, plus, r6, LSL, 10, PostIndex},
176619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r11 plus r6 LSL 10 PostIndex",
176719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r9_r11_plus_r6_LSL_10_PostIndex",
176819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
176919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
177019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r2, plus, r12, ROR, 12, PostIndex},
177119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r2 plus r12 ROR 12 PostIndex",
177219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r0_r2_plus_r12_ROR_12_PostIndex",
177319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
177419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
177519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r2, plus, r12, LSL, 31, PostIndex},
177619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r2 plus r12 LSL 31 PostIndex",
177719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r9_r2_plus_r12_LSL_31_PostIndex",
177819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
177919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
178019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r4, plus, r7, LSL, 31, PostIndex},
178119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r4 plus r7 LSL 31 PostIndex",
178219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r10_r4_plus_r7_LSL_31_PostIndex",
178319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
178419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
178519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r7, plus, r5, ROR, 29, PostIndex},
178619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r7 plus r5 ROR 29 PostIndex",
178719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r3_r7_plus_r5_ROR_29_PostIndex",
178819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
178919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
179019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r3, plus, r8, ROR, 12, PostIndex},
179119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r3 plus r8 ROR 12 PostIndex",
179219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r1_r3_plus_r8_ROR_12_PostIndex",
179319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
179419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
179519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r11, plus, r3, ROR, 23, PostIndex},
179619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r11 plus r3 ROR 23 PostIndex",
179719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r9_r11_plus_r3_ROR_23_PostIndex",
179819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
179919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
180019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r3, plus, r8, LSL, 20, PostIndex},
180119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r3 plus r8 LSL 20 PostIndex",
180219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r11_r3_plus_r8_LSL_20_PostIndex",
180319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
180419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
180519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r2, plus, r10, LSL, 17, PostIndex},
180619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r2 plus r10 LSL 17 PostIndex",
180719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r11_r2_plus_r10_LSL_17_PostIndex",
180819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
180919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
181019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r3, plus, r7, LSL, 5, PostIndex},
181119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r3 plus r7 LSL 5 PostIndex",
181219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r2_r3_plus_r7_LSL_5_PostIndex",
181319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
181419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
181519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r2, plus, r12, ROR, 26, PostIndex},
181619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r2 plus r12 ROR 26 PostIndex",
181719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r14_r2_plus_r12_ROR_26_PostIndex",
181819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
181919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
182019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r4, plus, r0, ROR, 18, PostIndex},
182119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r4 plus r0 ROR 18 PostIndex",
182219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r12_r4_plus_r0_ROR_18_PostIndex",
182319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
182419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
182519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r8, plus, r14, LSL, 15, PostIndex},
182619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r8 plus r14 LSL 15 PostIndex",
182719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r4_r8_plus_r14_LSL_15_PostIndex",
182819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
182919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
183019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r7, plus, r2, ROR, 25, PostIndex},
183119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r7 plus r2 ROR 25 PostIndex",
183219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePostIndex_al_r6_r7_plus_r2_ROR_25_PostIndex",
183319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePostIndex),
183419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePostIndex},
183519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r4, minus, r2, ROR, 11, PostIndex},
183619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r4 minus r2 ROR 11 PostIndex",
183719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r11_r4_minus_r2_ROR_11_PostIndex",
183819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
183919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
184019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r11, minus, r12, ROR, 8, PostIndex},
184119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r11 minus r12 ROR 8 PostIndex",
184219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r5_r11_minus_r12_ROR_8_PostIndex",
184319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
184419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
184519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r6, minus, r0, ROR, 26, PostIndex},
184619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r6 minus r0 ROR 26 PostIndex",
184719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r4_r6_minus_r0_ROR_26_PostIndex",
184819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
184919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
185019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r8, minus, r0, LSL, 12, PostIndex},
185119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r8 minus r0 LSL 12 PostIndex",
185219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r11_r8_minus_r0_LSL_12_PostIndex",
185319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
185419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
185519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r7, minus, r3, ROR, 10, PostIndex},
185619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r7 minus r3 ROR 10 PostIndex",
185719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r2_r7_minus_r3_ROR_10_PostIndex",
185819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
185919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
186019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r14, minus, r8, LSL, 19, PostIndex},
186119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r14 minus r8 LSL 19 PostIndex",
186219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r2_r14_minus_r8_LSL_19_PostIndex",
186319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
186419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
186519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r3, minus, r6, ROR, 23, PostIndex},
186619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r3 minus r6 ROR 23 PostIndex",
186719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r9_r3_minus_r6_ROR_23_PostIndex",
186819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
186919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
187019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r5, minus, r14, LSL, 18, PostIndex},
187119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r5 minus r14 LSL 18 PostIndex",
187219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r6_r5_minus_r14_LSL_18_PostIndex",
187319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
187419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
187519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r0, minus, r9, ROR, 13, PostIndex},
187619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r0 minus r9 ROR 13 PostIndex",
187719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r12_r0_minus_r9_ROR_13_PostIndex",
187819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
187919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
188019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r12, minus, r6, LSL, 30, PostIndex},
188119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r12 minus r6 LSL 30 PostIndex",
188219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r3_r12_minus_r6_LSL_30_PostIndex",
188319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
188419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
188519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r9, minus, r3, LSL, 21, PostIndex},
188619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r9 minus r3 LSL 21 PostIndex",
188719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r5_r9_minus_r3_LSL_21_PostIndex",
188819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
188919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
189019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r5, minus, r4, LSL, 28, PostIndex},
189119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r5 minus r4 LSL 28 PostIndex",
189219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r8_r5_minus_r4_LSL_28_PostIndex",
189319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
189419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
189519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r6, minus, r2, ROR, 9, PostIndex},
189619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r6 minus r2 ROR 9 PostIndex",
189719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r1_r6_minus_r2_ROR_9_PostIndex",
189819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
189919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
190019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r6, minus, r2, ROR, 24, PostIndex},
190119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r6 minus r2 ROR 24 PostIndex",
190219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r14_r6_minus_r2_ROR_24_PostIndex",
190319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
190419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
190519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r12, minus, r11, ROR, 14, PostIndex},
190619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r12 minus r11 ROR 14 PostIndex",
190719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r5_r12_minus_r11_ROR_14_PostIndex",
190819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
190919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
191019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r6, minus, r5, ROR, 20, PostIndex},
191119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r6 minus r5 ROR 20 PostIndex",
191219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r0_r6_minus_r5_ROR_20_PostIndex",
191319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
191419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
191519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r3, minus, r7, ROR, 12, PostIndex},
191619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r3 minus r7 ROR 12 PostIndex",
191719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r8_r3_minus_r7_ROR_12_PostIndex",
191819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
191919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
192019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r3, minus, r4, ROR, 16, PostIndex},
192119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r3 minus r4 ROR 16 PostIndex",
192219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r6_r3_minus_r4_ROR_16_PostIndex",
192319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
192419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
192519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r10, minus, r5, ROR, 28, PostIndex},
192619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r10 minus r5 ROR 28 PostIndex",
192719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r6_r10_minus_r5_ROR_28_PostIndex",
192819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
192919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
193019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r4, minus, r6, LSL, 25, PostIndex},
193119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r4 minus r6 LSL 25 PostIndex",
193219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r0_r4_minus_r6_LSL_25_PostIndex",
193319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
193419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
193519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r1, minus, r9, ROR, 27, PostIndex},
193619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r1 minus r9 ROR 27 PostIndex",
193719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r12_r1_minus_r9_ROR_27_PostIndex",
193819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
193919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
194019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r3, minus, r14, LSL, 30, PostIndex},
194119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r3 minus r14 LSL 30 PostIndex",
194219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r12_r3_minus_r14_LSL_30_PostIndex",
194319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
194419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
194519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r0, minus, r2, LSL, 9, PostIndex},
194619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r0 minus r2 LSL 9 PostIndex",
194719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r4_r0_minus_r2_LSL_9_PostIndex",
194819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
194919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
195019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r0, minus, r2, LSL, 20, PostIndex},
195119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r0 minus r2 LSL 20 PostIndex",
195219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r12_r0_minus_r2_LSL_20_PostIndex",
195319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
195419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
195519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r3, minus, r5, ROR, 17, PostIndex},
195619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r3 minus r5 ROR 17 PostIndex",
195719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r7_r3_minus_r5_ROR_17_PostIndex",
195819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
195919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
196019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r14, minus, r12, LSL, 13, PostIndex},
196119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r14 minus r12 LSL 13 PostIndex",
196219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r11_r14_minus_r12_LSL_13_PostIndex",
196319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
196419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
196519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r8, minus, r10, LSL, 6, PostIndex},
196619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r8 minus r10 LSL 6 PostIndex",
196719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r1_r8_minus_r10_LSL_6_PostIndex",
196819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
196919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
197019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r5, minus, r0, ROR, 20, PostIndex},
197119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r5 minus r0 ROR 20 PostIndex",
197219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r3_r5_minus_r0_ROR_20_PostIndex",
197319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
197419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
197519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r10, minus, r7, LSL, 5, PostIndex},
197619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r10 minus r7 LSL 5 PostIndex",
197719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r0_r10_minus_r7_LSL_5_PostIndex",
197819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
197919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
198019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r4, minus, r3, LSL, 21, PostIndex},
198119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r4 minus r3 LSL 21 PostIndex",
198219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r11_r4_minus_r3_LSL_21_PostIndex",
198319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
198419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
198519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r0, minus, r4, ROR, 2, PostIndex},
198619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r0 minus r4 ROR 2 PostIndex",
198719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r5_r0_minus_r4_ROR_2_PostIndex",
198819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
198919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
199019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r5, minus, r7, LSL, 4, PostIndex},
199119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r5 minus r7 LSL 4 PostIndex",
199219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r2_r5_minus_r7_LSL_4_PostIndex",
199319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
199419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
199519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r8, minus, r2, LSL, 12, PostIndex},
199619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r8 minus r2 LSL 12 PostIndex",
199719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r4_r8_minus_r2_LSL_12_PostIndex",
199819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
199919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
200019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r2, minus, r10, LSL, 12, PostIndex},
200119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r2 minus r10 LSL 12 PostIndex",
200219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r4_r2_minus_r10_LSL_12_PostIndex",
200319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
200419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
200519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r1, minus, r4, LSL, 8, PostIndex},
200619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r1 minus r4 LSL 8 PostIndex",
200719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r2_r1_minus_r4_LSL_8_PostIndex",
200819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
200919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
201019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r12, minus, r5, LSL, 18, PostIndex},
201119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r12 minus r5 LSL 18 PostIndex",
201219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r1_r12_minus_r5_LSL_18_PostIndex",
201319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
201419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
201519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r12, minus, r3, LSL, 30, PostIndex},
201619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r12 minus r3 LSL 30 PostIndex",
201719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r5_r12_minus_r3_LSL_30_PostIndex",
201819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
201919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
202019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r8, minus, r12, LSL, 27, PostIndex},
202119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r8 minus r12 LSL 27 PostIndex",
202219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r1_r8_minus_r12_LSL_27_PostIndex",
202319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
202419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
202519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r8, minus, r5, LSL, 17, PostIndex},
202619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r8 minus r5 LSL 17 PostIndex",
202719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r12_r8_minus_r5_LSL_17_PostIndex",
202819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
202919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
203019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r8, minus, r9, LSL, 22, PostIndex},
203119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r8 minus r9 LSL 22 PostIndex",
203219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r10_r8_minus_r9_LSL_22_PostIndex",
203319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
203419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
203519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r1, minus, r2, LSL, 5, PostIndex},
203619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r1 minus r2 LSL 5 PostIndex",
203719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r4_r1_minus_r2_LSL_5_PostIndex",
203819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
203919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
204019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r1, minus, r9, LSL, 21, PostIndex},
204119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r1 minus r9 LSL 21 PostIndex",
204219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r6_r1_minus_r9_LSL_21_PostIndex",
204319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
204419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
204519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r1, minus, r12, LSL, 29, PostIndex},
204619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r1 minus r12 LSL 29 PostIndex",
204719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r3_r1_minus_r12_LSL_29_PostIndex",
204819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
204919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
205019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r4, minus, r9, ROR, 19, PostIndex},
205119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r4 minus r9 ROR 19 PostIndex",
205219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r0_r4_minus_r9_ROR_19_PostIndex",
205319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
205419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
205519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r14, minus, r1, ROR, 11, PostIndex},
205619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r14 minus r1 ROR 11 PostIndex",
205719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r7_r14_minus_r1_ROR_11_PostIndex",
205819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
205919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
206019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r10, minus, r12, ROR, 1, PostIndex},
206119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r10 minus r12 ROR 1 PostIndex",
206219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r4_r10_minus_r12_ROR_1_PostIndex",
206319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
206419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
206519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r11, minus, r5, LSL, 25, PostIndex},
206619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r11 minus r5 LSL 25 PostIndex",
206719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r0_r11_minus_r5_LSL_25_PostIndex",
206819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
206919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
207019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r4, minus, r9, ROR, 5, PostIndex},
207119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r4 minus r9 ROR 5 PostIndex",
207219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r6_r4_minus_r9_ROR_5_PostIndex",
207319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
207419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
207519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r6, minus, r4, ROR, 11, PostIndex},
207619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r6 minus r4 ROR 11 PostIndex",
207719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r9_r6_minus_r4_ROR_11_PostIndex",
207819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
207919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
208019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r12, minus, r4, LSL, 25, PostIndex},
208119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r12 minus r4 LSL 25 PostIndex",
208219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r6_r12_minus_r4_LSL_25_PostIndex",
208319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
208419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
208519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r12, minus, r0, ROR, 27, PostIndex},
208619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r12 minus r0 ROR 27 PostIndex",
208719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r7_r12_minus_r0_ROR_27_PostIndex",
208819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
208919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
209019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r14, minus, r11, LSL, 24, PostIndex},
209119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r14 minus r11 LSL 24 PostIndex",
209219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r4_r14_minus_r11_LSL_24_PostIndex",
209319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
209419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
209519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r8, minus, r12, ROR, 4, PostIndex},
209619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r8 minus r12 ROR 4 PostIndex",
209719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r7_r8_minus_r12_ROR_4_PostIndex",
209819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
209919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
210019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r10, minus, r6, ROR, 1, PostIndex},
210119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r10 minus r6 ROR 1 PostIndex",
210219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r2_r10_minus_r6_ROR_1_PostIndex",
210319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
210419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
210519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r8, minus, r7, LSL, 4, PostIndex},
210619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r8 minus r7 LSL 4 PostIndex",
210719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r14_r8_minus_r7_LSL_4_PostIndex",
210819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
210919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
211019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r6, minus, r14, ROR, 8, PostIndex},
211119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r6 minus r14 ROR 8 PostIndex",
211219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r12_r6_minus_r14_ROR_8_PostIndex",
211319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
211419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
211519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r8, minus, r5, ROR, 27, PostIndex},
211619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r8 minus r5 ROR 27 PostIndex",
211719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r7_r8_minus_r5_ROR_27_PostIndex",
211819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
211919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
212019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r2, minus, r10, LSL, 8, PostIndex},
212119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r2 minus r10 LSL 8 PostIndex",
212219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r3_r2_minus_r10_LSL_8_PostIndex",
212319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
212419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
212519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r9, minus, r3, ROR, 11, PostIndex},
212619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r9 minus r3 ROR 11 PostIndex",
212719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r4_r9_minus_r3_ROR_11_PostIndex",
212819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
212919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
213019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r1, minus, r4, LSL, 9, PostIndex},
213119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r1 minus r4 LSL 9 PostIndex",
213219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r11_r1_minus_r4_LSL_9_PostIndex",
213319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
213419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
213519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r5, minus, r7, ROR, 17, PostIndex},
213619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r5 minus r7 ROR 17 PostIndex",
213719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r8_r5_minus_r7_ROR_17_PostIndex",
213819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
213919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
214019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r5, minus, r8, LSL, 18, PostIndex},
214119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r5 minus r8 LSL 18 PostIndex",
214219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r6_r5_minus_r8_LSL_18_PostIndex",
214319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
214419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
214519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r7, minus, r6, LSL, 16, PostIndex},
214619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r7 minus r6 LSL 16 PostIndex",
214719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r4_r7_minus_r6_LSL_16_PostIndex",
214819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
214919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
215019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r12, minus, r10, LSL, 29, PostIndex},
215119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r12 minus r10 LSL 29 PostIndex",
215219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r8_r12_minus_r10_LSL_29_PostIndex",
215319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
215419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
215519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r7, minus, r2, ROR, 18, PostIndex},
215619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r7 minus r2 ROR 18 PostIndex",
215719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r14_r7_minus_r2_ROR_18_PostIndex",
215819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
215919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
216019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r3, minus, r9, ROR, 8, PostIndex},
216119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r3 minus r9 ROR 8 PostIndex",
216219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r14_r3_minus_r9_ROR_8_PostIndex",
216319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
216419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
216519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r14, minus, r9, LSL, 5, PostIndex},
216619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r14 minus r9 LSL 5 PostIndex",
216719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r1_r14_minus_r9_LSL_5_PostIndex",
216819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
216919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
217019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r2, minus, r10, LSL, 23, PostIndex},
217119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r2 minus r10 LSL 23 PostIndex",
217219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r3_r2_minus_r10_LSL_23_PostIndex",
217319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
217419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
217519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r3, minus, r5, ROR, 27, PostIndex},
217619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r3 minus r5 ROR 27 PostIndex",
217719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r7_r3_minus_r5_ROR_27_PostIndex",
217819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
217919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
218019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r14, minus, r6, ROR, 3, PostIndex},
218119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r14 minus r6 ROR 3 PostIndex",
218219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r11_r14_minus_r6_ROR_3_PostIndex",
218319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
218419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
218519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r2, minus, r14, LSL, 19, PostIndex},
218619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r2 minus r14 LSL 19 PostIndex",
218719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r11_r2_minus_r14_LSL_19_PostIndex",
218819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
218919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
219019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r1, minus, r10, LSL, 25, PostIndex},
219119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r1 minus r10 LSL 25 PostIndex",
219219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r11_r1_minus_r10_LSL_25_PostIndex",
219319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
219419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
219519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r7, minus, r4, ROR, 15, PostIndex},
219619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r7 minus r4 ROR 15 PostIndex",
219719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r14_r7_minus_r4_ROR_15_PostIndex",
219819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
219919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
220019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r14, minus, r7, ROR, 24, PostIndex},
220119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r14 minus r7 ROR 24 PostIndex",
220219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r12_r14_minus_r7_ROR_24_PostIndex",
220319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
220419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
220519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r10, minus, r5, ROR, 8, PostIndex},
220619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r10 minus r5 ROR 8 PostIndex",
220719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r6_r10_minus_r5_ROR_8_PostIndex",
220819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
220919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
221019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r5, minus, r9, ROR, 3, PostIndex},
221119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r5 minus r9 ROR 3 PostIndex",
221219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r1_r5_minus_r9_ROR_3_PostIndex",
221319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
221419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
221519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r9, minus, r1, LSL, 28, PostIndex},
221619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r9 minus r1 LSL 28 PostIndex",
221719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r2_r9_minus_r1_LSL_28_PostIndex",
221819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
221919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
222019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r4, minus, r0, LSL, 16, PostIndex},
222119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r4 minus r0 LSL 16 PostIndex",
222219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r9_r4_minus_r0_LSL_16_PostIndex",
222319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
222419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
222519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r3, minus, r4, ROR, 21, PostIndex},
222619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r3 minus r4 ROR 21 PostIndex",
222719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r5_r3_minus_r4_ROR_21_PostIndex",
222819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
222919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
223019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r0, minus, r11, LSL, 30, PostIndex},
223119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r0 minus r11 LSL 30 PostIndex",
223219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r4_r0_minus_r11_LSL_30_PostIndex",
223319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
223419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
223519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r3, minus, r12, LSL, 1, PostIndex},
223619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r3 minus r12 LSL 1 PostIndex",
223719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r4_r3_minus_r12_LSL_1_PostIndex",
223819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
223919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
224019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r11, minus, r7, LSL, 6, PostIndex},
224119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r11 minus r7 LSL 6 PostIndex",
224219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r12_r11_minus_r7_LSL_6_PostIndex",
224319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
224419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
224519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r2, minus, r6, ROR, 3, PostIndex},
224619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r2 minus r6 ROR 3 PostIndex",
224719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r10_r2_minus_r6_ROR_3_PostIndex",
224819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
224919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
225019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r12, minus, r14, LSL, 25, PostIndex},
225119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r12 minus r14 LSL 25 PostIndex",
225219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r5_r12_minus_r14_LSL_25_PostIndex",
225319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
225419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
225519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r9, minus, r5, ROR, 20, PostIndex},
225619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r9 minus r5 ROR 20 PostIndex",
225719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r3_r9_minus_r5_ROR_20_PostIndex",
225819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
225919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
226019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r2, minus, r11, LSL, 20, PostIndex},
226119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r2 minus r11 LSL 20 PostIndex",
226219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r8_r2_minus_r11_LSL_20_PostIndex",
226319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
226419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
226519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r1, minus, r12, LSL, 22, PostIndex},
226619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r1 minus r12 LSL 22 PostIndex",
226719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r7_r1_minus_r12_LSL_22_PostIndex",
226819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
226919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
227019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r12, minus, r4, ROR, 21, PostIndex},
227119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r12 minus r4 ROR 21 PostIndex",
227219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r7_r12_minus_r4_ROR_21_PostIndex",
227319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
227419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
227519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r4, minus, r0, LSL, 25, PostIndex},
227619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r4 minus r0 LSL 25 PostIndex",
227719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r8_r4_minus_r0_LSL_25_PostIndex",
227819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
227919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
228019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r10, minus, r6, LSL, 1, PostIndex},
228119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r10 minus r6 LSL 1 PostIndex",
228219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r2_r10_minus_r6_LSL_1_PostIndex",
228319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
228419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
228519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r14, minus, r1, LSL, 9, PostIndex},
228619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r14 minus r1 LSL 9 PostIndex",
228719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r11_r14_minus_r1_LSL_9_PostIndex",
228819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
228919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
229019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r8, minus, r3, ROR, 19, PostIndex},
229119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r8 minus r3 ROR 19 PostIndex",
229219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r7_r8_minus_r3_ROR_19_PostIndex",
229319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
229419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
229519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r4, minus, r3, LSL, 3, PostIndex},
229619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r4 minus r3 LSL 3 PostIndex",
229719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r7_r4_minus_r3_LSL_3_PostIndex",
229819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
229919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
230019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r3, minus, r5, LSL, 5, PostIndex},
230119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r3 minus r5 LSL 5 PostIndex",
230219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r6_r3_minus_r5_LSL_5_PostIndex",
230319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
230419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
230519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r12, minus, r1, ROR, 26, PostIndex},
230619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r12 minus r1 ROR 26 PostIndex",
230719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r7_r12_minus_r1_ROR_26_PostIndex",
230819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
230919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
231019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r14, minus, r3, ROR, 5, PostIndex},
231119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r14 minus r3 ROR 5 PostIndex",
231219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r1_r14_minus_r3_ROR_5_PostIndex",
231319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
231419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
231519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r14, minus, r8, LSL, 10, PostIndex},
231619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r14 minus r8 LSL 10 PostIndex",
231719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r3_r14_minus_r8_LSL_10_PostIndex",
231819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
231919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
232019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r6, minus, r3, ROR, 19, PostIndex},
232119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r6 minus r3 ROR 19 PostIndex",
232219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r2_r6_minus_r3_ROR_19_PostIndex",
232319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
232419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
232519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r5, minus, r6, ROR, 30, PostIndex},
232619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r5 minus r6 ROR 30 PostIndex",
232719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r3_r5_minus_r6_ROR_30_PostIndex",
232819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
232919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
233019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r9, minus, r12, LSL, 24, PostIndex},
233119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r9 minus r12 LSL 24 PostIndex",
233219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePostIndex_al_r2_r9_minus_r12_LSL_24_PostIndex",
233319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePostIndex),
233419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePostIndex},
233519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r9, plus, r3, LSL, 2, PreIndex},
233619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r9 plus r3 LSL 2 PreIndex",
233719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r4_r9_plus_r3_LSL_2_PreIndex",
233819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
233919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
234019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r9, plus, r10, LSL, 25, PreIndex},
234119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r9 plus r10 LSL 25 PreIndex",
234219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r1_r9_plus_r10_LSL_25_PreIndex",
234319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
234419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
234519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r1, plus, r12, ROR, 24, PreIndex},
234619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r1 plus r12 ROR 24 PreIndex",
234719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r14_r1_plus_r12_ROR_24_PreIndex",
234819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
234919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
235019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r10, plus, r14, LSL, 24, PreIndex},
235119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r10 plus r14 LSL 24 PreIndex",
235219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r3_r10_plus_r14_LSL_24_PreIndex",
235319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
235419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
235519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r5, plus, r0, LSL, 17, PreIndex},
235619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r5 plus r0 LSL 17 PreIndex",
235719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r10_r5_plus_r0_LSL_17_PreIndex",
235819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
235919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
236019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r7, plus, r8, LSL, 20, PreIndex},
236119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r7 plus r8 LSL 20 PreIndex",
236219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r1_r7_plus_r8_LSL_20_PreIndex",
236319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
236419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
236519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r6, plus, r2, LSL, 3, PreIndex},
236619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r6 plus r2 LSL 3 PreIndex",
236719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r5_r6_plus_r2_LSL_3_PreIndex",
236819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
236919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
237019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r6, plus, r2, ROR, 9, PreIndex},
237119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r6 plus r2 ROR 9 PreIndex",
237219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r4_r6_plus_r2_ROR_9_PreIndex",
237319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
237419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
237519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r11, plus, r12, LSL, 7, PreIndex},
237619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r11 plus r12 LSL 7 PreIndex",
237719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r0_r11_plus_r12_LSL_7_PreIndex",
237819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
237919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
238019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r14, plus, r11, ROR, 4, PreIndex},
238119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r14 plus r11 ROR 4 PreIndex",
238219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r2_r14_plus_r11_ROR_4_PreIndex",
238319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
238419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
238519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r6, plus, r1, LSL, 13, PreIndex},
238619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r6 plus r1 LSL 13 PreIndex",
238719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r8_r6_plus_r1_LSL_13_PreIndex",
238819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
238919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
239019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r8, plus, r5, ROR, 5, PreIndex},
239119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r8 plus r5 ROR 5 PreIndex",
239219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r9_r8_plus_r5_ROR_5_PreIndex",
239319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
239419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
239519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r5, plus, r14, LSL, 9, PreIndex},
239619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r5 plus r14 LSL 9 PreIndex",
239719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r4_r5_plus_r14_LSL_9_PreIndex",
239819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
239919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
240019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r10, plus, r14, LSL, 2, PreIndex},
240119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r10 plus r14 LSL 2 PreIndex",
240219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r2_r10_plus_r14_LSL_2_PreIndex",
240319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
240419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
240519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r10, plus, r2, LSL, 16, PreIndex},
240619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r10 plus r2 LSL 16 PreIndex",
240719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r0_r10_plus_r2_LSL_16_PreIndex",
240819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
240919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
241019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r12, plus, r2, LSL, 17, PreIndex},
241119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r12 plus r2 LSL 17 PreIndex",
241219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r11_r12_plus_r2_LSL_17_PreIndex",
241319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
241419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
241519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r5, plus, r8, LSL, 24, PreIndex},
241619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r5 plus r8 LSL 24 PreIndex",
241719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r10_r5_plus_r8_LSL_24_PreIndex",
241819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
241919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
242019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r3, plus, r7, ROR, 6, PreIndex},
242119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r3 plus r7 ROR 6 PreIndex",
242219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r11_r3_plus_r7_ROR_6_PreIndex",
242319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
242419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
242519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r0, plus, r11, ROR, 13, PreIndex},
242619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r0 plus r11 ROR 13 PreIndex",
242719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r12_r0_plus_r11_ROR_13_PreIndex",
242819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
242919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
243019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r5, plus, r2, LSL, 2, PreIndex},
243119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r5 plus r2 LSL 2 PreIndex",
243219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r14_r5_plus_r2_LSL_2_PreIndex",
243319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
243419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
243519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r7, plus, r8, ROR, 28, PreIndex},
243619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r7 plus r8 ROR 28 PreIndex",
243719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r14_r7_plus_r8_ROR_28_PreIndex",
243819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
243919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
244019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r2, plus, r7, LSL, 22, PreIndex},
244119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r2 plus r7 LSL 22 PreIndex",
244219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r12_r2_plus_r7_LSL_22_PreIndex",
244319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
244419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
244519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r5, plus, r12, ROR, 16, PreIndex},
244619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r5 plus r12 ROR 16 PreIndex",
244719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r6_r5_plus_r12_ROR_16_PreIndex",
244819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
244919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
245019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r14, plus, r4, LSL, 9, PreIndex},
245119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r14 plus r4 LSL 9 PreIndex",
245219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r1_r14_plus_r4_LSL_9_PreIndex",
245319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
245419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
245519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r2, plus, r11, ROR, 9, PreIndex},
245619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r2 plus r11 ROR 9 PreIndex",
245719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r9_r2_plus_r11_ROR_9_PreIndex",
245819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
245919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
246019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r8, plus, r9, LSL, 2, PreIndex},
246119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r8 plus r9 LSL 2 PreIndex",
246219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r6_r8_plus_r9_LSL_2_PreIndex",
246319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
246419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
246519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r1, plus, r0, LSL, 30, PreIndex},
246619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r1 plus r0 LSL 30 PreIndex",
246719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r8_r1_plus_r0_LSL_30_PreIndex",
246819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
246919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
247019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r0, plus, r6, ROR, 5, PreIndex},
247119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r0 plus r6 ROR 5 PreIndex",
247219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r14_r0_plus_r6_ROR_5_PreIndex",
247319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
247419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
247519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r6, plus, r2, LSL, 9, PreIndex},
247619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r6 plus r2 LSL 9 PreIndex",
247719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r1_r6_plus_r2_LSL_9_PreIndex",
247819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
247919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
248019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r4, plus, r9, ROR, 28, PreIndex},
248119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r4 plus r9 ROR 28 PreIndex",
248219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r12_r4_plus_r9_ROR_28_PreIndex",
248319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
248419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
248519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r1, plus, r10, ROR, 21, PreIndex},
248619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r1 plus r10 ROR 21 PreIndex",
248719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r5_r1_plus_r10_ROR_21_PreIndex",
248819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
248919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
249019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r14, plus, r12, ROR, 31, PreIndex},
249119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r14 plus r12 ROR 31 PreIndex",
249219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r6_r14_plus_r12_ROR_31_PreIndex",
249319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
249419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
249519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r3, plus, r5, ROR, 10, PreIndex},
249619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r3 plus r5 ROR 10 PreIndex",
249719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r0_r3_plus_r5_ROR_10_PreIndex",
249819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
249919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
250019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r11, plus, r3, LSL, 29, PreIndex},
250119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r11 plus r3 LSL 29 PreIndex",
250219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r2_r11_plus_r3_LSL_29_PreIndex",
250319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
250419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
250519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r4, plus, r9, LSL, 16, PreIndex},
250619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r4 plus r9 LSL 16 PreIndex",
250719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r3_r4_plus_r9_LSL_16_PreIndex",
250819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
250919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
251019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r11, plus, r5, ROR, 14, PreIndex},
251119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r11 plus r5 ROR 14 PreIndex",
251219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r6_r11_plus_r5_ROR_14_PreIndex",
251319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
251419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
251519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r12, plus, r0, ROR, 28, PreIndex},
251619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r12 plus r0 ROR 28 PreIndex",
251719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r4_r12_plus_r0_ROR_28_PreIndex",
251819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
251919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
252019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r6, plus, r1, LSL, 7, PreIndex},
252119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r6 plus r1 LSL 7 PreIndex",
252219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r4_r6_plus_r1_LSL_7_PreIndex",
252319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
252419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
252519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r2, plus, r6, ROR, 20, PreIndex},
252619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r2 plus r6 ROR 20 PreIndex",
252719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r5_r2_plus_r6_ROR_20_PreIndex",
252819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
252919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
253019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r6, plus, r5, LSL, 2, PreIndex},
253119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r6 plus r5 LSL 2 PreIndex",
253219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r9_r6_plus_r5_LSL_2_PreIndex",
253319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
253419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
253519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r3, plus, r6, ROR, 6, PreIndex},
253619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r3 plus r6 ROR 6 PreIndex",
253719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r4_r3_plus_r6_ROR_6_PreIndex",
253819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
253919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
254019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r0, plus, r9, ROR, 8, PreIndex},
254119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r0 plus r9 ROR 8 PreIndex",
254219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r6_r0_plus_r9_ROR_8_PreIndex",
254319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
254419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
254519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r14, plus, r2, LSL, 29, PreIndex},
254619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r14 plus r2 LSL 29 PreIndex",
254719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r10_r14_plus_r2_LSL_29_PreIndex",
254819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
254919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
255019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r10, plus, r3, ROR, 21, PreIndex},
255119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r10 plus r3 ROR 21 PreIndex",
255219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r1_r10_plus_r3_ROR_21_PreIndex",
255319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
255419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
255519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r10, plus, r1, LSL, 1, PreIndex},
255619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r10 plus r1 LSL 1 PreIndex",
255719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r6_r10_plus_r1_LSL_1_PreIndex",
255819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
255919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
256019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r1, plus, r14, LSL, 23, PreIndex},
256119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r1 plus r14 LSL 23 PreIndex",
256219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r5_r1_plus_r14_LSL_23_PreIndex",
256319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
256419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
256519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r12, plus, r10, LSL, 27, PreIndex},
256619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r12 plus r10 LSL 27 PreIndex",
256719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r6_r12_plus_r10_LSL_27_PreIndex",
256819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
256919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
257019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r5, plus, r8, LSL, 30, PreIndex},
257119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r5 plus r8 LSL 30 PreIndex",
257219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r10_r5_plus_r8_LSL_30_PreIndex",
257319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
257419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
257519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r8, plus, r5, LSL, 12, PreIndex},
257619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r8 plus r5 LSL 12 PreIndex",
257719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r12_r8_plus_r5_LSL_12_PreIndex",
257819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
257919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
258019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r6, plus, r3, ROR, 23, PreIndex},
258119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r6 plus r3 ROR 23 PreIndex",
258219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r14_r6_plus_r3_ROR_23_PreIndex",
258319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
258419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
258519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r8, plus, r6, ROR, 26, PreIndex},
258619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r8 plus r6 ROR 26 PreIndex",
258719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r5_r8_plus_r6_ROR_26_PreIndex",
258819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
258919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
259019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r4, plus, r10, ROR, 21, PreIndex},
259119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r4 plus r10 ROR 21 PreIndex",
259219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r1_r4_plus_r10_ROR_21_PreIndex",
259319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
259419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
259519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r9, plus, r1, LSL, 24, PreIndex},
259619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r9 plus r1 LSL 24 PreIndex",
259719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r8_r9_plus_r1_LSL_24_PreIndex",
259819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
259919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
260019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r2, plus, r6, ROR, 6, PreIndex},
260119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r2 plus r6 ROR 6 PreIndex",
260219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r0_r2_plus_r6_ROR_6_PreIndex",
260319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
260419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
260519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r1, plus, r0, ROR, 6, PreIndex},
260619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r1 plus r0 ROR 6 PreIndex",
260719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r5_r1_plus_r0_ROR_6_PreIndex",
260819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
260919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
261019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r6, plus, r0, LSL, 25, PreIndex},
261119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r6 plus r0 LSL 25 PreIndex",
261219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r4_r6_plus_r0_LSL_25_PreIndex",
261319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
261419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
261519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r6, plus, r4, LSL, 15, PreIndex},
261619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r6 plus r4 LSL 15 PreIndex",
261719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r7_r6_plus_r4_LSL_15_PreIndex",
261819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
261919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
262019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r10, plus, r4, ROR, 12, PreIndex},
262119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r10 plus r4 ROR 12 PreIndex",
262219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r3_r10_plus_r4_ROR_12_PreIndex",
262319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
262419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
262519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r10, plus, r12, ROR, 30, PreIndex},
262619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r10 plus r12 ROR 30 PreIndex",
262719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r11_r10_plus_r12_ROR_30_PreIndex",
262819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
262919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
263019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r9, plus, r1, ROR, 28, PreIndex},
263119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r9 plus r1 ROR 28 PreIndex",
263219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r12_r9_plus_r1_ROR_28_PreIndex",
263319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
263419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
263519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r4, plus, r11, ROR, 31, PreIndex},
263619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r4 plus r11 ROR 31 PreIndex",
263719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r1_r4_plus_r11_ROR_31_PreIndex",
263819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
263919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
264019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r5, plus, r7, ROR, 2, PreIndex},
264119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r5 plus r7 ROR 2 PreIndex",
264219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r14_r5_plus_r7_ROR_2_PreIndex",
264319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
264419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
264519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r10, plus, r14, ROR, 4, PreIndex},
264619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r10 plus r14 ROR 4 PreIndex",
264719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r8_r10_plus_r14_ROR_4_PreIndex",
264819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
264919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
265019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r9, plus, r10, LSL, 24, PreIndex},
265119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r9 plus r10 LSL 24 PreIndex",
265219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r4_r9_plus_r10_LSL_24_PreIndex",
265319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
265419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
265519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r1, plus, r14, ROR, 21, PreIndex},
265619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r1 plus r14 ROR 21 PreIndex",
265719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r3_r1_plus_r14_ROR_21_PreIndex",
265819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
265919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
266019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r11, plus, r8, ROR, 14, PreIndex},
266119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r11 plus r8 ROR 14 PreIndex",
266219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r7_r11_plus_r8_ROR_14_PreIndex",
266319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
266419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
266519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r0, plus, r9, LSL, 18, PreIndex},
266619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r0 plus r9 LSL 18 PreIndex",
266719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r2_r0_plus_r9_LSL_18_PreIndex",
266819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
266919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
267019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r8, plus, r6, ROR, 21, PreIndex},
267119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r8 plus r6 ROR 21 PreIndex",
267219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r7_r8_plus_r6_ROR_21_PreIndex",
267319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
267419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
267519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r1, plus, r10, LSL, 1, PreIndex},
267619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r1 plus r10 LSL 1 PreIndex",
267719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r2_r1_plus_r10_LSL_1_PreIndex",
267819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
267919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
268019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r7, plus, r2, ROR, 13, PreIndex},
268119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r7 plus r2 ROR 13 PreIndex",
268219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r4_r7_plus_r2_ROR_13_PreIndex",
268319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
268419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
268519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r4, plus, r0, LSL, 18, PreIndex},
268619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r4 plus r0 LSL 18 PreIndex",
268719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r9_r4_plus_r0_LSL_18_PreIndex",
268819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
268919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
269019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r10, plus, r5, ROR, 30, PreIndex},
269119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r10 plus r5 ROR 30 PreIndex",
269219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r3_r10_plus_r5_ROR_30_PreIndex",
269319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
269419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
269519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r2, plus, r6, LSL, 22, PreIndex},
269619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r2 plus r6 LSL 22 PreIndex",
269719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r3_r2_plus_r6_LSL_22_PreIndex",
269819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
269919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
270019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r14, plus, r6, LSL, 29, PreIndex},
270119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r14 plus r6 LSL 29 PreIndex",
270219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r9_r14_plus_r6_LSL_29_PreIndex",
270319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
270419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
270519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r3, plus, r1, ROR, 5, PreIndex},
270619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r3 plus r1 ROR 5 PreIndex",
270719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r14_r3_plus_r1_ROR_5_PreIndex",
270819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
270919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
271019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r3, plus, r4, ROR, 18, PreIndex},
271119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r3 plus r4 ROR 18 PreIndex",
271219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r14_r3_plus_r4_ROR_18_PreIndex",
271319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
271419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
271519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r12, plus, r3, LSL, 16, PreIndex},
271619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r12 plus r3 LSL 16 PreIndex",
271719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r1_r12_plus_r3_LSL_16_PreIndex",
271819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
271919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
272019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r5, plus, r7, ROR, 17, PreIndex},
272119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r5 plus r7 ROR 17 PreIndex",
272219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r1_r5_plus_r7_ROR_17_PreIndex",
272319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
272419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
272519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r10, plus, r8, LSL, 4, PreIndex},
272619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r10 plus r8 LSL 4 PreIndex",
272719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r6_r10_plus_r8_LSL_4_PreIndex",
272819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
272919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
273019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r1, plus, r4, ROR, 16, PreIndex},
273119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r1 plus r4 ROR 16 PreIndex",
273219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r11_r1_plus_r4_ROR_16_PreIndex",
273319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
273419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
273519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r0, plus, r12, LSL, 21, PreIndex},
273619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r0 plus r12 LSL 21 PreIndex",
273719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r14_r0_plus_r12_LSL_21_PreIndex",
273819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
273919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
274019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r14, plus, r1, LSL, 29, PreIndex},
274119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r14 plus r1 LSL 29 PreIndex",
274219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r10_r14_plus_r1_LSL_29_PreIndex",
274319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
274419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
274519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r7, plus, r0, LSL, 27, PreIndex},
274619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r7 plus r0 LSL 27 PreIndex",
274719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r14_r7_plus_r0_LSL_27_PreIndex",
274819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
274919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
275019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r9, plus, r6, LSL, 19, PreIndex},
275119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r9 plus r6 LSL 19 PreIndex",
275219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r4_r9_plus_r6_LSL_19_PreIndex",
275319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
275419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
275519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r11, plus, r12, ROR, 23, PreIndex},
275619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r11 plus r12 ROR 23 PreIndex",
275719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r3_r11_plus_r12_ROR_23_PreIndex",
275819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
275919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
276019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r1, plus, r11, ROR, 22, PreIndex},
276119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r1 plus r11 ROR 22 PreIndex",
276219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r3_r1_plus_r11_ROR_22_PreIndex",
276319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
276419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
276519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r12, plus, r10, ROR, 28, PreIndex},
276619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r12 plus r10 ROR 28 PreIndex",
276719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r1_r12_plus_r10_ROR_28_PreIndex",
276819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
276919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
277019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r8, plus, r12, LSL, 30, PreIndex},
277119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r8 plus r12 LSL 30 PreIndex",
277219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r14_r8_plus_r12_LSL_30_PreIndex",
277319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
277419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
277519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r5, plus, r4, LSL, 15, PreIndex},
277619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r5 plus r4 LSL 15 PreIndex",
277719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r0_r5_plus_r4_LSL_15_PreIndex",
277819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
277919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
278019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r9, plus, r7, LSL, 14, PreIndex},
278119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r9 plus r7 LSL 14 PreIndex",
278219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r11_r9_plus_r7_LSL_14_PreIndex",
278319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
278419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
278519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r5, plus, r0, LSL, 5, PreIndex},
278619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r5 plus r0 LSL 5 PreIndex",
278719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r11_r5_plus_r0_LSL_5_PreIndex",
278819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
278919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
279019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r9, plus, r11, LSL, 6, PreIndex},
279119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r9 plus r11 LSL 6 PreIndex",
279219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r8_r9_plus_r11_LSL_6_PreIndex",
279319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
279419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
279519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r2, plus, r8, ROR, 12, PreIndex},
279619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r2 plus r8 ROR 12 PreIndex",
279719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r5_r2_plus_r8_ROR_12_PreIndex",
279819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
279919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
280019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r0, plus, r6, ROR, 2, PreIndex},
280119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r0 plus r6 ROR 2 PreIndex",
280219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r8_r0_plus_r6_ROR_2_PreIndex",
280319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
280419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
280519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r10, plus, r5, LSL, 28, PreIndex},
280619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r10 plus r5 LSL 28 PreIndex",
280719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r0_r10_plus_r5_LSL_28_PreIndex",
280819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
280919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
281019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r12, plus, r3, ROR, 29, PreIndex},
281119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r12 plus r3 ROR 29 PreIndex",
281219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r8_r12_plus_r3_ROR_29_PreIndex",
281319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
281419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
281519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r2, plus, r8, LSL, 21, PreIndex},
281619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r2 plus r8 LSL 21 PreIndex",
281719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r9_r2_plus_r8_LSL_21_PreIndex",
281819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
281919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
282019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r3, plus, r8, ROR, 27, PreIndex},
282119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r3 plus r8 ROR 27 PreIndex",
282219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r12_r3_plus_r8_ROR_27_PreIndex",
282319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
282419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
282519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r6, plus, r11, LSL, 17, PreIndex},
282619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r6 plus r11 LSL 17 PreIndex",
282719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r12_r6_plus_r11_LSL_17_PreIndex",
282819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
282919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
283019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r2, plus, r0, ROR, 14, PreIndex},
283119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r2 plus r0 ROR 14 PreIndex",
283219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "PositivePreIndex_al_r4_r2_plus_r0_ROR_14_PreIndex",
283319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kPositivePreIndex),
283419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kPositivePreIndex},
283519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r10, minus, r7, LSL, 3, PreIndex},
283619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r10 minus r7 LSL 3 PreIndex",
283719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r4_r10_minus_r7_LSL_3_PreIndex",
283819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
283919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
284019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r4, minus, r10, LSL, 20, PreIndex},
284119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r4 minus r10 LSL 20 PreIndex",
284219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r9_r4_minus_r10_LSL_20_PreIndex",
284319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
284419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
284519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r2, minus, r14, LSL, 23, PreIndex},
284619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r2 minus r14 LSL 23 PreIndex",
284719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r3_r2_minus_r14_LSL_23_PreIndex",
284819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
284919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
285019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r6, minus, r8, ROR, 22, PreIndex},
285119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r6 minus r8 ROR 22 PreIndex",
285219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r1_r6_minus_r8_ROR_22_PreIndex",
285319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
285419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
285519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r11, minus, r1, ROR, 24, PreIndex},
285619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r11 minus r1 ROR 24 PreIndex",
285719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r0_r11_minus_r1_ROR_24_PreIndex",
285819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
285919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
286019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r11, minus, r12, ROR, 2, PreIndex},
286119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r11 minus r12 ROR 2 PreIndex",
286219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r6_r11_minus_r12_ROR_2_PreIndex",
286319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
286419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
286519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r2, minus, r9, ROR, 28, PreIndex},
286619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r2 minus r9 ROR 28 PreIndex",
286719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r12_r2_minus_r9_ROR_28_PreIndex",
286819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
286919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
287019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r4, minus, r5, ROR, 16, PreIndex},
287119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r4 minus r5 ROR 16 PreIndex",
287219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r6_r4_minus_r5_ROR_16_PreIndex",
287319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
287419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
287519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r2, minus, r12, LSL, 23, PreIndex},
287619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r2 minus r12 LSL 23 PreIndex",
287719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r0_r2_minus_r12_LSL_23_PreIndex",
287819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
287919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
288019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r10, minus, r11, LSL, 3, PreIndex},
288119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r10 minus r11 LSL 3 PreIndex",
288219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r2_r10_minus_r11_LSL_3_PreIndex",
288319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
288419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
288519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r2, minus, r5, LSL, 18, PreIndex},
288619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r2 minus r5 LSL 18 PreIndex",
288719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r6_r2_minus_r5_LSL_18_PreIndex",
288819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
288919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
289019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r7, minus, r3, LSL, 18, PreIndex},
289119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r7 minus r3 LSL 18 PreIndex",
289219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r10_r7_minus_r3_LSL_18_PreIndex",
289319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
289419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
289519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r10, minus, r2, ROR, 5, PreIndex},
289619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r10 minus r2 ROR 5 PreIndex",
289719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r9_r10_minus_r2_ROR_5_PreIndex",
289819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
289919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
290019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r14, minus, r5, LSL, 20, PreIndex},
290119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r14 minus r5 LSL 20 PreIndex",
290219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r1_r14_minus_r5_LSL_20_PreIndex",
290319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
290419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
290519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r1, minus, r14, LSL, 2, PreIndex},
290619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r1 minus r14 LSL 2 PreIndex",
290719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r11_r1_minus_r14_LSL_2_PreIndex",
290819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
290919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
291019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r14, minus, r6, LSL, 16, PreIndex},
291119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r14 minus r6 LSL 16 PreIndex",
291219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r12_r14_minus_r6_LSL_16_PreIndex",
291319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
291419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
291519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r0, minus, r5, LSL, 30, PreIndex},
291619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r0 minus r5 LSL 30 PreIndex",
291719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r2_r0_minus_r5_LSL_30_PreIndex",
291819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
291919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
292019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r14, minus, r10, LSL, 28, PreIndex},
292119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r14 minus r10 LSL 28 PreIndex",
292219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r12_r14_minus_r10_LSL_28_PreIndex",
292319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
292419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
292519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r14, minus, r9, LSL, 26, PreIndex},
292619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r14 minus r9 LSL 26 PreIndex",
292719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r7_r14_minus_r9_LSL_26_PreIndex",
292819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
292919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
293019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r9, minus, r2, ROR, 28, PreIndex},
293119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r9 minus r2 ROR 28 PreIndex",
293219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r11_r9_minus_r2_ROR_28_PreIndex",
293319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
293419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
293519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r4, minus, r6, ROR, 18, PreIndex},
293619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r4 minus r6 ROR 18 PreIndex",
293719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r5_r4_minus_r6_ROR_18_PreIndex",
293819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
293919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
294019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r0, minus, r4, LSL, 1, PreIndex},
294119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r0 minus r4 LSL 1 PreIndex",
294219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r2_r0_minus_r4_LSL_1_PreIndex",
294319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
294419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
294519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r14, minus, r11, ROR, 25, PreIndex},
294619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r14 minus r11 ROR 25 PreIndex",
294719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r0_r14_minus_r11_ROR_25_PreIndex",
294819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
294919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
295019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r4, minus, r2, LSL, 16, PreIndex},
295119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r4 minus r2 LSL 16 PreIndex",
295219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r12_r4_minus_r2_LSL_16_PreIndex",
295319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
295419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
295519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r12, minus, r1, LSL, 26, PreIndex},
295619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r12 minus r1 LSL 26 PreIndex",
295719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r2_r12_minus_r1_LSL_26_PreIndex",
295819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
295919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
296019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r2, minus, r14, LSL, 23, PreIndex},
296119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r2 minus r14 LSL 23 PreIndex",
296219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r9_r2_minus_r14_LSL_23_PreIndex",
296319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
296419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
296519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r8, minus, r2, ROR, 20, PreIndex},
296619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r8 minus r2 ROR 20 PreIndex",
296719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r0_r8_minus_r2_ROR_20_PreIndex",
296819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
296919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
297019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r11, minus, r12, LSL, 27, PreIndex},
297119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r11 minus r12 LSL 27 PreIndex",
297219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r7_r11_minus_r12_LSL_27_PreIndex",
297319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
297419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
297519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r2, minus, r11, ROR, 16, PreIndex},
297619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r2 minus r11 ROR 16 PreIndex",
297719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r5_r2_minus_r11_ROR_16_PreIndex",
297819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
297919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
298019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r4, minus, r0, ROR, 9, PreIndex},
298119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r4 minus r0 ROR 9 PreIndex",
298219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r9_r4_minus_r0_ROR_9_PreIndex",
298319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
298419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
298519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r8, minus, r1, LSL, 6, PreIndex},
298619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r8 minus r1 LSL 6 PreIndex",
298719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r0_r8_minus_r1_LSL_6_PreIndex",
298819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
298919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
299019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r14, minus, r5, LSL, 28, PreIndex},
299119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r14 minus r5 LSL 28 PreIndex",
299219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r9_r14_minus_r5_LSL_28_PreIndex",
299319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
299419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
299519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r3, minus, r7, ROR, 30, PreIndex},
299619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r3 minus r7 ROR 30 PreIndex",
299719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r12_r3_minus_r7_ROR_30_PreIndex",
299819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
299919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
300019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r5, minus, r0, LSL, 21, PreIndex},
300119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r5 minus r0 LSL 21 PreIndex",
300219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r3_r5_minus_r0_LSL_21_PreIndex",
300319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
300419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
300519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r14, minus, r11, LSL, 15, PreIndex},
300619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r14 minus r11 LSL 15 PreIndex",
300719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r8_r14_minus_r11_LSL_15_PreIndex",
300819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
300919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
301019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r9, minus, r14, ROR, 6, PreIndex},
301119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r9 minus r14 ROR 6 PreIndex",
301219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r7_r9_minus_r14_ROR_6_PreIndex",
301319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
301419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
301519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r14, minus, r0, LSL, 15, PreIndex},
301619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r14 minus r0 LSL 15 PreIndex",
301719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r1_r14_minus_r0_LSL_15_PreIndex",
301819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
301919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
302019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r12, minus, r5, LSL, 24, PreIndex},
302119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r12 minus r5 LSL 24 PreIndex",
302219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r6_r12_minus_r5_LSL_24_PreIndex",
302319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
302419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
302519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r14, minus, r9, LSL, 5, PreIndex},
302619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r14 minus r9 LSL 5 PreIndex",
302719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r5_r14_minus_r9_LSL_5_PreIndex",
302819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
302919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
303019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r3, minus, r7, ROR, 19, PreIndex},
303119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r3 minus r7 ROR 19 PreIndex",
303219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r4_r3_minus_r7_ROR_19_PreIndex",
303319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
303419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
303519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r7, minus, r11, LSL, 31, PreIndex},
303619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r7 minus r11 LSL 31 PreIndex",
303719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r8_r7_minus_r11_LSL_31_PreIndex",
303819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
303919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
304019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r11, minus, r5, LSL, 8, PreIndex},
304119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r11 minus r5 LSL 8 PreIndex",
304219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r2_r11_minus_r5_LSL_8_PreIndex",
304319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
304419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
304519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r7, minus, r9, ROR, 16, PreIndex},
304619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r7 minus r9 ROR 16 PreIndex",
304719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r0_r7_minus_r9_ROR_16_PreIndex",
304819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
304919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
305019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r8, minus, r0, ROR, 11, PreIndex},
305119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r8 minus r0 ROR 11 PreIndex",
305219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r11_r8_minus_r0_ROR_11_PreIndex",
305319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
305419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
305519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r1, minus, r0, ROR, 10, PreIndex},
305619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r1 minus r0 ROR 10 PreIndex",
305719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r10_r1_minus_r0_ROR_10_PreIndex",
305819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
305919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
306019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r5, minus, r6, ROR, 21, PreIndex},
306119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r5 minus r6 ROR 21 PreIndex",
306219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r1_r5_minus_r6_ROR_21_PreIndex",
306319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
306419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
306519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r1, minus, r2, LSL, 1, PreIndex},
306619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r1 minus r2 LSL 1 PreIndex",
306719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r7_r1_minus_r2_LSL_1_PreIndex",
306819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
306919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
307019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r1, minus, r4, LSL, 10, PreIndex},
307119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r1 minus r4 LSL 10 PreIndex",
307219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r14_r1_minus_r4_LSL_10_PreIndex",
307319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
307419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
307519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r12, minus, r5, ROR, 27, PreIndex},
307619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r12 minus r5 ROR 27 PreIndex",
307719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r0_r12_minus_r5_ROR_27_PreIndex",
307819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
307919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
308019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r11, minus, r9, ROR, 31, PreIndex},
308119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r11 minus r9 ROR 31 PreIndex",
308219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r2_r11_minus_r9_ROR_31_PreIndex",
308319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
308419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
308519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r12, minus, r0, LSL, 6, PreIndex},
308619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r12 minus r0 LSL 6 PreIndex",
308719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r7_r12_minus_r0_LSL_6_PreIndex",
308819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
308919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
309019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r14, minus, r9, ROR, 13, PreIndex},
309119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r14 minus r9 ROR 13 PreIndex",
309219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r12_r14_minus_r9_ROR_13_PreIndex",
309319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
309419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
309519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r6, minus, r11, LSL, 28, PreIndex},
309619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r6 minus r11 LSL 28 PreIndex",
309719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r2_r6_minus_r11_LSL_28_PreIndex",
309819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
309919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
310019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r14, r1, minus, r0, ROR, 18, PreIndex},
310119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r14 r1 minus r0 ROR 18 PreIndex",
310219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r14_r1_minus_r0_ROR_18_PreIndex",
310319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
310419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
310519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r1, minus, r6, LSL, 12, PreIndex},
310619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r1 minus r6 LSL 12 PreIndex",
310719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r9_r1_minus_r6_LSL_12_PreIndex",
310819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
310919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
311019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r4, minus, r0, LSL, 14, PreIndex},
311119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r4 minus r0 LSL 14 PreIndex",
311219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r7_r4_minus_r0_LSL_14_PreIndex",
311319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
311419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
311519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r11, minus, r9, ROR, 31, PreIndex},
311619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r11 minus r9 ROR 31 PreIndex",
311719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r10_r11_minus_r9_ROR_31_PreIndex",
311819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
311919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
312019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r1, minus, r14, LSL, 7, PreIndex},
312119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r1 minus r14 LSL 7 PreIndex",
312219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r9_r1_minus_r14_LSL_7_PreIndex",
312319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
312419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
312519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r5, minus, r11, ROR, 1, PreIndex},
312619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r5 minus r11 ROR 1 PreIndex",
312719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r9_r5_minus_r11_ROR_1_PreIndex",
312819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
312919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
313019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r14, minus, r11, LSL, 14, PreIndex},
313119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r14 minus r11 LSL 14 PreIndex",
313219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r1_r14_minus_r11_LSL_14_PreIndex",
313319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
313419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
313519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r10, r12, minus, r8, LSL, 2, PreIndex},
313619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r10 r12 minus r8 LSL 2 PreIndex",
313719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r10_r12_minus_r8_LSL_2_PreIndex",
313819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
313919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
314019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r8, minus, r3, ROR, 4, PreIndex},
314119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r8 minus r3 ROR 4 PreIndex",
314219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r5_r8_minus_r3_ROR_4_PreIndex",
314319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
314419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
314519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r0, minus, r1, ROR, 20, PreIndex},
314619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r0 minus r1 ROR 20 PreIndex",
314719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r3_r0_minus_r1_ROR_20_PreIndex",
314819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
314919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
315019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r2, minus, r11, ROR, 5, PreIndex},
315119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r2 minus r11 ROR 5 PreIndex",
315219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r5_r2_minus_r11_ROR_5_PreIndex",
315319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
315419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
315519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r7, minus, r9, LSL, 14, PreIndex},
315619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r7 minus r9 LSL 14 PreIndex",
315719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r3_r7_minus_r9_LSL_14_PreIndex",
315819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
315919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
316019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r0, minus, r5, ROR, 20, PreIndex},
316119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r0 minus r5 ROR 20 PreIndex",
316219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r3_r0_minus_r5_ROR_20_PreIndex",
316319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
316419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
316519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r8, minus, r5, ROR, 17, PreIndex},
316619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r8 minus r5 ROR 17 PreIndex",
316719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r2_r8_minus_r5_ROR_17_PreIndex",
316819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
316919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
317019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r1, r2, minus, r14, ROR, 2, PreIndex},
317119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r1 r2 minus r14 ROR 2 PreIndex",
317219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r1_r2_minus_r14_ROR_2_PreIndex",
317319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
317419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
317519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r4, minus, r2, ROR, 10, PreIndex},
317619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r4 minus r2 ROR 10 PreIndex",
317719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r8_r4_minus_r2_ROR_10_PreIndex",
317819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
317919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
318019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r0, r12, minus, r6, LSL, 28, PreIndex},
318119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r0 r12 minus r6 LSL 28 PreIndex",
318219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r0_r12_minus_r6_LSL_28_PreIndex",
318319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
318419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
318519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r4, minus, r12, LSL, 22, PreIndex},
318619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r4 minus r12 LSL 22 PreIndex",
318719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r7_r4_minus_r12_LSL_22_PreIndex",
318819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
318919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
319019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r6, minus, r5, ROR, 7, PreIndex},
319119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r6 minus r5 ROR 7 PreIndex",
319219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r3_r6_minus_r5_ROR_7_PreIndex",
319319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
319419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
319519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r6, r14, minus, r5, ROR, 28, PreIndex},
319619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r6 r14 minus r5 ROR 28 PreIndex",
319719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r6_r14_minus_r5_ROR_28_PreIndex",
319819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
319919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
320019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r2, minus, r8, ROR, 5, PreIndex},
320119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r2 minus r8 ROR 5 PreIndex",
320219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r4_r2_minus_r8_ROR_5_PreIndex",
320319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
320419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
320519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r9, minus, r3, ROR, 7, PreIndex},
320619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r9 minus r3 ROR 7 PreIndex",
320719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r8_r9_minus_r3_ROR_7_PreIndex",
320819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
320919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
321019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r14, minus, r11, LSL, 11, PreIndex},
321119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r14 minus r11 LSL 11 PreIndex",
321219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r8_r14_minus_r11_LSL_11_PreIndex",
321319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
321419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
321519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r6, minus, r4, LSL, 28, PreIndex},
321619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r6 minus r4 LSL 28 PreIndex",
321719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r7_r6_minus_r4_LSL_28_PreIndex",
321819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
321919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
322019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r9, minus, r8, ROR, 28, PreIndex},
322119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r9 minus r8 ROR 28 PreIndex",
322219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r12_r9_minus_r8_ROR_28_PreIndex",
322319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
322419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
322519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r14, minus, r10, ROR, 1, PreIndex},
322619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r14 minus r10 ROR 1 PreIndex",
322719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r7_r14_minus_r10_ROR_1_PreIndex",
322819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
322919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
323019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r1, minus, r0, ROR, 11, PreIndex},
323119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r1 minus r0 ROR 11 PreIndex",
323219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r2_r1_minus_r0_ROR_11_PreIndex",
323319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
323419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
323519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r9, minus, r6, ROR, 13, PreIndex},
323619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r9 minus r6 ROR 13 PreIndex",
323719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r3_r9_minus_r6_ROR_13_PreIndex",
323819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
323919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
324019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r11, minus, r3, ROR, 28, PreIndex},
324119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r11 minus r3 ROR 28 PreIndex",
324219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r7_r11_minus_r3_ROR_28_PreIndex",
324319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
324419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
324519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r4, minus, r3, LSL, 17, PreIndex},
324619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r4 minus r3 LSL 17 PreIndex",
324719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r12_r4_minus_r3_LSL_17_PreIndex",
324819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
324919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
325019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r3, minus, r5, LSL, 4, PreIndex},
325119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r3 minus r5 LSL 4 PreIndex",
325219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r12_r3_minus_r5_LSL_4_PreIndex",
325319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
325419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
325519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r9, r1, minus, r7, LSL, 19, PreIndex},
325619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r9 r1 minus r7 LSL 19 PreIndex",
325719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r9_r1_minus_r7_LSL_19_PreIndex",
325819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
325919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
326019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r11, minus, r7, ROR, 5, PreIndex},
326119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r11 minus r7 ROR 5 PreIndex",
326219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r2_r11_minus_r7_ROR_5_PreIndex",
326319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
326419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
326519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r5, r9, minus, r6, LSL, 11, PreIndex},
326619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r5 r9 minus r6 LSL 11 PreIndex",
326719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r5_r9_minus_r6_LSL_11_PreIndex",
326819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
326919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
327019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r7, minus, r2, LSL, 12, PreIndex},
327119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r7 minus r2 LSL 12 PreIndex",
327219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r3_r7_minus_r2_LSL_12_PreIndex",
327319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
327419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
327519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r8, minus, r0, LSL, 3, PreIndex},
327619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r8 minus r0 LSL 3 PreIndex",
327719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r4_r8_minus_r0_LSL_3_PreIndex",
327819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
327919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
328019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r8, r10, minus, r5, ROR, 8, PreIndex},
328119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r8 r10 minus r5 ROR 8 PreIndex",
328219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r8_r10_minus_r5_ROR_8_PreIndex",
328319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
328419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
328519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r11, r14, minus, r0, LSL, 17, PreIndex},
328619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r11 r14 minus r0 LSL 17 PreIndex",
328719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r11_r14_minus_r0_LSL_17_PreIndex",
328819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
328919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
329019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r0, minus, r3, ROR, 10, PreIndex},
329119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r0 minus r3 ROR 10 PreIndex",
329219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r7_r0_minus_r3_ROR_10_PreIndex",
329319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
329419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
329519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r12, minus, r1, LSL, 20, PreIndex},
329619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r12 minus r1 LSL 20 PreIndex",
329719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r4_r12_minus_r1_LSL_20_PreIndex",
329819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
329919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
330019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r2, minus, r4, LSL, 14, PreIndex},
330119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r2 minus r4 LSL 14 PreIndex",
330219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r3_r2_minus_r4_LSL_14_PreIndex",
330319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
330419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
330519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r4, r6, minus, r11, LSL, 24, PreIndex},
330619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r4 r6 minus r11 LSL 24 PreIndex",
330719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r4_r6_minus_r11_LSL_24_PreIndex",
330819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
330919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
331019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r3, r6, minus, r10, LSL, 8, PreIndex},
331119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r3 r6 minus r10 LSL 8 PreIndex",
331219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r3_r6_minus_r10_LSL_8_PreIndex",
331319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
331419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
331519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r3, minus, r9, LSL, 7, PreIndex},
331619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r3 minus r9 LSL 7 PreIndex",
331719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r12_r3_minus_r9_LSL_7_PreIndex",
331819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
331919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
332019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r2, r1, minus, r14, ROR, 17, PreIndex},
332119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r2 r1 minus r14 ROR 17 PreIndex",
332219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r2_r1_minus_r14_ROR_17_PreIndex",
332319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
332419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
332519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r12, r10, minus, r6, ROR, 5, PreIndex},
332619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r12 r10 minus r6 ROR 5 PreIndex",
332719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r12_r10_minus_r6_ROR_5_PreIndex",
332819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
332919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex},
333019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois     {{al, r7, r1, minus, r5, ROR, 20, PreIndex},
333119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "al r7 r1 minus r5 ROR 20 PreIndex",
333219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      "NegativePreIndex_al_r7_r1_minus_r5_ROR_20_PreIndex",
333319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      ARRAY_SIZE(kNegativePreIndex),
333419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      kNegativePreIndex}};
333588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
333688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// We record all inputs to the instructions as outputs. This way, we also check
333788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// that what shouldn't change didn't change.
333888c46b84df005638546de5e4e965bdcc31352f48Pierre Langloisstruct TestResult {
333988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  size_t output_size;
334088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  const Inputs* outputs;
334188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois};
334288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
334388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// These headers each contain an array of `TestResult` with the reference output
334488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// values. The reference arrays are names `kReference{mnemonic}`.
3345d3832965c62a8ad461b9ea9eb0994ca6b0a3da2cAlexandre Rames#include "aarch32/traces/simulator-cond-rd-memop-rs-shift-amount-1to31-a32-ldr.h"
3346d3832965c62a8ad461b9ea9eb0994ca6b0a3da2cAlexandre Rames#include "aarch32/traces/simulator-cond-rd-memop-rs-shift-amount-1to31-a32-ldrb.h"
3347d3832965c62a8ad461b9ea9eb0994ca6b0a3da2cAlexandre Rames#include "aarch32/traces/simulator-cond-rd-memop-rs-shift-amount-1to31-a32-str.h"
3348d3832965c62a8ad461b9ea9eb0994ca6b0a3da2cAlexandre Rames#include "aarch32/traces/simulator-cond-rd-memop-rs-shift-amount-1to31-a32-strb.h"
334988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
335019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
335188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// The maximum number of errors to report in detail for each test.
33521d451fce2580f360ef249893135526156985a85cPierre Langloisconst unsigned kErrorReportLimit = 8;
335388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
335419c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langloistypedef void (MacroAssembler::*Fn)(Condition cond,
335519c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois                                   Register rd,
335688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                   const MemOperand& memop);
335788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
335828ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langloisvoid TestHelper(Fn instruction,
335928ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois                const char* mnemonic,
336028ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois                const TestResult reference[]) {
336188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  SETUP();
336210dae1a549308bddc1931f29754d6a4459f70c9bJacob Bramley  masm.UseA32();
336388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  START();
336488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
336588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  // Data to compare to `reference`.
336688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  TestResult* results[ARRAY_SIZE(kTests)];
336788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
336888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  // Test cases for memory bound instructions may allocate a buffer and save its
336988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  // address in this array.
337088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  byte* scratch_memory_buffers[ARRAY_SIZE(kTests)];
337188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
337288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  // Generate a loop for each element in `kTests`. Each loop tests one specific
337388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  // instruction.
337488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
337588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    // Allocate results on the heap for this test.
337688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    results[i] = new TestResult;
337788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    results[i]->outputs = new Inputs[kTests[i].input_size];
337888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    results[i]->output_size = kTests[i].input_size;
337988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
3380f5348cedd702124c90fc75e75d0195e2e485c620Pierre Langlois    size_t input_stride = sizeof(kTests[i].inputs[0]) * kTests[i].input_size;
3381f5348cedd702124c90fc75e75d0195e2e485c620Pierre Langlois    VIXL_ASSERT(IsUint32(input_stride));
338288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
338388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    scratch_memory_buffers[i] = NULL;
338488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
338588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    Label loop;
338688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    UseScratchRegisterScope scratch_registers(&masm);
338788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    // Include all registers from r0 ro r12.
338888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    scratch_registers.Include(RegisterList(0x1fff));
338988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
339088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    // Values to pass to the macro-assembler.
339188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    Condition cond = kTests[i].operands.cond;
339288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    Register rd = kTests[i].operands.rd;
339388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    Register rn = kTests[i].operands.rn;
339488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    Sign sign = kTests[i].operands.sign;
339588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    Register rm = kTests[i].operands.rm;
339688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    ShiftType shift = kTests[i].operands.shift;
339788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    uint32_t amount = kTests[i].operands.amount;
339888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    AddrMode addr_mode = kTests[i].operands.addr_mode;
339988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    MemOperand memop(rn, sign, rm, shift, amount, addr_mode);
340088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    scratch_registers.Exclude(rd);
340188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    scratch_registers.Exclude(rn);
340288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    scratch_registers.Exclude(rm);
340388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
340488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    // Allocate reserved registers for our own use.
340588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    Register input_ptr = scratch_registers.Acquire();
340688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    Register input_end = scratch_registers.Acquire();
340788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    Register result_ptr = scratch_registers.Acquire();
340888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
340988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    // Initialize `input_ptr` to the first element and `input_end` the address
341088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    // after the array.
3411f5348cedd702124c90fc75e75d0195e2e485c620Pierre Langlois    __ Mov(input_ptr, Operand::From(kTests[i].inputs));
3412f5348cedd702124c90fc75e75d0195e2e485c620Pierre Langlois    __ Add(input_end, input_ptr, static_cast<uint32_t>(input_stride));
3413f5348cedd702124c90fc75e75d0195e2e485c620Pierre Langlois    __ Mov(result_ptr, Operand::From(results[i]->outputs));
341488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    __ Bind(&loop);
341588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
341688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    {
341788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      UseScratchRegisterScope temp_registers(&masm);
341888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      Register nzcv_bits = temp_registers.Acquire();
341988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      Register saved_q_bit = temp_registers.Acquire();
342088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // Save the `Q` bit flag.
342188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ Mrs(saved_q_bit, APSR);
342288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ And(saved_q_bit, saved_q_bit, QFlag);
342388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // Set the `NZCV` and `Q` flags together.
342488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ Ldr(nzcv_bits, MemOperand(input_ptr, offsetof(Inputs, apsr)));
342588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ Orr(nzcv_bits, nzcv_bits, saved_q_bit);
342688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ Msr(APSR_nzcvq, nzcv_bits);
342788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    }
342888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    __ Ldr(rd, MemOperand(input_ptr, offsetof(Inputs, rd)));
342988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    __ Ldr(rm, MemOperand(input_ptr, offsetof(Inputs, rm)));
343088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    // Allocate 4 bytes for the instruction to work with.
343188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    scratch_memory_buffers[i] = new byte[4];
343288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    {
343388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      UseScratchRegisterScope temp_registers(&masm);
343488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
343588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      Register memop_tmp = temp_registers.Acquire();
343688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      Register base_register = memop.GetBaseRegister();
343788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
343888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // Write the expected data into the scratch buffer.
3439f5348cedd702124c90fc75e75d0195e2e485c620Pierre Langlois      __ Mov(base_register, Operand::From(scratch_memory_buffers[i]));
344088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ Ldr(memop_tmp, MemOperand(input_ptr, offsetof(Inputs, memop) + 4));
344188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ Str(memop_tmp, MemOperand(base_register));
344288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
344388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // Compute the address to put into the base register so that the
344488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // `MemOperand` points to the right location.
344588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // TODO: Support more kinds of `MemOperand`.
344688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      if (!memop.IsPostIndex()) {
344788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        if (memop.IsImmediate()) {
344888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          if (memop.GetSign().IsPlus()) {
344988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            __ Mov(memop_tmp, memop.GetOffsetImmediate());
345088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            __ Sub(base_register, base_register, memop_tmp);
345188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          } else {
345288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            __ Mov(memop_tmp, -memop.GetOffsetImmediate());
345388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            __ Add(base_register, base_register, memop_tmp);
345488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          }
345588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        } else if (memop.IsShiftedRegister()) {
345619c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois          __ Mov(memop_tmp,
345719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois                 Operand(memop.GetOffsetRegister(),
345819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois                         memop.GetShift(),
345919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois                         memop.GetShiftAmount()));
346088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          if (memop.GetSign().IsPlus()) {
346188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            __ Sub(base_register, base_register, memop_tmp);
346288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          } else {
346388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            __ Add(base_register, base_register, memop_tmp);
346488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          }
346588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        }
346688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      }
346788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    }
346888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
346919c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
347088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    (masm.*instruction)(cond, rd, memop);
347188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
347288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    {
347388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      UseScratchRegisterScope temp_registers(&masm);
347488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      Register nzcv_bits = temp_registers.Acquire();
347588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ Mrs(nzcv_bits, APSR);
347688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // Only record the NZCV bits.
347788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ And(nzcv_bits, nzcv_bits, NZCVFlag);
347888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ Str(nzcv_bits, MemOperand(result_ptr, offsetof(Inputs, apsr)));
347988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    }
348088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    __ Str(rd, MemOperand(result_ptr, offsetof(Inputs, rd)));
348188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    __ Str(rm, MemOperand(result_ptr, offsetof(Inputs, rm)));
348288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    {
348388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      UseScratchRegisterScope temp_registers(&masm);
348488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      Register memop_tmp = temp_registers.Acquire();
348588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      Register base_register = memop.GetBaseRegister();
348688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
348788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // Compute the address of the scratch buffer by from the base register. If
348888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // the instruction has updated the base register, we will be able to
348988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // record it.
349088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      if (!memop.IsPostIndex()) {
349188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        if (memop.IsImmediate()) {
349288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          if (memop.GetSign().IsPlus()) {
349388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            __ Mov(memop_tmp, memop.GetOffsetImmediate());
349488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            __ Add(base_register, base_register, memop_tmp);
349588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          } else {
349688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            __ Mov(memop_tmp, -memop.GetOffsetImmediate());
349788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            __ Sub(base_register, base_register, memop_tmp);
349888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          }
349988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        } else if (memop.IsShiftedRegister()) {
350019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois          __ Mov(memop_tmp,
350119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois                 Operand(memop.GetOffsetRegister(),
350219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois                         memop.GetShift(),
350319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois                         memop.GetShiftAmount()));
350488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          if (memop.GetSign().IsPlus()) {
350588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            __ Add(base_register, base_register, memop_tmp);
350688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          } else {
350788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            __ Sub(base_register, base_register, memop_tmp);
350888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          }
350988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        }
351088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      }
351188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
351288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // Record the value of the base register, as an offset from the scratch
351388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // buffer's address.
3514f5348cedd702124c90fc75e75d0195e2e485c620Pierre Langlois      __ Mov(memop_tmp, Operand::From(scratch_memory_buffers[i]));
351588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ Sub(base_register, base_register, memop_tmp);
351688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ Str(base_register, MemOperand(result_ptr, offsetof(Inputs, memop)));
351788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
351888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      // Record the 32 bit word from memory.
351988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ Ldr(memop_tmp, MemOperand(memop_tmp));
352088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      __ Str(memop_tmp, MemOperand(result_ptr, offsetof(Inputs, memop) + 4));
352188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    }
352288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
352319c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
352488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    // Advance the result pointer.
3525f5348cedd702124c90fc75e75d0195e2e485c620Pierre Langlois    __ Add(result_ptr, result_ptr, Operand::From(sizeof(kTests[i].inputs[0])));
352688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    // Loop back until `input_ptr` is lower than `input_base`.
3527f5348cedd702124c90fc75e75d0195e2e485c620Pierre Langlois    __ Add(input_ptr, input_ptr, Operand::From(sizeof(kTests[i].inputs[0])));
352888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    __ Cmp(input_ptr, input_end);
352988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    __ B(ne, &loop);
353088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  }
353188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
353288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  END();
353388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
353488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  RUN();
353588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
353688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  if (Test::generate_test_trace()) {
353788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    // Print the results.
353888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) {
35391d451fce2580f360ef249893135526156985a85cPierre Langlois      printf("const Inputs kOutputs_%s_%s[] = {\n",
354019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois             mnemonic,
354188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois             kTests[i].identifier);
354288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      for (size_t j = 0; j < results[i]->output_size; j++) {
354388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        printf("  { ");
354488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        printf("0x%08" PRIx32, results[i]->outputs[j].apsr);
354588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        printf(", ");
354688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        printf("0x%08" PRIx32, results[i]->outputs[j].rd);
354788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        printf(", ");
354888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        printf("0x%08" PRIx32, results[i]->outputs[j].rm);
354988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        printf(", ");
355088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}",
355188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois               results[i]->outputs[j].memop[0],
355288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois               results[i]->outputs[j].memop[1]);
355388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        printf(" },\n");
355488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      }
355588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      printf("};\n");
355688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    }
35571d451fce2580f360ef249893135526156985a85cPierre Langlois    printf("const TestResult kReference%s[] = {\n", mnemonic);
355888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) {
355988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      printf("  {\n");
356019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois      printf("    ARRAY_SIZE(kOutputs_%s_%s),\n",
356119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois             mnemonic,
356288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois             kTests[i].identifier);
356388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      printf("    kOutputs_%s_%s,\n", mnemonic, kTests[i].identifier);
356488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      printf("  },\n");
356588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    }
356688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    printf("};\n");
356754fce717d9371fa2e8fc46e1d811bdb4ab74f279Alexandre Rames  } else if (kCheckSimulatorTestResults) {
356888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    // Check the results.
356988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    unsigned total_error_count = 0;
357088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) {
357188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      bool instruction_has_errors = false;
357288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      for (size_t j = 0; j < kTests[i].input_size; j++) {
357388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        uint32_t apsr = results[i]->outputs[j].apsr;
357488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        uint32_t rd = results[i]->outputs[j].rd;
357588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        uint32_t rm = results[i]->outputs[j].rm;
357688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        uint32_t memop[2] = {results[i]->outputs[j].memop[0],
357788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                             results[i]->outputs[j].memop[1]};
357888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
357988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        uint32_t apsr_input = kTests[i].inputs[j].apsr;
358088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        uint32_t rd_input = kTests[i].inputs[j].rd;
358188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        uint32_t rm_input = kTests[i].inputs[j].rm;
358288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        uint32_t memop_input[2] = {kTests[i].inputs[j].memop[0],
358388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                   kTests[i].inputs[j].memop[1]};
358488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
358588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        uint32_t apsr_ref = reference[i].outputs[j].apsr;
358688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        uint32_t rd_ref = reference[i].outputs[j].rd;
358788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        uint32_t rm_ref = reference[i].outputs[j].rm;
358888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        uint32_t memop_ref[2] = {results[i]->outputs[j].memop[0],
358988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                                 results[i]->outputs[j].memop[1]};
359088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
359119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois
359288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        if (((apsr != apsr_ref) || (rd != rd_ref) || (rm != rm_ref) ||
359388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois             ((memop[0] != memop_ref[0]) && (memop[1] != memop_ref[1]))) &&
359488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            (++total_error_count <= kErrorReportLimit)) {
359588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          // Print the instruction once even if it triggered multiple failures.
359688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          if (!instruction_has_errors) {
359719c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois            printf("Error(s) when testing \"%s %s\":\n",
359819c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois                   mnemonic,
359988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                   kTests[i].operands_description);
360088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois            instruction_has_errors = true;
360188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          }
360288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          // Print subsequent errors.
360388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("  Input:    ");
360488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("0x%08" PRIx32, apsr_input);
360588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf(", ");
360688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("0x%08" PRIx32, rd_input);
360788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf(", ");
360888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("0x%08" PRIx32, rm_input);
360988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf(", ");
361019c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois          printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}",
361119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois                 memop_input[0],
361288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                 memop_input[1]);
361388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("\n");
361488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("  Expected: ");
361588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("0x%08" PRIx32, apsr_ref);
361688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf(", ");
361788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("0x%08" PRIx32, rd_ref);
361888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf(", ");
361988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("0x%08" PRIx32, rm_ref);
362088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf(", ");
362119c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois          printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}",
362219c0535d3c9c0bec6eeecce0ae704a7fd527a9d8Pierre Langlois                 memop_ref[0],
362388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois                 memop_ref[1]);
362488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("\n");
362588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("  Found:    ");
362688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("0x%08" PRIx32, apsr);
362788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf(", ");
362888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("0x%08" PRIx32, rd);
362988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf(", ");
363088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("0x%08" PRIx32, rm);
363188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf(", ");
363288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("{0x%08" PRIx32 ", 0x%08" PRIx32 "}", memop[0], memop[1]);
363388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois          printf("\n\n");
363488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois        }
363588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      }
363688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    }
363788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
363888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    if (total_error_count > kErrorReportLimit) {
363988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      printf("%u other errors follow.\n",
364088c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois             total_error_count - kErrorReportLimit);
364188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    }
364288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    VIXL_CHECK(total_error_count == 0);
364354fce717d9371fa2e8fc46e1d811bdb4ab74f279Alexandre Rames  } else {
364454fce717d9371fa2e8fc46e1d811bdb4ab74f279Alexandre Rames    VIXL_WARNING("Assembled the code, but did not run anything.\n");
364588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  }
364688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
364788c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  for (size_t i = 0; i < ARRAY_SIZE(kTests); i++) {
364888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    delete[] results[i]->outputs;
364988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    delete results[i];
3650ec4fdd22abecf1b8f52ee9dbff596ebdded9b5d6Serban Constantinescu    delete[] scratch_memory_buffers[i];
365188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  }
365288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
365388c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  TEARDOWN();
365488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois}
365588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
365688c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois// Instantiate tests for each instruction in the list.
365728ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois// TODO: Remove this limitation by having a sandboxing mechanism.
365828ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois#if defined(VIXL_HOST_POINTER_32)
365988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois#define TEST(mnemonic)                                                        \
36601d451fce2580f360ef249893135526156985a85cPierre Langlois  void Test_##mnemonic() {                                                    \
366188c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois    TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic);   \
366288c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois  }                                                                           \
36631d451fce2580f360ef249893135526156985a85cPierre Langlois  Test test_##mnemonic(                                                       \
366488c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      "AARCH32_SIMULATOR_COND_RD_MEMOP_RS_SHIFT_AMOUNT_1TO31_A32_" #mnemonic, \
366588c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois      &Test_##mnemonic);
366628ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois#else
366728ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois#define TEST(mnemonic)                                                        \
366828ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois  void Test_##mnemonic() {                                                    \
366928ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois    VIXL_WARNING("This test can only run on a 32-bit host.\n");               \
367028ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois    USE(TestHelper);                                                          \
367128ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois  }                                                                           \
367228ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois  Test test_##mnemonic(                                                       \
367328ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois      "AARCH32_SIMULATOR_COND_RD_MEMOP_RS_SHIFT_AMOUNT_1TO31_A32_" #mnemonic, \
367428ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois      &Test_##mnemonic);
367528ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois#endif
367628ee02e59261f0aaa4824953fa3db5dd8f7f8dcfPierre Langlois
367788c46b84df005638546de5e4e965bdcc31352f48Pierre LangloisFOREACH_INSTRUCTION(TEST)
367888c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois#undef TEST
367988c46b84df005638546de5e4e965bdcc31352f48Pierre Langlois
36801d451fce2580f360ef249893135526156985a85cPierre Langlois}  // namespace
36819a9331faeba996d6c85e6e2a6355ccfc22c6cab6Rodolph Perfetta#endif
36821d451fce2580f360ef249893135526156985a85cPierre Langlois
36831d451fce2580f360ef249893135526156985a85cPierre Langlois}  // namespace aarch32
36841d451fce2580f360ef249893135526156985a85cPierre Langlois}  // namespace vixl
3685