1 // Copyright 2016, VIXL authors 2 // All rights reserved. 3 // 4 // Redistribution and use in source and binary forms, with or without 5 // modification, are permitted provided that the following conditions are met: 6 // 7 // * Redistributions of source code must retain the above copyright notice, 8 // this list of conditions and the following disclaimer. 9 // * Redistributions in binary form must reproduce the above copyright notice, 10 // this list of conditions and the following disclaimer in the documentation 11 // and/or other materials provided with the distribution. 12 // * Neither the name of ARM Limited nor the names of its contributors may be 13 // used to endorse or promote products derived from this software without 14 // specific prior written permission. 15 // 16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND 17 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 20 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 27 28 // ----------------------------------------------------------------------------- 29 // This file is auto generated from the 30 // test/aarch32/config/template-assembler-aarch32.cc.in template file using 31 // tools/generate_tests.py. 32 // 33 // PLEASE DO NOT EDIT. 34 // ----------------------------------------------------------------------------- 35 36 37 #include "test-runner.h" 38 39 #include "test-utils.h" 40 #include "test-utils-aarch32.h" 41 42 #include "aarch32/assembler-aarch32.h" 43 #include "aarch32/macro-assembler-aarch32.h" 44 45 #define BUF_SIZE (4096) 46 47 namespace vixl { 48 namespace aarch32 { 49 50 // List of instruction mnemonics. 51 #define FOREACH_INSTRUCTION(M) M(mov) 52 53 54 // The following definitions are defined again in each generated test, therefore 55 // we need to place them in an anomymous namespace. It expresses that they are 56 // local to this file only, and the compiler is not allowed to share these types 57 // across test files during template instantiation. Specifically, `Operands` has 58 // various layouts across generated tests so it absolutely cannot be shared. 59 60 #ifdef VIXL_INCLUDE_TARGET_T32 61 namespace { 62 63 // Values to be passed to the assembler to produce the instruction under test. 64 struct Operands { 65 Condition cond; 66 Register rd; 67 Register rn; 68 ShiftType shift; 69 Register rs; 70 }; 71 72 // This structure contains all data needed to test one specific 73 // instruction. 74 struct TestData { 75 // The `operands` field represents what to pass to the assembler to 76 // produce the instruction. 77 Operands operands; 78 // True if we need to generate an IT instruction for this test to be valid. 79 bool in_it_block; 80 // The condition to give the IT instruction, this will be set to "al" by 81 // default. 82 Condition it_condition; 83 // Description of the operands, used for error reporting. 84 const char* operands_description; 85 // Unique identifier, used for generating traces. 86 const char* identifier; 87 }; 88 89 struct TestResult { 90 size_t size; 91 const byte* encoding; 92 }; 93 94 // Each element of this array produce one instruction encoding. 95 const TestData kTests[] = 96 {{{ge, r1, r1, LSL, r6}, true, ge, "ge r1 r1 LSL r6", "ge_r1_r1_LSL_r6"}, 97 {{cs, r7, r7, LSL, r2}, true, cs, "cs r7 r7 LSL r2", "cs_r7_r7_LSL_r2"}, 98 {{gt, r1, r1, LSL, r0}, true, gt, "gt r1 r1 LSL r0", "gt_r1_r1_LSL_r0"}, 99 {{pl, r3, r3, ROR, r3}, true, pl, "pl r3 r3 ROR r3", "pl_r3_r3_ROR_r3"}, 100 {{vc, r4, r4, ROR, r1}, true, vc, "vc r4 r4 ROR r1", "vc_r4_r4_ROR_r1"}, 101 {{vs, r2, r2, LSL, r0}, true, vs, "vs r2 r2 LSL r0", "vs_r2_r2_LSL_r0"}, 102 {{vc, r4, r4, LSR, r4}, true, vc, "vc r4 r4 LSR r4", "vc_r4_r4_LSR_r4"}, 103 {{le, r6, r6, ASR, r6}, true, le, "le r6 r6 ASR r6", "le_r6_r6_ASR_r6"}, 104 {{hi, r6, r6, ROR, r5}, true, hi, "hi r6 r6 ROR r5", "hi_r6_r6_ROR_r5"}, 105 {{le, r3, r3, ASR, r6}, true, le, "le r3 r3 ASR r6", "le_r3_r3_ASR_r6"}, 106 {{le, r7, r7, LSL, r0}, true, le, "le r7 r7 LSL r0", "le_r7_r7_LSL_r0"}, 107 {{pl, r3, r3, ASR, r2}, true, pl, "pl r3 r3 ASR r2", "pl_r3_r3_ASR_r2"}, 108 {{mi, r4, r4, LSL, r5}, true, mi, "mi r4 r4 LSL r5", "mi_r4_r4_LSL_r5"}, 109 {{le, r5, r5, LSR, r6}, true, le, "le r5 r5 LSR r6", "le_r5_r5_LSR_r6"}, 110 {{cs, r0, r0, ASR, r6}, true, cs, "cs r0 r0 ASR r6", "cs_r0_r0_ASR_r6"}, 111 {{vs, r2, r2, LSL, r1}, true, vs, "vs r2 r2 LSL r1", "vs_r2_r2_LSL_r1"}, 112 {{hi, r5, r5, LSL, r6}, true, hi, "hi r5 r5 LSL r6", "hi_r5_r5_LSL_r6"}, 113 {{ls, r6, r6, LSL, r3}, true, ls, "ls r6 r6 LSL r3", "ls_r6_r6_LSL_r3"}, 114 {{pl, r2, r2, ASR, r7}, true, pl, "pl r2 r2 ASR r7", "pl_r2_r2_ASR_r7"}, 115 {{ls, r0, r0, LSR, r2}, true, ls, "ls r0 r0 LSR r2", "ls_r0_r0_LSR_r2"}, 116 {{eq, r5, r5, ROR, r2}, true, eq, "eq r5 r5 ROR r2", "eq_r5_r5_ROR_r2"}, 117 {{eq, r5, r5, LSR, r1}, true, eq, "eq r5 r5 LSR r1", "eq_r5_r5_LSR_r1"}, 118 {{ge, r4, r4, ASR, r1}, true, ge, "ge r4 r4 ASR r1", "ge_r4_r4_ASR_r1"}, 119 {{ls, r6, r6, LSR, r0}, true, ls, "ls r6 r6 LSR r0", "ls_r6_r6_LSR_r0"}, 120 {{ls, r0, r0, ASR, r2}, true, ls, "ls r0 r0 ASR r2", "ls_r0_r0_ASR_r2"}, 121 {{cc, r1, r1, LSL, r6}, true, cc, "cc r1 r1 LSL r6", "cc_r1_r1_LSL_r6"}, 122 {{ge, r6, r6, ROR, r3}, true, ge, "ge r6 r6 ROR r3", "ge_r6_r6_ROR_r3"}, 123 {{cs, r7, r7, ASR, r3}, true, cs, "cs r7 r7 ASR r3", "cs_r7_r7_ASR_r3"}, 124 {{ne, r3, r3, ROR, r4}, true, ne, "ne r3 r3 ROR r4", "ne_r3_r3_ROR_r4"}, 125 {{hi, r1, r1, ASR, r6}, true, hi, "hi r1 r1 ASR r6", "hi_r1_r1_ASR_r6"}, 126 {{ls, r7, r7, LSL, r4}, true, ls, "ls r7 r7 LSL r4", "ls_r7_r7_LSL_r4"}, 127 {{ge, r4, r4, LSL, r0}, true, ge, "ge r4 r4 LSL r0", "ge_r4_r4_LSL_r0"}, 128 {{vs, r4, r4, LSR, r4}, true, vs, "vs r4 r4 LSR r4", "vs_r4_r4_LSR_r4"}, 129 {{cc, r0, r0, LSR, r0}, true, cc, "cc r0 r0 LSR r0", "cc_r0_r0_LSR_r0"}, 130 {{mi, r5, r5, LSL, r5}, true, mi, "mi r5 r5 LSL r5", "mi_r5_r5_LSL_r5"}, 131 {{ls, r1, r1, LSR, r0}, true, ls, "ls r1 r1 LSR r0", "ls_r1_r1_LSR_r0"}, 132 {{ge, r1, r1, ASR, r7}, true, ge, "ge r1 r1 ASR r7", "ge_r1_r1_ASR_r7"}, 133 {{eq, r4, r4, ROR, r4}, true, eq, "eq r4 r4 ROR r4", "eq_r4_r4_ROR_r4"}, 134 {{vc, r5, r5, ROR, r3}, true, vc, "vc r5 r5 ROR r3", "vc_r5_r5_ROR_r3"}, 135 {{ls, r3, r3, LSL, r2}, true, ls, "ls r3 r3 LSL r2", "ls_r3_r3_LSL_r2"}, 136 {{ls, r6, r6, ASR, r3}, true, ls, "ls r6 r6 ASR r3", "ls_r6_r6_ASR_r3"}, 137 {{lt, r4, r4, ROR, r3}, true, lt, "lt r4 r4 ROR r3", "lt_r4_r4_ROR_r3"}, 138 {{vc, r6, r6, ASR, r7}, true, vc, "vc r6 r6 ASR r7", "vc_r6_r6_ASR_r7"}, 139 {{ls, r1, r1, LSR, r3}, true, ls, "ls r1 r1 LSR r3", "ls_r1_r1_LSR_r3"}, 140 {{ne, r6, r6, ROR, r6}, true, ne, "ne r6 r6 ROR r6", "ne_r6_r6_ROR_r6"}, 141 {{cc, r3, r3, LSL, r7}, true, cc, "cc r3 r3 LSL r7", "cc_r3_r3_LSL_r7"}, 142 {{hi, r3, r3, LSR, r0}, true, hi, "hi r3 r3 LSR r0", "hi_r3_r3_LSR_r0"}, 143 {{gt, r5, r5, ROR, r0}, true, gt, "gt r5 r5 ROR r0", "gt_r5_r5_ROR_r0"}, 144 {{cc, r3, r3, LSL, r0}, true, cc, "cc r3 r3 LSL r0", "cc_r3_r3_LSL_r0"}, 145 {{le, r1, r1, LSL, r0}, true, le, "le r1 r1 LSL r0", "le_r1_r1_LSL_r0"}, 146 {{vs, r5, r5, ASR, r2}, true, vs, "vs r5 r5 ASR r2", "vs_r5_r5_ASR_r2"}, 147 {{mi, r2, r2, ASR, r6}, true, mi, "mi r2 r2 ASR r6", "mi_r2_r2_ASR_r6"}, 148 {{ls, r7, r7, LSR, r5}, true, ls, "ls r7 r7 LSR r5", "ls_r7_r7_LSR_r5"}, 149 {{lt, r0, r0, LSR, r0}, true, lt, "lt r0 r0 LSR r0", "lt_r0_r0_LSR_r0"}, 150 {{mi, r6, r6, ROR, r1}, true, mi, "mi r6 r6 ROR r1", "mi_r6_r6_ROR_r1"}, 151 {{cs, r1, r1, ASR, r3}, true, cs, "cs r1 r1 ASR r3", "cs_r1_r1_ASR_r3"}, 152 {{le, r0, r0, ROR, r3}, true, le, "le r0 r0 ROR r3", "le_r0_r0_ROR_r3"}, 153 {{mi, r7, r7, LSR, r5}, true, mi, "mi r7 r7 LSR r5", "mi_r7_r7_LSR_r5"}, 154 {{mi, r0, r0, LSL, r7}, true, mi, "mi r0 r0 LSL r7", "mi_r0_r0_LSL_r7"}, 155 {{vc, r3, r3, LSR, r7}, true, vc, "vc r3 r3 LSR r7", "vc_r3_r3_LSR_r7"}, 156 {{ge, r3, r3, ROR, r7}, true, ge, "ge r3 r3 ROR r7", "ge_r3_r3_ROR_r7"}, 157 {{vc, r1, r1, LSL, r7}, true, vc, "vc r1 r1 LSL r7", "vc_r1_r1_LSL_r7"}, 158 {{hi, r3, r3, LSL, r3}, true, hi, "hi r3 r3 LSL r3", "hi_r3_r3_LSL_r3"}, 159 {{eq, r1, r1, ASR, r5}, true, eq, "eq r1 r1 ASR r5", "eq_r1_r1_ASR_r5"}, 160 {{lt, r5, r5, LSR, r4}, true, lt, "lt r5 r5 LSR r4", "lt_r5_r5_LSR_r4"}, 161 {{gt, r1, r1, ASR, r4}, true, gt, "gt r1 r1 ASR r4", "gt_r1_r1_ASR_r4"}, 162 {{ge, r4, r4, ROR, r1}, true, ge, "ge r4 r4 ROR r1", "ge_r4_r4_ROR_r1"}, 163 {{vs, r5, r5, LSL, r0}, true, vs, "vs r5 r5 LSL r0", "vs_r5_r5_LSL_r0"}, 164 {{eq, r0, r0, ASR, r4}, true, eq, "eq r0 r0 ASR r4", "eq_r0_r0_ASR_r4"}, 165 {{ge, r3, r3, LSL, r4}, true, ge, "ge r3 r3 LSL r4", "ge_r3_r3_LSL_r4"}, 166 {{pl, r3, r3, ASR, r6}, true, pl, "pl r3 r3 ASR r6", "pl_r3_r3_ASR_r6"}, 167 {{cc, r2, r2, LSL, r3}, true, cc, "cc r2 r2 LSL r3", "cc_r2_r2_LSL_r3"}, 168 {{pl, r3, r3, ASR, r1}, true, pl, "pl r3 r3 ASR r1", "pl_r3_r3_ASR_r1"}, 169 {{vc, r2, r2, LSR, r7}, true, vc, "vc r2 r2 LSR r7", "vc_r2_r2_LSR_r7"}, 170 {{ge, r1, r1, ASR, r2}, true, ge, "ge r1 r1 ASR r2", "ge_r1_r1_ASR_r2"}, 171 {{ge, r7, r7, LSR, r4}, true, ge, "ge r7 r7 LSR r4", "ge_r7_r7_LSR_r4"}, 172 {{ls, r5, r5, LSR, r3}, true, ls, "ls r5 r5 LSR r3", "ls_r5_r5_LSR_r3"}, 173 {{eq, r4, r4, LSR, r5}, true, eq, "eq r4 r4 LSR r5", "eq_r4_r4_LSR_r5"}, 174 {{ne, r7, r7, ROR, r6}, true, ne, "ne r7 r7 ROR r6", "ne_r7_r7_ROR_r6"}, 175 {{mi, r5, r5, LSL, r7}, true, mi, "mi r5 r5 LSL r7", "mi_r5_r5_LSL_r7"}, 176 {{cs, r7, r7, ROR, r4}, true, cs, "cs r7 r7 ROR r4", "cs_r7_r7_ROR_r4"}, 177 {{mi, r1, r1, ASR, r6}, true, mi, "mi r1 r1 ASR r6", "mi_r1_r1_ASR_r6"}, 178 {{pl, r6, r6, ASR, r0}, true, pl, "pl r6 r6 ASR r0", "pl_r6_r6_ASR_r0"}, 179 {{cs, r3, r3, ASR, r2}, true, cs, "cs r3 r3 ASR r2", "cs_r3_r3_ASR_r2"}, 180 {{eq, r2, r2, LSL, r1}, true, eq, "eq r2 r2 LSL r1", "eq_r2_r2_LSL_r1"}, 181 {{lt, r6, r6, LSR, r5}, true, lt, "lt r6 r6 LSR r5", "lt_r6_r6_LSR_r5"}, 182 {{cc, r0, r0, ASR, r5}, true, cc, "cc r0 r0 ASR r5", "cc_r0_r0_ASR_r5"}, 183 {{cs, r1, r1, LSL, r7}, true, cs, "cs r1 r1 LSL r7", "cs_r1_r1_LSL_r7"}, 184 {{ge, r0, r0, LSR, r0}, true, ge, "ge r0 r0 LSR r0", "ge_r0_r0_LSR_r0"}, 185 {{cc, r4, r4, ROR, r7}, true, cc, "cc r4 r4 ROR r7", "cc_r4_r4_ROR_r7"}, 186 {{cs, r5, r5, ASR, r4}, true, cs, "cs r5 r5 ASR r4", "cs_r5_r5_ASR_r4"}, 187 {{vc, r6, r6, LSL, r0}, true, vc, "vc r6 r6 LSL r0", "vc_r6_r6_LSL_r0"}, 188 {{gt, r5, r5, LSL, r4}, true, gt, "gt r5 r5 LSL r4", "gt_r5_r5_LSL_r4"}, 189 {{hi, r2, r2, ROR, r3}, true, hi, "hi r2 r2 ROR r3", "hi_r2_r2_ROR_r3"}, 190 {{cc, r4, r4, ROR, r3}, true, cc, "cc r4 r4 ROR r3", "cc_r4_r4_ROR_r3"}, 191 {{hi, r0, r0, ROR, r4}, true, hi, "hi r0 r0 ROR r4", "hi_r0_r0_ROR_r4"}, 192 {{vs, r1, r1, ROR, r3}, true, vs, "vs r1 r1 ROR r3", "vs_r1_r1_ROR_r3"}, 193 {{gt, r4, r4, ROR, r5}, true, gt, "gt r4 r4 ROR r5", "gt_r4_r4_ROR_r5"}, 194 {{lt, r1, r1, LSR, r2}, true, lt, "lt r1 r1 LSR r2", "lt_r1_r1_LSR_r2"}, 195 {{lt, r4, r4, LSL, r4}, true, lt, "lt r4 r4 LSL r4", "lt_r4_r4_LSL_r4"}, 196 {{mi, r3, r3, LSL, r2}, true, mi, "mi r3 r3 LSL r2", "mi_r3_r3_LSL_r2"}, 197 {{cs, r6, r6, ROR, r7}, true, cs, "cs r6 r6 ROR r7", "cs_r6_r6_ROR_r7"}, 198 {{vc, r5, r5, LSR, r3}, true, vc, "vc r5 r5 LSR r3", "vc_r5_r5_LSR_r3"}, 199 {{vc, r4, r4, LSL, r4}, true, vc, "vc r4 r4 LSL r4", "vc_r4_r4_LSL_r4"}, 200 {{pl, r0, r0, LSL, r2}, true, pl, "pl r0 r0 LSL r2", "pl_r0_r0_LSL_r2"}, 201 {{ne, r3, r3, LSL, r5}, true, ne, "ne r3 r3 LSL r5", "ne_r3_r3_LSL_r5"}, 202 {{mi, r7, r7, ROR, r5}, true, mi, "mi r7 r7 ROR r5", "mi_r7_r7_ROR_r5"}, 203 {{ls, r4, r4, LSL, r4}, true, ls, "ls r4 r4 LSL r4", "ls_r4_r4_LSL_r4"}, 204 {{hi, r0, r0, ASR, r1}, true, hi, "hi r0 r0 ASR r1", "hi_r0_r0_ASR_r1"}, 205 {{vs, r5, r5, ROR, r0}, true, vs, "vs r5 r5 ROR r0", "vs_r5_r5_ROR_r0"}, 206 {{hi, r1, r1, ROR, r4}, true, hi, "hi r1 r1 ROR r4", "hi_r1_r1_ROR_r4"}, 207 {{vs, r7, r7, ROR, r2}, true, vs, "vs r7 r7 ROR r2", "vs_r7_r7_ROR_r2"}, 208 {{gt, r5, r5, ROR, r2}, true, gt, "gt r5 r5 ROR r2", "gt_r5_r5_ROR_r2"}, 209 {{ge, r0, r0, LSR, r7}, true, ge, "ge r0 r0 LSR r7", "ge_r0_r0_LSR_r7"}, 210 {{cs, r7, r7, LSR, r0}, true, cs, "cs r7 r7 LSR r0", "cs_r7_r7_LSR_r0"}, 211 {{ge, r1, r1, LSL, r3}, true, ge, "ge r1 r1 LSL r3", "ge_r1_r1_LSL_r3"}, 212 {{lt, r5, r5, LSL, r5}, true, lt, "lt r5 r5 LSL r5", "lt_r5_r5_LSL_r5"}, 213 {{ls, r3, r3, ROR, r0}, true, ls, "ls r3 r3 ROR r0", "ls_r3_r3_ROR_r0"}, 214 {{cs, r0, r0, LSL, r7}, true, cs, "cs r0 r0 LSL r7", "cs_r0_r0_LSL_r7"}, 215 {{pl, r7, r7, ASR, r0}, true, pl, "pl r7 r7 ASR r0", "pl_r7_r7_ASR_r0"}, 216 {{vs, r2, r2, LSL, r3}, true, vs, "vs r2 r2 LSL r3", "vs_r2_r2_LSL_r3"}, 217 {{ne, r0, r0, ROR, r1}, true, ne, "ne r0 r0 ROR r1", "ne_r0_r0_ROR_r1"}, 218 {{vs, r2, r2, ASR, r2}, true, vs, "vs r2 r2 ASR r2", "vs_r2_r2_ASR_r2"}, 219 {{pl, r6, r6, LSR, r3}, true, pl, "pl r6 r6 LSR r3", "pl_r6_r6_LSR_r3"}, 220 {{gt, r3, r3, ROR, r0}, true, gt, "gt r3 r3 ROR r0", "gt_r3_r3_ROR_r0"}, 221 {{vc, r3, r3, LSL, r7}, true, vc, "vc r3 r3 LSL r7", "vc_r3_r3_LSL_r7"}, 222 {{ge, r6, r6, LSL, r6}, true, ge, "ge r6 r6 LSL r6", "ge_r6_r6_LSL_r6"}, 223 {{ls, r2, r2, LSL, r3}, true, ls, "ls r2 r2 LSL r3", "ls_r2_r2_LSL_r3"}, 224 {{vc, r4, r4, ROR, r5}, true, vc, "vc r4 r4 ROR r5", "vc_r4_r4_ROR_r5"}, 225 {{hi, r7, r7, LSL, r1}, true, hi, "hi r7 r7 LSL r1", "hi_r7_r7_LSL_r1"}, 226 {{cs, r1, r1, ROR, r2}, true, cs, "cs r1 r1 ROR r2", "cs_r1_r1_ROR_r2"}, 227 {{vs, r1, r1, ROR, r7}, true, vs, "vs r1 r1 ROR r7", "vs_r1_r1_ROR_r7"}, 228 {{lt, r3, r3, ASR, r2}, true, lt, "lt r3 r3 ASR r2", "lt_r3_r3_ASR_r2"}, 229 {{ne, r0, r0, LSR, r7}, true, ne, "ne r0 r0 LSR r7", "ne_r0_r0_LSR_r7"}, 230 {{vs, r6, r6, ROR, r1}, true, vs, "vs r6 r6 ROR r1", "vs_r6_r6_ROR_r1"}, 231 {{hi, r3, r3, ROR, r1}, true, hi, "hi r3 r3 ROR r1", "hi_r3_r3_ROR_r1"}, 232 {{ls, r1, r1, ASR, r0}, true, ls, "ls r1 r1 ASR r0", "ls_r1_r1_ASR_r0"}, 233 {{cs, r1, r1, LSL, r0}, true, cs, "cs r1 r1 LSL r0", "cs_r1_r1_LSL_r0"}, 234 {{cc, r7, r7, ROR, r6}, true, cc, "cc r7 r7 ROR r6", "cc_r7_r7_ROR_r6"}, 235 {{mi, r2, r2, LSL, r5}, true, mi, "mi r2 r2 LSL r5", "mi_r2_r2_LSL_r5"}, 236 {{gt, r6, r6, LSL, r5}, true, gt, "gt r6 r6 LSL r5", "gt_r6_r6_LSL_r5"}, 237 {{gt, r4, r4, LSL, r5}, true, gt, "gt r4 r4 LSL r5", "gt_r4_r4_LSL_r5"}, 238 {{vc, r3, r3, LSL, r4}, true, vc, "vc r3 r3 LSL r4", "vc_r3_r3_LSL_r4"}, 239 {{gt, r7, r7, LSR, r2}, true, gt, "gt r7 r7 LSR r2", "gt_r7_r7_LSR_r2"}, 240 {{le, r5, r5, ROR, r2}, true, le, "le r5 r5 ROR r2", "le_r5_r5_ROR_r2"}, 241 {{vs, r6, r6, LSL, r3}, true, vs, "vs r6 r6 LSL r3", "vs_r6_r6_LSL_r3"}, 242 {{gt, r1, r1, LSL, r6}, true, gt, "gt r1 r1 LSL r6", "gt_r1_r1_LSL_r6"}, 243 {{cc, r0, r0, LSR, r5}, true, cc, "cc r0 r0 LSR r5", "cc_r0_r0_LSR_r5"}, 244 {{eq, r4, r4, LSR, r3}, true, eq, "eq r4 r4 LSR r3", "eq_r4_r4_LSR_r3"}, 245 {{hi, r6, r6, LSR, r6}, true, hi, "hi r6 r6 LSR r6", "hi_r6_r6_LSR_r6"}, 246 {{hi, r5, r5, LSR, r4}, true, hi, "hi r5 r5 LSR r4", "hi_r5_r5_LSR_r4"}, 247 {{vs, r6, r6, ASR, r0}, true, vs, "vs r6 r6 ASR r0", "vs_r6_r6_ASR_r0"}, 248 {{hi, r6, r6, LSL, r6}, true, hi, "hi r6 r6 LSL r6", "hi_r6_r6_LSL_r6"}, 249 {{eq, r6, r6, ROR, r1}, true, eq, "eq r6 r6 ROR r1", "eq_r6_r6_ROR_r1"}, 250 {{ne, r1, r1, LSL, r5}, true, ne, "ne r1 r1 LSL r5", "ne_r1_r1_LSL_r5"}, 251 {{lt, r0, r0, ASR, r4}, true, lt, "lt r0 r0 ASR r4", "lt_r0_r0_ASR_r4"}, 252 {{le, r2, r2, LSL, r0}, true, le, "le r2 r2 LSL r0", "le_r2_r2_LSL_r0"}, 253 {{ls, r4, r4, ASR, r2}, true, ls, "ls r4 r4 ASR r2", "ls_r4_r4_ASR_r2"}, 254 {{pl, r4, r4, ASR, r2}, true, pl, "pl r4 r4 ASR r2", "pl_r4_r4_ASR_r2"}, 255 {{lt, r6, r6, ROR, r3}, true, lt, "lt r6 r6 ROR r3", "lt_r6_r6_ROR_r3"}, 256 {{ne, r4, r4, ROR, r5}, true, ne, "ne r4 r4 ROR r5", "ne_r4_r4_ROR_r5"}, 257 {{cc, r7, r7, LSL, r7}, true, cc, "cc r7 r7 LSL r7", "cc_r7_r7_LSL_r7"}, 258 {{le, r7, r7, LSR, r6}, true, le, "le r7 r7 LSR r6", "le_r7_r7_LSR_r6"}, 259 {{vc, r4, r4, LSL, r7}, true, vc, "vc r4 r4 LSL r7", "vc_r4_r4_LSL_r7"}, 260 {{vs, r1, r1, LSL, r3}, true, vs, "vs r1 r1 LSL r3", "vs_r1_r1_LSL_r3"}, 261 {{eq, r3, r3, LSL, r2}, true, eq, "eq r3 r3 LSL r2", "eq_r3_r3_LSL_r2"}, 262 {{ls, r7, r7, LSL, r3}, true, ls, "ls r7 r7 LSL r3", "ls_r7_r7_LSL_r3"}, 263 {{lt, r2, r2, ROR, r3}, true, lt, "lt r2 r2 ROR r3", "lt_r2_r2_ROR_r3"}, 264 {{lt, r2, r2, LSR, r2}, true, lt, "lt r2 r2 LSR r2", "lt_r2_r2_LSR_r2"}, 265 {{eq, r0, r0, LSL, r5}, true, eq, "eq r0 r0 LSL r5", "eq_r0_r0_LSL_r5"}, 266 {{vc, r2, r2, LSR, r1}, true, vc, "vc r2 r2 LSR r1", "vc_r2_r2_LSR_r1"}, 267 {{ge, r6, r6, ROR, r2}, true, ge, "ge r6 r6 ROR r2", "ge_r6_r6_ROR_r2"}, 268 {{ls, r1, r1, LSL, r4}, true, ls, "ls r1 r1 LSL r4", "ls_r1_r1_LSL_r4"}, 269 {{le, r6, r6, ROR, r2}, true, le, "le r6 r6 ROR r2", "le_r6_r6_ROR_r2"}, 270 {{vc, r6, r6, LSL, r5}, true, vc, "vc r6 r6 LSL r5", "vc_r6_r6_LSL_r5"}, 271 {{le, r0, r0, LSL, r5}, true, le, "le r0 r0 LSL r5", "le_r0_r0_LSL_r5"}, 272 {{vc, r3, r3, LSR, r1}, true, vc, "vc r3 r3 LSR r1", "vc_r3_r3_LSR_r1"}, 273 {{ge, r2, r2, LSR, r0}, true, ge, "ge r2 r2 LSR r0", "ge_r2_r2_LSR_r0"}, 274 {{vc, r4, r4, LSR, r0}, true, vc, "vc r4 r4 LSR r0", "vc_r4_r4_LSR_r0"}, 275 {{pl, r7, r7, LSR, r0}, true, pl, "pl r7 r7 LSR r0", "pl_r7_r7_LSR_r0"}, 276 {{vs, r7, r7, ROR, r4}, true, vs, "vs r7 r7 ROR r4", "vs_r7_r7_ROR_r4"}, 277 {{cs, r6, r6, ASR, r5}, true, cs, "cs r6 r6 ASR r5", "cs_r6_r6_ASR_r5"}, 278 {{ls, r6, r6, ROR, r4}, true, ls, "ls r6 r6 ROR r4", "ls_r6_r6_ROR_r4"}, 279 {{pl, r2, r2, LSR, r4}, true, pl, "pl r2 r2 LSR r4", "pl_r2_r2_LSR_r4"}, 280 {{lt, r4, r4, ASR, r0}, true, lt, "lt r4 r4 ASR r0", "lt_r4_r4_ASR_r0"}, 281 {{vc, r0, r0, LSL, r6}, true, vc, "vc r0 r0 LSL r6", "vc_r0_r0_LSL_r6"}, 282 {{lt, r7, r7, LSL, r6}, true, lt, "lt r7 r7 LSL r6", "lt_r7_r7_LSL_r6"}, 283 {{gt, r2, r2, LSL, r2}, true, gt, "gt r2 r2 LSL r2", "gt_r2_r2_LSL_r2"}, 284 {{vc, r2, r2, ROR, r7}, true, vc, "vc r2 r2 ROR r7", "vc_r2_r2_ROR_r7"}, 285 {{cc, r5, r5, ASR, r6}, true, cc, "cc r5 r5 ASR r6", "cc_r5_r5_ASR_r6"}, 286 {{cc, r0, r0, LSL, r0}, true, cc, "cc r0 r0 LSL r0", "cc_r0_r0_LSL_r0"}, 287 {{vc, r4, r4, ROR, r6}, true, vc, "vc r4 r4 ROR r6", "vc_r4_r4_ROR_r6"}, 288 {{gt, r6, r6, LSR, r3}, true, gt, "gt r6 r6 LSR r3", "gt_r6_r6_LSR_r3"}, 289 {{ne, r5, r5, LSR, r1}, true, ne, "ne r5 r5 LSR r1", "ne_r5_r5_LSR_r1"}, 290 {{ne, r3, r3, ROR, r3}, true, ne, "ne r3 r3 ROR r3", "ne_r3_r3_ROR_r3"}, 291 {{ge, r3, r3, LSL, r2}, true, ge, "ge r3 r3 LSL r2", "ge_r3_r3_LSL_r2"}, 292 {{pl, r3, r3, LSL, r2}, true, pl, "pl r3 r3 LSL r2", "pl_r3_r3_LSL_r2"}, 293 {{eq, r7, r7, LSL, r2}, true, eq, "eq r7 r7 LSL r2", "eq_r7_r7_LSL_r2"}, 294 {{pl, r6, r6, LSL, r7}, true, pl, "pl r6 r6 LSL r7", "pl_r6_r6_LSL_r7"}, 295 {{ls, r2, r2, LSL, r0}, true, ls, "ls r2 r2 LSL r0", "ls_r2_r2_LSL_r0"}, 296 {{cs, r7, r7, LSL, r1}, true, cs, "cs r7 r7 LSL r1", "cs_r7_r7_LSL_r1"}, 297 {{mi, r7, r7, LSR, r4}, true, mi, "mi r7 r7 LSR r4", "mi_r7_r7_LSR_r4"}, 298 {{gt, r7, r7, ROR, r4}, true, gt, "gt r7 r7 ROR r4", "gt_r7_r7_ROR_r4"}, 299 {{pl, r7, r7, LSL, r3}, true, pl, "pl r7 r7 LSL r3", "pl_r7_r7_LSL_r3"}, 300 {{cc, r7, r7, ASR, r3}, true, cc, "cc r7 r7 ASR r3", "cc_r7_r7_ASR_r3"}, 301 {{hi, r6, r6, ASR, r0}, true, hi, "hi r6 r6 ASR r0", "hi_r6_r6_ASR_r0"}, 302 {{ge, r0, r0, ROR, r5}, true, ge, "ge r0 r0 ROR r5", "ge_r0_r0_ROR_r5"}, 303 {{ne, r3, r3, LSR, r1}, true, ne, "ne r3 r3 LSR r1", "ne_r3_r3_LSR_r1"}, 304 {{le, r0, r0, ROR, r1}, true, le, "le r0 r0 ROR r1", "le_r0_r0_ROR_r1"}, 305 {{cc, r6, r6, LSL, r0}, true, cc, "cc r6 r6 LSL r0", "cc_r6_r6_LSL_r0"}, 306 {{eq, r4, r4, LSL, r5}, true, eq, "eq r4 r4 LSL r5", "eq_r4_r4_LSL_r5"}, 307 {{le, r3, r3, ASR, r7}, true, le, "le r3 r3 ASR r7", "le_r3_r3_ASR_r7"}, 308 {{pl, r6, r6, ROR, r6}, true, pl, "pl r6 r6 ROR r6", "pl_r6_r6_ROR_r6"}, 309 {{gt, r6, r6, LSR, r4}, true, gt, "gt r6 r6 LSR r4", "gt_r6_r6_LSR_r4"}, 310 {{hi, r2, r2, LSL, r0}, true, hi, "hi r2 r2 LSL r0", "hi_r2_r2_LSL_r0"}, 311 {{eq, r1, r1, LSR, r7}, true, eq, "eq r1 r1 LSR r7", "eq_r1_r1_LSR_r7"}, 312 {{eq, r1, r1, LSR, r1}, true, eq, "eq r1 r1 LSR r1", "eq_r1_r1_LSR_r1"}, 313 {{vs, r5, r5, ASR, r5}, true, vs, "vs r5 r5 ASR r5", "vs_r5_r5_ASR_r5"}, 314 {{gt, r0, r0, LSR, r0}, true, gt, "gt r0 r0 LSR r0", "gt_r0_r0_LSR_r0"}, 315 {{hi, r7, r7, ROR, r2}, true, hi, "hi r7 r7 ROR r2", "hi_r7_r7_ROR_r2"}, 316 {{vc, r0, r0, ROR, r7}, true, vc, "vc r0 r0 ROR r7", "vc_r0_r0_ROR_r7"}, 317 {{eq, r2, r2, ASR, r2}, true, eq, "eq r2 r2 ASR r2", "eq_r2_r2_ASR_r2"}, 318 {{vc, r0, r0, LSR, r3}, true, vc, "vc r0 r0 LSR r3", "vc_r0_r0_LSR_r3"}, 319 {{le, r7, r7, ASR, r2}, true, le, "le r7 r7 ASR r2", "le_r7_r7_ASR_r2"}, 320 {{ls, r4, r4, ASR, r6}, true, ls, "ls r4 r4 ASR r6", "ls_r4_r4_ASR_r6"}, 321 {{pl, r1, r1, ROR, r5}, true, pl, "pl r1 r1 ROR r5", "pl_r1_r1_ROR_r5"}, 322 {{le, r4, r4, ASR, r2}, true, le, "le r4 r4 ASR r2", "le_r4_r4_ASR_r2"}, 323 {{mi, r7, r7, LSL, r6}, true, mi, "mi r7 r7 LSL r6", "mi_r7_r7_LSL_r6"}, 324 {{cc, r0, r0, ROR, r6}, true, cc, "cc r0 r0 ROR r6", "cc_r0_r0_ROR_r6"}, 325 {{le, r6, r6, LSL, r7}, true, le, "le r6 r6 LSL r7", "le_r6_r6_LSL_r7"}, 326 {{hi, r0, r0, ASR, r0}, true, hi, "hi r0 r0 ASR r0", "hi_r0_r0_ASR_r0"}, 327 {{cs, r7, r7, ASR, r5}, true, cs, "cs r7 r7 ASR r5", "cs_r7_r7_ASR_r5"}, 328 {{eq, r2, r2, ASR, r7}, true, eq, "eq r2 r2 ASR r7", "eq_r2_r2_ASR_r7"}, 329 {{eq, r5, r5, LSL, r0}, true, eq, "eq r5 r5 LSL r0", "eq_r5_r5_LSL_r0"}, 330 {{hi, r5, r5, ASR, r6}, true, hi, "hi r5 r5 ASR r6", "hi_r5_r5_ASR_r6"}, 331 {{ne, r3, r3, ASR, r7}, true, ne, "ne r3 r3 ASR r7", "ne_r3_r3_ASR_r7"}, 332 {{vs, r6, r6, ROR, r7}, true, vs, "vs r6 r6 ROR r7", "vs_r6_r6_ROR_r7"}, 333 {{le, r0, r0, LSL, r1}, true, le, "le r0 r0 LSL r1", "le_r0_r0_LSL_r1"}, 334 {{le, r7, r7, ROR, r1}, true, le, "le r7 r7 ROR r1", "le_r7_r7_ROR_r1"}, 335 {{ne, r6, r6, LSL, r0}, true, ne, "ne r6 r6 LSL r0", "ne_r6_r6_LSL_r0"}, 336 {{hi, r2, r2, LSL, r7}, true, hi, "hi r2 r2 LSL r7", "hi_r2_r2_LSL_r7"}, 337 {{lt, r0, r0, ASR, r0}, true, lt, "lt r0 r0 ASR r0", "lt_r0_r0_ASR_r0"}, 338 {{cc, r2, r2, ROR, r6}, true, cc, "cc r2 r2 ROR r6", "cc_r2_r2_ROR_r6"}, 339 {{pl, r5, r5, LSR, r2}, true, pl, "pl r5 r5 LSR r2", "pl_r5_r5_LSR_r2"}, 340 {{lt, r0, r0, ROR, r4}, true, lt, "lt r0 r0 ROR r4", "lt_r0_r0_ROR_r4"}, 341 {{ls, r6, r6, ASR, r1}, true, ls, "ls r6 r6 ASR r1", "ls_r6_r6_ASR_r1"}, 342 {{ne, r3, r3, LSR, r7}, true, ne, "ne r3 r3 LSR r7", "ne_r3_r3_LSR_r7"}, 343 {{vs, r0, r0, ROR, r4}, true, vs, "vs r0 r0 ROR r4", "vs_r0_r0_ROR_r4"}, 344 {{ge, r5, r5, ASR, r7}, true, ge, "ge r5 r5 ASR r7", "ge_r5_r5_ASR_r7"}, 345 {{pl, r5, r5, ROR, r2}, true, pl, "pl r5 r5 ROR r2", "pl_r5_r5_ROR_r2"}, 346 {{le, r1, r1, ROR, r5}, true, le, "le r1 r1 ROR r5", "le_r1_r1_ROR_r5"}, 347 {{ls, r4, r4, LSR, r1}, true, ls, "ls r4 r4 LSR r1", "ls_r4_r4_LSR_r1"}, 348 {{vc, r0, r0, LSL, r3}, true, vc, "vc r0 r0 LSL r3", "vc_r0_r0_LSL_r3"}, 349 {{vc, r0, r0, ASR, r3}, true, vc, "vc r0 r0 ASR r3", "vc_r0_r0_ASR_r3"}, 350 {{pl, r7, r7, ASR, r1}, true, pl, "pl r7 r7 ASR r1", "pl_r7_r7_ASR_r1"}, 351 {{cc, r0, r0, LSL, r1}, true, cc, "cc r0 r0 LSL r1", "cc_r0_r0_LSL_r1"}, 352 {{hi, r1, r1, LSL, r0}, true, hi, "hi r1 r1 LSL r0", "hi_r1_r1_LSL_r0"}, 353 {{gt, r6, r6, LSL, r2}, true, gt, "gt r6 r6 LSL r2", "gt_r6_r6_LSL_r2"}, 354 {{vc, r2, r2, LSR, r6}, true, vc, "vc r2 r2 LSR r6", "vc_r2_r2_LSR_r6"}, 355 {{vc, r5, r5, LSL, r5}, true, vc, "vc r5 r5 LSL r5", "vc_r5_r5_LSL_r5"}, 356 {{vc, r4, r4, LSR, r1}, true, vc, "vc r4 r4 LSR r1", "vc_r4_r4_LSR_r1"}, 357 {{lt, r4, r4, LSL, r6}, true, lt, "lt r4 r4 LSL r6", "lt_r4_r4_LSL_r6"}, 358 {{gt, r6, r6, ASR, r1}, true, gt, "gt r6 r6 ASR r1", "gt_r6_r6_ASR_r1"}, 359 {{hi, r1, r1, ASR, r1}, true, hi, "hi r1 r1 ASR r1", "hi_r1_r1_ASR_r1"}, 360 {{gt, r6, r6, ROR, r4}, true, gt, "gt r6 r6 ROR r4", "gt_r6_r6_ROR_r4"}, 361 {{gt, r3, r3, LSL, r3}, true, gt, "gt r3 r3 LSL r3", "gt_r3_r3_LSL_r3"}, 362 {{vs, r3, r3, ROR, r0}, true, vs, "vs r3 r3 ROR r0", "vs_r3_r3_ROR_r0"}, 363 {{lt, r4, r4, ROR, r1}, true, lt, "lt r4 r4 ROR r1", "lt_r4_r4_ROR_r1"}, 364 {{gt, r7, r7, LSL, r5}, true, gt, "gt r7 r7 LSL r5", "gt_r7_r7_LSL_r5"}, 365 {{hi, r0, r0, ASR, r5}, true, hi, "hi r0 r0 ASR r5", "hi_r0_r0_ASR_r5"}, 366 {{vc, r4, r4, ROR, r4}, true, vc, "vc r4 r4 ROR r4", "vc_r4_r4_ROR_r4"}, 367 {{gt, r5, r5, ASR, r0}, true, gt, "gt r5 r5 ASR r0", "gt_r5_r5_ASR_r0"}, 368 {{gt, r4, r4, LSR, r0}, true, gt, "gt r4 r4 LSR r0", "gt_r4_r4_LSR_r0"}, 369 {{gt, r3, r3, ASR, r3}, true, gt, "gt r3 r3 ASR r3", "gt_r3_r3_ASR_r3"}, 370 {{lt, r5, r5, ROR, r3}, true, lt, "lt r5 r5 ROR r3", "lt_r5_r5_ROR_r3"}, 371 {{cc, r7, r7, LSL, r1}, true, cc, "cc r7 r7 LSL r1", "cc_r7_r7_LSL_r1"}, 372 {{vc, r1, r1, LSR, r2}, true, vc, "vc r1 r1 LSR r2", "vc_r1_r1_LSR_r2"}, 373 {{pl, r3, r3, ASR, r5}, true, pl, "pl r3 r3 ASR r5", "pl_r3_r3_ASR_r5"}, 374 {{ls, r3, r3, LSL, r0}, true, ls, "ls r3 r3 LSL r0", "ls_r3_r3_LSL_r0"}, 375 {{vs, r5, r5, ROR, r4}, true, vs, "vs r5 r5 ROR r4", "vs_r5_r5_ROR_r4"}, 376 {{hi, r2, r2, LSL, r6}, true, hi, "hi r2 r2 LSL r6", "hi_r2_r2_LSL_r6"}, 377 {{cc, r5, r5, ROR, r0}, true, cc, "cc r5 r5 ROR r0", "cc_r5_r5_ROR_r0"}, 378 {{cs, r2, r2, ASR, r5}, true, cs, "cs r2 r2 ASR r5", "cs_r2_r2_ASR_r5"}, 379 {{ge, r1, r1, ROR, r3}, true, ge, "ge r1 r1 ROR r3", "ge_r1_r1_ROR_r3"}, 380 {{ne, r0, r0, ROR, r3}, true, ne, "ne r0 r0 ROR r3", "ne_r0_r0_ROR_r3"}, 381 {{cs, r7, r7, ASR, r6}, true, cs, "cs r7 r7 ASR r6", "cs_r7_r7_ASR_r6"}, 382 {{mi, r1, r1, LSR, r0}, true, mi, "mi r1 r1 LSR r0", "mi_r1_r1_LSR_r0"}, 383 {{mi, r5, r5, LSL, r1}, true, mi, "mi r5 r5 LSL r1", "mi_r5_r5_LSL_r1"}, 384 {{mi, r4, r4, LSR, r3}, true, mi, "mi r4 r4 LSR r3", "mi_r4_r4_LSR_r3"}, 385 {{pl, r3, r3, ASR, r7}, true, pl, "pl r3 r3 ASR r7", "pl_r3_r3_ASR_r7"}, 386 {{ls, r2, r2, ASR, r2}, true, ls, "ls r2 r2 ASR r2", "ls_r2_r2_ASR_r2"}, 387 {{eq, r7, r7, LSL, r3}, true, eq, "eq r7 r7 LSL r3", "eq_r7_r7_LSL_r3"}, 388 {{gt, r4, r4, LSL, r2}, true, gt, "gt r4 r4 LSL r2", "gt_r4_r4_LSL_r2"}, 389 {{ne, r6, r6, LSL, r6}, true, ne, "ne r6 r6 LSL r6", "ne_r6_r6_LSL_r6"}, 390 {{eq, r7, r7, LSL, r0}, true, eq, "eq r7 r7 LSL r0", "eq_r7_r7_LSL_r0"}, 391 {{le, r7, r7, LSL, r7}, true, le, "le r7 r7 LSL r7", "le_r7_r7_LSL_r7"}, 392 {{eq, r0, r0, ROR, r1}, true, eq, "eq r0 r0 ROR r1", "eq_r0_r0_ROR_r1"}, 393 {{hi, r2, r2, LSR, r6}, true, hi, "hi r2 r2 LSR r6", "hi_r2_r2_LSR_r6"}, 394 {{vs, r6, r6, LSL, r5}, true, vs, "vs r6 r6 LSL r5", "vs_r6_r6_LSL_r5"}, 395 {{gt, r5, r5, ASR, r1}, true, gt, "gt r5 r5 ASR r1", "gt_r5_r5_ASR_r1"}, 396 {{ne, r4, r4, ASR, r3}, true, ne, "ne r4 r4 ASR r3", "ne_r4_r4_ASR_r3"}, 397 {{lt, r6, r6, LSL, r3}, true, lt, "lt r6 r6 LSL r3", "lt_r6_r6_LSL_r3"}, 398 {{ls, r3, r3, ASR, r3}, true, ls, "ls r3 r3 ASR r3", "ls_r3_r3_ASR_r3"}, 399 {{le, r4, r4, LSL, r1}, true, le, "le r4 r4 LSL r1", "le_r4_r4_LSL_r1"}, 400 {{gt, r7, r7, LSL, r6}, true, gt, "gt r7 r7 LSL r6", "gt_r7_r7_LSL_r6"}, 401 {{vc, r2, r2, ROR, r1}, true, vc, "vc r2 r2 ROR r1", "vc_r2_r2_ROR_r1"}, 402 {{ne, r1, r1, ROR, r1}, true, ne, "ne r1 r1 ROR r1", "ne_r1_r1_ROR_r1"}, 403 {{cc, r3, r3, ASR, r0}, true, cc, "cc r3 r3 ASR r0", "cc_r3_r3_ASR_r0"}, 404 {{lt, r4, r4, LSR, r0}, true, lt, "lt r4 r4 LSR r0", "lt_r4_r4_LSR_r0"}, 405 {{cc, r3, r3, LSR, r7}, true, cc, "cc r3 r3 LSR r7", "cc_r3_r3_LSR_r7"}, 406 {{eq, r0, r0, LSR, r5}, true, eq, "eq r0 r0 LSR r5", "eq_r0_r0_LSR_r5"}, 407 {{lt, r5, r5, ROR, r5}, true, lt, "lt r5 r5 ROR r5", "lt_r5_r5_ROR_r5"}, 408 {{vc, r0, r0, LSL, r7}, true, vc, "vc r0 r0 LSL r7", "vc_r0_r0_LSL_r7"}, 409 {{cs, r7, r7, LSR, r5}, true, cs, "cs r7 r7 LSR r5", "cs_r7_r7_LSR_r5"}, 410 {{lt, r4, r4, ROR, r0}, true, lt, "lt r4 r4 ROR r0", "lt_r4_r4_ROR_r0"}, 411 {{vc, r4, r4, ROR, r3}, true, vc, "vc r4 r4 ROR r3", "vc_r4_r4_ROR_r3"}, 412 {{le, r6, r6, LSL, r6}, true, le, "le r6 r6 LSL r6", "le_r6_r6_LSL_r6"}, 413 {{cc, r4, r4, LSR, r7}, true, cc, "cc r4 r4 LSR r7", "cc_r4_r4_LSR_r7"}, 414 {{pl, r7, r7, ROR, r2}, true, pl, "pl r7 r7 ROR r2", "pl_r7_r7_ROR_r2"}, 415 {{hi, r0, r0, LSL, r6}, true, hi, "hi r0 r0 LSL r6", "hi_r0_r0_LSL_r6"}, 416 {{gt, r1, r1, LSR, r4}, true, gt, "gt r1 r1 LSR r4", "gt_r1_r1_LSR_r4"}, 417 {{vs, r2, r2, LSR, r1}, true, vs, "vs r2 r2 LSR r1", "vs_r2_r2_LSR_r1"}, 418 {{cc, r3, r3, ROR, r0}, true, cc, "cc r3 r3 ROR r0", "cc_r3_r3_ROR_r0"}, 419 {{ge, r6, r6, LSR, r5}, true, ge, "ge r6 r6 LSR r5", "ge_r6_r6_LSR_r5"}, 420 {{ne, r2, r2, ASR, r2}, true, ne, "ne r2 r2 ASR r2", "ne_r2_r2_ASR_r2"}, 421 {{lt, r5, r5, LSR, r7}, true, lt, "lt r5 r5 LSR r7", "lt_r5_r5_LSR_r7"}, 422 {{vs, r3, r3, LSL, r4}, true, vs, "vs r3 r3 LSL r4", "vs_r3_r3_LSL_r4"}, 423 {{lt, r7, r7, LSR, r5}, true, lt, "lt r7 r7 LSR r5", "lt_r7_r7_LSR_r5"}, 424 {{vc, r2, r2, LSL, r5}, true, vc, "vc r2 r2 LSL r5", "vc_r2_r2_LSL_r5"}, 425 {{le, r6, r6, ASR, r7}, true, le, "le r6 r6 ASR r7", "le_r6_r6_ASR_r7"}, 426 {{ne, r1, r1, LSL, r6}, true, ne, "ne r1 r1 LSL r6", "ne_r1_r1_LSL_r6"}, 427 {{le, r6, r6, ASR, r1}, true, le, "le r6 r6 ASR r1", "le_r6_r6_ASR_r1"}, 428 {{ls, r1, r1, ROR, r7}, true, ls, "ls r1 r1 ROR r7", "ls_r1_r1_ROR_r7"}, 429 {{pl, r0, r0, LSL, r0}, true, pl, "pl r0 r0 LSL r0", "pl_r0_r0_LSL_r0"}, 430 {{pl, r4, r4, ROR, r1}, true, pl, "pl r4 r4 ROR r1", "pl_r4_r4_ROR_r1"}, 431 {{ne, r7, r7, ASR, r3}, true, ne, "ne r7 r7 ASR r3", "ne_r7_r7_ASR_r3"}, 432 {{hi, r6, r6, LSR, r7}, true, hi, "hi r6 r6 LSR r7", "hi_r6_r6_LSR_r7"}, 433 {{eq, r5, r5, LSL, r4}, true, eq, "eq r5 r5 LSL r4", "eq_r5_r5_LSL_r4"}, 434 {{hi, r7, r7, LSR, r4}, true, hi, "hi r7 r7 LSR r4", "hi_r7_r7_LSR_r4"}, 435 {{ls, r3, r3, ASR, r0}, true, ls, "ls r3 r3 ASR r0", "ls_r3_r3_ASR_r0"}, 436 {{mi, r2, r2, ASR, r0}, true, mi, "mi r2 r2 ASR r0", "mi_r2_r2_ASR_r0"}, 437 {{gt, r7, r7, ROR, r3}, true, gt, "gt r7 r7 ROR r3", "gt_r7_r7_ROR_r3"}, 438 {{ge, r1, r1, ASR, r5}, true, ge, "ge r1 r1 ASR r5", "ge_r1_r1_ASR_r5"}, 439 {{vc, r3, r3, LSR, r3}, true, vc, "vc r3 r3 LSR r3", "vc_r3_r3_LSR_r3"}, 440 {{gt, r6, r6, LSR, r2}, true, gt, "gt r6 r6 LSR r2", "gt_r6_r6_LSR_r2"}, 441 {{vc, r6, r6, LSL, r2}, true, vc, "vc r6 r6 LSL r2", "vc_r6_r6_LSL_r2"}, 442 {{le, r7, r7, ASR, r1}, true, le, "le r7 r7 ASR r1", "le_r7_r7_ASR_r1"}, 443 {{pl, r1, r1, LSR, r7}, true, pl, "pl r1 r1 LSR r7", "pl_r1_r1_LSR_r7"}, 444 {{mi, r1, r1, ROR, r5}, true, mi, "mi r1 r1 ROR r5", "mi_r1_r1_ROR_r5"}, 445 {{eq, r6, r6, ASR, r1}, true, eq, "eq r6 r6 ASR r1", "eq_r6_r6_ASR_r1"}, 446 {{vs, r4, r4, LSR, r6}, true, vs, "vs r4 r4 LSR r6", "vs_r4_r4_LSR_r6"}, 447 {{ls, r0, r0, ASR, r0}, true, ls, "ls r0 r0 ASR r0", "ls_r0_r0_ASR_r0"}, 448 {{cc, r0, r0, LSL, r2}, true, cc, "cc r0 r0 LSL r2", "cc_r0_r0_LSL_r2"}, 449 {{cc, r3, r3, ROR, r7}, true, cc, "cc r3 r3 ROR r7", "cc_r3_r3_ROR_r7"}, 450 {{ge, r2, r2, ROR, r7}, true, ge, "ge r2 r2 ROR r7", "ge_r2_r2_ROR_r7"}, 451 {{mi, r7, r7, LSL, r4}, true, mi, "mi r7 r7 LSL r4", "mi_r7_r7_LSL_r4"}, 452 {{le, r4, r4, LSR, r5}, true, le, "le r4 r4 LSR r5", "le_r4_r4_LSR_r5"}, 453 {{cc, r5, r5, ASR, r3}, true, cc, "cc r5 r5 ASR r3", "cc_r5_r5_ASR_r3"}, 454 {{ls, r0, r0, ASR, r6}, true, ls, "ls r0 r0 ASR r6", "ls_r0_r0_ASR_r6"}, 455 {{ge, r4, r4, LSL, r1}, true, ge, "ge r4 r4 LSL r1", "ge_r4_r4_LSL_r1"}, 456 {{pl, r1, r1, LSL, r5}, true, pl, "pl r1 r1 LSL r5", "pl_r1_r1_LSL_r5"}, 457 {{ne, r2, r2, ASR, r5}, true, ne, "ne r2 r2 ASR r5", "ne_r2_r2_ASR_r5"}, 458 {{eq, r4, r4, ROR, r3}, true, eq, "eq r4 r4 ROR r3", "eq_r4_r4_ROR_r3"}, 459 {{mi, r2, r2, LSL, r3}, true, mi, "mi r2 r2 LSL r3", "mi_r2_r2_LSL_r3"}, 460 {{lt, r2, r2, ROR, r4}, true, lt, "lt r2 r2 ROR r4", "lt_r2_r2_ROR_r4"}, 461 {{ge, r7, r7, LSR, r2}, true, ge, "ge r7 r7 LSR r2", "ge_r7_r7_LSR_r2"}, 462 {{gt, r4, r4, ASR, r5}, true, gt, "gt r4 r4 ASR r5", "gt_r4_r4_ASR_r5"}, 463 {{le, r2, r2, LSL, r2}, true, le, "le r2 r2 LSL r2", "le_r2_r2_LSL_r2"}, 464 {{eq, r3, r3, LSR, r5}, true, eq, "eq r3 r3 LSR r5", "eq_r3_r3_LSR_r5"}, 465 {{ge, r7, r7, ASR, r1}, true, ge, "ge r7 r7 ASR r1", "ge_r7_r7_ASR_r1"}, 466 {{vc, r1, r1, LSL, r2}, true, vc, "vc r1 r1 LSL r2", "vc_r1_r1_LSL_r2"}, 467 {{cs, r2, r2, ASR, r3}, true, cs, "cs r2 r2 ASR r3", "cs_r2_r2_ASR_r3"}, 468 {{ge, r6, r6, LSL, r7}, true, ge, "ge r6 r6 LSL r7", "ge_r6_r6_LSL_r7"}, 469 {{hi, r5, r5, LSL, r0}, true, hi, "hi r5 r5 LSL r0", "hi_r5_r5_LSL_r0"}, 470 {{eq, r4, r4, LSR, r1}, true, eq, "eq r4 r4 LSR r1", "eq_r4_r4_LSR_r1"}, 471 {{gt, r5, r5, LSL, r1}, true, gt, "gt r5 r5 LSL r1", "gt_r5_r5_LSL_r1"}, 472 {{vs, r5, r5, LSL, r7}, true, vs, "vs r5 r5 LSL r7", "vs_r5_r5_LSL_r7"}, 473 {{ge, r7, r7, LSL, r2}, true, ge, "ge r7 r7 LSL r2", "ge_r7_r7_LSL_r2"}, 474 {{hi, r0, r0, ASR, r7}, true, hi, "hi r0 r0 ASR r7", "hi_r0_r0_ASR_r7"}, 475 {{cs, r3, r3, LSL, r3}, true, cs, "cs r3 r3 LSL r3", "cs_r3_r3_LSL_r3"}, 476 {{lt, r2, r2, LSL, r6}, true, lt, "lt r2 r2 LSL r6", "lt_r2_r2_LSL_r6"}, 477 {{pl, r1, r1, ASR, r4}, true, pl, "pl r1 r1 ASR r4", "pl_r1_r1_ASR_r4"}, 478 {{vc, r1, r1, ASR, r5}, true, vc, "vc r1 r1 ASR r5", "vc_r1_r1_ASR_r5"}, 479 {{lt, r4, r4, ROR, r5}, true, lt, "lt r4 r4 ROR r5", "lt_r4_r4_ROR_r5"}, 480 {{cc, r0, r0, ASR, r3}, true, cc, "cc r0 r0 ASR r3", "cc_r0_r0_ASR_r3"}, 481 {{vs, r4, r4, LSL, r5}, true, vs, "vs r4 r4 LSL r5", "vs_r4_r4_LSL_r5"}, 482 {{vs, r0, r0, LSL, r3}, true, vs, "vs r0 r0 LSL r3", "vs_r0_r0_LSL_r3"}, 483 {{hi, r1, r1, ROR, r7}, true, hi, "hi r1 r1 ROR r7", "hi_r1_r1_ROR_r7"}, 484 {{hi, r1, r1, LSL, r5}, true, hi, "hi r1 r1 LSL r5", "hi_r1_r1_LSL_r5"}, 485 {{le, r0, r0, LSR, r7}, true, le, "le r0 r0 LSR r7", "le_r0_r0_LSR_r7"}, 486 {{ls, r2, r2, ASR, r3}, true, ls, "ls r2 r2 ASR r3", "ls_r2_r2_ASR_r3"}, 487 {{mi, r3, r3, LSL, r3}, true, mi, "mi r3 r3 LSL r3", "mi_r3_r3_LSL_r3"}, 488 {{ne, r6, r6, ASR, r1}, true, ne, "ne r6 r6 ASR r1", "ne_r6_r6_ASR_r1"}, 489 {{le, r6, r6, LSL, r5}, true, le, "le r6 r6 LSL r5", "le_r6_r6_LSL_r5"}, 490 {{gt, r5, r5, LSR, r6}, true, gt, "gt r5 r5 LSR r6", "gt_r5_r5_LSR_r6"}, 491 {{vs, r5, r5, ASR, r1}, true, vs, "vs r5 r5 ASR r1", "vs_r5_r5_ASR_r1"}, 492 {{ne, r3, r3, LSL, r1}, true, ne, "ne r3 r3 LSL r1", "ne_r3_r3_LSL_r1"}, 493 {{lt, r2, r2, LSL, r4}, true, lt, "lt r2 r2 LSL r4", "lt_r2_r2_LSL_r4"}, 494 {{eq, r1, r1, ROR, r1}, true, eq, "eq r1 r1 ROR r1", "eq_r1_r1_ROR_r1"}, 495 {{cs, r1, r1, LSL, r6}, true, cs, "cs r1 r1 LSL r6", "cs_r1_r1_LSL_r6"}, 496 {{hi, r7, r7, ASR, r2}, true, hi, "hi r7 r7 ASR r2", "hi_r7_r7_ASR_r2"}, 497 {{mi, r4, r4, LSL, r3}, true, mi, "mi r4 r4 LSL r3", "mi_r4_r4_LSL_r3"}, 498 {{eq, r3, r3, LSL, r4}, true, eq, "eq r3 r3 LSL r4", "eq_r3_r3_LSL_r4"}, 499 {{ne, r6, r6, LSL, r3}, true, ne, "ne r6 r6 LSL r3", "ne_r6_r6_LSL_r3"}, 500 {{vs, r4, r4, LSR, r0}, true, vs, "vs r4 r4 LSR r0", "vs_r4_r4_LSR_r0"}, 501 {{eq, r6, r6, ASR, r4}, true, eq, "eq r6 r6 ASR r4", "eq_r6_r6_ASR_r4"}, 502 {{pl, r0, r0, ASR, r1}, true, pl, "pl r0 r0 ASR r1", "pl_r0_r0_ASR_r1"}, 503 {{cs, r7, r7, LSR, r3}, true, cs, "cs r7 r7 LSR r3", "cs_r7_r7_LSR_r3"}, 504 {{le, r2, r2, LSR, r2}, true, le, "le r2 r2 LSR r2", "le_r2_r2_LSR_r2"}, 505 {{ge, r3, r3, LSR, r5}, true, ge, "ge r3 r3 LSR r5", "ge_r3_r3_LSR_r5"}, 506 {{ls, r0, r0, ASR, r4}, true, ls, "ls r0 r0 ASR r4", "ls_r0_r0_ASR_r4"}, 507 {{lt, r6, r6, LSR, r1}, true, lt, "lt r6 r6 LSR r1", "lt_r6_r6_LSR_r1"}, 508 {{vc, r0, r0, ASR, r5}, true, vc, "vc r0 r0 ASR r5", "vc_r0_r0_ASR_r5"}, 509 {{lt, r2, r2, LSR, r0}, true, lt, "lt r2 r2 LSR r0", "lt_r2_r2_LSR_r0"}, 510 {{pl, r5, r5, ASR, r0}, true, pl, "pl r5 r5 ASR r0", "pl_r5_r5_ASR_r0"}, 511 {{pl, r1, r1, ROR, r6}, true, pl, "pl r1 r1 ROR r6", "pl_r1_r1_ROR_r6"}, 512 {{hi, r4, r4, ASR, r7}, true, hi, "hi r4 r4 ASR r7", "hi_r4_r4_ASR_r7"}, 513 {{le, r6, r6, ROR, r3}, true, le, "le r6 r6 ROR r3", "le_r6_r6_ROR_r3"}, 514 {{cc, r1, r1, LSL, r3}, true, cc, "cc r1 r1 LSL r3", "cc_r1_r1_LSL_r3"}, 515 {{vc, r1, r1, ROR, r1}, true, vc, "vc r1 r1 ROR r1", "vc_r1_r1_ROR_r1"}, 516 {{vc, r0, r0, ROR, r4}, true, vc, "vc r0 r0 ROR r4", "vc_r0_r0_ROR_r4"}, 517 {{ls, r3, r3, LSL, r5}, true, ls, "ls r3 r3 LSL r5", "ls_r3_r3_LSL_r5"}, 518 {{ls, r5, r5, ROR, r2}, true, ls, "ls r5 r5 ROR r2", "ls_r5_r5_ROR_r2"}, 519 {{lt, r0, r0, ROR, r5}, true, lt, "lt r0 r0 ROR r5", "lt_r0_r0_ROR_r5"}, 520 {{le, r7, r7, ROR, r4}, true, le, "le r7 r7 ROR r4", "le_r7_r7_ROR_r4"}, 521 {{eq, r1, r1, ROR, r0}, true, eq, "eq r1 r1 ROR r0", "eq_r1_r1_ROR_r0"}, 522 {{gt, r3, r3, LSL, r7}, true, gt, "gt r3 r3 LSL r7", "gt_r3_r3_LSL_r7"}, 523 {{vc, r0, r0, ASR, r6}, true, vc, "vc r0 r0 ASR r6", "vc_r0_r0_ASR_r6"}, 524 {{ge, r7, r7, LSL, r5}, true, ge, "ge r7 r7 LSL r5", "ge_r7_r7_LSL_r5"}, 525 {{pl, r5, r5, LSL, r4}, true, pl, "pl r5 r5 LSL r4", "pl_r5_r5_LSL_r4"}, 526 {{pl, r0, r0, ROR, r6}, true, pl, "pl r0 r0 ROR r6", "pl_r0_r0_ROR_r6"}, 527 {{hi, r1, r1, ROR, r1}, true, hi, "hi r1 r1 ROR r1", "hi_r1_r1_ROR_r1"}, 528 {{lt, r1, r1, ASR, r2}, true, lt, "lt r1 r1 ASR r2", "lt_r1_r1_ASR_r2"}, 529 {{cs, r4, r4, LSR, r6}, true, cs, "cs r4 r4 LSR r6", "cs_r4_r4_LSR_r6"}, 530 {{hi, r1, r1, ASR, r0}, true, hi, "hi r1 r1 ASR r0", "hi_r1_r1_ASR_r0"}, 531 {{le, r7, r7, ROR, r5}, true, le, "le r7 r7 ROR r5", "le_r7_r7_ROR_r5"}, 532 {{cs, r6, r6, LSL, r0}, true, cs, "cs r6 r6 LSL r0", "cs_r6_r6_LSL_r0"}, 533 {{hi, r3, r3, ROR, r3}, true, hi, "hi r3 r3 ROR r3", "hi_r3_r3_ROR_r3"}, 534 {{vs, r6, r6, LSR, r0}, true, vs, "vs r6 r6 LSR r0", "vs_r6_r6_LSR_r0"}, 535 {{ls, r5, r5, LSR, r6}, true, ls, "ls r5 r5 LSR r6", "ls_r5_r5_LSR_r6"}, 536 {{vs, r1, r1, ROR, r0}, true, vs, "vs r1 r1 ROR r0", "vs_r1_r1_ROR_r0"}, 537 {{ge, r3, r3, ASR, r4}, true, ge, "ge r3 r3 ASR r4", "ge_r3_r3_ASR_r4"}, 538 {{ne, r5, r5, ROR, r7}, true, ne, "ne r5 r5 ROR r7", "ne_r5_r5_ROR_r7"}, 539 {{ls, r5, r5, LSL, r2}, true, ls, "ls r5 r5 LSL r2", "ls_r5_r5_LSL_r2"}, 540 {{mi, r4, r4, ROR, r1}, true, mi, "mi r4 r4 ROR r1", "mi_r4_r4_ROR_r1"}, 541 {{cs, r6, r6, LSR, r6}, true, cs, "cs r6 r6 LSR r6", "cs_r6_r6_LSR_r6"}, 542 {{cs, r1, r1, ROR, r1}, true, cs, "cs r1 r1 ROR r1", "cs_r1_r1_ROR_r1"}, 543 {{ls, r5, r5, ROR, r3}, true, ls, "ls r5 r5 ROR r3", "ls_r5_r5_ROR_r3"}, 544 {{vs, r7, r7, LSR, r3}, true, vs, "vs r7 r7 LSR r3", "vs_r7_r7_LSR_r3"}, 545 {{le, r0, r0, ROR, r2}, true, le, "le r0 r0 ROR r2", "le_r0_r0_ROR_r2"}, 546 {{vc, r5, r5, LSR, r5}, true, vc, "vc r5 r5 LSR r5", "vc_r5_r5_LSR_r5"}, 547 {{vc, r4, r4, LSL, r3}, true, vc, "vc r4 r4 LSL r3", "vc_r4_r4_LSL_r3"}, 548 {{vc, r2, r2, LSR, r4}, true, vc, "vc r2 r2 LSR r4", "vc_r2_r2_LSR_r4"}, 549 {{ge, r5, r5, ROR, r2}, true, ge, "ge r5 r5 ROR r2", "ge_r5_r5_ROR_r2"}, 550 {{cc, r6, r6, ASR, r7}, true, cc, "cc r6 r6 ASR r7", "cc_r6_r6_ASR_r7"}, 551 {{hi, r6, r6, ASR, r5}, true, hi, "hi r6 r6 ASR r5", "hi_r6_r6_ASR_r5"}, 552 {{vs, r0, r0, LSR, r1}, true, vs, "vs r0 r0 LSR r1", "vs_r0_r0_LSR_r1"}, 553 {{ls, r4, r4, LSL, r0}, true, ls, "ls r4 r4 LSL r0", "ls_r4_r4_LSL_r0"}, 554 {{mi, r6, r6, ASR, r4}, true, mi, "mi r6 r6 ASR r4", "mi_r6_r6_ASR_r4"}, 555 {{le, r6, r6, LSL, r4}, true, le, "le r6 r6 LSL r4", "le_r6_r6_LSL_r4"}, 556 {{cs, r6, r6, ASR, r6}, true, cs, "cs r6 r6 ASR r6", "cs_r6_r6_ASR_r6"}, 557 {{mi, r6, r6, ROR, r7}, true, mi, "mi r6 r6 ROR r7", "mi_r6_r6_ROR_r7"}, 558 {{hi, r5, r5, LSL, r4}, true, hi, "hi r5 r5 LSL r4", "hi_r5_r5_LSL_r4"}, 559 {{hi, r6, r6, LSL, r7}, true, hi, "hi r6 r6 LSL r7", "hi_r6_r6_LSL_r7"}, 560 {{cc, r6, r6, ROR, r5}, true, cc, "cc r6 r6 ROR r5", "cc_r6_r6_ROR_r5"}, 561 {{ge, r0, r0, ASR, r2}, true, ge, "ge r0 r0 ASR r2", "ge_r0_r0_ASR_r2"}, 562 {{eq, r1, r1, LSR, r6}, true, eq, "eq r1 r1 LSR r6", "eq_r1_r1_LSR_r6"}, 563 {{le, r1, r1, LSR, r7}, true, le, "le r1 r1 LSR r7", "le_r1_r1_LSR_r7"}, 564 {{ls, r4, r4, LSR, r5}, true, ls, "ls r4 r4 LSR r5", "ls_r4_r4_LSR_r5"}, 565 {{hi, r6, r6, LSR, r4}, true, hi, "hi r6 r6 LSR r4", "hi_r6_r6_LSR_r4"}, 566 {{cc, r1, r1, ROR, r6}, true, cc, "cc r1 r1 ROR r6", "cc_r1_r1_ROR_r6"}, 567 {{mi, r3, r3, ROR, r4}, true, mi, "mi r3 r3 ROR r4", "mi_r3_r3_ROR_r4"}, 568 {{vc, r2, r2, LSL, r4}, true, vc, "vc r2 r2 LSL r4", "vc_r2_r2_LSL_r4"}, 569 {{hi, r3, r3, LSL, r0}, true, hi, "hi r3 r3 LSL r0", "hi_r3_r3_LSL_r0"}, 570 {{vc, r6, r6, ASR, r1}, true, vc, "vc r6 r6 ASR r1", "vc_r6_r6_ASR_r1"}, 571 {{pl, r6, r6, LSR, r1}, true, pl, "pl r6 r6 LSR r1", "pl_r6_r6_LSR_r1"}, 572 {{hi, r1, r1, ASR, r4}, true, hi, "hi r1 r1 ASR r4", "hi_r1_r1_ASR_r4"}, 573 {{ne, r3, r3, ASR, r0}, true, ne, "ne r3 r3 ASR r0", "ne_r3_r3_ASR_r0"}, 574 {{gt, r4, r4, ROR, r2}, true, gt, "gt r4 r4 ROR r2", "gt_r4_r4_ROR_r2"}, 575 {{ls, r7, r7, ASR, r2}, true, ls, "ls r7 r7 ASR r2", "ls_r7_r7_ASR_r2"}, 576 {{lt, r2, r2, LSL, r3}, true, lt, "lt r2 r2 LSL r3", "lt_r2_r2_LSL_r3"}, 577 {{pl, r4, r4, LSL, r7}, true, pl, "pl r4 r4 LSL r7", "pl_r4_r4_LSL_r7"}, 578 {{ge, r0, r0, ASR, r0}, true, ge, "ge r0 r0 ASR r0", "ge_r0_r0_ASR_r0"}, 579 {{gt, r4, r4, ASR, r4}, true, gt, "gt r4 r4 ASR r4", "gt_r4_r4_ASR_r4"}, 580 {{eq, r7, r7, ROR, r3}, true, eq, "eq r7 r7 ROR r3", "eq_r7_r7_ROR_r3"}, 581 {{ne, r2, r2, LSL, r0}, true, ne, "ne r2 r2 LSL r0", "ne_r2_r2_LSL_r0"}, 582 {{ge, r1, r1, LSR, r3}, true, ge, "ge r1 r1 LSR r3", "ge_r1_r1_LSR_r3"}, 583 {{ge, r4, r4, ROR, r5}, true, ge, "ge r4 r4 ROR r5", "ge_r4_r4_ROR_r5"}, 584 {{ne, r6, r6, LSR, r6}, true, ne, "ne r6 r6 LSR r6", "ne_r6_r6_LSR_r6"}, 585 {{le, r1, r1, ASR, r0}, true, le, "le r1 r1 ASR r0", "le_r1_r1_ASR_r0"}, 586 {{ge, r6, r6, LSR, r6}, true, ge, "ge r6 r6 LSR r6", "ge_r6_r6_LSR_r6"}, 587 {{pl, r5, r5, ROR, r6}, true, pl, "pl r5 r5 ROR r6", "pl_r5_r5_ROR_r6"}, 588 {{lt, r2, r2, LSL, r2}, true, lt, "lt r2 r2 LSL r2", "lt_r2_r2_LSL_r2"}, 589 {{hi, r7, r7, LSL, r0}, true, hi, "hi r7 r7 LSL r0", "hi_r7_r7_LSL_r0"}, 590 {{lt, r6, r6, ASR, r4}, true, lt, "lt r6 r6 ASR r4", "lt_r6_r6_ASR_r4"}, 591 {{ge, r3, r3, LSR, r6}, true, ge, "ge r3 r3 LSR r6", "ge_r3_r3_LSR_r6"}, 592 {{eq, r4, r4, ASR, r0}, true, eq, "eq r4 r4 ASR r0", "eq_r4_r4_ASR_r0"}, 593 {{ne, r7, r7, ROR, r0}, true, ne, "ne r7 r7 ROR r0", "ne_r7_r7_ROR_r0"}, 594 {{pl, r5, r5, LSR, r1}, true, pl, "pl r5 r5 LSR r1", "pl_r5_r5_LSR_r1"}, 595 {{pl, r3, r3, ROR, r2}, true, pl, "pl r3 r3 ROR r2", "pl_r3_r3_ROR_r2"}, 596 {{vc, r1, r1, ASR, r0}, true, vc, "vc r1 r1 ASR r0", "vc_r1_r1_ASR_r0"}, 597 {{eq, r0, r0, ASR, r6}, true, eq, "eq r0 r0 ASR r6", "eq_r0_r0_ASR_r6"}, 598 {{le, r3, r3, ROR, r4}, true, le, "le r3 r3 ROR r4", "le_r3_r3_ROR_r4"}, 599 {{lt, r7, r7, LSR, r2}, true, lt, "lt r7 r7 LSR r2", "lt_r7_r7_LSR_r2"}, 600 {{ls, r5, r5, ASR, r1}, true, ls, "ls r5 r5 ASR r1", "ls_r5_r5_ASR_r1"}, 601 {{cc, r6, r6, ROR, r6}, true, cc, "cc r6 r6 ROR r6", "cc_r6_r6_ROR_r6"}, 602 {{vs, r1, r1, ROR, r2}, true, vs, "vs r1 r1 ROR r2", "vs_r1_r1_ROR_r2"}, 603 {{mi, r5, r5, LSL, r6}, true, mi, "mi r5 r5 LSL r6", "mi_r5_r5_LSL_r6"}, 604 {{le, r1, r1, ROR, r1}, true, le, "le r1 r1 ROR r1", "le_r1_r1_ROR_r1"}, 605 {{vs, r2, r2, LSL, r4}, true, vs, "vs r2 r2 LSL r4", "vs_r2_r2_LSL_r4"}, 606 {{mi, r7, r7, LSR, r1}, true, mi, "mi r7 r7 LSR r1", "mi_r7_r7_LSR_r1"}, 607 {{vc, r5, r5, ASR, r3}, true, vc, "vc r5 r5 ASR r3", "vc_r5_r5_ASR_r3"}, 608 {{pl, r6, r6, ASR, r6}, true, pl, "pl r6 r6 ASR r6", "pl_r6_r6_ASR_r6"}, 609 {{pl, r6, r6, ROR, r5}, true, pl, "pl r6 r6 ROR r5", "pl_r6_r6_ROR_r5"}, 610 {{cs, r6, r6, LSL, r4}, true, cs, "cs r6 r6 LSL r4", "cs_r6_r6_LSL_r4"}, 611 {{mi, r5, r5, LSR, r3}, true, mi, "mi r5 r5 LSR r3", "mi_r5_r5_LSR_r3"}, 612 {{lt, r5, r5, ROR, r0}, true, lt, "lt r5 r5 ROR r0", "lt_r5_r5_ROR_r0"}, 613 {{gt, r0, r0, LSR, r1}, true, gt, "gt r0 r0 LSR r1", "gt_r0_r0_LSR_r1"}, 614 {{cs, r7, r7, LSL, r6}, true, cs, "cs r7 r7 LSL r6", "cs_r7_r7_LSL_r6"}, 615 {{cs, r5, r5, LSL, r1}, true, cs, "cs r5 r5 LSL r1", "cs_r5_r5_LSL_r1"}, 616 {{ge, r5, r5, ROR, r4}, true, ge, "ge r5 r5 ROR r4", "ge_r5_r5_ROR_r4"}, 617 {{le, r2, r2, LSR, r5}, true, le, "le r2 r2 LSR r5", "le_r2_r2_LSR_r5"}, 618 {{lt, r1, r1, LSL, r1}, true, lt, "lt r1 r1 LSL r1", "lt_r1_r1_LSL_r1"}, 619 {{hi, r7, r7, LSR, r6}, true, hi, "hi r7 r7 LSR r6", "hi_r7_r7_LSR_r6"}, 620 {{cs, r5, r5, LSR, r3}, true, cs, "cs r5 r5 LSR r3", "cs_r5_r5_LSR_r3"}, 621 {{cc, r2, r2, ROR, r7}, true, cc, "cc r2 r2 ROR r7", "cc_r2_r2_ROR_r7"}, 622 {{gt, r1, r1, ASR, r3}, true, gt, "gt r1 r1 ASR r3", "gt_r1_r1_ASR_r3"}, 623 {{le, r2, r2, ASR, r2}, true, le, "le r2 r2 ASR r2", "le_r2_r2_ASR_r2"}, 624 {{pl, r0, r0, ASR, r2}, true, pl, "pl r0 r0 ASR r2", "pl_r0_r0_ASR_r2"}, 625 {{ls, r2, r2, LSR, r0}, true, ls, "ls r2 r2 LSR r0", "ls_r2_r2_LSR_r0"}, 626 {{mi, r6, r6, LSR, r2}, true, mi, "mi r6 r6 LSR r2", "mi_r6_r6_LSR_r2"}, 627 {{vs, r0, r0, ASR, r5}, true, vs, "vs r0 r0 ASR r5", "vs_r0_r0_ASR_r5"}, 628 {{lt, r4, r4, LSL, r2}, true, lt, "lt r4 r4 LSL r2", "lt_r4_r4_LSL_r2"}, 629 {{le, r3, r3, LSR, r7}, true, le, "le r3 r3 LSR r7", "le_r3_r3_LSR_r7"}, 630 {{vs, r1, r1, ROR, r1}, true, vs, "vs r1 r1 ROR r1", "vs_r1_r1_ROR_r1"}, 631 {{gt, r5, r5, ASR, r3}, true, gt, "gt r5 r5 ASR r3", "gt_r5_r5_ASR_r3"}, 632 {{le, r2, r2, ROR, r5}, true, le, "le r2 r2 ROR r5", "le_r2_r2_ROR_r5"}, 633 {{le, r2, r2, ASR, r4}, true, le, "le r2 r2 ASR r4", "le_r2_r2_ASR_r4"}, 634 {{ls, r1, r1, LSL, r6}, true, ls, "ls r1 r1 LSL r6", "ls_r1_r1_LSL_r6"}, 635 {{cc, r6, r6, LSR, r3}, true, cc, "cc r6 r6 LSR r3", "cc_r6_r6_LSR_r3"}, 636 {{ne, r5, r5, LSL, r0}, true, ne, "ne r5 r5 LSL r0", "ne_r5_r5_LSL_r0"}, 637 {{mi, r1, r1, LSL, r2}, true, mi, "mi r1 r1 LSL r2", "mi_r1_r1_LSL_r2"}, 638 {{ne, r2, r2, ASR, r3}, true, ne, "ne r2 r2 ASR r3", "ne_r2_r2_ASR_r3"}, 639 {{hi, r1, r1, ROR, r3}, true, hi, "hi r1 r1 ROR r3", "hi_r1_r1_ROR_r3"}, 640 {{lt, r7, r7, ROR, r0}, true, lt, "lt r7 r7 ROR r0", "lt_r7_r7_ROR_r0"}, 641 {{pl, r4, r4, LSL, r6}, true, pl, "pl r4 r4 LSL r6", "pl_r4_r4_LSL_r6"}, 642 {{mi, r0, r0, ASR, r4}, true, mi, "mi r0 r0 ASR r4", "mi_r0_r0_ASR_r4"}, 643 {{cc, r1, r1, ROR, r1}, true, cc, "cc r1 r1 ROR r1", "cc_r1_r1_ROR_r1"}, 644 {{vc, r1, r1, LSL, r3}, true, vc, "vc r1 r1 LSL r3", "vc_r1_r1_LSL_r3"}, 645 {{pl, r1, r1, ROR, r2}, true, pl, "pl r1 r1 ROR r2", "pl_r1_r1_ROR_r2"}, 646 {{mi, r3, r3, ASR, r1}, true, mi, "mi r3 r3 ASR r1", "mi_r3_r3_ASR_r1"}, 647 {{vs, r5, r5, ROR, r2}, true, vs, "vs r5 r5 ROR r2", "vs_r5_r5_ROR_r2"}, 648 {{mi, r0, r0, ROR, r2}, true, mi, "mi r0 r0 ROR r2", "mi_r0_r0_ROR_r2"}, 649 {{ne, r7, r7, LSR, r1}, true, ne, "ne r7 r7 LSR r1", "ne_r7_r7_LSR_r1"}, 650 {{ne, r0, r0, LSL, r2}, true, ne, "ne r0 r0 LSL r2", "ne_r0_r0_LSL_r2"}, 651 {{gt, r5, r5, ROR, r4}, true, gt, "gt r5 r5 ROR r4", "gt_r5_r5_ROR_r4"}, 652 {{ls, r4, r4, ROR, r2}, true, ls, "ls r4 r4 ROR r2", "ls_r4_r4_ROR_r2"}, 653 {{gt, r5, r5, LSL, r0}, true, gt, "gt r5 r5 LSL r0", "gt_r5_r5_LSL_r0"}, 654 {{pl, r0, r0, LSL, r7}, true, pl, "pl r0 r0 LSL r7", "pl_r0_r0_LSL_r7"}, 655 {{vc, r3, r3, ROR, r2}, true, vc, "vc r3 r3 ROR r2", "vc_r3_r3_ROR_r2"}, 656 {{vs, r4, r4, LSL, r0}, true, vs, "vs r4 r4 LSL r0", "vs_r4_r4_LSL_r0"}, 657 {{vc, r6, r6, ROR, r0}, true, vc, "vc r6 r6 ROR r0", "vc_r6_r6_ROR_r0"}, 658 {{cc, r7, r7, LSR, r4}, true, cc, "cc r7 r7 LSR r4", "cc_r7_r7_LSR_r4"}, 659 {{cs, r0, r0, ASR, r7}, true, cs, "cs r0 r0 ASR r7", "cs_r0_r0_ASR_r7"}, 660 {{lt, r3, r3, ASR, r5}, true, lt, "lt r3 r3 ASR r5", "lt_r3_r3_ASR_r5"}, 661 {{cs, r6, r6, ROR, r4}, true, cs, "cs r6 r6 ROR r4", "cs_r6_r6_ROR_r4"}, 662 {{vs, r7, r7, ASR, r2}, true, vs, "vs r7 r7 ASR r2", "vs_r7_r7_ASR_r2"}, 663 {{ls, r4, r4, LSL, r2}, true, ls, "ls r4 r4 LSL r2", "ls_r4_r4_LSL_r2"}, 664 {{cc, r6, r6, LSL, r4}, true, cc, "cc r6 r6 LSL r4", "cc_r6_r6_LSL_r4"}, 665 {{ne, r7, r7, LSR, r3}, true, ne, "ne r7 r7 LSR r3", "ne_r7_r7_LSR_r3"}, 666 {{lt, r1, r1, LSR, r0}, true, lt, "lt r1 r1 LSR r0", "lt_r1_r1_LSR_r0"}, 667 {{ne, r6, r6, LSR, r1}, true, ne, "ne r6 r6 LSR r1", "ne_r6_r6_LSR_r1"}, 668 {{mi, r4, r4, ROR, r4}, true, mi, "mi r4 r4 ROR r4", "mi_r4_r4_ROR_r4"}, 669 {{eq, r4, r4, ASR, r1}, true, eq, "eq r4 r4 ASR r1", "eq_r4_r4_ASR_r1"}, 670 {{vc, r0, r0, LSL, r4}, true, vc, "vc r0 r0 LSL r4", "vc_r0_r0_LSL_r4"}, 671 {{ls, r3, r3, ROR, r6}, true, ls, "ls r3 r3 ROR r6", "ls_r3_r3_ROR_r6"}, 672 {{pl, r3, r3, LSL, r1}, true, pl, "pl r3 r3 LSL r1", "pl_r3_r3_LSL_r1"}, 673 {{mi, r4, r4, ASR, r6}, true, mi, "mi r4 r4 ASR r6", "mi_r4_r4_ASR_r6"}, 674 {{ne, r5, r5, ROR, r1}, true, ne, "ne r5 r5 ROR r1", "ne_r5_r5_ROR_r1"}, 675 {{le, r4, r4, ASR, r5}, true, le, "le r4 r4 ASR r5", "le_r4_r4_ASR_r5"}, 676 {{gt, r0, r0, ASR, r1}, true, gt, "gt r0 r0 ASR r1", "gt_r0_r0_ASR_r1"}, 677 {{cc, r3, r3, LSR, r0}, true, cc, "cc r3 r3 LSR r0", "cc_r3_r3_LSR_r0"}, 678 {{ge, r1, r1, LSL, r5}, true, ge, "ge r1 r1 LSL r5", "ge_r1_r1_LSL_r5"}, 679 {{gt, r4, r4, LSR, r4}, true, gt, "gt r4 r4 LSR r4", "gt_r4_r4_LSR_r4"}, 680 {{mi, r6, r6, ROR, r4}, true, mi, "mi r6 r6 ROR r4", "mi_r6_r6_ROR_r4"}, 681 {{pl, r4, r4, LSR, r7}, true, pl, "pl r4 r4 LSR r7", "pl_r4_r4_LSR_r7"}, 682 {{hi, r7, r7, ASR, r6}, true, hi, "hi r7 r7 ASR r6", "hi_r7_r7_ASR_r6"}, 683 {{vc, r1, r1, ROR, r4}, true, vc, "vc r1 r1 ROR r4", "vc_r1_r1_ROR_r4"}, 684 {{le, r4, r4, LSR, r7}, true, le, "le r4 r4 LSR r7", "le_r4_r4_LSR_r7"}, 685 {{le, r2, r2, ASR, r6}, true, le, "le r2 r2 ASR r6", "le_r2_r2_ASR_r6"}, 686 {{le, r4, r4, LSL, r2}, true, le, "le r4 r4 LSL r2", "le_r4_r4_LSL_r2"}, 687 {{eq, r7, r7, ASR, r4}, true, eq, "eq r7 r7 ASR r4", "eq_r7_r7_ASR_r4"}, 688 {{ls, r2, r2, LSL, r6}, true, ls, "ls r2 r2 LSL r6", "ls_r2_r2_LSL_r6"}, 689 {{pl, r3, r3, LSL, r6}, true, pl, "pl r3 r3 LSL r6", "pl_r3_r3_LSL_r6"}, 690 {{cc, r7, r7, LSR, r5}, true, cc, "cc r7 r7 LSR r5", "cc_r7_r7_LSR_r5"}, 691 {{cc, r1, r1, LSL, r7}, true, cc, "cc r1 r1 LSL r7", "cc_r1_r1_LSL_r7"}, 692 {{gt, r5, r5, LSR, r4}, true, gt, "gt r5 r5 LSR r4", "gt_r5_r5_LSR_r4"}, 693 {{ne, r2, r2, LSL, r4}, true, ne, "ne r2 r2 LSL r4", "ne_r2_r2_LSL_r4"}, 694 {{ge, r2, r2, ASR, r7}, true, ge, "ge r2 r2 ASR r7", "ge_r2_r2_ASR_r7"}, 695 {{gt, r2, r2, ROR, r7}, true, gt, "gt r2 r2 ROR r7", "gt_r2_r2_ROR_r7"}, 696 {{gt, r6, r6, ROR, r5}, true, gt, "gt r6 r6 ROR r5", "gt_r6_r6_ROR_r5"}, 697 {{lt, r4, r4, ASR, r3}, true, lt, "lt r4 r4 ASR r3", "lt_r4_r4_ASR_r3"}, 698 {{vc, r1, r1, LSR, r7}, true, vc, "vc r1 r1 LSR r7", "vc_r1_r1_LSR_r7"}, 699 {{ne, r2, r2, LSR, r7}, true, ne, "ne r2 r2 LSR r7", "ne_r2_r2_LSR_r7"}, 700 {{ls, r0, r0, LSR, r5}, true, ls, "ls r0 r0 LSR r5", "ls_r0_r0_LSR_r5"}, 701 {{cs, r3, r3, ASR, r1}, true, cs, "cs r3 r3 ASR r1", "cs_r3_r3_ASR_r1"}, 702 {{gt, r2, r2, ROR, r1}, true, gt, "gt r2 r2 ROR r1", "gt_r2_r2_ROR_r1"}, 703 {{eq, r0, r0, LSL, r3}, true, eq, "eq r0 r0 LSL r3", "eq_r0_r0_LSL_r3"}, 704 {{ls, r5, r5, ASR, r5}, true, ls, "ls r5 r5 ASR r5", "ls_r5_r5_ASR_r5"}, 705 {{cs, r5, r5, ROR, r5}, true, cs, "cs r5 r5 ROR r5", "cs_r5_r5_ROR_r5"}, 706 {{gt, r3, r3, ROR, r7}, true, gt, "gt r3 r3 ROR r7", "gt_r3_r3_ROR_r7"}, 707 {{vc, r3, r3, LSL, r6}, true, vc, "vc r3 r3 LSL r6", "vc_r3_r3_LSL_r6"}, 708 {{ge, r3, r3, LSR, r1}, true, ge, "ge r3 r3 LSR r1", "ge_r3_r3_LSR_r1"}, 709 {{cc, r2, r2, ROR, r3}, true, cc, "cc r2 r2 ROR r3", "cc_r2_r2_ROR_r3"}, 710 {{mi, r5, r5, ROR, r7}, true, mi, "mi r5 r5 ROR r7", "mi_r5_r5_ROR_r7"}, 711 {{eq, r6, r6, ASR, r3}, true, eq, "eq r6 r6 ASR r3", "eq_r6_r6_ASR_r3"}, 712 {{ne, r2, r2, LSL, r1}, true, ne, "ne r2 r2 LSL r1", "ne_r2_r2_LSL_r1"}, 713 {{mi, r5, r5, ROR, r6}, true, mi, "mi r5 r5 ROR r6", "mi_r5_r5_ROR_r6"}, 714 {{vc, r2, r2, ROR, r2}, true, vc, "vc r2 r2 ROR r2", "vc_r2_r2_ROR_r2"}, 715 {{pl, r7, r7, LSR, r1}, true, pl, "pl r7 r7 LSR r1", "pl_r7_r7_LSR_r1"}, 716 {{eq, r7, r7, ROR, r4}, true, eq, "eq r7 r7 ROR r4", "eq_r7_r7_ROR_r4"}, 717 {{eq, r1, r1, ASR, r4}, true, eq, "eq r1 r1 ASR r4", "eq_r1_r1_ASR_r4"}, 718 {{mi, r5, r5, LSL, r2}, true, mi, "mi r5 r5 LSL r2", "mi_r5_r5_LSL_r2"}, 719 {{pl, r0, r0, LSL, r4}, true, pl, "pl r0 r0 LSL r4", "pl_r0_r0_LSL_r4"}, 720 {{hi, r4, r4, LSR, r2}, true, hi, "hi r4 r4 LSR r2", "hi_r4_r4_LSR_r2"}, 721 {{lt, r5, r5, LSL, r6}, true, lt, "lt r5 r5 LSL r6", "lt_r5_r5_LSL_r6"}, 722 {{lt, r6, r6, ASR, r5}, true, lt, "lt r6 r6 ASR r5", "lt_r6_r6_ASR_r5"}, 723 {{eq, r1, r1, ASR, r0}, true, eq, "eq r1 r1 ASR r0", "eq_r1_r1_ASR_r0"}, 724 {{mi, r6, r6, ASR, r3}, true, mi, "mi r6 r6 ASR r3", "mi_r6_r6_ASR_r3"}, 725 {{lt, r0, r0, LSR, r4}, true, lt, "lt r0 r0 LSR r4", "lt_r0_r0_LSR_r4"}, 726 {{lt, r5, r5, ROR, r4}, true, lt, "lt r5 r5 ROR r4", "lt_r5_r5_ROR_r4"}, 727 {{ne, r1, r1, ASR, r7}, true, ne, "ne r1 r1 ASR r7", "ne_r1_r1_ASR_r7"}, 728 {{gt, r3, r3, LSL, r4}, true, gt, "gt r3 r3 LSL r4", "gt_r3_r3_LSL_r4"}, 729 {{le, r3, r3, ROR, r6}, true, le, "le r3 r3 ROR r6", "le_r3_r3_ROR_r6"}, 730 {{ne, r5, r5, ASR, r7}, true, ne, "ne r5 r5 ASR r7", "ne_r5_r5_ASR_r7"}, 731 {{hi, r5, r5, ROR, r6}, true, hi, "hi r5 r5 ROR r6", "hi_r5_r5_ROR_r6"}, 732 {{vs, r3, r3, LSR, r2}, true, vs, "vs r3 r3 LSR r2", "vs_r3_r3_LSR_r2"}, 733 {{ls, r1, r1, LSR, r1}, true, ls, "ls r1 r1 LSR r1", "ls_r1_r1_LSR_r1"}, 734 {{ls, r4, r4, LSR, r2}, true, ls, "ls r4 r4 LSR r2", "ls_r4_r4_LSR_r2"}, 735 {{gt, r7, r7, LSL, r1}, true, gt, "gt r7 r7 LSL r1", "gt_r7_r7_LSL_r1"}, 736 {{ge, r0, r0, ROR, r3}, true, ge, "ge r0 r0 ROR r3", "ge_r0_r0_ROR_r3"}, 737 {{gt, r7, r7, ASR, r4}, true, gt, "gt r7 r7 ASR r4", "gt_r7_r7_ASR_r4"}, 738 {{ne, r0, r0, LSL, r7}, true, ne, "ne r0 r0 LSL r7", "ne_r0_r0_LSL_r7"}, 739 {{ge, r2, r2, ROR, r1}, true, ge, "ge r2 r2 ROR r1", "ge_r2_r2_ROR_r1"}, 740 {{ge, r5, r5, LSR, r3}, true, ge, "ge r5 r5 LSR r3", "ge_r5_r5_LSR_r3"}, 741 {{ls, r2, r2, ASR, r0}, true, ls, "ls r2 r2 ASR r0", "ls_r2_r2_ASR_r0"}, 742 {{le, r5, r5, ASR, r7}, true, le, "le r5 r5 ASR r7", "le_r5_r5_ASR_r7"}, 743 {{le, r0, r0, LSR, r6}, true, le, "le r0 r0 LSR r6", "le_r0_r0_LSR_r6"}, 744 {{ne, r6, r6, ROR, r1}, true, ne, "ne r6 r6 ROR r1", "ne_r6_r6_ROR_r1"}, 745 {{vs, r2, r2, ASR, r0}, true, vs, "vs r2 r2 ASR r0", "vs_r2_r2_ASR_r0"}, 746 {{mi, r0, r0, LSR, r1}, true, mi, "mi r0 r0 LSR r1", "mi_r0_r0_LSR_r1"}, 747 {{cs, r1, r1, LSL, r5}, true, cs, "cs r1 r1 LSL r5", "cs_r1_r1_LSL_r5"}, 748 {{vc, r3, r3, ROR, r7}, true, vc, "vc r3 r3 ROR r7", "vc_r3_r3_ROR_r7"}, 749 {{gt, r6, r6, ASR, r0}, true, gt, "gt r6 r6 ASR r0", "gt_r6_r6_ASR_r0"}, 750 {{le, r2, r2, LSR, r3}, true, le, "le r2 r2 LSR r3", "le_r2_r2_LSR_r3"}, 751 {{lt, r4, r4, LSR, r3}, true, lt, "lt r4 r4 LSR r3", "lt_r4_r4_LSR_r3"}, 752 {{gt, r1, r1, ROR, r6}, true, gt, "gt r1 r1 ROR r6", "gt_r1_r1_ROR_r6"}, 753 {{ls, r6, r6, LSR, r4}, true, ls, "ls r6 r6 LSR r4", "ls_r6_r6_LSR_r4"}, 754 {{vc, r5, r5, ROR, r0}, true, vc, "vc r5 r5 ROR r0", "vc_r5_r5_ROR_r0"}, 755 {{ge, r2, r2, LSR, r2}, true, ge, "ge r2 r2 LSR r2", "ge_r2_r2_LSR_r2"}, 756 {{ls, r0, r0, LSR, r3}, true, ls, "ls r0 r0 LSR r3", "ls_r0_r0_LSR_r3"}, 757 {{gt, r6, r6, ASR, r6}, true, gt, "gt r6 r6 ASR r6", "gt_r6_r6_ASR_r6"}, 758 {{ne, r0, r0, LSL, r3}, true, ne, "ne r0 r0 LSL r3", "ne_r0_r0_LSL_r3"}, 759 {{mi, r0, r0, ASR, r1}, true, mi, "mi r0 r0 ASR r1", "mi_r0_r0_ASR_r1"}, 760 {{ge, r6, r6, ASR, r6}, true, ge, "ge r6 r6 ASR r6", "ge_r6_r6_ASR_r6"}, 761 {{pl, r2, r2, ASR, r2}, true, pl, "pl r2 r2 ASR r2", "pl_r2_r2_ASR_r2"}, 762 {{eq, r5, r5, LSL, r2}, true, eq, "eq r5 r5 LSL r2", "eq_r5_r5_LSL_r2"}, 763 {{vc, r2, r2, LSL, r3}, true, vc, "vc r2 r2 LSL r3", "vc_r2_r2_LSL_r3"}, 764 {{ls, r1, r1, LSL, r2}, true, ls, "ls r1 r1 LSL r2", "ls_r1_r1_LSL_r2"}, 765 {{vc, r3, r3, LSR, r0}, true, vc, "vc r3 r3 LSR r0", "vc_r3_r3_LSR_r0"}, 766 {{vc, r4, r4, ASR, r5}, true, vc, "vc r4 r4 ASR r5", "vc_r4_r4_ASR_r5"}, 767 {{ls, r2, r2, ASR, r1}, true, ls, "ls r2 r2 ASR r1", "ls_r2_r2_ASR_r1"}, 768 {{ls, r3, r3, LSL, r6}, true, ls, "ls r3 r3 LSL r6", "ls_r3_r3_LSL_r6"}, 769 {{vs, r6, r6, ROR, r5}, true, vs, "vs r6 r6 ROR r5", "vs_r6_r6_ROR_r5"}, 770 {{eq, r2, r2, LSR, r6}, true, eq, "eq r2 r2 LSR r6", "eq_r2_r2_LSR_r6"}, 771 {{hi, r3, r3, LSR, r5}, true, hi, "hi r3 r3 LSR r5", "hi_r3_r3_LSR_r5"}, 772 {{eq, r2, r2, ASR, r6}, true, eq, "eq r2 r2 ASR r6", "eq_r2_r2_ASR_r6"}, 773 {{mi, r2, r2, ASR, r4}, true, mi, "mi r2 r2 ASR r4", "mi_r2_r2_ASR_r4"}, 774 {{le, r6, r6, ROR, r6}, true, le, "le r6 r6 ROR r6", "le_r6_r6_ROR_r6"}, 775 {{eq, r0, r0, ROR, r7}, true, eq, "eq r0 r0 ROR r7", "eq_r0_r0_ROR_r7"}, 776 {{vs, r4, r4, LSL, r2}, true, vs, "vs r4 r4 LSL r2", "vs_r4_r4_LSL_r2"}, 777 {{vc, r2, r2, LSR, r5}, true, vc, "vc r2 r2 LSR r5", "vc_r2_r2_LSR_r5"}, 778 {{cc, r0, r0, ROR, r1}, true, cc, "cc r0 r0 ROR r1", "cc_r0_r0_ROR_r1"}, 779 {{lt, r5, r5, ASR, r0}, true, lt, "lt r5 r5 ASR r0", "lt_r5_r5_ASR_r0"}, 780 {{mi, r0, r0, LSL, r5}, true, mi, "mi r0 r0 LSL r5", "mi_r0_r0_LSL_r5"}, 781 {{eq, r6, r6, LSR, r1}, true, eq, "eq r6 r6 LSR r1", "eq_r6_r6_LSR_r1"}, 782 {{gt, r3, r3, ROR, r3}, true, gt, "gt r3 r3 ROR r3", "gt_r3_r3_ROR_r3"}, 783 {{gt, r6, r6, LSR, r7}, true, gt, "gt r6 r6 LSR r7", "gt_r6_r6_LSR_r7"}, 784 {{ne, r3, r3, LSL, r7}, true, ne, "ne r3 r3 LSL r7", "ne_r3_r3_LSL_r7"}, 785 {{cs, r2, r2, ASR, r4}, true, cs, "cs r2 r2 ASR r4", "cs_r2_r2_ASR_r4"}, 786 {{ge, r6, r6, ASR, r7}, true, ge, "ge r6 r6 ASR r7", "ge_r6_r6_ASR_r7"}, 787 {{hi, r7, r7, ASR, r0}, true, hi, "hi r7 r7 ASR r0", "hi_r7_r7_ASR_r0"}, 788 {{le, r2, r2, ASR, r1}, true, le, "le r2 r2 ASR r1", "le_r2_r2_ASR_r1"}, 789 {{vs, r6, r6, LSR, r5}, true, vs, "vs r6 r6 LSR r5", "vs_r6_r6_LSR_r5"}, 790 {{cs, r3, r3, ROR, r5}, true, cs, "cs r3 r3 ROR r5", "cs_r3_r3_ROR_r5"}, 791 {{le, r7, r7, LSR, r3}, true, le, "le r7 r7 LSR r3", "le_r7_r7_LSR_r3"}, 792 {{vc, r2, r2, ASR, r0}, true, vc, "vc r2 r2 ASR r0", "vc_r2_r2_ASR_r0"}, 793 {{ne, r7, r7, LSL, r3}, true, ne, "ne r7 r7 LSL r3", "ne_r7_r7_LSL_r3"}, 794 {{vs, r6, r6, ASR, r1}, true, vs, "vs r6 r6 ASR r1", "vs_r6_r6_ASR_r1"}, 795 {{cs, r4, r4, LSL, r0}, true, cs, "cs r4 r4 LSL r0", "cs_r4_r4_LSL_r0"}, 796 {{hi, r3, r3, ASR, r7}, true, hi, "hi r3 r3 ASR r7", "hi_r3_r3_ASR_r7"}, 797 {{eq, r5, r5, ASR, r2}, true, eq, "eq r5 r5 ASR r2", "eq_r5_r5_ASR_r2"}, 798 {{ge, r0, r0, ASR, r1}, true, ge, "ge r0 r0 ASR r1", "ge_r0_r0_ASR_r1"}, 799 {{cs, r1, r1, LSR, r0}, true, cs, "cs r1 r1 LSR r0", "cs_r1_r1_LSR_r0"}, 800 {{ne, r7, r7, LSL, r1}, true, ne, "ne r7 r7 LSL r1", "ne_r7_r7_LSL_r1"}, 801 {{cc, r1, r1, LSR, r0}, true, cc, "cc r1 r1 LSR r0", "cc_r1_r1_LSR_r0"}, 802 {{cs, r0, r0, LSL, r3}, true, cs, "cs r0 r0 LSL r3", "cs_r0_r0_LSL_r3"}, 803 {{hi, r3, r3, ASR, r6}, true, hi, "hi r3 r3 ASR r6", "hi_r3_r3_ASR_r6"}, 804 {{cs, r4, r4, ROR, r1}, true, cs, "cs r4 r4 ROR r1", "cs_r4_r4_ROR_r1"}, 805 {{eq, r0, r0, LSL, r6}, true, eq, "eq r0 r0 LSL r6", "eq_r0_r0_LSL_r6"}, 806 {{vc, r3, r3, ROR, r3}, true, vc, "vc r3 r3 ROR r3", "vc_r3_r3_ROR_r3"}, 807 {{le, r0, r0, ASR, r0}, true, le, "le r0 r0 ASR r0", "le_r0_r0_ASR_r0"}, 808 {{vs, r4, r4, LSR, r5}, true, vs, "vs r4 r4 LSR r5", "vs_r4_r4_LSR_r5"}, 809 {{ne, r4, r4, ROR, r2}, true, ne, "ne r4 r4 ROR r2", "ne_r4_r4_ROR_r2"}, 810 {{gt, r5, r5, ASR, r6}, true, gt, "gt r5 r5 ASR r6", "gt_r5_r5_ASR_r6"}, 811 {{hi, r7, r7, LSR, r0}, true, hi, "hi r7 r7 LSR r0", "hi_r7_r7_LSR_r0"}, 812 {{vc, r1, r1, ROR, r3}, true, vc, "vc r1 r1 ROR r3", "vc_r1_r1_ROR_r3"}, 813 {{pl, r0, r0, ASR, r4}, true, pl, "pl r0 r0 ASR r4", "pl_r0_r0_ASR_r4"}, 814 {{mi, r1, r1, LSL, r3}, true, mi, "mi r1 r1 LSL r3", "mi_r1_r1_LSL_r3"}, 815 {{pl, r2, r2, ASR, r0}, true, pl, "pl r2 r2 ASR r0", "pl_r2_r2_ASR_r0"}, 816 {{mi, r2, r2, ROR, r5}, true, mi, "mi r2 r2 ROR r5", "mi_r2_r2_ROR_r5"}, 817 {{vs, r1, r1, ROR, r4}, true, vs, "vs r1 r1 ROR r4", "vs_r1_r1_ROR_r4"}, 818 {{hi, r6, r6, ROR, r0}, true, hi, "hi r6 r6 ROR r0", "hi_r6_r6_ROR_r0"}, 819 {{cc, r7, r7, ASR, r7}, true, cc, "cc r7 r7 ASR r7", "cc_r7_r7_ASR_r7"}, 820 {{ls, r3, r3, ROR, r4}, true, ls, "ls r3 r3 ROR r4", "ls_r3_r3_ROR_r4"}, 821 {{hi, r0, r0, LSL, r0}, true, hi, "hi r0 r0 LSL r0", "hi_r0_r0_LSL_r0"}, 822 {{hi, r3, r3, LSL, r6}, true, hi, "hi r3 r3 LSL r6", "hi_r3_r3_LSL_r6"}, 823 {{le, r6, r6, ROR, r5}, true, le, "le r6 r6 ROR r5", "le_r6_r6_ROR_r5"}, 824 {{vs, r5, r5, ASR, r7}, true, vs, "vs r5 r5 ASR r7", "vs_r5_r5_ASR_r7"}, 825 {{pl, r5, r5, ROR, r5}, true, pl, "pl r5 r5 ROR r5", "pl_r5_r5_ROR_r5"}, 826 {{vc, r0, r0, LSR, r6}, true, vc, "vc r0 r0 LSR r6", "vc_r0_r0_LSR_r6"}, 827 {{ne, r2, r2, LSR, r3}, true, ne, "ne r2 r2 LSR r3", "ne_r2_r2_LSR_r3"}, 828 {{ls, r7, r7, ROR, r1}, true, ls, "ls r7 r7 ROR r1", "ls_r7_r7_ROR_r1"}, 829 {{ls, r2, r2, ROR, r3}, true, ls, "ls r2 r2 ROR r3", "ls_r2_r2_ROR_r3"}, 830 {{gt, r4, r4, LSR, r7}, true, gt, "gt r4 r4 LSR r7", "gt_r4_r4_LSR_r7"}, 831 {{hi, r4, r4, ASR, r4}, true, hi, "hi r4 r4 ASR r4", "hi_r4_r4_ASR_r4"}, 832 {{hi, r6, r6, ROR, r3}, true, hi, "hi r6 r6 ROR r3", "hi_r6_r6_ROR_r3"}, 833 {{vs, r5, r5, LSL, r3}, true, vs, "vs r5 r5 LSL r3", "vs_r5_r5_LSL_r3"}, 834 {{cs, r0, r0, LSR, r3}, true, cs, "cs r0 r0 LSR r3", "cs_r0_r0_LSR_r3"}, 835 {{cc, r4, r4, LSL, r7}, true, cc, "cc r4 r4 LSL r7", "cc_r4_r4_LSL_r7"}, 836 {{eq, r4, r4, ROR, r1}, true, eq, "eq r4 r4 ROR r1", "eq_r4_r4_ROR_r1"}, 837 {{vs, r7, r7, ASR, r3}, true, vs, "vs r7 r7 ASR r3", "vs_r7_r7_ASR_r3"}, 838 {{le, r5, r5, LSR, r7}, true, le, "le r5 r5 LSR r7", "le_r5_r5_LSR_r7"}, 839 {{lt, r7, r7, LSL, r1}, true, lt, "lt r7 r7 LSL r1", "lt_r7_r7_LSL_r1"}, 840 {{gt, r6, r6, ROR, r2}, true, gt, "gt r6 r6 ROR r2", "gt_r6_r6_ROR_r2"}, 841 {{vc, r0, r0, ASR, r0}, true, vc, "vc r0 r0 ASR r0", "vc_r0_r0_ASR_r0"}, 842 {{ls, r4, r4, LSR, r4}, true, ls, "ls r4 r4 LSR r4", "ls_r4_r4_LSR_r4"}, 843 {{hi, r4, r4, LSL, r5}, true, hi, "hi r4 r4 LSL r5", "hi_r4_r4_LSL_r5"}, 844 {{hi, r6, r6, LSR, r0}, true, hi, "hi r6 r6 LSR r0", "hi_r6_r6_LSR_r0"}, 845 {{ge, r3, r3, ASR, r0}, true, ge, "ge r3 r3 ASR r0", "ge_r3_r3_ASR_r0"}, 846 {{vs, r7, r7, ASR, r7}, true, vs, "vs r7 r7 ASR r7", "vs_r7_r7_ASR_r7"}, 847 {{hi, r1, r1, LSL, r3}, true, hi, "hi r1 r1 LSL r3", "hi_r1_r1_LSL_r3"}, 848 {{ls, r4, r4, ASR, r3}, true, ls, "ls r4 r4 ASR r3", "ls_r4_r4_ASR_r3"}, 849 {{eq, r7, r7, ASR, r6}, true, eq, "eq r7 r7 ASR r6", "eq_r7_r7_ASR_r6"}, 850 {{cc, r1, r1, ASR, r7}, true, cc, "cc r1 r1 ASR r7", "cc_r1_r1_ASR_r7"}, 851 {{hi, r4, r4, ROR, r1}, true, hi, "hi r4 r4 ROR r1", "hi_r4_r4_ROR_r1"}, 852 {{gt, r0, r0, ROR, r0}, true, gt, "gt r0 r0 ROR r0", "gt_r0_r0_ROR_r0"}, 853 {{hi, r0, r0, LSR, r3}, true, hi, "hi r0 r0 LSR r3", "hi_r0_r0_LSR_r3"}, 854 {{cc, r0, r0, LSL, r3}, true, cc, "cc r0 r0 LSL r3", "cc_r0_r0_LSL_r3"}, 855 {{ls, r6, r6, LSL, r6}, true, ls, "ls r6 r6 LSL r6", "ls_r6_r6_LSL_r6"}, 856 {{cs, r2, r2, LSR, r5}, true, cs, "cs r2 r2 LSR r5", "cs_r2_r2_LSR_r5"}, 857 {{le, r5, r5, LSL, r3}, true, le, "le r5 r5 LSL r3", "le_r5_r5_LSL_r3"}, 858 {{ge, r1, r1, LSR, r7}, true, ge, "ge r1 r1 LSR r7", "ge_r1_r1_LSR_r7"}, 859 {{cs, r4, r4, ASR, r7}, true, cs, "cs r4 r4 ASR r7", "cs_r4_r4_ASR_r7"}, 860 {{lt, r1, r1, ASR, r7}, true, lt, "lt r1 r1 ASR r7", "lt_r1_r1_ASR_r7"}, 861 {{mi, r4, r4, LSR, r5}, true, mi, "mi r4 r4 LSR r5", "mi_r4_r4_LSR_r5"}, 862 {{cc, r6, r6, ROR, r0}, true, cc, "cc r6 r6 ROR r0", "cc_r6_r6_ROR_r0"}, 863 {{mi, r4, r4, LSR, r1}, true, mi, "mi r4 r4 LSR r1", "mi_r4_r4_LSR_r1"}, 864 {{gt, r1, r1, ROR, r5}, true, gt, "gt r1 r1 ROR r5", "gt_r1_r1_ROR_r5"}, 865 {{vs, r2, r2, LSR, r2}, true, vs, "vs r2 r2 LSR r2", "vs_r2_r2_LSR_r2"}, 866 {{cs, r3, r3, LSL, r4}, true, cs, "cs r3 r3 LSL r4", "cs_r3_r3_LSL_r4"}, 867 {{le, r5, r5, ASR, r5}, true, le, "le r5 r5 ASR r5", "le_r5_r5_ASR_r5"}, 868 {{vs, r1, r1, LSR, r0}, true, vs, "vs r1 r1 LSR r0", "vs_r1_r1_LSR_r0"}, 869 {{le, r7, r7, LSL, r5}, true, le, "le r7 r7 LSL r5", "le_r7_r7_LSL_r5"}, 870 {{ne, r6, r6, LSR, r4}, true, ne, "ne r6 r6 LSR r4", "ne_r6_r6_LSR_r4"}, 871 {{le, r0, r0, ASR, r4}, true, le, "le r0 r0 ASR r4", "le_r0_r0_ASR_r4"}, 872 {{ls, r4, r4, ASR, r1}, true, ls, "ls r4 r4 ASR r1", "ls_r4_r4_ASR_r1"}, 873 {{gt, r1, r1, ASR, r6}, true, gt, "gt r1 r1 ASR r6", "gt_r1_r1_ASR_r6"}, 874 {{cs, r6, r6, LSL, r2}, true, cs, "cs r6 r6 LSL r2", "cs_r6_r6_LSL_r2"}, 875 {{cc, r2, r2, ROR, r0}, true, cc, "cc r2 r2 ROR r0", "cc_r2_r2_ROR_r0"}, 876 {{cc, r7, r7, ASR, r1}, true, cc, "cc r7 r7 ASR r1", "cc_r7_r7_ASR_r1"}, 877 {{ls, r6, r6, ASR, r0}, true, ls, "ls r6 r6 ASR r0", "ls_r6_r6_ASR_r0"}, 878 {{ls, r1, r1, LSL, r5}, true, ls, "ls r1 r1 LSL r5", "ls_r1_r1_LSL_r5"}, 879 {{le, r0, r0, LSR, r5}, true, le, "le r0 r0 LSR r5", "le_r0_r0_LSR_r5"}, 880 {{vs, r3, r3, LSR, r5}, true, vs, "vs r3 r3 LSR r5", "vs_r3_r3_LSR_r5"}, 881 {{vs, r3, r3, LSL, r1}, true, vs, "vs r3 r3 LSL r1", "vs_r3_r3_LSL_r1"}, 882 {{cc, r3, r3, ROR, r3}, true, cc, "cc r3 r3 ROR r3", "cc_r3_r3_ROR_r3"}, 883 {{le, r4, r4, ASR, r4}, true, le, "le r4 r4 ASR r4", "le_r4_r4_ASR_r4"}, 884 {{vs, r4, r4, ASR, r1}, true, vs, "vs r4 r4 ASR r1", "vs_r4_r4_ASR_r1"}, 885 {{pl, r2, r2, LSR, r0}, true, pl, "pl r2 r2 LSR r0", "pl_r2_r2_LSR_r0"}, 886 {{vs, r1, r1, LSL, r0}, true, vs, "vs r1 r1 LSL r0", "vs_r1_r1_LSL_r0"}, 887 {{cs, r6, r6, ASR, r7}, true, cs, "cs r6 r6 ASR r7", "cs_r6_r6_ASR_r7"}, 888 {{cs, r3, r3, ROR, r2}, true, cs, "cs r3 r3 ROR r2", "cs_r3_r3_ROR_r2"}, 889 {{mi, r4, r4, ROR, r7}, true, mi, "mi r4 r4 ROR r7", "mi_r4_r4_ROR_r7"}, 890 {{eq, r5, r5, ROR, r0}, true, eq, "eq r5 r5 ROR r0", "eq_r5_r5_ROR_r0"}, 891 {{cs, r3, r3, ROR, r0}, true, cs, "cs r3 r3 ROR r0", "cs_r3_r3_ROR_r0"}, 892 {{mi, r6, r6, LSR, r4}, true, mi, "mi r6 r6 LSR r4", "mi_r6_r6_LSR_r4"}, 893 {{hi, r2, r2, LSL, r4}, true, hi, "hi r2 r2 LSL r4", "hi_r2_r2_LSL_r4"}, 894 {{ge, r7, r7, LSR, r3}, true, ge, "ge r7 r7 LSR r3", "ge_r7_r7_LSR_r3"}, 895 {{mi, r0, r0, LSR, r6}, true, mi, "mi r0 r0 LSR r6", "mi_r0_r0_LSR_r6"}, 896 {{ne, r0, r0, ASR, r1}, true, ne, "ne r0 r0 ASR r1", "ne_r0_r0_ASR_r1"}, 897 {{ls, r0, r0, ROR, r3}, true, ls, "ls r0 r0 ROR r3", "ls_r0_r0_ROR_r3"}, 898 {{le, r1, r1, LSR, r4}, true, le, "le r1 r1 LSR r4", "le_r1_r1_LSR_r4"}, 899 {{ls, r3, r3, ROR, r5}, true, ls, "ls r3 r3 ROR r5", "ls_r3_r3_ROR_r5"}, 900 {{lt, r6, r6, ASR, r6}, true, lt, "lt r6 r6 ASR r6", "lt_r6_r6_ASR_r6"}, 901 {{cs, r5, r5, ASR, r3}, true, cs, "cs r5 r5 ASR r3", "cs_r5_r5_ASR_r3"}, 902 {{ls, r0, r0, LSR, r0}, true, ls, "ls r0 r0 LSR r0", "ls_r0_r0_LSR_r0"}, 903 {{ls, r5, r5, ASR, r4}, true, ls, "ls r5 r5 ASR r4", "ls_r5_r5_ASR_r4"}, 904 {{gt, r2, r2, ROR, r3}, true, gt, "gt r2 r2 ROR r3", "gt_r2_r2_ROR_r3"}, 905 {{hi, r4, r4, ASR, r3}, true, hi, "hi r4 r4 ASR r3", "hi_r4_r4_ASR_r3"}, 906 {{lt, r2, r2, ROR, r0}, true, lt, "lt r2 r2 ROR r0", "lt_r2_r2_ROR_r0"}, 907 {{ge, r0, r0, LSR, r3}, true, ge, "ge r0 r0 LSR r3", "ge_r0_r0_LSR_r3"}, 908 {{pl, r1, r1, ROR, r7}, true, pl, "pl r1 r1 ROR r7", "pl_r1_r1_ROR_r7"}, 909 {{gt, r0, r0, ROR, r5}, true, gt, "gt r0 r0 ROR r5", "gt_r0_r0_ROR_r5"}, 910 {{ls, r5, r5, LSR, r5}, true, ls, "ls r5 r5 LSR r5", "ls_r5_r5_LSR_r5"}, 911 {{cs, r3, r3, LSL, r5}, true, cs, "cs r3 r3 LSL r5", "cs_r3_r3_LSL_r5"}, 912 {{cs, r1, r1, LSL, r2}, true, cs, "cs r1 r1 LSL r2", "cs_r1_r1_LSL_r2"}, 913 {{ge, r5, r5, LSL, r3}, true, ge, "ge r5 r5 LSL r3", "ge_r5_r5_LSL_r3"}, 914 {{ls, r6, r6, ASR, r2}, true, ls, "ls r6 r6 ASR r2", "ls_r6_r6_ASR_r2"}, 915 {{pl, r7, r7, LSR, r7}, true, pl, "pl r7 r7 LSR r7", "pl_r7_r7_LSR_r7"}, 916 {{gt, r7, r7, LSR, r3}, true, gt, "gt r7 r7 LSR r3", "gt_r7_r7_LSR_r3"}, 917 {{ne, r5, r5, LSR, r5}, true, ne, "ne r5 r5 LSR r5", "ne_r5_r5_LSR_r5"}, 918 {{ne, r3, r3, ASR, r6}, true, ne, "ne r3 r3 ASR r6", "ne_r3_r3_ASR_r6"}, 919 {{eq, r3, r3, ASR, r6}, true, eq, "eq r3 r3 ASR r6", "eq_r3_r3_ASR_r6"}, 920 {{pl, r1, r1, ROR, r1}, true, pl, "pl r1 r1 ROR r1", "pl_r1_r1_ROR_r1"}, 921 {{lt, r7, r7, ROR, r6}, true, lt, "lt r7 r7 ROR r6", "lt_r7_r7_ROR_r6"}, 922 {{pl, r4, r4, ROR, r5}, true, pl, "pl r4 r4 ROR r5", "pl_r4_r4_ROR_r5"}, 923 {{ls, r7, r7, ASR, r0}, true, ls, "ls r7 r7 ASR r0", "ls_r7_r7_ASR_r0"}, 924 {{cs, r1, r1, ROR, r4}, true, cs, "cs r1 r1 ROR r4", "cs_r1_r1_ROR_r4"}, 925 {{eq, r0, r0, LSL, r1}, true, eq, "eq r0 r0 LSL r1", "eq_r0_r0_LSL_r1"}, 926 {{ls, r7, r7, ASR, r1}, true, ls, "ls r7 r7 ASR r1", "ls_r7_r7_ASR_r1"}, 927 {{le, r2, r2, LSL, r6}, true, le, "le r2 r2 LSL r6", "le_r2_r2_LSL_r6"}, 928 {{pl, r3, r3, ROR, r7}, true, pl, "pl r3 r3 ROR r7", "pl_r3_r3_ROR_r7"}, 929 {{lt, r7, r7, LSL, r0}, true, lt, "lt r7 r7 LSL r0", "lt_r7_r7_LSL_r0"}, 930 {{cc, r1, r1, LSL, r0}, true, cc, "cc r1 r1 LSL r0", "cc_r1_r1_LSL_r0"}, 931 {{mi, r0, r0, LSR, r3}, true, mi, "mi r0 r0 LSR r3", "mi_r0_r0_LSR_r3"}, 932 {{ls, r0, r0, LSL, r3}, true, ls, "ls r0 r0 LSL r3", "ls_r0_r0_LSL_r3"}, 933 {{lt, r4, r4, LSR, r6}, true, lt, "lt r4 r4 LSR r6", "lt_r4_r4_LSR_r6"}, 934 {{eq, r2, r2, ASR, r5}, true, eq, "eq r2 r2 ASR r5", "eq_r2_r2_ASR_r5"}, 935 {{ls, r6, r6, ROR, r0}, true, ls, "ls r6 r6 ROR r0", "ls_r6_r6_ROR_r0"}, 936 {{vc, r1, r1, ASR, r1}, true, vc, "vc r1 r1 ASR r1", "vc_r1_r1_ASR_r1"}, 937 {{pl, r0, r0, LSL, r6}, true, pl, "pl r0 r0 LSL r6", "pl_r0_r0_LSL_r6"}, 938 {{hi, r4, r4, LSL, r1}, true, hi, "hi r4 r4 LSL r1", "hi_r4_r4_LSL_r1"}, 939 {{vc, r7, r7, LSL, r2}, true, vc, "vc r7 r7 LSL r2", "vc_r7_r7_LSL_r2"}, 940 {{eq, r1, r1, LSR, r4}, true, eq, "eq r1 r1 LSR r4", "eq_r1_r1_LSR_r4"}, 941 {{hi, r2, r2, ASR, r0}, true, hi, "hi r2 r2 ASR r0", "hi_r2_r2_ASR_r0"}, 942 {{pl, r2, r2, LSL, r0}, true, pl, "pl r2 r2 LSL r0", "pl_r2_r2_LSL_r0"}, 943 {{lt, r2, r2, ASR, r3}, true, lt, "lt r2 r2 ASR r3", "lt_r2_r2_ASR_r3"}, 944 {{pl, r5, r5, ASR, r5}, true, pl, "pl r5 r5 ASR r5", "pl_r5_r5_ASR_r5"}, 945 {{le, r7, r7, LSL, r4}, true, le, "le r7 r7 LSL r4", "le_r7_r7_LSL_r4"}, 946 {{eq, r4, r4, ROR, r5}, true, eq, "eq r4 r4 ROR r5", "eq_r4_r4_ROR_r5"}, 947 {{vc, r4, r4, LSR, r2}, true, vc, "vc r4 r4 LSR r2", "vc_r4_r4_LSR_r2"}, 948 {{ne, r3, r3, ROR, r7}, true, ne, "ne r3 r3 ROR r7", "ne_r3_r3_ROR_r7"}, 949 {{gt, r3, r3, ROR, r4}, true, gt, "gt r3 r3 ROR r4", "gt_r3_r3_ROR_r4"}, 950 {{cs, r1, r1, ASR, r4}, true, cs, "cs r1 r1 ASR r4", "cs_r1_r1_ASR_r4"}, 951 {{cs, r4, r4, LSL, r3}, true, cs, "cs r4 r4 LSL r3", "cs_r4_r4_LSL_r3"}, 952 {{lt, r6, r6, ASR, r1}, true, lt, "lt r6 r6 ASR r1", "lt_r6_r6_ASR_r1"}, 953 {{hi, r3, r3, LSL, r5}, true, hi, "hi r3 r3 LSL r5", "hi_r3_r3_LSL_r5"}, 954 {{mi, r6, r6, ASR, r6}, true, mi, "mi r6 r6 ASR r6", "mi_r6_r6_ASR_r6"}, 955 {{le, r4, r4, LSR, r3}, true, le, "le r4 r4 LSR r3", "le_r4_r4_LSR_r3"}, 956 {{lt, r2, r2, LSL, r1}, true, lt, "lt r2 r2 LSL r1", "lt_r2_r2_LSL_r1"}, 957 {{ne, r5, r5, LSR, r2}, true, ne, "ne r5 r5 LSR r2", "ne_r5_r5_LSR_r2"}, 958 {{mi, r3, r3, ASR, r2}, true, mi, "mi r3 r3 ASR r2", "mi_r3_r3_ASR_r2"}, 959 {{ge, r0, r0, LSR, r2}, true, ge, "ge r0 r0 LSR r2", "ge_r0_r0_LSR_r2"}, 960 {{ls, r6, r6, LSR, r3}, true, ls, "ls r6 r6 LSR r3", "ls_r6_r6_LSR_r3"}, 961 {{cc, r2, r2, LSR, r0}, true, cc, "cc r2 r2 LSR r0", "cc_r2_r2_LSR_r0"}, 962 {{vs, r7, r7, LSL, r7}, true, vs, "vs r7 r7 LSL r7", "vs_r7_r7_LSL_r7"}, 963 {{vc, r7, r7, ASR, r7}, true, vc, "vc r7 r7 ASR r7", "vc_r7_r7_ASR_r7"}, 964 {{eq, r6, r6, LSR, r0}, true, eq, "eq r6 r6 LSR r0", "eq_r6_r6_LSR_r0"}, 965 {{vc, r6, r6, ASR, r3}, true, vc, "vc r6 r6 ASR r3", "vc_r6_r6_ASR_r3"}, 966 {{gt, r4, r4, ROR, r4}, true, gt, "gt r4 r4 ROR r4", "gt_r4_r4_ROR_r4"}, 967 {{ls, r5, r5, LSL, r4}, true, ls, "ls r5 r5 LSL r4", "ls_r5_r5_LSL_r4"}, 968 {{ge, r1, r1, ROR, r1}, true, ge, "ge r1 r1 ROR r1", "ge_r1_r1_ROR_r1"}, 969 {{cc, r5, r5, ASR, r0}, true, cc, "cc r5 r5 ASR r0", "cc_r5_r5_ASR_r0"}, 970 {{gt, r2, r2, LSL, r3}, true, gt, "gt r2 r2 LSL r3", "gt_r2_r2_LSL_r3"}, 971 {{ls, r0, r0, LSL, r5}, true, ls, "ls r0 r0 LSL r5", "ls_r0_r0_LSL_r5"}, 972 {{lt, r3, r3, LSL, r4}, true, lt, "lt r3 r3 LSL r4", "lt_r3_r3_LSL_r4"}, 973 {{eq, r6, r6, LSR, r3}, true, eq, "eq r6 r6 LSR r3", "eq_r6_r6_LSR_r3"}, 974 {{ne, r1, r1, ROR, r2}, true, ne, "ne r1 r1 ROR r2", "ne_r1_r1_ROR_r2"}, 975 {{vc, r2, r2, ROR, r0}, true, vc, "vc r2 r2 ROR r0", "vc_r2_r2_ROR_r0"}, 976 {{ls, r0, r0, LSR, r7}, true, ls, "ls r0 r0 LSR r7", "ls_r0_r0_LSR_r7"}, 977 {{mi, r3, r3, LSR, r2}, true, mi, "mi r3 r3 LSR r2", "mi_r3_r3_LSR_r2"}, 978 {{hi, r1, r1, LSL, r4}, true, hi, "hi r1 r1 LSL r4", "hi_r1_r1_LSL_r4"}, 979 {{cc, r1, r1, ROR, r3}, true, cc, "cc r1 r1 ROR r3", "cc_r1_r1_ROR_r3"}, 980 {{eq, r4, r4, ROR, r0}, true, eq, "eq r4 r4 ROR r0", "eq_r4_r4_ROR_r0"}, 981 {{vc, r6, r6, ASR, r2}, true, vc, "vc r6 r6 ASR r2", "vc_r6_r6_ASR_r2"}, 982 {{ls, r4, r4, LSR, r7}, true, ls, "ls r4 r4 LSR r7", "ls_r4_r4_LSR_r7"}, 983 {{vc, r1, r1, LSR, r1}, true, vc, "vc r1 r1 LSR r1", "vc_r1_r1_LSR_r1"}, 984 {{mi, r4, r4, ROR, r2}, true, mi, "mi r4 r4 ROR r2", "mi_r4_r4_ROR_r2"}, 985 {{ge, r7, r7, ROR, r5}, true, ge, "ge r7 r7 ROR r5", "ge_r7_r7_ROR_r5"}, 986 {{mi, r5, r5, LSR, r1}, true, mi, "mi r5 r5 LSR r1", "mi_r5_r5_LSR_r1"}, 987 {{cc, r3, r3, ASR, r6}, true, cc, "cc r3 r3 ASR r6", "cc_r3_r3_ASR_r6"}, 988 {{vc, r6, r6, ROR, r5}, true, vc, "vc r6 r6 ROR r5", "vc_r6_r6_ROR_r5"}, 989 {{mi, r7, r7, LSL, r0}, true, mi, "mi r7 r7 LSL r0", "mi_r7_r7_LSL_r0"}, 990 {{mi, r5, r5, LSR, r4}, true, mi, "mi r5 r5 LSR r4", "mi_r5_r5_LSR_r4"}, 991 {{lt, r6, r6, LSL, r5}, true, lt, "lt r6 r6 LSL r5", "lt_r6_r6_LSL_r5"}, 992 {{ne, r0, r0, ASR, r6}, true, ne, "ne r0 r0 ASR r6", "ne_r0_r0_ASR_r6"}, 993 {{le, r2, r2, ROR, r6}, true, le, "le r2 r2 ROR r6", "le_r2_r2_ROR_r6"}, 994 {{cc, r7, r7, LSL, r3}, true, cc, "cc r7 r7 LSL r3", "cc_r7_r7_LSL_r3"}, 995 {{cc, r6, r6, ASR, r6}, true, cc, "cc r6 r6 ASR r6", "cc_r6_r6_ASR_r6"}, 996 {{le, r2, r2, ASR, r3}, true, le, "le r2 r2 ASR r3", "le_r2_r2_ASR_r3"}, 997 {{ne, r6, r6, LSL, r2}, true, ne, "ne r6 r6 LSL r2", "ne_r6_r6_LSL_r2"}, 998 {{pl, r5, r5, LSL, r0}, true, pl, "pl r5 r5 LSL r0", "pl_r5_r5_LSL_r0"}, 999 {{vs, r1, r1, ASR, r3}, true, vs, "vs r1 r1 ASR r3", "vs_r1_r1_ASR_r3"}, 1000 {{le, r7, r7, LSR, r1}, true, le, "le r7 r7 LSR r1", "le_r7_r7_LSR_r1"}, 1001 {{ge, r3, r3, ROR, r4}, true, ge, "ge r3 r3 ROR r4", "ge_r3_r3_ROR_r4"}, 1002 {{le, r1, r1, LSL, r4}, true, le, "le r1 r1 LSL r4", "le_r1_r1_LSL_r4"}, 1003 {{ge, r2, r2, LSL, r6}, true, ge, "ge r2 r2 LSL r6", "ge_r2_r2_LSL_r6"}, 1004 {{cs, r3, r3, ROR, r3}, true, cs, "cs r3 r3 ROR r3", "cs_r3_r3_ROR_r3"}, 1005 {{vs, r0, r0, ROR, r1}, true, vs, "vs r0 r0 ROR r1", "vs_r0_r0_ROR_r1"}, 1006 {{gt, r3, r3, LSR, r3}, true, gt, "gt r3 r3 LSR r3", "gt_r3_r3_LSR_r3"}, 1007 {{pl, r2, r2, ASR, r4}, true, pl, "pl r2 r2 ASR r4", "pl_r2_r2_ASR_r4"}, 1008 {{vs, r0, r0, ROR, r3}, true, vs, "vs r0 r0 ROR r3", "vs_r0_r0_ROR_r3"}, 1009 {{mi, r7, r7, ASR, r0}, true, mi, "mi r7 r7 ASR r0", "mi_r7_r7_ASR_r0"}, 1010 {{le, r6, r6, LSR, r2}, true, le, "le r6 r6 LSR r2", "le_r6_r6_LSR_r2"}, 1011 {{ne, r4, r4, ROR, r6}, true, ne, "ne r4 r4 ROR r6", "ne_r4_r4_ROR_r6"}, 1012 {{gt, r5, r5, ASR, r4}, true, gt, "gt r5 r5 ASR r4", "gt_r5_r5_ASR_r4"}, 1013 {{ne, r1, r1, LSL, r2}, true, ne, "ne r1 r1 LSL r2", "ne_r1_r1_LSL_r2"}, 1014 {{cs, r7, r7, ASR, r7}, true, cs, "cs r7 r7 ASR r7", "cs_r7_r7_ASR_r7"}, 1015 {{ls, r2, r2, ROR, r2}, true, ls, "ls r2 r2 ROR r2", "ls_r2_r2_ROR_r2"}, 1016 {{le, r3, r3, ASR, r5}, true, le, "le r3 r3 ASR r5", "le_r3_r3_ASR_r5"}, 1017 {{lt, r5, r5, LSL, r4}, true, lt, "lt r5 r5 LSL r4", "lt_r5_r5_LSL_r4"}, 1018 {{le, r0, r0, LSL, r2}, true, le, "le r0 r0 LSL r2", "le_r0_r0_LSL_r2"}, 1019 {{pl, r3, r3, LSL, r5}, true, pl, "pl r3 r3 LSL r5", "pl_r3_r3_LSL_r5"}, 1020 {{ge, r0, r0, ASR, r5}, true, ge, "ge r0 r0 ASR r5", "ge_r0_r0_ASR_r5"}, 1021 {{ls, r3, r3, ASR, r6}, true, ls, "ls r3 r3 ASR r6", "ls_r3_r3_ASR_r6"}, 1022 {{cs, r4, r4, LSL, r5}, true, cs, "cs r4 r4 LSL r5", "cs_r4_r4_LSL_r5"}, 1023 {{cc, r4, r4, LSL, r1}, true, cc, "cc r4 r4 LSL r1", "cc_r4_r4_LSL_r1"}, 1024 {{cs, r6, r6, LSL, r7}, true, cs, "cs r6 r6 LSL r7", "cs_r6_r6_LSL_r7"}, 1025 {{ne, r4, r4, LSL, r6}, true, ne, "ne r4 r4 LSL r6", "ne_r4_r4_LSL_r6"}, 1026 {{cs, r7, r7, ASR, r1}, true, cs, "cs r7 r7 ASR r1", "cs_r7_r7_ASR_r1"}, 1027 {{cc, r2, r2, ASR, r1}, true, cc, "cc r2 r2 ASR r1", "cc_r2_r2_ASR_r1"}, 1028 {{ne, r6, r6, ASR, r2}, true, ne, "ne r6 r6 ASR r2", "ne_r6_r6_ASR_r2"}, 1029 {{mi, r6, r6, LSL, r3}, true, mi, "mi r6 r6 LSL r3", "mi_r6_r6_LSL_r3"}, 1030 {{lt, r6, r6, ASR, r0}, true, lt, "lt r6 r6 ASR r0", "lt_r6_r6_ASR_r0"}, 1031 {{mi, r1, r1, LSL, r0}, true, mi, "mi r1 r1 LSL r0", "mi_r1_r1_LSL_r0"}, 1032 {{pl, r1, r1, LSL, r0}, true, pl, "pl r1 r1 LSL r0", "pl_r1_r1_LSL_r0"}, 1033 {{gt, r0, r0, LSL, r5}, true, gt, "gt r0 r0 LSL r5", "gt_r0_r0_LSL_r5"}, 1034 {{gt, r4, r4, ASR, r3}, true, gt, "gt r4 r4 ASR r3", "gt_r4_r4_ASR_r3"}, 1035 {{pl, r1, r1, LSR, r2}, true, pl, "pl r1 r1 LSR r2", "pl_r1_r1_LSR_r2"}, 1036 {{vc, r1, r1, ROR, r6}, true, vc, "vc r1 r1 ROR r6", "vc_r1_r1_ROR_r6"}, 1037 {{ge, r4, r4, ROR, r0}, true, ge, "ge r4 r4 ROR r0", "ge_r4_r4_ROR_r0"}, 1038 {{le, r1, r1, LSR, r0}, true, le, "le r1 r1 LSR r0", "le_r1_r1_LSR_r0"}, 1039 {{cs, r5, r5, LSL, r2}, true, cs, "cs r5 r5 LSL r2", "cs_r5_r5_LSL_r2"}, 1040 {{ge, r5, r5, ROR, r1}, true, ge, "ge r5 r5 ROR r1", "ge_r5_r5_ROR_r1"}, 1041 {{mi, r3, r3, ROR, r7}, true, mi, "mi r3 r3 ROR r7", "mi_r3_r3_ROR_r7"}, 1042 {{ls, r3, r3, ASR, r2}, true, ls, "ls r3 r3 ASR r2", "ls_r3_r3_ASR_r2"}, 1043 {{le, r1, r1, LSL, r3}, true, le, "le r1 r1 LSL r3", "le_r1_r1_LSL_r3"}, 1044 {{ls, r2, r2, ASR, r4}, true, ls, "ls r2 r2 ASR r4", "ls_r2_r2_ASR_r4"}, 1045 {{lt, r5, r5, ASR, r2}, true, lt, "lt r5 r5 ASR r2", "lt_r5_r5_ASR_r2"}, 1046 {{cs, r0, r0, ASR, r0}, true, cs, "cs r0 r0 ASR r0", "cs_r0_r0_ASR_r0"}, 1047 {{cs, r2, r2, ROR, r1}, true, cs, "cs r2 r2 ROR r1", "cs_r2_r2_ROR_r1"}, 1048 {{hi, r2, r2, ROR, r1}, true, hi, "hi r2 r2 ROR r1", "hi_r2_r2_ROR_r1"}, 1049 {{ge, r0, r0, ASR, r4}, true, ge, "ge r0 r0 ASR r4", "ge_r0_r0_ASR_r4"}, 1050 {{le, r7, r7, LSR, r5}, true, le, "le r7 r7 LSR r5", "le_r7_r7_LSR_r5"}, 1051 {{eq, r2, r2, ROR, r3}, true, eq, "eq r2 r2 ROR r3", "eq_r2_r2_ROR_r3"}, 1052 {{hi, r2, r2, LSL, r1}, true, hi, "hi r2 r2 LSL r1", "hi_r2_r2_LSL_r1"}, 1053 {{hi, r4, r4, LSR, r0}, true, hi, "hi r4 r4 LSR r0", "hi_r4_r4_LSR_r0"}, 1054 {{gt, r6, r6, ASR, r5}, true, gt, "gt r6 r6 ASR r5", "gt_r6_r6_ASR_r5"}, 1055 {{pl, r0, r0, ASR, r7}, true, pl, "pl r0 r0 ASR r7", "pl_r0_r0_ASR_r7"}, 1056 {{cc, r3, r3, LSL, r2}, true, cc, "cc r3 r3 LSL r2", "cc_r3_r3_LSL_r2"}, 1057 {{mi, r0, r0, ASR, r7}, true, mi, "mi r0 r0 ASR r7", "mi_r0_r0_ASR_r7"}, 1058 {{eq, r4, r4, LSR, r7}, true, eq, "eq r4 r4 LSR r7", "eq_r4_r4_LSR_r7"}, 1059 {{vs, r0, r0, ASR, r1}, true, vs, "vs r0 r0 ASR r1", "vs_r0_r0_ASR_r1"}, 1060 {{ge, r1, r1, LSR, r2}, true, ge, "ge r1 r1 LSR r2", "ge_r1_r1_LSR_r2"}, 1061 {{ge, r4, r4, LSR, r4}, true, ge, "ge r4 r4 LSR r4", "ge_r4_r4_LSR_r4"}, 1062 {{le, r3, r3, LSL, r6}, true, le, "le r3 r3 LSL r6", "le_r3_r3_LSL_r6"}, 1063 {{pl, r6, r6, ASR, r4}, true, pl, "pl r6 r6 ASR r4", "pl_r6_r6_ASR_r4"}, 1064 {{ne, r3, r3, LSR, r6}, true, ne, "ne r3 r3 LSR r6", "ne_r3_r3_LSR_r6"}, 1065 {{gt, r3, r3, LSR, r6}, true, gt, "gt r3 r3 LSR r6", "gt_r3_r3_LSR_r6"}, 1066 {{lt, r1, r1, LSL, r3}, true, lt, "lt r1 r1 LSL r3", "lt_r1_r1_LSL_r3"}, 1067 {{ne, r1, r1, LSR, r7}, true, ne, "ne r1 r1 LSR r7", "ne_r1_r1_LSR_r7"}, 1068 {{ne, r1, r1, ROR, r4}, true, ne, "ne r1 r1 ROR r4", "ne_r1_r1_ROR_r4"}, 1069 {{le, r7, r7, LSR, r7}, true, le, "le r7 r7 LSR r7", "le_r7_r7_LSR_r7"}, 1070 {{lt, r1, r1, ASR, r5}, true, lt, "lt r1 r1 ASR r5", "lt_r1_r1_ASR_r5"}, 1071 {{ls, r6, r6, LSR, r6}, true, ls, "ls r6 r6 LSR r6", "ls_r6_r6_LSR_r6"}, 1072 {{gt, r2, r2, LSL, r5}, true, gt, "gt r2 r2 LSL r5", "gt_r2_r2_LSL_r5"}, 1073 {{gt, r1, r1, LSL, r4}, true, gt, "gt r1 r1 LSL r4", "gt_r1_r1_LSL_r4"}, 1074 {{gt, r0, r0, LSL, r0}, true, gt, "gt r0 r0 LSL r0", "gt_r0_r0_LSL_r0"}, 1075 {{lt, r0, r0, ASR, r7}, true, lt, "lt r0 r0 ASR r7", "lt_r0_r0_ASR_r7"}, 1076 {{ge, r0, r0, LSL, r5}, true, ge, "ge r0 r0 LSL r5", "ge_r0_r0_LSL_r5"}, 1077 {{eq, r2, r2, LSR, r7}, true, eq, "eq r2 r2 LSR r7", "eq_r2_r2_LSR_r7"}, 1078 {{pl, r2, r2, LSL, r4}, true, pl, "pl r2 r2 LSL r4", "pl_r2_r2_LSL_r4"}, 1079 {{gt, r7, r7, LSR, r7}, true, gt, "gt r7 r7 LSR r7", "gt_r7_r7_LSR_r7"}, 1080 {{lt, r5, r5, ROR, r6}, true, lt, "lt r5 r5 ROR r6", "lt_r5_r5_ROR_r6"}, 1081 {{vc, r0, r0, LSL, r5}, true, vc, "vc r0 r0 LSL r5", "vc_r0_r0_LSL_r5"}, 1082 {{cc, r2, r2, LSR, r3}, true, cc, "cc r2 r2 LSR r3", "cc_r2_r2_LSR_r3"}, 1083 {{ne, r6, r6, LSR, r2}, true, ne, "ne r6 r6 LSR r2", "ne_r6_r6_LSR_r2"}, 1084 {{mi, r6, r6, LSR, r7}, true, mi, "mi r6 r6 LSR r7", "mi_r6_r6_LSR_r7"}, 1085 {{gt, r2, r2, LSR, r4}, true, gt, "gt r2 r2 LSR r4", "gt_r2_r2_LSR_r4"}, 1086 {{pl, r6, r6, ASR, r5}, true, pl, "pl r6 r6 ASR r5", "pl_r6_r6_ASR_r5"}, 1087 {{ge, r6, r6, ASR, r5}, true, ge, "ge r6 r6 ASR r5", "ge_r6_r6_ASR_r5"}, 1088 {{pl, r0, r0, LSR, r1}, true, pl, "pl r0 r0 LSR r1", "pl_r0_r0_LSR_r1"}, 1089 {{ls, r3, r3, ROR, r3}, true, ls, "ls r3 r3 ROR r3", "ls_r3_r3_ROR_r3"}, 1090 {{gt, r7, r7, LSL, r3}, true, gt, "gt r7 r7 LSL r3", "gt_r7_r7_LSL_r3"}, 1091 {{mi, r2, r2, LSR, r6}, true, mi, "mi r2 r2 LSR r6", "mi_r2_r2_LSR_r6"}, 1092 {{ge, r0, r0, ROR, r4}, true, ge, "ge r0 r0 ROR r4", "ge_r0_r0_ROR_r4"}, 1093 {{le, r5, r5, ROR, r6}, true, le, "le r5 r5 ROR r6", "le_r5_r5_ROR_r6"}, 1094 {{mi, r1, r1, LSL, r1}, true, mi, "mi r1 r1 LSL r1", "mi_r1_r1_LSL_r1"}, 1095 {{cc, r4, r4, LSL, r5}, true, cc, "cc r4 r4 LSL r5", "cc_r4_r4_LSL_r5"}}; 1096 1097 // These headers each contain an array of `TestResult` with the reference output 1098 // values. The reference arrays are names `kReference{mnemonic}`. 1099 #include "aarch32/traces/assembler-cond-rd-operand-rn-shift-rs-t32-in-it-block-mov.h" 1100 1101 1102 // The maximum number of errors to report in detail for each test. 1103 const unsigned kErrorReportLimit = 8; 1104 1105 typedef void (MacroAssembler::*Fn)(Condition cond, 1106 Register rd, 1107 const Operand& op); 1108 1109 void TestHelper(Fn instruction, 1110 const char* mnemonic, 1111 const TestResult reference[]) { 1112 unsigned total_error_count = 0; 1113 MacroAssembler masm(BUF_SIZE); 1114 1115 masm.UseT32(); 1116 1117 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 1118 // Values to pass to the macro-assembler. 1119 Condition cond = kTests[i].operands.cond; 1120 Register rd = kTests[i].operands.rd; 1121 Register rn = kTests[i].operands.rn; 1122 ShiftType shift = kTests[i].operands.shift; 1123 Register rs = kTests[i].operands.rs; 1124 Operand op(rn, shift, rs); 1125 1126 int32_t start = masm.GetCursorOffset(); 1127 { 1128 // We never generate more that 4 bytes, as IT instructions are only 1129 // allowed for narrow encodings. 1130 ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize); 1131 if (kTests[i].in_it_block) { 1132 masm.it(kTests[i].it_condition); 1133 } 1134 (masm.*instruction)(cond, rd, op); 1135 } 1136 int32_t end = masm.GetCursorOffset(); 1137 1138 const byte* result_ptr = 1139 masm.GetBuffer()->GetOffsetAddress<const byte*>(start); 1140 VIXL_ASSERT(start < end); 1141 uint32_t result_size = end - start; 1142 1143 if (Test::generate_test_trace()) { 1144 // Print the result bytes. 1145 printf("const byte kInstruction_%s_%s[] = {\n", 1146 mnemonic, 1147 kTests[i].identifier); 1148 for (uint32_t j = 0; j < result_size; j++) { 1149 if (j == 0) { 1150 printf(" 0x%02" PRIx8, result_ptr[j]); 1151 } else { 1152 printf(", 0x%02" PRIx8, result_ptr[j]); 1153 } 1154 } 1155 // This comment is meant to be used by external tools to validate 1156 // the encoding. We can parse the comment to figure out what 1157 // instruction this corresponds to. 1158 if (kTests[i].in_it_block) { 1159 printf(" // It %s; %s %s\n};\n", 1160 kTests[i].it_condition.GetName(), 1161 mnemonic, 1162 kTests[i].operands_description); 1163 } else { 1164 printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description); 1165 } 1166 } else { 1167 // Check we've emitted the exact same encoding as present in the 1168 // trace file. Only print up to `kErrorReportLimit` errors. 1169 if (((result_size != reference[i].size) || 1170 (memcmp(result_ptr, reference[i].encoding, reference[i].size) != 1171 0)) && 1172 (++total_error_count <= kErrorReportLimit)) { 1173 printf("Error when testing \"%s\" with operands \"%s\":\n", 1174 mnemonic, 1175 kTests[i].operands_description); 1176 printf(" Expected: "); 1177 for (uint32_t j = 0; j < reference[i].size; j++) { 1178 if (j == 0) { 1179 printf("0x%02" PRIx8, reference[i].encoding[j]); 1180 } else { 1181 printf(", 0x%02" PRIx8, reference[i].encoding[j]); 1182 } 1183 } 1184 printf("\n"); 1185 printf(" Found: "); 1186 for (uint32_t j = 0; j < result_size; j++) { 1187 if (j == 0) { 1188 printf("0x%02" PRIx8, result_ptr[j]); 1189 } else { 1190 printf(", 0x%02" PRIx8, result_ptr[j]); 1191 } 1192 } 1193 printf("\n"); 1194 } 1195 } 1196 } 1197 1198 masm.FinalizeCode(); 1199 1200 if (Test::generate_test_trace()) { 1201 // Finalize the trace file by writing the final `TestResult` array 1202 // which links all generated instruction encodings. 1203 printf("const TestResult kReference%s[] = {\n", mnemonic); 1204 for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) { 1205 printf(" {\n"); 1206 printf(" ARRAY_SIZE(kInstruction_%s_%s),\n", 1207 mnemonic, 1208 kTests[i].identifier); 1209 printf(" kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier); 1210 printf(" },\n"); 1211 } 1212 printf("};\n"); 1213 } else { 1214 if (total_error_count > kErrorReportLimit) { 1215 printf("%u other errors follow.\n", 1216 total_error_count - kErrorReportLimit); 1217 } 1218 // Crash if the test failed. 1219 VIXL_CHECK(total_error_count == 0); 1220 } 1221 } 1222 1223 // Instantiate tests for each instruction in the list. 1224 #define TEST(mnemonic) \ 1225 void Test_##mnemonic() { \ 1226 TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic); \ 1227 } \ 1228 Test test_##mnemonic( \ 1229 "AARCH32_ASSEMBLER_COND_RD_OPERAND_RN_SHIFT_RS_T32_IN_IT_" \ 1230 "BLOCK_" #mnemonic, \ 1231 &Test_##mnemonic); 1232 FOREACH_INSTRUCTION(TEST) 1233 #undef TEST 1234 1235 } // namespace 1236 #endif 1237 1238 } // namespace aarch32 1239 } // namespace vixl 1240