135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// Copyright 2016, VIXL authors
235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// All rights reserved.
335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley//
435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// Redistribution and use in source and binary forms, with or without
535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// modification, are permitted provided that the following conditions are met:
635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley//
735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley//   * Redistributions of source code must retain the above copyright notice,
835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley//     this list of conditions and the following disclaimer.
935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley//   * Redistributions in binary form must reproduce the above copyright notice,
1035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley//     this list of conditions and the following disclaimer in the documentation
1135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley//     and/or other materials provided with the distribution.
1235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley//   * Neither the name of ARM Limited nor the names of its contributors may be
1335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley//     used to endorse or promote products derived from this software without
1435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley//     specific prior written permission.
1535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley//
1635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
1735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
2035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
2335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
2435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
2735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
2835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// -----------------------------------------------------------------------------
2935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// This file is auto generated from the
3035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// test/aarch32/config/template-macro-assembler-aarch32.cc.in template file
3135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// using tools/generate_tests.py.
3235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley//
3335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// PLEASE DO NOT EDIT.
3435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// -----------------------------------------------------------------------------
3535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
3635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
3735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley#include <iostream>
3835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley#include <map>
3935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
4035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley#include "test-runner.h"
4135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
4235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley#include "test-utils.h"
4335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley#include "test-utils-aarch32.h"
4435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
4535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley#include "aarch32/assembler-aarch32.h"
4635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley#include "aarch32/disasm-aarch32.h"
4735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley#include "aarch32/macro-assembler-aarch32.h"
4835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
4935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley#define BUF_SIZE (4096)
5035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
5135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramleynamespace vixl {
5235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramleynamespace aarch32 {
5335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
5435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// List of instruction mnemonics.
5535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley#define FOREACH_INSTRUCTION(M) \
5635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  M(Clz)                       \
5735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  M(Rbit)                      \
5835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  M(Rev)                       \
5935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  M(Rev16)                     \
6035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  M(Revsh)                     \
6135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  M(Rrx)                       \
6235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  M(Rrxs)
6335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
6435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
6535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// The following definitions are defined again in each generated test, therefore
6635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// we need to place them in an anomymous namespace. It expresses that they are
6735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// local to this file only, and the compiler is not allowed to share these types
6835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// across test files during template instantiation. Specifically, `Operands` has
6935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// various layouts across generated tests so it absolutely cannot be shared.
7035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
719a9331faeba996d6c85e6e2a6355ccfc22c6cab6Rodolph Perfetta#ifdef VIXL_INCLUDE_TARGET_T32
7235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramleynamespace {
7335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
7435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// Values to be passed to the assembler to produce the instruction under test.
7535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramleystruct Operands {
7635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  Condition cond;
7735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  Register rd;
7835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  Register rn;
7935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley};
8035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
8135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// This structure contains all data needed to test one specific
8235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// instruction.
8335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramleystruct TestData {
8435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  // The `operands` field represents what to pass to the assembler to
8535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  // produce the instruction.
8635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  Operands operands;
8735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  // Description of the operands, used for error reporting.
8835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  const char* operands_description;
8935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  // Unique identifier, used for generating traces.
9035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  const char* identifier;
9135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley};
9235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
9335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// Each element of this array produce one instruction encoding.
940b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveliconst TestData kTests[] = {{{cs, r12, r1}, "cs, r12, r1", "cs_r12_r1"},
950b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r6, r12}, "hi, r6, r12", "hi_r6_r12"},
960b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r11, r10}, "lt, r11, r10", "lt_r11_r10"},
970b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r10, r8}, "vs, r10, r8", "vs_r10_r8"},
980b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r5, r8}, "pl, r5, r8", "pl_r5_r8"},
990b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r14, r14}, "ls, r14, r14", "ls_r14_r14"},
1000b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r8, r6}, "gt, r8, r6", "gt_r8_r6"},
1010b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r7, r11}, "vc, r7, r11", "vc_r7_r11"},
1020b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r4, r12}, "pl, r4, r12", "pl_r4_r12"},
1030b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r12, r12}, "gt, r12, r12", "gt_r12_r12"},
10435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{ne, r8, r4}, "ne, r8, r4", "ne_r8_r4"},
1050b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r1, r11}, "le, r1, r11", "le_r1_r11"},
1060b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r4, r10}, "cc, r4, r10", "cc_r4_r10"},
1070b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r14, r0}, "gt, r14, r0", "gt_r14_r0"},
1080b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r2, r11}, "cs, r2, r11", "cs_r2_r11"},
1090b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r3, r12}, "al, r3, r12", "al_r3_r12"},
1100b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r6, r0}, "hi, r6, r0", "hi_r6_r0"},
1110b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r10, r10}, "ls, r10, r10", "ls_r10_r10"},
1120b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r4, r8}, "ls, r4, r8", "ls_r4_r8"},
1130b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r8, r0}, "le, r8, r0", "le_r8_r0"},
1140b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r5, r3}, "pl, r5, r3", "pl_r5_r3"},
1150b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r8, r5}, "ls, r8, r5", "ls_r8_r5"},
1160b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r0, r10}, "ge, r0, r10", "ge_r0_r10"},
1170b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r10, r6}, "lt, r10, r6", "lt_r10_r6"},
11835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{ne, r9, r9}, "ne, r9, r9", "ne_r9_r9"},
1190b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r5, r0}, "hi, r5, r0", "hi_r5_r0"},
1200b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r10, r6}, "pl, r10, r6", "pl_r10_r6"},
1210b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r1, r3}, "vs, r1, r3", "vs_r1_r3"},
1220b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r9, r8}, "vs, r9, r8", "vs_r9_r8"},
1230b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r2, r10}, "cc, r2, r10", "cc_r2_r10"},
1240b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r11, r3}, "cs, r11, r3", "cs_r11_r3"},
1250b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r8, r2}, "hi, r8, r2", "hi_r8_r2"},
1260b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r6, r0}, "pl, r6, r0", "pl_r6_r0"},
1270b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r9, r2}, "hi, r9, r2", "hi_r9_r2"},
1280b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r14, r11}, "al, r14, r11", "al_r14_r11"},
1290b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r8, r13}, "eq, r8, r13", "eq_r8_r13"},
1300b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r12, r2}, "ge, r12, r2", "ge_r12_r2"},
1310b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r2, r6}, "cc, r2, r6", "cc_r2_r6"},
13235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{ne, r13, r9}, "ne, r13, r9", "ne_r13_r9"},
13335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{ne, r13, r10}, "ne, r13, r10", "ne_r13_r10"},
1340b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r10, r9}, "mi, r10, r9", "mi_r10_r9"},
1350b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r13, r12}, "lt, r13, r12", "lt_r13_r12"},
1360b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r14, r3}, "lt, r14, r3", "lt_r14_r3"},
1370b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r12, r14}, "mi, r12, r14", "mi_r12_r14"},
1380b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r11, r2}, "vs, r11, r2", "vs_r11_r2"},
1390b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r11, r0}, "ls, r11, r0", "ls_r11_r0"},
1400b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r10, r9}, "gt, r10, r9", "gt_r10_r9"},
1410b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r10, r12}, "le, r10, r12", "le_r10_r12"},
1420b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r0, r14}, "ge, r0, r14", "ge_r0_r14"},
1430b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r5, r8}, "mi, r5, r8", "mi_r5_r8"},
1440b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r4, r11}, "vs, r4, r11", "vs_r4_r11"},
1450b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r7, r12}, "lt, r7, r12", "lt_r7_r12"},
1460b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r2, r8}, "gt, r2, r8", "gt_r2_r8"},
1470b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r5, r7}, "gt, r5, r7", "gt_r5_r7"},
1480b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r6, r3}, "pl, r6, r3", "pl_r6_r3"},
1490b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r2, r12}, "ne, r2, r12", "ne_r2_r12"},
1500b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r11, r11}, "hi, r11, r11", "hi_r11_r11"},
1510b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r4, r14}, "vs, r4, r14", "vs_r4_r14"},
1520b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r13, r1}, "vs, r13, r1", "vs_r13_r1"},
15335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{cs, r4, r3}, "cs, r4, r3", "cs_r4_r3"},
1540b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r13, r6}, "eq, r13, r6", "eq_r13_r6"},
1550b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r11, r14}, "gt, r11, r14", "gt_r11_r14"},
1560b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r14, r4}, "vc, r14, r4", "vc_r14_r4"},
1570b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r1, r10}, "vc, r1, r10", "vc_r1_r10"},
1580b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r10, r3}, "mi, r10, r3", "mi_r10_r3"},
1590b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r9, r3}, "vs, r9, r3", "vs_r9_r3"},
1600b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r14, r5}, "vc, r14, r5", "vc_r14_r5"},
1610b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r9, r1}, "ne, r9, r1", "ne_r9_r1"},
1620b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r9, r6}, "al, r9, r6", "al_r9_r6"},
1630b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r7, r8}, "vc, r7, r8", "vc_r7_r8"},
1640b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r6, r9}, "ls, r6, r9", "ls_r6_r9"},
1650b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r14, r2}, "le, r14, r2", "le_r14_r2"},
1660b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r9, r13}, "ls, r9, r13", "ls_r9_r13"},
1670b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r1, r5}, "eq, r1, r5", "eq_r1_r5"},
1680b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r9, r2}, "le, r9, r2", "le_r9_r2"},
1690b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r2, r1}, "eq, r2, r1", "eq_r2_r1"},
1700b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r9, r11}, "ls, r9, r11", "ls_r9_r11"},
1710b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r7, r13}, "lt, r7, r13", "lt_r7_r13"},
1720b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r8, r7}, "cc, r8, r7", "cc_r8_r7"},
1730b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r5, r1}, "ls, r5, r1", "ls_r5_r1"},
1740b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r1, r9}, "le, r1, r9", "le_r1_r9"},
1750b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r8, r14}, "ls, r8, r14", "ls_r8_r14"},
1760b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r9, r1}, "le, r9, r1", "le_r9_r1"},
1770b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r1, r6}, "gt, r1, r6", "gt_r1_r6"},
1780b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r11, r10}, "gt, r11, r10", "gt_r11_r10"},
1790b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r0, r12}, "hi, r0, r12", "hi_r0_r12"},
1800b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r1, r7}, "gt, r1, r7", "gt_r1_r7"},
1810b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r7, r1}, "mi, r7, r1", "mi_r7_r1"},
1820b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r7, r0}, "mi, r7, r0", "mi_r7_r0"},
1830b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r1, r3}, "ls, r1, r3", "ls_r1_r3"},
1840b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r13, r3}, "mi, r13, r3", "mi_r13_r3"},
1850b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r4, r3}, "eq, r4, r3", "eq_r4_r3"},
1860b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r14, r9}, "vc, r14, r9", "vc_r14_r9"},
1870b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r3, r1}, "pl, r3, r1", "pl_r3_r1"},
1880b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r0, r2}, "mi, r0, r2", "mi_r0_r2"},
1890b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r2, r7}, "hi, r2, r7", "hi_r2_r7"},
1900b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r13, r12}, "hi, r13, r12", "hi_r13_r12"},
1910b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r12, r8}, "ls, r12, r8", "ls_r12_r8"},
1920b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r5, r6}, "ne, r5, r6", "ne_r5_r6"},
1930b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r5, r4}, "pl, r5, r4", "pl_r5_r4"},
1940b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r1, r6}, "ge, r1, r6", "ge_r1_r6"},
1950b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r8, r10}, "eq, r8, r10", "eq_r8_r10"},
19635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{cs, r5, r4}, "cs, r5, r4", "cs_r5_r4"},
1970b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r11, r6}, "eq, r11, r6", "eq_r11_r6"},
19835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{cs, r13, r3}, "cs, r13, r3", "cs_r13_r3"},
1990b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r2, r8}, "pl, r2, r8", "pl_r2_r8"},
2000b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r10, r0}, "gt, r10, r0", "gt_r10_r0"},
2010b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r4, r10}, "lt, r4, r10", "lt_r4_r10"},
2020b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r14, r14}, "vs, r14, r14", "vs_r14_r14"},
2030b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r0, r7}, "hi, r0, r7", "hi_r0_r7"},
2040b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r9, r6}, "cc, r9, r6", "cc_r9_r6"},
2050b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r7, r13}, "ne, r7, r13", "ne_r7_r13"},
2060b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r2, r6}, "eq, r2, r6", "eq_r2_r6"},
2070b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r12, r12}, "cs, r12, r12", "cs_r12_r12"},
2080b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r3, r10}, "mi, r3, r10", "mi_r3_r10"},
2090b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r6, r13}, "le, r6, r13", "le_r6_r13"},
2100b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r2, r1}, "al, r2, r1", "al_r2_r1"},
2110b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r3, r4}, "le, r3, r4", "le_r3_r4"},
2120b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r4, r4}, "pl, r4, r4", "pl_r4_r4"},
2130b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r12, r3}, "lt, r12, r3", "lt_r12_r3"},
2140b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r7, r4}, "ls, r7, r4", "ls_r7_r4"},
2150b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r9, r4}, "le, r9, r4", "le_r9_r4"},
2160b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r13, r3}, "vc, r13, r3", "vc_r13_r3"},
2170b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r8, r8}, "vc, r8, r8", "vc_r8_r8"},
2180b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r2, r8}, "ge, r2, r8", "ge_r2_r8"},
2190b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r11, r13}, "le, r11, r13", "le_r11_r13"},
2200b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r1, r5}, "le, r1, r5", "le_r1_r5"},
2210b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r9, r12}, "ge, r9, r12", "ge_r9_r12"},
22235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{cs, r14, r14}, "cs, r14, r14", "cs_r14_r14"},
22335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{cc, r1, r0}, "cc, r1, r0", "cc_r1_r0"},
2240b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r3, r0}, "ge, r3, r0", "ge_r3_r0"},
2250b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r10, r0}, "al, r10, r0", "al_r10_r0"},
22635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{cc, r11, r10}, "cc, r11, r10", "cc_r11_r10"},
22735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{mi, r11, r11}, "mi, r11, r11", "mi_r11_r11"},
2280b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r12, r7}, "ne, r12, r7", "ne_r12_r7"},
2290b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r4, r12}, "lt, r4, r12", "lt_r4_r12"},
2300b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r14, r5}, "gt, r14, r5", "gt_r14_r5"},
2310b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r1, r7}, "ge, r1, r7", "ge_r1_r7"},
2320b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r7, r0}, "al, r7, r0", "al_r7_r0"},
2330b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r2, r0}, "ls, r2, r0", "ls_r2_r0"},
23435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{pl, r6, r11}, "pl, r6, r11", "pl_r6_r11"},
2350b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r0, r6}, "vc, r0, r6", "vc_r0_r6"},
2360b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r6, r9}, "pl, r6, r9", "pl_r6_r9"},
2370b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r8, r1}, "vs, r8, r1", "vs_r8_r1"},
2380b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r1, r6}, "cs, r1, r6", "cs_r1_r6"},
2390b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r4, r11}, "hi, r4, r11", "hi_r4_r11"},
2400b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r5, r5}, "gt, r5, r5", "gt_r5_r5"},
2410b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r3, r4}, "al, r3, r4", "al_r3_r4"},
2420b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r11, r12}, "ge, r11, r12", "ge_r11_r12"},
2430b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r14, r2}, "cc, r14, r2", "cc_r14_r2"},
2440b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r2, r4}, "ge, r2, r4", "ge_r2_r4"},
2450b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r5, r11}, "lt, r5, r11", "lt_r5_r11"},
2460b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r11, r14}, "mi, r11, r14", "mi_r11_r14"},
2470b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r3, r3}, "ne, r3, r3", "ne_r3_r3"},
24835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{pl, r14, r0}, "pl, r14, r0", "pl_r14_r0"},
2490b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r4, r10}, "vc, r4, r10", "vc_r4_r10"},
25035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{vs, r6, r8}, "vs, r6, r8", "vs_r6_r8"},
25135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{vc, r4, r7}, "vc, r4, r7", "vc_r4_r7"},
2520b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r11, r10}, "cs, r11, r10", "cs_r11_r10"},
2530b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r11, r8}, "eq, r11, r8", "eq_r11_r8"},
2540b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r9, r2}, "ne, r9, r2", "ne_r9_r2"},
2550b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r9, r7}, "hi, r9, r7", "hi_r9_r7"},
2560b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r0, r6}, "lt, r0, r6", "lt_r0_r6"},
25735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{vc, r5, r8}, "vc, r5, r8", "vc_r5_r8"},
2580b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r3, r1}, "gt, r3, r1", "gt_r3_r1"},
2590b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r3, r5}, "pl, r3, r5", "pl_r3_r5"},
2600b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r11, r5}, "al, r11, r5", "al_r11_r5"},
2610b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r8, r14}, "hi, r8, r14", "hi_r8_r14"},
2620b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r5, r4}, "le, r5, r4", "le_r5_r4"},
2630b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r13, r3}, "ge, r13, r3", "ge_r13_r3"},
2640b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r7, r14}, "pl, r7, r14", "pl_r7_r14"},
2650b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r6, r9}, "cs, r6, r9", "cs_r6_r9"},
2660b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r8, r12}, "lt, r8, r12", "lt_r8_r12"},
2670b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r12, r0}, "cc, r12, r0", "cc_r12_r0"},
2680b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r14, r13}, "mi, r14, r13", "mi_r14_r13"},
2690b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r12, r13}, "pl, r12, r13", "pl_r12_r13"},
2700b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r4, r8}, "al, r4, r8", "al_r4_r8"},
2710b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r5, r11}, "ls, r5, r11", "ls_r5_r11"},
2720b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r11, r3}, "ge, r11, r3", "ge_r11_r3"},
2730b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r1, r0}, "le, r1, r0", "le_r1_r0"},
2740b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r14, r4}, "gt, r14, r4", "gt_r14_r4"},
2750b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r3, r14}, "ne, r3, r14", "ne_r3_r14"},
2760b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r3, r8}, "cc, r3, r8", "cc_r3_r8"},
2770b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r7, r10}, "eq, r7, r10", "eq_r7_r10"},
2780b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r0, r10}, "pl, r0, r10", "pl_r0_r10"},
2790b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r6, r13}, "mi, r6, r13", "mi_r6_r13"},
2800b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r10, r5}, "gt, r10, r5", "gt_r10_r5"},
2810b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r0, r1}, "ne, r0, r1", "ne_r0_r1"},
2820b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r4, r8}, "ge, r4, r8", "ge_r4_r8"},
2830b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r3, r7}, "cs, r3, r7", "cs_r3_r7"},
2840b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r2, r12}, "pl, r2, r12", "pl_r2_r12"},
2850b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r9, r12}, "ls, r9, r12", "ls_r9_r12"},
2860b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r4, r9}, "ge, r4, r9", "ge_r4_r9"},
2870b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r7, r2}, "lt, r7, r2", "lt_r7_r2"},
2880b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r10, r10}, "hi, r10, r10", "hi_r10_r10"},
2890b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r1, r7}, "ls, r1, r7", "ls_r1_r7"},
2900b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r1, r12}, "vs, r1, r12", "vs_r1_r12"},
2910b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r9, r14}, "ge, r9, r14", "ge_r9_r14"},
2920b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r6, r4}, "pl, r6, r4", "pl_r6_r4"},
2930b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r3, r2}, "ls, r3, r2", "ls_r3_r2"},
2940b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r4, r4}, "cs, r4, r4", "cs_r4_r4"},
2950b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r6, r2}, "eq, r6, r2", "eq_r6_r2"},
2960b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r14, r0}, "ge, r14, r0", "ge_r14_r0"},
2970b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r11, r6}, "le, r11, r6", "le_r11_r6"},
2980b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r0, r0}, "vs, r0, r0", "vs_r0_r0"},
2990b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r4, r6}, "vs, r4, r6", "vs_r4_r6"},
3000b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r6, r10}, "gt, r6, r10", "gt_r6_r10"},
30135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{vc, r12, r7}, "vc, r12, r7", "vc_r12_r7"},
3020b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r8, r3}, "gt, r8, r3", "gt_r8_r3"},
3030b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r14, r4}, "hi, r14, r4", "hi_r14_r4"},
30435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{hi, r9, r14}, "hi, r9, r14", "hi_r9_r14"},
3050b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r6, r1}, "vs, r6, r1", "vs_r6_r1"},
3060b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r5, r4}, "hi, r5, r4", "hi_r5_r4"},
3070b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r10, r14}, "lt, r10, r14", "lt_r10_r14"},
3080b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r8, r10}, "cc, r8, r10", "cc_r8_r10"},
3090b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r11, r0}, "lt, r11, r0", "lt_r11_r0"},
3100b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r4, r12}, "ge, r4, r12", "ge_r4_r12"},
3110b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r5, r7}, "cc, r5, r7", "cc_r5_r7"},
3120b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r3, r9}, "gt, r3, r9", "gt_r3_r9"},
3130b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r11, r5}, "vc, r11, r5", "vc_r11_r5"},
3140b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r7, r1}, "lt, r7, r1", "lt_r7_r1"},
3150b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r1, r8}, "lt, r1, r8", "lt_r1_r8"},
31635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{hi, r11, r13}, "hi, r11, r13", "hi_r11_r13"},
3170b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r10, r2}, "vs, r10, r2", "vs_r10_r2"},
3180b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r1, r10}, "ne, r1, r10", "ne_r1_r10"},
3190b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r10, r0}, "vc, r10, r0", "vc_r10_r0"},
3200b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r2, r2}, "al, r2, r2", "al_r2_r2"},
3210b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r7, r8}, "ne, r7, r8", "ne_r7_r8"},
32235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{hi, r11, r14}, "hi, r11, r14", "hi_r11_r14"},
3230b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r6, r14}, "ne, r6, r14", "ne_r6_r14"},
3240b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r8, r5}, "ge, r8, r5", "ge_r8_r5"},
3250b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r7, r3}, "vs, r7, r3", "vs_r7_r3"},
3260b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r14, r13}, "ne, r14, r13", "ne_r14_r13"},
32735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{hi, r12, r11}, "hi, r12, r11", "hi_r12_r11"},
32835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{ls, r11, r9}, "ls, r11, r9", "ls_r11_r9"},
3290b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r12, r7}, "mi, r12, r7", "mi_r12_r7"},
3300b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r8, r8}, "cc, r8, r8", "cc_r8_r8"},
33135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{ls, r14, r12}, "ls, r14, r12", "ls_r14_r12"},
3320b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r3, r6}, "ls, r3, r6", "ls_r3_r6"},
3330b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r7, r8}, "hi, r7, r8", "hi_r7_r8"},
3340b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r4, r10}, "vs, r4, r10", "vs_r4_r10"},
3350b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r12, r1}, "ne, r12, r1", "ne_r12_r1"},
3360b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r12, r4}, "vs, r12, r4", "vs_r12_r4"},
3370b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r5, r5}, "hi, r5, r5", "hi_r5_r5"},
3380b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r8, r8}, "gt, r8, r8", "gt_r8_r8"},
3390b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r10, r10}, "lt, r10, r10", "lt_r10_r10"},
3400b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r13, r4}, "vs, r13, r4", "vs_r13_r4"},
3410b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r8, r3}, "mi, r8, r3", "mi_r8_r3"},
3420b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r6, r13}, "eq, r6, r13", "eq_r6_r13"},
3430b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r2, r0}, "al, r2, r0", "al_r2_r0"},
3440b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r6, r12}, "ls, r6, r12", "ls_r6_r12"},
3450b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r1, r4}, "vs, r1, r4", "vs_r1_r4"},
3460b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r11, r1}, "vc, r11, r1", "vc_r11_r1"},
3470b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r9, r10}, "ne, r9, r10", "ne_r9_r10"},
3480b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r3, r10}, "ne, r3, r10", "ne_r3_r10"},
3490b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r7, r10}, "hi, r7, r10", "hi_r7_r10"},
3500b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r4, r10}, "pl, r4, r10", "pl_r4_r10"},
3510b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r7, r1}, "le, r7, r1", "le_r7_r1"},
3520b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r13, r10}, "gt, r13, r10", "gt_r13_r10"},
3530b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r4, r14}, "lt, r4, r14", "lt_r4_r14"},
3540b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r10, r1}, "al, r10, r1", "al_r10_r1"},
3550b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r6, r12}, "mi, r6, r12", "mi_r6_r12"},
3560b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r13, r9}, "eq, r13, r9", "eq_r13_r9"},
35735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{ge, r11, r4}, "ge, r11, r4", "ge_r11_r4"},
3580b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r1, r12}, "hi, r1, r12", "hi_r1_r12"},
3590b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r0, r1}, "ge, r0, r1", "ge_r0_r1"},
36035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{lt, r2, r3}, "lt, r2, r3", "lt_r2_r3"},
3610b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r12, r9}, "al, r12, r9", "al_r12_r9"},
3620b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r2, r10}, "hi, r2, r10", "hi_r2_r10"},
3630b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r14, r11}, "mi, r14, r11", "mi_r14_r11"},
3640b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r3, r10}, "pl, r3, r10", "pl_r3_r10"},
3650b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r1, r6}, "vs, r1, r6", "vs_r1_r6"},
3660b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r7, r6}, "al, r7, r6", "al_r7_r6"},
3670b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r6, r8}, "ge, r6, r8", "ge_r6_r8"},
3680b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r3, r3}, "eq, r3, r3", "eq_r3_r3"},
3690b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r14, r4}, "ne, r14, r4", "ne_r14_r4"},
3700b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r13, r10}, "vc, r13, r10", "vc_r13_r10"},
3710b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r3, r12}, "mi, r3, r12", "mi_r3_r12"},
3720b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r9, r1}, "pl, r9, r1", "pl_r9_r1"},
3730b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r14, r14}, "hi, r14, r14", "hi_r14_r14"},
3740b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r0, r9}, "ne, r0, r9", "ne_r0_r9"},
3750b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r1, r1}, "mi, r1, r1", "mi_r1_r1"},
3760b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r7, r2}, "hi, r7, r2", "hi_r7_r2"},
3770b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r2, r3}, "gt, r2, r3", "gt_r2_r3"},
3780b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r2, r0}, "eq, r2, r0", "eq_r2_r0"},
3790b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r10, r12}, "vs, r10, r12", "vs_r10_r12"},
3800b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r11, r7}, "gt, r11, r7", "gt_r11_r7"},
3810b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r13, r2}, "vs, r13, r2", "vs_r13_r2"},
3820b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r11, r12}, "ls, r11, r12", "ls_r11_r12"},
3830b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r8, r8}, "al, r8, r8", "al_r8_r8"},
3840b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r6, r10}, "hi, r6, r10", "hi_r6_r10"},
3850b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r5, r1}, "vs, r5, r1", "vs_r5_r1"},
3860b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r0, r10}, "ls, r0, r10", "ls_r0_r10"},
3870b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r0, r1}, "gt, r0, r1", "gt_r0_r1"},
3880b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r11, r12}, "ne, r11, r12", "ne_r11_r12"},
3890b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r13, r5}, "ne, r13, r5", "ne_r13_r5"},
3900b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r0, r12}, "mi, r0, r12", "mi_r0_r12"},
3910b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r11, r6}, "lt, r11, r6", "lt_r11_r6"},
3920b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r11, r14}, "eq, r11, r14", "eq_r11_r14"},
3930b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r11, r10}, "vc, r11, r10", "vc_r11_r10"},
3940b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r3, r3}, "cs, r3, r3", "cs_r3_r3"},
3950b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r12, r2}, "le, r12, r2", "le_r12_r2"},
3960b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r13, r8}, "hi, r13, r8", "hi_r13_r8"},
3970b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r6, r6}, "pl, r6, r6", "pl_r6_r6"},
3980b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r4, r5}, "al, r4, r5", "al_r4_r5"},
3990b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r1, r0}, "hi, r1, r0", "hi_r1_r0"},
4000b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r10, r11}, "ls, r10, r11", "ls_r10_r11"},
4010b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r8, r7}, "al, r8, r7", "al_r8_r7"},
4020b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r7, r1}, "vc, r7, r1", "vc_r7_r1"},
4030b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r7, r14}, "ne, r7, r14", "ne_r7_r14"},
40435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{lt, r5, r9}, "lt, r5, r9", "lt_r5_r9"},
4050b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r13, r8}, "al, r13, r8", "al_r13_r8"},
4060b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r6, r14}, "ls, r6, r14", "ls_r6_r14"},
4070b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r12, r0}, "eq, r12, r0", "eq_r12_r0"},
4080b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r8, r14}, "mi, r8, r14", "mi_r8_r14"},
4090b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r13, r2}, "hi, r13, r2", "hi_r13_r2"},
4100b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r13, r2}, "al, r13, r2", "al_r13_r2"},
4110b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r8, r9}, "vs, r8, r9", "vs_r8_r9"},
4120b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r6, r2}, "cc, r6, r2", "cc_r6_r2"},
41335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{lt, r8, r0}, "lt, r8, r0", "lt_r8_r0"},
4140b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r3, r13}, "ls, r3, r13", "ls_r3_r13"},
4150b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r10, r14}, "gt, r10, r14", "gt_r10_r14"},
4160b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r9, r8}, "pl, r9, r8", "pl_r9_r8"},
4170b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r14, r11}, "pl, r14, r11", "pl_r14_r11"},
41835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{lt, r9, r3}, "lt, r9, r3", "lt_r9_r3"},
4190b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r9, r0}, "hi, r9, r0", "hi_r9_r0"},
4200b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r9, r3}, "cc, r9, r3", "cc_r9_r3"},
4210b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r10, r14}, "ge, r10, r14", "ge_r10_r14"},
4220b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r2, r1}, "vs, r2, r1", "vs_r2_r1"},
4230b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r4, r13}, "vc, r4, r13", "vc_r4_r13"},
4240b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r1, r9}, "ls, r1, r9", "ls_r1_r9"},
42535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{lt, r13, r11}, "lt, r13, r11", "lt_r13_r11"},
4260b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r2, r10}, "cs, r2, r10", "cs_r2_r10"},
4270b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r0, r13}, "le, r0, r13", "le_r0_r13"},
4280b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r13, r11}, "al, r13, r11", "al_r13_r11"},
4290b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r5, r2}, "eq, r5, r2", "eq_r5_r2"},
4300b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r5, r12}, "vs, r5, r12", "vs_r5_r12"},
4310b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r12, r0}, "al, r12, r0", "al_r12_r0"},
4320b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r13, r9}, "le, r13, r9", "le_r13_r9"},
4330b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r14, r4}, "cs, r14, r4", "cs_r14_r4"},
4340b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r5, r7}, "ne, r5, r7", "ne_r5_r7"},
4350b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r6, r6}, "al, r6, r6", "al_r6_r6"},
43635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{gt, r4, r8}, "gt, r4, r8", "gt_r4_r8"},
43735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{gt, r12, r8}, "gt, r12, r8", "gt_r12_r8"},
4380b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r4, r12}, "eq, r4, r12", "eq_r4_r12"},
4390b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r7, r13}, "cs, r7, r13", "cs_r7_r13"},
4400b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r2, r4}, "cs, r2, r4", "cs_r2_r4"},
4410b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r10, r3}, "al, r10, r3", "al_r10_r3"},
4420b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r8, r9}, "cs, r8, r9", "cs_r8_r9"},
4430b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r1, r12}, "cs, r1, r12", "cs_r1_r12"},
44435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{gt, r13, r0}, "gt, r13, r0", "gt_r13_r0"},
4450b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r13, r12}, "vc, r13, r12", "vc_r13_r12"},
4460b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r12, r14}, "lt, r12, r14", "lt_r12_r14"},
4470b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r0, r1}, "lt, r0, r1", "lt_r0_r1"},
4480b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r10, r2}, "cc, r10, r2", "cc_r10_r2"},
44935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{le, r3, r5}, "le, r3, r5", "le_r3_r5"},
4500b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r2, r11}, "eq, r2, r11", "eq_r2_r11"},
4510b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r12, r4}, "al, r12, r4", "al_r12_r4"},
4520b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r6, r5}, "cs, r6, r5", "cs_r6_r5"},
4530b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r13, r10}, "hi, r13, r10", "hi_r13_r10"},
4540b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r4, r3}, "vs, r4, r3", "vs_r4_r3"},
4550b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r7, r9}, "ls, r7, r9", "ls_r7_r9"},
4560b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r14, r8}, "vs, r14, r8", "vs_r14_r8"},
4570b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r1, r0}, "cs, r1, r0", "cs_r1_r0"},
4580b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r10, r8}, "mi, r10, r8", "mi_r10_r8"},
4590b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r10, r4}, "ge, r10, r4", "ge_r10_r4"},
4600b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r5, r4}, "cc, r5, r4", "cc_r5_r4"},
4610b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r0, r7}, "lt, r0, r7", "lt_r0_r7"},
4620b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r14, r10}, "mi, r14, r10", "mi_r14_r10"},
4630b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r0, r14}, "mi, r0, r14", "mi_r0_r14"},
4640b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r14, r10}, "eq, r14, r10", "eq_r14_r10"},
4650b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r4, r4}, "ls, r4, r4", "ls_r4_r4"},
4660b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r14, r1}, "pl, r14, r1", "pl_r14_r1"},
4670b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r10, r8}, "eq, r10, r8", "eq_r10_r8"},
4680b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r10, r6}, "cs, r10, r6", "cs_r10_r6"},
4690b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r12, r2}, "al, r12, r2", "al_r12_r2"},
4700b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r12, r1}, "ls, r12, r1", "ls_r12_r1"},
4710b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r12, r11}, "eq, r12, r11", "eq_r12_r11"},
4720b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r4, r1}, "vc, r4, r1", "vc_r4_r1"},
4730b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r12, r2}, "vs, r12, r2", "vs_r12_r2"},
4740b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r11, r8}, "al, r11, r8", "al_r11_r8"},
4750b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r6, r13}, "hi, r6, r13", "hi_r6_r13"},
4760b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r2, r8}, "eq, r2, r8", "eq_r2_r8"},
4770b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r9, r5}, "cc, r9, r5", "cc_r9_r5"},
4780b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r9, r7}, "cc, r9, r7", "cc_r9_r7"},
4790b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r4, r6}, "lt, r4, r6", "lt_r4_r6"},
4800b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r14, r13}, "cc, r14, r13", "cc_r14_r13"},
4810b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r3, r2}, "vc, r3, r2", "vc_r3_r2"},
4820b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r6, r13}, "al, r6, r13", "al_r6_r13"},
4830b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r10, r10}, "vs, r10, r10", "vs_r10_r10"},
4840b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r6, r10}, "cs, r6, r10", "cs_r6_r10"},
4850b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r8, r12}, "cc, r8, r12", "cc_r8_r12"},
4860b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r7, r5}, "vs, r7, r5", "vs_r7_r5"},
4870b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r14, r10}, "pl, r14, r10", "pl_r14_r10"},
4880b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r1, r14}, "hi, r1, r14", "hi_r1_r14"},
4890b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r8, r12}, "vc, r8, r12", "vc_r8_r12"},
4900b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r2, r4}, "ls, r2, r4", "ls_r2_r4"},
4910b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r5, r12}, "mi, r5, r12", "mi_r5_r12"},
4920b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r6, r12}, "eq, r6, r12", "eq_r6_r12"},
4930b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r14, r9}, "lt, r14, r9", "lt_r14_r9"},
4940b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r11, r9}, "lt, r11, r9", "lt_r11_r9"},
4950b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r1, r9}, "ne, r1, r9", "ne_r1_r9"},
4960b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r11, r8}, "pl, r11, r8", "pl_r11_r8"},
4970b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r0, r6}, "ne, r0, r6", "ne_r0_r6"},
4980b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r4, r4}, "vs, r4, r4", "vs_r4_r4"},
4990b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r12, r9}, "ls, r12, r9", "ls_r12_r9"},
5000b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r9, r7}, "cs, r9, r7", "cs_r9_r7"},
5010b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r7, r2}, "ne, r7, r2", "ne_r7_r2"},
5020b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r9, r10}, "hi, r9, r10", "hi_r9_r10"},
5030b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r5, r2}, "gt, r5, r2", "gt_r5_r2"},
5040b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r4, r6}, "pl, r4, r6", "pl_r4_r6"},
5050b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r11, r8}, "lt, r11, r8", "lt_r11_r8"},
5060b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r13, r4}, "hi, r13, r4", "hi_r13_r4"},
5070b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r1, r10}, "le, r1, r10", "le_r1_r10"},
50835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{le, r11, r3}, "le, r11, r3", "le_r11_r3"},
5090b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r0, r11}, "pl, r0, r11", "pl_r0_r11"},
5100b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r7, r4}, "le, r7, r4", "le_r7_r4"},
5110b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r2, r11}, "le, r2, r11", "le_r2_r11"},
5120b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r1, r10}, "cc, r1, r10", "cc_r1_r10"},
5130b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r13, r14}, "gt, r13, r14", "gt_r13_r14"},
5140b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r10, r6}, "ls, r10, r6", "ls_r10_r6"},
5150b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r13, r4}, "ls, r13, r4", "ls_r13_r4"},
5160b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r12, r13}, "gt, r12, r13", "gt_r12_r13"},
5170b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r13, r7}, "pl, r13, r7", "pl_r13_r7"},
51835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{le, r14, r0}, "le, r14, r0", "le_r14_r0"},
5190b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r1, r4}, "gt, r1, r4", "gt_r1_r4"},
5200b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r3, r5}, "mi, r3, r5", "mi_r3_r5"},
5210b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r4, r0}, "vc, r4, r0", "vc_r4_r0"},
5220b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r4, r11}, "gt, r4, r11", "gt_r4_r11"},
5230b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r5, r3}, "vc, r5, r3", "vc_r5_r3"},
5240b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r4, r7}, "pl, r4, r7", "pl_r4_r7"},
5250b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r12, r6}, "al, r12, r6", "al_r12_r6"},
5260b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r2, r3}, "mi, r2, r3", "mi_r2_r3"},
5270b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r12, r4}, "lt, r12, r4", "lt_r12_r4"},
5280b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r10, r4}, "lt, r10, r4", "lt_r10_r4"},
5290b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r10, r8}, "hi, r10, r8", "hi_r10_r8"},
53035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{al, r0, r14}, "al, r0, r14", "al_r0_r14"},
5310b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r3, r3}, "cc, r3, r3", "cc_r3_r3"},
5320b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r10, r13}, "pl, r10, r13", "pl_r10_r13"},
5330b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r7, r8}, "lt, r7, r8", "lt_r7_r8"},
5340b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r12, r7}, "le, r12, r7", "le_r12_r7"},
5350b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r11, r8}, "ge, r11, r8", "ge_r11_r8"},
5360b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r10, r8}, "ls, r10, r8", "ls_r10_r8"},
5370b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r9, r1}, "vs, r9, r1", "vs_r9_r1"},
5380b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r10, r10}, "ne, r10, r10", "ne_r10_r10"},
53935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{al, r6, r4}, "al, r6, r4", "al_r6_r4"},
5400b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r10, r0}, "ls, r10, r0", "ls_r10_r0"},
5410b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r7, r1}, "eq, r7, r1", "eq_r7_r1"},
54235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{al, r11, r6}, "al, r11, r6", "al_r11_r6"},
5430b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r5, r10}, "ge, r5, r10", "ge_r5_r10"},
5440b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vs, r0, r8}, "vs, r0, r8", "vs_r0_r8"},
5450b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r2, r1}, "lt, r2, r1", "lt_r2_r1"},
5460b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r13, r2}, "le, r13, r2", "le_r13_r2"},
54735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                           {{al, r13, r6}, "al, r13, r6", "al_r13_r6"},
5480b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r12, r10}, "lt, r12, r10", "lt_r12_r10"},
5490b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r13, r1}, "al, r13, r1", "al_r13_r1"},
5500b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r8, r14}, "ge, r8, r14", "ge_r8_r14"},
5510b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r11, r6}, "mi, r11, r6", "mi_r11_r6"},
5520b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r12, r14}, "pl, r12, r14", "pl_r12_r14"},
5530b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r14, r9}, "ne, r14, r9", "ne_r14_r9"},
5540b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r3, r1}, "cc, r3, r1", "cc_r3_r1"},
5550b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r0, r8}, "ge, r0, r8", "ge_r0_r8"},
5560b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r7, r9}, "vc, r7, r9", "vc_r7_r9"},
5570b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r11, r4}, "gt, r11, r4", "gt_r11_r4"},
5580b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{mi, r4, r0}, "mi, r4, r0", "mi_r4_r0"},
5590b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r3, r11}, "ls, r3, r11", "ls_r3_r11"},
5600b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r14, r5}, "le, r14, r5", "le_r14_r5"},
5610b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r6, r7}, "ls, r6, r7", "ls_r6_r7"},
5620b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r4, r6}, "ne, r4, r6", "ne_r4_r6"},
5630b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r1, r14}, "cc, r1, r14", "cc_r1_r14"},
5640b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r11, r7}, "pl, r11, r7", "pl_r11_r7"},
5650b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r6, r5}, "vc, r6, r5", "vc_r6_r5"},
5660b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r1, r11}, "al, r1, r11", "al_r1_r11"},
5670b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r2, r13}, "ne, r2, r13", "ne_r2_r13"},
5680b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r14, r6}, "vc, r14, r6", "vc_r14_r6"},
5690b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{gt, r3, r8}, "gt, r3, r8", "gt_r3_r8"},
5700b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r1, r8}, "pl, r1, r8", "pl_r1_r8"},
5710b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r2, r14}, "vc, r2, r14", "vc_r2_r14"},
5720b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{pl, r12, r3}, "pl, r12, r3", "pl_r12_r3"},
5730b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r0, r12}, "ls, r0, r12", "ls_r0_r12"},
5740b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{le, r2, r1}, "le, r2, r1", "le_r2_r1"},
5750b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r13, r5}, "eq, r13, r5", "eq_r13_r5"},
5760b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r11, r11}, "al, r11, r11", "al_r11_r11"},
5770b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r9, r3}, "ls, r9, r3", "ls_r9_r3"},
5780b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r7, r12}, "ne, r7, r12", "ne_r7_r12"},
5790b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{al, r6, r2}, "al, r6, r2", "al_r6_r2"},
5800b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r7, r4}, "ne, r7, r4", "ne_r7_r4"},
5810b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r7, r5}, "vc, r7, r5", "vc_r7_r5"},
5820b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ne, r7, r1}, "ne, r7, r1", "ne_r7_r1"},
5830b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r5, r3}, "eq, r5, r3", "eq_r5_r3"},
5840b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cs, r3, r5}, "cs, r3, r5", "cs_r3_r5"},
5850b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r7, r4}, "lt, r7, r4", "lt_r7_r4"},
5860b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r4, r5}, "ls, r4, r5", "ls_r4_r5"},
5870b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{eq, r11, r2}, "eq, r11, r2", "eq_r11_r2"},
5880b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{hi, r2, r6}, "hi, r2, r6", "hi_r2_r6"},
5890b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{vc, r2, r3}, "vc, r2, r3", "vc_r2_r3"},
5900b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ls, r12, r12}, "ls, r12, r12", "ls_r12_r12"},
5910b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{lt, r8, r2}, "lt, r8, r2", "lt_r8_r2"},
5920b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{cc, r14, r8}, "cc, r14, r8", "cc_r14_r8"},
5930b7621d80653749f6b0c404eb8e79a40dde9a41eGeorgia Kouveli                           {{ge, r12, r8}, "ge, r12, r8", "ge_r12_r8"}};
59435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
59535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramleytypedef void (MacroAssembler::*Fn)(Condition cond, Register rd, Register rn);
59635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
59735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// Use a customised disassembler to label test cases.
59835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramleytypedef std::map<uint32_t, int> TestCaseSymbolMap;
59935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
60035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramleyclass TestDisassembler : public PrintDisassembler {
60135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley public:
60235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  TestDisassembler(std::ostream& os,  // NOLINT(runtime/references)
60335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                   const TestCaseSymbolMap& symbols,
60435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                   const char* mnemonic)
60535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley      : PrintDisassembler(os), symbols_(symbols), mnemonic_(mnemonic) {}
60635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
60735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  virtual void PrintCodeAddress(uint32_t pc) VIXL_OVERRIDE {
60835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    // Label test cases.
60935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    TestCaseSymbolMap::const_iterator symbol = symbols_.find(pc);
61035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    if (symbol != symbols_.end()) {
61135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley      int n = symbol->second;
61235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley      os().os() << "// " << mnemonic_ << "(" << kTests[n].operands_description
61335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                << ")" << std::endl;
61435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    }
61535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    // Print the code address as normal.
61635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    PrintDisassembler::PrintCodeAddress(pc);
61735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  }
61835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
61935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley private:
62035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  const TestCaseSymbolMap& symbols_;
62135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  const char* mnemonic_;
62235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley};
62335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
62435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramleyvoid TestHelper(Fn instruction, const char* mnemonic) {
62535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  MacroAssembler masm(BUF_SIZE);
62635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
62735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  masm.UseT32();
62835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
62935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  TestCaseSymbolMap symbols;
63035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
63135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  for (unsigned i = 0; i < ARRAY_SIZE(kTests); i++) {
63235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    if (Test::disassemble()) {
63335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley      // TODO: This will fail if the MacroAssembler generates no code. We can
63435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley      // fix this with multimap but then we must take care to print the labels
63535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley      // in the correct order. (Insertion order is only preserved for C++11.)
63635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley      symbols.insert(std::pair<uint32_t, int>(masm.GetCursorOffset(), i));
63735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    }
63835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
63935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    // Values to pass to the macro-assembler.
64035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    UseScratchRegisterScope scratch_registers(&masm);
64135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    Condition cond = kTests[i].operands.cond;
64235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    Register rd = kTests[i].operands.rd;
64335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    Register rn = kTests[i].operands.rn;
64435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    scratch_registers.Exclude(rd);
64535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    scratch_registers.Exclude(rn);
64635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
64735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    (masm.*instruction)(cond, rd, rn);
64835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
64935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    // For now, these test don't currently produce (or check) any trace; we just
65035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    // check that the MacroAssembler didn't crash.
65135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    // TODO: We could generate disassembly as a trace here, to check for sane
65235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    // output, though the trace would need to be manually checked.
65335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  }
65435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
65535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  masm.FinalizeCode();
65635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
65735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  if (Test::disassemble()) {
65835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    // Disassemble to stdout if given --disassemble on the command line.
65935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    TestDisassembler dis(std::cout, symbols, mnemonic);
66035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    if (masm.IsUsingT32()) {
66135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley      dis.DisassembleT32Buffer(masm.GetBuffer()->GetStartAddress<uint16_t*>(),
66235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                               masm.GetCursorOffset());
66335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    } else {
66435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley      dis.DisassembleA32Buffer(masm.GetBuffer()->GetStartAddress<uint32_t*>(),
66535f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                               masm.GetCursorOffset());
66635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley    }
66735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  }
66835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley}
66935f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
67035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley// Instantiate tests for each instruction in the list.
67135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley#define TEST(mnemonic)                                                         \
67235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  void Test_##mnemonic() { TestHelper(&MacroAssembler::mnemonic, #mnemonic); } \
67335f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley  Test test_##mnemonic("AARCH32_MACRO_ASSEMBLER_COND_RD_RN_T32_" #mnemonic,    \
67435f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley                       &Test_##mnemonic);
67535f2733f5e15d3dce1a035845da1e3f19c723904Jacob BramleyFOREACH_INSTRUCTION(TEST)
67635f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley#undef TEST
67735f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
67835f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley}  // namespace
6799a9331faeba996d6c85e6e2a6355ccfc22c6cab6Rodolph Perfetta#endif
68035f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley
68135f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley}  // namespace aarch32
68235f2733f5e15d3dce1a035845da1e3f19c723904Jacob Bramley}  // namespace vixl
683