Home | History | Annotate | Download | only in aarch32
      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) \
     52   M(add)                       \
     53   M(sub)
     54 
     55 
     56 // The following definitions are defined again in each generated test, therefore
     57 // we need to place them in an anomymous namespace. It expresses that they are
     58 // local to this file only, and the compiler is not allowed to share these types
     59 // across test files during template instantiation. Specifically, `Operands` has
     60 // various layouts across generated tests so it absolutely cannot be shared.
     61 
     62 #ifdef VIXL_INCLUDE_TARGET_T32
     63 namespace {
     64 
     65 // Values to be passed to the assembler to produce the instruction under test.
     66 struct Operands {
     67   Condition cond;
     68   Register rd;
     69   Register rn;
     70   int32_t immediate;
     71 };
     72 
     73 // This structure contains all data needed to test one specific
     74 // instruction.
     75 struct TestData {
     76   // The `operands` field represents what to pass to the assembler to
     77   // produce the instruction.
     78   Operands operands;
     79   // True if we need to generate an IT instruction for this test to be valid.
     80   bool in_it_block;
     81   // The condition to give the IT instruction, this will be set to "al" by
     82   // default.
     83   Condition it_condition;
     84   // Description of the operands, used for error reporting.
     85   const char* operands_description;
     86   // Unique identifier, used for generating traces.
     87   const char* identifier;
     88 };
     89 
     90 struct TestResult {
     91   size_t size;
     92   const byte* encoding;
     93 };
     94 
     95 // Each element of this array produce one instruction encoding.
     96 const TestData kTests[] =
     97     {{{pl, r0, r0, 7}, true, pl, "pl r0 r0 7", "pl_r0_r0_7"},
     98      {{cs, r0, r2, 5}, true, cs, "cs r0 r2 5", "cs_r0_r2_5"},
     99      {{ls, r1, r6, 0}, true, ls, "ls r1 r6 0", "ls_r1_r6_0"},
    100      {{cc, r5, r1, 6}, true, cc, "cc r5 r1 6", "cc_r5_r1_6"},
    101      {{cs, r5, r2, 0}, true, cs, "cs r5 r2 0", "cs_r5_r2_0"},
    102      {{vs, r5, r6, 7}, true, vs, "vs r5 r6 7", "vs_r5_r6_7"},
    103      {{ls, r2, r0, 5}, true, ls, "ls r2 r0 5", "ls_r2_r0_5"},
    104      {{eq, r3, r4, 5}, true, eq, "eq r3 r4 5", "eq_r3_r4_5"},
    105      {{lt, r4, r5, 7}, true, lt, "lt r4 r5 7", "lt_r4_r5_7"},
    106      {{lt, r6, r7, 1}, true, lt, "lt r6 r7 1", "lt_r6_r7_1"},
    107      {{eq, r1, r0, 3}, true, eq, "eq r1 r0 3", "eq_r1_r0_3"},
    108      {{le, r4, r1, 0}, true, le, "le r4 r1 0", "le_r4_r1_0"},
    109      {{vc, r5, r2, 5}, true, vc, "vc r5 r2 5", "vc_r5_r2_5"},
    110      {{cs, r1, r1, 5}, true, cs, "cs r1 r1 5", "cs_r1_r1_5"},
    111      {{cs, r2, r5, 4}, true, cs, "cs r2 r5 4", "cs_r2_r5_4"},
    112      {{ge, r7, r5, 7}, true, ge, "ge r7 r5 7", "ge_r7_r5_7"},
    113      {{eq, r3, r4, 4}, true, eq, "eq r3 r4 4", "eq_r3_r4_4"},
    114      {{ls, r1, r0, 2}, true, ls, "ls r1 r0 2", "ls_r1_r0_2"},
    115      {{vc, r1, r2, 0}, true, vc, "vc r1 r2 0", "vc_r1_r2_0"},
    116      {{ls, r6, r6, 4}, true, ls, "ls r6 r6 4", "ls_r6_r6_4"},
    117      {{hi, r3, r1, 0}, true, hi, "hi r3 r1 0", "hi_r3_r1_0"},
    118      {{ge, r7, r1, 0}, true, ge, "ge r7 r1 0", "ge_r7_r1_0"},
    119      {{ge, r2, r0, 0}, true, ge, "ge r2 r0 0", "ge_r2_r0_0"},
    120      {{ge, r1, r7, 0}, true, ge, "ge r1 r7 0", "ge_r1_r7_0"},
    121      {{lt, r5, r2, 0}, true, lt, "lt r5 r2 0", "lt_r5_r2_0"},
    122      {{ls, r6, r3, 0}, true, ls, "ls r6 r3 0", "ls_r6_r3_0"},
    123      {{ne, r5, r7, 4}, true, ne, "ne r5 r7 4", "ne_r5_r7_4"},
    124      {{le, r5, r3, 2}, true, le, "le r5 r3 2", "le_r5_r3_2"},
    125      {{eq, r6, r1, 4}, true, eq, "eq r6 r1 4", "eq_r6_r1_4"},
    126      {{gt, r6, r0, 1}, true, gt, "gt r6 r0 1", "gt_r6_r0_1"},
    127      {{pl, r5, r2, 2}, true, pl, "pl r5 r2 2", "pl_r5_r2_2"},
    128      {{ls, r7, r2, 0}, true, ls, "ls r7 r2 0", "ls_r7_r2_0"},
    129      {{hi, r4, r7, 6}, true, hi, "hi r4 r7 6", "hi_r4_r7_6"},
    130      {{hi, r1, r2, 5}, true, hi, "hi r1 r2 5", "hi_r1_r2_5"},
    131      {{ls, r3, r0, 3}, true, ls, "ls r3 r0 3", "ls_r3_r0_3"},
    132      {{le, r5, r5, 7}, true, le, "le r5 r5 7", "le_r5_r5_7"},
    133      {{pl, r5, r0, 2}, true, pl, "pl r5 r0 2", "pl_r5_r0_2"},
    134      {{cs, r3, r1, 7}, true, cs, "cs r3 r1 7", "cs_r3_r1_7"},
    135      {{le, r4, r6, 6}, true, le, "le r4 r6 6", "le_r4_r6_6"},
    136      {{lt, r7, r5, 2}, true, lt, "lt r7 r5 2", "lt_r7_r5_2"},
    137      {{le, r5, r4, 3}, true, le, "le r5 r4 3", "le_r5_r4_3"},
    138      {{ne, r4, r7, 0}, true, ne, "ne r4 r7 0", "ne_r4_r7_0"},
    139      {{gt, r0, r3, 5}, true, gt, "gt r0 r3 5", "gt_r0_r3_5"},
    140      {{hi, r0, r4, 5}, true, hi, "hi r0 r4 5", "hi_r0_r4_5"},
    141      {{cs, r4, r0, 6}, true, cs, "cs r4 r0 6", "cs_r4_r0_6"},
    142      {{ne, r6, r3, 0}, true, ne, "ne r6 r3 0", "ne_r6_r3_0"},
    143      {{ge, r0, r5, 3}, true, ge, "ge r0 r5 3", "ge_r0_r5_3"},
    144      {{vc, r4, r2, 7}, true, vc, "vc r4 r2 7", "vc_r4_r2_7"},
    145      {{le, r3, r0, 6}, true, le, "le r3 r0 6", "le_r3_r0_6"},
    146      {{lt, r0, r4, 5}, true, lt, "lt r0 r4 5", "lt_r0_r4_5"},
    147      {{cs, r7, r0, 4}, true, cs, "cs r7 r0 4", "cs_r7_r0_4"},
    148      {{ge, r0, r0, 6}, true, ge, "ge r0 r0 6", "ge_r0_r0_6"},
    149      {{hi, r2, r6, 0}, true, hi, "hi r2 r6 0", "hi_r2_r6_0"},
    150      {{hi, r1, r4, 0}, true, hi, "hi r1 r4 0", "hi_r1_r4_0"},
    151      {{lt, r1, r5, 5}, true, lt, "lt r1 r5 5", "lt_r1_r5_5"},
    152      {{eq, r0, r6, 7}, true, eq, "eq r0 r6 7", "eq_r0_r6_7"},
    153      {{hi, r2, r4, 6}, true, hi, "hi r2 r4 6", "hi_r2_r4_6"},
    154      {{ls, r4, r4, 2}, true, ls, "ls r4 r4 2", "ls_r4_r4_2"},
    155      {{gt, r1, r5, 5}, true, gt, "gt r1 r5 5", "gt_r1_r5_5"},
    156      {{gt, r5, r4, 2}, true, gt, "gt r5 r4 2", "gt_r5_r4_2"},
    157      {{gt, r0, r3, 6}, true, gt, "gt r0 r3 6", "gt_r0_r3_6"},
    158      {{hi, r6, r2, 6}, true, hi, "hi r6 r2 6", "hi_r6_r2_6"},
    159      {{le, r0, r7, 5}, true, le, "le r0 r7 5", "le_r0_r7_5"},
    160      {{mi, r2, r7, 6}, true, mi, "mi r2 r7 6", "mi_r2_r7_6"},
    161      {{le, r5, r6, 2}, true, le, "le r5 r6 2", "le_r5_r6_2"},
    162      {{eq, r0, r4, 5}, true, eq, "eq r0 r4 5", "eq_r0_r4_5"},
    163      {{hi, r4, r5, 2}, true, hi, "hi r4 r5 2", "hi_r4_r5_2"},
    164      {{gt, r0, r7, 0}, true, gt, "gt r0 r7 0", "gt_r0_r7_0"},
    165      {{eq, r6, r4, 0}, true, eq, "eq r6 r4 0", "eq_r6_r4_0"},
    166      {{mi, r2, r2, 4}, true, mi, "mi r2 r2 4", "mi_r2_r2_4"},
    167      {{vs, r7, r4, 2}, true, vs, "vs r7 r4 2", "vs_r7_r4_2"},
    168      {{ne, r5, r3, 6}, true, ne, "ne r5 r3 6", "ne_r5_r3_6"},
    169      {{ge, r0, r3, 2}, true, ge, "ge r0 r3 2", "ge_r0_r3_2"},
    170      {{cc, r1, r5, 5}, true, cc, "cc r1 r5 5", "cc_r1_r5_5"},
    171      {{ge, r7, r3, 5}, true, ge, "ge r7 r3 5", "ge_r7_r3_5"},
    172      {{ls, r6, r4, 0}, true, ls, "ls r6 r4 0", "ls_r6_r4_0"},
    173      {{cs, r5, r1, 4}, true, cs, "cs r5 r1 4", "cs_r5_r1_4"},
    174      {{ls, r6, r7, 0}, true, ls, "ls r6 r7 0", "ls_r6_r7_0"},
    175      {{cc, r5, r7, 5}, true, cc, "cc r5 r7 5", "cc_r5_r7_5"},
    176      {{eq, r0, r2, 5}, true, eq, "eq r0 r2 5", "eq_r0_r2_5"},
    177      {{hi, r1, r6, 6}, true, hi, "hi r1 r6 6", "hi_r1_r6_6"},
    178      {{vs, r4, r6, 7}, true, vs, "vs r4 r6 7", "vs_r4_r6_7"},
    179      {{lt, r1, r5, 4}, true, lt, "lt r1 r5 4", "lt_r1_r5_4"},
    180      {{gt, r1, r2, 7}, true, gt, "gt r1 r2 7", "gt_r1_r2_7"},
    181      {{cc, r4, r5, 4}, true, cc, "cc r4 r5 4", "cc_r4_r5_4"},
    182      {{pl, r6, r5, 2}, true, pl, "pl r6 r5 2", "pl_r6_r5_2"},
    183      {{lt, r5, r1, 0}, true, lt, "lt r5 r1 0", "lt_r5_r1_0"},
    184      {{vc, r1, r7, 1}, true, vc, "vc r1 r7 1", "vc_r1_r7_1"},
    185      {{eq, r1, r2, 6}, true, eq, "eq r1 r2 6", "eq_r1_r2_6"},
    186      {{ls, r0, r4, 2}, true, ls, "ls r0 r4 2", "ls_r0_r4_2"},
    187      {{vs, r2, r6, 0}, true, vs, "vs r2 r6 0", "vs_r2_r6_0"},
    188      {{le, r6, r3, 6}, true, le, "le r6 r3 6", "le_r6_r3_6"},
    189      {{mi, r6, r7, 1}, true, mi, "mi r6 r7 1", "mi_r6_r7_1"},
    190      {{lt, r2, r0, 5}, true, lt, "lt r2 r0 5", "lt_r2_r0_5"},
    191      {{le, r0, r6, 1}, true, le, "le r0 r6 1", "le_r0_r6_1"},
    192      {{hi, r6, r6, 6}, true, hi, "hi r6 r6 6", "hi_r6_r6_6"},
    193      {{eq, r5, r6, 1}, true, eq, "eq r5 r6 1", "eq_r5_r6_1"},
    194      {{eq, r2, r1, 4}, true, eq, "eq r2 r1 4", "eq_r2_r1_4"},
    195      {{gt, r5, r6, 5}, true, gt, "gt r5 r6 5", "gt_r5_r6_5"},
    196      {{vc, r3, r4, 3}, true, vc, "vc r3 r4 3", "vc_r3_r4_3"},
    197      {{cc, r0, r1, 4}, true, cc, "cc r0 r1 4", "cc_r0_r1_4"},
    198      {{hi, r3, r1, 7}, true, hi, "hi r3 r1 7", "hi_r3_r1_7"},
    199      {{ge, r2, r3, 5}, true, ge, "ge r2 r3 5", "ge_r2_r3_5"},
    200      {{mi, r1, r0, 5}, true, mi, "mi r1 r0 5", "mi_r1_r0_5"},
    201      {{vc, r3, r0, 3}, true, vc, "vc r3 r0 3", "vc_r3_r0_3"},
    202      {{vs, r0, r5, 7}, true, vs, "vs r0 r5 7", "vs_r0_r5_7"},
    203      {{eq, r2, r1, 5}, true, eq, "eq r2 r1 5", "eq_r2_r1_5"},
    204      {{ne, r3, r0, 0}, true, ne, "ne r3 r0 0", "ne_r3_r0_0"},
    205      {{vs, r0, r6, 1}, true, vs, "vs r0 r6 1", "vs_r0_r6_1"},
    206      {{cs, r6, r1, 4}, true, cs, "cs r6 r1 4", "cs_r6_r1_4"},
    207      {{cs, r5, r2, 4}, true, cs, "cs r5 r2 4", "cs_r5_r2_4"},
    208      {{cs, r4, r4, 7}, true, cs, "cs r4 r4 7", "cs_r4_r4_7"},
    209      {{vs, r1, r2, 4}, true, vs, "vs r1 r2 4", "vs_r1_r2_4"},
    210      {{ne, r0, r1, 6}, true, ne, "ne r0 r1 6", "ne_r0_r1_6"},
    211      {{ge, r2, r4, 0}, true, ge, "ge r2 r4 0", "ge_r2_r4_0"},
    212      {{pl, r0, r4, 4}, true, pl, "pl r0 r4 4", "pl_r0_r4_4"},
    213      {{vs, r6, r2, 6}, true, vs, "vs r6 r2 6", "vs_r6_r2_6"},
    214      {{lt, r4, r0, 6}, true, lt, "lt r4 r0 6", "lt_r4_r0_6"},
    215      {{cc, r3, r1, 2}, true, cc, "cc r3 r1 2", "cc_r3_r1_2"},
    216      {{hi, r6, r1, 2}, true, hi, "hi r6 r1 2", "hi_r6_r1_2"},
    217      {{cc, r0, r5, 4}, true, cc, "cc r0 r5 4", "cc_r0_r5_4"},
    218      {{lt, r3, r3, 2}, true, lt, "lt r3 r3 2", "lt_r3_r3_2"},
    219      {{vc, r0, r2, 3}, true, vc, "vc r0 r2 3", "vc_r0_r2_3"},
    220      {{ne, r5, r3, 5}, true, ne, "ne r5 r3 5", "ne_r5_r3_5"},
    221      {{gt, r4, r3, 6}, true, gt, "gt r4 r3 6", "gt_r4_r3_6"},
    222      {{eq, r5, r5, 7}, true, eq, "eq r5 r5 7", "eq_r5_r5_7"},
    223      {{cc, r6, r1, 6}, true, cc, "cc r6 r1 6", "cc_r6_r1_6"},
    224      {{ls, r4, r4, 4}, true, ls, "ls r4 r4 4", "ls_r4_r4_4"},
    225      {{vs, r7, r3, 2}, true, vs, "vs r7 r3 2", "vs_r7_r3_2"},
    226      {{cc, r0, r4, 1}, true, cc, "cc r0 r4 1", "cc_r0_r4_1"},
    227      {{ge, r4, r2, 3}, true, ge, "ge r4 r2 3", "ge_r4_r2_3"},
    228      {{pl, r1, r6, 0}, true, pl, "pl r1 r6 0", "pl_r1_r6_0"},
    229      {{eq, r1, r5, 4}, true, eq, "eq r1 r5 4", "eq_r1_r5_4"},
    230      {{pl, r0, r1, 7}, true, pl, "pl r0 r1 7", "pl_r0_r1_7"},
    231      {{cs, r5, r6, 2}, true, cs, "cs r5 r6 2", "cs_r5_r6_2"},
    232      {{mi, r1, r2, 3}, true, mi, "mi r1 r2 3", "mi_r1_r2_3"},
    233      {{mi, r3, r4, 0}, true, mi, "mi r3 r4 0", "mi_r3_r4_0"},
    234      {{ne, r5, r1, 1}, true, ne, "ne r5 r1 1", "ne_r5_r1_1"},
    235      {{cc, r3, r5, 4}, true, cc, "cc r3 r5 4", "cc_r3_r5_4"},
    236      {{ne, r4, r1, 4}, true, ne, "ne r4 r1 4", "ne_r4_r1_4"},
    237      {{vs, r4, r4, 4}, true, vs, "vs r4 r4 4", "vs_r4_r4_4"},
    238      {{mi, r4, r2, 6}, true, mi, "mi r4 r2 6", "mi_r4_r2_6"},
    239      {{hi, r4, r5, 3}, true, hi, "hi r4 r5 3", "hi_r4_r5_3"},
    240      {{pl, r2, r5, 7}, true, pl, "pl r2 r5 7", "pl_r2_r5_7"},
    241      {{cs, r1, r4, 1}, true, cs, "cs r1 r4 1", "cs_r1_r4_1"},
    242      {{hi, r7, r5, 0}, true, hi, "hi r7 r5 0", "hi_r7_r5_0"},
    243      {{mi, r5, r6, 4}, true, mi, "mi r5 r6 4", "mi_r5_r6_4"},
    244      {{pl, r3, r2, 1}, true, pl, "pl r3 r2 1", "pl_r3_r2_1"},
    245      {{le, r1, r5, 2}, true, le, "le r1 r5 2", "le_r1_r5_2"},
    246      {{le, r1, r0, 0}, true, le, "le r1 r0 0", "le_r1_r0_0"},
    247      {{vc, r5, r5, 4}, true, vc, "vc r5 r5 4", "vc_r5_r5_4"},
    248      {{vc, r7, r2, 5}, true, vc, "vc r7 r2 5", "vc_r7_r2_5"},
    249      {{hi, r5, r4, 2}, true, hi, "hi r5 r4 2", "hi_r5_r4_2"},
    250      {{ls, r4, r4, 1}, true, ls, "ls r4 r4 1", "ls_r4_r4_1"},
    251      {{cc, r6, r6, 4}, true, cc, "cc r6 r6 4", "cc_r6_r6_4"},
    252      {{mi, r6, r7, 0}, true, mi, "mi r6 r7 0", "mi_r6_r7_0"},
    253      {{eq, r0, r1, 2}, true, eq, "eq r0 r1 2", "eq_r0_r1_2"},
    254      {{cc, r7, r2, 5}, true, cc, "cc r7 r2 5", "cc_r7_r2_5"},
    255      {{ls, r6, r7, 7}, true, ls, "ls r6 r7 7", "ls_r6_r7_7"},
    256      {{cs, r1, r1, 3}, true, cs, "cs r1 r1 3", "cs_r1_r1_3"},
    257      {{ls, r7, r1, 2}, true, ls, "ls r7 r1 2", "ls_r7_r1_2"},
    258      {{gt, r3, r1, 3}, true, gt, "gt r3 r1 3", "gt_r3_r1_3"},
    259      {{gt, r4, r7, 0}, true, gt, "gt r4 r7 0", "gt_r4_r7_0"},
    260      {{pl, r4, r5, 2}, true, pl, "pl r4 r5 2", "pl_r4_r5_2"},
    261      {{vs, r4, r7, 6}, true, vs, "vs r4 r7 6", "vs_r4_r7_6"},
    262      {{vc, r5, r1, 6}, true, vc, "vc r5 r1 6", "vc_r5_r1_6"},
    263      {{vs, r6, r5, 5}, true, vs, "vs r6 r5 5", "vs_r6_r5_5"},
    264      {{eq, r5, r0, 1}, true, eq, "eq r5 r0 1", "eq_r5_r0_1"},
    265      {{mi, r4, r6, 1}, true, mi, "mi r4 r6 1", "mi_r4_r6_1"},
    266      {{cs, r1, r5, 7}, true, cs, "cs r1 r5 7", "cs_r1_r5_7"},
    267      {{lt, r0, r3, 6}, true, lt, "lt r0 r3 6", "lt_r0_r3_6"},
    268      {{eq, r7, r0, 6}, true, eq, "eq r7 r0 6", "eq_r7_r0_6"},
    269      {{vc, r3, r5, 3}, true, vc, "vc r3 r5 3", "vc_r3_r5_3"},
    270      {{gt, r4, r7, 7}, true, gt, "gt r4 r7 7", "gt_r4_r7_7"},
    271      {{ne, r4, r1, 1}, true, ne, "ne r4 r1 1", "ne_r4_r1_1"},
    272      {{ge, r6, r7, 4}, true, ge, "ge r6 r7 4", "ge_r6_r7_4"},
    273      {{le, r2, r0, 2}, true, le, "le r2 r0 2", "le_r2_r0_2"},
    274      {{mi, r7, r5, 7}, true, mi, "mi r7 r5 7", "mi_r7_r5_7"},
    275      {{lt, r5, r3, 6}, true, lt, "lt r5 r3 6", "lt_r5_r3_6"},
    276      {{vs, r1, r4, 7}, true, vs, "vs r1 r4 7", "vs_r1_r4_7"},
    277      {{cs, r2, r2, 4}, true, cs, "cs r2 r2 4", "cs_r2_r2_4"},
    278      {{cs, r1, r0, 1}, true, cs, "cs r1 r0 1", "cs_r1_r0_1"},
    279      {{ne, r0, r7, 4}, true, ne, "ne r0 r7 4", "ne_r0_r7_4"},
    280      {{vs, r6, r0, 4}, true, vs, "vs r6 r0 4", "vs_r6_r0_4"},
    281      {{vc, r7, r1, 2}, true, vc, "vc r7 r1 2", "vc_r7_r1_2"},
    282      {{ls, r5, r0, 4}, true, ls, "ls r5 r0 4", "ls_r5_r0_4"},
    283      {{le, r0, r1, 1}, true, le, "le r0 r1 1", "le_r0_r1_1"},
    284      {{cs, r7, r3, 1}, true, cs, "cs r7 r3 1", "cs_r7_r3_1"},
    285      {{cs, r7, r5, 3}, true, cs, "cs r7 r5 3", "cs_r7_r5_3"},
    286      {{gt, r3, r7, 2}, true, gt, "gt r3 r7 2", "gt_r3_r7_2"},
    287      {{eq, r3, r4, 1}, true, eq, "eq r3 r4 1", "eq_r3_r4_1"},
    288      {{mi, r3, r4, 6}, true, mi, "mi r3 r4 6", "mi_r3_r4_6"},
    289      {{eq, r0, r4, 3}, true, eq, "eq r0 r4 3", "eq_r0_r4_3"},
    290      {{le, r0, r7, 6}, true, le, "le r0 r7 6", "le_r0_r7_6"},
    291      {{le, r5, r6, 3}, true, le, "le r5 r6 3", "le_r5_r6_3"},
    292      {{vs, r3, r5, 3}, true, vs, "vs r3 r5 3", "vs_r3_r5_3"},
    293      {{pl, r3, r4, 3}, true, pl, "pl r3 r4 3", "pl_r3_r4_3"},
    294      {{le, r2, r3, 0}, true, le, "le r2 r3 0", "le_r2_r3_0"},
    295      {{vc, r5, r4, 4}, true, vc, "vc r5 r4 4", "vc_r5_r4_4"},
    296      {{le, r5, r0, 6}, true, le, "le r5 r0 6", "le_r5_r0_6"},
    297      {{vs, r6, r5, 6}, true, vs, "vs r6 r5 6", "vs_r6_r5_6"},
    298      {{ge, r2, r2, 3}, true, ge, "ge r2 r2 3", "ge_r2_r2_3"},
    299      {{vs, r5, r4, 5}, true, vs, "vs r5 r4 5", "vs_r5_r4_5"},
    300      {{vc, r6, r4, 2}, true, vc, "vc r6 r4 2", "vc_r6_r4_2"},
    301      {{ne, r4, r2, 2}, true, ne, "ne r4 r2 2", "ne_r4_r2_2"},
    302      {{ge, r5, r7, 7}, true, ge, "ge r5 r7 7", "ge_r5_r7_7"},
    303      {{ne, r1, r7, 7}, true, ne, "ne r1 r7 7", "ne_r1_r7_7"},
    304      {{vc, r6, r1, 2}, true, vc, "vc r6 r1 2", "vc_r6_r1_2"},
    305      {{mi, r2, r4, 0}, true, mi, "mi r2 r4 0", "mi_r2_r4_0"},
    306      {{hi, r6, r3, 1}, true, hi, "hi r6 r3 1", "hi_r6_r3_1"},
    307      {{cc, r5, r1, 5}, true, cc, "cc r5 r1 5", "cc_r5_r1_5"},
    308      {{mi, r3, r5, 1}, true, mi, "mi r3 r5 1", "mi_r3_r5_1"},
    309      {{vs, r0, r5, 3}, true, vs, "vs r0 r5 3", "vs_r0_r5_3"},
    310      {{gt, r0, r1, 4}, true, gt, "gt r0 r1 4", "gt_r0_r1_4"},
    311      {{vs, r7, r5, 4}, true, vs, "vs r7 r5 4", "vs_r7_r5_4"},
    312      {{mi, r1, r5, 3}, true, mi, "mi r1 r5 3", "mi_r1_r5_3"},
    313      {{hi, r6, r6, 0}, true, hi, "hi r6 r6 0", "hi_r6_r6_0"},
    314      {{gt, r6, r4, 3}, true, gt, "gt r6 r4 3", "gt_r6_r4_3"},
    315      {{gt, r3, r2, 6}, true, gt, "gt r3 r2 6", "gt_r3_r2_6"},
    316      {{mi, r3, r7, 7}, true, mi, "mi r3 r7 7", "mi_r3_r7_7"},
    317      {{gt, r4, r6, 0}, true, gt, "gt r4 r6 0", "gt_r4_r6_0"},
    318      {{cs, r6, r4, 0}, true, cs, "cs r6 r4 0", "cs_r6_r4_0"},
    319      {{ne, r6, r2, 0}, true, ne, "ne r6 r2 0", "ne_r6_r2_0"},
    320      {{ne, r3, r3, 0}, true, ne, "ne r3 r3 0", "ne_r3_r3_0"},
    321      {{gt, r2, r3, 5}, true, gt, "gt r2 r3 5", "gt_r2_r3_5"},
    322      {{ne, r5, r0, 5}, true, ne, "ne r5 r0 5", "ne_r5_r0_5"},
    323      {{le, r7, r7, 4}, true, le, "le r7 r7 4", "le_r7_r7_4"},
    324      {{ge, r7, r3, 0}, true, ge, "ge r7 r3 0", "ge_r7_r3_0"},
    325      {{le, r4, r5, 6}, true, le, "le r4 r5 6", "le_r4_r5_6"},
    326      {{ls, r3, r2, 6}, true, ls, "ls r3 r2 6", "ls_r3_r2_6"},
    327      {{gt, r4, r5, 7}, true, gt, "gt r4 r5 7", "gt_r4_r5_7"},
    328      {{eq, r2, r1, 3}, true, eq, "eq r2 r1 3", "eq_r2_r1_3"},
    329      {{lt, r3, r0, 6}, true, lt, "lt r3 r0 6", "lt_r3_r0_6"},
    330      {{ne, r4, r0, 2}, true, ne, "ne r4 r0 2", "ne_r4_r0_2"},
    331      {{lt, r7, r6, 5}, true, lt, "lt r7 r6 5", "lt_r7_r6_5"},
    332      {{hi, r6, r0, 6}, true, hi, "hi r6 r0 6", "hi_r6_r0_6"},
    333      {{vs, r1, r6, 7}, true, vs, "vs r1 r6 7", "vs_r1_r6_7"},
    334      {{cc, r0, r6, 6}, true, cc, "cc r0 r6 6", "cc_r0_r6_6"},
    335      {{ne, r1, r7, 6}, true, ne, "ne r1 r7 6", "ne_r1_r7_6"},
    336      {{cs, r2, r3, 1}, true, cs, "cs r2 r3 1", "cs_r2_r3_1"},
    337      {{lt, r3, r7, 7}, true, lt, "lt r3 r7 7", "lt_r3_r7_7"},
    338      {{cc, r3, r3, 0}, true, cc, "cc r3 r3 0", "cc_r3_r3_0"},
    339      {{eq, r4, r3, 6}, true, eq, "eq r4 r3 6", "eq_r4_r3_6"},
    340      {{cs, r0, r5, 7}, true, cs, "cs r0 r5 7", "cs_r0_r5_7"},
    341      {{gt, r1, r2, 4}, true, gt, "gt r1 r2 4", "gt_r1_r2_4"},
    342      {{cc, r2, r1, 5}, true, cc, "cc r2 r1 5", "cc_r2_r1_5"},
    343      {{pl, r7, r5, 5}, true, pl, "pl r7 r5 5", "pl_r7_r5_5"},
    344      {{pl, r5, r7, 6}, true, pl, "pl r5 r7 6", "pl_r5_r7_6"},
    345      {{vc, r2, r2, 7}, true, vc, "vc r2 r2 7", "vc_r2_r2_7"},
    346      {{vs, r4, r4, 0}, true, vs, "vs r4 r4 0", "vs_r4_r4_0"},
    347      {{vc, r2, r6, 5}, true, vc, "vc r2 r6 5", "vc_r2_r6_5"},
    348      {{gt, r1, r7, 0}, true, gt, "gt r1 r7 0", "gt_r1_r7_0"},
    349      {{pl, r4, r1, 7}, true, pl, "pl r4 r1 7", "pl_r4_r1_7"},
    350      {{lt, r4, r3, 2}, true, lt, "lt r4 r3 2", "lt_r4_r3_2"},
    351      {{ge, r0, r2, 4}, true, ge, "ge r0 r2 4", "ge_r0_r2_4"},
    352      {{ne, r7, r5, 7}, true, ne, "ne r7 r5 7", "ne_r7_r5_7"},
    353      {{gt, r2, r1, 6}, true, gt, "gt r2 r1 6", "gt_r2_r1_6"},
    354      {{eq, r4, r1, 6}, true, eq, "eq r4 r1 6", "eq_r4_r1_6"},
    355      {{vs, r3, r7, 3}, true, vs, "vs r3 r7 3", "vs_r3_r7_3"},
    356      {{mi, r0, r7, 3}, true, mi, "mi r0 r7 3", "mi_r0_r7_3"},
    357      {{eq, r3, r5, 6}, true, eq, "eq r3 r5 6", "eq_r3_r5_6"},
    358      {{lt, r6, r2, 3}, true, lt, "lt r6 r2 3", "lt_r6_r2_3"},
    359      {{lt, r7, r5, 5}, true, lt, "lt r7 r5 5", "lt_r7_r5_5"},
    360      {{vc, r6, r5, 6}, true, vc, "vc r6 r5 6", "vc_r6_r5_6"},
    361      {{cs, r2, r0, 7}, true, cs, "cs r2 r0 7", "cs_r2_r0_7"},
    362      {{hi, r4, r2, 3}, true, hi, "hi r4 r2 3", "hi_r4_r2_3"},
    363      {{vs, r5, r4, 7}, true, vs, "vs r5 r4 7", "vs_r5_r4_7"},
    364      {{ge, r7, r1, 2}, true, ge, "ge r7 r1 2", "ge_r7_r1_2"},
    365      {{cc, r6, r4, 6}, true, cc, "cc r6 r4 6", "cc_r6_r4_6"},
    366      {{ls, r4, r1, 0}, true, ls, "ls r4 r1 0", "ls_r4_r1_0"},
    367      {{cc, r1, r1, 1}, true, cc, "cc r1 r1 1", "cc_r1_r1_1"},
    368      {{ls, r2, r3, 5}, true, ls, "ls r2 r3 5", "ls_r2_r3_5"},
    369      {{cc, r2, r0, 6}, true, cc, "cc r2 r0 6", "cc_r2_r0_6"},
    370      {{gt, r6, r5, 4}, true, gt, "gt r6 r5 4", "gt_r6_r5_4"},
    371      {{le, r3, r3, 3}, true, le, "le r3 r3 3", "le_r3_r3_3"},
    372      {{ls, r4, r5, 7}, true, ls, "ls r4 r5 7", "ls_r4_r5_7"},
    373      {{ls, r3, r7, 0}, true, ls, "ls r3 r7 0", "ls_r3_r7_0"},
    374      {{lt, r5, r4, 1}, true, lt, "lt r5 r4 1", "lt_r5_r4_1"},
    375      {{hi, r0, r2, 3}, true, hi, "hi r0 r2 3", "hi_r0_r2_3"},
    376      {{ne, r7, r2, 2}, true, ne, "ne r7 r2 2", "ne_r7_r2_2"},
    377      {{gt, r6, r4, 4}, true, gt, "gt r6 r4 4", "gt_r6_r4_4"},
    378      {{cc, r5, r1, 0}, true, cc, "cc r5 r1 0", "cc_r5_r1_0"},
    379      {{le, r6, r5, 3}, true, le, "le r6 r5 3", "le_r6_r5_3"},
    380      {{cs, r3, r4, 4}, true, cs, "cs r3 r4 4", "cs_r3_r4_4"},
    381      {{mi, r4, r7, 5}, true, mi, "mi r4 r7 5", "mi_r4_r7_5"},
    382      {{mi, r1, r3, 6}, true, mi, "mi r1 r3 6", "mi_r1_r3_6"},
    383      {{hi, r0, r7, 5}, true, hi, "hi r0 r7 5", "hi_r0_r7_5"},
    384      {{ls, r4, r3, 2}, true, ls, "ls r4 r3 2", "ls_r4_r3_2"},
    385      {{ne, r4, r7, 6}, true, ne, "ne r4 r7 6", "ne_r4_r7_6"},
    386      {{cs, r4, r5, 5}, true, cs, "cs r4 r5 5", "cs_r4_r5_5"},
    387      {{mi, r3, r5, 0}, true, mi, "mi r3 r5 0", "mi_r3_r5_0"},
    388      {{cs, r5, r0, 1}, true, cs, "cs r5 r0 1", "cs_r5_r0_1"},
    389      {{pl, r3, r2, 6}, true, pl, "pl r3 r2 6", "pl_r3_r2_6"},
    390      {{vs, r1, r6, 5}, true, vs, "vs r1 r6 5", "vs_r1_r6_5"},
    391      {{le, r4, r0, 2}, true, le, "le r4 r0 2", "le_r4_r0_2"},
    392      {{eq, r3, r7, 7}, true, eq, "eq r3 r7 7", "eq_r3_r7_7"},
    393      {{lt, r6, r4, 7}, true, lt, "lt r6 r4 7", "lt_r6_r4_7"},
    394      {{hi, r2, r0, 5}, true, hi, "hi r2 r0 5", "hi_r2_r0_5"},
    395      {{ge, r1, r3, 3}, true, ge, "ge r1 r3 3", "ge_r1_r3_3"},
    396      {{pl, r6, r3, 0}, true, pl, "pl r6 r3 0", "pl_r6_r3_0"},
    397      {{hi, r1, r0, 4}, true, hi, "hi r1 r0 4", "hi_r1_r0_4"},
    398      {{lt, r3, r5, 3}, true, lt, "lt r3 r5 3", "lt_r3_r5_3"},
    399      {{ge, r2, r7, 3}, true, ge, "ge r2 r7 3", "ge_r2_r7_3"},
    400      {{mi, r0, r7, 4}, true, mi, "mi r0 r7 4", "mi_r0_r7_4"},
    401      {{pl, r7, r5, 1}, true, pl, "pl r7 r5 1", "pl_r7_r5_1"},
    402      {{lt, r0, r3, 4}, true, lt, "lt r0 r3 4", "lt_r0_r3_4"},
    403      {{mi, r6, r4, 2}, true, mi, "mi r6 r4 2", "mi_r6_r4_2"},
    404      {{vc, r4, r4, 1}, true, vc, "vc r4 r4 1", "vc_r4_r4_1"},
    405      {{gt, r1, r5, 3}, true, gt, "gt r1 r5 3", "gt_r1_r5_3"},
    406      {{cc, r2, r0, 7}, true, cc, "cc r2 r0 7", "cc_r2_r0_7"},
    407      {{le, r6, r4, 0}, true, le, "le r6 r4 0", "le_r6_r4_0"},
    408      {{le, r0, r6, 2}, true, le, "le r0 r6 2", "le_r0_r6_2"},
    409      {{le, r1, r1, 7}, true, le, "le r1 r1 7", "le_r1_r1_7"},
    410      {{vs, r1, r1, 5}, true, vs, "vs r1 r1 5", "vs_r1_r1_5"},
    411      {{cs, r6, r0, 2}, true, cs, "cs r6 r0 2", "cs_r6_r0_2"},
    412      {{vs, r3, r0, 7}, true, vs, "vs r3 r0 7", "vs_r3_r0_7"},
    413      {{vs, r3, r3, 4}, true, vs, "vs r3 r3 4", "vs_r3_r3_4"},
    414      {{cs, r4, r2, 7}, true, cs, "cs r4 r2 7", "cs_r4_r2_7"},
    415      {{mi, r4, r0, 1}, true, mi, "mi r4 r0 1", "mi_r4_r0_1"},
    416      {{gt, r2, r4, 1}, true, gt, "gt r2 r4 1", "gt_r2_r4_1"},
    417      {{ne, r4, r6, 0}, true, ne, "ne r4 r6 0", "ne_r4_r6_0"},
    418      {{cs, r4, r1, 5}, true, cs, "cs r4 r1 5", "cs_r4_r1_5"},
    419      {{cc, r2, r6, 3}, true, cc, "cc r2 r6 3", "cc_r2_r6_3"},
    420      {{ge, r6, r1, 0}, true, ge, "ge r6 r1 0", "ge_r6_r1_0"},
    421      {{pl, r2, r5, 3}, true, pl, "pl r2 r5 3", "pl_r2_r5_3"},
    422      {{ne, r1, r7, 4}, true, ne, "ne r1 r7 4", "ne_r1_r7_4"},
    423      {{le, r2, r6, 0}, true, le, "le r2 r6 0", "le_r2_r6_0"},
    424      {{gt, r7, r1, 6}, true, gt, "gt r7 r1 6", "gt_r7_r1_6"},
    425      {{cs, r0, r3, 7}, true, cs, "cs r0 r3 7", "cs_r0_r3_7"},
    426      {{mi, r1, r1, 0}, true, mi, "mi r1 r1 0", "mi_r1_r1_0"},
    427      {{eq, r4, r0, 5}, true, eq, "eq r4 r0 5", "eq_r4_r0_5"},
    428      {{lt, r5, r0, 6}, true, lt, "lt r5 r0 6", "lt_r5_r0_6"},
    429      {{vc, r2, r6, 6}, true, vc, "vc r2 r6 6", "vc_r2_r6_6"},
    430      {{cs, r1, r2, 7}, true, cs, "cs r1 r2 7", "cs_r1_r2_7"},
    431      {{ls, r6, r6, 3}, true, ls, "ls r6 r6 3", "ls_r6_r6_3"},
    432      {{lt, r5, r0, 4}, true, lt, "lt r5 r0 4", "lt_r5_r0_4"},
    433      {{gt, r1, r6, 0}, true, gt, "gt r1 r6 0", "gt_r1_r6_0"},
    434      {{vs, r7, r2, 2}, true, vs, "vs r7 r2 2", "vs_r7_r2_2"},
    435      {{gt, r1, r3, 5}, true, gt, "gt r1 r3 5", "gt_r1_r3_5"},
    436      {{mi, r2, r6, 5}, true, mi, "mi r2 r6 5", "mi_r2_r6_5"},
    437      {{cs, r3, r6, 2}, true, cs, "cs r3 r6 2", "cs_r3_r6_2"},
    438      {{cs, r2, r6, 2}, true, cs, "cs r2 r6 2", "cs_r2_r6_2"},
    439      {{cs, r7, r3, 6}, true, cs, "cs r7 r3 6", "cs_r7_r3_6"},
    440      {{cs, r7, r7, 6}, true, cs, "cs r7 r7 6", "cs_r7_r7_6"},
    441      {{eq, r1, r1, 4}, true, eq, "eq r1 r1 4", "eq_r1_r1_4"},
    442      {{mi, r3, r2, 2}, true, mi, "mi r3 r2 2", "mi_r3_r2_2"},
    443      {{vc, r5, r7, 0}, true, vc, "vc r5 r7 0", "vc_r5_r7_0"},
    444      {{hi, r1, r6, 7}, true, hi, "hi r1 r6 7", "hi_r1_r6_7"},
    445      {{vs, r5, r7, 3}, true, vs, "vs r5 r7 3", "vs_r5_r7_3"},
    446      {{gt, r1, r7, 2}, true, gt, "gt r1 r7 2", "gt_r1_r7_2"},
    447      {{vc, r4, r5, 0}, true, vc, "vc r4 r5 0", "vc_r4_r5_0"},
    448      {{le, r6, r7, 0}, true, le, "le r6 r7 0", "le_r6_r7_0"},
    449      {{ge, r6, r1, 5}, true, ge, "ge r6 r1 5", "ge_r6_r1_5"},
    450      {{cc, r0, r2, 1}, true, cc, "cc r0 r2 1", "cc_r0_r2_1"},
    451      {{le, r7, r3, 5}, true, le, "le r7 r3 5", "le_r7_r3_5"},
    452      {{hi, r7, r1, 2}, true, hi, "hi r7 r1 2", "hi_r7_r1_2"},
    453      {{cc, r7, r5, 0}, true, cc, "cc r7 r5 0", "cc_r7_r5_0"},
    454      {{gt, r0, r6, 0}, true, gt, "gt r0 r6 0", "gt_r0_r6_0"},
    455      {{ne, r6, r5, 4}, true, ne, "ne r6 r5 4", "ne_r6_r5_4"},
    456      {{cc, r7, r0, 1}, true, cc, "cc r7 r0 1", "cc_r7_r0_1"},
    457      {{eq, r6, r6, 5}, true, eq, "eq r6 r6 5", "eq_r6_r6_5"},
    458      {{pl, r4, r3, 0}, true, pl, "pl r4 r3 0", "pl_r4_r3_0"},
    459      {{ne, r2, r3, 6}, true, ne, "ne r2 r3 6", "ne_r2_r3_6"},
    460      {{le, r0, r2, 1}, true, le, "le r0 r2 1", "le_r0_r2_1"},
    461      {{eq, r0, r1, 5}, true, eq, "eq r0 r1 5", "eq_r0_r1_5"},
    462      {{ls, r5, r6, 2}, true, ls, "ls r5 r6 2", "ls_r5_r6_2"},
    463      {{ne, r3, r4, 5}, true, ne, "ne r3 r4 5", "ne_r3_r4_5"},
    464      {{gt, r1, r4, 2}, true, gt, "gt r1 r4 2", "gt_r1_r4_2"},
    465      {{le, r3, r5, 2}, true, le, "le r3 r5 2", "le_r3_r5_2"},
    466      {{vc, r0, r5, 5}, true, vc, "vc r0 r5 5", "vc_r0_r5_5"},
    467      {{pl, r5, r3, 6}, true, pl, "pl r5 r3 6", "pl_r5_r3_6"},
    468      {{eq, r0, r1, 4}, true, eq, "eq r0 r1 4", "eq_r0_r1_4"},
    469      {{cs, r0, r0, 7}, true, cs, "cs r0 r0 7", "cs_r0_r0_7"},
    470      {{lt, r6, r5, 6}, true, lt, "lt r6 r5 6", "lt_r6_r5_6"},
    471      {{vs, r1, r1, 2}, true, vs, "vs r1 r1 2", "vs_r1_r1_2"},
    472      {{mi, r4, r5, 0}, true, mi, "mi r4 r5 0", "mi_r4_r5_0"},
    473      {{vc, r3, r0, 4}, true, vc, "vc r3 r0 4", "vc_r3_r0_4"},
    474      {{le, r2, r2, 3}, true, le, "le r2 r2 3", "le_r2_r2_3"},
    475      {{gt, r3, r7, 5}, true, gt, "gt r3 r7 5", "gt_r3_r7_5"},
    476      {{cs, r0, r4, 0}, true, cs, "cs r0 r4 0", "cs_r0_r4_0"},
    477      {{gt, r5, r0, 2}, true, gt, "gt r5 r0 2", "gt_r5_r0_2"},
    478      {{vs, r4, r1, 1}, true, vs, "vs r4 r1 1", "vs_r4_r1_1"},
    479      {{cc, r7, r3, 5}, true, cc, "cc r7 r3 5", "cc_r7_r3_5"},
    480      {{ls, r5, r0, 3}, true, ls, "ls r5 r0 3", "ls_r5_r0_3"},
    481      {{vs, r2, r4, 3}, true, vs, "vs r2 r4 3", "vs_r2_r4_3"},
    482      {{vc, r3, r3, 4}, true, vc, "vc r3 r3 4", "vc_r3_r3_4"},
    483      {{gt, r0, r6, 1}, true, gt, "gt r0 r6 1", "gt_r0_r6_1"},
    484      {{hi, r1, r7, 1}, true, hi, "hi r1 r7 1", "hi_r1_r7_1"},
    485      {{ne, r2, r4, 5}, true, ne, "ne r2 r4 5", "ne_r2_r4_5"},
    486      {{hi, r0, r7, 0}, true, hi, "hi r0 r7 0", "hi_r0_r7_0"},
    487      {{ne, r1, r1, 5}, true, ne, "ne r1 r1 5", "ne_r1_r1_5"},
    488      {{cc, r1, r0, 2}, true, cc, "cc r1 r0 2", "cc_r1_r0_2"},
    489      {{cc, r7, r3, 3}, true, cc, "cc r7 r3 3", "cc_r7_r3_3"},
    490      {{lt, r0, r0, 3}, true, lt, "lt r0 r0 3", "lt_r0_r0_3"},
    491      {{hi, r1, r1, 1}, true, hi, "hi r1 r1 1", "hi_r1_r1_1"},
    492      {{vs, r7, r2, 4}, true, vs, "vs r7 r2 4", "vs_r7_r2_4"},
    493      {{cs, r2, r1, 3}, true, cs, "cs r2 r1 3", "cs_r2_r1_3"},
    494      {{ge, r4, r0, 7}, true, ge, "ge r4 r0 7", "ge_r4_r0_7"},
    495      {{gt, r0, r2, 2}, true, gt, "gt r0 r2 2", "gt_r0_r2_2"},
    496      {{lt, r6, r4, 4}, true, lt, "lt r6 r4 4", "lt_r6_r4_4"},
    497      {{lt, r2, r4, 1}, true, lt, "lt r2 r4 1", "lt_r2_r4_1"},
    498      {{cc, r5, r5, 3}, true, cc, "cc r5 r5 3", "cc_r5_r5_3"},
    499      {{eq, r7, r3, 0}, true, eq, "eq r7 r3 0", "eq_r7_r3_0"},
    500      {{cc, r0, r2, 2}, true, cc, "cc r0 r2 2", "cc_r0_r2_2"},
    501      {{mi, r5, r7, 7}, true, mi, "mi r5 r7 7", "mi_r5_r7_7"},
    502      {{eq, r2, r4, 5}, true, eq, "eq r2 r4 5", "eq_r2_r4_5"},
    503      {{pl, r1, r7, 0}, true, pl, "pl r1 r7 0", "pl_r1_r7_0"},
    504      {{vs, r6, r2, 0}, true, vs, "vs r6 r2 0", "vs_r6_r2_0"},
    505      {{cc, r0, r1, 6}, true, cc, "cc r0 r1 6", "cc_r0_r1_6"},
    506      {{cs, r2, r2, 5}, true, cs, "cs r2 r2 5", "cs_r2_r2_5"},
    507      {{le, r0, r6, 7}, true, le, "le r0 r6 7", "le_r0_r6_7"},
    508      {{hi, r5, r0, 7}, true, hi, "hi r5 r0 7", "hi_r5_r0_7"},
    509      {{gt, r2, r5, 1}, true, gt, "gt r2 r5 1", "gt_r2_r5_1"},
    510      {{gt, r2, r1, 2}, true, gt, "gt r2 r1 2", "gt_r2_r1_2"},
    511      {{le, r6, r2, 5}, true, le, "le r6 r2 5", "le_r6_r2_5"},
    512      {{ls, r4, r3, 3}, true, ls, "ls r4 r3 3", "ls_r4_r3_3"},
    513      {{le, r0, r2, 6}, true, le, "le r0 r2 6", "le_r0_r2_6"},
    514      {{pl, r0, r7, 6}, true, pl, "pl r0 r7 6", "pl_r0_r7_6"},
    515      {{pl, r4, r5, 4}, true, pl, "pl r4 r5 4", "pl_r4_r5_4"},
    516      {{vs, r3, r2, 2}, true, vs, "vs r3 r2 2", "vs_r3_r2_2"},
    517      {{vc, r2, r4, 3}, true, vc, "vc r2 r4 3", "vc_r2_r4_3"},
    518      {{ge, r1, r5, 7}, true, ge, "ge r1 r5 7", "ge_r1_r5_7"},
    519      {{pl, r1, r6, 3}, true, pl, "pl r1 r6 3", "pl_r1_r6_3"},
    520      {{hi, r3, r6, 0}, true, hi, "hi r3 r6 0", "hi_r3_r6_0"},
    521      {{ne, r0, r4, 3}, true, ne, "ne r0 r4 3", "ne_r0_r4_3"},
    522      {{ne, r4, r5, 0}, true, ne, "ne r4 r5 0", "ne_r4_r5_0"},
    523      {{cc, r7, r6, 2}, true, cc, "cc r7 r6 2", "cc_r7_r6_2"},
    524      {{cc, r2, r0, 5}, true, cc, "cc r2 r0 5", "cc_r2_r0_5"},
    525      {{ge, r3, r1, 2}, true, ge, "ge r3 r1 2", "ge_r3_r1_2"},
    526      {{ge, r1, r1, 2}, true, ge, "ge r1 r1 2", "ge_r1_r1_2"},
    527      {{hi, r5, r6, 4}, true, hi, "hi r5 r6 4", "hi_r5_r6_4"},
    528      {{ne, r6, r4, 3}, true, ne, "ne r6 r4 3", "ne_r6_r4_3"},
    529      {{ne, r3, r1, 0}, true, ne, "ne r3 r1 0", "ne_r3_r1_0"},
    530      {{cs, r3, r4, 0}, true, cs, "cs r3 r4 0", "cs_r3_r4_0"},
    531      {{eq, r5, r0, 6}, true, eq, "eq r5 r0 6", "eq_r5_r0_6"},
    532      {{pl, r1, r5, 1}, true, pl, "pl r1 r5 1", "pl_r1_r5_1"},
    533      {{ls, r7, r7, 4}, true, ls, "ls r7 r7 4", "ls_r7_r7_4"},
    534      {{le, r2, r2, 2}, true, le, "le r2 r2 2", "le_r2_r2_2"},
    535      {{eq, r6, r4, 5}, true, eq, "eq r6 r4 5", "eq_r6_r4_5"},
    536      {{cc, r1, r3, 0}, true, cc, "cc r1 r3 0", "cc_r1_r3_0"},
    537      {{gt, r3, r5, 5}, true, gt, "gt r3 r5 5", "gt_r3_r5_5"},
    538      {{ge, r7, r2, 2}, true, ge, "ge r7 r2 2", "ge_r7_r2_2"},
    539      {{gt, r2, r7, 4}, true, gt, "gt r2 r7 4", "gt_r2_r7_4"},
    540      {{vs, r7, r3, 3}, true, vs, "vs r7 r3 3", "vs_r7_r3_3"},
    541      {{ge, r2, r5, 4}, true, ge, "ge r2 r5 4", "ge_r2_r5_4"},
    542      {{ge, r0, r3, 0}, true, ge, "ge r0 r3 0", "ge_r0_r3_0"},
    543      {{hi, r3, r1, 4}, true, hi, "hi r3 r1 4", "hi_r3_r1_4"},
    544      {{pl, r7, r7, 2}, true, pl, "pl r7 r7 2", "pl_r7_r7_2"},
    545      {{pl, r6, r0, 0}, true, pl, "pl r6 r0 0", "pl_r6_r0_0"},
    546      {{ls, r0, r6, 4}, true, ls, "ls r0 r6 4", "ls_r0_r6_4"},
    547      {{pl, r3, r4, 0}, true, pl, "pl r3 r4 0", "pl_r3_r4_0"},
    548      {{ge, r5, r3, 5}, true, ge, "ge r5 r3 5", "ge_r5_r3_5"},
    549      {{ls, r3, r2, 5}, true, ls, "ls r3 r2 5", "ls_r3_r2_5"},
    550      {{vs, r3, r2, 4}, true, vs, "vs r3 r2 4", "vs_r3_r2_4"},
    551      {{gt, r7, r6, 7}, true, gt, "gt r7 r6 7", "gt_r7_r6_7"},
    552      {{hi, r0, r2, 6}, true, hi, "hi r0 r2 6", "hi_r0_r2_6"},
    553      {{lt, r2, r6, 4}, true, lt, "lt r2 r6 4", "lt_r2_r6_4"},
    554      {{mi, r1, r0, 3}, true, mi, "mi r1 r0 3", "mi_r1_r0_3"},
    555      {{le, r5, r4, 7}, true, le, "le r5 r4 7", "le_r5_r4_7"},
    556      {{ge, r0, r7, 6}, true, ge, "ge r0 r7 6", "ge_r0_r7_6"},
    557      {{hi, r7, r3, 3}, true, hi, "hi r7 r3 3", "hi_r7_r3_3"},
    558      {{cc, r4, r4, 7}, true, cc, "cc r4 r4 7", "cc_r4_r4_7"},
    559      {{le, r4, r2, 5}, true, le, "le r4 r2 5", "le_r4_r2_5"},
    560      {{gt, r0, r0, 3}, true, gt, "gt r0 r0 3", "gt_r0_r0_3"},
    561      {{pl, r0, r4, 5}, true, pl, "pl r0 r4 5", "pl_r0_r4_5"},
    562      {{ge, r0, r5, 6}, true, ge, "ge r0 r5 6", "ge_r0_r5_6"},
    563      {{lt, r7, r3, 1}, true, lt, "lt r7 r3 1", "lt_r7_r3_1"},
    564      {{cs, r4, r2, 0}, true, cs, "cs r4 r2 0", "cs_r4_r2_0"},
    565      {{vs, r2, r5, 5}, true, vs, "vs r2 r5 5", "vs_r2_r5_5"},
    566      {{le, r5, r4, 1}, true, le, "le r5 r4 1", "le_r5_r4_1"},
    567      {{ge, r5, r5, 1}, true, ge, "ge r5 r5 1", "ge_r5_r5_1"},
    568      {{ls, r2, r4, 6}, true, ls, "ls r2 r4 6", "ls_r2_r4_6"},
    569      {{lt, r4, r4, 0}, true, lt, "lt r4 r4 0", "lt_r4_r4_0"},
    570      {{vs, r4, r6, 1}, true, vs, "vs r4 r6 1", "vs_r4_r6_1"},
    571      {{hi, r4, r1, 0}, true, hi, "hi r4 r1 0", "hi_r4_r1_0"},
    572      {{vc, r0, r7, 1}, true, vc, "vc r0 r7 1", "vc_r0_r7_1"},
    573      {{lt, r2, r7, 2}, true, lt, "lt r2 r7 2", "lt_r2_r7_2"},
    574      {{ls, r7, r5, 6}, true, ls, "ls r7 r5 6", "ls_r7_r5_6"},
    575      {{vs, r3, r2, 5}, true, vs, "vs r3 r2 5", "vs_r3_r2_5"},
    576      {{vs, r6, r3, 4}, true, vs, "vs r6 r3 4", "vs_r6_r3_4"},
    577      {{le, r1, r2, 6}, true, le, "le r1 r2 6", "le_r1_r2_6"},
    578      {{vc, r3, r7, 7}, true, vc, "vc r3 r7 7", "vc_r3_r7_7"},
    579      {{le, r7, r7, 0}, true, le, "le r7 r7 0", "le_r7_r7_0"},
    580      {{lt, r0, r0, 6}, true, lt, "lt r0 r0 6", "lt_r0_r0_6"},
    581      {{ne, r4, r5, 2}, true, ne, "ne r4 r5 2", "ne_r4_r5_2"},
    582      {{mi, r4, r1, 6}, true, mi, "mi r4 r1 6", "mi_r4_r1_6"},
    583      {{ge, r1, r4, 2}, true, ge, "ge r1 r4 2", "ge_r1_r4_2"},
    584      {{mi, r4, r3, 3}, true, mi, "mi r4 r3 3", "mi_r4_r3_3"},
    585      {{lt, r2, r5, 0}, true, lt, "lt r2 r5 0", "lt_r2_r5_0"},
    586      {{gt, r3, r4, 1}, true, gt, "gt r3 r4 1", "gt_r3_r4_1"},
    587      {{le, r6, r3, 3}, true, le, "le r6 r3 3", "le_r6_r3_3"},
    588      {{ge, r2, r6, 6}, true, ge, "ge r2 r6 6", "ge_r2_r6_6"},
    589      {{ne, r2, r1, 5}, true, ne, "ne r2 r1 5", "ne_r2_r1_5"},
    590      {{cc, r1, r6, 0}, true, cc, "cc r1 r6 0", "cc_r1_r6_0"},
    591      {{lt, r1, r6, 1}, true, lt, "lt r1 r6 1", "lt_r1_r6_1"},
    592      {{vc, r2, r7, 2}, true, vc, "vc r2 r7 2", "vc_r2_r7_2"},
    593      {{le, r5, r1, 1}, true, le, "le r5 r1 1", "le_r5_r1_1"},
    594      {{ge, r1, r7, 3}, true, ge, "ge r1 r7 3", "ge_r1_r7_3"},
    595      {{gt, r5, r3, 5}, true, gt, "gt r5 r3 5", "gt_r5_r3_5"},
    596      {{ne, r1, r5, 3}, true, ne, "ne r1 r5 3", "ne_r1_r5_3"},
    597      {{gt, r5, r6, 4}, true, gt, "gt r5 r6 4", "gt_r5_r6_4"},
    598      {{eq, r3, r2, 0}, true, eq, "eq r3 r2 0", "eq_r3_r2_0"},
    599      {{lt, r0, r0, 1}, true, lt, "lt r0 r0 1", "lt_r0_r0_1"},
    600      {{cc, r0, r3, 1}, true, cc, "cc r0 r3 1", "cc_r0_r3_1"},
    601      {{cc, r0, r1, 5}, true, cc, "cc r0 r1 5", "cc_r0_r1_5"},
    602      {{ne, r4, r4, 0}, true, ne, "ne r4 r4 0", "ne_r4_r4_0"},
    603      {{ge, r0, r6, 4}, true, ge, "ge r0 r6 4", "ge_r0_r6_4"},
    604      {{lt, r2, r6, 0}, true, lt, "lt r2 r6 0", "lt_r2_r6_0"},
    605      {{cs, r0, r6, 5}, true, cs, "cs r0 r6 5", "cs_r0_r6_5"},
    606      {{lt, r3, r5, 1}, true, lt, "lt r3 r5 1", "lt_r3_r5_1"},
    607      {{lt, r7, r1, 0}, true, lt, "lt r7 r1 0", "lt_r7_r1_0"},
    608      {{cc, r6, r3, 6}, true, cc, "cc r6 r3 6", "cc_r6_r3_6"},
    609      {{gt, r1, r0, 0}, true, gt, "gt r1 r0 0", "gt_r1_r0_0"},
    610      {{ls, r0, r7, 5}, true, ls, "ls r0 r7 5", "ls_r0_r7_5"},
    611      {{hi, r5, r2, 6}, true, hi, "hi r5 r2 6", "hi_r5_r2_6"},
    612      {{pl, r5, r2, 7}, true, pl, "pl r5 r2 7", "pl_r5_r2_7"},
    613      {{mi, r7, r0, 5}, true, mi, "mi r7 r0 5", "mi_r7_r0_5"},
    614      {{cc, r3, r0, 1}, true, cc, "cc r3 r0 1", "cc_r3_r0_1"},
    615      {{lt, r2, r2, 0}, true, lt, "lt r2 r2 0", "lt_r2_r2_0"},
    616      {{vc, r2, r1, 6}, true, vc, "vc r2 r1 6", "vc_r2_r1_6"},
    617      {{le, r2, r3, 3}, true, le, "le r2 r3 3", "le_r2_r3_3"},
    618      {{le, r1, r3, 1}, true, le, "le r1 r3 1", "le_r1_r3_1"},
    619      {{ls, r5, r6, 4}, true, ls, "ls r5 r6 4", "ls_r5_r6_4"},
    620      {{ne, r5, r1, 0}, true, ne, "ne r5 r1 0", "ne_r5_r1_0"},
    621      {{le, r0, r0, 5}, true, le, "le r0 r0 5", "le_r0_r0_5"},
    622      {{cc, r4, r7, 0}, true, cc, "cc r4 r7 0", "cc_r4_r7_0"},
    623      {{ne, r1, r4, 0}, true, ne, "ne r1 r4 0", "ne_r1_r4_0"},
    624      {{hi, r5, r3, 7}, true, hi, "hi r5 r3 7", "hi_r5_r3_7"},
    625      {{ne, r0, r3, 1}, true, ne, "ne r0 r3 1", "ne_r0_r3_1"},
    626      {{vs, r1, r3, 0}, true, vs, "vs r1 r3 0", "vs_r1_r3_0"},
    627      {{gt, r6, r5, 7}, true, gt, "gt r6 r5 7", "gt_r6_r5_7"},
    628      {{cs, r3, r0, 1}, true, cs, "cs r3 r0 1", "cs_r3_r0_1"},
    629      {{cc, r7, r0, 5}, true, cc, "cc r7 r0 5", "cc_r7_r0_5"},
    630      {{pl, r5, r2, 5}, true, pl, "pl r5 r2 5", "pl_r5_r2_5"},
    631      {{vs, r5, r1, 6}, true, vs, "vs r5 r1 6", "vs_r5_r1_6"},
    632      {{ge, r1, r1, 0}, true, ge, "ge r1 r1 0", "ge_r1_r1_0"},
    633      {{eq, r6, r1, 2}, true, eq, "eq r6 r1 2", "eq_r6_r1_2"},
    634      {{lt, r0, r5, 5}, true, lt, "lt r0 r5 5", "lt_r0_r5_5"},
    635      {{vc, r2, r2, 1}, true, vc, "vc r2 r2 1", "vc_r2_r2_1"},
    636      {{vc, r0, r4, 4}, true, vc, "vc r0 r4 4", "vc_r0_r4_4"},
    637      {{pl, r2, r6, 4}, true, pl, "pl r2 r6 4", "pl_r2_r6_4"},
    638      {{hi, r1, r3, 2}, true, hi, "hi r1 r3 2", "hi_r1_r3_2"},
    639      {{hi, r7, r2, 1}, true, hi, "hi r7 r2 1", "hi_r7_r2_1"},
    640      {{lt, r0, r1, 4}, true, lt, "lt r0 r1 4", "lt_r0_r1_4"},
    641      {{cc, r6, r2, 0}, true, cc, "cc r6 r2 0", "cc_r6_r2_0"},
    642      {{vs, r5, r4, 2}, true, vs, "vs r5 r4 2", "vs_r5_r4_2"},
    643      {{pl, r0, r5, 3}, true, pl, "pl r0 r5 3", "pl_r0_r5_3"},
    644      {{le, r0, r3, 4}, true, le, "le r0 r3 4", "le_r0_r3_4"},
    645      {{cc, r6, r2, 5}, true, cc, "cc r6 r2 5", "cc_r6_r2_5"},
    646      {{ls, r6, r1, 3}, true, ls, "ls r6 r1 3", "ls_r6_r1_3"},
    647      {{ne, r6, r6, 0}, true, ne, "ne r6 r6 0", "ne_r6_r6_0"},
    648      {{vc, r1, r3, 1}, true, vc, "vc r1 r3 1", "vc_r1_r3_1"},
    649      {{lt, r1, r7, 6}, true, lt, "lt r1 r7 6", "lt_r1_r7_6"},
    650      {{hi, r5, r3, 5}, true, hi, "hi r5 r3 5", "hi_r5_r3_5"},
    651      {{gt, r6, r4, 6}, true, gt, "gt r6 r4 6", "gt_r6_r4_6"},
    652      {{ne, r6, r6, 3}, true, ne, "ne r6 r6 3", "ne_r6_r6_3"},
    653      {{pl, r2, r4, 1}, true, pl, "pl r2 r4 1", "pl_r2_r4_1"},
    654      {{cc, r3, r6, 7}, true, cc, "cc r3 r6 7", "cc_r3_r6_7"},
    655      {{cs, r3, r7, 0}, true, cs, "cs r3 r7 0", "cs_r3_r7_0"},
    656      {{cc, r7, r7, 5}, true, cc, "cc r7 r7 5", "cc_r7_r7_5"},
    657      {{vc, r6, r0, 7}, true, vc, "vc r6 r0 7", "vc_r6_r0_7"},
    658      {{lt, r2, r0, 3}, true, lt, "lt r2 r0 3", "lt_r2_r0_3"},
    659      {{ne, r5, r4, 7}, true, ne, "ne r5 r4 7", "ne_r5_r4_7"},
    660      {{vc, r2, r7, 6}, true, vc, "vc r2 r7 6", "vc_r2_r7_6"},
    661      {{cc, r4, r3, 2}, true, cc, "cc r4 r3 2", "cc_r4_r3_2"},
    662      {{lt, r3, r7, 6}, true, lt, "lt r3 r7 6", "lt_r3_r7_6"},
    663      {{gt, r3, r7, 7}, true, gt, "gt r3 r7 7", "gt_r3_r7_7"},
    664      {{ge, r6, r7, 5}, true, ge, "ge r6 r7 5", "ge_r6_r7_5"},
    665      {{ls, r1, r4, 5}, true, ls, "ls r1 r4 5", "ls_r1_r4_5"},
    666      {{eq, r1, r7, 3}, true, eq, "eq r1 r7 3", "eq_r1_r7_3"},
    667      {{le, r1, r4, 6}, true, le, "le r1 r4 6", "le_r1_r4_6"},
    668      {{ne, r4, r3, 1}, true, ne, "ne r4 r3 1", "ne_r4_r3_1"},
    669      {{pl, r7, r3, 6}, true, pl, "pl r7 r3 6", "pl_r7_r3_6"},
    670      {{ne, r7, r7, 0}, true, ne, "ne r7 r7 0", "ne_r7_r7_0"},
    671      {{lt, r1, r2, 6}, true, lt, "lt r1 r2 6", "lt_r1_r2_6"},
    672      {{le, r0, r7, 2}, true, le, "le r0 r7 2", "le_r0_r7_2"},
    673      {{pl, r2, r2, 0}, true, pl, "pl r2 r2 0", "pl_r2_r2_0"},
    674      {{vs, r2, r6, 2}, true, vs, "vs r2 r6 2", "vs_r2_r6_2"},
    675      {{pl, r0, r7, 7}, true, pl, "pl r0 r7 7", "pl_r0_r7_7"},
    676      {{gt, r6, r2, 5}, true, gt, "gt r6 r2 5", "gt_r6_r2_5"},
    677      {{cs, r4, r3, 1}, true, cs, "cs r4 r3 1", "cs_r4_r3_1"},
    678      {{ne, r3, r5, 4}, true, ne, "ne r3 r5 4", "ne_r3_r5_4"},
    679      {{mi, r0, r0, 0}, true, mi, "mi r0 r0 0", "mi_r0_r0_0"},
    680      {{ge, r2, r0, 1}, true, ge, "ge r2 r0 1", "ge_r2_r0_1"},
    681      {{mi, r7, r3, 7}, true, mi, "mi r7 r3 7", "mi_r7_r3_7"},
    682      {{ne, r0, r7, 2}, true, ne, "ne r0 r7 2", "ne_r0_r7_2"},
    683      {{ge, r0, r6, 2}, true, ge, "ge r0 r6 2", "ge_r0_r6_2"},
    684      {{hi, r2, r7, 2}, true, hi, "hi r2 r7 2", "hi_r2_r7_2"},
    685      {{vs, r0, r4, 0}, true, vs, "vs r0 r4 0", "vs_r0_r4_0"},
    686      {{hi, r2, r1, 0}, true, hi, "hi r2 r1 0", "hi_r2_r1_0"},
    687      {{hi, r7, r0, 3}, true, hi, "hi r7 r0 3", "hi_r7_r0_3"},
    688      {{ge, r5, r4, 0}, true, ge, "ge r5 r4 0", "ge_r5_r4_0"},
    689      {{mi, r4, r1, 3}, true, mi, "mi r4 r1 3", "mi_r4_r1_3"},
    690      {{le, r1, r6, 3}, true, le, "le r1 r6 3", "le_r1_r6_3"},
    691      {{le, r7, r6, 2}, true, le, "le r7 r6 2", "le_r7_r6_2"},
    692      {{mi, r6, r3, 4}, true, mi, "mi r6 r3 4", "mi_r6_r3_4"},
    693      {{cs, r4, r4, 0}, true, cs, "cs r4 r4 0", "cs_r4_r4_0"},
    694      {{cc, r2, r3, 2}, true, cc, "cc r2 r3 2", "cc_r2_r3_2"},
    695      {{mi, r1, r5, 4}, true, mi, "mi r1 r5 4", "mi_r1_r5_4"},
    696      {{cc, r5, r3, 2}, true, cc, "cc r5 r3 2", "cc_r5_r3_2"},
    697      {{gt, r2, r0, 2}, true, gt, "gt r2 r0 2", "gt_r2_r0_2"},
    698      {{le, r2, r4, 7}, true, le, "le r2 r4 7", "le_r2_r4_7"},
    699      {{vc, r2, r3, 3}, true, vc, "vc r2 r3 3", "vc_r2_r3_3"},
    700      {{eq, r4, r2, 3}, true, eq, "eq r4 r2 3", "eq_r4_r2_3"},
    701      {{ge, r6, r0, 7}, true, ge, "ge r6 r0 7", "ge_r6_r0_7"},
    702      {{eq, r0, r7, 7}, true, eq, "eq r0 r7 7", "eq_r0_r7_7"},
    703      {{gt, r5, r6, 2}, true, gt, "gt r5 r6 2", "gt_r5_r6_2"},
    704      {{ne, r6, r0, 7}, true, ne, "ne r6 r0 7", "ne_r6_r0_7"},
    705      {{ne, r7, r0, 4}, true, ne, "ne r7 r0 4", "ne_r7_r0_4"},
    706      {{eq, r7, r7, 1}, true, eq, "eq r7 r7 1", "eq_r7_r7_1"},
    707      {{le, r6, r5, 0}, true, le, "le r6 r5 0", "le_r6_r5_0"},
    708      {{vc, r3, r6, 7}, true, vc, "vc r3 r6 7", "vc_r3_r6_7"},
    709      {{pl, r0, r3, 7}, true, pl, "pl r0 r3 7", "pl_r0_r3_7"},
    710      {{ls, r5, r5, 0}, true, ls, "ls r5 r5 0", "ls_r5_r5_0"},
    711      {{ge, r6, r3, 7}, true, ge, "ge r6 r3 7", "ge_r6_r3_7"},
    712      {{eq, r3, r2, 6}, true, eq, "eq r3 r2 6", "eq_r3_r2_6"},
    713      {{cs, r5, r3, 7}, true, cs, "cs r5 r3 7", "cs_r5_r3_7"},
    714      {{cc, r3, r5, 7}, true, cc, "cc r3 r5 7", "cc_r3_r5_7"},
    715      {{ge, r6, r1, 4}, true, ge, "ge r6 r1 4", "ge_r6_r1_4"},
    716      {{mi, r5, r4, 5}, true, mi, "mi r5 r4 5", "mi_r5_r4_5"},
    717      {{eq, r7, r6, 6}, true, eq, "eq r7 r6 6", "eq_r7_r6_6"},
    718      {{gt, r2, r2, 2}, true, gt, "gt r2 r2 2", "gt_r2_r2_2"},
    719      {{mi, r1, r0, 2}, true, mi, "mi r1 r0 2", "mi_r1_r0_2"},
    720      {{eq, r2, r2, 1}, true, eq, "eq r2 r2 1", "eq_r2_r2_1"},
    721      {{lt, r1, r2, 1}, true, lt, "lt r1 r2 1", "lt_r1_r2_1"},
    722      {{cc, r5, r1, 3}, true, cc, "cc r5 r1 3", "cc_r5_r1_3"},
    723      {{ge, r1, r7, 5}, true, ge, "ge r1 r7 5", "ge_r1_r7_5"},
    724      {{lt, r6, r3, 3}, true, lt, "lt r6 r3 3", "lt_r6_r3_3"},
    725      {{vc, r3, r1, 7}, true, vc, "vc r3 r1 7", "vc_r3_r1_7"},
    726      {{mi, r7, r2, 7}, true, mi, "mi r7 r2 7", "mi_r7_r2_7"},
    727      {{lt, r0, r3, 1}, true, lt, "lt r0 r3 1", "lt_r0_r3_1"},
    728      {{cs, r1, r7, 1}, true, cs, "cs r1 r7 1", "cs_r1_r7_1"},
    729      {{cc, r3, r4, 5}, true, cc, "cc r3 r4 5", "cc_r3_r4_5"},
    730      {{lt, r5, r0, 2}, true, lt, "lt r5 r0 2", "lt_r5_r0_2"},
    731      {{hi, r1, r5, 7}, true, hi, "hi r1 r5 7", "hi_r1_r5_7"},
    732      {{ne, r4, r6, 5}, true, ne, "ne r4 r6 5", "ne_r4_r6_5"},
    733      {{vc, r2, r3, 6}, true, vc, "vc r2 r3 6", "vc_r2_r3_6"},
    734      {{mi, r1, r7, 0}, true, mi, "mi r1 r7 0", "mi_r1_r7_0"},
    735      {{hi, r0, r2, 4}, true, hi, "hi r0 r2 4", "hi_r0_r2_4"},
    736      {{cs, r5, r2, 5}, true, cs, "cs r5 r2 5", "cs_r5_r2_5"},
    737      {{ge, r2, r6, 3}, true, ge, "ge r2 r6 3", "ge_r2_r6_3"},
    738      {{cs, r2, r7, 5}, true, cs, "cs r2 r7 5", "cs_r2_r7_5"},
    739      {{eq, r1, r6, 5}, true, eq, "eq r1 r6 5", "eq_r1_r6_5"},
    740      {{vc, r7, r0, 6}, true, vc, "vc r7 r0 6", "vc_r7_r0_6"},
    741      {{vs, r1, r0, 2}, true, vs, "vs r1 r0 2", "vs_r1_r0_2"},
    742      {{eq, r3, r3, 5}, true, eq, "eq r3 r3 5", "eq_r3_r3_5"},
    743      {{cc, r0, r4, 5}, true, cc, "cc r0 r4 5", "cc_r0_r4_5"},
    744      {{lt, r7, r2, 5}, true, lt, "lt r7 r2 5", "lt_r7_r2_5"},
    745      {{pl, r1, r1, 0}, true, pl, "pl r1 r1 0", "pl_r1_r1_0"},
    746      {{hi, r7, r2, 5}, true, hi, "hi r7 r2 5", "hi_r7_r2_5"},
    747      {{cc, r0, r4, 0}, true, cc, "cc r0 r4 0", "cc_r0_r4_0"},
    748      {{eq, r0, r3, 7}, true, eq, "eq r0 r3 7", "eq_r0_r3_7"},
    749      {{lt, r4, r5, 0}, true, lt, "lt r4 r5 0", "lt_r4_r5_0"},
    750      {{vc, r5, r4, 7}, true, vc, "vc r5 r4 7", "vc_r5_r4_7"},
    751      {{gt, r7, r7, 0}, true, gt, "gt r7 r7 0", "gt_r7_r7_0"},
    752      {{le, r1, r2, 7}, true, le, "le r1 r2 7", "le_r1_r2_7"},
    753      {{cc, r0, r4, 6}, true, cc, "cc r0 r4 6", "cc_r0_r4_6"},
    754      {{eq, r1, r5, 5}, true, eq, "eq r1 r5 5", "eq_r1_r5_5"},
    755      {{hi, r1, r5, 2}, true, hi, "hi r1 r5 2", "hi_r1_r5_2"},
    756      {{ne, r2, r4, 1}, true, ne, "ne r2 r4 1", "ne_r2_r4_1"},
    757      {{cc, r3, r6, 6}, true, cc, "cc r3 r6 6", "cc_r3_r6_6"},
    758      {{eq, r7, r7, 6}, true, eq, "eq r7 r7 6", "eq_r7_r7_6"},
    759      {{ne, r5, r4, 4}, true, ne, "ne r5 r4 4", "ne_r5_r4_4"},
    760      {{eq, r2, r4, 2}, true, eq, "eq r2 r4 2", "eq_r2_r4_2"},
    761      {{vc, r2, r1, 2}, true, vc, "vc r2 r1 2", "vc_r2_r1_2"},
    762      {{ge, r5, r1, 3}, true, ge, "ge r5 r1 3", "ge_r5_r1_3"},
    763      {{hi, r0, r0, 5}, true, hi, "hi r0 r0 5", "hi_r0_r0_5"},
    764      {{ne, r6, r2, 6}, true, ne, "ne r6 r2 6", "ne_r6_r2_6"},
    765      {{vc, r2, r5, 0}, true, vc, "vc r2 r5 0", "vc_r2_r5_0"},
    766      {{le, r1, r3, 3}, true, le, "le r1 r3 3", "le_r1_r3_3"},
    767      {{mi, r0, r2, 0}, true, mi, "mi r0 r2 0", "mi_r0_r2_0"},
    768      {{mi, r1, r2, 7}, true, mi, "mi r1 r2 7", "mi_r1_r2_7"},
    769      {{vc, r6, r5, 5}, true, vc, "vc r6 r5 5", "vc_r6_r5_5"},
    770      {{ge, r2, r0, 3}, true, ge, "ge r2 r0 3", "ge_r2_r0_3"},
    771      {{le, r5, r0, 7}, true, le, "le r5 r0 7", "le_r5_r0_7"},
    772      {{lt, r1, r4, 0}, true, lt, "lt r1 r4 0", "lt_r1_r4_0"},
    773      {{le, r4, r4, 3}, true, le, "le r4 r4 3", "le_r4_r4_3"},
    774      {{vs, r0, r6, 5}, true, vs, "vs r0 r6 5", "vs_r0_r6_5"},
    775      {{vs, r0, r0, 2}, true, vs, "vs r0 r0 2", "vs_r0_r0_2"},
    776      {{ne, r4, r3, 3}, true, ne, "ne r4 r3 3", "ne_r4_r3_3"},
    777      {{ge, r0, r6, 5}, true, ge, "ge r0 r6 5", "ge_r0_r6_5"},
    778      {{pl, r6, r0, 5}, true, pl, "pl r6 r0 5", "pl_r6_r0_5"},
    779      {{ls, r5, r3, 4}, true, ls, "ls r5 r3 4", "ls_r5_r3_4"},
    780      {{vs, r3, r4, 5}, true, vs, "vs r3 r4 5", "vs_r3_r4_5"},
    781      {{gt, r1, r4, 6}, true, gt, "gt r1 r4 6", "gt_r1_r4_6"},
    782      {{vc, r1, r1, 2}, true, vc, "vc r1 r1 2", "vc_r1_r1_2"},
    783      {{lt, r7, r1, 5}, true, lt, "lt r7 r1 5", "lt_r7_r1_5"},
    784      {{eq, r0, r4, 1}, true, eq, "eq r0 r4 1", "eq_r0_r4_1"},
    785      {{le, r0, r4, 2}, true, le, "le r0 r4 2", "le_r0_r4_2"},
    786      {{vc, r0, r0, 4}, true, vc, "vc r0 r0 4", "vc_r0_r0_4"},
    787      {{eq, r4, r6, 3}, true, eq, "eq r4 r6 3", "eq_r4_r6_3"},
    788      {{eq, r7, r1, 4}, true, eq, "eq r7 r1 4", "eq_r7_r1_4"},
    789      {{pl, r5, r4, 7}, true, pl, "pl r5 r4 7", "pl_r5_r4_7"},
    790      {{ge, r6, r0, 3}, true, ge, "ge r6 r0 3", "ge_r6_r0_3"},
    791      {{gt, r5, r5, 4}, true, gt, "gt r5 r5 4", "gt_r5_r5_4"},
    792      {{mi, r6, r0, 2}, true, mi, "mi r6 r0 2", "mi_r6_r0_2"},
    793      {{gt, r7, r5, 2}, true, gt, "gt r7 r5 2", "gt_r7_r5_2"},
    794      {{le, r0, r6, 5}, true, le, "le r0 r6 5", "le_r0_r6_5"},
    795      {{vc, r1, r5, 6}, true, vc, "vc r1 r5 6", "vc_r1_r5_6"},
    796      {{eq, r5, r5, 5}, true, eq, "eq r5 r5 5", "eq_r5_r5_5"},
    797      {{ge, r2, r6, 2}, true, ge, "ge r2 r6 2", "ge_r2_r6_2"},
    798      {{eq, r4, r4, 7}, true, eq, "eq r4 r4 7", "eq_r4_r4_7"},
    799      {{ne, r5, r5, 4}, true, ne, "ne r5 r5 4", "ne_r5_r5_4"},
    800      {{lt, r2, r1, 0}, true, lt, "lt r2 r1 0", "lt_r2_r1_0"},
    801      {{gt, r4, r0, 4}, true, gt, "gt r4 r0 4", "gt_r4_r0_4"},
    802      {{le, r0, r0, 1}, true, le, "le r0 r0 1", "le_r0_r0_1"},
    803      {{pl, r1, r3, 1}, true, pl, "pl r1 r3 1", "pl_r1_r3_1"},
    804      {{ge, r6, r2, 0}, true, ge, "ge r6 r2 0", "ge_r6_r2_0"},
    805      {{ne, r2, r6, 0}, true, ne, "ne r2 r6 0", "ne_r2_r6_0"},
    806      {{cs, r3, r2, 5}, true, cs, "cs r3 r2 5", "cs_r3_r2_5"},
    807      {{eq, r3, r3, 2}, true, eq, "eq r3 r3 2", "eq_r3_r3_2"},
    808      {{ne, r6, r6, 5}, true, ne, "ne r6 r6 5", "ne_r6_r6_5"},
    809      {{vc, r5, r2, 2}, true, vc, "vc r5 r2 2", "vc_r5_r2_2"},
    810      {{pl, r3, r6, 4}, true, pl, "pl r3 r6 4", "pl_r3_r6_4"},
    811      {{cs, r5, r7, 6}, true, cs, "cs r5 r7 6", "cs_r5_r7_6"},
    812      {{cs, r2, r1, 7}, true, cs, "cs r2 r1 7", "cs_r2_r1_7"},
    813      {{pl, r4, r5, 5}, true, pl, "pl r4 r5 5", "pl_r4_r5_5"},
    814      {{pl, r1, r5, 7}, true, pl, "pl r1 r5 7", "pl_r1_r5_7"},
    815      {{mi, r4, r3, 5}, true, mi, "mi r4 r3 5", "mi_r4_r3_5"},
    816      {{vc, r0, r4, 0}, true, vc, "vc r0 r4 0", "vc_r0_r4_0"},
    817      {{le, r2, r7, 0}, true, le, "le r2 r7 0", "le_r2_r7_0"},
    818      {{cc, r7, r2, 6}, true, cc, "cc r7 r2 6", "cc_r7_r2_6"},
    819      {{vs, r7, r1, 1}, true, vs, "vs r7 r1 1", "vs_r7_r1_1"},
    820      {{gt, r3, r3, 5}, true, gt, "gt r3 r3 5", "gt_r3_r3_5"},
    821      {{eq, r7, r1, 1}, true, eq, "eq r7 r1 1", "eq_r7_r1_1"},
    822      {{pl, r5, r7, 5}, true, pl, "pl r5 r7 5", "pl_r5_r7_5"},
    823      {{hi, r5, r6, 1}, true, hi, "hi r5 r6 1", "hi_r5_r6_1"},
    824      {{cc, r2, r0, 0}, true, cc, "cc r2 r0 0", "cc_r2_r0_0"},
    825      {{cs, r7, r7, 2}, true, cs, "cs r7 r7 2", "cs_r7_r7_2"},
    826      {{ne, r0, r3, 6}, true, ne, "ne r0 r3 6", "ne_r0_r3_6"},
    827      {{mi, r4, r7, 2}, true, mi, "mi r4 r7 2", "mi_r4_r7_2"},
    828      {{le, r4, r4, 7}, true, le, "le r4 r4 7", "le_r4_r4_7"},
    829      {{gt, r1, r1, 0}, true, gt, "gt r1 r1 0", "gt_r1_r1_0"},
    830      {{vs, r2, r5, 1}, true, vs, "vs r2 r5 1", "vs_r2_r5_1"},
    831      {{ls, r7, r2, 4}, true, ls, "ls r7 r2 4", "ls_r7_r2_4"},
    832      {{vs, r2, r1, 4}, true, vs, "vs r2 r1 4", "vs_r2_r1_4"},
    833      {{eq, r5, r6, 5}, true, eq, "eq r5 r6 5", "eq_r5_r6_5"},
    834      {{vs, r4, r3, 4}, true, vs, "vs r4 r3 4", "vs_r4_r3_4"},
    835      {{vs, r2, r1, 2}, true, vs, "vs r2 r1 2", "vs_r2_r1_2"},
    836      {{hi, r0, r3, 3}, true, hi, "hi r0 r3 3", "hi_r0_r3_3"},
    837      {{hi, r4, r1, 5}, true, hi, "hi r4 r1 5", "hi_r4_r1_5"},
    838      {{pl, r6, r6, 7}, true, pl, "pl r6 r6 7", "pl_r6_r6_7"},
    839      {{gt, r0, r5, 0}, true, gt, "gt r0 r5 0", "gt_r0_r5_0"},
    840      {{cc, r5, r0, 7}, true, cc, "cc r5 r0 7", "cc_r5_r0_7"},
    841      {{ls, r7, r7, 7}, true, ls, "ls r7 r7 7", "ls_r7_r7_7"},
    842      {{vc, r6, r3, 0}, true, vc, "vc r6 r3 0", "vc_r6_r3_0"},
    843      {{cc, r6, r4, 4}, true, cc, "cc r6 r4 4", "cc_r6_r4_4"},
    844      {{cc, r6, r5, 0}, true, cc, "cc r6 r5 0", "cc_r6_r5_0"},
    845      {{le, r2, r0, 6}, true, le, "le r2 r0 6", "le_r2_r0_6"},
    846      {{gt, r5, r6, 3}, true, gt, "gt r5 r6 3", "gt_r5_r6_3"},
    847      {{vs, r3, r4, 0}, true, vs, "vs r3 r4 0", "vs_r3_r4_0"},
    848      {{le, r4, r4, 1}, true, le, "le r4 r4 1", "le_r4_r4_1"},
    849      {{ge, r4, r0, 6}, true, ge, "ge r4 r0 6", "ge_r4_r0_6"},
    850      {{eq, r2, r3, 2}, true, eq, "eq r2 r3 2", "eq_r2_r3_2"},
    851      {{lt, r5, r1, 6}, true, lt, "lt r5 r1 6", "lt_r5_r1_6"},
    852      {{le, r7, r2, 0}, true, le, "le r7 r2 0", "le_r7_r2_0"},
    853      {{mi, r2, r4, 6}, true, mi, "mi r2 r4 6", "mi_r2_r4_6"},
    854      {{vc, r6, r5, 4}, true, vc, "vc r6 r5 4", "vc_r6_r5_4"},
    855      {{gt, r3, r6, 5}, true, gt, "gt r3 r6 5", "gt_r3_r6_5"},
    856      {{pl, r3, r2, 0}, true, pl, "pl r3 r2 0", "pl_r3_r2_0"},
    857      {{ls, r3, r2, 2}, true, ls, "ls r3 r2 2", "ls_r3_r2_2"},
    858      {{ge, r2, r7, 7}, true, ge, "ge r2 r7 7", "ge_r2_r7_7"},
    859      {{vc, r3, r5, 0}, true, vc, "vc r3 r5 0", "vc_r3_r5_0"},
    860      {{cc, r4, r0, 7}, true, cc, "cc r4 r0 7", "cc_r4_r0_7"},
    861      {{ls, r3, r5, 2}, true, ls, "ls r3 r5 2", "ls_r3_r5_2"},
    862      {{vc, r6, r7, 6}, true, vc, "vc r6 r7 6", "vc_r6_r7_6"},
    863      {{ls, r0, r3, 6}, true, ls, "ls r0 r3 6", "ls_r0_r3_6"},
    864      {{hi, r6, r0, 1}, true, hi, "hi r6 r0 1", "hi_r6_r0_1"},
    865      {{mi, r5, r0, 6}, true, mi, "mi r5 r0 6", "mi_r5_r0_6"},
    866      {{mi, r2, r5, 3}, true, mi, "mi r2 r5 3", "mi_r2_r5_3"},
    867      {{ge, r0, r7, 0}, true, ge, "ge r0 r7 0", "ge_r0_r7_0"},
    868      {{vc, r7, r3, 3}, true, vc, "vc r7 r3 3", "vc_r7_r3_3"},
    869      {{mi, r0, r2, 5}, true, mi, "mi r0 r2 5", "mi_r0_r2_5"},
    870      {{cc, r4, r3, 5}, true, cc, "cc r4 r3 5", "cc_r4_r3_5"},
    871      {{pl, r0, r3, 0}, true, pl, "pl r0 r3 0", "pl_r0_r3_0"},
    872      {{gt, r6, r3, 1}, true, gt, "gt r6 r3 1", "gt_r6_r3_1"},
    873      {{lt, r3, r3, 0}, true, lt, "lt r3 r3 0", "lt_r3_r3_0"},
    874      {{hi, r1, r5, 6}, true, hi, "hi r1 r5 6", "hi_r1_r5_6"},
    875      {{hi, r4, r7, 0}, true, hi, "hi r4 r7 0", "hi_r4_r7_0"},
    876      {{ge, r6, r2, 2}, true, ge, "ge r6 r2 2", "ge_r6_r2_2"},
    877      {{pl, r7, r4, 4}, true, pl, "pl r7 r4 4", "pl_r7_r4_4"},
    878      {{cc, r5, r5, 5}, true, cc, "cc r5 r5 5", "cc_r5_r5_5"},
    879      {{pl, r6, r1, 1}, true, pl, "pl r6 r1 1", "pl_r6_r1_1"},
    880      {{le, r7, r6, 3}, true, le, "le r7 r6 3", "le_r7_r6_3"},
    881      {{lt, r4, r7, 1}, true, lt, "lt r4 r7 1", "lt_r4_r7_1"},
    882      {{pl, r2, r4, 7}, true, pl, "pl r2 r4 7", "pl_r2_r4_7"},
    883      {{vc, r1, r3, 0}, true, vc, "vc r1 r3 0", "vc_r1_r3_0"},
    884      {{pl, r7, r7, 3}, true, pl, "pl r7 r7 3", "pl_r7_r7_3"},
    885      {{ls, r4, r1, 3}, true, ls, "ls r4 r1 3", "ls_r4_r1_3"},
    886      {{lt, r6, r6, 2}, true, lt, "lt r6 r6 2", "lt_r6_r6_2"},
    887      {{mi, r4, r2, 4}, true, mi, "mi r4 r2 4", "mi_r4_r2_4"},
    888      {{pl, r3, r4, 7}, true, pl, "pl r3 r4 7", "pl_r3_r4_7"},
    889      {{ls, r2, r6, 6}, true, ls, "ls r2 r6 6", "ls_r2_r6_6"},
    890      {{hi, r5, r7, 6}, true, hi, "hi r5 r7 6", "hi_r5_r7_6"},
    891      {{lt, r0, r4, 1}, true, lt, "lt r0 r4 1", "lt_r0_r4_1"},
    892      {{ge, r5, r5, 6}, true, ge, "ge r5 r5 6", "ge_r5_r5_6"},
    893      {{pl, r1, r7, 3}, true, pl, "pl r1 r7 3", "pl_r1_r7_3"},
    894      {{cs, r6, r2, 1}, true, cs, "cs r6 r2 1", "cs_r6_r2_1"},
    895      {{ne, r1, r3, 0}, true, ne, "ne r1 r3 0", "ne_r1_r3_0"},
    896      {{mi, r6, r5, 7}, true, mi, "mi r6 r5 7", "mi_r6_r5_7"},
    897      {{gt, r2, r2, 0}, true, gt, "gt r2 r2 0", "gt_r2_r2_0"},
    898      {{ls, r6, r4, 6}, true, ls, "ls r6 r4 6", "ls_r6_r4_6"},
    899      {{pl, r2, r6, 7}, true, pl, "pl r2 r6 7", "pl_r2_r6_7"},
    900      {{ne, r1, r5, 4}, true, ne, "ne r1 r5 4", "ne_r1_r5_4"},
    901      {{mi, r0, r0, 5}, true, mi, "mi r0 r0 5", "mi_r0_r0_5"},
    902      {{eq, r5, r5, 2}, true, eq, "eq r5 r5 2", "eq_r5_r5_2"},
    903      {{mi, r7, r7, 3}, true, mi, "mi r7 r7 3", "mi_r7_r7_3"},
    904      {{vc, r7, r7, 1}, true, vc, "vc r7 r7 1", "vc_r7_r7_1"},
    905      {{vc, r5, r4, 3}, true, vc, "vc r5 r4 3", "vc_r5_r4_3"},
    906      {{mi, r5, r7, 6}, true, mi, "mi r5 r7 6", "mi_r5_r7_6"},
    907      {{vs, r2, r3, 0}, true, vs, "vs r2 r3 0", "vs_r2_r3_0"},
    908      {{ne, r2, r4, 2}, true, ne, "ne r2 r4 2", "ne_r2_r4_2"},
    909      {{eq, r6, r7, 3}, true, eq, "eq r6 r7 3", "eq_r6_r7_3"},
    910      {{ne, r0, r1, 5}, true, ne, "ne r0 r1 5", "ne_r0_r1_5"},
    911      {{lt, r3, r2, 6}, true, lt, "lt r3 r2 6", "lt_r3_r2_6"},
    912      {{gt, r4, r2, 1}, true, gt, "gt r4 r2 1", "gt_r4_r2_1"},
    913      {{ls, r6, r1, 0}, true, ls, "ls r6 r1 0", "ls_r6_r1_0"},
    914      {{cc, r6, r2, 3}, true, cc, "cc r6 r2 3", "cc_r6_r2_3"},
    915      {{hi, r3, r2, 7}, true, hi, "hi r3 r2 7", "hi_r3_r2_7"},
    916      {{cc, r6, r7, 3}, true, cc, "cc r6 r7 3", "cc_r6_r7_3"},
    917      {{vs, r7, r6, 4}, true, vs, "vs r7 r6 4", "vs_r7_r6_4"},
    918      {{gt, r5, r4, 5}, true, gt, "gt r5 r4 5", "gt_r5_r4_5"},
    919      {{vc, r5, r7, 6}, true, vc, "vc r5 r7 6", "vc_r5_r7_6"},
    920      {{hi, r0, r6, 5}, true, hi, "hi r0 r6 5", "hi_r0_r6_5"},
    921      {{eq, r2, r7, 3}, true, eq, "eq r2 r7 3", "eq_r2_r7_3"},
    922      {{le, r6, r5, 7}, true, le, "le r6 r5 7", "le_r6_r5_7"},
    923      {{ge, r0, r5, 5}, true, ge, "ge r0 r5 5", "ge_r0_r5_5"},
    924      {{pl, r1, r6, 4}, true, pl, "pl r1 r6 4", "pl_r1_r6_4"},
    925      {{mi, r3, r0, 6}, true, mi, "mi r3 r0 6", "mi_r3_r0_6"},
    926      {{cs, r7, r6, 1}, true, cs, "cs r7 r6 1", "cs_r7_r6_1"},
    927      {{vc, r3, r6, 3}, true, vc, "vc r3 r6 3", "vc_r3_r6_3"},
    928      {{ls, r5, r1, 4}, true, ls, "ls r5 r1 4", "ls_r5_r1_4"},
    929      {{le, r6, r2, 3}, true, le, "le r6 r2 3", "le_r6_r2_3"},
    930      {{cc, r1, r6, 4}, true, cc, "cc r1 r6 4", "cc_r1_r6_4"},
    931      {{mi, r0, r7, 0}, true, mi, "mi r0 r7 0", "mi_r0_r7_0"},
    932      {{vc, r6, r2, 2}, true, vc, "vc r6 r2 2", "vc_r6_r2_2"},
    933      {{gt, r3, r0, 4}, true, gt, "gt r3 r0 4", "gt_r3_r0_4"},
    934      {{cs, r4, r0, 5}, true, cs, "cs r4 r0 5", "cs_r4_r0_5"},
    935      {{hi, r4, r4, 6}, true, hi, "hi r4 r4 6", "hi_r4_r4_6"},
    936      {{cc, r5, r5, 1}, true, cc, "cc r5 r5 1", "cc_r5_r5_1"},
    937      {{pl, r6, r3, 4}, true, pl, "pl r6 r3 4", "pl_r6_r3_4"},
    938      {{ge, r7, r4, 0}, true, ge, "ge r7 r4 0", "ge_r7_r4_0"},
    939      {{hi, r2, r1, 3}, true, hi, "hi r2 r1 3", "hi_r2_r1_3"},
    940      {{le, r4, r3, 1}, true, le, "le r4 r3 1", "le_r4_r3_1"},
    941      {{gt, r0, r0, 7}, true, gt, "gt r0 r0 7", "gt_r0_r0_7"},
    942      {{gt, r2, r0, 6}, true, gt, "gt r2 r0 6", "gt_r2_r0_6"},
    943      {{ge, r4, r3, 5}, true, ge, "ge r4 r3 5", "ge_r4_r3_5"},
    944      {{le, r2, r0, 7}, true, le, "le r2 r0 7", "le_r2_r0_7"},
    945      {{vc, r7, r7, 4}, true, vc, "vc r7 r7 4", "vc_r7_r7_4"},
    946      {{lt, r6, r5, 1}, true, lt, "lt r6 r5 1", "lt_r6_r5_1"},
    947      {{vs, r1, r0, 4}, true, vs, "vs r1 r0 4", "vs_r1_r0_4"},
    948      {{vs, r1, r1, 6}, true, vs, "vs r1 r1 6", "vs_r1_r1_6"},
    949      {{ge, r1, r0, 6}, true, ge, "ge r1 r0 6", "ge_r1_r0_6"},
    950      {{eq, r1, r6, 0}, true, eq, "eq r1 r6 0", "eq_r1_r6_0"},
    951      {{cs, r0, r5, 5}, true, cs, "cs r0 r5 5", "cs_r0_r5_5"},
    952      {{mi, r7, r6, 5}, true, mi, "mi r7 r6 5", "mi_r7_r6_5"},
    953      {{vc, r1, r4, 3}, true, vc, "vc r1 r4 3", "vc_r1_r4_3"},
    954      {{hi, r1, r3, 4}, true, hi, "hi r1 r3 4", "hi_r1_r3_4"},
    955      {{vs, r3, r6, 3}, true, vs, "vs r3 r6 3", "vs_r3_r6_3"},
    956      {{vc, r1, r6, 1}, true, vc, "vc r1 r6 1", "vc_r1_r6_1"},
    957      {{mi, r3, r7, 1}, true, mi, "mi r3 r7 1", "mi_r3_r7_1"},
    958      {{eq, r7, r0, 1}, true, eq, "eq r7 r0 1", "eq_r7_r0_1"},
    959      {{hi, r3, r7, 7}, true, hi, "hi r3 r7 7", "hi_r3_r7_7"},
    960      {{mi, r3, r4, 3}, true, mi, "mi r3 r4 3", "mi_r3_r4_3"},
    961      {{le, r3, r1, 2}, true, le, "le r3 r1 2", "le_r3_r1_2"},
    962      {{mi, r1, r3, 5}, true, mi, "mi r1 r3 5", "mi_r1_r3_5"},
    963      {{vc, r2, r2, 4}, true, vc, "vc r2 r2 4", "vc_r2_r2_4"},
    964      {{vc, r4, r7, 2}, true, vc, "vc r4 r7 2", "vc_r4_r7_2"},
    965      {{vs, r3, r7, 0}, true, vs, "vs r3 r7 0", "vs_r3_r7_0"},
    966      {{gt, r7, r1, 3}, true, gt, "gt r7 r1 3", "gt_r7_r1_3"},
    967      {{hi, r7, r4, 7}, true, hi, "hi r7 r4 7", "hi_r7_r4_7"},
    968      {{hi, r1, r0, 3}, true, hi, "hi r1 r0 3", "hi_r1_r0_3"},
    969      {{ne, r0, r4, 5}, true, ne, "ne r0 r4 5", "ne_r0_r4_5"},
    970      {{hi, r7, r6, 3}, true, hi, "hi r7 r6 3", "hi_r7_r6_3"},
    971      {{ne, r3, r4, 4}, true, ne, "ne r3 r4 4", "ne_r3_r4_4"},
    972      {{pl, r2, r5, 5}, true, pl, "pl r2 r5 5", "pl_r2_r5_5"},
    973      {{ge, r6, r7, 0}, true, ge, "ge r6 r7 0", "ge_r6_r7_0"},
    974      {{ne, r7, r3, 4}, true, ne, "ne r7 r3 4", "ne_r7_r3_4"},
    975      {{ls, r5, r2, 6}, true, ls, "ls r5 r2 6", "ls_r5_r2_6"},
    976      {{cs, r6, r3, 2}, true, cs, "cs r6 r3 2", "cs_r6_r3_2"},
    977      {{vs, r0, r1, 6}, true, vs, "vs r0 r1 6", "vs_r0_r1_6"},
    978      {{vc, r6, r3, 7}, true, vc, "vc r6 r3 7", "vc_r6_r3_7"},
    979      {{eq, r3, r0, 5}, true, eq, "eq r3 r0 5", "eq_r3_r0_5"},
    980      {{cc, r4, r5, 0}, true, cc, "cc r4 r5 0", "cc_r4_r5_0"},
    981      {{hi, r3, r1, 2}, true, hi, "hi r3 r1 2", "hi_r3_r1_2"},
    982      {{lt, r2, r5, 5}, true, lt, "lt r2 r5 5", "lt_r2_r5_5"},
    983      {{le, r0, r3, 3}, true, le, "le r0 r3 3", "le_r0_r3_3"},
    984      {{vc, r2, r5, 7}, true, vc, "vc r2 r5 7", "vc_r2_r5_7"},
    985      {{gt, r7, r1, 7}, true, gt, "gt r7 r1 7", "gt_r7_r1_7"},
    986      {{le, r2, r1, 5}, true, le, "le r2 r1 5", "le_r2_r1_5"},
    987      {{mi, r4, r2, 0}, true, mi, "mi r4 r2 0", "mi_r4_r2_0"},
    988      {{ne, r4, r3, 2}, true, ne, "ne r4 r3 2", "ne_r4_r3_2"},
    989      {{le, r3, r0, 7}, true, le, "le r3 r0 7", "le_r3_r0_7"},
    990      {{vc, r6, r5, 7}, true, vc, "vc r6 r5 7", "vc_r6_r5_7"},
    991      {{lt, r5, r5, 0}, true, lt, "lt r5 r5 0", "lt_r5_r5_0"},
    992      {{le, r5, r7, 2}, true, le, "le r5 r7 2", "le_r5_r7_2"},
    993      {{mi, r2, r6, 4}, true, mi, "mi r2 r6 4", "mi_r2_r6_4"},
    994      {{ne, r5, r4, 5}, true, ne, "ne r5 r4 5", "ne_r5_r4_5"},
    995      {{mi, r5, r7, 2}, true, mi, "mi r5 r7 2", "mi_r5_r7_2"},
    996      {{lt, r7, r1, 1}, true, lt, "lt r7 r1 1", "lt_r7_r1_1"},
    997      {{cc, r3, r0, 5}, true, cc, "cc r3 r0 5", "cc_r3_r0_5"},
    998      {{pl, r2, r2, 7}, true, pl, "pl r2 r2 7", "pl_r2_r2_7"},
    999      {{lt, r3, r5, 0}, true, lt, "lt r3 r5 0", "lt_r3_r5_0"},
   1000      {{cs, r7, r7, 5}, true, cs, "cs r7 r7 5", "cs_r7_r7_5"},
   1001      {{ge, r6, r5, 2}, true, ge, "ge r6 r5 2", "ge_r6_r5_2"},
   1002      {{pl, r2, r7, 1}, true, pl, "pl r2 r7 1", "pl_r2_r7_1"},
   1003      {{gt, r1, r5, 0}, true, gt, "gt r1 r5 0", "gt_r1_r5_0"},
   1004      {{hi, r4, r2, 6}, true, hi, "hi r4 r2 6", "hi_r4_r2_6"},
   1005      {{ls, r4, r6, 1}, true, ls, "ls r4 r6 1", "ls_r4_r6_1"},
   1006      {{vc, r4, r6, 5}, true, vc, "vc r4 r6 5", "vc_r4_r6_5"},
   1007      {{ne, r0, r2, 7}, true, ne, "ne r0 r2 7", "ne_r0_r2_7"},
   1008      {{ne, r1, r7, 3}, true, ne, "ne r1 r7 3", "ne_r1_r7_3"},
   1009      {{pl, r2, r1, 2}, true, pl, "pl r2 r1 2", "pl_r2_r1_2"},
   1010      {{le, r6, r2, 2}, true, le, "le r6 r2 2", "le_r6_r2_2"},
   1011      {{ne, r3, r6, 0}, true, ne, "ne r3 r6 0", "ne_r3_r6_0"},
   1012      {{lt, r5, r6, 6}, true, lt, "lt r5 r6 6", "lt_r5_r6_6"},
   1013      {{eq, r3, r2, 2}, true, eq, "eq r3 r2 2", "eq_r3_r2_2"},
   1014      {{pl, r1, r6, 7}, true, pl, "pl r1 r6 7", "pl_r1_r6_7"},
   1015      {{mi, r7, r0, 6}, true, mi, "mi r7 r0 6", "mi_r7_r0_6"},
   1016      {{le, r7, r2, 7}, true, le, "le r7 r2 7", "le_r7_r2_7"},
   1017      {{hi, r0, r3, 1}, true, hi, "hi r0 r3 1", "hi_r0_r3_1"},
   1018      {{ls, r3, r6, 4}, true, ls, "ls r3 r6 4", "ls_r3_r6_4"},
   1019      {{eq, r6, r0, 7}, true, eq, "eq r6 r0 7", "eq_r6_r0_7"},
   1020      {{ne, r1, r4, 5}, true, ne, "ne r1 r4 5", "ne_r1_r4_5"},
   1021      {{le, r1, r5, 3}, true, le, "le r1 r5 3", "le_r1_r5_3"},
   1022      {{cc, r6, r1, 7}, true, cc, "cc r6 r1 7", "cc_r6_r1_7"},
   1023      {{hi, r2, r4, 1}, true, hi, "hi r2 r4 1", "hi_r2_r4_1"},
   1024      {{vs, r3, r7, 2}, true, vs, "vs r3 r7 2", "vs_r3_r7_2"},
   1025      {{pl, r7, r6, 1}, true, pl, "pl r7 r6 1", "pl_r7_r6_1"},
   1026      {{ne, r7, r2, 1}, true, ne, "ne r7 r2 1", "ne_r7_r2_1"},
   1027      {{hi, r1, r0, 0}, true, hi, "hi r1 r0 0", "hi_r1_r0_0"},
   1028      {{vs, r2, r1, 7}, true, vs, "vs r2 r1 7", "vs_r2_r1_7"},
   1029      {{lt, r5, r4, 2}, true, lt, "lt r5 r4 2", "lt_r5_r4_2"},
   1030      {{mi, r3, r1, 0}, true, mi, "mi r3 r1 0", "mi_r3_r1_0"},
   1031      {{ls, r2, r6, 1}, true, ls, "ls r2 r6 1", "ls_r2_r6_1"},
   1032      {{cc, r2, r2, 1}, true, cc, "cc r2 r2 1", "cc_r2_r2_1"},
   1033      {{pl, r4, r0, 7}, true, pl, "pl r4 r0 7", "pl_r4_r0_7"},
   1034      {{cc, r6, r4, 5}, true, cc, "cc r6 r4 5", "cc_r6_r4_5"},
   1035      {{cc, r1, r3, 6}, true, cc, "cc r1 r3 6", "cc_r1_r3_6"},
   1036      {{lt, r0, r3, 2}, true, lt, "lt r0 r3 2", "lt_r0_r3_2"},
   1037      {{ge, r5, r4, 3}, true, ge, "ge r5 r4 3", "ge_r5_r4_3"},
   1038      {{lt, r4, r4, 2}, true, lt, "lt r4 r4 2", "lt_r4_r4_2"},
   1039      {{gt, r3, r1, 6}, true, gt, "gt r3 r1 6", "gt_r3_r1_6"},
   1040      {{pl, r4, r2, 1}, true, pl, "pl r4 r2 1", "pl_r4_r2_1"},
   1041      {{cc, r3, r1, 7}, true, cc, "cc r3 r1 7", "cc_r3_r1_7"},
   1042      {{mi, r1, r3, 7}, true, mi, "mi r1 r3 7", "mi_r1_r3_7"},
   1043      {{cc, r2, r5, 7}, true, cc, "cc r2 r5 7", "cc_r2_r5_7"},
   1044      {{hi, r6, r5, 0}, true, hi, "hi r6 r5 0", "hi_r6_r5_0"},
   1045      {{vc, r1, r0, 7}, true, vc, "vc r1 r0 7", "vc_r1_r0_7"},
   1046      {{cs, r3, r0, 5}, true, cs, "cs r3 r0 5", "cs_r3_r0_5"},
   1047      {{pl, r1, r2, 3}, true, pl, "pl r1 r2 3", "pl_r1_r2_3"},
   1048      {{pl, r2, r6, 3}, true, pl, "pl r2 r6 3", "pl_r2_r6_3"},
   1049      {{ne, r7, r1, 5}, true, ne, "ne r7 r1 5", "ne_r7_r1_5"},
   1050      {{hi, r5, r0, 4}, true, hi, "hi r5 r0 4", "hi_r5_r0_4"},
   1051      {{vc, r6, r1, 0}, true, vc, "vc r6 r1 0", "vc_r6_r1_0"},
   1052      {{vc, r7, r3, 2}, true, vc, "vc r7 r3 2", "vc_r7_r3_2"},
   1053      {{ge, r6, r6, 6}, true, ge, "ge r6 r6 6", "ge_r6_r6_6"},
   1054      {{ne, r6, r1, 0}, true, ne, "ne r6 r1 0", "ne_r6_r1_0"},
   1055      {{eq, r5, r1, 2}, true, eq, "eq r5 r1 2", "eq_r5_r1_2"},
   1056      {{hi, r2, r0, 6}, true, hi, "hi r2 r0 6", "hi_r2_r0_6"},
   1057      {{ne, r7, r4, 5}, true, ne, "ne r7 r4 5", "ne_r7_r4_5"},
   1058      {{cc, r0, r0, 1}, true, cc, "cc r0 r0 1", "cc_r0_r0_1"},
   1059      {{mi, r7, r5, 1}, true, mi, "mi r7 r5 1", "mi_r7_r5_1"},
   1060      {{mi, r7, r0, 0}, true, mi, "mi r7 r0 0", "mi_r7_r0_0"},
   1061      {{ls, r0, r2, 0}, true, ls, "ls r0 r2 0", "ls_r0_r2_0"},
   1062      {{vs, r4, r7, 3}, true, vs, "vs r4 r7 3", "vs_r4_r7_3"},
   1063      {{hi, r6, r2, 4}, true, hi, "hi r6 r2 4", "hi_r6_r2_4"},
   1064      {{eq, r4, r1, 1}, true, eq, "eq r4 r1 1", "eq_r4_r1_1"},
   1065      {{vs, r7, r5, 1}, true, vs, "vs r7 r5 1", "vs_r7_r5_1"},
   1066      {{ne, r0, r4, 7}, true, ne, "ne r0 r4 7", "ne_r0_r4_7"},
   1067      {{mi, r2, r7, 7}, true, mi, "mi r2 r7 7", "mi_r2_r7_7"},
   1068      {{mi, r3, r2, 5}, true, mi, "mi r3 r2 5", "mi_r3_r2_5"},
   1069      {{le, r7, r5, 5}, true, le, "le r7 r5 5", "le_r7_r5_5"},
   1070      {{gt, r0, r5, 7}, true, gt, "gt r0 r5 7", "gt_r0_r5_7"},
   1071      {{vc, r0, r4, 7}, true, vc, "vc r0 r4 7", "vc_r0_r4_7"},
   1072      {{ls, r5, r7, 2}, true, ls, "ls r5 r7 2", "ls_r5_r7_2"},
   1073      {{hi, r0, r6, 1}, true, hi, "hi r0 r6 1", "hi_r0_r6_1"},
   1074      {{cc, r1, r4, 5}, true, cc, "cc r1 r4 5", "cc_r1_r4_5"},
   1075      {{vs, r2, r2, 7}, true, vs, "vs r2 r2 7", "vs_r2_r2_7"},
   1076      {{ge, r6, r6, 1}, true, ge, "ge r6 r6 1", "ge_r6_r6_1"},
   1077      {{hi, r7, r1, 1}, true, hi, "hi r7 r1 1", "hi_r7_r1_1"},
   1078      {{le, r3, r4, 3}, true, le, "le r3 r4 3", "le_r3_r4_3"},
   1079      {{mi, r2, r1, 3}, true, mi, "mi r2 r1 3", "mi_r2_r1_3"},
   1080      {{cs, r7, r7, 4}, true, cs, "cs r7 r7 4", "cs_r7_r7_4"},
   1081      {{cs, r2, r5, 0}, true, cs, "cs r2 r5 0", "cs_r2_r5_0"},
   1082      {{hi, r7, r6, 4}, true, hi, "hi r7 r6 4", "hi_r7_r6_4"},
   1083      {{lt, r7, r5, 1}, true, lt, "lt r7 r5 1", "lt_r7_r5_1"},
   1084      {{gt, r0, r0, 1}, true, gt, "gt r0 r0 1", "gt_r0_r0_1"},
   1085      {{vs, r1, r2, 6}, true, vs, "vs r1 r2 6", "vs_r1_r2_6"},
   1086      {{vs, r3, r3, 1}, true, vs, "vs r3 r3 1", "vs_r3_r3_1"},
   1087      {{ls, r4, r2, 2}, true, ls, "ls r4 r2 2", "ls_r4_r2_2"},
   1088      {{hi, r6, r3, 2}, true, hi, "hi r6 r3 2", "hi_r6_r3_2"},
   1089      {{gt, r7, r5, 3}, true, gt, "gt r7 r5 3", "gt_r7_r5_3"},
   1090      {{vc, r1, r6, 7}, true, vc, "vc r1 r6 7", "vc_r1_r6_7"},
   1091      {{eq, r2, r2, 0}, true, eq, "eq r2 r2 0", "eq_r2_r2_0"},
   1092      {{hi, r7, r6, 1}, true, hi, "hi r7 r6 1", "hi_r7_r6_1"},
   1093      {{gt, r4, r6, 7}, true, gt, "gt r4 r6 7", "gt_r4_r6_7"},
   1094      {{le, r7, r0, 6}, true, le, "le r7 r0 6", "le_r7_r0_6"},
   1095      {{eq, r7, r1, 7}, true, eq, "eq r7 r1 7", "eq_r7_r1_7"},
   1096      {{mi, r0, r6, 7}, true, mi, "mi r0 r6 7", "mi_r0_r6_7"}};
   1097 
   1098 // These headers each contain an array of `TestResult` with the reference output
   1099 // values. The reference arrays are names `kReference{mnemonic}`.
   1100 #include "aarch32/traces/assembler-cond-rdlow-rnlow-operand-immediate-t32-imm3-in-it-block-add.h"
   1101 #include "aarch32/traces/assembler-cond-rdlow-rnlow-operand-immediate-t32-imm3-in-it-block-sub.h"
   1102 
   1103 
   1104 // The maximum number of errors to report in detail for each test.
   1105 const unsigned kErrorReportLimit = 8;
   1106 
   1107 typedef void (MacroAssembler::*Fn)(Condition cond,
   1108                                    Register rd,
   1109                                    Register rn,
   1110                                    const Operand& op);
   1111 
   1112 void TestHelper(Fn instruction,
   1113                 const char* mnemonic,
   1114                 const TestResult reference[]) {
   1115   unsigned total_error_count = 0;
   1116   MacroAssembler masm(BUF_SIZE);
   1117 
   1118   masm.UseT32();
   1119 
   1120   for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
   1121     // Values to pass to the macro-assembler.
   1122     Condition cond = kTests[i].operands.cond;
   1123     Register rd = kTests[i].operands.rd;
   1124     Register rn = kTests[i].operands.rn;
   1125     int32_t immediate = kTests[i].operands.immediate;
   1126     Operand op(immediate);
   1127 
   1128     int32_t start = masm.GetCursorOffset();
   1129     {
   1130       // We never generate more that 4 bytes, as IT instructions are only
   1131       // allowed for narrow encodings.
   1132       ExactAssemblyScope scope(&masm, 4, ExactAssemblyScope::kMaximumSize);
   1133       if (kTests[i].in_it_block) {
   1134         masm.it(kTests[i].it_condition);
   1135       }
   1136       (masm.*instruction)(cond, rd, rn, op);
   1137     }
   1138     int32_t end = masm.GetCursorOffset();
   1139 
   1140     const byte* result_ptr =
   1141         masm.GetBuffer()->GetOffsetAddress<const byte*>(start);
   1142     VIXL_ASSERT(start < end);
   1143     uint32_t result_size = end - start;
   1144 
   1145     if (Test::generate_test_trace()) {
   1146       // Print the result bytes.
   1147       printf("const byte kInstruction_%s_%s[] = {\n",
   1148              mnemonic,
   1149              kTests[i].identifier);
   1150       for (uint32_t j = 0; j < result_size; j++) {
   1151         if (j == 0) {
   1152           printf("  0x%02" PRIx8, result_ptr[j]);
   1153         } else {
   1154           printf(", 0x%02" PRIx8, result_ptr[j]);
   1155         }
   1156       }
   1157       // This comment is meant to be used by external tools to validate
   1158       // the encoding. We can parse the comment to figure out what
   1159       // instruction this corresponds to.
   1160       if (kTests[i].in_it_block) {
   1161         printf(" // It %s; %s %s\n};\n",
   1162                kTests[i].it_condition.GetName(),
   1163                mnemonic,
   1164                kTests[i].operands_description);
   1165       } else {
   1166         printf(" // %s %s\n};\n", mnemonic, kTests[i].operands_description);
   1167       }
   1168     } else {
   1169       // Check we've emitted the exact same encoding as present in the
   1170       // trace file. Only print up to `kErrorReportLimit` errors.
   1171       if (((result_size != reference[i].size) ||
   1172            (memcmp(result_ptr, reference[i].encoding, reference[i].size) !=
   1173             0)) &&
   1174           (++total_error_count <= kErrorReportLimit)) {
   1175         printf("Error when testing \"%s\" with operands \"%s\":\n",
   1176                mnemonic,
   1177                kTests[i].operands_description);
   1178         printf("  Expected: ");
   1179         for (uint32_t j = 0; j < reference[i].size; j++) {
   1180           if (j == 0) {
   1181             printf("0x%02" PRIx8, reference[i].encoding[j]);
   1182           } else {
   1183             printf(", 0x%02" PRIx8, reference[i].encoding[j]);
   1184           }
   1185         }
   1186         printf("\n");
   1187         printf("  Found:    ");
   1188         for (uint32_t j = 0; j < result_size; j++) {
   1189           if (j == 0) {
   1190             printf("0x%02" PRIx8, result_ptr[j]);
   1191           } else {
   1192             printf(", 0x%02" PRIx8, result_ptr[j]);
   1193           }
   1194         }
   1195         printf("\n");
   1196       }
   1197     }
   1198   }
   1199 
   1200   masm.FinalizeCode();
   1201 
   1202   if (Test::generate_test_trace()) {
   1203     // Finalize the trace file by writing the final `TestResult` array
   1204     // which links all generated instruction encodings.
   1205     printf("const TestResult kReference%s[] = {\n", mnemonic);
   1206     for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
   1207       printf("  {\n");
   1208       printf("    ARRAY_SIZE(kInstruction_%s_%s),\n",
   1209              mnemonic,
   1210              kTests[i].identifier);
   1211       printf("    kInstruction_%s_%s,\n", mnemonic, kTests[i].identifier);
   1212       printf("  },\n");
   1213     }
   1214     printf("};\n");
   1215   } else {
   1216     if (total_error_count > kErrorReportLimit) {
   1217       printf("%u other errors follow.\n",
   1218              total_error_count - kErrorReportLimit);
   1219     }
   1220     // Crash if the test failed.
   1221     VIXL_CHECK(total_error_count == 0);
   1222   }
   1223 }
   1224 
   1225 // Instantiate tests for each instruction in the list.
   1226 #define TEST(mnemonic)                                                       \
   1227   void Test_##mnemonic() {                                                   \
   1228     TestHelper(&MacroAssembler::mnemonic, #mnemonic, kReference##mnemonic);  \
   1229   }                                                                          \
   1230   Test test_##mnemonic(                                                      \
   1231       "AARCH32_ASSEMBLER_COND_RDLOW_RNLOW_OPERAND_IMMEDIATE_T32_IMM3_IN_IT_" \
   1232       "BLOCK_" #mnemonic,                                                    \
   1233       &Test_##mnemonic);
   1234 FOREACH_INSTRUCTION(TEST)
   1235 #undef TEST
   1236 
   1237 }  // namespace
   1238 #endif
   1239 
   1240 }  // namespace aarch32
   1241 }  // namespace vixl
   1242