odin-blend2d

Odin bindings to Blend2D
Log | Files | Refs | README | LICENSE

asmjit_test_assembler_a64.cpp (241305B)


      1 // This file is part of AsmJit project <https://asmjit.com>
      2 //
      3 // See <asmjit/core.h> or LICENSE.md for license and copyright information
      4 // SPDX-License-Identifier: Zlib
      5 
      6 #include <asmjit/core.h>
      7 #if !defined(ASMJIT_NO_AARCH64)
      8 
      9 #include <asmjit/a64.h>
     10 #include <stdio.h>
     11 #include <stdlib.h>
     12 #include <string.h>
     13 
     14 #include "asmjit_test_assembler.h"
     15 
     16 using namespace asmjit;
     17 
     18 #define TEST_INSTRUCTION(OPCODE, ...) \
     19   tester.test_valid_instruction(#__VA_ARGS__, OPCODE, tester.assembler.__VA_ARGS__)
     20 
     21 static void ASMJIT_NOINLINE test_aarch64_assembler_base(AssemblerTester<a64::Assembler>& tester) noexcept {
     22   using namespace a64;
     23 
     24   TEST_INSTRUCTION("4120C05A", abs(w1, w2));
     25   TEST_INSTRUCTION("4120C0DA", abs(x1, x2));
     26   TEST_INSTRUCTION("4100031A", adc(w1, w2, w3));
     27   TEST_INSTRUCTION("4100039A", adc(x1, x2, x3));
     28   TEST_INSTRUCTION("E103031A", adc(w1, wzr, w3));
     29   TEST_INSTRUCTION("E103039A", adc(x1, xzr, x3));
     30   TEST_INSTRUCTION("5F00031A", adc(wzr, w2, w3));
     31   TEST_INSTRUCTION("5F00039A", adc(xzr, x2, x3));
     32   TEST_INSTRUCTION("4100033A", adcs(w1, w2, w3));
     33   TEST_INSTRUCTION("410003BA", adcs(x1, x2, x3));
     34   TEST_INSTRUCTION("4100030B", add(w1, w2, w3));
     35   TEST_INSTRUCTION("4100038B", add(x1, x2, x3));
     36   TEST_INSTRUCTION("410C030B", add(w1, w2, w3, lsl(3)));
     37   TEST_INSTRUCTION("410C038B", add(x1, x2, x3, lsl(3)));
     38   TEST_INSTRUCTION("FF030411", add(wsp, wsp, 256));
     39   TEST_INSTRUCTION("FFFF3F11", add(wsp, wsp, 0xFFF));
     40   TEST_INSTRUCTION("FF030491", add(sp, sp, 256));
     41   TEST_INSTRUCTION("FFFF3F91", add(sp, sp, 0xFFF));
     42   TEST_INSTRUCTION("E103030B", add(w1, wzr, w3));
     43   TEST_INSTRUCTION("E103038B", add(x1, xzr, x3));
     44   TEST_INSTRUCTION("5F00030B", add(wzr, w2, w3));
     45   TEST_INSTRUCTION("5F00038B", add(xzr, x2, x3));
     46   TEST_INSTRUCTION("4140238B", add(x1, x2, w3, uxtw(0)));
     47   TEST_INSTRUCTION("83004011", add(w3, w4, 0, lsl(12)));
     48   TEST_INSTRUCTION("83004091", add(x3, x4, 0, lsl(12)));
     49   TEST_INSTRUCTION("83005011", add(w3, w4, 1024, lsl(12)));
     50   TEST_INSTRUCTION("83005091", add(x3, x4, 1024, lsl(12)));
     51   TEST_INSTRUCTION("83005011", add(w3, w4, 1024, lsl(12)));
     52   TEST_INSTRUCTION("83005091", add(x3, x4, 1024, lsl(12)));
     53   TEST_INSTRUCTION("FF830091", add(sp, sp, 32));
     54   TEST_INSTRUCTION("412C8291", addg(x1, x2, 32, 11));
     55   TEST_INSTRUCTION("5F2C8291", addg(sp, x2, 32, 11));
     56   TEST_INSTRUCTION("E12F8291", addg(x1, sp, 32, 11));
     57   TEST_INSTRUCTION("4100032B", adds(w1, w2, w3));
     58   TEST_INSTRUCTION("410003AB", adds(x1, x2, x3));
     59   TEST_INSTRUCTION("01000010", adr(x1, 0));
     60   TEST_INSTRUCTION("01080010", adr(x1, 256));
     61   TEST_INSTRUCTION("010000B0", adrp(x1, 4096));
     62   TEST_INSTRUCTION("4100030A", and_(w1, w2, w3));
     63   TEST_INSTRUCTION("4100038A", and_(x1, x2, x3));
     64   TEST_INSTRUCTION("41000012", and_(w1, w2, 1));
     65   TEST_INSTRUCTION("41004092", and_(x1, x2, 1));
     66   TEST_INSTRUCTION("410C0012", and_(w1, w2, 15));
     67   TEST_INSTRUCTION("410C4092", and_(x1, x2, 15));
     68   TEST_INSTRUCTION("3F1C0012", and_(wsp, w1, 0xFF));
     69   TEST_INSTRUCTION("3F1C4092", and_(sp, x1, 0xFF));
     70   TEST_INSTRUCTION("E103030A", and_(w1, wzr, w3));
     71   TEST_INSTRUCTION("E103038A", and_(x1, xzr, x3));
     72   TEST_INSTRUCTION("5F00030A", and_(wzr, w2, w3));
     73   TEST_INSTRUCTION("5F00038A", and_(xzr, x2, x3));
     74   TEST_INSTRUCTION("00000012", and_(w0, w0, 0x1));
     75   TEST_INSTRUCTION("00004092", and_(x0, x0, 0x1));
     76   TEST_INSTRUCTION("410C0012", and_(w1, w2, 0xf));
     77   TEST_INSTRUCTION("410C4092", and_(x1, x2, 0xf));
     78   TEST_INSTRUCTION("BFEC7C92", and_(sp, x5, 0xfffffffffffffff0));
     79   TEST_INSTRUCTION("4100036A", ands(w1, w2, w3));
     80   TEST_INSTRUCTION("410003EA", ands(x1, x2, x3));
     81   TEST_INSTRUCTION("E103036A", ands(w1, wzr, w3));
     82   TEST_INSTRUCTION("E10303EA", ands(x1, xzr, x3));
     83   TEST_INSTRUCTION("5F00036A", ands(wzr, w2, w3));
     84   TEST_INSTRUCTION("5F0003EA", ands(xzr, x2, x3));
     85   TEST_INSTRUCTION("00000072", ands(w0, w0, 0x1));
     86   TEST_INSTRUCTION("000040F2", ands(x0, x0, 0x1));
     87   TEST_INSTRUCTION("410C0072", ands(w1, w2, 0xf));
     88   TEST_INSTRUCTION("410C40F2", ands(x1, x2, 0xf));
     89   TEST_INSTRUCTION("417C0F13", asr(w1, w2, 15));
     90   TEST_INSTRUCTION("41FC4F93", asr(x1, x2, 15));
     91   TEST_INSTRUCTION("4128C31A", asrv(w1, w2, w3));
     92   TEST_INSTRUCTION("4128C39A", asrv(x1, x2, x3));
     93   TEST_INSTRUCTION("4F7808D5", at(Predicate::AT::kS1E0R, x15));
     94   TEST_INSTRUCTION("4118C1DA", autda(x1, x2));
     95   TEST_INSTRUCTION("E11BC1DA", autda(x1, sp));
     96   TEST_INSTRUCTION("411CC1DA", autdb(x1, x2));
     97   TEST_INSTRUCTION("E11FC1DA", autdb(x1, sp));
     98   TEST_INSTRUCTION("E13BC1DA", autdza(x1));
     99   TEST_INSTRUCTION("F43BC1DA", autdza(x20));
    100   TEST_INSTRUCTION("E13FC1DA", autdzb(x1));
    101   TEST_INSTRUCTION("F43FC1DA", autdzb(x20));
    102   TEST_INSTRUCTION("4110C1DA", autia(x1, x2));
    103   TEST_INSTRUCTION("E113C1DA", autia(x1, sp));
    104   TEST_INSTRUCTION("9F2103D5", autia1716());
    105   TEST_INSTRUCTION("BF2303D5", autiasp());
    106   TEST_INSTRUCTION("9F2303D5", autiaz());
    107   TEST_INSTRUCTION("4114C1DA", autib(x1, x2));
    108   TEST_INSTRUCTION("E117C1DA", autib(x1, sp));
    109   TEST_INSTRUCTION("DF2103D5", autib1716());
    110   TEST_INSTRUCTION("FF2303D5", autibsp());
    111   TEST_INSTRUCTION("DF2303D5", autibz());
    112   TEST_INSTRUCTION("E133C1DA", autiza(x1));
    113   TEST_INSTRUCTION("F433C1DA", autiza(x20));
    114   TEST_INSTRUCTION("E137C1DA", autizb(x1));
    115   TEST_INSTRUCTION("F437C1DA", autizb(x20));
    116   TEST_INSTRUCTION("5F4000D5", axflag());
    117   TEST_INSTRUCTION("E13F1833", bfc(w1, 8, 16));
    118   TEST_INSTRUCTION("E13F78B3", bfc(x1, 8, 16));
    119   TEST_INSTRUCTION("413C1833", bfi(w1, w2, 8, 16));
    120   TEST_INSTRUCTION("413C78B3", bfi(x1, x2, 8, 16));
    121   TEST_INSTRUCTION("41400833", bfm(w1, w2, 8, 16));
    122   TEST_INSTRUCTION("414048B3", bfm(x1, x2, 8, 16));
    123   TEST_INSTRUCTION("415C0833", bfxil(w1, w2, 8, 16));
    124   TEST_INSTRUCTION("415C48B3", bfxil(x1, x2, 8, 16));
    125   TEST_INSTRUCTION("41781F12", bic(w1, w2, 1));
    126   TEST_INSTRUCTION("41F87F92", bic(x1, x2, 1));
    127   TEST_INSTRUCTION("416C1C12", bic(w1, w2, 15));
    128   TEST_INSTRUCTION("41EC7C92", bic(x1, x2, 15));
    129   TEST_INSTRUCTION("4110230A", bic(w1, w2, w3, lsl(4)));
    130   TEST_INSTRUCTION("4110238A", bic(x1, x2, x3, lsl(4)));
    131   TEST_INSTRUCTION("E103230A", bic(w1, wzr, w3));
    132   TEST_INSTRUCTION("E103238A", bic(x1, xzr, x3));
    133   TEST_INSTRUCTION("41781F72", bics(w1, w2, 1));
    134   TEST_INSTRUCTION("41F87FF2", bics(x1, x2, 1));
    135   TEST_INSTRUCTION("416C1C72", bics(w1, w2, 15));
    136   TEST_INSTRUCTION("41EC7CF2", bics(x1, x2, 15));
    137   TEST_INSTRUCTION("4110236A", bics(w1, w2, w3, lsl(4)));
    138   TEST_INSTRUCTION("411023EA", bics(x1, x2, x3, lsl(4)));
    139   TEST_INSTRUCTION("E103236A", bics(w1, wzr, w3));
    140   TEST_INSTRUCTION("E10323EA", bics(x1, xzr, x3));
    141   TEST_INSTRUCTION("60031FD6", br(x27));
    142   TEST_INSTRUCTION("E0031FD6", br(xzr));
    143   TEST_INSTRUCTION("200020D4", brk(1));
    144   TEST_INSTRUCTION("DF2403D5", bti(Predicate::BTI::kJC));
    145   TEST_INSTRUCTION("627CA188", cas(w1, w2, ptr(x3)));
    146   TEST_INSTRUCTION("627CA1C8", cas(x1, x2, ptr(x3)));
    147   TEST_INSTRUCTION("627CE188", casa(w1, w2, ptr(x3)));
    148   TEST_INSTRUCTION("627CE1C8", casa(x1, x2, ptr(x3)));
    149   TEST_INSTRUCTION("627CE108", casab(w1, w2, ptr(x3)));
    150   TEST_INSTRUCTION("627CE148", casah(w1, w2, ptr(x3)));
    151   TEST_INSTRUCTION("62FCE188", casal(w1, w2, ptr(x3)));
    152   TEST_INSTRUCTION("62FCE1C8", casal(x1, x2, ptr(x3)));
    153   TEST_INSTRUCTION("62FCE108", casalb(w1, w2, ptr(x3)));
    154   TEST_INSTRUCTION("62FCE148", casalh(w1, w2, ptr(x3)));
    155   TEST_INSTRUCTION("627CA108", casb(w1, w2, ptr(x3)));
    156   TEST_INSTRUCTION("627CA148", cash(w1, w2, ptr(x3)));
    157   TEST_INSTRUCTION("62FCA188", casl(w1, w2, ptr(x3)));
    158   TEST_INSTRUCTION("62FCA1C8", casl(x1, x2, ptr(x3)));
    159   TEST_INSTRUCTION("62FCA108", caslb(w1, w2, ptr(x3)));
    160   TEST_INSTRUCTION("62FCA148", caslh(w1, w2, ptr(x3)));
    161   TEST_INSTRUCTION("687C2208", casp(w2, w3, w8, w9, ptr(x3)));
    162   TEST_INSTRUCTION("687C2248", casp(x2, x3, x8, x9, ptr(x3)));
    163   TEST_INSTRUCTION("687C6208", caspa(w2, w3, w8, w9, ptr(x3)));
    164   TEST_INSTRUCTION("687C6248", caspa(x2, x3, x8, x9, ptr(x3)));
    165   TEST_INSTRUCTION("68FC6208", caspal(w2, w3, w8, w9, ptr(x3)));
    166   TEST_INSTRUCTION("68FC6248", caspal(x2, x3, x8, x9, ptr(x3)));
    167   TEST_INSTRUCTION("68FC2208", caspl(w2, w3, w8, w9, ptr(x3)));
    168   TEST_INSTRUCTION("68FC2248", caspl(x2, x3, x8, x9, ptr(x3)));
    169   TEST_INSTRUCTION("2300423A", ccmn(w1, w2, 3, CondCode::kEQ));
    170   TEST_INSTRUCTION("230042BA", ccmn(x1, x2, 3, CondCode::kEQ));
    171   TEST_INSTRUCTION("2308423A", ccmn(w1, 2, 3, CondCode::kEQ));
    172   TEST_INSTRUCTION("230842BA", ccmn(x1, 2, 3, CondCode::kEQ));
    173   TEST_INSTRUCTION("23005F3A", ccmn(w1, wzr, 3, CondCode::kEQ));
    174   TEST_INSTRUCTION("23005FBA", ccmn(x1, xzr, 3, CondCode::kEQ));
    175   TEST_INSTRUCTION("2300427A", ccmp(w1, w2, 3, CondCode::kEQ));
    176   TEST_INSTRUCTION("230042FA", ccmp(x1, x2, 3, CondCode::kEQ));
    177   TEST_INSTRUCTION("2308427A", ccmp(w1, 2, 3, CondCode::kEQ));
    178   TEST_INSTRUCTION("230842FA", ccmp(x1, 2, 3, CondCode::kEQ));
    179   TEST_INSTRUCTION("23005F7A", ccmp(w1, wzr, 3, CondCode::kEQ));
    180   TEST_INSTRUCTION("23005FFA", ccmp(x1, xzr, 3, CondCode::kEQ));
    181   TEST_INSTRUCTION("1F4000D5", cfinv());
    182   TEST_INSTRUCTION("4114821A", cinc(w1, w2, CondCode::kEQ));
    183   TEST_INSTRUCTION("4114829A", cinc(x1, x2, CondCode::kEQ));
    184   TEST_INSTRUCTION("5F14821A", cinc(wzr, w2, CondCode::kEQ));
    185   TEST_INSTRUCTION("E1179F1A", cinc(w1, wzr, CondCode::kEQ));
    186   TEST_INSTRUCTION("5F14829A", cinc(xzr, x2, CondCode::kEQ));
    187   TEST_INSTRUCTION("E1179F9A", cinc(x1, xzr, CondCode::kEQ));
    188   TEST_INSTRUCTION("4110825A", cinv(w1, w2, CondCode::kEQ));
    189   TEST_INSTRUCTION("411082DA", cinv(x1, x2, CondCode::kEQ));
    190   TEST_INSTRUCTION("5F10825A", cinv(wzr, w2, CondCode::kEQ));
    191   TEST_INSTRUCTION("E1139F5A", cinv(w1, wzr, CondCode::kEQ));
    192   TEST_INSTRUCTION("5F1082DA", cinv(xzr, x2, CondCode::kEQ));
    193   TEST_INSTRUCTION("E1139FDA", cinv(x1, xzr, CondCode::kEQ));
    194   TEST_INSTRUCTION("DF2203D5", clrbhb());
    195   TEST_INSTRUCTION("1F2503D5", chkfeat(x16));
    196   TEST_INSTRUCTION("5F3B03D5", clrex(11));
    197   TEST_INSTRUCTION("4114C05A", cls(w1, w2));
    198   TEST_INSTRUCTION("4114C0DA", cls(x1, x2));
    199   TEST_INSTRUCTION("E117C05A", cls(w1, wzr));
    200   TEST_INSTRUCTION("E117C0DA", cls(x1, xzr));
    201   TEST_INSTRUCTION("5F14C05A", cls(wzr, w2));
    202   TEST_INSTRUCTION("5F14C0DA", cls(xzr, x2));
    203   TEST_INSTRUCTION("4110C05A", clz(w1, w2));
    204   TEST_INSTRUCTION("4110C0DA", clz(x1, x2));
    205   TEST_INSTRUCTION("E113C05A", clz(w1, wzr));
    206   TEST_INSTRUCTION("E113C0DA", clz(x1, xzr));
    207   TEST_INSTRUCTION("5F10C05A", clz(wzr, w2));
    208   TEST_INSTRUCTION("5F10C0DA", clz(xzr, x2));
    209   TEST_INSTRUCTION("3F840031", cmn(w1, 33));
    210   TEST_INSTRUCTION("3FFC4331", cmn(w1, 0xFF000));
    211   TEST_INSTRUCTION("FF030231", cmn(wsp, 128));
    212   TEST_INSTRUCTION("3F8400B1", cmn(x1, 33));
    213   TEST_INSTRUCTION("3FFC43B1", cmn(x1, 0xFF000));
    214   TEST_INSTRUCTION("FF0302B1", cmn(sp, 128));
    215   TEST_INSTRUCTION("3F00022B", cmn(w1, w2));
    216   TEST_INSTRUCTION("3F0002AB", cmn(x1, x2));
    217   TEST_INSTRUCTION("3F08222B", cmn(w1, w2, uxtb(2)));
    218   TEST_INSTRUCTION("3F0822AB", cmn(x1, w2, uxtb(2)));
    219   TEST_INSTRUCTION("5F4023AB", cmn(x2, w3, uxtw(0)));
    220   TEST_INSTRUCTION("FF43212B", cmn(wsp, w1));
    221   TEST_INSTRUCTION("FF07212B", cmn(wsp, w1, uxtb(1)));
    222   TEST_INSTRUCTION("FF6321AB", cmn(sp, x1));
    223   TEST_INSTRUCTION("FF6721AB", cmn(sp, x1, uxtx(1)));
    224   TEST_INSTRUCTION("3F840071", cmp(w1, 33));
    225   TEST_INSTRUCTION("3FFC4371", cmp(w1, 0xFF000));
    226   TEST_INSTRUCTION("FF030271", cmp(wsp, 128));
    227   TEST_INSTRUCTION("3F8400F1", cmp(x1, 33));
    228   TEST_INSTRUCTION("3FFC43F1", cmp(x1, 0xFF000));
    229   TEST_INSTRUCTION("FF0302F1", cmp(sp, 128));
    230   TEST_INSTRUCTION("3F00026B", cmp(w1, w2));
    231   TEST_INSTRUCTION("3F0002EB", cmp(x1, x2));
    232   TEST_INSTRUCTION("3F08226B", cmp(w1, w2, uxtb(2)));
    233   TEST_INSTRUCTION("3F0822EB", cmp(x1, w2, uxtb(2)));
    234   TEST_INSTRUCTION("5F4023EB", cmp(x2, w3, uxtw(0)));
    235   TEST_INSTRUCTION("FF43216B", cmp(wsp, w1));
    236   TEST_INSTRUCTION("FF07216B", cmp(wsp, w1, uxtb(1)));
    237   TEST_INSTRUCTION("FF6321EB", cmp(sp, x1));
    238   TEST_INSTRUCTION("FF6721EB", cmp(sp, x1, uxtx(1)));
    239   TEST_INSTRUCTION("3F00C2BA", cmpp(x1, x2));
    240   TEST_INSTRUCTION("3F00DFBA", cmpp(x1, sp));
    241   TEST_INSTRUCTION("FF03C2BA", cmpp(sp, x2));
    242   TEST_INSTRUCTION("FF03DFBA", cmpp(sp, sp));
    243   TEST_INSTRUCTION("411CC05A", cnt(w1, w2));
    244   TEST_INSTRUCTION("411CC0DA", cnt(x1, x2));
    245   TEST_INSTRUCTION("4140C31A", crc32b(w1, w2, w3));
    246   TEST_INSTRUCTION("5F40C31A", crc32b(wzr, w2, w3));
    247   TEST_INSTRUCTION("E143C31A", crc32b(w1, wzr, w3));
    248   TEST_INSTRUCTION("4140DF1A", crc32b(w1, w2, wzr));
    249   TEST_INSTRUCTION("4150C31A", crc32cb(w1, w2, w3));
    250   TEST_INSTRUCTION("5F50C31A", crc32cb(wzr, w2, w3));
    251   TEST_INSTRUCTION("E153C31A", crc32cb(w1, wzr, w3));
    252   TEST_INSTRUCTION("4150DF1A", crc32cb(w1, w2, wzr));
    253   TEST_INSTRUCTION("4154C31A", crc32ch(w1, w2, w3));
    254   TEST_INSTRUCTION("5F54C31A", crc32ch(wzr, w2, w3));
    255   TEST_INSTRUCTION("E157C31A", crc32ch(w1, wzr, w3));
    256   TEST_INSTRUCTION("4154DF1A", crc32ch(w1, w2, wzr));
    257   TEST_INSTRUCTION("4158C31A", crc32cw(w1, w2, w3));
    258   TEST_INSTRUCTION("5F58C31A", crc32cw(wzr, w2, w3));
    259   TEST_INSTRUCTION("E15BC31A", crc32cw(w1, wzr, w3));
    260   TEST_INSTRUCTION("4158DF1A", crc32cw(w1, w2, wzr));
    261   TEST_INSTRUCTION("415CC39A", crc32cx(w1, w2, x3));
    262   TEST_INSTRUCTION("5F5CC39A", crc32cx(wzr, w2, x3));
    263   TEST_INSTRUCTION("E15FC39A", crc32cx(w1, wzr, x3));
    264   TEST_INSTRUCTION("415CDF9A", crc32cx(w1, w2, xzr));
    265   TEST_INSTRUCTION("4144C31A", crc32h(w1, w2, w3));
    266   TEST_INSTRUCTION("5F44C31A", crc32h(wzr, w2, w3));
    267   TEST_INSTRUCTION("E147C31A", crc32h(w1, wzr, w3));
    268   TEST_INSTRUCTION("4144DF1A", crc32h(w1, w2, wzr));
    269   TEST_INSTRUCTION("4148C31A", crc32w(w1, w2, w3));
    270   TEST_INSTRUCTION("5F48C31A", crc32w(wzr, w2, w3));
    271   TEST_INSTRUCTION("E14BC31A", crc32w(w1, wzr, w3));
    272   TEST_INSTRUCTION("4148DF1A", crc32w(w1, w2, wzr));
    273   TEST_INSTRUCTION("414CC39A", crc32x(w1, w2, x3));
    274   TEST_INSTRUCTION("5F4CC39A", crc32x(wzr, w2, x3));
    275   TEST_INSTRUCTION("E14FC39A", crc32x(w1, wzr, x3));
    276   TEST_INSTRUCTION("414CDF9A", crc32x(w1, w2, xzr));
    277   TEST_INSTRUCTION("9F2203D5", csdb());
    278   TEST_INSTRUCTION("4100831A", csel(w1, w2, w3, CondCode::kEQ));
    279   TEST_INSTRUCTION("4100839A", csel(x1, x2, x3, CondCode::kEQ));
    280   TEST_INSTRUCTION("E1179F1A", cset(w1, CondCode::kEQ));
    281   TEST_INSTRUCTION("E1179F9A", cset(x1, CondCode::kEQ));
    282   TEST_INSTRUCTION("E1179F1A", cset(w1, CondCode::kEQ));
    283   TEST_INSTRUCTION("E1179F9A", cset(x1, CondCode::kEQ));
    284   TEST_INSTRUCTION("E1139F5A", csetm(w1, CondCode::kEQ));
    285   TEST_INSTRUCTION("E1139FDA", csetm(x1, CondCode::kEQ));
    286   TEST_INSTRUCTION("4104831A", csinc(w1, w2, w3, CondCode::kEQ));
    287   TEST_INSTRUCTION("4104839A", csinc(x1, x2, x3, CondCode::kEQ));
    288   TEST_INSTRUCTION("4100835A", csinv(w1, w2, w3, CondCode::kEQ));
    289   TEST_INSTRUCTION("410083DA", csinv(x1, x2, x3, CondCode::kEQ));
    290   TEST_INSTRUCTION("4104835A", csneg(w1, w2, w3, CondCode::kEQ));
    291   TEST_INSTRUCTION("410483DA", csneg(x1, x2, x3, CondCode::kEQ));
    292   TEST_INSTRUCTION("4118C05A", ctz(w1, w2));
    293   TEST_INSTRUCTION("4118C0DA", ctz(x1, x2));
    294   TEST_INSTRUCTION("2F740BD5", dc(Predicate::DC::kZVA, x15));
    295   TEST_INSTRUCTION("2100B0D4", dcps1(0x8001));
    296   TEST_INSTRUCTION("2200B0D4", dcps2(0x8001));
    297   TEST_INSTRUCTION("2300B0D4", dcps3(0x8001));
    298   TEST_INSTRUCTION("DF2003D5", dgh());
    299   TEST_INSTRUCTION("BF3103D5", dmb(1));
    300   TEST_INSTRUCTION("E003BFD6", drps());
    301   TEST_INSTRUCTION("9F3103D5", dsb(1));
    302   TEST_INSTRUCTION("4100234A", eon(w1, w2, w3));
    303   TEST_INSTRUCTION("5F00234A", eon(wzr, w2, w3));
    304   TEST_INSTRUCTION("E103234A", eon(w1, wzr, w3));
    305   TEST_INSTRUCTION("41003F4A", eon(w1, w2, wzr));
    306   TEST_INSTRUCTION("4110234A", eon(w1, w2, w3, lsl(4)));
    307   TEST_INSTRUCTION("410023CA", eon(x1, x2, x3));
    308   TEST_INSTRUCTION("5F0023CA", eon(xzr, x2, x3));
    309   TEST_INSTRUCTION("E10323CA", eon(x1, xzr, x3));
    310   TEST_INSTRUCTION("41003FCA", eon(x1, x2, xzr));
    311   TEST_INSTRUCTION("411023CA", eon(x1, x2, x3, lsl(4)));
    312   TEST_INSTRUCTION("4100034A", eor(w1, w2, w3));
    313   TEST_INSTRUCTION("5F00034A", eor(wzr, w2, w3));
    314   TEST_INSTRUCTION("E103034A", eor(w1, wzr, w3));
    315   TEST_INSTRUCTION("41001F4A", eor(w1, w2, wzr));
    316   TEST_INSTRUCTION("410003CA", eor(x1, x2, x3));
    317   TEST_INSTRUCTION("5F0003CA", eor(xzr, x2, x3));
    318   TEST_INSTRUCTION("E10303CA", eor(x1, xzr, x3));
    319   TEST_INSTRUCTION("41001FCA", eor(x1, x2, xzr));
    320   TEST_INSTRUCTION("4110034A", eor(w1, w2, w3, lsl(4)));
    321   TEST_INSTRUCTION("411003CA", eor(x1, x2, x3, lsl(4)));
    322   TEST_INSTRUCTION("3F1C0052", eor(wsp, w1, 0xFF));
    323   TEST_INSTRUCTION("FF1F0052", eor(wsp, wzr, 0xFF));
    324   TEST_INSTRUCTION("3F1C40D2", eor(sp, x1, 0xFF));
    325   TEST_INSTRUCTION("FF1F40D2", eor(sp, xzr, 0xFF));
    326   TEST_INSTRUCTION("41001252", eor(w1, w2, 0x4000));
    327   TEST_INSTRUCTION("410071D2", eor(x1, x2, 0x8000));
    328   TEST_INSTRUCTION("E0039FD6", eret());
    329   TEST_INSTRUCTION("1F2203D5", esb());
    330   TEST_INSTRUCTION("413C8313", extr(w1, w2, w3, 15));
    331   TEST_INSTRUCTION("5F3C8313", extr(wzr, w2, w3, 15));
    332   TEST_INSTRUCTION("E13F8313", extr(w1, wzr, w3, 15));
    333   TEST_INSTRUCTION("413C9F13", extr(w1, w2, wzr, 15));
    334   TEST_INSTRUCTION("413CC393", extr(x1, x2, x3, 15));
    335   TEST_INSTRUCTION("5F3CC393", extr(xzr, x2, x3, 15));
    336   TEST_INSTRUCTION("E13FC393", extr(x1, xzr, x3, 15));
    337   TEST_INSTRUCTION("413CDF93", extr(x1, x2, xzr, 15));
    338   TEST_INSTRUCTION("4114C39A", gmi(x1, x2, x3));
    339   TEST_INSTRUCTION("E117C39A", gmi(x1, sp, x3));
    340   TEST_INSTRUCTION("200040D4", hlt(1));
    341   TEST_INSTRUCTION("220000D4", hvc(1));
    342   TEST_INSTRUCTION("2F750BD5", ic(Predicate::IC::kIVAU, x15));
    343   TEST_INSTRUCTION("DF3103D5", isb(1));
    344   TEST_INSTRUCTION("620021B8", ldadd(w1, w2, ptr(x3)));
    345   TEST_INSTRUCTION("E20321B8", ldadd(w1, w2, ptr(sp)));
    346   TEST_INSTRUCTION("620021F8", ldadd(x1, x2, ptr(x3)));
    347   TEST_INSTRUCTION("E20321F8", ldadd(x1, x2, ptr(sp)));
    348   TEST_INSTRUCTION("6200A1B8", ldadda(w1, w2, ptr(x3)));
    349   TEST_INSTRUCTION("E203A1B8", ldadda(w1, w2, ptr(sp)));
    350   TEST_INSTRUCTION("6200A1F8", ldadda(x1, x2, ptr(x3)));
    351   TEST_INSTRUCTION("E203A1F8", ldadda(x1, x2, ptr(sp)));
    352   TEST_INSTRUCTION("6200A138", ldaddab(w1, w2, ptr(x3)));
    353   TEST_INSTRUCTION("E203A138", ldaddab(w1, w2, ptr(sp)));
    354   TEST_INSTRUCTION("6200A178", ldaddah(w1, w2, ptr(x3)));
    355   TEST_INSTRUCTION("E203A178", ldaddah(w1, w2, ptr(sp)));
    356   TEST_INSTRUCTION("6200E1B8", ldaddal(w1, w2, ptr(x3)));
    357   TEST_INSTRUCTION("E203E1B8", ldaddal(w1, w2, ptr(sp)));
    358   TEST_INSTRUCTION("6200E1F8", ldaddal(x1, x2, ptr(x3)));
    359   TEST_INSTRUCTION("E203E1F8", ldaddal(x1, x2, ptr(sp)));
    360   TEST_INSTRUCTION("6200E138", ldaddalb(w1, w2, ptr(x3)));
    361   TEST_INSTRUCTION("E203E138", ldaddalb(w1, w2, ptr(sp)));
    362   TEST_INSTRUCTION("6200E178", ldaddalh(w1, w2, ptr(x3)));
    363   TEST_INSTRUCTION("E203E178", ldaddalh(w1, w2, ptr(sp)));
    364   TEST_INSTRUCTION("62002138", ldaddb(w1, w2, ptr(x3)));
    365   TEST_INSTRUCTION("E2032138", ldaddb(w1, w2, ptr(sp)));
    366   TEST_INSTRUCTION("62002178", ldaddh(w1, w2, ptr(x3)));
    367   TEST_INSTRUCTION("E2032178", ldaddh(w1, w2, ptr(sp)));
    368   TEST_INSTRUCTION("620061B8", ldaddl(w1, w2, ptr(x3)));
    369   TEST_INSTRUCTION("E20361B8", ldaddl(w1, w2, ptr(sp)));
    370   TEST_INSTRUCTION("620061F8", ldaddl(x1, x2, ptr(x3)));
    371   TEST_INSTRUCTION("E20361F8", ldaddl(x1, x2, ptr(sp)));
    372   TEST_INSTRUCTION("62006138", ldaddlb(w1, w2, ptr(x3)));
    373   TEST_INSTRUCTION("E2036138", ldaddlb(w1, w2, ptr(sp)));
    374   TEST_INSTRUCTION("62006178", ldaddlh(w1, w2, ptr(x3)));
    375   TEST_INSTRUCTION("E2036178", ldaddlh(w1, w2, ptr(sp)));
    376   TEST_INSTRUCTION("621021B8", ldclr(w1, w2, ptr(x3)));
    377   TEST_INSTRUCTION("E21321B8", ldclr(w1, w2, ptr(sp)));
    378   TEST_INSTRUCTION("621021F8", ldclr(x1, x2, ptr(x3)));
    379   TEST_INSTRUCTION("E21321F8", ldclr(x1, x2, ptr(sp)));
    380   TEST_INSTRUCTION("6210A1B8", ldclra(w1, w2, ptr(x3)));
    381   TEST_INSTRUCTION("E213A1B8", ldclra(w1, w2, ptr(sp)));
    382   TEST_INSTRUCTION("6210A1F8", ldclra(x1, x2, ptr(x3)));
    383   TEST_INSTRUCTION("E213A1F8", ldclra(x1, x2, ptr(sp)));
    384   TEST_INSTRUCTION("6210A138", ldclrab(w1, w2, ptr(x3)));
    385   TEST_INSTRUCTION("E213A138", ldclrab(w1, w2, ptr(sp)));
    386   TEST_INSTRUCTION("6210A178", ldclrah(w1, w2, ptr(x3)));
    387   TEST_INSTRUCTION("E213A178", ldclrah(w1, w2, ptr(sp)));
    388   TEST_INSTRUCTION("6210E1B8", ldclral(w1, w2, ptr(x3)));
    389   TEST_INSTRUCTION("E213E1B8", ldclral(w1, w2, ptr(sp)));
    390   TEST_INSTRUCTION("6210E1F8", ldclral(x1, x2, ptr(x3)));
    391   TEST_INSTRUCTION("E213E1F8", ldclral(x1, x2, ptr(sp)));
    392   TEST_INSTRUCTION("6210E138", ldclralb(w1, w2, ptr(x3)));
    393   TEST_INSTRUCTION("E213E138", ldclralb(w1, w2, ptr(sp)));
    394   TEST_INSTRUCTION("6210E178", ldclralh(w1, w2, ptr(x3)));
    395   TEST_INSTRUCTION("E213E178", ldclralh(w1, w2, ptr(sp)));
    396   TEST_INSTRUCTION("62102138", ldclrb(w1, w2, ptr(x3)));
    397   TEST_INSTRUCTION("E2132138", ldclrb(w1, w2, ptr(sp)));
    398   TEST_INSTRUCTION("62102178", ldclrh(w1, w2, ptr(x3)));
    399   TEST_INSTRUCTION("E2132178", ldclrh(w1, w2, ptr(sp)));
    400   TEST_INSTRUCTION("621061B8", ldclrl(w1, w2, ptr(x3)));
    401   TEST_INSTRUCTION("E21361B8", ldclrl(w1, w2, ptr(sp)));
    402   TEST_INSTRUCTION("621061F8", ldclrl(x1, x2, ptr(x3)));
    403   TEST_INSTRUCTION("E21361F8", ldclrl(x1, x2, ptr(sp)));
    404   TEST_INSTRUCTION("62106138", ldclrlb(w1, w2, ptr(x3)));
    405   TEST_INSTRUCTION("E2136138", ldclrlb(w1, w2, ptr(sp)));
    406   TEST_INSTRUCTION("62106178", ldclrlh(w1, w2, ptr(x3)));
    407   TEST_INSTRUCTION("E2136178", ldclrlh(w1, w2, ptr(sp)));
    408   TEST_INSTRUCTION("622021B8", ldeor(w1, w2, ptr(x3)));
    409   TEST_INSTRUCTION("E22321B8", ldeor(w1, w2, ptr(sp)));
    410   TEST_INSTRUCTION("622021F8", ldeor(x1, x2, ptr(x3)));
    411   TEST_INSTRUCTION("E22321F8", ldeor(x1, x2, ptr(sp)));
    412   TEST_INSTRUCTION("6220A1B8", ldeora(w1, w2, ptr(x3)));
    413   TEST_INSTRUCTION("E223A1B8", ldeora(w1, w2, ptr(sp)));
    414   TEST_INSTRUCTION("6220A1F8", ldeora(x1, x2, ptr(x3)));
    415   TEST_INSTRUCTION("E223A1F8", ldeora(x1, x2, ptr(sp)));
    416   TEST_INSTRUCTION("6220A138", ldeorab(w1, w2, ptr(x3)));
    417   TEST_INSTRUCTION("E223A138", ldeorab(w1, w2, ptr(sp)));
    418   TEST_INSTRUCTION("6220A178", ldeorah(w1, w2, ptr(x3)));
    419   TEST_INSTRUCTION("E223A178", ldeorah(w1, w2, ptr(sp)));
    420   TEST_INSTRUCTION("6220E1B8", ldeoral(w1, w2, ptr(x3)));
    421   TEST_INSTRUCTION("E223E1B8", ldeoral(w1, w2, ptr(sp)));
    422   TEST_INSTRUCTION("6220E1F8", ldeoral(x1, x2, ptr(x3)));
    423   TEST_INSTRUCTION("E223E1F8", ldeoral(x1, x2, ptr(sp)));
    424   TEST_INSTRUCTION("6220E138", ldeoralb(w1, w2, ptr(x3)));
    425   TEST_INSTRUCTION("E223E138", ldeoralb(w1, w2, ptr(sp)));
    426   TEST_INSTRUCTION("6220E178", ldeoralh(w1, w2, ptr(x3)));
    427   TEST_INSTRUCTION("E223E178", ldeoralh(w1, w2, ptr(sp)));
    428   TEST_INSTRUCTION("62202138", ldeorb(w1, w2, ptr(x3)));
    429   TEST_INSTRUCTION("E2232138", ldeorb(w1, w2, ptr(sp)));
    430   TEST_INSTRUCTION("62202178", ldeorh(w1, w2, ptr(x3)));
    431   TEST_INSTRUCTION("E2232178", ldeorh(w1, w2, ptr(sp)));
    432   TEST_INSTRUCTION("622061B8", ldeorl(w1, w2, ptr(x3)));
    433   TEST_INSTRUCTION("E22361B8", ldeorl(w1, w2, ptr(sp)));
    434   TEST_INSTRUCTION("622061F8", ldeorl(x1, x2, ptr(x3)));
    435   TEST_INSTRUCTION("E22361F8", ldeorl(x1, x2, ptr(sp)));
    436   TEST_INSTRUCTION("62206138", ldeorlb(w1, w2, ptr(x3)));
    437   TEST_INSTRUCTION("E2236138", ldeorlb(w1, w2, ptr(sp)));
    438   TEST_INSTRUCTION("62206178", ldeorlh(w1, w2, ptr(x3)));
    439   TEST_INSTRUCTION("E2236178", ldeorlh(w1, w2, ptr(sp)));
    440   TEST_INSTRUCTION("410060D9", ldg(x1, ptr(x2)));
    441   TEST_INSTRUCTION("418060D9", ldg(x1, ptr(x2, 128)));
    442   TEST_INSTRUCTION("E10360D9", ldg(x1, ptr(sp)));
    443   TEST_INSTRUCTION("E18360D9", ldg(x1, ptr(sp, 128)));
    444   TEST_INSTRUCTION("4100E0D9", ldgm(x1, ptr(x2)));
    445   TEST_INSTRUCTION("E103E0D9", ldgm(x1, ptr(sp)));
    446   TEST_INSTRUCTION("417CDF88", ldlar(w1, ptr(x2)));
    447   TEST_INSTRUCTION("E17FDF88", ldlar(w1, ptr(sp)));
    448   TEST_INSTRUCTION("417CDFC8", ldlar(x1, ptr(x2)));
    449   TEST_INSTRUCTION("E17FDFC8", ldlar(x1, ptr(sp)));
    450   TEST_INSTRUCTION("417CDF08", ldlarb(w1, ptr(x2)));
    451   TEST_INSTRUCTION("E17FDF08", ldlarb(w1, ptr(sp)));
    452   TEST_INSTRUCTION("417CDF48", ldlarh(w1, ptr(x2)));
    453   TEST_INSTRUCTION("E17FDF48", ldlarh(w1, ptr(sp)));
    454   TEST_INSTRUCTION("41084028", ldnp(w1, w2, ptr(x2)));
    455   TEST_INSTRUCTION("41086028", ldnp(w1, w2, ptr(x2, -256)));
    456   TEST_INSTRUCTION("41885F28", ldnp(w1, w2, ptr(x2, 252)));
    457   TEST_INSTRUCTION("410840A8", ldnp(x1, x2, ptr(x2)));
    458   TEST_INSTRUCTION("410860A8", ldnp(x1, x2, ptr(x2, -512)));
    459   TEST_INSTRUCTION("41885FA8", ldnp(x1, x2, ptr(x2, 504)));
    460   TEST_INSTRUCTION("41084029", ldp(w1, w2, ptr(x2)));
    461   TEST_INSTRUCTION("41086029", ldp(w1, w2, ptr(x2, -256)));
    462   TEST_INSTRUCTION("41885F29", ldp(w1, w2, ptr(x2, 252)));
    463   TEST_INSTRUCTION("410840A9", ldp(x1, x2, ptr(x2)));
    464   TEST_INSTRUCTION("410860A9", ldp(x1, x2, ptr(x2, -512)));
    465   TEST_INSTRUCTION("41885FA9", ldp(x1, x2, ptr(x2, 504)));
    466   TEST_INSTRUCTION("41084069", ldpsw(x1, x2, ptr(x2)));
    467   TEST_INSTRUCTION("41086069", ldpsw(x1, x2, ptr(x2, -256)));
    468   TEST_INSTRUCTION("41885F69", ldpsw(x1, x2, ptr(x2, 252)));
    469   TEST_INSTRUCTION("410040B9", ldr(w1, ptr(x2)));
    470   TEST_INSTRUCTION("413040B9", ldr(w1, ptr(x2, 48)));
    471   TEST_INSTRUCTION("410C43B8", ldr(w1, ptr_pre(x2, 48)));
    472   TEST_INSTRUCTION("416863B8", ldr(w1, ptr(x2, x3)));
    473   TEST_INSTRUCTION("410040F9", ldr(x1, ptr(x2)));
    474   TEST_INSTRUCTION("411840F9", ldr(x1, ptr(x2, 48)));
    475   TEST_INSTRUCTION("410C43F8", ldr(x1, ptr_pre(x2, 48)));
    476   TEST_INSTRUCTION("416863F8", ldr(x1, ptr(x2, x3)));
    477   TEST_INSTRUCTION("FB0F5FF8", ldr(x27, ptr_pre(sp, -16)));
    478   TEST_INSTRUCTION("FB0741F8", ldr(x27, ptr_post(sp, 16)));
    479   TEST_INSTRUCTION("411040B8", ldr(w1, ptr(x2, 1)));    // LDUR
    480   TEST_INSTRUCTION("41D05FB8", ldr(w1, ptr(x2, -3)));   // LDUR
    481   TEST_INSTRUCTION("41705FB8", ldr(w1, ptr(x2, -9)));   // LDUR
    482   TEST_INSTRUCTION("411040F8", ldr(x1, ptr(x2, 1)));    // LDUR
    483   TEST_INSTRUCTION("413040F8", ldr(x1, ptr(x2, 3)));    // LDUR
    484   TEST_INSTRUCTION("41705FF8", ldr(x1, ptr(x2, -9)));   // LDUR
    485   TEST_INSTRUCTION("41004039", ldrb(w1, ptr(x2)));
    486   TEST_INSTRUCTION("41C04039", ldrb(w1, ptr(x2, 48)));
    487   TEST_INSTRUCTION("410C4338", ldrb(w1, ptr_pre(x2, 48)));
    488   TEST_INSTRUCTION("41686338", ldrb(w1, ptr(x2, x3)));
    489   TEST_INSTRUCTION("41044039", ldrb(w1, ptr(x2, 1)));
    490   TEST_INSTRUCTION("41D05F38", ldrb(w1, ptr(x2, -3)));  // LDURB
    491   TEST_INSTRUCTION("41705F38", ldrb(w1, ptr(x2, -9)));  // LDURB
    492   TEST_INSTRUCTION("41004079", ldrh(w1, ptr(x2)));
    493   TEST_INSTRUCTION("41604079", ldrh(w1, ptr(x2, 48)));
    494   TEST_INSTRUCTION("410C4378", ldrh(w1, ptr_pre(x2, 48)));
    495   TEST_INSTRUCTION("41686378", ldrh(w1, ptr(x2, x3)));
    496   TEST_INSTRUCTION("41104078", ldrh(w1, ptr(x2, 1)));   // LDURH
    497   TEST_INSTRUCTION("41D05F78", ldrh(w1, ptr(x2, -3)));  // LDURH
    498   TEST_INSTRUCTION("41705F78", ldrh(w1, ptr(x2, -9)));  // LDURH
    499   TEST_INSTRUCTION("4168E338", ldrsb(w1, ptr(x2, x3)));
    500   TEST_INSTRUCTION("4104C039", ldrsb(w1, ptr(x2, 1)));
    501   TEST_INSTRUCTION("4120C039", ldrsb(w1, ptr(x2, 8)));
    502   TEST_INSTRUCTION("41D0DF38", ldrsb(w1, ptr(x2, -3))); // LDURSB
    503   TEST_INSTRUCTION("4170DF38", ldrsb(w1, ptr(x2, -9))); // LDURSB
    504   TEST_INSTRUCTION("4168A338", ldrsb(x1, ptr(x2, x3)));
    505   TEST_INSTRUCTION("41048039", ldrsb(x1, ptr(x2, 1)));
    506   TEST_INSTRUCTION("41208039", ldrsb(x1, ptr(x2, 8)));
    507   TEST_INSTRUCTION("41D09F38", ldrsb(x1, ptr(x2, -3))); // LDURSB
    508   TEST_INSTRUCTION("41709F38", ldrsb(x1, ptr(x2, -9))); // LDURSB
    509   TEST_INSTRUCTION("4168E378", ldrsh(w1, ptr(x2, x3)));
    510   TEST_INSTRUCTION("4110C078", ldrsh(w1, ptr(x2, 1)));  // LDURSH
    511   TEST_INSTRUCTION("4110C079", ldrsh(w1, ptr(x2, 8)));
    512   TEST_INSTRUCTION("41D0DF78", ldrsh(w1, ptr(x2, -3))); // LDURSH
    513   TEST_INSTRUCTION("4170DF78", ldrsh(w1, ptr(x2, -9))); // LDURSH
    514   TEST_INSTRUCTION("4168A378", ldrsh(x1, ptr(x2, x3)));
    515   TEST_INSTRUCTION("41108078", ldrsh(x1, ptr(x2, 1)));  // LDURSH
    516   TEST_INSTRUCTION("41108079", ldrsh(x1, ptr(x2, 8)));
    517   TEST_INSTRUCTION("41D09F78", ldrsh(x1, ptr(x2, -3))); // LDURSH
    518   TEST_INSTRUCTION("41709F78", ldrsh(x1, ptr(x2, -9))); // LDURSH
    519   TEST_INSTRUCTION("410080B9", ldrsw(x1, ptr(x2)));
    520   TEST_INSTRUCTION("413080B9", ldrsw(x1, ptr(x2, 48)));
    521   TEST_INSTRUCTION("410C83B8", ldrsw(x1, ptr_pre(x2, 48)));
    522   TEST_INSTRUCTION("410483B8", ldrsw(x1, ptr_post(x2, 48)));
    523   TEST_INSTRUCTION("4168A3B8", ldrsw(x1, ptr(x2, x3)));
    524   TEST_INSTRUCTION("411080B8", ldrsw(x1, ptr(x2, 1)));  // LDURSW
    525   TEST_INSTRUCTION("413080B8", ldrsw(x1, ptr(x2, 3)));  // LDURSW
    526   TEST_INSTRUCTION("41709FB8", ldrsw(x1, ptr(x2, -9))); // LDURSW
    527   TEST_INSTRUCTION("410420F8", ldraa(x1, ptr(x2)));
    528   TEST_INSTRUCTION("410460F8", ldraa(x1, ptr(x2, -4096)));
    529   TEST_INSTRUCTION("410C60F8", ldraa(x1, ptr_pre(x2, -4096)));
    530   TEST_INSTRUCTION("41FC3FF8", ldraa(x1, ptr_pre(x2, 4088)));
    531   TEST_INSTRUCTION("E10720F8", ldraa(x1, ptr(sp)));
    532   TEST_INSTRUCTION("E10760F8", ldraa(x1, ptr(sp, -4096)));
    533   TEST_INSTRUCTION("E10F60F8", ldraa(x1, ptr_pre(sp, -4096)));
    534   TEST_INSTRUCTION("E1FF3FF8", ldraa(x1, ptr_pre(sp, 4088)));
    535   TEST_INSTRUCTION("4104A0F8", ldrab(x1, ptr(x2)));
    536   TEST_INSTRUCTION("4104E0F8", ldrab(x1, ptr(x2, -4096)));
    537   TEST_INSTRUCTION("410CE0F8", ldrab(x1, ptr_pre(x2, -4096)));
    538   TEST_INSTRUCTION("41FCBFF8", ldrab(x1, ptr_pre(x2, 4088)));
    539   TEST_INSTRUCTION("E107A0F8", ldrab(x1, ptr(sp)));
    540   TEST_INSTRUCTION("E107E0F8", ldrab(x1, ptr(sp, -4096)));
    541   TEST_INSTRUCTION("E10FE0F8", ldrab(x1, ptr_pre(sp, -4096)));
    542   TEST_INSTRUCTION("E1FFBFF8", ldrab(x1, ptr_pre(sp, 4088)));
    543   TEST_INSTRUCTION("60DBA0B8", ldrsw(x0, ptr(x27, w0, sxtw(2))));
    544   TEST_INSTRUCTION("623021B8", ldset(w1, w2, ptr(x3)));
    545   TEST_INSTRUCTION("E23321B8", ldset(w1, w2, ptr(sp)));
    546   TEST_INSTRUCTION("623021F8", ldset(x1, x2, ptr(x3)));
    547   TEST_INSTRUCTION("E23321F8", ldset(x1, x2, ptr(sp)));
    548   TEST_INSTRUCTION("6230A1B8", ldseta(w1, w2, ptr(x3)));
    549   TEST_INSTRUCTION("E233A1B8", ldseta(w1, w2, ptr(sp)));
    550   TEST_INSTRUCTION("6230A1F8", ldseta(x1, x2, ptr(x3)));
    551   TEST_INSTRUCTION("E233A1F8", ldseta(x1, x2, ptr(sp)));
    552   TEST_INSTRUCTION("6230A138", ldsetab(w1, w2, ptr(x3)));
    553   TEST_INSTRUCTION("E233A138", ldsetab(w1, w2, ptr(sp)));
    554   TEST_INSTRUCTION("6230A178", ldsetah(w1, w2, ptr(x3)));
    555   TEST_INSTRUCTION("E233A178", ldsetah(w1, w2, ptr(sp)));
    556   TEST_INSTRUCTION("6230E1B8", ldsetal(w1, w2, ptr(x3)));
    557   TEST_INSTRUCTION("E233E1B8", ldsetal(w1, w2, ptr(sp)));
    558   TEST_INSTRUCTION("6230E1F8", ldsetal(x1, x2, ptr(x3)));
    559   TEST_INSTRUCTION("E233E1F8", ldsetal(x1, x2, ptr(sp)));
    560   TEST_INSTRUCTION("6230E178", ldsetalh(w1, w2, ptr(x3)));
    561   TEST_INSTRUCTION("E233E178", ldsetalh(w1, w2, ptr(sp)));
    562   TEST_INSTRUCTION("6230E138", ldsetalb(w1, w2, ptr(x3)));
    563   TEST_INSTRUCTION("E233E138", ldsetalb(w1, w2, ptr(sp)));
    564   TEST_INSTRUCTION("62302138", ldsetb(w1, w2, ptr(x3)));
    565   TEST_INSTRUCTION("E2332138", ldsetb(w1, w2, ptr(sp)));
    566   TEST_INSTRUCTION("62302178", ldseth(w1, w2, ptr(x3)));
    567   TEST_INSTRUCTION("E2332178", ldseth(w1, w2, ptr(sp)));
    568   TEST_INSTRUCTION("623061B8", ldsetl(w1, w2, ptr(x3)));
    569   TEST_INSTRUCTION("E23361B8", ldsetl(w1, w2, ptr(sp)));
    570   TEST_INSTRUCTION("623061F8", ldsetl(x1, x2, ptr(x3)));
    571   TEST_INSTRUCTION("E23361F8", ldsetl(x1, x2, ptr(sp)));
    572   TEST_INSTRUCTION("62306138", ldsetlb(w1, w2, ptr(x3)));
    573   TEST_INSTRUCTION("E2336138", ldsetlb(w1, w2, ptr(sp)));
    574   TEST_INSTRUCTION("62306178", ldsetlh(w1, w2, ptr(x3)));
    575   TEST_INSTRUCTION("E2336178", ldsetlh(w1, w2, ptr(sp)));
    576   TEST_INSTRUCTION("624021B8", ldsmax(w1, w2, ptr(x3)));
    577   TEST_INSTRUCTION("E24321B8", ldsmax(w1, w2, ptr(sp)));
    578   TEST_INSTRUCTION("624021F8", ldsmax(x1, x2, ptr(x3)));
    579   TEST_INSTRUCTION("E24321F8", ldsmax(x1, x2, ptr(sp)));
    580   TEST_INSTRUCTION("6240A1B8", ldsmaxa(w1, w2, ptr(x3)));
    581   TEST_INSTRUCTION("E243A1B8", ldsmaxa(w1, w2, ptr(sp)));
    582   TEST_INSTRUCTION("6240A1F8", ldsmaxa(x1, x2, ptr(x3)));
    583   TEST_INSTRUCTION("E243A1F8", ldsmaxa(x1, x2, ptr(sp)));
    584   TEST_INSTRUCTION("6240A138", ldsmaxab(w1, w2, ptr(x3)));
    585   TEST_INSTRUCTION("E243A138", ldsmaxab(w1, w2, ptr(sp)));
    586   TEST_INSTRUCTION("6240A178", ldsmaxah(w1, w2, ptr(x3)));
    587   TEST_INSTRUCTION("E243A178", ldsmaxah(w1, w2, ptr(sp)));
    588   TEST_INSTRUCTION("6240E1B8", ldsmaxal(w1, w2, ptr(x3)));
    589   TEST_INSTRUCTION("E243E1B8", ldsmaxal(w1, w2, ptr(sp)));
    590   TEST_INSTRUCTION("6240E1F8", ldsmaxal(x1, x2, ptr(x3)));
    591   TEST_INSTRUCTION("E243E1F8", ldsmaxal(x1, x2, ptr(sp)));
    592   TEST_INSTRUCTION("6240E138", ldsmaxalb(w1, w2, ptr(x3)));
    593   TEST_INSTRUCTION("E243E138", ldsmaxalb(w1, w2, ptr(sp)));
    594   TEST_INSTRUCTION("6240E178", ldsmaxalh(w1, w2, ptr(x3)));
    595   TEST_INSTRUCTION("E243E178", ldsmaxalh(w1, w2, ptr(sp)));
    596   TEST_INSTRUCTION("62402138", ldsmaxb(w1, w2, ptr(x3)));
    597   TEST_INSTRUCTION("E2432138", ldsmaxb(w1, w2, ptr(sp)));
    598   TEST_INSTRUCTION("62402178", ldsmaxh(w1, w2, ptr(x3)));
    599   TEST_INSTRUCTION("E2432178", ldsmaxh(w1, w2, ptr(sp)));
    600   TEST_INSTRUCTION("624061B8", ldsmaxl(w1, w2, ptr(x3)));
    601   TEST_INSTRUCTION("E24361B8", ldsmaxl(w1, w2, ptr(sp)));
    602   TEST_INSTRUCTION("624061F8", ldsmaxl(x1, x2, ptr(x3)));
    603   TEST_INSTRUCTION("E24361F8", ldsmaxl(x1, x2, ptr(sp)));
    604   TEST_INSTRUCTION("62406138", ldsmaxlb(w1, w2, ptr(x3)));
    605   TEST_INSTRUCTION("E2436138", ldsmaxlb(w1, w2, ptr(sp)));
    606   TEST_INSTRUCTION("62406178", ldsmaxlh(w1, w2, ptr(x3)));
    607   TEST_INSTRUCTION("E2436178", ldsmaxlh(w1, w2, ptr(sp)));
    608   TEST_INSTRUCTION("625021B8", ldsmin(w1, w2, ptr(x3)));
    609   TEST_INSTRUCTION("E25321B8", ldsmin(w1, w2, ptr(sp)));
    610   TEST_INSTRUCTION("625021F8", ldsmin(x1, x2, ptr(x3)));
    611   TEST_INSTRUCTION("E25321F8", ldsmin(x1, x2, ptr(sp)));
    612   TEST_INSTRUCTION("6250A1B8", ldsmina(w1, w2, ptr(x3)));
    613   TEST_INSTRUCTION("E253A1B8", ldsmina(w1, w2, ptr(sp)));
    614   TEST_INSTRUCTION("6250A1F8", ldsmina(x1, x2, ptr(x3)));
    615   TEST_INSTRUCTION("E253A1F8", ldsmina(x1, x2, ptr(sp)));
    616   TEST_INSTRUCTION("6250A138", ldsminab(w1, w2, ptr(x3)));
    617   TEST_INSTRUCTION("E253A138", ldsminab(w1, w2, ptr(sp)));
    618   TEST_INSTRUCTION("6250A178", ldsminah(w1, w2, ptr(x3)));
    619   TEST_INSTRUCTION("E253A178", ldsminah(w1, w2, ptr(sp)));
    620   TEST_INSTRUCTION("6250E1B8", ldsminal(w1, w2, ptr(x3)));
    621   TEST_INSTRUCTION("E253E1B8", ldsminal(w1, w2, ptr(sp)));
    622   TEST_INSTRUCTION("6250E1F8", ldsminal(x1, x2, ptr(x3)));
    623   TEST_INSTRUCTION("E253E1F8", ldsminal(x1, x2, ptr(sp)));
    624   TEST_INSTRUCTION("6250E138", ldsminalb(w1, w2, ptr(x3)));
    625   TEST_INSTRUCTION("E253E138", ldsminalb(w1, w2, ptr(sp)));
    626   TEST_INSTRUCTION("6250E178", ldsminalh(w1, w2, ptr(x3)));
    627   TEST_INSTRUCTION("E253E178", ldsminalh(w1, w2, ptr(sp)));
    628   TEST_INSTRUCTION("62502138", ldsminb(w1, w2, ptr(x3)));
    629   TEST_INSTRUCTION("E2532138", ldsminb(w1, w2, ptr(sp)));
    630   TEST_INSTRUCTION("62502178", ldsminh(w1, w2, ptr(x3)));
    631   TEST_INSTRUCTION("E2532178", ldsminh(w1, w2, ptr(sp)));
    632   TEST_INSTRUCTION("625061B8", ldsminl(w1, w2, ptr(x3)));
    633   TEST_INSTRUCTION("E25361B8", ldsminl(w1, w2, ptr(sp)));
    634   TEST_INSTRUCTION("625061F8", ldsminl(x1, x2, ptr(x3)));
    635   TEST_INSTRUCTION("E25361F8", ldsminl(x1, x2, ptr(sp)));
    636   TEST_INSTRUCTION("62506138", ldsminlb(w1, w2, ptr(x3)));
    637   TEST_INSTRUCTION("E2536138", ldsminlb(w1, w2, ptr(sp)));
    638   TEST_INSTRUCTION("62506178", ldsminlh(w1, w2, ptr(x3)));
    639   TEST_INSTRUCTION("E2536178", ldsminlh(w1, w2, ptr(sp)));
    640   TEST_INSTRUCTION("410840B8", ldtr(w1, ptr(x2)));
    641   TEST_INSTRUCTION("411848B8", ldtr(w1, ptr(x2, 129)));
    642   TEST_INSTRUCTION("E10B40B8", ldtr(w1, ptr(sp)));
    643   TEST_INSTRUCTION("E11B48B8", ldtr(w1, ptr(sp, 129)));
    644   TEST_INSTRUCTION("410840F8", ldtr(x1, ptr(x2)));
    645   TEST_INSTRUCTION("411848F8", ldtr(x1, ptr(x2, 129)));
    646   TEST_INSTRUCTION("E10B40F8", ldtr(x1, ptr(sp)));
    647   TEST_INSTRUCTION("E11B48F8", ldtr(x1, ptr(sp, 129)));
    648   TEST_INSTRUCTION("41084038", ldtrb(w1, ptr(x2)));
    649   TEST_INSTRUCTION("41184838", ldtrb(w1, ptr(x2, 129)));
    650   TEST_INSTRUCTION("E10B4038", ldtrb(w1, ptr(sp)));
    651   TEST_INSTRUCTION("E11B4838", ldtrb(w1, ptr(sp, 129)));
    652   TEST_INSTRUCTION("41084078", ldtrh(w1, ptr(x2)));
    653   TEST_INSTRUCTION("41184878", ldtrh(w1, ptr(x2, 129)));
    654   TEST_INSTRUCTION("E10B4078", ldtrh(w1, ptr(sp)));
    655   TEST_INSTRUCTION("E11B4878", ldtrh(w1, ptr(sp, 129)));
    656   TEST_INSTRUCTION("4108C038", ldtrsb(w1, ptr(x2)));
    657   TEST_INSTRUCTION("4118C838", ldtrsb(w1, ptr(x2, 129)));
    658   TEST_INSTRUCTION("E10BC038", ldtrsb(w1, ptr(sp)));
    659   TEST_INSTRUCTION("E11BC838", ldtrsb(w1, ptr(sp, 129)));
    660   TEST_INSTRUCTION("4108C078", ldtrsh(w1, ptr(x2)));
    661   TEST_INSTRUCTION("4118C878", ldtrsh(w1, ptr(x2, 129)));
    662   TEST_INSTRUCTION("E10BC078", ldtrsh(w1, ptr(sp)));
    663   TEST_INSTRUCTION("E11BC878", ldtrsh(w1, ptr(sp, 129)));
    664   TEST_INSTRUCTION("410880B8", ldtrsw(x1, ptr(x2)));
    665   TEST_INSTRUCTION("411888B8", ldtrsw(x1, ptr(x2, 129)));
    666   TEST_INSTRUCTION("E10B80B8", ldtrsw(x1, ptr(sp)));
    667   TEST_INSTRUCTION("E11B88B8", ldtrsw(x1, ptr(sp, 129)));
    668   TEST_INSTRUCTION("626021B8", ldumax(w1, w2, ptr(x3)));
    669   TEST_INSTRUCTION("E26321B8", ldumax(w1, w2, ptr(sp)));
    670   TEST_INSTRUCTION("626021F8", ldumax(x1, x2, ptr(x3)));
    671   TEST_INSTRUCTION("E26321F8", ldumax(x1, x2, ptr(sp)));
    672   TEST_INSTRUCTION("6260A1B8", ldumaxa(w1, w2, ptr(x3)));
    673   TEST_INSTRUCTION("E263A1B8", ldumaxa(w1, w2, ptr(sp)));
    674   TEST_INSTRUCTION("6260A1F8", ldumaxa(x1, x2, ptr(x3)));
    675   TEST_INSTRUCTION("E263A1F8", ldumaxa(x1, x2, ptr(sp)));
    676   TEST_INSTRUCTION("6260A138", ldumaxab(w1, w2, ptr(x3)));
    677   TEST_INSTRUCTION("E263A138", ldumaxab(w1, w2, ptr(sp)));
    678   TEST_INSTRUCTION("6260A178", ldumaxah(w1, w2, ptr(x3)));
    679   TEST_INSTRUCTION("E263A178", ldumaxah(w1, w2, ptr(sp)));
    680   TEST_INSTRUCTION("6260E1B8", ldumaxal(w1, w2, ptr(x3)));
    681   TEST_INSTRUCTION("E263E1B8", ldumaxal(w1, w2, ptr(sp)));
    682   TEST_INSTRUCTION("6260E1F8", ldumaxal(x1, x2, ptr(x3)));
    683   TEST_INSTRUCTION("E263E1F8", ldumaxal(x1, x2, ptr(sp)));
    684   TEST_INSTRUCTION("6260E138", ldumaxalb(w1, w2, ptr(x3)));
    685   TEST_INSTRUCTION("E263E138", ldumaxalb(w1, w2, ptr(sp)));
    686   TEST_INSTRUCTION("6260E178", ldumaxalh(w1, w2, ptr(x3)));
    687   TEST_INSTRUCTION("E263E178", ldumaxalh(w1, w2, ptr(sp)));
    688   TEST_INSTRUCTION("62602138", ldumaxb(w1, w2, ptr(x3)));
    689   TEST_INSTRUCTION("E2632138", ldumaxb(w1, w2, ptr(sp)));
    690   TEST_INSTRUCTION("62602178", ldumaxh(w1, w2, ptr(x3)));
    691   TEST_INSTRUCTION("E2632178", ldumaxh(w1, w2, ptr(sp)));
    692   TEST_INSTRUCTION("626061B8", ldumaxl(w1, w2, ptr(x3)));
    693   TEST_INSTRUCTION("E26361B8", ldumaxl(w1, w2, ptr(sp)));
    694   TEST_INSTRUCTION("626061F8", ldumaxl(x1, x2, ptr(x3)));
    695   TEST_INSTRUCTION("E26361F8", ldumaxl(x1, x2, ptr(sp)));
    696   TEST_INSTRUCTION("62606138", ldumaxlb(w1, w2, ptr(x3)));
    697   TEST_INSTRUCTION("E2636138", ldumaxlb(w1, w2, ptr(sp)));
    698   TEST_INSTRUCTION("62606178", ldumaxlh(w1, w2, ptr(x3)));
    699   TEST_INSTRUCTION("E2636178", ldumaxlh(w1, w2, ptr(sp)));
    700   TEST_INSTRUCTION("627021B8", ldumin(w1, w2, ptr(x3)));
    701   TEST_INSTRUCTION("E27321B8", ldumin(w1, w2, ptr(sp)));
    702   TEST_INSTRUCTION("627021F8", ldumin(x1, x2, ptr(x3)));
    703   TEST_INSTRUCTION("E27321F8", ldumin(x1, x2, ptr(sp)));
    704   TEST_INSTRUCTION("6270A1B8", ldumina(w1, w2, ptr(x3)));
    705   TEST_INSTRUCTION("E273A1B8", ldumina(w1, w2, ptr(sp)));
    706   TEST_INSTRUCTION("6270A1F8", ldumina(x1, x2, ptr(x3)));
    707   TEST_INSTRUCTION("E273A1F8", ldumina(x1, x2, ptr(sp)));
    708   TEST_INSTRUCTION("6270A138", lduminab(w1, w2, ptr(x3)));
    709   TEST_INSTRUCTION("E273A138", lduminab(w1, w2, ptr(sp)));
    710   TEST_INSTRUCTION("6270A178", lduminah(w1, w2, ptr(x3)));
    711   TEST_INSTRUCTION("E273A178", lduminah(w1, w2, ptr(sp)));
    712   TEST_INSTRUCTION("6270E1B8", lduminal(w1, w2, ptr(x3)));
    713   TEST_INSTRUCTION("E273E1B8", lduminal(w1, w2, ptr(sp)));
    714   TEST_INSTRUCTION("6270E1F8", lduminal(x1, x2, ptr(x3)));
    715   TEST_INSTRUCTION("E273E1F8", lduminal(x1, x2, ptr(sp)));
    716   TEST_INSTRUCTION("6270E138", lduminalb(w1, w2, ptr(x3)));
    717   TEST_INSTRUCTION("E273E138", lduminalb(w1, w2, ptr(sp)));
    718   TEST_INSTRUCTION("6270E178", lduminalh(w1, w2, ptr(x3)));
    719   TEST_INSTRUCTION("E273E178", lduminalh(w1, w2, ptr(sp)));
    720   TEST_INSTRUCTION("62702138", lduminb(w1, w2, ptr(x3)));
    721   TEST_INSTRUCTION("E2732138", lduminb(w1, w2, ptr(sp)));
    722   TEST_INSTRUCTION("62702178", lduminh(w1, w2, ptr(x3)));
    723   TEST_INSTRUCTION("E2732178", lduminh(w1, w2, ptr(sp)));
    724   TEST_INSTRUCTION("627061B8", lduminl(w1, w2, ptr(x3)));
    725   TEST_INSTRUCTION("E27361B8", lduminl(w1, w2, ptr(sp)));
    726   TEST_INSTRUCTION("627061F8", lduminl(x1, x2, ptr(x3)));
    727   TEST_INSTRUCTION("E27361F8", lduminl(x1, x2, ptr(sp)));
    728   TEST_INSTRUCTION("62706138", lduminlb(w1, w2, ptr(x3)));
    729   TEST_INSTRUCTION("E2736138", lduminlb(w1, w2, ptr(sp)));
    730   TEST_INSTRUCTION("62706178", lduminlh(w1, w2, ptr(x3)));
    731   TEST_INSTRUCTION("E2736178", lduminlh(w1, w2, ptr(sp)));
    732   TEST_INSTRUCTION("410040B8", ldur(w1, ptr(x2)));
    733   TEST_INSTRUCTION("411048B8", ldur(w1, ptr(x2, 129)));
    734   TEST_INSTRUCTION("E10340B8", ldur(w1, ptr(sp)));
    735   TEST_INSTRUCTION("E11348B8", ldur(w1, ptr(sp, 129)));
    736   TEST_INSTRUCTION("410040F8", ldur(x1, ptr(x2)));
    737   TEST_INSTRUCTION("411048F8", ldur(x1, ptr(x2, 129)));
    738   TEST_INSTRUCTION("E10340F8", ldur(x1, ptr(sp)));
    739   TEST_INSTRUCTION("E11348F8", ldur(x1, ptr(sp, 129)));
    740   TEST_INSTRUCTION("41004038", ldurb(w1, ptr(x2)));
    741   TEST_INSTRUCTION("41104838", ldurb(w1, ptr(x2, 129)));
    742   TEST_INSTRUCTION("E1034038", ldurb(w1, ptr(sp)));
    743   TEST_INSTRUCTION("E1134838", ldurb(w1, ptr(sp, 129)));
    744   TEST_INSTRUCTION("41004078", ldurh(w1, ptr(x2)));
    745   TEST_INSTRUCTION("41104878", ldurh(w1, ptr(x2, 129)));
    746   TEST_INSTRUCTION("E1034078", ldurh(w1, ptr(sp)));
    747   TEST_INSTRUCTION("E1134878", ldurh(w1, ptr(sp, 129)));
    748   TEST_INSTRUCTION("4100C038", ldursb(w1, ptr(x2)));
    749   TEST_INSTRUCTION("4110C838", ldursb(w1, ptr(x2, 129)));
    750   TEST_INSTRUCTION("E103C038", ldursb(w1, ptr(sp)));
    751   TEST_INSTRUCTION("E113C838", ldursb(w1, ptr(sp, 129)));
    752   TEST_INSTRUCTION("4100C078", ldursh(w1, ptr(x2)));
    753   TEST_INSTRUCTION("4110C878", ldursh(w1, ptr(x2, 129)));
    754   TEST_INSTRUCTION("E103C078", ldursh(w1, ptr(sp)));
    755   TEST_INSTRUCTION("E113C878", ldursh(w1, ptr(sp, 129)));
    756   TEST_INSTRUCTION("410080B8", ldursw(x1, ptr(x2)));
    757   TEST_INSTRUCTION("411088B8", ldursw(x1, ptr(x2, 129)));
    758   TEST_INSTRUCTION("E10380B8", ldursw(x1, ptr(sp)));
    759   TEST_INSTRUCTION("E11388B8", ldursw(x1, ptr(sp, 129)));
    760   TEST_INSTRUCTION("420080B8", ldursw(x2, ptr(x2)));
    761   TEST_INSTRUCTION("421088B8", ldursw(x2, ptr(x2, 129)));
    762   TEST_INSTRUCTION("E20380B8", ldursw(x2, ptr(sp)));
    763   TEST_INSTRUCTION("E21388B8", ldursw(x2, ptr(sp, 129)));
    764   TEST_INSTRUCTION("61087F88", ldxp(w1, w2, ptr(x3)));
    765   TEST_INSTRUCTION("E10B7F88", ldxp(w1, w2, ptr(sp)));
    766   TEST_INSTRUCTION("61087FC8", ldxp(x1, x2, ptr(x3)));
    767   TEST_INSTRUCTION("E10B7FC8", ldxp(x1, x2, ptr(sp)));
    768   TEST_INSTRUCTION("417C5F88", ldxr(w1, ptr(x2)));
    769   TEST_INSTRUCTION("E17F5F88", ldxr(w1, ptr(sp)));
    770   TEST_INSTRUCTION("417C5FC8", ldxr(x1, ptr(x2)));
    771   TEST_INSTRUCTION("E17F5FC8", ldxr(x1, ptr(sp)));
    772   TEST_INSTRUCTION("417C5F08", ldxrb(w1, ptr(x2)));
    773   TEST_INSTRUCTION("E17F5F08", ldxrb(w1, ptr(sp)));
    774   TEST_INSTRUCTION("417C5F48", ldxrh(w1, ptr(x2)));
    775   TEST_INSTRUCTION("E17F5F48", ldxrh(w1, ptr(sp)));
    776   TEST_INSTRUCTION("4120C31A", lsl(w1, w2, w3));
    777   TEST_INSTRUCTION("4120C39A", lsl(x1, x2, x3));
    778   TEST_INSTRUCTION("41401153", lsl(w1, w2, 15));
    779   TEST_INSTRUCTION("41C071D3", lsl(x1, x2, 15));
    780   TEST_INSTRUCTION("4120C31A", lslv(w1, w2, w3));
    781   TEST_INSTRUCTION("4120C39A", lslv(x1, x2, x3));
    782   TEST_INSTRUCTION("4124C31A", lsr(w1, w2, w3));
    783   TEST_INSTRUCTION("4124C39A", lsr(x1, x2, x3));
    784   TEST_INSTRUCTION("417C0F53", lsr(w1, w2, 15));
    785   TEST_INSTRUCTION("41FC4FD3", lsr(x1, x2, 15));
    786   TEST_INSTRUCTION("4124C31A", lsrv(w1, w2, w3));
    787   TEST_INSTRUCTION("4124C39A", lsrv(x1, x2, x3));
    788   TEST_INSTRUCTION("4110031B", madd(w1, w2, w3, w4));
    789   TEST_INSTRUCTION("4110039B", madd(x1, x2, x3, x4));
    790   TEST_INSTRUCTION("41FC031B", mneg(w1, w2, w3));
    791   TEST_INSTRUCTION("41FC039B", mneg(x1, x2, x3));
    792   TEST_INSTRUCTION("E103022A", mov(w1, w2));
    793   TEST_INSTRUCTION("E10302AA", mov(x1, x2));
    794   TEST_INSTRUCTION("01008052", mov(w1, 0));
    795   TEST_INSTRUCTION("01008012", mov(w1, -1));
    796   TEST_INSTRUCTION("21008052", mov(w1, 1));
    797   TEST_INSTRUCTION("41008052", mov(w1, 2));
    798   TEST_INSTRUCTION("61008052", mov(w1, 3));
    799   TEST_INSTRUCTION("81008052", mov(w1, 4));
    800   TEST_INSTRUCTION("A1008052", mov(w1, 5));
    801   TEST_INSTRUCTION("C1008052", mov(w1, 6));
    802   TEST_INSTRUCTION("E1008052", mov(w1, 7));
    803   TEST_INSTRUCTION("01018052", mov(w1, 8));
    804   TEST_INSTRUCTION("21018052", mov(w1, 9));
    805   TEST_INSTRUCTION("41018052", mov(w1, 10));
    806   TEST_INSTRUCTION("8146A252", mov(w1, 0x12340000));
    807   TEST_INSTRUCTION("81468252", mov(w1, 0x00001234));
    808   TEST_INSTRUCTION("61B9BD12", mov(w1, 0x1234FFFF));
    809   TEST_INSTRUCTION("61B99D12", mov(w1, 0xFFFF1234));
    810   TEST_INSTRUCTION("010080D2", mov(x1, 0));
    811   TEST_INSTRUCTION("01008092", mov(x1, -1));
    812   TEST_INSTRUCTION("8146E2D2", mov(x1, 0x1234000000000000));
    813   TEST_INSTRUCTION("8146C2D2", mov(x1, 0x0000123400000000));
    814   TEST_INSTRUCTION("8146A2D2", mov(x1, 0x0000000012340000));
    815   TEST_INSTRUCTION("814682D2", mov(x1, 0x0000000000001234));
    816   TEST_INSTRUCTION("61B9FD92", mov(x1, 0x1234FFFFFFFFFFFF));
    817   TEST_INSTRUCTION("61B9DD92", mov(x1, 0xFFFF1234FFFFFFFF));
    818   TEST_INSTRUCTION("61B9BD92", mov(x1, 0xFFFFFFFF1234FFFF));
    819   TEST_INSTRUCTION("61B99D92", mov(x1, 0xFFFFFFFFFFFF1234));
    820   TEST_INSTRUCTION("E1030011", mov(w1, wsp));
    821   TEST_INSTRUCTION("E1030091", mov(x1, sp));
    822   TEST_INSTRUCTION("3F000011", mov(wsp, w1));
    823   TEST_INSTRUCTION("FF3F0032", mov(wsp, 0xFFFF));
    824   TEST_INSTRUCTION("3F000091", mov(sp, x1));
    825   TEST_INSTRUCTION("FF3F40B2", mov(sp, 0xFFFF));
    826   TEST_INSTRUCTION("FF030011", mov(wsp, wsp));
    827   TEST_INSTRUCTION("FF030091", mov(sp, sp));
    828   TEST_INSTRUCTION("015138D5", mrs(x1, Predicate::SysReg::kAFSR0_EL1));
    829   TEST_INSTRUCTION("01423BD5", mrs(x1, Predicate::SysReg::kNZCV));
    830   TEST_INSTRUCTION("015118D5", msr(Predicate::SysReg::kAFSR0_EL1, x1));
    831   TEST_INSTRUCTION("01421BD5", msr(Predicate::SysReg::kNZCV, x1));
    832   TEST_INSTRUCTION("4190031B", msub(w1, w2, w3, w4));
    833   TEST_INSTRUCTION("4190039B", msub(x1, x2, x3, x4));
    834   TEST_INSTRUCTION("417C031B", mul(w1, w2, w3));
    835   TEST_INSTRUCTION("417C039B", mul(x1, x2, x3));
    836   TEST_INSTRUCTION("E103222A", mvn_(w1, w2));
    837   TEST_INSTRUCTION("E10322AA", mvn_(x1, x2));
    838   TEST_INSTRUCTION("E113222A", mvn_(w1, w2, lsl(4)));
    839   TEST_INSTRUCTION("E11322AA", mvn_(x1, x2, lsl(4)));
    840   TEST_INSTRUCTION("E103024B", neg(w1, w2));
    841   TEST_INSTRUCTION("E10302CB", neg(x1, x2));
    842   TEST_INSTRUCTION("E113024B", neg(w1, w2, lsl(4)));
    843   TEST_INSTRUCTION("E11302CB", neg(x1, x2, lsl(4)));
    844   TEST_INSTRUCTION("E103026B", negs(w1, w2));
    845   TEST_INSTRUCTION("E10302EB", negs(x1, x2));
    846   TEST_INSTRUCTION("E113026B", negs(w1, w2, lsl(4)));
    847   TEST_INSTRUCTION("E11302EB", negs(x1, x2, lsl(4)));
    848   TEST_INSTRUCTION("E103025A", ngc(w1, w2));
    849   TEST_INSTRUCTION("E10302DA", ngc(x1, x2));
    850   TEST_INSTRUCTION("E103027A", ngcs(w1, w2));
    851   TEST_INSTRUCTION("E10302FA", ngcs(x1, x2));
    852   TEST_INSTRUCTION("4100232A", orn(w1, w2, w3));
    853   TEST_INSTRUCTION("410023AA", orn(x1, x2, x3));
    854   TEST_INSTRUCTION("4110232A", orn(w1, w2, w3, lsl(4)));
    855   TEST_INSTRUCTION("411023AA", orn(x1, x2, x3, lsl(4)));
    856   TEST_INSTRUCTION("4100032A", orr(w1, w2, w3));
    857   TEST_INSTRUCTION("410003AA", orr(x1, x2, x3));
    858   TEST_INSTRUCTION("4110032A", orr(w1, w2, w3, lsl(4)));
    859   TEST_INSTRUCTION("411003AA", orr(x1, x2, x3, lsl(4)));
    860   TEST_INSTRUCTION("3F1C0032", orr(wsp, w1, 0xFF));
    861   TEST_INSTRUCTION("3F1C40B2", orr(sp, x1, 0xFF));
    862   TEST_INSTRUCTION("41001232", orr(w1, w2, 0x4000));
    863   TEST_INSTRUCTION("410071B2", orr(x1, x2, 0x8000));
    864   TEST_INSTRUCTION("E8030032", orr(w8, wzr, 0x1));
    865   TEST_INSTRUCTION("E80340B2", orr(x8, xzr, 0x1));
    866   TEST_INSTRUCTION("4108C1DA", pacda(x1, x2));
    867   TEST_INSTRUCTION("E10BC1DA", pacda(x1, sp));
    868   TEST_INSTRUCTION("410CC1DA", pacdb(x1, x2));
    869   TEST_INSTRUCTION("E10FC1DA", pacdb(x1, sp));
    870   TEST_INSTRUCTION("E12BC1DA", pacdza(x1));
    871   TEST_INSTRUCTION("F42BC1DA", pacdza(x20));
    872   TEST_INSTRUCTION("E12FC1DA", pacdzb(x1));
    873   TEST_INSTRUCTION("F42FC1DA", pacdzb(x20));
    874   TEST_INSTRUCTION("4130C39A", pacga(x1, x2, x3));
    875   TEST_INSTRUCTION("4130DF9A", pacga(x1, x2, sp));
    876   TEST_INSTRUCTION("204080F9", prfm(Predicate::PRFOp::kPLDL1KEEP, ptr(x1, 128)));
    877   TEST_INSTRUCTION("401098F8", prfm(Predicate::PRFOp::kPLDL1KEEP, ptr(x2, -127)));
    878   TEST_INSTRUCTION("601088F8", prfm(Predicate::PRFOp::kPLDL1KEEP, ptr(x3, 129)));
    879   TEST_INSTRUCTION("6068A4F8", prfm(Predicate::PRFOp::kPLDL1KEEP, ptr(x3, x4)));
    880   TEST_INSTRUCTION("6078A4F8", prfm(Predicate::PRFOp::kPLDL1KEEP, ptr(x3, x4, lsl(3))));
    881   TEST_INSTRUCTION("60C8A4F8", prfm(Predicate::PRFOp::kPLDL1KEEP, ptr(x3, x4, sxtw(0))));
    882   TEST_INSTRUCTION("73D8A4F8", prfm(Predicate::PRFOp::kPSTL2STRM, ptr(x3, x4, sxtw(3))));
    883   TEST_INSTRUCTION("9F3403D5", pssbb());
    884   TEST_INSTRUCTION("4100C05A", rbit(w1, w2));
    885   TEST_INSTRUCTION("4100C0DA", rbit(x1, x2));
    886   TEST_INSTRUCTION("4108C05A", rev(w1, w2));
    887   TEST_INSTRUCTION("410CC0DA", rev(x1, x2));
    888   TEST_INSTRUCTION("4104C05A", rev16(w1, w2));
    889   TEST_INSTRUCTION("4104C0DA", rev16(x1, x2));
    890   TEST_INSTRUCTION("4108C0DA", rev32(x1, x2));
    891   TEST_INSTRUCTION("410CC0DA", rev64(x1, x2));
    892   TEST_INSTRUCTION("412CC31A", ror(w1, w2, w3));
    893   TEST_INSTRUCTION("412CC39A", ror(x1, x2, x3));
    894   TEST_INSTRUCTION("413C8213", ror(w1, w2, 15));
    895   TEST_INSTRUCTION("413CC293", ror(x1, x2, 15));
    896   TEST_INSTRUCTION("412CC31A", rorv(w1, w2, w3));
    897   TEST_INSTRUCTION("412CC39A", rorv(x1, x2, x3));
    898   TEST_INSTRUCTION("4100035A", sbc(w1, w2, w3));
    899   TEST_INSTRUCTION("410003DA", sbc(x1, x2, x3));
    900   TEST_INSTRUCTION("4100037A", sbcs(w1, w2, w3));
    901   TEST_INSTRUCTION("410003FA", sbcs(x1, x2, x3));
    902   TEST_INSTRUCTION("41241B13", sbfiz(w1, w2, 5, 10));
    903   TEST_INSTRUCTION("41247B93", sbfiz(x1, x2, 5, 10));
    904   TEST_INSTRUCTION("41280513", sbfm(w1, w2, 5, 10));
    905   TEST_INSTRUCTION("41284593", sbfm(x1, x2, 5, 10));
    906   TEST_INSTRUCTION("41380513", sbfx(w1, w2, 5, 10));
    907   TEST_INSTRUCTION("41384593", sbfx(x1, x2, 5, 10));
    908   TEST_INSTRUCTION("410CC31A", sdiv(w1, w2, w3));
    909   TEST_INSTRUCTION("410CC39A", sdiv(x1, x2, x3));
    910   TEST_INSTRUCTION("2D08003A", setf8(w1));
    911   TEST_INSTRUCTION("2D48003A", setf16(w1));
    912   TEST_INSTRUCTION("4110239B", smaddl(x1, w2, w3, x4));
    913   TEST_INSTRUCTION("4160C31A", smax(w1, w2, w3));
    914   TEST_INSTRUCTION("4160C39A", smax(x1, x2, x3));
    915   TEST_INSTRUCTION("4134C011", smax(w1, w2, 13));
    916   TEST_INSTRUCTION("4134C091", smax(x1, x2, 13));
    917   TEST_INSTRUCTION("230000D4", smc(1));
    918   TEST_INSTRUCTION("4168C31A", smin(w1, w2, w3));
    919   TEST_INSTRUCTION("4168C39A", smin(x1, x2, x3));
    920   TEST_INSTRUCTION("4134C811", smin(w1, w2, 13));
    921   TEST_INSTRUCTION("4134C891", smin(x1, x2, 13));
    922   TEST_INSTRUCTION("41FC239B", smnegl(x1, w2, w3));
    923   TEST_INSTRUCTION("4190239B", smsubl(x1, w2, w3, x4));
    924   TEST_INSTRUCTION("417C439B", smulh(x1, x2, x3));
    925   TEST_INSTRUCTION("417C239B", smull(x1, w2, w3));
    926   TEST_INSTRUCTION("9F3003D5", ssbb());
    927   TEST_INSTRUCTION("4108A0D9", st2g(x1, ptr(x2)));
    928   TEST_INSTRUCTION("4188A0D9", st2g(x1, ptr(x2, 128)));
    929   TEST_INSTRUCTION("418CA0D9", st2g(x1, ptr_pre(x2, 128)));
    930   TEST_INSTRUCTION("4184A0D9", st2g(x1, ptr_post(x2, 128)));
    931   TEST_INSTRUCTION("E10BA0D9", st2g(x1, ptr(sp)));
    932   TEST_INSTRUCTION("E18BA0D9", st2g(x1, ptr(sp, 128)));
    933   TEST_INSTRUCTION("E18FA0D9", st2g(x1, ptr_pre(sp, 128)));
    934   TEST_INSTRUCTION("E187A0D9", st2g(x1, ptr_post(sp, 128)));
    935   TEST_INSTRUCTION("5F08A0D9", st2g(sp, ptr(x2)));
    936   TEST_INSTRUCTION("5F88A0D9", st2g(sp, ptr(x2, 128)));
    937   TEST_INSTRUCTION("5F8CA0D9", st2g(sp, ptr_pre(x2, 128)));
    938   TEST_INSTRUCTION("5F84A0D9", st2g(sp, ptr_post(x2, 128)));
    939   TEST_INSTRUCTION("FF0BA0D9", st2g(sp, ptr(sp)));
    940   TEST_INSTRUCTION("FF8BA0D9", st2g(sp, ptr(sp, 128)));
    941   TEST_INSTRUCTION("FF8FA0D9", st2g(sp, ptr_pre(sp, 128)));
    942   TEST_INSTRUCTION("FF87A0D9", st2g(sp, ptr_post(sp, 128)));
    943   TEST_INSTRUCTION("410820D9", stg(x1, ptr(x2)));
    944   TEST_INSTRUCTION("418820D9", stg(x1, ptr(x2, 128)));
    945   TEST_INSTRUCTION("418C20D9", stg(x1, ptr_pre(x2, 128)));
    946   TEST_INSTRUCTION("418420D9", stg(x1, ptr_post(x2, 128)));
    947   TEST_INSTRUCTION("E10B20D9", stg(x1, ptr(sp)));
    948   TEST_INSTRUCTION("E18B20D9", stg(x1, ptr(sp, 128)));
    949   TEST_INSTRUCTION("E18F20D9", stg(x1, ptr_pre(sp, 128)));
    950   TEST_INSTRUCTION("E18720D9", stg(x1, ptr_post(sp, 128)));
    951   TEST_INSTRUCTION("5F0820D9", stg(sp, ptr(x2)));
    952   TEST_INSTRUCTION("5F8820D9", stg(sp, ptr(x2, 128)));
    953   TEST_INSTRUCTION("5F8C20D9", stg(sp, ptr_pre(x2, 128)));
    954   TEST_INSTRUCTION("5F8420D9", stg(sp, ptr_post(x2, 128)));
    955   TEST_INSTRUCTION("FF0B20D9", stg(sp, ptr(sp)));
    956   TEST_INSTRUCTION("FF8B20D9", stg(sp, ptr(sp, 128)));
    957   TEST_INSTRUCTION("FF8F20D9", stg(sp, ptr_pre(sp, 128)));
    958   TEST_INSTRUCTION("FF8720D9", stg(sp, ptr_post(sp, 128)));
    959   TEST_INSTRUCTION("4100A0D9", stgm(x1, ptr(x2)));
    960   TEST_INSTRUCTION("E103A0D9", stgm(x1, ptr(sp)));
    961   TEST_INSTRUCTION("FF03A0D9", stgm(xzr, ptr(sp)));
    962   TEST_INSTRUCTION("61080069", stgp(x1, x2, ptr(x3)));
    963   TEST_INSTRUCTION("61082069", stgp(x1, x2, ptr(x3, -1024)));
    964   TEST_INSTRUCTION("6108A069", stgp(x1, x2, ptr_pre(x3, -1024)));
    965   TEST_INSTRUCTION("6108A068", stgp(x1, x2, ptr_post(x3, -1024)));
    966   TEST_INSTRUCTION("61881F69", stgp(x1, x2, ptr(x3, 1008)));
    967   TEST_INSTRUCTION("61889F69", stgp(x1, x2, ptr_pre(x3, 1008)));
    968   TEST_INSTRUCTION("61889F68", stgp(x1, x2, ptr_post(x3, 1008)));
    969   TEST_INSTRUCTION("E10B0069", stgp(x1, x2, ptr(sp)));
    970   TEST_INSTRUCTION("E10B2069", stgp(x1, x2, ptr(sp, -1024)));
    971   TEST_INSTRUCTION("E10BA069", stgp(x1, x2, ptr_pre(sp, -1024)));
    972   TEST_INSTRUCTION("E10BA068", stgp(x1, x2, ptr_post(sp, -1024)));
    973   TEST_INSTRUCTION("E18B1F69", stgp(x1, x2, ptr(sp, 1008)));
    974   TEST_INSTRUCTION("E18B9F69", stgp(x1, x2, ptr_pre(sp, 1008)));
    975   TEST_INSTRUCTION("E18B9F68", stgp(x1, x2, ptr_post(sp, 1008)));
    976   TEST_INSTRUCTION("41080029", stp(w1, w2, ptr(x2)));
    977   TEST_INSTRUCTION("41082029", stp(w1, w2, ptr(x2, -256)));
    978   TEST_INSTRUCTION("41881F29", stp(w1, w2, ptr(x2, 252)));
    979   TEST_INSTRUCTION("410800A9", stp(x1, x2, ptr(x2)));
    980   TEST_INSTRUCTION("410820A9", stp(x1, x2, ptr(x2, -512)));
    981   TEST_INSTRUCTION("41881FA9", stp(x1, x2, ptr(x2, 504)));
    982   TEST_INSTRUCTION("FB0F1FF8", str(x27, ptr_pre(sp, -16)));
    983   TEST_INSTRUCTION("411000B8", str(w1, ptr(x2, 1)));    // STUR
    984   TEST_INSTRUCTION("41D01FB8", str(w1, ptr(x2, -3)));   // STUR
    985   TEST_INSTRUCTION("41701FB8", str(w1, ptr(x2, -9)));   // STUR
    986   TEST_INSTRUCTION("411000F8", str(x1, ptr(x2, 1)));    // STUR
    987   TEST_INSTRUCTION("413000F8", str(x1, ptr(x2, 3)));    // STUR
    988   TEST_INSTRUCTION("41701FF8", str(x1, ptr(x2, -9)));   // STUR
    989   TEST_INSTRUCTION("41040039", strb(w1, ptr(x2, 1)));
    990   TEST_INSTRUCTION("41D01F38", strb(w1, ptr(x2, -3)));  // STURB
    991   TEST_INSTRUCTION("41701F38", strb(w1, ptr(x2, -9)));  // STURB
    992   TEST_INSTRUCTION("41100078", strh(w1, ptr(x2, 1)));   // STURH
    993   TEST_INSTRUCTION("41D01F78", strh(w1, ptr(x2, -3)));  // STURH
    994   TEST_INSTRUCTION("41701F78", strh(w1, ptr(x2, -9)));  // STURH
    995   TEST_INSTRUCTION("410800B8", sttr(w1, ptr(x2)));
    996   TEST_INSTRUCTION("411808B8", sttr(w1, ptr(x2, 129)));
    997   TEST_INSTRUCTION("E10B00B8", sttr(w1, ptr(sp)));
    998   TEST_INSTRUCTION("E11B08B8", sttr(w1, ptr(sp, 129)));
    999   TEST_INSTRUCTION("410800F8", sttr(x1, ptr(x2)));
   1000   TEST_INSTRUCTION("411808F8", sttr(x1, ptr(x2, 129)));
   1001   TEST_INSTRUCTION("E10B00F8", sttr(x1, ptr(sp)));
   1002   TEST_INSTRUCTION("E11B08F8", sttr(x1, ptr(sp, 129)));
   1003   TEST_INSTRUCTION("41080038", sttrb(w1, ptr(x2)));
   1004   TEST_INSTRUCTION("41180838", sttrb(w1, ptr(x2, 129)));
   1005   TEST_INSTRUCTION("E10B0038", sttrb(w1, ptr(sp)));
   1006   TEST_INSTRUCTION("E11B0838", sttrb(w1, ptr(sp, 129)));
   1007   TEST_INSTRUCTION("41080078", sttrh(w1, ptr(x2)));
   1008   TEST_INSTRUCTION("41180878", sttrh(w1, ptr(x2, 129)));
   1009   TEST_INSTRUCTION("E10B0078", sttrh(w1, ptr(sp)));
   1010   TEST_INSTRUCTION("E11B0878", sttrh(w1, ptr(sp, 129)));
   1011   TEST_INSTRUCTION("410000B8", stur(w1, ptr(x2)));
   1012   TEST_INSTRUCTION("411008B8", stur(w1, ptr(x2, 129)));
   1013   TEST_INSTRUCTION("E10300B8", stur(w1, ptr(sp)));
   1014   TEST_INSTRUCTION("E11308B8", stur(w1, ptr(sp, 129)));
   1015   TEST_INSTRUCTION("410000F8", stur(x1, ptr(x2)));
   1016   TEST_INSTRUCTION("411008F8", stur(x1, ptr(x2, 129)));
   1017   TEST_INSTRUCTION("E10300F8", stur(x1, ptr(sp)));
   1018   TEST_INSTRUCTION("E11308F8", stur(x1, ptr(sp, 129)));
   1019   TEST_INSTRUCTION("41000038", sturb(w1, ptr(x2)));
   1020   TEST_INSTRUCTION("41100838", sturb(w1, ptr(x2, 129)));
   1021   TEST_INSTRUCTION("E1030038", sturb(w1, ptr(sp)));
   1022   TEST_INSTRUCTION("E1130838", sturb(w1, ptr(sp, 129)));
   1023   TEST_INSTRUCTION("41000078", sturh(w1, ptr(x2)));
   1024   TEST_INSTRUCTION("41100878", sturh(w1, ptr(x2, 129)));
   1025   TEST_INSTRUCTION("E1030078", sturh(w1, ptr(sp)));
   1026   TEST_INSTRUCTION("E1130878", sturh(w1, ptr(sp, 129)));
   1027   TEST_INSTRUCTION("820C2188", stxp(w1, w2, w3, ptr(x4)));
   1028   TEST_INSTRUCTION("E20F2188", stxp(w1, w2, w3, ptr(sp)));
   1029   TEST_INSTRUCTION("820C21C8", stxp(w1, x2, x3, ptr(x4)));
   1030   TEST_INSTRUCTION("E20F21C8", stxp(w1, x2, x3, ptr(sp)));
   1031   TEST_INSTRUCTION("627C0188", stxr(w1, w2, ptr(x3)));
   1032   TEST_INSTRUCTION("E27F0188", stxr(w1, w2, ptr(sp)));
   1033   TEST_INSTRUCTION("627C01C8", stxr(w1, x2, ptr(x3)));
   1034   TEST_INSTRUCTION("E27F01C8", stxr(w1, x2, ptr(sp)));
   1035   TEST_INSTRUCTION("627C0108", stxrb(w1, w2, ptr(x3)));
   1036   TEST_INSTRUCTION("E27F0108", stxrb(w1, w2, ptr(sp)));
   1037   TEST_INSTRUCTION("627C0148", stxrh(w1, w2, ptr(x3)));
   1038   TEST_INSTRUCTION("E27F0148", stxrh(w1, w2, ptr(sp)));
   1039   TEST_INSTRUCTION("4108E0D9", stz2g(x1, ptr(x2)));
   1040   TEST_INSTRUCTION("4108F0D9", stz2g(x1, ptr(x2, -4096)));
   1041   TEST_INSTRUCTION("410CF0D9", stz2g(x1, ptr_pre(x2, -4096)));
   1042   TEST_INSTRUCTION("4104F0D9", stz2g(x1, ptr_post(x2, -4096)));
   1043   TEST_INSTRUCTION("41F8EFD9", stz2g(x1, ptr(x2, 4080)));
   1044   TEST_INSTRUCTION("41FCEFD9", stz2g(x1, ptr_pre(x2, 4080)));
   1045   TEST_INSTRUCTION("41F4EFD9", stz2g(x1, ptr_post(x2, 4080)));
   1046   TEST_INSTRUCTION("E10BE0D9", stz2g(x1, ptr(sp)));
   1047   TEST_INSTRUCTION("E10BF0D9", stz2g(x1, ptr(sp, -4096)));
   1048   TEST_INSTRUCTION("E10FF0D9", stz2g(x1, ptr_pre(sp, -4096)));
   1049   TEST_INSTRUCTION("E107F0D9", stz2g(x1, ptr_post(sp, -4096)));
   1050   TEST_INSTRUCTION("E1FBEFD9", stz2g(x1, ptr(sp, 4080)));
   1051   TEST_INSTRUCTION("E1FFEFD9", stz2g(x1, ptr_pre(sp, 4080)));
   1052   TEST_INSTRUCTION("E1F7EFD9", stz2g(x1, ptr_post(sp, 4080)));
   1053   TEST_INSTRUCTION("410860D9", stzg(x1, ptr(x2)));
   1054   TEST_INSTRUCTION("418860D9", stzg(x1, ptr(x2, 128)));
   1055   TEST_INSTRUCTION("418C60D9", stzg(x1, ptr_pre(x2, 128)));
   1056   TEST_INSTRUCTION("418460D9", stzg(x1, ptr_post(x2, 128)));
   1057   TEST_INSTRUCTION("E10B60D9", stzg(x1, ptr(sp)));
   1058   TEST_INSTRUCTION("E18B60D9", stzg(x1, ptr(sp, 128)));
   1059   TEST_INSTRUCTION("E18F60D9", stzg(x1, ptr_pre(sp, 128)));
   1060   TEST_INSTRUCTION("E18760D9", stzg(x1, ptr_post(sp, 128)));
   1061   TEST_INSTRUCTION("5F0860D9", stzg(sp, ptr(x2)));
   1062   TEST_INSTRUCTION("5F8860D9", stzg(sp, ptr(x2, 128)));
   1063   TEST_INSTRUCTION("5F8C60D9", stzg(sp, ptr_pre(x2, 128)));
   1064   TEST_INSTRUCTION("5F8460D9", stzg(sp, ptr_post(x2, 128)));
   1065   TEST_INSTRUCTION("FF0B60D9", stzg(sp, ptr(sp)));
   1066   TEST_INSTRUCTION("FF8B60D9", stzg(sp, ptr(sp, 128)));
   1067   TEST_INSTRUCTION("FF8F60D9", stzg(sp, ptr_pre(sp, 128)));
   1068   TEST_INSTRUCTION("FF8760D9", stzg(sp, ptr_post(sp, 128)));
   1069   TEST_INSTRUCTION("410020D9", stzgm(x1, ptr(x2)));
   1070   TEST_INSTRUCTION("E10320D9", stzgm(x1, ptr(sp)));
   1071   TEST_INSTRUCTION("4100034B", sub(w1, w2, w3));
   1072   TEST_INSTRUCTION("410003CB", sub(x1, x2, x3));
   1073   TEST_INSTRUCTION("410C034B", sub(w1, w2, w3, lsl(3)));
   1074   TEST_INSTRUCTION("410C03CB", sub(x1, x2, x3, lsl(3)));
   1075   TEST_INSTRUCTION("FF030451", sub(wsp, wsp, 256));
   1076   TEST_INSTRUCTION("FFFF3F51", sub(wsp, wsp, 0xFFF));
   1077   TEST_INSTRUCTION("FF0304D1", sub(sp, sp, 256));
   1078   TEST_INSTRUCTION("FFFF3FD1", sub(sp, sp, 0xFFF));
   1079   TEST_INSTRUCTION("412C82D1", subg(x1, x2, 32, 11));
   1080   TEST_INSTRUCTION("5F2C82D1", subg(sp, x2, 32, 11));
   1081   TEST_INSTRUCTION("E12F82D1", subg(x1, sp, 32, 11));
   1082   TEST_INSTRUCTION("4100C39A", subp(x1, x2, x3));
   1083   TEST_INSTRUCTION("E103C39A", subp(x1, sp, x3));
   1084   TEST_INSTRUCTION("4100DF9A", subp(x1, x2, sp));
   1085   TEST_INSTRUCTION("4100C3BA", subps(x1, x2, x3));
   1086   TEST_INSTRUCTION("E103C3BA", subps(x1, sp, x3));
   1087   TEST_INSTRUCTION("4100DFBA", subps(x1, x2, sp));
   1088   TEST_INSTRUCTION("4100036B", subs(w1, w2, w3));
   1089   TEST_INSTRUCTION("410003EB", subs(x1, x2, x3));
   1090   TEST_INSTRUCTION("410C036B", subs(w1, w2, w3, lsl(3)));
   1091   TEST_INSTRUCTION("410C03EB", subs(x1, x2, x3, lsl(3)));
   1092   TEST_INSTRUCTION("210000D4", svc(1));
   1093   TEST_INSTRUCTION("411C0013", sxtb(w1, w2));
   1094   TEST_INSTRUCTION("411C4093", sxtb(x1, w2));
   1095   TEST_INSTRUCTION("413C0013", sxth(w1, w2));
   1096   TEST_INSTRUCTION("413C4093", sxth(x1, w2));
   1097   TEST_INSTRUCTION("417C4093", sxtw(x1, w2));
   1098   TEST_INSTRUCTION("932309D5", sys(1, 2, 3, 4, x19));
   1099   TEST_INSTRUCTION("AF8708D5", tlbi(Predicate::TLBI::kVALE1, x15));
   1100   TEST_INSTRUCTION("3F000072", tst(w1, 1));
   1101   TEST_INSTRUCTION("3F0040F2", tst(x1, 1));
   1102   TEST_INSTRUCTION("3F00026A", tst(w1, w2));
   1103   TEST_INSTRUCTION("3F0002EA", tst(x1, x2));
   1104   TEST_INSTRUCTION("3F10026A", tst(w1, w2, lsl(4)));
   1105   TEST_INSTRUCTION("3F1002EA", tst(x1, x2, lsl(4)));
   1106   TEST_INSTRUCTION("00000000", udf(0));
   1107   TEST_INSTRUCTION("01800000", udf(0x8001));
   1108   TEST_INSTRUCTION("4108C31A", udiv(w1, w2, w3));
   1109   TEST_INSTRUCTION("4108C39A", udiv(x1, x2, x3));
   1110   TEST_INSTRUCTION("41241B53", ubfiz(w1, w2, 5, 10));
   1111   TEST_INSTRUCTION("41247BD3", ubfiz(x1, x2, 5, 10));
   1112   TEST_INSTRUCTION("41280553", ubfm(w1, w2, 5, 10));
   1113   TEST_INSTRUCTION("412845D3", ubfm(x1, x2, 5, 10));
   1114   TEST_INSTRUCTION("41380553", ubfx(w1, w2, 5, 10));
   1115   TEST_INSTRUCTION("413845D3", ubfx(x1, x2, 5, 10));
   1116   TEST_INSTRUCTION("4110A39B", umaddl(x1, w2, w3, x4));
   1117   TEST_INSTRUCTION("4164C31A", umax(w1, w2, w3));
   1118   TEST_INSTRUCTION("4164C39A", umax(x1, x2, x3));
   1119   TEST_INSTRUCTION("4134C411", umax(w1, w2, 13));
   1120   TEST_INSTRUCTION("4134C491", umax(x1, x2, 13));
   1121   TEST_INSTRUCTION("416CC31A", umin(w1, w2, w3));
   1122   TEST_INSTRUCTION("416CC39A", umin(x1, x2, x3));
   1123   TEST_INSTRUCTION("4134CC11", umin(w1, w2, 13));
   1124   TEST_INSTRUCTION("4134CC91", umin(x1, x2, 13));
   1125   TEST_INSTRUCTION("41FCA39B", umnegl(x1, w2, w3));
   1126   TEST_INSTRUCTION("4190A39B", umsubl(x1, w2, w3, x4));
   1127   TEST_INSTRUCTION("417CC39B", umulh(x1, x2, x3));
   1128   TEST_INSTRUCTION("417CA39B", umull(x1, w2, w3));
   1129   TEST_INSTRUCTION("411C0053", uxtb(w1, w2));
   1130   TEST_INSTRUCTION("413C0053", uxth(w1, w2));
   1131   TEST_INSTRUCTION("3F4000D5", xaflag());
   1132   TEST_INSTRUCTION("E147C1DA", xpacd(x1));
   1133   TEST_INSTRUCTION("E143C1DA", xpaci(x1));
   1134   TEST_INSTRUCTION("FF2003D5", xpaclri());
   1135 }
   1136 
   1137 static void ASMJIT_NOINLINE test_aarch64_assembler_rel(AssemblerTester<a64::Assembler>& tester) noexcept {
   1138   using namespace a64;
   1139 
   1140   // Must be a reference, because it's recreated after every `TEST_INSTRUCTION()`.
   1141   const Label& L0 = tester.L0;
   1142 
   1143   TEST_INSTRUCTION("01000010", adr(x1, L0));
   1144   TEST_INSTRUCTION("00000014", b(L0));
   1145   TEST_INSTRUCTION("00000014", b_al(L0));
   1146   TEST_INSTRUCTION("00000054", b_eq(L0));
   1147   TEST_INSTRUCTION("01000054", b_ne(L0));
   1148   TEST_INSTRUCTION("02000054", b_hs(L0));
   1149   TEST_INSTRUCTION("03000054", b_lo(L0));
   1150   TEST_INSTRUCTION("04000054", b_mi(L0));
   1151   TEST_INSTRUCTION("05000054", b_pl(L0));
   1152   TEST_INSTRUCTION("06000054", b_vs(L0));
   1153   TEST_INSTRUCTION("07000054", b_vc(L0));
   1154   TEST_INSTRUCTION("08000054", b_hi(L0));
   1155   TEST_INSTRUCTION("09000054", b_ls(L0));
   1156   TEST_INSTRUCTION("0A000054", b_ge(L0));
   1157   TEST_INSTRUCTION("0B000054", b_lt(L0));
   1158   TEST_INSTRUCTION("0C000054", b_gt(L0));
   1159   TEST_INSTRUCTION("0D000054", b_le(L0));
   1160   TEST_INSTRUCTION("00000014", b(CondCode::kAL, L0));
   1161   TEST_INSTRUCTION("00000054", b(CondCode::kEQ, L0));
   1162   TEST_INSTRUCTION("01000054", b(CondCode::kNE, L0));
   1163   TEST_INSTRUCTION("02000054", b(CondCode::kHS, L0));
   1164   TEST_INSTRUCTION("03000054", b(CondCode::kLO, L0));
   1165   TEST_INSTRUCTION("04000054", b(CondCode::kMI, L0));
   1166   TEST_INSTRUCTION("05000054", b(CondCode::kPL, L0));
   1167   TEST_INSTRUCTION("06000054", b(CondCode::kVS, L0));
   1168   TEST_INSTRUCTION("07000054", b(CondCode::kVC, L0));
   1169   TEST_INSTRUCTION("08000054", b(CondCode::kHI, L0));
   1170   TEST_INSTRUCTION("09000054", b(CondCode::kLS, L0));
   1171   TEST_INSTRUCTION("0A000054", b(CondCode::kGE, L0));
   1172   TEST_INSTRUCTION("0B000054", b(CondCode::kLT, L0));
   1173   TEST_INSTRUCTION("0C000054", b(CondCode::kGT, L0));
   1174   TEST_INSTRUCTION("0D000054", b(CondCode::kLE, L0));
   1175 
   1176   TEST_INSTRUCTION("00000094", bl(L0));
   1177   TEST_INSTRUCTION("01000034", cbz(w1, L0));
   1178   TEST_INSTRUCTION("010000B4", cbz(x1, L0));
   1179   TEST_INSTRUCTION("01000035", cbnz(w1, L0));
   1180   TEST_INSTRUCTION("010000B5", cbnz(x1, L0));
   1181   TEST_INSTRUCTION("01001837", tbnz(w1, 3, L0));
   1182   TEST_INSTRUCTION("010008B7", tbnz(x1, 33, L0));
   1183   TEST_INSTRUCTION("01001836", tbz(w1, 3, L0));
   1184   TEST_INSTRUCTION("010008B6", tbz(x1, 33, L0));
   1185 }
   1186 
   1187 static void ASMJIT_NOINLINE test_aarch64_assembler_simd(AssemblerTester<a64::Assembler>& tester) noexcept {
   1188   using namespace a64;
   1189 
   1190   TEST_INSTRUCTION("41B8200E", abs(v1.b8(), v2.b8()));
   1191   TEST_INSTRUCTION("41B8600E", abs(v1.h4(), v2.h4()));
   1192   TEST_INSTRUCTION("41B8A00E", abs(v1.s2(), v2.s2()));
   1193   TEST_INSTRUCTION("41B8E05E", abs(d1, d2));
   1194   TEST_INSTRUCTION("41B8204E", abs(v1.b16(), v2.b16()));
   1195   TEST_INSTRUCTION("41B8604E", abs(v1.h8(), v2.h8()));
   1196   TEST_INSTRUCTION("41B8A04E", abs(v1.s4(), v2.s4()));
   1197   TEST_INSTRUCTION("41B8E04E", abs(v1.d2(), v2.d2()));
   1198   TEST_INSTRUCTION("4184230E", add(v1.b8(), v2.b8(), v3.b8()));
   1199   TEST_INSTRUCTION("4184630E", add(v1.h4(), v2.h4(), v3.h4()));
   1200   TEST_INSTRUCTION("4184A30E", add(v1.s2(), v2.s2(), v3.s2()));
   1201   TEST_INSTRUCTION("4184E35E", add(d1, d2, d3));
   1202   TEST_INSTRUCTION("4184234E", add(v1.b16(), v2.b16(), v3.b16()));
   1203   TEST_INSTRUCTION("4184634E", add(v1.h8(), v2.h8(), v3.h8()));
   1204   TEST_INSTRUCTION("4184A34E", add(v1.s4(), v2.s4(), v3.s4()));
   1205   TEST_INSTRUCTION("4184E34E", add(v1.d2(), v2.d2(), v3.d2()));
   1206   TEST_INSTRUCTION("4140230E", addhn(v1.b8(), v2.h8(), v3.h8()));
   1207   TEST_INSTRUCTION("4140630E", addhn(v1.h4(), v2.s4(), v3.s4()));
   1208   TEST_INSTRUCTION("4140A30E", addhn(v1.s2(), v2.d2(), v3.d2()));
   1209   TEST_INSTRUCTION("4140234E", addhn2(v1.b16(), v2.h8(), v3.h8()));
   1210   TEST_INSTRUCTION("4140634E", addhn2(v1.h8(), v2.s4(), v3.s4()));
   1211   TEST_INSTRUCTION("4140A34E", addhn2(v1.s4(), v2.d2(), v3.d2()));
   1212   TEST_INSTRUCTION("41BC230E", addp(v1.b8(), v2.b8(), v3.b8()));
   1213   TEST_INSTRUCTION("41BC630E", addp(v1.h4(), v2.h4(), v3.h4()));
   1214   TEST_INSTRUCTION("41BCA30E", addp(v1.s2(), v2.s2(), v3.s2()));
   1215   TEST_INSTRUCTION("41B8F15E", addp(d1, v2.d2()));
   1216   TEST_INSTRUCTION("41BC234E", addp(v1.b16(), v2.b16(), v3.b16()));
   1217   TEST_INSTRUCTION("41BC634E", addp(v1.h8(), v2.h8(), v3.h8()));
   1218   TEST_INSTRUCTION("41BCA34E", addp(v1.s4(), v2.s4(), v3.s4()));
   1219   TEST_INSTRUCTION("41BCE34E", addp(v1.d2(), v2.d2(), v3.d2()));
   1220   TEST_INSTRUCTION("41B8310E", addv(b1, v2.b8()));
   1221   TEST_INSTRUCTION("41B8314E", addv(b1, v2.b16()));
   1222   TEST_INSTRUCTION("41B8710E", addv(h1, v2.h4()));
   1223   TEST_INSTRUCTION("41B8714E", addv(h1, v2.h8()));
   1224   TEST_INSTRUCTION("41B8B14E", addv(s1, v2.s4()));
   1225   TEST_INSTRUCTION("4158284E", aesd(v1.b16(), v2.b16()));
   1226   TEST_INSTRUCTION("4148284E", aese(v1.b16(), v2.b16()));
   1227   TEST_INSTRUCTION("4178284E", aesimc(v1.b16(), v2.b16()));
   1228   TEST_INSTRUCTION("4168284E", aesmc(v1.b16(), v2.b16()));
   1229   TEST_INSTRUCTION("411C230E", and_(v1.b8(), v2.b8(), v3.b8()));
   1230   TEST_INSTRUCTION("411C234E", and_(v1.b16(), v2.b16(), v3.b16()));
   1231   TEST_INSTRUCTION("411023CE", bcax(v1.b16(), v2.b16(), v3.b16(), v4.b16()));
   1232   TEST_INSTRUCTION("4140631E", bfcvt(h1, s2));
   1233   TEST_INSTRUCTION("4168A10E", bfcvtn(v1.h4(), v2.s4()));
   1234   TEST_INSTRUCTION("4168A14E", bfcvtn2(v1.h8(), v2.s4()));
   1235   TEST_INSTRUCTION("41FC432E", bfdot(v1.s2(), v2.h4(), v3.h4()));
   1236   TEST_INSTRUCTION("41FC436E", bfdot(v1.s4(), v2.h8(), v3.h8()));
   1237   TEST_INSTRUCTION("41F0430F", bfdot(v1.s2(), v2.h4(), v3.h2(0)));
   1238   TEST_INSTRUCTION("41F8634F", bfdot(v1.s4(), v2.h8(), v3.h2(3)));
   1239   TEST_INSTRUCTION("41FCC32E", bfmlalb(v1.s4(), v2.h8(), v3.h8()));
   1240   TEST_INSTRUCTION("41F0C30F", bfmlalb(v1.s4(), v2.h8(), v3.h(0)));
   1241   TEST_INSTRUCTION("41F8F30F", bfmlalb(v1.s4(), v2.h8(), v3.h(7)));
   1242   TEST_INSTRUCTION("41FCC36E", bfmlalt(v1.s4(), v2.h8(), v3.h8()));
   1243   TEST_INSTRUCTION("41F0C34F", bfmlalt(v1.s4(), v2.h8(), v3.h(0)));
   1244   TEST_INSTRUCTION("41F8F34F", bfmlalt(v1.s4(), v2.h8(), v3.h(7)));
   1245   TEST_INSTRUCTION("41EC436E", bfmmla(v1.s4(), v2.h8(), v3.h8()));
   1246   TEST_INSTRUCTION("411C630E", bic(v1.b8(), v2.b8(), v3.b8()));
   1247   TEST_INSTRUCTION("411C634E", bic(v1.b16(), v2.b16(), v3.b16()));
   1248   TEST_INSTRUCTION("E197072F", bic(v1.h4(), 255));
   1249   TEST_INSTRUCTION("E1B7072F", bic(v1.h4(), 255, lsl(8)));
   1250   TEST_INSTRUCTION("E197076F", bic(v1.h8(), 255));
   1251   TEST_INSTRUCTION("E1B7076F", bic(v1.h8(), 255, lsl(8)));
   1252   TEST_INSTRUCTION("E117072F", bic(v1.s2(), 255));
   1253   TEST_INSTRUCTION("E137072F", bic(v1.s2(), 255, lsl(8)));
   1254   TEST_INSTRUCTION("E117076F", bic(v1.s4(), 255));
   1255   TEST_INSTRUCTION("E177076F", bic(v1.s4(), 255, lsl(24)));
   1256   TEST_INSTRUCTION("411CE32E", bif(v1.b8(), v2.b8(), v3.b8()));
   1257   TEST_INSTRUCTION("411CE36E", bif(v1.b16(), v2.b16(), v3.b16()));
   1258   TEST_INSTRUCTION("411CA32E", bit(v1.b8(), v2.b8(), v3.b8()));
   1259   TEST_INSTRUCTION("411CA36E", bit(v1.b16(), v2.b16(), v3.b16()));
   1260   TEST_INSTRUCTION("411C632E", bsl(v1.b8(), v2.b8(), v3.b8()));
   1261   TEST_INSTRUCTION("411C636E", bsl(v1.b16(), v2.b16(), v3.b16()));
   1262   TEST_INSTRUCTION("4148200E", cls(v1.b8(), v2.b8()));
   1263   TEST_INSTRUCTION("4148600E", cls(v1.h4(), v2.h4()));
   1264   TEST_INSTRUCTION("4148A00E", cls(v1.s2(), v2.s2()));
   1265   TEST_INSTRUCTION("4148204E", cls(v1.b16(), v2.b16()));
   1266   TEST_INSTRUCTION("4148604E", cls(v1.h8(), v2.h8()));
   1267   TEST_INSTRUCTION("4148A04E", cls(v1.s4(), v2.s4()));
   1268   TEST_INSTRUCTION("4148202E", clz(v1.b8(), v2.b8()));
   1269   TEST_INSTRUCTION("4148602E", clz(v1.h4(), v2.h4()));
   1270   TEST_INSTRUCTION("4148A02E", clz(v1.s2(), v2.s2()));
   1271   TEST_INSTRUCTION("4148206E", clz(v1.b16(), v2.b16()));
   1272   TEST_INSTRUCTION("4148606E", clz(v1.h8(), v2.h8()));
   1273   TEST_INSTRUCTION("4148A06E", clz(v1.s4(), v2.s4()));
   1274   TEST_INSTRUCTION("418C232E", cmeq(v1.b8(), v2.b8(), v3.b8()));
   1275   TEST_INSTRUCTION("418C632E", cmeq(v1.h4(), v2.h4(), v3.h4()));
   1276   TEST_INSTRUCTION("418CA32E", cmeq(v1.s2(), v2.s2(), v3.s2()));
   1277   TEST_INSTRUCTION("418CE37E", cmeq(d1, d2, d3));
   1278   TEST_INSTRUCTION("418C236E", cmeq(v1.b16(), v2.b16(), v3.b16()));
   1279   TEST_INSTRUCTION("418C636E", cmeq(v1.h8(), v2.h8(), v3.h8()));
   1280   TEST_INSTRUCTION("418CA36E", cmeq(v1.s4(), v2.s4(), v3.s4()));
   1281   TEST_INSTRUCTION("418CE36E", cmeq(v1.d2(), v2.d2(), v3.d2()));
   1282   TEST_INSTRUCTION("4198200E", cmeq(v1.b8(), v2.b8(), 0));
   1283   TEST_INSTRUCTION("4198600E", cmeq(v1.h4(), v2.h4(), 0));
   1284   TEST_INSTRUCTION("4198A00E", cmeq(v1.s2(), v2.s2(), 0));
   1285   TEST_INSTRUCTION("4198E05E", cmeq(d1, d2, 0));
   1286   TEST_INSTRUCTION("4198204E", cmeq(v1.b16(), v2.b16(), 0));
   1287   TEST_INSTRUCTION("4198604E", cmeq(v1.h8(), v2.h8(), 0));
   1288   TEST_INSTRUCTION("4198A04E", cmeq(v1.s4(), v2.s4(), 0));
   1289   TEST_INSTRUCTION("4198E04E", cmeq(v1.d2(), v2.d2(), 0));
   1290   TEST_INSTRUCTION("413C230E", cmge(v1.b8(), v2.b8(), v3.b8()));
   1291   TEST_INSTRUCTION("413C630E", cmge(v1.h4(), v2.h4(), v3.h4()));
   1292   TEST_INSTRUCTION("413CA30E", cmge(v1.s2(), v2.s2(), v3.s2()));
   1293   TEST_INSTRUCTION("413CE35E", cmge(d1, d2, d3));
   1294   TEST_INSTRUCTION("413C234E", cmge(v1.b16(), v2.b16(), v3.b16()));
   1295   TEST_INSTRUCTION("413C634E", cmge(v1.h8(), v2.h8(), v3.h8()));
   1296   TEST_INSTRUCTION("413CA34E", cmge(v1.s4(), v2.s4(), v3.s4()));
   1297   TEST_INSTRUCTION("413CE34E", cmge(v1.d2(), v2.d2(), v3.d2()));
   1298   TEST_INSTRUCTION("4188202E", cmge(v1.b8(), v2.b8(), 0));
   1299   TEST_INSTRUCTION("4188602E", cmge(v1.h4(), v2.h4(), 0));
   1300   TEST_INSTRUCTION("4188A02E", cmge(v1.s2(), v2.s2(), 0));
   1301   TEST_INSTRUCTION("4188E07E", cmge(d1, d2, 0));
   1302   TEST_INSTRUCTION("4188206E", cmge(v1.b16(), v2.b16(), 0));
   1303   TEST_INSTRUCTION("4188606E", cmge(v1.h8(), v2.h8(), 0));
   1304   TEST_INSTRUCTION("4188A06E", cmge(v1.s4(), v2.s4(), 0));
   1305   TEST_INSTRUCTION("4188E06E", cmge(v1.d2(), v2.d2(), 0));
   1306   TEST_INSTRUCTION("4134230E", cmgt(v1.b8(), v2.b8(), v3.b8()));
   1307   TEST_INSTRUCTION("4134630E", cmgt(v1.h4(), v2.h4(), v3.h4()));
   1308   TEST_INSTRUCTION("4134A30E", cmgt(v1.s2(), v2.s2(), v3.s2()));
   1309   TEST_INSTRUCTION("4134E35E", cmgt(d1, d2, d3));
   1310   TEST_INSTRUCTION("4134234E", cmgt(v1.b16(), v2.b16(), v3.b16()));
   1311   TEST_INSTRUCTION("4134634E", cmgt(v1.h8(), v2.h8(), v3.h8()));
   1312   TEST_INSTRUCTION("4134A34E", cmgt(v1.s4(), v2.s4(), v3.s4()));
   1313   TEST_INSTRUCTION("4134E34E", cmgt(v1.d2(), v2.d2(), v3.d2()));
   1314   TEST_INSTRUCTION("4188200E", cmgt(v1.b8(), v2.b8(), 0));
   1315   TEST_INSTRUCTION("4188600E", cmgt(v1.h4(), v2.h4(), 0));
   1316   TEST_INSTRUCTION("4188A00E", cmgt(v1.s2(), v2.s2(), 0));
   1317   TEST_INSTRUCTION("4188E05E", cmgt(d1, d2, 0));
   1318   TEST_INSTRUCTION("4188204E", cmgt(v1.b16(), v2.b16(), 0));
   1319   TEST_INSTRUCTION("4188604E", cmgt(v1.h8(), v2.h8(), 0));
   1320   TEST_INSTRUCTION("4188A04E", cmgt(v1.s4(), v2.s4(), 0));
   1321   TEST_INSTRUCTION("4188E04E", cmgt(v1.d2(), v2.d2(), 0));
   1322   TEST_INSTRUCTION("4134232E", cmhi(v1.b8(), v2.b8(), v3.b8()));
   1323   TEST_INSTRUCTION("4134632E", cmhi(v1.h4(), v2.h4(), v3.h4()));
   1324   TEST_INSTRUCTION("4134A32E", cmhi(v1.s2(), v2.s2(), v3.s2()));
   1325   TEST_INSTRUCTION("4134E37E", cmhi(d1, d2, d3));
   1326   TEST_INSTRUCTION("4134236E", cmhi(v1.b16(), v2.b16(), v3.b16()));
   1327   TEST_INSTRUCTION("4134636E", cmhi(v1.h8(), v2.h8(), v3.h8()));
   1328   TEST_INSTRUCTION("4134A36E", cmhi(v1.s4(), v2.s4(), v3.s4()));
   1329   TEST_INSTRUCTION("4134E36E", cmhi(v1.d2(), v2.d2(), v3.d2()));
   1330   TEST_INSTRUCTION("413C232E", cmhs(v1.b8(), v2.b8(), v3.b8()));
   1331   TEST_INSTRUCTION("413C632E", cmhs(v1.h4(), v2.h4(), v3.h4()));
   1332   TEST_INSTRUCTION("413CA32E", cmhs(v1.s2(), v2.s2(), v3.s2()));
   1333   TEST_INSTRUCTION("413CE37E", cmhs(d1, d2, d3));
   1334   TEST_INSTRUCTION("413C236E", cmhs(v1.b16(), v2.b16(), v3.b16()));
   1335   TEST_INSTRUCTION("413C636E", cmhs(v1.h8(), v2.h8(), v3.h8()));
   1336   TEST_INSTRUCTION("413CA36E", cmhs(v1.s4(), v2.s4(), v3.s4()));
   1337   TEST_INSTRUCTION("413CE36E", cmhs(v1.d2(), v2.d2(), v3.d2()));
   1338   TEST_INSTRUCTION("4198202E", cmle(v1.b8(), v2.b8(), 0));
   1339   TEST_INSTRUCTION("4198602E", cmle(v1.h4(), v2.h4(), 0));
   1340   TEST_INSTRUCTION("4198A02E", cmle(v1.s2(), v2.s2(), 0));
   1341   TEST_INSTRUCTION("4198E07E", cmle(d1, d2, 0));
   1342   TEST_INSTRUCTION("4198206E", cmle(v1.b16(), v2.b16(), 0));
   1343   TEST_INSTRUCTION("4198606E", cmle(v1.h8(), v2.h8(), 0));
   1344   TEST_INSTRUCTION("4198A06E", cmle(v1.s4(), v2.s4(), 0));
   1345   TEST_INSTRUCTION("4198E06E", cmle(v1.d2(), v2.d2(), 0));
   1346   TEST_INSTRUCTION("41A8200E", cmlt(v1.b8(), v2.b8(), 0));
   1347   TEST_INSTRUCTION("41A8600E", cmlt(v1.h4(), v2.h4(), 0));
   1348   TEST_INSTRUCTION("41A8A00E", cmlt(v1.s2(), v2.s2(), 0));
   1349   TEST_INSTRUCTION("41A8E05E", cmlt(d1, d2, 0));
   1350   TEST_INSTRUCTION("41A8204E", cmlt(v1.b16(), v2.b16(), 0));
   1351   TEST_INSTRUCTION("41A8604E", cmlt(v1.h8(), v2.h8(), 0));
   1352   TEST_INSTRUCTION("41A8A04E", cmlt(v1.s4(), v2.s4(), 0));
   1353   TEST_INSTRUCTION("41A8E04E", cmlt(v1.d2(), v2.d2(), 0));
   1354   TEST_INSTRUCTION("418C230E", cmtst(v1.b8(), v2.b8(), v3.b8()));
   1355   TEST_INSTRUCTION("418C630E", cmtst(v1.h4(), v2.h4(), v3.h4()));
   1356   TEST_INSTRUCTION("418CA30E", cmtst(v1.s2(), v2.s2(), v3.s2()));
   1357   TEST_INSTRUCTION("418CE35E", cmtst(d1, d2, d3));
   1358   TEST_INSTRUCTION("418C234E", cmtst(v1.b16(), v2.b16(), v3.b16()));
   1359   TEST_INSTRUCTION("418C634E", cmtst(v1.h8(), v2.h8(), v3.h8()));
   1360   TEST_INSTRUCTION("418CA34E", cmtst(v1.s4(), v2.s4(), v3.s4()));
   1361   TEST_INSTRUCTION("418CE34E", cmtst(v1.d2(), v2.d2(), v3.d2()));
   1362   TEST_INSTRUCTION("4158200E", cnt(v1.b8(), v2.b8()));
   1363   TEST_INSTRUCTION("4158204E", cnt(v1.b16(), v2.b16()));
   1364   TEST_INSTRUCTION("410C010E", dup(v1.b8(), w2));
   1365   TEST_INSTRUCTION("410C020E", dup(v1.h4(), w2));
   1366   TEST_INSTRUCTION("410C040E", dup(v1.s2(), w2));
   1367   TEST_INSTRUCTION("410C014E", dup(v1.b16(), w2));
   1368   TEST_INSTRUCTION("410C024E", dup(v1.h8(), w2));
   1369   TEST_INSTRUCTION("410C044E", dup(v1.s4(), w2));
   1370   TEST_INSTRUCTION("410C084E", dup(v1.d2(), x2));
   1371   TEST_INSTRUCTION("4F04035E", dup(b15, v2.b(1)));
   1372   TEST_INSTRUCTION("4F04065E", dup(h15, v2.h(1)));
   1373   TEST_INSTRUCTION("4F040C5E", dup(s15, v2.s(1)));
   1374   TEST_INSTRUCTION("4F04185E", dup(d15, v2.d(1)));
   1375   TEST_INSTRUCTION("4F04030E", dup(v15.b8(), v2.b(1)));
   1376   TEST_INSTRUCTION("4F04060E", dup(v15.h4(), v2.h(1)));
   1377   TEST_INSTRUCTION("4F040C0E", dup(v15.s2(), v2.s(1)));
   1378   TEST_INSTRUCTION("4F04034E", dup(v15.b16(), v2.b(1)));
   1379   TEST_INSTRUCTION("4F04064E", dup(v15.h8(), v2.h(1)));
   1380   TEST_INSTRUCTION("4F040C4E", dup(v15.s4(), v2.s(1)));
   1381   TEST_INSTRUCTION("4F04184E", dup(v15.d2(), v2.d(1)));
   1382   TEST_INSTRUCTION("411C232E", eor(v1.b8(), v2.b8(), v3.b8()));
   1383   TEST_INSTRUCTION("411C236E", eor(v1.b16(), v2.b16(), v3.b16()));
   1384   TEST_INSTRUCTION("411003CE", eor3(v1.b16(), v2.b16(), v3.b16(), v4.b16()));
   1385   TEST_INSTRUCTION("4128032E", ext(v1.b8(), v2.b8(), v3.b8(), 5));
   1386   TEST_INSTRUCTION("4128036E", ext(v1.b16(), v2.b16(), v3.b16(), 5));
   1387   TEST_INSTRUCTION("4114C37E", fabd(h1, h2, h3));
   1388   TEST_INSTRUCTION("41D4A37E", fabd(s1, s2, s3));
   1389   TEST_INSTRUCTION("41D4E37E", fabd(d1, d2, d3));
   1390   TEST_INSTRUCTION("4114C32E", fabd(v1.h4(), v2.h4(), v3.h4()));
   1391   TEST_INSTRUCTION("41D4A32E", fabd(v1.s2(), v2.s2(), v3.s2()));
   1392   TEST_INSTRUCTION("4114C36E", fabd(v1.h8(), v2.h8(), v3.h8()));
   1393   TEST_INSTRUCTION("41D4A36E", fabd(v1.s4(), v2.s4(), v3.s4()));
   1394   TEST_INSTRUCTION("41D4E36E", fabd(v1.d2(), v2.d2(), v3.d2()));
   1395   TEST_INSTRUCTION("41C0E01E", fabs(h1, h2));
   1396   TEST_INSTRUCTION("41C0201E", fabs(s1, s2));
   1397   TEST_INSTRUCTION("41C0601E", fabs(d1, d2));
   1398   TEST_INSTRUCTION("41F8F80E", fabs(v1.h4(), v2.h4()));
   1399   TEST_INSTRUCTION("41F8A00E", fabs(v1.s2(), v2.s2()));
   1400   TEST_INSTRUCTION("41F8F84E", fabs(v1.h8(), v2.h8()));
   1401   TEST_INSTRUCTION("41F8A04E", fabs(v1.s4(), v2.s4()));
   1402   TEST_INSTRUCTION("41F8E04E", fabs(v1.d2(), v2.d2()));
   1403   TEST_INSTRUCTION("412C437E", facge(h1, h2, h3));
   1404   TEST_INSTRUCTION("41EC237E", facge(s1, s2, s3));
   1405   TEST_INSTRUCTION("41EC637E", facge(d1, d2, d3));
   1406   TEST_INSTRUCTION("412C432E", facge(v1.h4(), v2.h4(), v3.h4()));
   1407   TEST_INSTRUCTION("41EC232E", facge(v1.s2(), v2.s2(), v3.s2()));
   1408   TEST_INSTRUCTION("412C436E", facge(v1.h8(), v2.h8(), v3.h8()));
   1409   TEST_INSTRUCTION("41EC236E", facge(v1.s4(), v2.s4(), v3.s4()));
   1410   TEST_INSTRUCTION("41EC636E", facge(v1.d2(), v2.d2(), v3.d2()));
   1411   TEST_INSTRUCTION("412CC37E", facgt(h1, h2, h3));
   1412   TEST_INSTRUCTION("41ECA37E", facgt(s1, s2, s3));
   1413   TEST_INSTRUCTION("41ECE37E", facgt(d1, d2, d3));
   1414   TEST_INSTRUCTION("412CC32E", facgt(v1.h4(), v2.h4(), v3.h4()));
   1415   TEST_INSTRUCTION("41ECA32E", facgt(v1.s2(), v2.s2(), v3.s2()));
   1416   TEST_INSTRUCTION("412CC36E", facgt(v1.h8(), v2.h8(), v3.h8()));
   1417   TEST_INSTRUCTION("41ECA36E", facgt(v1.s4(), v2.s4(), v3.s4()));
   1418   TEST_INSTRUCTION("41ECE36E", facgt(v1.d2(), v2.d2(), v3.d2()));
   1419   TEST_INSTRUCTION("4128E31E", fadd(h1, h2, h3));
   1420   TEST_INSTRUCTION("4128231E", fadd(s1, s2, s3));
   1421   TEST_INSTRUCTION("4128631E", fadd(d1, d2, d3));
   1422   TEST_INSTRUCTION("4114430E", fadd(v1.h4(), v2.h4(), v3.h4()));
   1423   TEST_INSTRUCTION("41D4230E", fadd(v1.s2(), v2.s2(), v3.s2()));
   1424   TEST_INSTRUCTION("4114434E", fadd(v1.h8(), v2.h8(), v3.h8()));
   1425   TEST_INSTRUCTION("41D4234E", fadd(v1.s4(), v2.s4(), v3.s4()));
   1426   TEST_INSTRUCTION("41D4634E", fadd(v1.d2(), v2.d2(), v3.d2()));
   1427   TEST_INSTRUCTION("41D8305E", faddp(h1, v2.h2()));
   1428   TEST_INSTRUCTION("41D8307E", faddp(s1, v2.s2()));
   1429   TEST_INSTRUCTION("41D8707E", faddp(d1, v2.d2()));
   1430   TEST_INSTRUCTION("4114432E", faddp(v1.h4(), v2.h4(), v3.h4()));
   1431   TEST_INSTRUCTION("41D4232E", faddp(v1.s2(), v2.s2(), v3.s2()));
   1432   TEST_INSTRUCTION("4114436E", faddp(v1.h8(), v2.h8(), v3.h8()));
   1433   TEST_INSTRUCTION("41D4236E", faddp(v1.s4(), v2.s4(), v3.s4()));
   1434   TEST_INSTRUCTION("41D4636E", faddp(v1.d2(), v2.d2(), v3.d2()));
   1435   TEST_INSTRUCTION("41E4432E", fcadd(v1.h4(), v2.h4(), v3.h4(), 90));
   1436   TEST_INSTRUCTION("41E4832E", fcadd(v1.s2(), v2.s2(), v3.s2(), 90));
   1437   TEST_INSTRUCTION("41E4436E", fcadd(v1.h8(), v2.h8(), v3.h8(), 90));
   1438   TEST_INSTRUCTION("41E4836E", fcadd(v1.s4(), v2.s4(), v3.s4(), 90));
   1439   TEST_INSTRUCTION("41E4C36E", fcadd(v1.d2(), v2.d2(), v3.d2(), 90));
   1440   TEST_INSTRUCTION("41F4432E", fcadd(v1.h4(), v2.h4(), v3.h4(), 270));
   1441   TEST_INSTRUCTION("41F4832E", fcadd(v1.s2(), v2.s2(), v3.s2(), 270));
   1442   TEST_INSTRUCTION("41F4436E", fcadd(v1.h8(), v2.h8(), v3.h8(), 270));
   1443   TEST_INSTRUCTION("41F4836E", fcadd(v1.s4(), v2.s4(), v3.s4(), 270));
   1444   TEST_INSTRUCTION("41F4C36E", fcadd(v1.d2(), v2.d2(), v3.d2(), 270));
   1445   TEST_INSTRUCTION("2404E21E", fccmp(h1, h2, 4, CondCode::kEQ));
   1446   TEST_INSTRUCTION("2404221E", fccmp(s1, s2, 4, CondCode::kEQ));
   1447   TEST_INSTRUCTION("2404621E", fccmp(d1, d2, 4, CondCode::kEQ));
   1448   TEST_INSTRUCTION("3404E21E", fccmpe(h1, h2, 4, CondCode::kEQ));
   1449   TEST_INSTRUCTION("3404221E", fccmpe(s1, s2, 4, CondCode::kEQ));
   1450   TEST_INSTRUCTION("3404621E", fccmpe(d1, d2, 4, CondCode::kEQ));
   1451   TEST_INSTRUCTION("4124435E", fcmeq(h1, h2, h3));
   1452   TEST_INSTRUCTION("41E4235E", fcmeq(s1, s2, s3));
   1453   TEST_INSTRUCTION("41E4635E", fcmeq(d1, d2, d3));
   1454   TEST_INSTRUCTION("4124430E", fcmeq(v1.h4(), v2.h4(), v3.h4()));
   1455   TEST_INSTRUCTION("41E4230E", fcmeq(v1.s2(), v2.s2(), v3.s2()));
   1456   TEST_INSTRUCTION("4124434E", fcmeq(v1.h8(), v2.h8(), v3.h8()));
   1457   TEST_INSTRUCTION("41E4234E", fcmeq(v1.s4(), v2.s4(), v3.s4()));
   1458   TEST_INSTRUCTION("41E4634E", fcmeq(v1.d2(), v2.d2(), v3.d2()));
   1459   TEST_INSTRUCTION("41D8F85E", fcmeq(h1, h2, 0));
   1460   TEST_INSTRUCTION("41D8A05E", fcmeq(s1, s2, 0));
   1461   TEST_INSTRUCTION("41D8E05E", fcmeq(d1, d2, 0));
   1462   TEST_INSTRUCTION("41D8F80E", fcmeq(v1.h4(), v2.h4(), 0));
   1463   TEST_INSTRUCTION("41D8A00E", fcmeq(v1.s2(), v2.s2(), 0));
   1464   TEST_INSTRUCTION("41D8F84E", fcmeq(v1.h8(), v2.h8(), 0));
   1465   TEST_INSTRUCTION("41D8A04E", fcmeq(v1.s4(), v2.s4(), 0));
   1466   TEST_INSTRUCTION("41D8E04E", fcmeq(v1.d2(), v2.d2(), 0));
   1467   TEST_INSTRUCTION("4124437E", fcmge(h1, h2, h3));
   1468   TEST_INSTRUCTION("41E4237E", fcmge(s1, s2, s3));
   1469   TEST_INSTRUCTION("41E4637E", fcmge(d1, d2, d3));
   1470   TEST_INSTRUCTION("4124432E", fcmge(v1.h4(), v2.h4(), v3.h4()));
   1471   TEST_INSTRUCTION("41E4232E", fcmge(v1.s2(), v2.s2(), v3.s2()));
   1472   TEST_INSTRUCTION("4124436E", fcmge(v1.h8(), v2.h8(), v3.h8()));
   1473   TEST_INSTRUCTION("41E4236E", fcmge(v1.s4(), v2.s4(), v3.s4()));
   1474   TEST_INSTRUCTION("41E4636E", fcmge(v1.d2(), v2.d2(), v3.d2()));
   1475   TEST_INSTRUCTION("41C8F87E", fcmge(h1, h2, 0));
   1476   TEST_INSTRUCTION("41C8A07E", fcmge(s1, s2, 0));
   1477   TEST_INSTRUCTION("41C8E07E", fcmge(d1, d2, 0));
   1478   TEST_INSTRUCTION("41C8F82E", fcmge(v1.h4(), v2.h4(), 0));
   1479   TEST_INSTRUCTION("41C8A02E", fcmge(v1.s2(), v2.s2(), 0));
   1480   TEST_INSTRUCTION("41C8F86E", fcmge(v1.h8(), v2.h8(), 0));
   1481   TEST_INSTRUCTION("41C8A06E", fcmge(v1.s4(), v2.s4(), 0));
   1482   TEST_INSTRUCTION("41C8E06E", fcmge(v1.d2(), v2.d2(), 0));
   1483   TEST_INSTRUCTION("4124C37E", fcmgt(h1, h2, h3));
   1484   TEST_INSTRUCTION("41E4A37E", fcmgt(s1, s2, s3));
   1485   TEST_INSTRUCTION("41E4E37E", fcmgt(d1, d2, d3));
   1486   TEST_INSTRUCTION("4124C32E", fcmgt(v1.h4(), v2.h4(), v3.h4()));
   1487   TEST_INSTRUCTION("41E4A32E", fcmgt(v1.s2(), v2.s2(), v3.s2()));
   1488   TEST_INSTRUCTION("4124C36E", fcmgt(v1.h8(), v2.h8(), v3.h8()));
   1489   TEST_INSTRUCTION("41E4A36E", fcmgt(v1.s4(), v2.s4(), v3.s4()));
   1490   TEST_INSTRUCTION("41E4E36E", fcmgt(v1.d2(), v2.d2(), v3.d2()));
   1491   TEST_INSTRUCTION("41C8F85E", fcmgt(h1, h2, 0));
   1492   TEST_INSTRUCTION("41C8A05E", fcmgt(s1, s2, 0));
   1493   TEST_INSTRUCTION("41C8E05E", fcmgt(d1, d2, 0));
   1494   TEST_INSTRUCTION("41C8F80E", fcmgt(v1.h4(), v2.h4(), 0));
   1495   TEST_INSTRUCTION("41C8A00E", fcmgt(v1.s2(), v2.s2(), 0));
   1496   TEST_INSTRUCTION("41C8F84E", fcmgt(v1.h8(), v2.h8(), 0));
   1497   TEST_INSTRUCTION("41C8A04E", fcmgt(v1.s4(), v2.s4(), 0));
   1498   TEST_INSTRUCTION("41C8E04E", fcmgt(v1.d2(), v2.d2(), 0));
   1499   TEST_INSTRUCTION("41CC432E", fcmla(v1.h4(), v2.h4(), v3.h4(), 90));
   1500   TEST_INSTRUCTION("41CC832E", fcmla(v1.s2(), v2.s2(), v3.s2(), 90));
   1501   TEST_INSTRUCTION("41CC436E", fcmla(v1.h8(), v2.h8(), v3.h8(), 90));
   1502   TEST_INSTRUCTION("41CC836E", fcmla(v1.s4(), v2.s4(), v3.s4(), 90));
   1503   TEST_INSTRUCTION("41CCC36E", fcmla(v1.d2(), v2.d2(), v3.d2(), 90));
   1504   TEST_INSTRUCTION("41DC432E", fcmla(v1.h4(), v2.h4(), v3.h4(), 270));
   1505   TEST_INSTRUCTION("41DC832E", fcmla(v1.s2(), v2.s2(), v3.s2(), 270));
   1506   TEST_INSTRUCTION("41DC436E", fcmla(v1.h8(), v2.h8(), v3.h8(), 270));
   1507   TEST_INSTRUCTION("41DC836E", fcmla(v1.s4(), v2.s4(), v3.s4(), 270));
   1508   TEST_INSTRUCTION("41DCC36E", fcmla(v1.d2(), v2.d2(), v3.d2(), 270));
   1509   TEST_INSTRUCTION("4130432F", fcmla(v1.h4(), v2.h4(), v3.h(0), 90));
   1510   TEST_INSTRUCTION("4130632F", fcmla(v1.h4(), v2.h4(), v3.h(1), 90));
   1511   TEST_INSTRUCTION("4130436F", fcmla(v1.h8(), v2.h8(), v3.h(0), 90));
   1512   TEST_INSTRUCTION("4138636F", fcmla(v1.h8(), v2.h8(), v3.h(3), 90));
   1513   TEST_INSTRUCTION("4130836F", fcmla(v1.s4(), v2.s4(), v3.s(0), 90));
   1514   TEST_INSTRUCTION("4138836F", fcmla(v1.s4(), v2.s4(), v3.s(1), 90));
   1515   TEST_INSTRUCTION("4170432F", fcmla(v1.h4(), v2.h4(), v3.h(0), 270));
   1516   TEST_INSTRUCTION("4170632F", fcmla(v1.h4(), v2.h4(), v3.h(1), 270));
   1517   TEST_INSTRUCTION("4170436F", fcmla(v1.h8(), v2.h8(), v3.h(0), 270));
   1518   TEST_INSTRUCTION("4178636F", fcmla(v1.h8(), v2.h8(), v3.h(3), 270));
   1519   TEST_INSTRUCTION("4170836F", fcmla(v1.s4(), v2.s4(), v3.s(0), 270));
   1520   TEST_INSTRUCTION("4178836F", fcmla(v1.s4(), v2.s4(), v3.s(1), 270));
   1521   TEST_INSTRUCTION("41D8F87E", fcmle(h1, h2, 0));
   1522   TEST_INSTRUCTION("41D8A07E", fcmle(s1, s2, 0));
   1523   TEST_INSTRUCTION("41D8E07E", fcmle(d1, d2, 0));
   1524   TEST_INSTRUCTION("41D8F82E", fcmle(v1.h4(), v2.h4(), 0));
   1525   TEST_INSTRUCTION("41D8A02E", fcmle(v1.s2(), v2.s2(), 0));
   1526   TEST_INSTRUCTION("41D8F86E", fcmle(v1.h8(), v2.h8(), 0));
   1527   TEST_INSTRUCTION("41D8A06E", fcmle(v1.s4(), v2.s4(), 0));
   1528   TEST_INSTRUCTION("41D8E06E", fcmle(v1.d2(), v2.d2(), 0));
   1529   TEST_INSTRUCTION("41E8F85E", fcmlt(h1, h2, 0));
   1530   TEST_INSTRUCTION("41E8A05E", fcmlt(s1, s2, 0));
   1531   TEST_INSTRUCTION("41E8E05E", fcmlt(d1, d2, 0));
   1532   TEST_INSTRUCTION("41E8F80E", fcmlt(v1.h4(), v2.h4(), 0));
   1533   TEST_INSTRUCTION("41E8A00E", fcmlt(v1.s2(), v2.s2(), 0));
   1534   TEST_INSTRUCTION("41E8F84E", fcmlt(v1.h8(), v2.h8(), 0));
   1535   TEST_INSTRUCTION("41E8A04E", fcmlt(v1.s4(), v2.s4(), 0));
   1536   TEST_INSTRUCTION("41E8E04E", fcmlt(v1.d2(), v2.d2(), 0));
   1537   TEST_INSTRUCTION("2020E21E", fcmp(h1, h2));
   1538   TEST_INSTRUCTION("2020221E", fcmp(s1, s2));
   1539   TEST_INSTRUCTION("2020621E", fcmp(d1, d2));
   1540   TEST_INSTRUCTION("2820E01E", fcmp(h1, 0));
   1541   TEST_INSTRUCTION("2820201E", fcmp(s1, 0));
   1542   TEST_INSTRUCTION("2820601E", fcmp(d1, 0));
   1543   TEST_INSTRUCTION("3020E21E", fcmpe(h1, h2));
   1544   TEST_INSTRUCTION("3020221E", fcmpe(s1, s2));
   1545   TEST_INSTRUCTION("3020621E", fcmpe(d1, d2));
   1546   TEST_INSTRUCTION("3820E01E", fcmpe(h1, 0));
   1547   TEST_INSTRUCTION("3820201E", fcmpe(s1, 0));
   1548   TEST_INSTRUCTION("3820601E", fcmpe(d1, 0));
   1549   TEST_INSTRUCTION("410CE31E", fcsel(h1, h2, h3, CondCode::kEQ));
   1550   TEST_INSTRUCTION("410C231E", fcsel(s1, s2, s3, CondCode::kEQ));
   1551   TEST_INSTRUCTION("410C631E", fcsel(d1, d2, d3, CondCode::kEQ));
   1552   TEST_INSTRUCTION("41C0231E", fcvt(h1, s2));
   1553   TEST_INSTRUCTION("41C0631E", fcvt(h1, d2));
   1554   TEST_INSTRUCTION("4140E21E", fcvt(s1, h2));
   1555   TEST_INSTRUCTION("4140621E", fcvt(s1, d2));
   1556   TEST_INSTRUCTION("41C0E21E", fcvt(d1, h2));
   1557   TEST_INSTRUCTION("41C0221E", fcvt(d1, s2));
   1558   TEST_INSTRUCTION("4100E41E", fcvtas(w1, h2));
   1559   TEST_INSTRUCTION("4100241E", fcvtas(w1, s2));
   1560   TEST_INSTRUCTION("4100641E", fcvtas(w1, d2));
   1561   TEST_INSTRUCTION("4100E49E", fcvtas(x1, h2));
   1562   TEST_INSTRUCTION("4100249E", fcvtas(x1, s2));
   1563   TEST_INSTRUCTION("4100649E", fcvtas(x1, d2));
   1564   TEST_INSTRUCTION("41C8795E", fcvtas(h1, h2));
   1565   TEST_INSTRUCTION("41C8215E", fcvtas(s1, s2));
   1566   TEST_INSTRUCTION("41C8615E", fcvtas(d1, d2));
   1567   TEST_INSTRUCTION("41C8790E", fcvtas(v1.h4(), v2.h4()));
   1568   TEST_INSTRUCTION("41C8210E", fcvtas(v1.s2(), v2.s2()));
   1569   TEST_INSTRUCTION("41C8794E", fcvtas(v1.h8(), v2.h8()));
   1570   TEST_INSTRUCTION("41C8214E", fcvtas(v1.s4(), v2.s4()));
   1571   TEST_INSTRUCTION("41C8614E", fcvtas(v1.d2(), v2.d2()));
   1572   TEST_INSTRUCTION("4100E51E", fcvtau(w1, h2));
   1573   TEST_INSTRUCTION("4100251E", fcvtau(w1, s2));
   1574   TEST_INSTRUCTION("4100651E", fcvtau(w1, d2));
   1575   TEST_INSTRUCTION("4100E59E", fcvtau(x1, h2));
   1576   TEST_INSTRUCTION("4100259E", fcvtau(x1, s2));
   1577   TEST_INSTRUCTION("4100659E", fcvtau(x1, d2));
   1578   TEST_INSTRUCTION("41C8797E", fcvtau(h1, h2));
   1579   TEST_INSTRUCTION("41C8217E", fcvtau(s1, s2));
   1580   TEST_INSTRUCTION("41C8617E", fcvtau(d1, d2));
   1581   TEST_INSTRUCTION("41C8792E", fcvtau(v1.h4(), v2.h4()));
   1582   TEST_INSTRUCTION("41C8212E", fcvtau(v1.s2(), v2.s2()));
   1583   TEST_INSTRUCTION("41C8796E", fcvtau(v1.h8(), v2.h8()));
   1584   TEST_INSTRUCTION("41C8216E", fcvtau(v1.s4(), v2.s4()));
   1585   TEST_INSTRUCTION("41C8616E", fcvtau(v1.d2(), v2.d2()));
   1586   TEST_INSTRUCTION("4178210E", fcvtl(v1.s4(), v2.h4()));
   1587   TEST_INSTRUCTION("4178214E", fcvtl2(v1.s4(), v2.h8()));
   1588   TEST_INSTRUCTION("4178610E", fcvtl(v1.d2(), v2.s2()));
   1589   TEST_INSTRUCTION("4178614E", fcvtl2(v1.d2(), v2.s4()));
   1590   TEST_INSTRUCTION("4100F01E", fcvtms(w1, h2));
   1591   TEST_INSTRUCTION("4100301E", fcvtms(w1, s2));
   1592   TEST_INSTRUCTION("4100701E", fcvtms(w1, d2));
   1593   TEST_INSTRUCTION("4100F09E", fcvtms(x1, h2));
   1594   TEST_INSTRUCTION("4100309E", fcvtms(x1, s2));
   1595   TEST_INSTRUCTION("4100709E", fcvtms(x1, d2));
   1596   TEST_INSTRUCTION("41B8795E", fcvtms(h1, h2));
   1597   TEST_INSTRUCTION("41B8215E", fcvtms(s1, s2));
   1598   TEST_INSTRUCTION("41B8615E", fcvtms(d1, d2));
   1599   TEST_INSTRUCTION("41B8790E", fcvtms(v1.h4(), v2.h4()));
   1600   TEST_INSTRUCTION("41B8210E", fcvtms(v1.s2(), v2.s2()));
   1601   TEST_INSTRUCTION("41B8794E", fcvtms(v1.h8(), v2.h8()));
   1602   TEST_INSTRUCTION("41B8214E", fcvtms(v1.s4(), v2.s4()));
   1603   TEST_INSTRUCTION("41B8614E", fcvtms(v1.d2(), v2.d2()));
   1604   TEST_INSTRUCTION("4100F11E", fcvtmu(w1, h2));
   1605   TEST_INSTRUCTION("4100311E", fcvtmu(w1, s2));
   1606   TEST_INSTRUCTION("4100711E", fcvtmu(w1, d2));
   1607   TEST_INSTRUCTION("4100F19E", fcvtmu(x1, h2));
   1608   TEST_INSTRUCTION("4100319E", fcvtmu(x1, s2));
   1609   TEST_INSTRUCTION("4100719E", fcvtmu(x1, d2));
   1610   TEST_INSTRUCTION("41B8797E", fcvtmu(h1, h2));
   1611   TEST_INSTRUCTION("41B8217E", fcvtmu(s1, s2));
   1612   TEST_INSTRUCTION("41B8617E", fcvtmu(d1, d2));
   1613   TEST_INSTRUCTION("41B8792E", fcvtmu(v1.h4(), v2.h4()));
   1614   TEST_INSTRUCTION("41B8212E", fcvtmu(v1.s2(), v2.s2()));
   1615   TEST_INSTRUCTION("41B8796E", fcvtmu(v1.h8(), v2.h8()));
   1616   TEST_INSTRUCTION("41B8216E", fcvtmu(v1.s4(), v2.s4()));
   1617   TEST_INSTRUCTION("41B8616E", fcvtmu(v1.d2(), v2.d2()));
   1618   TEST_INSTRUCTION("4168210E", fcvtn(v1.h4(), v2.s4()));
   1619   TEST_INSTRUCTION("4168214E", fcvtn2(v1.h8(), v2.s4()));
   1620   TEST_INSTRUCTION("4168610E", fcvtn(v1.s2(), v2.d2()));
   1621   TEST_INSTRUCTION("4168614E", fcvtn2(v1.s4(), v2.d2()));
   1622   TEST_INSTRUCTION("4100E01E", fcvtns(w1, h2));
   1623   TEST_INSTRUCTION("4100201E", fcvtns(w1, s2));
   1624   TEST_INSTRUCTION("4100601E", fcvtns(w1, d2));
   1625   TEST_INSTRUCTION("4100E09E", fcvtns(x1, h2));
   1626   TEST_INSTRUCTION("4100209E", fcvtns(x1, s2));
   1627   TEST_INSTRUCTION("4100609E", fcvtns(x1, d2));
   1628   TEST_INSTRUCTION("41A8795E", fcvtns(h1, h2));
   1629   TEST_INSTRUCTION("41A8215E", fcvtns(s1, s2));
   1630   TEST_INSTRUCTION("41A8615E", fcvtns(d1, d2));
   1631   TEST_INSTRUCTION("41A8790E", fcvtns(v1.h4(), v2.h4()));
   1632   TEST_INSTRUCTION("41A8210E", fcvtns(v1.s2(), v2.s2()));
   1633   TEST_INSTRUCTION("41A8794E", fcvtns(v1.h8(), v2.h8()));
   1634   TEST_INSTRUCTION("41A8214E", fcvtns(v1.s4(), v2.s4()));
   1635   TEST_INSTRUCTION("41A8614E", fcvtns(v1.d2(), v2.d2()));
   1636   TEST_INSTRUCTION("4100E11E", fcvtnu(w1, h2));
   1637   TEST_INSTRUCTION("4100211E", fcvtnu(w1, s2));
   1638   TEST_INSTRUCTION("4100611E", fcvtnu(w1, d2));
   1639   TEST_INSTRUCTION("4100E19E", fcvtnu(x1, h2));
   1640   TEST_INSTRUCTION("4100219E", fcvtnu(x1, s2));
   1641   TEST_INSTRUCTION("4100619E", fcvtnu(x1, d2));
   1642   TEST_INSTRUCTION("41A8797E", fcvtnu(h1, h2));
   1643   TEST_INSTRUCTION("41A8217E", fcvtnu(s1, s2));
   1644   TEST_INSTRUCTION("41A8617E", fcvtnu(d1, d2));
   1645   TEST_INSTRUCTION("41A8792E", fcvtnu(v1.h4(), v2.h4()));
   1646   TEST_INSTRUCTION("41A8212E", fcvtnu(v1.s2(), v2.s2()));
   1647   TEST_INSTRUCTION("41A8796E", fcvtnu(v1.h8(), v2.h8()));
   1648   TEST_INSTRUCTION("41A8216E", fcvtnu(v1.s4(), v2.s4()));
   1649   TEST_INSTRUCTION("41A8616E", fcvtnu(v1.d2(), v2.d2()));
   1650   TEST_INSTRUCTION("4100E81E", fcvtps(w1, h2));
   1651   TEST_INSTRUCTION("4100281E", fcvtps(w1, s2));
   1652   TEST_INSTRUCTION("4100681E", fcvtps(w1, d2));
   1653   TEST_INSTRUCTION("4100E89E", fcvtps(x1, h2));
   1654   TEST_INSTRUCTION("4100289E", fcvtps(x1, s2));
   1655   TEST_INSTRUCTION("4100689E", fcvtps(x1, d2));
   1656   TEST_INSTRUCTION("41A8F95E", fcvtps(h1, h2));
   1657   TEST_INSTRUCTION("41A8A15E", fcvtps(s1, s2));
   1658   TEST_INSTRUCTION("41A8E15E", fcvtps(d1, d2));
   1659   TEST_INSTRUCTION("41A8F90E", fcvtps(v1.h4(), v2.h4()));
   1660   TEST_INSTRUCTION("41A8A10E", fcvtps(v1.s2(), v2.s2()));
   1661   TEST_INSTRUCTION("41A8F94E", fcvtps(v1.h8(), v2.h8()));
   1662   TEST_INSTRUCTION("41A8A14E", fcvtps(v1.s4(), v2.s4()));
   1663   TEST_INSTRUCTION("41A8E14E", fcvtps(v1.d2(), v2.d2()));
   1664   TEST_INSTRUCTION("4100E91E", fcvtpu(w1, h2));
   1665   TEST_INSTRUCTION("4100291E", fcvtpu(w1, s2));
   1666   TEST_INSTRUCTION("4100691E", fcvtpu(w1, d2));
   1667   TEST_INSTRUCTION("4100E99E", fcvtpu(x1, h2));
   1668   TEST_INSTRUCTION("4100299E", fcvtpu(x1, s2));
   1669   TEST_INSTRUCTION("4100699E", fcvtpu(x1, d2));
   1670   TEST_INSTRUCTION("41A8F97E", fcvtpu(h1, h2));
   1671   TEST_INSTRUCTION("41A8A17E", fcvtpu(s1, s2));
   1672   TEST_INSTRUCTION("41A8E17E", fcvtpu(d1, d2));
   1673   TEST_INSTRUCTION("41A8F92E", fcvtpu(v1.h4(), v2.h4()));
   1674   TEST_INSTRUCTION("41A8A12E", fcvtpu(v1.s2(), v2.s2()));
   1675   TEST_INSTRUCTION("41A8F96E", fcvtpu(v1.h8(), v2.h8()));
   1676   TEST_INSTRUCTION("41A8A16E", fcvtpu(v1.s4(), v2.s4()));
   1677   TEST_INSTRUCTION("41A8E16E", fcvtpu(v1.d2(), v2.d2()));
   1678   TEST_INSTRUCTION("2168617E", fcvtxn(s1, d1));
   1679   TEST_INSTRUCTION("4168612E", fcvtxn(v1.s2(), v2.d2()));
   1680   TEST_INSTRUCTION("4168616E", fcvtxn2(v1.s4(), v2.d2()));
   1681   TEST_INSTRUCTION("4100F81E", fcvtzs(w1, h2));
   1682   TEST_INSTRUCTION("4100381E", fcvtzs(w1, s2));
   1683   TEST_INSTRUCTION("4100781E", fcvtzs(w1, d2));
   1684   TEST_INSTRUCTION("4100F89E", fcvtzs(x1, h2));
   1685   TEST_INSTRUCTION("4100389E", fcvtzs(x1, s2));
   1686   TEST_INSTRUCTION("4100789E", fcvtzs(x1, d2));
   1687   TEST_INSTRUCTION("41B8F95E", fcvtzs(h1, h2));
   1688   TEST_INSTRUCTION("41B8A15E", fcvtzs(s1, s2));
   1689   TEST_INSTRUCTION("41B8E15E", fcvtzs(d1, d2));
   1690   TEST_INSTRUCTION("41B8F90E", fcvtzs(v1.h4(), v2.h4()));
   1691   TEST_INSTRUCTION("41B8A10E", fcvtzs(v1.s2(), v2.s2()));
   1692   TEST_INSTRUCTION("41B8F94E", fcvtzs(v1.h8(), v2.h8()));
   1693   TEST_INSTRUCTION("41B8A14E", fcvtzs(v1.s4(), v2.s4()));
   1694   TEST_INSTRUCTION("41B8E14E", fcvtzs(v1.d2(), v2.d2()));
   1695   TEST_INSTRUCTION("41E0D81E", fcvtzs(w1, h2, 8));
   1696   TEST_INSTRUCTION("41E0181E", fcvtzs(w1, s2, 8));
   1697   TEST_INSTRUCTION("41E0581E", fcvtzs(w1, d2, 8));
   1698   TEST_INSTRUCTION("41E0D89E", fcvtzs(x1, h2, 8));
   1699   TEST_INSTRUCTION("41E0189E", fcvtzs(x1, s2, 8));
   1700   TEST_INSTRUCTION("41E0589E", fcvtzs(x1, d2, 8));
   1701   TEST_INSTRUCTION("41FC185F", fcvtzs(h1, h2, 8));
   1702   TEST_INSTRUCTION("41FC385F", fcvtzs(s1, s2, 8));
   1703   TEST_INSTRUCTION("41FC785F", fcvtzs(d1, d2, 8));
   1704   TEST_INSTRUCTION("41FC180F", fcvtzs(v1.h4(), v2.h4(), 8));
   1705   TEST_INSTRUCTION("41FC380F", fcvtzs(v1.s2(), v2.s2(), 8));
   1706   TEST_INSTRUCTION("41FC184F", fcvtzs(v1.h8(), v2.h8(), 8));
   1707   TEST_INSTRUCTION("41FC384F", fcvtzs(v1.s4(), v2.s4(), 8));
   1708   TEST_INSTRUCTION("41FC784F", fcvtzs(v1.d2(), v2.d2(), 8));
   1709   TEST_INSTRUCTION("4100F91E", fcvtzu(w1, h2));
   1710   TEST_INSTRUCTION("4100391E", fcvtzu(w1, s2));
   1711   TEST_INSTRUCTION("4100791E", fcvtzu(w1, d2));
   1712   TEST_INSTRUCTION("4100F99E", fcvtzu(x1, h2));
   1713   TEST_INSTRUCTION("4100399E", fcvtzu(x1, s2));
   1714   TEST_INSTRUCTION("4100799E", fcvtzu(x1, d2));
   1715   TEST_INSTRUCTION("41B8F97E", fcvtzu(h1, h2));
   1716   TEST_INSTRUCTION("41B8A17E", fcvtzu(s1, s2));
   1717   TEST_INSTRUCTION("41B8E17E", fcvtzu(d1, d2));
   1718   TEST_INSTRUCTION("41B8F92E", fcvtzu(v1.h4(), v2.h4()));
   1719   TEST_INSTRUCTION("41B8A12E", fcvtzu(v1.s2(), v2.s2()));
   1720   TEST_INSTRUCTION("41B8F96E", fcvtzu(v1.h8(), v2.h8()));
   1721   TEST_INSTRUCTION("41B8A16E", fcvtzu(v1.s4(), v2.s4()));
   1722   TEST_INSTRUCTION("41B8E16E", fcvtzu(v1.d2(), v2.d2()));
   1723   TEST_INSTRUCTION("41E0D91E", fcvtzu(w1, h2, 8));
   1724   TEST_INSTRUCTION("41E0191E", fcvtzu(w1, s2, 8));
   1725   TEST_INSTRUCTION("41E0591E", fcvtzu(w1, d2, 8));
   1726   TEST_INSTRUCTION("41E0D99E", fcvtzu(x1, h2, 8));
   1727   TEST_INSTRUCTION("41E0199E", fcvtzu(x1, s2, 8));
   1728   TEST_INSTRUCTION("41E0599E", fcvtzu(x1, d2, 8));
   1729   TEST_INSTRUCTION("41FC187F", fcvtzu(h1, h2, 8));
   1730   TEST_INSTRUCTION("41FC387F", fcvtzu(s1, s2, 8));
   1731   TEST_INSTRUCTION("41FC787F", fcvtzu(d1, d2, 8));
   1732   TEST_INSTRUCTION("41FC182F", fcvtzu(v1.h4(), v2.h4(), 8));
   1733   TEST_INSTRUCTION("41FC382F", fcvtzu(v1.s2(), v2.s2(), 8));
   1734   TEST_INSTRUCTION("41FC186F", fcvtzu(v1.h8(), v2.h8(), 8));
   1735   TEST_INSTRUCTION("41FC386F", fcvtzu(v1.s4(), v2.s4(), 8));
   1736   TEST_INSTRUCTION("41FC786F", fcvtzu(v1.d2(), v2.d2(), 8));
   1737   TEST_INSTRUCTION("4118E31E", fdiv(h1, h2, h3));
   1738   TEST_INSTRUCTION("4118231E", fdiv(s1, s2, s3));
   1739   TEST_INSTRUCTION("4118631E", fdiv(d1, d2, d3));
   1740   TEST_INSTRUCTION("413C432E", fdiv(v1.h4(), v2.h4(), v3.h4()));
   1741   TEST_INSTRUCTION("41FC232E", fdiv(v1.s2(), v2.s2(), v3.s2()));
   1742   TEST_INSTRUCTION("413C436E", fdiv(v1.h8(), v2.h8(), v3.h8()));
   1743   TEST_INSTRUCTION("41FC236E", fdiv(v1.s4(), v2.s4(), v3.s4()));
   1744   TEST_INSTRUCTION("41FC636E", fdiv(v1.d2(), v2.d2(), v3.d2()));
   1745   TEST_INSTRUCTION("41007E1E", fjcvtzs(w1, d2));
   1746   TEST_INSTRUCTION("4110C31F", fmadd(h1, h2, h3, h4));
   1747   TEST_INSTRUCTION("4110031F", fmadd(s1, s2, s3, s4));
   1748   TEST_INSTRUCTION("4110431F", fmadd(d1, d2, d3, d4));
   1749   TEST_INSTRUCTION("4148E31E", fmax(h1, h2, h3));
   1750   TEST_INSTRUCTION("4148231E", fmax(s1, s2, s3));
   1751   TEST_INSTRUCTION("4148631E", fmax(d1, d2, d3));
   1752   TEST_INSTRUCTION("4134430E", fmax(v1.h4(), v2.h4(), v3.h4()));
   1753   TEST_INSTRUCTION("41F4230E", fmax(v1.s2(), v2.s2(), v3.s2()));
   1754   TEST_INSTRUCTION("4134434E", fmax(v1.h8(), v2.h8(), v3.h8()));
   1755   TEST_INSTRUCTION("41F4234E", fmax(v1.s4(), v2.s4(), v3.s4()));
   1756   TEST_INSTRUCTION("41F4634E", fmax(v1.d2(), v2.d2(), v3.d2()));
   1757   TEST_INSTRUCTION("4168E31E", fmaxnm(h1, h2, h3));
   1758   TEST_INSTRUCTION("4168231E", fmaxnm(s1, s2, s3));
   1759   TEST_INSTRUCTION("4168631E", fmaxnm(d1, d2, d3));
   1760   TEST_INSTRUCTION("4104430E", fmaxnm(v1.h4(), v2.h4(), v3.h4()));
   1761   TEST_INSTRUCTION("41C4230E", fmaxnm(v1.s2(), v2.s2(), v3.s2()));
   1762   TEST_INSTRUCTION("4104434E", fmaxnm(v1.h8(), v2.h8(), v3.h8()));
   1763   TEST_INSTRUCTION("41C4234E", fmaxnm(v1.s4(), v2.s4(), v3.s4()));
   1764   TEST_INSTRUCTION("41C4634E", fmaxnm(v1.d2(), v2.d2(), v3.d2()));
   1765   TEST_INSTRUCTION("41C8305E", fmaxnmp(h1, v2.h2()));
   1766   TEST_INSTRUCTION("41C8307E", fmaxnmp(s1, v2.s2()));
   1767   TEST_INSTRUCTION("41C8707E", fmaxnmp(d1, v2.d2()));
   1768   TEST_INSTRUCTION("4104432E", fmaxnmp(v1.h4(), v2.h4(), v3.h4()));
   1769   TEST_INSTRUCTION("41C4232E", fmaxnmp(v1.s2(), v2.s2(), v3.s2()));
   1770   TEST_INSTRUCTION("4104436E", fmaxnmp(v1.h8(), v2.h8(), v3.h8()));
   1771   TEST_INSTRUCTION("41C4236E", fmaxnmp(v1.s4(), v2.s4(), v3.s4()));
   1772   TEST_INSTRUCTION("41C4636E", fmaxnmp(v1.d2(), v2.d2(), v3.d2()));
   1773   TEST_INSTRUCTION("41C8300E", fmaxnmv(h1, v2.h4()));
   1774   TEST_INSTRUCTION("41C8304E", fmaxnmv(h1, v2.h8()));
   1775   TEST_INSTRUCTION("41C8306E", fmaxnmv(s1, v2.s4()));
   1776   TEST_INSTRUCTION("41F8305E", fmaxp(h1, v2.h2()));
   1777   TEST_INSTRUCTION("41F8307E", fmaxp(s1, v2.s2()));
   1778   TEST_INSTRUCTION("41F8707E", fmaxp(d1, v2.d2()));
   1779   TEST_INSTRUCTION("4134432E", fmaxp(v1.h4(), v2.h4(), v3.h4()));
   1780   TEST_INSTRUCTION("41F4232E", fmaxp(v1.s2(), v2.s2(), v3.s2()));
   1781   TEST_INSTRUCTION("4134436E", fmaxp(v1.h8(), v2.h8(), v3.h8()));
   1782   TEST_INSTRUCTION("41F4236E", fmaxp(v1.s4(), v2.s4(), v3.s4()));
   1783   TEST_INSTRUCTION("41F4636E", fmaxp(v1.d2(), v2.d2(), v3.d2()));
   1784   TEST_INSTRUCTION("41F8300E", fmaxv(h1, v2.h4()));
   1785   TEST_INSTRUCTION("41F8304E", fmaxv(h1, v2.h8()));
   1786   TEST_INSTRUCTION("41F8306E", fmaxv(s1, v2.s4()));
   1787   TEST_INSTRUCTION("4158E31E", fmin(h1, h2, h3));
   1788   TEST_INSTRUCTION("4158231E", fmin(s1, s2, s3));
   1789   TEST_INSTRUCTION("4158631E", fmin(d1, d2, d3));
   1790   TEST_INSTRUCTION("4134C30E", fmin(v1.h4(), v2.h4(), v3.h4()));
   1791   TEST_INSTRUCTION("41F4A30E", fmin(v1.s2(), v2.s2(), v3.s2()));
   1792   TEST_INSTRUCTION("4134C34E", fmin(v1.h8(), v2.h8(), v3.h8()));
   1793   TEST_INSTRUCTION("41F4A34E", fmin(v1.s4(), v2.s4(), v3.s4()));
   1794   TEST_INSTRUCTION("41F4E34E", fmin(v1.d2(), v2.d2(), v3.d2()));
   1795   TEST_INSTRUCTION("4178E31E", fminnm(h1, h2, h3));
   1796   TEST_INSTRUCTION("4178231E", fminnm(s1, s2, s3));
   1797   TEST_INSTRUCTION("4178631E", fminnm(d1, d2, d3));
   1798   TEST_INSTRUCTION("4104C30E", fminnm(v1.h4(), v2.h4(), v3.h4()));
   1799   TEST_INSTRUCTION("41C4A30E", fminnm(v1.s2(), v2.s2(), v3.s2()));
   1800   TEST_INSTRUCTION("4104C34E", fminnm(v1.h8(), v2.h8(), v3.h8()));
   1801   TEST_INSTRUCTION("41C4A34E", fminnm(v1.s4(), v2.s4(), v3.s4()));
   1802   TEST_INSTRUCTION("41C4E34E", fminnm(v1.d2(), v2.d2(), v3.d2()));
   1803   TEST_INSTRUCTION("41C8B05E", fminnmp(h1, v2.h2()));
   1804   TEST_INSTRUCTION("41C8B07E", fminnmp(s1, v2.s2()));
   1805   TEST_INSTRUCTION("41C8F07E", fminnmp(d1, v2.d2()));
   1806   TEST_INSTRUCTION("4104C32E", fminnmp(v1.h4(), v2.h4(), v3.h4()));
   1807   TEST_INSTRUCTION("41C4A32E", fminnmp(v1.s2(), v2.s2(), v3.s2()));
   1808   TEST_INSTRUCTION("4104C36E", fminnmp(v1.h8(), v2.h8(), v3.h8()));
   1809   TEST_INSTRUCTION("41C4A36E", fminnmp(v1.s4(), v2.s4(), v3.s4()));
   1810   TEST_INSTRUCTION("41C4E36E", fminnmp(v1.d2(), v2.d2(), v3.d2()));
   1811   TEST_INSTRUCTION("41C8B00E", fminnmv(h1, v2.h4()));
   1812   TEST_INSTRUCTION("41C8B04E", fminnmv(h1, v2.h8()));
   1813   TEST_INSTRUCTION("41C8B06E", fminnmv(s1, v2.s4()));
   1814   TEST_INSTRUCTION("41F8B05E", fminp(h1, v2.h2()));
   1815   TEST_INSTRUCTION("41F8B07E", fminp(s1, v2.s2()));
   1816   TEST_INSTRUCTION("41F8F07E", fminp(d1, v2.d2()));
   1817   TEST_INSTRUCTION("4134C32E", fminp(v1.h4(), v2.h4(), v3.h4()));
   1818   TEST_INSTRUCTION("41F4A32E", fminp(v1.s2(), v2.s2(), v3.s2()));
   1819   TEST_INSTRUCTION("4134C36E", fminp(v1.h8(), v2.h8(), v3.h8()));
   1820   TEST_INSTRUCTION("41F4A36E", fminp(v1.s4(), v2.s4(), v3.s4()));
   1821   TEST_INSTRUCTION("41F4E36E", fminp(v1.d2(), v2.d2(), v3.d2()));
   1822   TEST_INSTRUCTION("41F8B00E", fminv(h1, v2.h4()));
   1823   TEST_INSTRUCTION("41F8B04E", fminv(h1, v2.h8()));
   1824   TEST_INSTRUCTION("41F8B06E", fminv(s1, v2.s4()));
   1825   TEST_INSTRUCTION("410C430E", fmla(v1.h4(), v2.h4(), v3.h4()));
   1826   TEST_INSTRUCTION("41CC230E", fmla(v1.s2(), v2.s2(), v3.s2()));
   1827   TEST_INSTRUCTION("410C434E", fmla(v1.h8(), v2.h8(), v3.h8()));
   1828   TEST_INSTRUCTION("41CC234E", fmla(v1.s4(), v2.s4(), v3.s4()));
   1829   TEST_INSTRUCTION("41CC634E", fmla(v1.d2(), v2.d2(), v3.d2()));
   1830   TEST_INSTRUCTION("4118335F", fmla(h1, h2, v3.h(7)));
   1831   TEST_INSTRUCTION("4118A35F", fmla(s1, s2, v3.s(3)));
   1832   TEST_INSTRUCTION("4118C35F", fmla(d1, d2, v3.d(1)));
   1833   TEST_INSTRUCTION("4118330F", fmla(v1.h4(), v2.h4(), v3.h(7)));
   1834   TEST_INSTRUCTION("4118A30F", fmla(v1.s2(), v2.s2(), v3.s(3)));
   1835   TEST_INSTRUCTION("4118334F", fmla(v1.h8(), v2.h8(), v3.h(7)));
   1836   TEST_INSTRUCTION("4118A34F", fmla(v1.s4(), v2.s4(), v3.s(3)));
   1837   TEST_INSTRUCTION("4118C34F", fmla(v1.d2(), v2.d2(), v3.d(1)));
   1838   TEST_INSTRUCTION("41EC230E", fmlal(v1.s2(), v2.h2(), v3.h2()));
   1839   TEST_INSTRUCTION("41EC234E", fmlal(v1.s4(), v2.h4(), v3.h4()));
   1840   TEST_INSTRUCTION("4100830F", fmlal(v1.s2(), v2.h2(), v3.h(0)));
   1841   TEST_INSTRUCTION("4108B30F", fmlal(v1.s2(), v2.h2(), v3.h(7)));
   1842   TEST_INSTRUCTION("4100834F", fmlal(v1.s4(), v2.h4(), v3.h(0)));
   1843   TEST_INSTRUCTION("4108B34F", fmlal(v1.s4(), v2.h4(), v3.h(7)));
   1844   TEST_INSTRUCTION("41CC232E", fmlal2(v1.s2(), v2.h2(), v3.h2()));
   1845   TEST_INSTRUCTION("41CC236E", fmlal2(v1.s4(), v2.h4(), v3.h4()));
   1846   TEST_INSTRUCTION("4180832F", fmlal2(v1.s2(), v2.h2(), v3.h(0)));
   1847   TEST_INSTRUCTION("4188B32F", fmlal2(v1.s2(), v2.h2(), v3.h(7)));
   1848   TEST_INSTRUCTION("4180836F", fmlal2(v1.s4(), v2.h4(), v3.h(0)));
   1849   TEST_INSTRUCTION("4188B36F", fmlal2(v1.s4(), v2.h4(), v3.h(7)));
   1850   TEST_INSTRUCTION("410CC30E", fmls(v1.h4(), v2.h4(), v3.h4()));
   1851   TEST_INSTRUCTION("41CCA30E", fmls(v1.s2(), v2.s2(), v3.s2()));
   1852   TEST_INSTRUCTION("410CC34E", fmls(v1.h8(), v2.h8(), v3.h8()));
   1853   TEST_INSTRUCTION("41CCA34E", fmls(v1.s4(), v2.s4(), v3.s4()));
   1854   TEST_INSTRUCTION("41CCE34E", fmls(v1.d2(), v2.d2(), v3.d2()));
   1855   TEST_INSTRUCTION("4158335F", fmls(h1, h2, v3.h(7)));
   1856   TEST_INSTRUCTION("4158A35F", fmls(s1, s2, v3.s(3)));
   1857   TEST_INSTRUCTION("4158C35F", fmls(d1, d2, v3.d(1)));
   1858   TEST_INSTRUCTION("4158330F", fmls(v1.h4(), v2.h4(), v3.h(7)));
   1859   TEST_INSTRUCTION("4158A30F", fmls(v1.s2(), v2.s2(), v3.s(3)));
   1860   TEST_INSTRUCTION("4158334F", fmls(v1.h8(), v2.h8(), v3.h(7)));
   1861   TEST_INSTRUCTION("4158A34F", fmls(v1.s4(), v2.s4(), v3.s(3)));
   1862   TEST_INSTRUCTION("4158C34F", fmls(v1.d2(), v2.d2(), v3.d(1)));
   1863   TEST_INSTRUCTION("41ECA30E", fmlsl(v1.s2(), v2.h2(), v3.h2()));
   1864   TEST_INSTRUCTION("41ECA34E", fmlsl(v1.s4(), v2.h4(), v3.h4()));
   1865   TEST_INSTRUCTION("4140830F", fmlsl(v1.s2(), v2.h2(), v3.h(0)));
   1866   TEST_INSTRUCTION("4148B30F", fmlsl(v1.s2(), v2.h2(), v3.h(7)));
   1867   TEST_INSTRUCTION("4140834F", fmlsl(v1.s4(), v2.h4(), v3.h(0)));
   1868   TEST_INSTRUCTION("4148B34F", fmlsl(v1.s4(), v2.h4(), v3.h(7)));
   1869   TEST_INSTRUCTION("41CCA32E", fmlsl2(v1.s2(), v2.h2(), v3.h2()));
   1870   TEST_INSTRUCTION("41CCA36E", fmlsl2(v1.s4(), v2.h4(), v3.h4()));
   1871   TEST_INSTRUCTION("41C0832F", fmlsl2(v1.s2(), v2.h2(), v3.h(0)));
   1872   TEST_INSTRUCTION("41C8B32F", fmlsl2(v1.s2(), v2.h2(), v3.h(7)));
   1873   TEST_INSTRUCTION("41C0836F", fmlsl2(v1.s4(), v2.h4(), v3.h(0)));
   1874   TEST_INSTRUCTION("41C8B36F", fmlsl2(v1.s4(), v2.h4(), v3.h(7)));
   1875   TEST_INSTRUCTION("4100E71E", fmov(h1, w2));
   1876   TEST_INSTRUCTION("4100E79E", fmov(h1, x2));
   1877   TEST_INSTRUCTION("4100271E", fmov(s1, w2));
   1878   TEST_INSTRUCTION("4100679E", fmov(d1, x2));
   1879   TEST_INSTRUCTION("4100AF9E", fmov(v1.d(1), x2));
   1880   TEST_INSTRUCTION("4100E61E", fmov(w1, h2));
   1881   TEST_INSTRUCTION("4100E69E", fmov(x1, h2));
   1882   TEST_INSTRUCTION("4100261E", fmov(w1, s2));
   1883   TEST_INSTRUCTION("4100669E", fmov(x1, d2));
   1884   TEST_INSTRUCTION("4100AE9E", fmov(x1, v2.d(1)));
   1885   TEST_INSTRUCTION("0110EA1E", fmov(h1, 0.25));
   1886   TEST_INSTRUCTION("0110EC1E", fmov(h1, 0.5));
   1887   TEST_INSTRUCTION("0110EF1E", fmov(h1, 1.5));
   1888   TEST_INSTRUCTION("0110E01E", fmov(h1, 2.0));
   1889   TEST_INSTRUCTION("01D0E51E", fmov(h1, 15.0));
   1890   TEST_INSTRUCTION("01102A1E", fmov(s1, 0.25));
   1891   TEST_INSTRUCTION("01102C1E", fmov(s1, 0.5));
   1892   TEST_INSTRUCTION("01102F1E", fmov(s1, 1.5));
   1893   TEST_INSTRUCTION("0110201E", fmov(s1, 2.0));
   1894   TEST_INSTRUCTION("01D0251E", fmov(s1, 15.0));
   1895   TEST_INSTRUCTION("01106A1E", fmov(d1, 0.25));
   1896   TEST_INSTRUCTION("01106C1E", fmov(d1, 0.5));
   1897   TEST_INSTRUCTION("01106F1E", fmov(d1, 1.5));
   1898   TEST_INSTRUCTION("0110601E", fmov(d1, 2.0));
   1899   TEST_INSTRUCTION("01D0651E", fmov(d1, 15.0));
   1900   TEST_INSTRUCTION("01FC030F", fmov(v1.h4(), 0.5));
   1901   TEST_INSTRUCTION("01FC000F", fmov(v1.h4(), 2.0));
   1902   TEST_INSTRUCTION("01FC034F", fmov(v1.h8(), 0.5));
   1903   TEST_INSTRUCTION("01FC004F", fmov(v1.h8(), 2.0));
   1904   TEST_INSTRUCTION("01F4030F", fmov(v1.s2(), 0.5));
   1905   TEST_INSTRUCTION("01F4000F", fmov(v1.s2(), 2.0));
   1906   TEST_INSTRUCTION("01F4034F", fmov(v1.s4(), 0.5));
   1907   TEST_INSTRUCTION("01F4004F", fmov(v1.s4(), 2.0));
   1908   TEST_INSTRUCTION("01F4036F", fmov(v1.d2(), 0.5));
   1909   TEST_INSTRUCTION("01F4006F", fmov(v1.d2(), 2.0));
   1910   TEST_INSTRUCTION("4190C31F", fmsub(h1, h2, h3, h4));
   1911   TEST_INSTRUCTION("4190031F", fmsub(s1, s2, s3, s4));
   1912   TEST_INSTRUCTION("4190431F", fmsub(d1, d2, d3, d4));
   1913   TEST_INSTRUCTION("4108E31E", fmul(h1, h2, h3));
   1914   TEST_INSTRUCTION("4108231E", fmul(s1, s2, s3));
   1915   TEST_INSTRUCTION("4108631E", fmul(d1, d2, d3));
   1916   TEST_INSTRUCTION("411C432E", fmul(v1.h4(), v2.h4(), v3.h4()));
   1917   TEST_INSTRUCTION("41DC232E", fmul(v1.s2(), v2.s2(), v3.s2()));
   1918   TEST_INSTRUCTION("411C436E", fmul(v1.h8(), v2.h8(), v3.h8()));
   1919   TEST_INSTRUCTION("41DC236E", fmul(v1.s4(), v2.s4(), v3.s4()));
   1920   TEST_INSTRUCTION("41DC636E", fmul(v1.d2(), v2.d2(), v3.d2()));
   1921   TEST_INSTRUCTION("4198335F", fmul(h1, h2, v3.h(7)));
   1922   TEST_INSTRUCTION("4198A35F", fmul(s1, s2, v3.s(3)));
   1923   TEST_INSTRUCTION("4198C35F", fmul(d1, d2, v3.d(1)));
   1924   TEST_INSTRUCTION("4198330F", fmul(v1.h4(), v2.h4(), v3.h(7)));
   1925   TEST_INSTRUCTION("4198A30F", fmul(v1.s2(), v2.s2(), v3.s(3)));
   1926   TEST_INSTRUCTION("4198334F", fmul(v1.h8(), v2.h8(), v3.h(7)));
   1927   TEST_INSTRUCTION("4198A34F", fmul(v1.s4(), v2.s4(), v3.s(3)));
   1928   TEST_INSTRUCTION("4198C34F", fmul(v1.d2(), v2.d2(), v3.d(1)));
   1929   TEST_INSTRUCTION("411C435E", fmulx(h1, h2, h3));
   1930   TEST_INSTRUCTION("41DC235E", fmulx(s1, s2, s3));
   1931   TEST_INSTRUCTION("41DC635E", fmulx(d1, d2, d3));
   1932   TEST_INSTRUCTION("411C430E", fmulx(v1.h4(), v2.h4(), v3.h4()));
   1933   TEST_INSTRUCTION("41DC230E", fmulx(v1.s2(), v2.s2(), v3.s2()));
   1934   TEST_INSTRUCTION("411C434E", fmulx(v1.h8(), v2.h8(), v3.h8()));
   1935   TEST_INSTRUCTION("41DC234E", fmulx(v1.s4(), v2.s4(), v3.s4()));
   1936   TEST_INSTRUCTION("41DC634E", fmulx(v1.d2(), v2.d2(), v3.d2()));
   1937   TEST_INSTRUCTION("4198337F", fmulx(h1, h2, v3.h(7)));
   1938   TEST_INSTRUCTION("4198A37F", fmulx(s1, s2, v3.s(3)));
   1939   TEST_INSTRUCTION("4198C37F", fmulx(d1, d2, v3.d(1)));
   1940   TEST_INSTRUCTION("4198332F", fmulx(v1.h4(), v2.h4(), v3.h(7)));
   1941   TEST_INSTRUCTION("4198A32F", fmulx(v1.s2(), v2.s2(), v3.s(3)));
   1942   TEST_INSTRUCTION("4198336F", fmulx(v1.h8(), v2.h8(), v3.h(7)));
   1943   TEST_INSTRUCTION("4198A36F", fmulx(v1.s4(), v2.s4(), v3.s(3)));
   1944   TEST_INSTRUCTION("4198C36F", fmulx(v1.d2(), v2.d2(), v3.d(1)));
   1945   TEST_INSTRUCTION("4140E11E", fneg(h1, h2));
   1946   TEST_INSTRUCTION("4140211E", fneg(s1, s2));
   1947   TEST_INSTRUCTION("4140611E", fneg(d1, d2));
   1948   TEST_INSTRUCTION("41F8F82E", fneg(v1.h4(), v2.h4()));
   1949   TEST_INSTRUCTION("41F8A02E", fneg(v1.s2(), v2.s2()));
   1950   TEST_INSTRUCTION("41F8F86E", fneg(v1.h8(), v2.h8()));
   1951   TEST_INSTRUCTION("41F8A06E", fneg(v1.s4(), v2.s4()));
   1952   TEST_INSTRUCTION("41F8E06E", fneg(v1.d2(), v2.d2()));
   1953   TEST_INSTRUCTION("4110E31F", fnmadd(h1, h2, h3, h4));
   1954   TEST_INSTRUCTION("4110231F", fnmadd(s1, s2, s3, s4));
   1955   TEST_INSTRUCTION("4110631F", fnmadd(d1, d2, d3, d4));
   1956   TEST_INSTRUCTION("4190E31F", fnmsub(h1, h2, h3, h4));
   1957   TEST_INSTRUCTION("4190231F", fnmsub(s1, s2, s3, s4));
   1958   TEST_INSTRUCTION("4190631F", fnmsub(d1, d2, d3, d4));
   1959   TEST_INSTRUCTION("4188E31E", fnmul(h1, h2, h3));
   1960   TEST_INSTRUCTION("4188231E", fnmul(s1, s2, s3));
   1961   TEST_INSTRUCTION("4188631E", fnmul(d1, d2, d3));
   1962   TEST_INSTRUCTION("41D8F95E", frecpe(h1, h2));
   1963   TEST_INSTRUCTION("41D8A15E", frecpe(s1, s2));
   1964   TEST_INSTRUCTION("41D8E15E", frecpe(d1, d2));
   1965   TEST_INSTRUCTION("41D8F90E", frecpe(v1.h4(), v2.h4()));
   1966   TEST_INSTRUCTION("41D8A10E", frecpe(v1.s2(), v2.s2()));
   1967   TEST_INSTRUCTION("41D8F94E", frecpe(v1.h8(), v2.h8()));
   1968   TEST_INSTRUCTION("41D8A14E", frecpe(v1.s4(), v2.s4()));
   1969   TEST_INSTRUCTION("41D8E14E", frecpe(v1.d2(), v2.d2()));
   1970   TEST_INSTRUCTION("413C435E", frecps(h1, h2, h3));
   1971   TEST_INSTRUCTION("41FC235E", frecps(s1, s2, s3));
   1972   TEST_INSTRUCTION("41FC635E", frecps(d1, d2, d3));
   1973   TEST_INSTRUCTION("413C430E", frecps(v1.h4(), v2.h4(), v3.h4()));
   1974   TEST_INSTRUCTION("41FC230E", frecps(v1.s2(), v2.s2(), v3.s2()));
   1975   TEST_INSTRUCTION("413C434E", frecps(v1.h8(), v2.h8(), v3.h8()));
   1976   TEST_INSTRUCTION("41FC234E", frecps(v1.s4(), v2.s4(), v3.s4()));
   1977   TEST_INSTRUCTION("41FC634E", frecps(v1.d2(), v2.d2(), v3.d2()));
   1978   TEST_INSTRUCTION("41F8F95E", frecpx(h1, h2));
   1979   TEST_INSTRUCTION("41F8A15E", frecpx(s1, s2));
   1980   TEST_INSTRUCTION("41F8E15E", frecpx(d1, d2));
   1981   TEST_INSTRUCTION("41C0281E", frint32x(s1, s2));
   1982   TEST_INSTRUCTION("41C0681E", frint32x(d1, d2));
   1983   TEST_INSTRUCTION("41E8212E", frint32x(v1.s2(), v2.s2()));
   1984   TEST_INSTRUCTION("41E8216E", frint32x(v1.s4(), v2.s4()));
   1985   TEST_INSTRUCTION("41E8616E", frint32x(v1.d2(), v2.d2()));
   1986   TEST_INSTRUCTION("4140281E", frint32z(s1, s2));
   1987   TEST_INSTRUCTION("4140681E", frint32z(d1, d2));
   1988   TEST_INSTRUCTION("41E8210E", frint32z(v1.s2(), v2.s2()));
   1989   TEST_INSTRUCTION("41E8214E", frint32z(v1.s4(), v2.s4()));
   1990   TEST_INSTRUCTION("41E8614E", frint32z(v1.d2(), v2.d2()));
   1991   TEST_INSTRUCTION("41C0291E", frint64x(s1, s2));
   1992   TEST_INSTRUCTION("41C0691E", frint64x(d1, d2));
   1993   TEST_INSTRUCTION("41F8212E", frint64x(v1.s2(), v2.s2()));
   1994   TEST_INSTRUCTION("41F8216E", frint64x(v1.s4(), v2.s4()));
   1995   TEST_INSTRUCTION("41F8616E", frint64x(v1.d2(), v2.d2()));
   1996   TEST_INSTRUCTION("4140291E", frint64z(s1, s2));
   1997   TEST_INSTRUCTION("4140691E", frint64z(d1, d2));
   1998   TEST_INSTRUCTION("41F8210E", frint64z(v1.s2(), v2.s2()));
   1999   TEST_INSTRUCTION("41F8214E", frint64z(v1.s4(), v2.s4()));
   2000   TEST_INSTRUCTION("41F8614E", frint64z(v1.d2(), v2.d2()));
   2001   TEST_INSTRUCTION("4140E61E", frinta(h1, h2));
   2002   TEST_INSTRUCTION("4140261E", frinta(s1, s2));
   2003   TEST_INSTRUCTION("4140661E", frinta(d1, d2));
   2004   TEST_INSTRUCTION("4188792E", frinta(v1.h4(), v2.h4()));
   2005   TEST_INSTRUCTION("4188212E", frinta(v1.s2(), v2.s2()));
   2006   TEST_INSTRUCTION("4188796E", frinta(v1.h8(), v2.h8()));
   2007   TEST_INSTRUCTION("4188216E", frinta(v1.s4(), v2.s4()));
   2008   TEST_INSTRUCTION("4188616E", frinta(v1.d2(), v2.d2()));
   2009   TEST_INSTRUCTION("41C0E71E", frinti(h1, h2));
   2010   TEST_INSTRUCTION("41C0271E", frinti(s1, s2));
   2011   TEST_INSTRUCTION("41C0671E", frinti(d1, d2));
   2012   TEST_INSTRUCTION("4198F92E", frinti(v1.h4(), v2.h4()));
   2013   TEST_INSTRUCTION("4198A12E", frinti(v1.s2(), v2.s2()));
   2014   TEST_INSTRUCTION("4198F96E", frinti(v1.h8(), v2.h8()));
   2015   TEST_INSTRUCTION("4198A16E", frinti(v1.s4(), v2.s4()));
   2016   TEST_INSTRUCTION("4198E16E", frinti(v1.d2(), v2.d2()));
   2017   TEST_INSTRUCTION("4140E51E", frintm(h1, h2));
   2018   TEST_INSTRUCTION("4140251E", frintm(s1, s2));
   2019   TEST_INSTRUCTION("4140651E", frintm(d1, d2));
   2020   TEST_INSTRUCTION("4198790E", frintm(v1.h4(), v2.h4()));
   2021   TEST_INSTRUCTION("4198210E", frintm(v1.s2(), v2.s2()));
   2022   TEST_INSTRUCTION("4198794E", frintm(v1.h8(), v2.h8()));
   2023   TEST_INSTRUCTION("4198214E", frintm(v1.s4(), v2.s4()));
   2024   TEST_INSTRUCTION("4198614E", frintm(v1.d2(), v2.d2()));
   2025   TEST_INSTRUCTION("4140E41E", frintn(h1, h2));
   2026   TEST_INSTRUCTION("4140241E", frintn(s1, s2));
   2027   TEST_INSTRUCTION("4140641E", frintn(d1, d2));
   2028   TEST_INSTRUCTION("4188790E", frintn(v1.h4(), v2.h4()));
   2029   TEST_INSTRUCTION("4188210E", frintn(v1.s2(), v2.s2()));
   2030   TEST_INSTRUCTION("4188794E", frintn(v1.h8(), v2.h8()));
   2031   TEST_INSTRUCTION("4188214E", frintn(v1.s4(), v2.s4()));
   2032   TEST_INSTRUCTION("4188614E", frintn(v1.d2(), v2.d2()));
   2033   TEST_INSTRUCTION("41C0E41E", frintp(h1, h2));
   2034   TEST_INSTRUCTION("41C0241E", frintp(s1, s2));
   2035   TEST_INSTRUCTION("41C0641E", frintp(d1, d2));
   2036   TEST_INSTRUCTION("4188F90E", frintp(v1.h4(), v2.h4()));
   2037   TEST_INSTRUCTION("4188A10E", frintp(v1.s2(), v2.s2()));
   2038   TEST_INSTRUCTION("4188F94E", frintp(v1.h8(), v2.h8()));
   2039   TEST_INSTRUCTION("4188A14E", frintp(v1.s4(), v2.s4()));
   2040   TEST_INSTRUCTION("4188E14E", frintp(v1.d2(), v2.d2()));
   2041   TEST_INSTRUCTION("4140E71E", frintx(h1, h2));
   2042   TEST_INSTRUCTION("4140271E", frintx(s1, s2));
   2043   TEST_INSTRUCTION("4140671E", frintx(d1, d2));
   2044   TEST_INSTRUCTION("4198792E", frintx(v1.h4(), v2.h4()));
   2045   TEST_INSTRUCTION("4198212E", frintx(v1.s2(), v2.s2()));
   2046   TEST_INSTRUCTION("4198796E", frintx(v1.h8(), v2.h8()));
   2047   TEST_INSTRUCTION("4198216E", frintx(v1.s4(), v2.s4()));
   2048   TEST_INSTRUCTION("4198616E", frintx(v1.d2(), v2.d2()));
   2049   TEST_INSTRUCTION("41C0E51E", frintz(h1, h2));
   2050   TEST_INSTRUCTION("41C0251E", frintz(s1, s2));
   2051   TEST_INSTRUCTION("41C0651E", frintz(d1, d2));
   2052   TEST_INSTRUCTION("4198F90E", frintz(v1.h4(), v2.h4()));
   2053   TEST_INSTRUCTION("4198A10E", frintz(v1.s2(), v2.s2()));
   2054   TEST_INSTRUCTION("4198F94E", frintz(v1.h8(), v2.h8()));
   2055   TEST_INSTRUCTION("4198A14E", frintz(v1.s4(), v2.s4()));
   2056   TEST_INSTRUCTION("4198E14E", frintz(v1.d2(), v2.d2()));
   2057   TEST_INSTRUCTION("41D8F97E", frsqrte(h1, h2));
   2058   TEST_INSTRUCTION("41D8A17E", frsqrte(s1, s2));
   2059   TEST_INSTRUCTION("41D8E17E", frsqrte(d1, d2));
   2060   TEST_INSTRUCTION("41D8F92E", frsqrte(v1.h4(), v2.h4()));
   2061   TEST_INSTRUCTION("41D8A12E", frsqrte(v1.s2(), v2.s2()));
   2062   TEST_INSTRUCTION("41D8F96E", frsqrte(v1.h8(), v2.h8()));
   2063   TEST_INSTRUCTION("41D8A16E", frsqrte(v1.s4(), v2.s4()));
   2064   TEST_INSTRUCTION("41D8E16E", frsqrte(v1.d2(), v2.d2()));
   2065   TEST_INSTRUCTION("413CC35E", frsqrts(h1, h2, h3));
   2066   TEST_INSTRUCTION("41FCA35E", frsqrts(s1, s2, s3));
   2067   TEST_INSTRUCTION("41FCE35E", frsqrts(d1, d2, d3));
   2068   TEST_INSTRUCTION("413CC30E", frsqrts(v1.h4(), v2.h4(), v3.h4()));
   2069   TEST_INSTRUCTION("41FCA30E", frsqrts(v1.s2(), v2.s2(), v3.s2()));
   2070   TEST_INSTRUCTION("413CC34E", frsqrts(v1.h8(), v2.h8(), v3.h8()));
   2071   TEST_INSTRUCTION("41FCA34E", frsqrts(v1.s4(), v2.s4(), v3.s4()));
   2072   TEST_INSTRUCTION("41FCE34E", frsqrts(v1.d2(), v2.d2(), v3.d2()));
   2073   TEST_INSTRUCTION("41C0E11E", fsqrt(h1, h2));
   2074   TEST_INSTRUCTION("41C0211E", fsqrt(s1, s2));
   2075   TEST_INSTRUCTION("41C0611E", fsqrt(d1, d2));
   2076   TEST_INSTRUCTION("41F8F92E", fsqrt(v1.h4(), v2.h4()));
   2077   TEST_INSTRUCTION("41F8A12E", fsqrt(v1.s2(), v2.s2()));
   2078   TEST_INSTRUCTION("41F8F96E", fsqrt(v1.h8(), v2.h8()));
   2079   TEST_INSTRUCTION("41F8A16E", fsqrt(v1.s4(), v2.s4()));
   2080   TEST_INSTRUCTION("41F8E16E", fsqrt(v1.d2(), v2.d2()));
   2081   TEST_INSTRUCTION("4138E31E", fsub(h1, h2, h3));
   2082   TEST_INSTRUCTION("4138231E", fsub(s1, s2, s3));
   2083   TEST_INSTRUCTION("4138631E", fsub(d1, d2, d3));
   2084   TEST_INSTRUCTION("4114C30E", fsub(v1.h4(), v2.h4(), v3.h4()));
   2085   TEST_INSTRUCTION("41D4A30E", fsub(v1.s2(), v2.s2(), v3.s2()));
   2086   TEST_INSTRUCTION("4114C34E", fsub(v1.h8(), v2.h8(), v3.h8()));
   2087   TEST_INSTRUCTION("41D4A34E", fsub(v1.s4(), v2.s4(), v3.s4()));
   2088   TEST_INSTRUCTION("41D4E34E", fsub(v1.d2(), v2.d2(), v3.d2()));
   2089   TEST_INSTRUCTION("411C014E", ins(v1.b(0), w2));
   2090   TEST_INSTRUCTION("411C074E", ins(v1.b(3), w2));
   2091   TEST_INSTRUCTION("411C0D4E", ins(v1.b(6), w2));
   2092   TEST_INSTRUCTION("411C134E", ins(v1.b(9), w2));
   2093   TEST_INSTRUCTION("411C1F4E", ins(v1.b(15), w2));
   2094   TEST_INSTRUCTION("411C024E", ins(v1.h(0), w2));
   2095   TEST_INSTRUCTION("411C0E4E", ins(v1.h(3), w2));
   2096   TEST_INSTRUCTION("411C1E4E", ins(v1.h(7), w2));
   2097   TEST_INSTRUCTION("411C044E", ins(v1.s(0), w2));
   2098   TEST_INSTRUCTION("411C0C4E", ins(v1.s(1), w2));
   2099   TEST_INSTRUCTION("411C144E", ins(v1.s(2), w2));
   2100   TEST_INSTRUCTION("411C1C4E", ins(v1.s(3), w2));
   2101   TEST_INSTRUCTION("411C084E", ins(v1.d(0), x2));
   2102   TEST_INSTRUCTION("411C184E", ins(v1.d(1), x2));
   2103   TEST_INSTRUCTION("417C016E", ins(v1.b(0), v2.b(15)));
   2104   TEST_INSTRUCTION("4174036E", ins(v1.b(1), v2.b(14)));
   2105   TEST_INSTRUCTION("4174026E", ins(v1.h(0), v2.h(7)));
   2106   TEST_INSTRUCTION("4164066E", ins(v1.h(1), v2.h(6)));
   2107   TEST_INSTRUCTION("4164046E", ins(v1.s(0), v2.s(3)));
   2108   TEST_INSTRUCTION("41440C6E", ins(v1.s(1), v2.s(2)));
   2109   TEST_INSTRUCTION("4144086E", ins(v1.d(0), v2.d(1)));
   2110   TEST_INSTRUCTION("4104186E", ins(v1.d(1), v2.d(0)));
   2111   TEST_INSTRUCTION("4100400D", ld1(v1.b(0), ptr(x2)));
   2112   TEST_INSTRUCTION("4100DF0D", ld1(v1.b(0), ptr_post(x2, 1)));
   2113   TEST_INSTRUCTION("4100CB0D", ld1(v1.b(0), ptr_post(x2, x11)));
   2114   TEST_INSTRUCTION("4140400D", ld1(v1.h(0), ptr(x2)));
   2115   TEST_INSTRUCTION("4140DF0D", ld1(v1.h(0), ptr_post(x2, 2)));
   2116   TEST_INSTRUCTION("4140CB0D", ld1(v1.h(0), ptr_post(x2, x11)));
   2117   TEST_INSTRUCTION("4180400D", ld1(v1.s(0), ptr(x2)));
   2118   TEST_INSTRUCTION("4180DF0D", ld1(v1.s(0), ptr_post(x2, 4)));
   2119   TEST_INSTRUCTION("4180CB0D", ld1(v1.s(0), ptr_post(x2, x11)));
   2120   TEST_INSTRUCTION("4184400D", ld1(v1.d(0), ptr(x2)));
   2121   TEST_INSTRUCTION("4184DF0D", ld1(v1.d(0), ptr_post(x2, 8)));
   2122   TEST_INSTRUCTION("4184CB0D", ld1(v1.d(0), ptr_post(x2, x11)));
   2123   TEST_INSTRUCTION("411C404D", ld1(v1.b(15), ptr(x2)));
   2124   TEST_INSTRUCTION("411CDF4D", ld1(v1.b(15), ptr_post(x2, 1)));
   2125   TEST_INSTRUCTION("411CCB4D", ld1(v1.b(15), ptr_post(x2, x11)));
   2126   TEST_INSTRUCTION("4158404D", ld1(v1.h(7), ptr(x2)));
   2127   TEST_INSTRUCTION("4158DF4D", ld1(v1.h(7), ptr_post(x2, 2)));
   2128   TEST_INSTRUCTION("4158CB4D", ld1(v1.h(7), ptr_post(x2, x11)));
   2129   TEST_INSTRUCTION("4190404D", ld1(v1.s(3), ptr(x2)));
   2130   TEST_INSTRUCTION("4190DF4D", ld1(v1.s(3), ptr_post(x2, 4)));
   2131   TEST_INSTRUCTION("4190CB4D", ld1(v1.s(3), ptr_post(x2, x11)));
   2132   TEST_INSTRUCTION("4184404D", ld1(v1.d(1), ptr(x2)));
   2133   TEST_INSTRUCTION("4184DF4D", ld1(v1.d(1), ptr_post(x2, 8)));
   2134   TEST_INSTRUCTION("4184CB4D", ld1(v1.d(1), ptr_post(x2, x11)));
   2135   TEST_INSTRUCTION("4170400C", ld1(v1.b8(), ptr(x2)));
   2136   TEST_INSTRUCTION("4170DF0C", ld1(v1.b8(), ptr_post(x2, 8)));
   2137   TEST_INSTRUCTION("4170404C", ld1(v1.b16(), ptr(x2)));
   2138   TEST_INSTRUCTION("4170DF4C", ld1(v1.b16(), ptr_post(x2, 16)));
   2139   TEST_INSTRUCTION("61A0400C", ld1(v1.b8(), v2.b8(), ptr(x3)));
   2140   TEST_INSTRUCTION("61A0DF0C", ld1(v1.b8(), v2.b8(), ptr_post(x3, 16)));
   2141   TEST_INSTRUCTION("61A0404C", ld1(v1.b16(), v2.b16(), ptr(x3)));
   2142   TEST_INSTRUCTION("61A0DF4C", ld1(v1.b16(), v2.b16(), ptr_post(x3, 32)));
   2143   TEST_INSTRUCTION("8160400C", ld1(v1.b8(), v2.b8(), v3.b8(), ptr(x4)));
   2144   TEST_INSTRUCTION("8160DF0C", ld1(v1.b8(), v2.b8(), v3.b8(), ptr_post(x4, 24)));
   2145   TEST_INSTRUCTION("8160404C", ld1(v1.b16(), v2.b16(), v3.b16(), ptr(x4)));
   2146   TEST_INSTRUCTION("8160DF4C", ld1(v1.b16(), v2.b16(), v3.b16(), ptr_post(x4, 48)));
   2147   TEST_INSTRUCTION("A120400C", ld1(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr(x5)));
   2148   TEST_INSTRUCTION("A120DF0C", ld1(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr_post(x5, 32)));
   2149   TEST_INSTRUCTION("A120404C", ld1(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr(x5)));
   2150   TEST_INSTRUCTION("A120DF4C", ld1(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr_post(x5, 64)));
   2151   TEST_INSTRUCTION("4174400C", ld1(v1.h4(), ptr(x2)));
   2152   TEST_INSTRUCTION("4174DF0C", ld1(v1.h4(), ptr_post(x2, 8)));
   2153   TEST_INSTRUCTION("4174404C", ld1(v1.h8(), ptr(x2)));
   2154   TEST_INSTRUCTION("4174DF4C", ld1(v1.h8(), ptr_post(x2, 16)));
   2155   TEST_INSTRUCTION("61A4400C", ld1(v1.h4(), v2.h4(), ptr(x3)));
   2156   TEST_INSTRUCTION("61A4DF0C", ld1(v1.h4(), v2.h4(), ptr_post(x3, 16)));
   2157   TEST_INSTRUCTION("61A4404C", ld1(v1.h8(), v2.h8(), ptr(x3)));
   2158   TEST_INSTRUCTION("61A4DF4C", ld1(v1.h8(), v2.h8(), ptr_post(x3, 32)));
   2159   TEST_INSTRUCTION("8164400C", ld1(v1.h4(), v2.h4(), v3.h4(), ptr(x4)));
   2160   TEST_INSTRUCTION("8164DF0C", ld1(v1.h4(), v2.h4(), v3.h4(), ptr_post(x4, 24)));
   2161   TEST_INSTRUCTION("8164404C", ld1(v1.h8(), v2.h8(), v3.h8(), ptr(x4)));
   2162   TEST_INSTRUCTION("8164DF4C", ld1(v1.h8(), v2.h8(), v3.h8(), ptr_post(x4, 48)));
   2163   TEST_INSTRUCTION("A124400C", ld1(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr(x5)));
   2164   TEST_INSTRUCTION("A124DF0C", ld1(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr_post(x5, 32)));
   2165   TEST_INSTRUCTION("A124404C", ld1(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr(x5)));
   2166   TEST_INSTRUCTION("A124DF4C", ld1(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr_post(x5, 64)));
   2167   TEST_INSTRUCTION("4178400C", ld1(v1.s2(), ptr(x2)));
   2168   TEST_INSTRUCTION("4178DF0C", ld1(v1.s2(), ptr_post(x2, 8)));
   2169   TEST_INSTRUCTION("4178404C", ld1(v1.s4(), ptr(x2)));
   2170   TEST_INSTRUCTION("4178DF4C", ld1(v1.s4(), ptr_post(x2, 16)));
   2171   TEST_INSTRUCTION("61A8400C", ld1(v1.s2(), v2.s2(), ptr(x3)));
   2172   TEST_INSTRUCTION("61A8DF0C", ld1(v1.s2(), v2.s2(), ptr_post(x3, 16)));
   2173   TEST_INSTRUCTION("61A8404C", ld1(v1.s4(), v2.s4(), ptr(x3)));
   2174   TEST_INSTRUCTION("61A8DF4C", ld1(v1.s4(), v2.s4(), ptr_post(x3, 32)));
   2175   TEST_INSTRUCTION("8168400C", ld1(v1.s2(), v2.s2(), v3.s2(), ptr(x4)));
   2176   TEST_INSTRUCTION("8168DF0C", ld1(v1.s2(), v2.s2(), v3.s2(), ptr_post(x4, 24)));
   2177   TEST_INSTRUCTION("8168404C", ld1(v1.s4(), v2.s4(), v3.s4(), ptr(x4)));
   2178   TEST_INSTRUCTION("8168DF4C", ld1(v1.s4(), v2.s4(), v3.s4(), ptr_post(x4, 48)));
   2179   TEST_INSTRUCTION("A128400C", ld1(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr(x5)));
   2180   TEST_INSTRUCTION("A128DF0C", ld1(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr_post(x5, 32)));
   2181   TEST_INSTRUCTION("A128404C", ld1(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr(x5)));
   2182   TEST_INSTRUCTION("A128DF4C", ld1(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr_post(x5, 64)));
   2183   TEST_INSTRUCTION("417C404C", ld1(v1.d2(), ptr(x2)));
   2184   TEST_INSTRUCTION("417CDF4C", ld1(v1.d2(), ptr_post(x2, 16)));
   2185   TEST_INSTRUCTION("61AC404C", ld1(v1.d2(), v2.d2(), ptr(x3)));
   2186   TEST_INSTRUCTION("61ACDF4C", ld1(v1.d2(), v2.d2(), ptr_post(x3, 32)));
   2187   TEST_INSTRUCTION("816C404C", ld1(v1.d2(), v2.d2(), v3.d2(), ptr(x4)));
   2188   TEST_INSTRUCTION("816CDF4C", ld1(v1.d2(), v2.d2(), v3.d2(), ptr_post(x4, 48)));
   2189   TEST_INSTRUCTION("A12C404C", ld1(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr(x5)));
   2190   TEST_INSTRUCTION("A12CDF4C", ld1(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr_post(x5, 64)));
   2191   TEST_INSTRUCTION("41C0400D", ld1r(v1.b8(), ptr(x2)));
   2192   TEST_INSTRUCTION("41C0DF0D", ld1r(v1.b8(), ptr_post(x2, 1)));
   2193   TEST_INSTRUCTION("41C0CB0D", ld1r(v1.b8(), ptr_post(x2, x11)));
   2194   TEST_INSTRUCTION("41C0404D", ld1r(v1.b16(), ptr(x2)));
   2195   TEST_INSTRUCTION("41C0DF4D", ld1r(v1.b16(), ptr_post(x2, 1)));
   2196   TEST_INSTRUCTION("41C0CB4D", ld1r(v1.b16(), ptr_post(x2, x11)));
   2197   TEST_INSTRUCTION("41C4400D", ld1r(v1.h4(), ptr(x2)));
   2198   TEST_INSTRUCTION("41C4DF0D", ld1r(v1.h4(), ptr_post(x2, 2)));
   2199   TEST_INSTRUCTION("41C4CB0D", ld1r(v1.h4(), ptr_post(x2, x11)));
   2200   TEST_INSTRUCTION("41C4404D", ld1r(v1.h8(), ptr(x2)));
   2201   TEST_INSTRUCTION("41C4DF4D", ld1r(v1.h8(), ptr_post(x2, 2)));
   2202   TEST_INSTRUCTION("41C4CB4D", ld1r(v1.h8(), ptr_post(x2, x11)));
   2203   TEST_INSTRUCTION("41C8400D", ld1r(v1.s2(), ptr(x2)));
   2204   TEST_INSTRUCTION("41C8DF0D", ld1r(v1.s2(), ptr_post(x2, 4)));
   2205   TEST_INSTRUCTION("41C8CB0D", ld1r(v1.s2(), ptr_post(x2, x11)));
   2206   TEST_INSTRUCTION("41C8404D", ld1r(v1.s4(), ptr(x2)));
   2207   TEST_INSTRUCTION("41C8DF4D", ld1r(v1.s4(), ptr_post(x2, 4)));
   2208   TEST_INSTRUCTION("41C8CB4D", ld1r(v1.s4(), ptr_post(x2, x11)));
   2209   TEST_INSTRUCTION("41CC404D", ld1r(v1.d2(), ptr(x2)));
   2210   TEST_INSTRUCTION("41CCDF4D", ld1r(v1.d2(), ptr_post(x2, 8)));
   2211   TEST_INSTRUCTION("41CCCB4D", ld1r(v1.d2(), ptr_post(x2, x11)));
   2212   TEST_INSTRUCTION("6100600D", ld2(v1.b(0), v2.b(0), ptr(x3)));
   2213   TEST_INSTRUCTION("6100FF0D", ld2(v1.b(0), v2.b(0), ptr_post(x3, 2)));
   2214   TEST_INSTRUCTION("6100EB0D", ld2(v1.b(0), v2.b(0), ptr_post(x3, x11)));
   2215   TEST_INSTRUCTION("6140600D", ld2(v1.h(0), v2.h(0), ptr(x3)));
   2216   TEST_INSTRUCTION("6140FF0D", ld2(v1.h(0), v2.h(0), ptr_post(x3, 4)));
   2217   TEST_INSTRUCTION("6140EB0D", ld2(v1.h(0), v2.h(0), ptr_post(x3, x11)));
   2218   TEST_INSTRUCTION("6180600D", ld2(v1.s(0), v2.s(0), ptr(x3)));
   2219   TEST_INSTRUCTION("6180FF0D", ld2(v1.s(0), v2.s(0), ptr_post(x3, 8)));
   2220   TEST_INSTRUCTION("6180EB0D", ld2(v1.s(0), v2.s(0), ptr_post(x3, x11)));
   2221   TEST_INSTRUCTION("6184600D", ld2(v1.d(0), v2.d(0), ptr(x3)));
   2222   TEST_INSTRUCTION("6184FF0D", ld2(v1.d(0), v2.d(0), ptr_post(x3, 16)));
   2223   TEST_INSTRUCTION("6184EB0D", ld2(v1.d(0), v2.d(0), ptr_post(x3, x11)));
   2224   TEST_INSTRUCTION("611C604D", ld2(v1.b(15), v2.b(15), ptr(x3)));
   2225   TEST_INSTRUCTION("611CFF4D", ld2(v1.b(15), v2.b(15), ptr_post(x3, 2)));
   2226   TEST_INSTRUCTION("611CEB4D", ld2(v1.b(15), v2.b(15), ptr_post(x3, x11)));
   2227   TEST_INSTRUCTION("6158604D", ld2(v1.h(7), v2.h(7), ptr(x3)));
   2228   TEST_INSTRUCTION("6158FF4D", ld2(v1.h(7), v2.h(7), ptr_post(x3, 4)));
   2229   TEST_INSTRUCTION("6158EB4D", ld2(v1.h(7), v2.h(7), ptr_post(x3, x11)));
   2230   TEST_INSTRUCTION("6190604D", ld2(v1.s(3), v2.s(3), ptr(x3)));
   2231   TEST_INSTRUCTION("6190FF4D", ld2(v1.s(3), v2.s(3), ptr_post(x3, 8)));
   2232   TEST_INSTRUCTION("6190EB4D", ld2(v1.s(3), v2.s(3), ptr_post(x3, x11)));
   2233   TEST_INSTRUCTION("6184604D", ld2(v1.d(1), v2.d(1), ptr(x3)));
   2234   TEST_INSTRUCTION("6184FF4D", ld2(v1.d(1), v2.d(1), ptr_post(x3, 16)));
   2235   TEST_INSTRUCTION("6184EB4D", ld2(v1.d(1), v2.d(1), ptr_post(x3, x11)));
   2236   TEST_INSTRUCTION("6180400C", ld2(v1.b8(), v2.b8(), ptr(x3)));
   2237   TEST_INSTRUCTION("6180DF0C", ld2(v1.b8(), v2.b8(), ptr_post(x3, 16)));
   2238   TEST_INSTRUCTION("6180CB0C", ld2(v1.b8(), v2.b8(), ptr_post(x3, x11)));
   2239   TEST_INSTRUCTION("6180404C", ld2(v1.b16(), v2.b16(), ptr(x3)));
   2240   TEST_INSTRUCTION("6180DF4C", ld2(v1.b16(), v2.b16(), ptr_post(x3, 32)));
   2241   TEST_INSTRUCTION("6180CB4C", ld2(v1.b16(), v2.b16(), ptr_post(x3, x11)));
   2242   TEST_INSTRUCTION("6184400C", ld2(v1.h4(), v2.h4(), ptr(x3)));
   2243   TEST_INSTRUCTION("6184DF0C", ld2(v1.h4(), v2.h4(), ptr_post(x3, 16)));
   2244   TEST_INSTRUCTION("6184CB0C", ld2(v1.h4(), v2.h4(), ptr_post(x3, x11)));
   2245   TEST_INSTRUCTION("6184404C", ld2(v1.h8(), v2.h8(), ptr(x3)));
   2246   TEST_INSTRUCTION("6184DF4C", ld2(v1.h8(), v2.h8(), ptr_post(x3, 32)));
   2247   TEST_INSTRUCTION("6184CB4C", ld2(v1.h8(), v2.h8(), ptr_post(x3, x11)));
   2248   TEST_INSTRUCTION("6188400C", ld2(v1.s2(), v2.s2(), ptr(x3)));
   2249   TEST_INSTRUCTION("6188DF0C", ld2(v1.s2(), v2.s2(), ptr_post(x3, 16)));
   2250   TEST_INSTRUCTION("6188CB0C", ld2(v1.s2(), v2.s2(), ptr_post(x3, x11)));
   2251   TEST_INSTRUCTION("6188404C", ld2(v1.s4(), v2.s4(), ptr(x3)));
   2252   TEST_INSTRUCTION("6188DF4C", ld2(v1.s4(), v2.s4(), ptr_post(x3, 32)));
   2253   TEST_INSTRUCTION("6188CB4C", ld2(v1.s4(), v2.s4(), ptr_post(x3, x11)));
   2254   TEST_INSTRUCTION("618C404C", ld2(v1.d2(), v2.d2(), ptr(x3)));
   2255   TEST_INSTRUCTION("618CDF4C", ld2(v1.d2(), v2.d2(), ptr_post(x3, 32)));
   2256   TEST_INSTRUCTION("618CCB4C", ld2(v1.d2(), v2.d2(), ptr_post(x3, x11)));
   2257   TEST_INSTRUCTION("61C0600D", ld2r(v1.b8(), v2.b8(), ptr(x3)));
   2258   TEST_INSTRUCTION("61C0FF0D", ld2r(v1.b8(), v2.b8(), ptr_post(x3, 2)));
   2259   TEST_INSTRUCTION("61C0EB0D", ld2r(v1.b8(), v2.b8(), ptr_post(x3, x11)));
   2260   TEST_INSTRUCTION("61C0604D", ld2r(v1.b16(), v2.b16(), ptr(x3)));
   2261   TEST_INSTRUCTION("61C0FF4D", ld2r(v1.b16(), v2.b16(), ptr_post(x3, 2)));
   2262   TEST_INSTRUCTION("61C0EB4D", ld2r(v1.b16(), v2.b16(), ptr_post(x3, x11)));
   2263   TEST_INSTRUCTION("61C4600D", ld2r(v1.h4(), v2.h4(), ptr(x3)));
   2264   TEST_INSTRUCTION("61C4FF0D", ld2r(v1.h4(), v2.h4(), ptr_post(x3, 4)));
   2265   TEST_INSTRUCTION("61C4EB0D", ld2r(v1.h4(), v2.h4(), ptr_post(x3, x11)));
   2266   TEST_INSTRUCTION("61C4604D", ld2r(v1.h8(), v2.h8(), ptr(x3)));
   2267   TEST_INSTRUCTION("61C4FF4D", ld2r(v1.h8(), v2.h8(), ptr_post(x3, 4)));
   2268   TEST_INSTRUCTION("61C4EB4D", ld2r(v1.h8(), v2.h8(), ptr_post(x3, x11)));
   2269   TEST_INSTRUCTION("61C8600D", ld2r(v1.s2(), v2.s2(), ptr(x3)));
   2270   TEST_INSTRUCTION("61C8FF0D", ld2r(v1.s2(), v2.s2(), ptr_post(x3, 8)));
   2271   TEST_INSTRUCTION("61C8EB0D", ld2r(v1.s2(), v2.s2(), ptr_post(x3, x11)));
   2272   TEST_INSTRUCTION("61C8604D", ld2r(v1.s4(), v2.s4(), ptr(x3)));
   2273   TEST_INSTRUCTION("61C8FF4D", ld2r(v1.s4(), v2.s4(), ptr_post(x3, 8)));
   2274   TEST_INSTRUCTION("61C8EB4D", ld2r(v1.s4(), v2.s4(), ptr_post(x3, x11)));
   2275   TEST_INSTRUCTION("61CC604D", ld2r(v1.d2(), v2.d2(), ptr(x3)));
   2276   TEST_INSTRUCTION("61CCFF4D", ld2r(v1.d2(), v2.d2(), ptr_post(x3, 16)));
   2277   TEST_INSTRUCTION("61CCEB4D", ld2r(v1.d2(), v2.d2(), ptr_post(x3, x11)));
   2278   TEST_INSTRUCTION("8120400D", ld3(v1.b(0), v2.b(0), v3.b(0), ptr(x4)));
   2279   TEST_INSTRUCTION("8120DF0D", ld3(v1.b(0), v2.b(0), v3.b(0), ptr_post(x4, 3)));
   2280   TEST_INSTRUCTION("8120CB0D", ld3(v1.b(0), v2.b(0), v3.b(0), ptr_post(x4, x11)));
   2281   TEST_INSTRUCTION("8160400D", ld3(v1.h(0), v2.h(0), v3.h(0), ptr(x4)));
   2282   TEST_INSTRUCTION("8160DF0D", ld3(v1.h(0), v2.h(0), v3.h(0), ptr_post(x4, 6)));
   2283   TEST_INSTRUCTION("8160CB0D", ld3(v1.h(0), v2.h(0), v3.h(0), ptr_post(x4, x11)));
   2284   TEST_INSTRUCTION("81A0400D", ld3(v1.s(0), v2.s(0), v3.s(0), ptr(x4)));
   2285   TEST_INSTRUCTION("81A0DF0D", ld3(v1.s(0), v2.s(0), v3.s(0), ptr_post(x4, 12)));
   2286   TEST_INSTRUCTION("81A0CB0D", ld3(v1.s(0), v2.s(0), v3.s(0), ptr_post(x4, x11)));
   2287   TEST_INSTRUCTION("81A4400D", ld3(v1.d(0), v2.d(0), v3.d(0), ptr(x4)));
   2288   TEST_INSTRUCTION("81A4DF0D", ld3(v1.d(0), v2.d(0), v3.d(0), ptr_post(x4, 24)));
   2289   TEST_INSTRUCTION("81A4CB0D", ld3(v1.d(0), v2.d(0), v3.d(0), ptr_post(x4, x11)));
   2290   TEST_INSTRUCTION("813C404D", ld3(v1.b(15), v2.b(15), v3.b(15), ptr(x4)));
   2291   TEST_INSTRUCTION("813CDF4D", ld3(v1.b(15), v2.b(15), v3.b(15), ptr_post(x4, 3)));
   2292   TEST_INSTRUCTION("813CCB4D", ld3(v1.b(15), v2.b(15), v3.b(15), ptr_post(x4, x11)));
   2293   TEST_INSTRUCTION("8178404D", ld3(v1.h(7), v2.h(7), v3.h(7), ptr(x4)));
   2294   TEST_INSTRUCTION("8178DF4D", ld3(v1.h(7), v2.h(7), v3.h(7), ptr_post(x4, 6)));
   2295   TEST_INSTRUCTION("8178CB4D", ld3(v1.h(7), v2.h(7), v3.h(7), ptr_post(x4, x11)));
   2296   TEST_INSTRUCTION("81B0404D", ld3(v1.s(3), v2.s(3), v3.s(3), ptr(x4)));
   2297   TEST_INSTRUCTION("81B0DF4D", ld3(v1.s(3), v2.s(3), v3.s(3), ptr_post(x4, 12)));
   2298   TEST_INSTRUCTION("81B0CB4D", ld3(v1.s(3), v2.s(3), v3.s(3), ptr_post(x4, x11)));
   2299   TEST_INSTRUCTION("81A4404D", ld3(v1.d(1), v2.d(1), v3.d(1), ptr(x4)));
   2300   TEST_INSTRUCTION("81A4DF4D", ld3(v1.d(1), v2.d(1), v3.d(1), ptr_post(x4, 24)));
   2301   TEST_INSTRUCTION("81A4CB4D", ld3(v1.d(1), v2.d(1), v3.d(1), ptr_post(x4, x11)));
   2302   TEST_INSTRUCTION("8140400C", ld3(v1.b8(), v2.b8(), v3.b8(), ptr(x4)));
   2303   TEST_INSTRUCTION("8140DF0C", ld3(v1.b8(), v2.b8(), v3.b8(), ptr_post(x4, 24)));
   2304   TEST_INSTRUCTION("8140CB0C", ld3(v1.b8(), v2.b8(), v3.b8(), ptr_post(x4, x11)));
   2305   TEST_INSTRUCTION("8140404C", ld3(v1.b16(), v2.b16(), v3.b16(), ptr(x4)));
   2306   TEST_INSTRUCTION("8140DF4C", ld3(v1.b16(), v2.b16(), v3.b16(), ptr_post(x4, 48)));
   2307   TEST_INSTRUCTION("8140CB4C", ld3(v1.b16(), v2.b16(), v3.b16(), ptr_post(x4, x11)));
   2308   TEST_INSTRUCTION("8144400C", ld3(v1.h4(), v2.h4(), v3.h4(), ptr(x4)));
   2309   TEST_INSTRUCTION("8144DF0C", ld3(v1.h4(), v2.h4(), v3.h4(), ptr_post(x4, 24)));
   2310   TEST_INSTRUCTION("8144CB0C", ld3(v1.h4(), v2.h4(), v3.h4(), ptr_post(x4, x11)));
   2311   TEST_INSTRUCTION("8144404C", ld3(v1.h8(), v2.h8(), v3.h8(), ptr(x4)));
   2312   TEST_INSTRUCTION("8144DF4C", ld3(v1.h8(), v2.h8(), v3.h8(), ptr_post(x4, 48)));
   2313   TEST_INSTRUCTION("8144CB4C", ld3(v1.h8(), v2.h8(), v3.h8(), ptr_post(x4, x11)));
   2314   TEST_INSTRUCTION("8148400C", ld3(v1.s2(), v2.s2(), v3.s2(), ptr(x4)));
   2315   TEST_INSTRUCTION("8148DF0C", ld3(v1.s2(), v2.s2(), v3.s2(), ptr_post(x4, 24)));
   2316   TEST_INSTRUCTION("8148CB0C", ld3(v1.s2(), v2.s2(), v3.s2(), ptr_post(x4, x11)));
   2317   TEST_INSTRUCTION("8148404C", ld3(v1.s4(), v2.s4(), v3.s4(), ptr(x4)));
   2318   TEST_INSTRUCTION("8148DF4C", ld3(v1.s4(), v2.s4(), v3.s4(), ptr_post(x4, 48)));
   2319   TEST_INSTRUCTION("8148CB4C", ld3(v1.s4(), v2.s4(), v3.s4(), ptr_post(x4, x11)));
   2320   TEST_INSTRUCTION("814C404C", ld3(v1.d2(), v2.d2(), v3.d2(), ptr(x4)));
   2321   TEST_INSTRUCTION("814CDF4C", ld3(v1.d2(), v2.d2(), v3.d2(), ptr_post(x4, 48)));
   2322   TEST_INSTRUCTION("814CCB4C", ld3(v1.d2(), v2.d2(), v3.d2(), ptr_post(x4, x11)));
   2323   TEST_INSTRUCTION("81E0400D", ld3r(v1.b8(), v2.b8(), v3.b8(), ptr(x4)));
   2324   TEST_INSTRUCTION("81E0DF0D", ld3r(v1.b8(), v2.b8(), v3.b8(), ptr_post(x4, 3)));
   2325   TEST_INSTRUCTION("81E0CB0D", ld3r(v1.b8(), v2.b8(), v3.b8(), ptr_post(x4, x11)));
   2326   TEST_INSTRUCTION("81E0404D", ld3r(v1.b16(), v2.b16(), v3.b16(), ptr(x4)));
   2327   TEST_INSTRUCTION("81E0DF4D", ld3r(v1.b16(), v2.b16(), v3.b16(), ptr_post(x4, 3)));
   2328   TEST_INSTRUCTION("81E0CB4D", ld3r(v1.b16(), v2.b16(), v3.b16(), ptr_post(x4, x11)));
   2329   TEST_INSTRUCTION("81E4400D", ld3r(v1.h4(), v2.h4(), v3.h4(), ptr(x4)));
   2330   TEST_INSTRUCTION("81E4DF0D", ld3r(v1.h4(), v2.h4(), v3.h4(), ptr_post(x4, 6)));
   2331   TEST_INSTRUCTION("81E4CB0D", ld3r(v1.h4(), v2.h4(), v3.h4(), ptr_post(x4, x11)));
   2332   TEST_INSTRUCTION("81E4404D", ld3r(v1.h8(), v2.h8(), v3.h8(), ptr(x4)));
   2333   TEST_INSTRUCTION("81E4DF4D", ld3r(v1.h8(), v2.h8(), v3.h8(), ptr_post(x4, 6)));
   2334   TEST_INSTRUCTION("81E4CB4D", ld3r(v1.h8(), v2.h8(), v3.h8(), ptr_post(x4, x11)));
   2335   TEST_INSTRUCTION("81E8400D", ld3r(v1.s2(), v2.s2(), v3.s2(), ptr(x4)));
   2336   TEST_INSTRUCTION("81E8DF0D", ld3r(v1.s2(), v2.s2(), v3.s2(), ptr_post(x4, 12)));
   2337   TEST_INSTRUCTION("81E8CB0D", ld3r(v1.s2(), v2.s2(), v3.s2(), ptr_post(x4, x11)));
   2338   TEST_INSTRUCTION("81E8404D", ld3r(v1.s4(), v2.s4(), v3.s4(), ptr(x4)));
   2339   TEST_INSTRUCTION("81E8DF4D", ld3r(v1.s4(), v2.s4(), v3.s4(), ptr_post(x4, 12)));
   2340   TEST_INSTRUCTION("81E8CB4D", ld3r(v1.s4(), v2.s4(), v3.s4(), ptr_post(x4, x11)));
   2341   TEST_INSTRUCTION("81EC404D", ld3r(v1.d2(), v2.d2(), v3.d2(), ptr(x4)));
   2342   TEST_INSTRUCTION("81ECDF4D", ld3r(v1.d2(), v2.d2(), v3.d2(), ptr_post(x4, 24)));
   2343   TEST_INSTRUCTION("81ECCB4D", ld3r(v1.d2(), v2.d2(), v3.d2(), ptr_post(x4, x11)));
   2344   TEST_INSTRUCTION("A120600D", ld4(v1.b(0), v2.b(0), v3.b(0), v4.b(0), ptr(x5)));
   2345   TEST_INSTRUCTION("A120FF0D", ld4(v1.b(0), v2.b(0), v3.b(0), v4.b(0), ptr_post(x5, 4)));
   2346   TEST_INSTRUCTION("A120EB0D", ld4(v1.b(0), v2.b(0), v3.b(0), v4.b(0), ptr_post(x5, x11)));
   2347   TEST_INSTRUCTION("A160600D", ld4(v1.h(0), v2.h(0), v3.h(0), v4.h(0), ptr(x5)));
   2348   TEST_INSTRUCTION("A160FF0D", ld4(v1.h(0), v2.h(0), v3.h(0), v4.h(0), ptr_post(x5, 8)));
   2349   TEST_INSTRUCTION("A160EB0D", ld4(v1.h(0), v2.h(0), v3.h(0), v4.h(0), ptr_post(x5, x11)));
   2350   TEST_INSTRUCTION("A1A0600D", ld4(v1.s(0), v2.s(0), v3.s(0), v4.s(0), ptr(x5)));
   2351   TEST_INSTRUCTION("A1A0FF0D", ld4(v1.s(0), v2.s(0), v3.s(0), v4.s(0), ptr_post(x5, 16)));
   2352   TEST_INSTRUCTION("A1A0EB0D", ld4(v1.s(0), v2.s(0), v3.s(0), v4.s(0), ptr_post(x5, x11)));
   2353   TEST_INSTRUCTION("A1A4600D", ld4(v1.d(0), v2.d(0), v3.d(0), v4.d(0), ptr(x5)));
   2354   TEST_INSTRUCTION("A1A4FF0D", ld4(v1.d(0), v2.d(0), v3.d(0), v4.d(0), ptr_post(x5, 32)));
   2355   TEST_INSTRUCTION("A1A4EB0D", ld4(v1.d(0), v2.d(0), v3.d(0), v4.d(0), ptr_post(x5, x11)));
   2356   TEST_INSTRUCTION("A13C604D", ld4(v1.b(15), v2.b(15), v3.b(15), v4.b(15), ptr(x5)));
   2357   TEST_INSTRUCTION("A13CFF4D", ld4(v1.b(15), v2.b(15), v3.b(15), v4.b(15), ptr_post(x5, 4)));
   2358   TEST_INSTRUCTION("A13CEB4D", ld4(v1.b(15), v2.b(15), v3.b(15), v4.b(15), ptr_post(x5, x11)));
   2359   TEST_INSTRUCTION("A178604D", ld4(v1.h(7), v2.h(7), v3.h(7), v4.h(7), ptr(x5)));
   2360   TEST_INSTRUCTION("A178FF4D", ld4(v1.h(7), v2.h(7), v3.h(7), v4.h(7), ptr_post(x5, 8)));
   2361   TEST_INSTRUCTION("A178EB4D", ld4(v1.h(7), v2.h(7), v3.h(7), v4.h(7), ptr_post(x5, x11)));
   2362   TEST_INSTRUCTION("A1B0604D", ld4(v1.s(3), v2.s(3), v3.s(3), v4.s(3), ptr(x5)));
   2363   TEST_INSTRUCTION("A1B0FF4D", ld4(v1.s(3), v2.s(3), v3.s(3), v4.s(3), ptr_post(x5, 16)));
   2364   TEST_INSTRUCTION("A1B0EB4D", ld4(v1.s(3), v2.s(3), v3.s(3), v4.s(3), ptr_post(x5, x11)));
   2365   TEST_INSTRUCTION("A1A4604D", ld4(v1.d(1), v2.d(1), v3.d(1), v4.d(1), ptr(x5)));
   2366   TEST_INSTRUCTION("A1A4FF4D", ld4(v1.d(1), v2.d(1), v3.d(1), v4.d(1), ptr_post(x5, 32)));
   2367   TEST_INSTRUCTION("A1A4EB4D", ld4(v1.d(1), v2.d(1), v3.d(1), v4.d(1), ptr_post(x5, x11)));
   2368   TEST_INSTRUCTION("A100400C", ld4(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr(x5)));
   2369   TEST_INSTRUCTION("A100DF0C", ld4(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr_post(x5, 32)));
   2370   TEST_INSTRUCTION("A100CB0C", ld4(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr_post(x5, x11)));
   2371   TEST_INSTRUCTION("A100404C", ld4(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr(x5)));
   2372   TEST_INSTRUCTION("A100DF4C", ld4(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr_post(x5, 64)));
   2373   TEST_INSTRUCTION("A100CB4C", ld4(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr_post(x5, x11)));
   2374   TEST_INSTRUCTION("A104400C", ld4(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr(x5)));
   2375   TEST_INSTRUCTION("A104DF0C", ld4(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr_post(x5, 32)));
   2376   TEST_INSTRUCTION("A104CB0C", ld4(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr_post(x5, x11)));
   2377   TEST_INSTRUCTION("A104404C", ld4(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr(x5)));
   2378   TEST_INSTRUCTION("A104DF4C", ld4(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr_post(x5, 64)));
   2379   TEST_INSTRUCTION("A104CB4C", ld4(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr_post(x5, x11)));
   2380   TEST_INSTRUCTION("A108400C", ld4(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr(x5)));
   2381   TEST_INSTRUCTION("A108DF0C", ld4(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr_post(x5, 32)));
   2382   TEST_INSTRUCTION("A108CB0C", ld4(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr_post(x5, x11)));
   2383   TEST_INSTRUCTION("A108404C", ld4(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr(x5)));
   2384   TEST_INSTRUCTION("A108DF4C", ld4(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr_post(x5, 64)));
   2385   TEST_INSTRUCTION("A108CB4C", ld4(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr_post(x5, x11)));
   2386   TEST_INSTRUCTION("A10C404C", ld4(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr(x5)));
   2387   TEST_INSTRUCTION("A10CDF4C", ld4(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr_post(x5, 64)));
   2388   TEST_INSTRUCTION("A10CCB4C", ld4(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr_post(x5, x11)));
   2389   TEST_INSTRUCTION("A1E0600D", ld4r(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr(x5)));
   2390   TEST_INSTRUCTION("A1E0FF0D", ld4r(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr_post(x5, 4)));
   2391   TEST_INSTRUCTION("A1E0EB0D", ld4r(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr_post(x5, x11)));
   2392   TEST_INSTRUCTION("A1E0604D", ld4r(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr(x5)));
   2393   TEST_INSTRUCTION("A1E0FF4D", ld4r(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr_post(x5, 4)));
   2394   TEST_INSTRUCTION("A1E0EB4D", ld4r(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr_post(x5, x11)));
   2395   TEST_INSTRUCTION("A1E4600D", ld4r(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr(x5)));
   2396   TEST_INSTRUCTION("A1E4FF0D", ld4r(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr_post(x5, 8)));
   2397   TEST_INSTRUCTION("A1E4EB0D", ld4r(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr_post(x5, x11)));
   2398   TEST_INSTRUCTION("A1E4604D", ld4r(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr(x5)));
   2399   TEST_INSTRUCTION("A1E4FF4D", ld4r(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr_post(x5, 8)));
   2400   TEST_INSTRUCTION("A1E4EB4D", ld4r(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr_post(x5, x11)));
   2401   TEST_INSTRUCTION("A1E8600D", ld4r(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr(x5)));
   2402   TEST_INSTRUCTION("A1E8FF0D", ld4r(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr_post(x5, 16)));
   2403   TEST_INSTRUCTION("A1E8EB0D", ld4r(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr_post(x5, x11)));
   2404   TEST_INSTRUCTION("A1E8604D", ld4r(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr(x5)));
   2405   TEST_INSTRUCTION("A1E8FF4D", ld4r(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr_post(x5, 16)));
   2406   TEST_INSTRUCTION("A1E8EB4D", ld4r(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr_post(x5, x11)));
   2407   TEST_INSTRUCTION("A1EC604D", ld4r(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr(x5)));
   2408   TEST_INSTRUCTION("A1ECFF4D", ld4r(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr_post(x5, 32)));
   2409   TEST_INSTRUCTION("A1ECEB4D", ld4r(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr_post(x5, x11)));
   2410   TEST_INSTRUCTION("8109402C", ldnp(s1, s2, ptr(x12)));
   2411   TEST_INSTRUCTION("8189402C", ldnp(s1, s2, ptr(x12, 4)));
   2412   TEST_INSTRUCTION("8109702C", ldnp(s1, s2, ptr(x12, -128)));
   2413   TEST_INSTRUCTION("E10B402C", ldnp(s1, s2, ptr(sp)));
   2414   TEST_INSTRUCTION("E18B402C", ldnp(s1, s2, ptr(sp, 4)));
   2415   TEST_INSTRUCTION("E10B502C", ldnp(s1, s2, ptr(sp, 128)));
   2416   TEST_INSTRUCTION("8109406C", ldnp(d1, d2, ptr(x12)));
   2417   TEST_INSTRUCTION("8189406C", ldnp(d1, d2, ptr(x12, 8)));
   2418   TEST_INSTRUCTION("8109786C", ldnp(d1, d2, ptr(x12, -128)));
   2419   TEST_INSTRUCTION("E10B406C", ldnp(d1, d2, ptr(sp)));
   2420   TEST_INSTRUCTION("E18B406C", ldnp(d1, d2, ptr(sp, 8)));
   2421   TEST_INSTRUCTION("E10B486C", ldnp(d1, d2, ptr(sp, 128)));
   2422   TEST_INSTRUCTION("810940AC", ldnp(q1, q2, ptr(x12)));
   2423   TEST_INSTRUCTION("818940AC", ldnp(q1, q2, ptr(x12, 16)));
   2424   TEST_INSTRUCTION("81097CAC", ldnp(q1, q2, ptr(x12, -128)));
   2425   TEST_INSTRUCTION("E10B40AC", ldnp(q1, q2, ptr(sp)));
   2426   TEST_INSTRUCTION("E18B40AC", ldnp(q1, q2, ptr(sp, 16)));
   2427   TEST_INSTRUCTION("E10B44AC", ldnp(q1, q2, ptr(sp, 128)));
   2428   TEST_INSTRUCTION("8109402D", ldp(s1, s2, ptr(x12)));
   2429   TEST_INSTRUCTION("8189402D", ldp(s1, s2, ptr(x12, 4)));
   2430   TEST_INSTRUCTION("8109702D", ldp(s1, s2, ptr(x12, -128)));
   2431   TEST_INSTRUCTION("8189C02D", ldp(s1, s2, ptr_pre(x12, 4)));
   2432   TEST_INSTRUCTION("8189C02C", ldp(s1, s2, ptr_post(x12, 4)));
   2433   TEST_INSTRUCTION("E10B402D", ldp(s1, s2, ptr(sp)));
   2434   TEST_INSTRUCTION("E18B402D", ldp(s1, s2, ptr(sp, 4)));
   2435   TEST_INSTRUCTION("E10B502D", ldp(s1, s2, ptr(sp, 128)));
   2436   TEST_INSTRUCTION("E18BC02C", ldp(s1, s2, ptr_post(sp, 4)));
   2437   TEST_INSTRUCTION("E18BC02D", ldp(s1, s2, ptr_pre(sp, 4)));
   2438   TEST_INSTRUCTION("8109406D", ldp(d1, d2, ptr(x12)));
   2439   TEST_INSTRUCTION("8189406D", ldp(d1, d2, ptr(x12, 8)));
   2440   TEST_INSTRUCTION("8109786D", ldp(d1, d2, ptr(x12, -128)));
   2441   TEST_INSTRUCTION("8189C06D", ldp(d1, d2, ptr_pre(x12, 8)));
   2442   TEST_INSTRUCTION("8189C06C", ldp(d1, d2, ptr_post(x12, 8)));
   2443   TEST_INSTRUCTION("E10B406D", ldp(d1, d2, ptr(sp)));
   2444   TEST_INSTRUCTION("E18B406D", ldp(d1, d2, ptr(sp, 8)));
   2445   TEST_INSTRUCTION("E10B486D", ldp(d1, d2, ptr(sp, 128)));
   2446   TEST_INSTRUCTION("E18BC06D", ldp(d1, d2, ptr_pre(sp, 8)));
   2447   TEST_INSTRUCTION("E18BC06C", ldp(d1, d2, ptr_post(sp, 8)));
   2448   TEST_INSTRUCTION("810940AD", ldp(q1, q2, ptr(x12)));
   2449   TEST_INSTRUCTION("818940AD", ldp(q1, q2, ptr(x12, 16)));
   2450   TEST_INSTRUCTION("81097CAD", ldp(q1, q2, ptr(x12, -128)));
   2451   TEST_INSTRUCTION("8189C0AD", ldp(q1, q2, ptr_pre(x12, 16)));
   2452   TEST_INSTRUCTION("8189C0AC", ldp(q1, q2, ptr_post(x12, 16)));
   2453   TEST_INSTRUCTION("E10B40AD", ldp(q1, q2, ptr(sp)));
   2454   TEST_INSTRUCTION("E18B40AD", ldp(q1, q2, ptr(sp, 16)));
   2455   TEST_INSTRUCTION("E10B44AD", ldp(q1, q2, ptr(sp, 128)));
   2456   TEST_INSTRUCTION("E18BC0AD", ldp(q1, q2, ptr_pre(sp, 16)));
   2457   TEST_INSTRUCTION("E18BC0AC", ldp(q1, q2, ptr_post(sp, 16)));
   2458   TEST_INSTRUCTION("4100403D", ldr(b1, ptr(x2)));
   2459   TEST_INSTRUCTION("4114403C", ldr(b1, ptr_post(x2, 1)));
   2460   TEST_INSTRUCTION("4104403D", ldr(b1, ptr(x2, 1)));
   2461   TEST_INSTRUCTION("411C403C", ldr(b1, ptr_pre(x2, 1)));
   2462   TEST_INSTRUCTION("4114483C", ldr(b1, ptr_post(x2, 129)));
   2463   TEST_INSTRUCTION("4100407D", ldr(h1, ptr(x2)));
   2464   TEST_INSTRUCTION("4124407C", ldr(h1, ptr_post(x2, 2)));
   2465   TEST_INSTRUCTION("4104407D", ldr(h1, ptr(x2, 2)));
   2466   TEST_INSTRUCTION("412C407C", ldr(h1, ptr_pre(x2, 2)));
   2467   TEST_INSTRUCTION("4124487C", ldr(h1, ptr_post(x2, 130)));
   2468   TEST_INSTRUCTION("410040BD", ldr(s1, ptr(x2)));
   2469   TEST_INSTRUCTION("414440BC", ldr(s1, ptr_post(x2, 4)));
   2470   TEST_INSTRUCTION("410440BD", ldr(s1, ptr(x2, 4)));
   2471   TEST_INSTRUCTION("414C40BC", ldr(s1, ptr_pre(x2, 4)));
   2472   TEST_INSTRUCTION("414448BC", ldr(s1, ptr_post(x2, 132)));
   2473   TEST_INSTRUCTION("410040FD", ldr(d1, ptr(x2)));
   2474   TEST_INSTRUCTION("418440FC", ldr(d1, ptr_post(x2, 8)));
   2475   TEST_INSTRUCTION("410440FD", ldr(d1, ptr(x2, 8)));
   2476   TEST_INSTRUCTION("418C40FC", ldr(d1, ptr_pre(x2, 8)));
   2477   TEST_INSTRUCTION("414448FC", ldr(d1, ptr_post(x2, 132)));
   2478   TEST_INSTRUCTION("4168633C", ldr(b1, ptr(x2, x3)));
   2479   TEST_INSTRUCTION("4148633C", ldr(b1, ptr(x2, w3, uxtw(0))));
   2480   TEST_INSTRUCTION("41C8633C", ldr(b1, ptr(x2, w3, sxtw(0))));
   2481   TEST_INSTRUCTION("4168637C", ldr(h1, ptr(x2, x3)));
   2482   TEST_INSTRUCTION("4178637C", ldr(h1, ptr(x2, x3, lsl(1))));
   2483   TEST_INSTRUCTION("4148637C", ldr(h1, ptr(x2, w3, uxtw(0))));
   2484   TEST_INSTRUCTION("4158637C", ldr(h1, ptr(x2, w3, uxtw(1))));
   2485   TEST_INSTRUCTION("41C8637C", ldr(h1, ptr(x2, w3, sxtw(0))));
   2486   TEST_INSTRUCTION("41D8637C", ldr(h1, ptr(x2, w3, sxtw(1))));
   2487   TEST_INSTRUCTION("416863BC", ldr(s1, ptr(x2, x3)));
   2488   TEST_INSTRUCTION("417863BC", ldr(s1, ptr(x2, x3, lsl(2))));
   2489   TEST_INSTRUCTION("414863BC", ldr(s1, ptr(x2, w3, uxtw(0))));
   2490   TEST_INSTRUCTION("415863BC", ldr(s1, ptr(x2, w3, uxtw(2))));
   2491   TEST_INSTRUCTION("41C863BC", ldr(s1, ptr(x2, w3, sxtw(0))));
   2492   TEST_INSTRUCTION("41D863BC", ldr(s1, ptr(x2, w3, sxtw(2))));
   2493   TEST_INSTRUCTION("416863FC", ldr(d1, ptr(x2, x3)));
   2494   TEST_INSTRUCTION("417863FC", ldr(d1, ptr(x2, x3, lsl(3))));
   2495   TEST_INSTRUCTION("414863FC", ldr(d1, ptr(x2, w3, uxtw(0))));
   2496   TEST_INSTRUCTION("415863FC", ldr(d1, ptr(x2, w3, uxtw(3))));
   2497   TEST_INSTRUCTION("41C863FC", ldr(d1, ptr(x2, w3, sxtw(0))));
   2498   TEST_INSTRUCTION("41D863FC", ldr(d1, ptr(x2, w3, sxtw(3))));
   2499   TEST_INSTRUCTION("4104403D", ldr(b1, ptr(x2, 1)));
   2500   TEST_INSTRUCTION("41F05F3C", ldr(b1, ptr(x2, -1))); // LDUR
   2501   TEST_INSTRUCTION("4110407C", ldr(h1, ptr(x2, 1)));  // LDUR
   2502   TEST_INSTRUCTION("41F05F7C", ldr(h1, ptr(x2, -1))); // LDUR
   2503   TEST_INSTRUCTION("411040BC", ldr(s1, ptr(x2, 1)));  // LDUR
   2504   TEST_INSTRUCTION("41F05FBC", ldr(s1, ptr(x2, -1))); // LDUR
   2505   TEST_INSTRUCTION("411040FC", ldr(d1, ptr(x2, 1)));  // LDUR
   2506   TEST_INSTRUCTION("41F05FFC", ldr(d1, ptr(x2, -1))); // LDUR
   2507   TEST_INSTRUCTION("8101403C", ldur(b1, ptr(x12)));
   2508   TEST_INSTRUCTION("8131403C", ldur(b1, ptr(x12, 3)));
   2509   TEST_INSTRUCTION("8131463C", ldur(b1, ptr(x12, 99)));
   2510   TEST_INSTRUCTION("81F14F3C", ldur(b1, ptr(x12, 255)));
   2511   TEST_INSTRUCTION("8101503C", ldur(b1, ptr(x12, -256)));
   2512   TEST_INSTRUCTION("E103403C", ldur(b1, ptr(sp)));
   2513   TEST_INSTRUCTION("E153483C", ldur(b1, ptr(sp, 133)));
   2514   TEST_INSTRUCTION("8101407C", ldur(h1, ptr(x12)));
   2515   TEST_INSTRUCTION("8131407C", ldur(h1, ptr(x12, 3)));
   2516   TEST_INSTRUCTION("8131467C", ldur(h1, ptr(x12, 99)));
   2517   TEST_INSTRUCTION("81F14F7C", ldur(h1, ptr(x12, 255)));
   2518   TEST_INSTRUCTION("8101507C", ldur(h1, ptr(x12, -256)));
   2519   TEST_INSTRUCTION("E103407C", ldur(h1, ptr(sp)));
   2520   TEST_INSTRUCTION("E153487C", ldur(h1, ptr(sp, 133)));
   2521   TEST_INSTRUCTION("810140BC", ldur(s1, ptr(x12)));
   2522   TEST_INSTRUCTION("813140BC", ldur(s1, ptr(x12, 3)));
   2523   TEST_INSTRUCTION("813146BC", ldur(s1, ptr(x12, 99)));
   2524   TEST_INSTRUCTION("81F14FBC", ldur(s1, ptr(x12, 255)));
   2525   TEST_INSTRUCTION("810150BC", ldur(s1, ptr(x12, -256)));
   2526   TEST_INSTRUCTION("E10340BC", ldur(s1, ptr(sp)));
   2527   TEST_INSTRUCTION("E15348BC", ldur(s1, ptr(sp, 133)));
   2528   TEST_INSTRUCTION("810140FC", ldur(d1, ptr(x12)));
   2529   TEST_INSTRUCTION("813140FC", ldur(d1, ptr(x12, 3)));
   2530   TEST_INSTRUCTION("813146FC", ldur(d1, ptr(x12, 99)));
   2531   TEST_INSTRUCTION("81F14FFC", ldur(d1, ptr(x12, 255)));
   2532   TEST_INSTRUCTION("810150FC", ldur(d1, ptr(x12, -256)));
   2533   TEST_INSTRUCTION("E10340FC", ldur(d1, ptr(sp)));
   2534   TEST_INSTRUCTION("E15348FC", ldur(d1, ptr(sp, 133)));
   2535   TEST_INSTRUCTION("8101C03C", ldur(q1, ptr(x12)));
   2536   TEST_INSTRUCTION("8131C03C", ldur(q1, ptr(x12, 3)));
   2537   TEST_INSTRUCTION("8131C63C", ldur(q1, ptr(x12, 99)));
   2538   TEST_INSTRUCTION("81F1CF3C", ldur(q1, ptr(x12, 255)));
   2539   TEST_INSTRUCTION("8101D03C", ldur(q1, ptr(x12, -256)));
   2540   TEST_INSTRUCTION("E103C03C", ldur(q1, ptr(sp)));
   2541   TEST_INSTRUCTION("E153C83C", ldur(q1, ptr(sp, 133)));
   2542   TEST_INSTRUCTION("4194230E", mla(v1.b8(), v2.b8(), v3.b8()));
   2543   TEST_INSTRUCTION("4194630E", mla(v1.h4(), v2.h4(), v3.h4()));
   2544   TEST_INSTRUCTION("4194A30E", mla(v1.s2(), v2.s2(), v3.s2()));
   2545   TEST_INSTRUCTION("4194234E", mla(v1.b16(), v2.b16(), v3.b16()));
   2546   TEST_INSTRUCTION("4194634E", mla(v1.h8(), v2.h8(), v3.h8()));
   2547   TEST_INSTRUCTION("4194A34E", mla(v1.s4(), v2.s4(), v3.s4()));
   2548   TEST_INSTRUCTION("4100432F", mla(v1.h4(), v2.h4(), v3.h(0)));
   2549   TEST_INSTRUCTION("4100532F", mla(v1.h4(), v2.h4(), v3.h(1)));
   2550   TEST_INSTRUCTION("4100632F", mla(v1.h4(), v2.h4(), v3.h(2)));
   2551   TEST_INSTRUCTION("4100732F", mla(v1.h4(), v2.h4(), v3.h(3)));
   2552   TEST_INSTRUCTION("4108436F", mla(v1.h8(), v2.h8(), v3.h(4)));
   2553   TEST_INSTRUCTION("4108536F", mla(v1.h8(), v2.h8(), v3.h(5)));
   2554   TEST_INSTRUCTION("4108636F", mla(v1.h8(), v2.h8(), v3.h(6)));
   2555   TEST_INSTRUCTION("4108736F", mla(v1.h8(), v2.h8(), v3.h(7)));
   2556   TEST_INSTRUCTION("4100832F", mla(v1.s2(), v2.s2(), v3.s(0)));
   2557   TEST_INSTRUCTION("4100A32F", mla(v1.s2(), v2.s2(), v3.s(1)));
   2558   TEST_INSTRUCTION("4108836F", mla(v1.s4(), v2.s4(), v3.s(2)));
   2559   TEST_INSTRUCTION("4108A36F", mla(v1.s4(), v2.s4(), v3.s(3)));
   2560   TEST_INSTRUCTION("4194232E", mls(v1.b8(), v2.b8(), v3.b8()));
   2561   TEST_INSTRUCTION("4194632E", mls(v1.h4(), v2.h4(), v3.h4()));
   2562   TEST_INSTRUCTION("4194A32E", mls(v1.s2(), v2.s2(), v3.s2()));
   2563   TEST_INSTRUCTION("4194236E", mls(v1.b16(), v2.b16(), v3.b16()));
   2564   TEST_INSTRUCTION("4194636E", mls(v1.h8(), v2.h8(), v3.h8()));
   2565   TEST_INSTRUCTION("4194A36E", mls(v1.s4(), v2.s4(), v3.s4()));
   2566   TEST_INSTRUCTION("4140432F", mls(v1.h4(), v2.h4(), v3.h(0)));
   2567   TEST_INSTRUCTION("4140532F", mls(v1.h4(), v2.h4(), v3.h(1)));
   2568   TEST_INSTRUCTION("4140632F", mls(v1.h4(), v2.h4(), v3.h(2)));
   2569   TEST_INSTRUCTION("4140732F", mls(v1.h4(), v2.h4(), v3.h(3)));
   2570   TEST_INSTRUCTION("4148436F", mls(v1.h8(), v2.h8(), v3.h(4)));
   2571   TEST_INSTRUCTION("4148536F", mls(v1.h8(), v2.h8(), v3.h(5)));
   2572   TEST_INSTRUCTION("4148636F", mls(v1.h8(), v2.h8(), v3.h(6)));
   2573   TEST_INSTRUCTION("4148736F", mls(v1.h8(), v2.h8(), v3.h(7)));
   2574   TEST_INSTRUCTION("4140832F", mls(v1.s2(), v2.s2(), v3.s(0)));
   2575   TEST_INSTRUCTION("4140A32F", mls(v1.s2(), v2.s2(), v3.s(1)));
   2576   TEST_INSTRUCTION("4148836F", mls(v1.s4(), v2.s4(), v3.s(2)));
   2577   TEST_INSTRUCTION("4148A36F", mls(v1.s4(), v2.s4(), v3.s(3)));
   2578   TEST_INSTRUCTION("4F04035E", mov(b15, v2.b(1)));
   2579   TEST_INSTRUCTION("4F04065E", mov(h15, v2.h(1)));
   2580   TEST_INSTRUCTION("4F040C5E", mov(s15, v2.s(1)));
   2581   TEST_INSTRUCTION("4F04185E", mov(d15, v2.d(1)));
   2582   TEST_INSTRUCTION("411C014E", mov(v1.b(0), w2));
   2583   TEST_INSTRUCTION("411C074E", mov(v1.b(3), w2));
   2584   TEST_INSTRUCTION("411C0D4E", mov(v1.b(6), w2));
   2585   TEST_INSTRUCTION("411C134E", mov(v1.b(9), w2));
   2586   TEST_INSTRUCTION("411C1F4E", mov(v1.b(15), w2));
   2587   TEST_INSTRUCTION("411C024E", mov(v1.h(0), w2));
   2588   TEST_INSTRUCTION("411C0E4E", mov(v1.h(3), w2));
   2589   TEST_INSTRUCTION("411C1E4E", mov(v1.h(7), w2));
   2590   TEST_INSTRUCTION("411C044E", mov(v1.s(0), w2));
   2591   TEST_INSTRUCTION("411C0C4E", mov(v1.s(1), w2));
   2592   TEST_INSTRUCTION("411C144E", mov(v1.s(2), w2));
   2593   TEST_INSTRUCTION("411C1C4E", mov(v1.s(3), w2));
   2594   TEST_INSTRUCTION("411C084E", mov(v1.d(0), x2));
   2595   TEST_INSTRUCTION("411C184E", mov(v1.d(1), x2));
   2596   TEST_INSTRUCTION("417C016E", mov(v1.b(0), v2.b(15)));
   2597   TEST_INSTRUCTION("4174036E", mov(v1.b(1), v2.b(14)));
   2598   TEST_INSTRUCTION("4174026E", mov(v1.h(0), v2.h(7)));
   2599   TEST_INSTRUCTION("4164066E", mov(v1.h(1), v2.h(6)));
   2600   TEST_INSTRUCTION("4164046E", mov(v1.s(0), v2.s(3)));
   2601   TEST_INSTRUCTION("41440C6E", mov(v1.s(1), v2.s(2)));
   2602   TEST_INSTRUCTION("4144086E", mov(v1.d(0), v2.d(1)));
   2603   TEST_INSTRUCTION("4104186E", mov(v1.d(1), v2.d(0)));
   2604   TEST_INSTRUCTION("41E5010F", movi(v1.b8(), 42));
   2605   TEST_INSTRUCTION("4185010F", movi(v1.h4(), 42));
   2606   TEST_INSTRUCTION("4105010F", movi(v1.s2(), 42));
   2607   TEST_INSTRUCTION("C1E5022F", movi(d1, 0x00FF0000FFFFFF00u));
   2608   TEST_INSTRUCTION("41E5014F", movi(v1.b16(), 42));
   2609   TEST_INSTRUCTION("4185014F", movi(v1.h8(), 42));
   2610   TEST_INSTRUCTION("4105014F", movi(v1.s4(), 42));
   2611   TEST_INSTRUCTION("E167074F", movi(v1.s4(), 0xFF, lsl(24)));
   2612   TEST_INSTRUCTION("E1D7074F", movi(v1.s4(), 0xFF, msl(16)));
   2613   TEST_INSTRUCTION("C1E5026F", movi(v1.d2(), 0x00FF0000FFFFFF00u));
   2614   TEST_INSTRUCTION("419C230E", mul(v1.b8(), v2.b8(), v3.b8()));
   2615   TEST_INSTRUCTION("419C630E", mul(v1.h4(), v2.h4(), v3.h4()));
   2616   TEST_INSTRUCTION("419CA30E", mul(v1.s2(), v2.s2(), v3.s2()));
   2617   TEST_INSTRUCTION("419C234E", mul(v1.b16(), v2.b16(), v3.b16()));
   2618   TEST_INSTRUCTION("419C634E", mul(v1.h8(), v2.h8(), v3.h8()));
   2619   TEST_INSTRUCTION("419CA34E", mul(v1.s4(), v2.s4(), v3.s4()));
   2620   TEST_INSTRUCTION("4158202E", mvn_(v1.b8(), v2.b8()));
   2621   TEST_INSTRUCTION("4158206E", mvn_(v1.b16(), v2.b16()));
   2622   TEST_INSTRUCTION("4185012F", mvni(v1.h4(), 42));
   2623   TEST_INSTRUCTION("4105012F", mvni(v1.s2(), 42));
   2624   TEST_INSTRUCTION("4185016F", mvni(v1.h8(), 42));
   2625   TEST_INSTRUCTION("4105016F", mvni(v1.s4(), 42));
   2626   TEST_INSTRUCTION("41B8202E", neg(v1.b8(), v2.b8()));
   2627   TEST_INSTRUCTION("41B8602E", neg(v1.h4(), v2.h4()));
   2628   TEST_INSTRUCTION("41B8A02E", neg(v1.s2(), v2.s2()));
   2629   TEST_INSTRUCTION("41B8E07E", neg(d1, d2));
   2630   TEST_INSTRUCTION("41B8206E", neg(v1.b16(), v2.b16()));
   2631   TEST_INSTRUCTION("41B8606E", neg(v1.h8(), v2.h8()));
   2632   TEST_INSTRUCTION("41B8A06E", neg(v1.s4(), v2.s4()));
   2633   TEST_INSTRUCTION("41B8E06E", neg(v1.d2(), v2.d2()));
   2634   TEST_INSTRUCTION("4158202E", not_(v1.b8(), v2.b8()));
   2635   TEST_INSTRUCTION("4158206E", not_(v1.b16(), v2.b16()));
   2636   TEST_INSTRUCTION("411CE30E", orn(v1.b8(), v2.b8(), v3.b8()));
   2637   TEST_INSTRUCTION("411CE34E", orn(v1.b16(), v2.b16(), v3.b16()));
   2638   TEST_INSTRUCTION("411CA30E", orr(v1.b8(), v2.b8(), v3.b8()));
   2639   TEST_INSTRUCTION("411CA34E", orr(v1.b16(), v2.b16(), v3.b16()));
   2640   TEST_INSTRUCTION("E197070F", orr(v1.h4(), 255));
   2641   TEST_INSTRUCTION("E1B7070F", orr(v1.h4(), 255, lsl(8)));
   2642   TEST_INSTRUCTION("E197074F", orr(v1.h8(), 255));
   2643   TEST_INSTRUCTION("E1B7074F", orr(v1.h8(), 255, lsl(8)));
   2644   TEST_INSTRUCTION("E117070F", orr(v1.s2(), 255));
   2645   TEST_INSTRUCTION("E137070F", orr(v1.s2(), 255, lsl(8)));
   2646   TEST_INSTRUCTION("E117074F", orr(v1.s4(), 255));
   2647   TEST_INSTRUCTION("E177074F", orr(v1.s4(), 255, lsl(24)));
   2648   TEST_INSTRUCTION("419C232E", pmul(v1.b8(), v2.b8(), v3.b8()));
   2649   TEST_INSTRUCTION("419C236E", pmul(v1.b16(), v2.b16(), v3.b16()));
   2650   TEST_INSTRUCTION("41E0230E", pmull(v1.h8(), v2.b8(), v3.b8()));
   2651   TEST_INSTRUCTION("41E0E30E", pmull(q1, d2, d3));
   2652   TEST_INSTRUCTION("41E0234E", pmull2(v1.h8(), v2.b16(), v3.b16()));
   2653   TEST_INSTRUCTION("41E0E34E", pmull2(q1, v2.d2(), v3.d2()));
   2654   TEST_INSTRUCTION("4140232E", raddhn(v1.b8(), v2.h8(), v3.h8()));
   2655   TEST_INSTRUCTION("4140632E", raddhn(v1.h4(), v2.s4(), v3.s4()));
   2656   TEST_INSTRUCTION("4140A32E", raddhn(v1.s2(), v2.d2(), v3.d2()));
   2657   TEST_INSTRUCTION("4140236E", raddhn2(v1.b16(), v2.h8(), v3.h8()));
   2658   TEST_INSTRUCTION("4140636E", raddhn2(v1.h8(), v2.s4(), v3.s4()));
   2659   TEST_INSTRUCTION("4140A36E", raddhn2(v1.s4(), v2.d2(), v3.d2()));
   2660   TEST_INSTRUCTION("418C63CE", rax1(v1.d2(), v2.d2(), v3.d2()));
   2661   TEST_INSTRUCTION("4158602E", rbit(v1.b8(), v2.b8()));
   2662   TEST_INSTRUCTION("4158606E", rbit(v1.b16(), v2.b16()));
   2663   TEST_INSTRUCTION("4118200E", rev16(v1.b8(), v2.b8()));
   2664   TEST_INSTRUCTION("4118204E", rev16(v1.b16(), v2.b16()));
   2665   TEST_INSTRUCTION("4108202E", rev32(v1.b8(), v2.b8()));
   2666   TEST_INSTRUCTION("4108206E", rev32(v1.b16(), v2.b16()));
   2667   TEST_INSTRUCTION("4108602E", rev32(v1.h4(), v2.h4()));
   2668   TEST_INSTRUCTION("4108606E", rev32(v1.h8(), v2.h8()));
   2669   TEST_INSTRUCTION("4108200E", rev64(v1.b8(), v2.b8()));
   2670   TEST_INSTRUCTION("4108204E", rev64(v1.b16(), v2.b16()));
   2671   TEST_INSTRUCTION("4108600E", rev64(v1.h4(), v2.h4()));
   2672   TEST_INSTRUCTION("4108604E", rev64(v1.h8(), v2.h8()));
   2673   TEST_INSTRUCTION("4108A00E", rev64(v1.s2(), v2.s2()));
   2674   TEST_INSTRUCTION("4108A04E", rev64(v1.s4(), v2.s4()));
   2675   TEST_INSTRUCTION("418C090F", rshrn(v1.b8(), v2.h8(), 7));
   2676   TEST_INSTRUCTION("418C110F", rshrn(v1.h4(), v2.s4(), 15));
   2677   TEST_INSTRUCTION("418C210F", rshrn(v1.s2(), v2.d2(), 31));
   2678   TEST_INSTRUCTION("418C094F", rshrn2(v1.b16(), v2.h8(), 7));
   2679   TEST_INSTRUCTION("418C114F", rshrn2(v1.h8(), v2.s4(), 15));
   2680   TEST_INSTRUCTION("418C214F", rshrn2(v1.s4(), v2.d2(), 31));
   2681   TEST_INSTRUCTION("4160232E", rsubhn(v1.b8(), v2.h8(), v3.h8()));
   2682   TEST_INSTRUCTION("4160632E", rsubhn(v1.h4(), v2.s4(), v3.s4()));
   2683   TEST_INSTRUCTION("4160A32E", rsubhn(v1.s2(), v2.d2(), v3.d2()));
   2684   TEST_INSTRUCTION("4160236E", rsubhn2(v1.b16(), v2.h8(), v3.h8()));
   2685   TEST_INSTRUCTION("4160636E", rsubhn2(v1.h8(), v2.s4(), v3.s4()));
   2686   TEST_INSTRUCTION("4160A36E", rsubhn2(v1.s4(), v2.d2(), v3.d2()));
   2687   TEST_INSTRUCTION("417C230E", saba(v1.b8(), v2.b8(), v3.b8()));
   2688   TEST_INSTRUCTION("417C630E", saba(v1.h4(), v2.h4(), v3.h4()));
   2689   TEST_INSTRUCTION("417CA30E", saba(v1.s2(), v2.s2(), v3.s2()));
   2690   TEST_INSTRUCTION("417C234E", saba(v1.b16(), v2.b16(), v3.b16()));
   2691   TEST_INSTRUCTION("417C634E", saba(v1.h8(), v2.h8(), v3.h8()));
   2692   TEST_INSTRUCTION("417CA34E", saba(v1.s4(), v2.s4(), v3.s4()));
   2693   TEST_INSTRUCTION("4150230E", sabal(v1.h8(), v2.b8(), v3.b8()));
   2694   TEST_INSTRUCTION("4150630E", sabal(v1.s4(), v2.h4(), v3.h4()));
   2695   TEST_INSTRUCTION("4150A30E", sabal(v1.d2(), v2.s2(), v3.s2()));
   2696   TEST_INSTRUCTION("4150234E", sabal2(v1.h8(), v2.b16(), v3.b16()));
   2697   TEST_INSTRUCTION("4150634E", sabal2(v1.s4(), v2.h8(), v3.h8()));
   2698   TEST_INSTRUCTION("4150A34E", sabal2(v1.d2(), v2.s4(), v3.s4()));
   2699   TEST_INSTRUCTION("4174230E", sabd(v1.b8(), v2.b8(), v3.b8()));
   2700   TEST_INSTRUCTION("4174630E", sabd(v1.h4(), v2.h4(), v3.h4()));
   2701   TEST_INSTRUCTION("4174A30E", sabd(v1.s2(), v2.s2(), v3.s2()));
   2702   TEST_INSTRUCTION("4174234E", sabd(v1.b16(), v2.b16(), v3.b16()));
   2703   TEST_INSTRUCTION("4174634E", sabd(v1.h8(), v2.h8(), v3.h8()));
   2704   TEST_INSTRUCTION("4174A34E", sabd(v1.s4(), v2.s4(), v3.s4()));
   2705   TEST_INSTRUCTION("4170230E", sabdl(v1.h8(), v2.b8(), v3.b8()));
   2706   TEST_INSTRUCTION("4170630E", sabdl(v1.s4(), v2.h4(), v3.h4()));
   2707   TEST_INSTRUCTION("4170A30E", sabdl(v1.d2(), v2.s2(), v3.s2()));
   2708   TEST_INSTRUCTION("4170234E", sabdl2(v1.h8(), v2.b16(), v3.b16()));
   2709   TEST_INSTRUCTION("4170634E", sabdl2(v1.s4(), v2.h8(), v3.h8()));
   2710   TEST_INSTRUCTION("4170A34E", sabdl2(v1.d2(), v2.s4(), v3.s4()));
   2711   TEST_INSTRUCTION("4168200E", sadalp(v1.h4(), v2.b8()));
   2712   TEST_INSTRUCTION("4168600E", sadalp(v1.s2(), v2.h4()));
   2713   TEST_INSTRUCTION("4168A00E", sadalp(d1, v2.s2()));
   2714   TEST_INSTRUCTION("4168204E", sadalp(v1.h8(), v2.b16()));
   2715   TEST_INSTRUCTION("4168604E", sadalp(v1.s4(), v2.h8()));
   2716   TEST_INSTRUCTION("4168A04E", sadalp(v1.d2(), v2.s4()));
   2717   TEST_INSTRUCTION("4100230E", saddl(v1.h8(), v2.b8(), v3.b8()));
   2718   TEST_INSTRUCTION("4100630E", saddl(v1.s4(), v2.h4(), v3.h4()));
   2719   TEST_INSTRUCTION("4100A30E", saddl(v1.d2(), v2.s2(), v3.s2()));
   2720   TEST_INSTRUCTION("4100234E", saddl2(v1.h8(), v2.b16(), v3.b16()));
   2721   TEST_INSTRUCTION("4100634E", saddl2(v1.s4(), v2.h8(), v3.h8()));
   2722   TEST_INSTRUCTION("4100A34E", saddl2(v1.d2(), v2.s4(), v3.s4()));
   2723   TEST_INSTRUCTION("4128200E", saddlp(v1.h4(), v2.b8()));
   2724   TEST_INSTRUCTION("4128600E", saddlp(v1.s2(), v2.h4()));
   2725   TEST_INSTRUCTION("4128A00E", saddlp(d1, v2.s2()));
   2726   TEST_INSTRUCTION("4128204E", saddlp(v1.h8(), v2.b16()));
   2727   TEST_INSTRUCTION("4128604E", saddlp(v1.s4(), v2.h8()));
   2728   TEST_INSTRUCTION("4128A04E", saddlp(v1.d2(), v2.s4()));
   2729   TEST_INSTRUCTION("4138300E", saddlv(h1, v2.b8()));
   2730   TEST_INSTRUCTION("4138304E", saddlv(h1, v2.b16()));
   2731   TEST_INSTRUCTION("4138700E", saddlv(s1, v2.h4()));
   2732   TEST_INSTRUCTION("4138704E", saddlv(s1, v2.h8()));
   2733   TEST_INSTRUCTION("4138B04E", saddlv(d1, v2.s4()));
   2734   TEST_INSTRUCTION("4110230E", saddw(v1.h8(), v2.h8(), v3.b8()));
   2735   TEST_INSTRUCTION("4110630E", saddw(v1.s4(), v2.s4(), v3.h4()));
   2736   TEST_INSTRUCTION("4110A30E", saddw(v1.d2(), v2.d2(), v3.s2()));
   2737   TEST_INSTRUCTION("4110234E", saddw2(v1.h8(), v2.h8(), v3.b16()));
   2738   TEST_INSTRUCTION("4110634E", saddw2(v1.s4(), v2.s4(), v3.h8()));
   2739   TEST_INSTRUCTION("4110A34E", saddw2(v1.d2(), v2.d2(), v3.s4()));
   2740   TEST_INSTRUCTION("4100E21E", scvtf(h1, w2));
   2741   TEST_INSTRUCTION("4100221E", scvtf(s1, w2));
   2742   TEST_INSTRUCTION("4100621E", scvtf(d1, w2));
   2743   TEST_INSTRUCTION("4100E29E", scvtf(h1, x2));
   2744   TEST_INSTRUCTION("4100229E", scvtf(s1, x2));
   2745   TEST_INSTRUCTION("4100629E", scvtf(d1, x2));
   2746   TEST_INSTRUCTION("41D8795E", scvtf(h1, h2));
   2747   TEST_INSTRUCTION("41D8215E", scvtf(s1, s2));
   2748   TEST_INSTRUCTION("41D8615E", scvtf(d1, d2));
   2749   TEST_INSTRUCTION("41D8790E", scvtf(v1.h4(), v2.h4()));
   2750   TEST_INSTRUCTION("41D8210E", scvtf(v1.s2(), v2.s2()));
   2751   TEST_INSTRUCTION("41D8794E", scvtf(v1.h8(), v2.h8()));
   2752   TEST_INSTRUCTION("41D8214E", scvtf(v1.s4(), v2.s4()));
   2753   TEST_INSTRUCTION("41D8614E", scvtf(v1.d2(), v2.d2()));
   2754   TEST_INSTRUCTION("41E0C21E", scvtf(h1, w2, 8));
   2755   TEST_INSTRUCTION("41E0021E", scvtf(s1, w2, 8));
   2756   TEST_INSTRUCTION("41E0421E", scvtf(d1, w2, 8));
   2757   TEST_INSTRUCTION("41E0C29E", scvtf(h1, x2, 8));
   2758   TEST_INSTRUCTION("41E0029E", scvtf(s1, x2, 8));
   2759   TEST_INSTRUCTION("41E0429E", scvtf(d1, x2, 8));
   2760   TEST_INSTRUCTION("41E4185F", scvtf(h1, h2, 8));
   2761   TEST_INSTRUCTION("41E4385F", scvtf(s1, s2, 8));
   2762   TEST_INSTRUCTION("41E4785F", scvtf(d1, d2, 8));
   2763   TEST_INSTRUCTION("41E4180F", scvtf(v1.h4(), v2.h4(), 8));
   2764   TEST_INSTRUCTION("41E4380F", scvtf(v1.s2(), v2.s2(), 8));
   2765   TEST_INSTRUCTION("41E4184F", scvtf(v1.h8(), v2.h8(), 8));
   2766   TEST_INSTRUCTION("41E4384F", scvtf(v1.s4(), v2.s4(), 8));
   2767   TEST_INSTRUCTION("41E4784F", scvtf(v1.d2(), v2.d2(), 8));
   2768   TEST_INSTRUCTION("4194830E", sdot(v1.s2(), v2.b8(), v3.b8()));
   2769   TEST_INSTRUCTION("4194834E", sdot(v1.s4(), v2.b16(), v3.b16()));
   2770   TEST_INSTRUCTION("41E0830F", sdot(v1.s2(), v2.b8(), v3.b4(0)));
   2771   TEST_INSTRUCTION("41E0A30F", sdot(v1.s2(), v2.b8(), v3.b4(1)));
   2772   TEST_INSTRUCTION("41E8830F", sdot(v1.s2(), v2.b8(), v3.b4(2)));
   2773   TEST_INSTRUCTION("41E8A30F", sdot(v1.s2(), v2.b8(), v3.b4(3)));
   2774   TEST_INSTRUCTION("41E0834F", sdot(v1.s4(), v2.b16(), v3.b4(0)));
   2775   TEST_INSTRUCTION("41E0A34F", sdot(v1.s4(), v2.b16(), v3.b4(1)));
   2776   TEST_INSTRUCTION("41E8834F", sdot(v1.s4(), v2.b16(), v3.b4(2)));
   2777   TEST_INSTRUCTION("41E8A34F", sdot(v1.s4(), v2.b16(), v3.b4(3)));
   2778   TEST_INSTRUCTION("4100035E", sha1c(q1, s2, v3.s4()));
   2779   TEST_INSTRUCTION("4108285E", sha1h(s1, s2));
   2780   TEST_INSTRUCTION("4120035E", sha1m(q1, s2, v3.s4()));
   2781   TEST_INSTRUCTION("4110035E", sha1p(q1, s2, v3.s4()));
   2782   TEST_INSTRUCTION("4130035E", sha1su0(v1.s4(), v2.s4(), v3.s4()));
   2783   TEST_INSTRUCTION("4118285E", sha1su1(v1.s4(), v2.s4()));
   2784   TEST_INSTRUCTION("4140035E", sha256h(q1, q2, v3.s4()));
   2785   TEST_INSTRUCTION("4150035E", sha256h2(q1, q2, v3.s4()));
   2786   TEST_INSTRUCTION("4128285E", sha256su0(v1.s4(), v2.s4()));
   2787   TEST_INSTRUCTION("4160035E", sha256su1(v1.s4(), v2.s4(), v3.s4()));
   2788   TEST_INSTRUCTION("4104230E", shadd(v1.b8(), v2.b8(), v3.b8()));
   2789   TEST_INSTRUCTION("4104630E", shadd(v1.h4(), v2.h4(), v3.h4()));
   2790   TEST_INSTRUCTION("4104A30E", shadd(v1.s2(), v2.s2(), v3.s2()));
   2791   TEST_INSTRUCTION("4104234E", shadd(v1.b16(), v2.b16(), v3.b16()));
   2792   TEST_INSTRUCTION("4104634E", shadd(v1.h8(), v2.h8(), v3.h8()));
   2793   TEST_INSTRUCTION("4104A34E", shadd(v1.s4(), v2.s4(), v3.s4()));
   2794   TEST_INSTRUCTION("41540F0F", shl(v1.b8(), v2.b8(), 7));
   2795   TEST_INSTRUCTION("41541F0F", shl(v1.h4(), v2.h4(), 15));
   2796   TEST_INSTRUCTION("41543F0F", shl(v1.s2(), v2.s2(), 31));
   2797   TEST_INSTRUCTION("41547F5F", shl(d1, d2, 63));
   2798   TEST_INSTRUCTION("41540F4F", shl(v1.b16(), v2.b16(), 7));
   2799   TEST_INSTRUCTION("41541F4F", shl(v1.h8(), v2.h8(), 15));
   2800   TEST_INSTRUCTION("41543F4F", shl(v1.s4(), v2.s4(), 31));
   2801   TEST_INSTRUCTION("41547F4F", shl(v1.d2(), v2.d2(), 63));
   2802   TEST_INSTRUCTION("4138212E", shll(v1.h8(), v2.b8(), 8));
   2803   TEST_INSTRUCTION("4138612E", shll(v1.s4(), v2.h4(), 16));
   2804   TEST_INSTRUCTION("4138A12E", shll(v1.d2(), v2.s2(), 32));
   2805   TEST_INSTRUCTION("4138216E", shll2(v1.h8(), v2.b16(), 8));
   2806   TEST_INSTRUCTION("4138616E", shll2(v1.s4(), v2.h8(), 16));
   2807   TEST_INSTRUCTION("4138A16E", shll2(v1.d2(), v2.s4(), 32));
   2808   TEST_INSTRUCTION("4184090F", shrn(v1.b8(), v2.h8(), 7));
   2809   TEST_INSTRUCTION("4184110F", shrn(v1.h4(), v2.s4(), 15));
   2810   TEST_INSTRUCTION("4184210F", shrn(v1.s2(), v2.d2(), 31));
   2811   TEST_INSTRUCTION("4184094F", shrn2(v1.b16(), v2.h8(), 7));
   2812   TEST_INSTRUCTION("4184114F", shrn2(v1.h8(), v2.s4(), 15));
   2813   TEST_INSTRUCTION("4184214F", shrn2(v1.s4(), v2.d2(), 31));
   2814   TEST_INSTRUCTION("4124230E", shsub(v1.b8(), v2.b8(), v3.b8()));
   2815   TEST_INSTRUCTION("4124630E", shsub(v1.h4(), v2.h4(), v3.h4()));
   2816   TEST_INSTRUCTION("4124A30E", shsub(v1.s2(), v2.s2(), v3.s2()));
   2817   TEST_INSTRUCTION("4124234E", shsub(v1.b16(), v2.b16(), v3.b16()));
   2818   TEST_INSTRUCTION("4124634E", shsub(v1.h8(), v2.h8(), v3.h8()));
   2819   TEST_INSTRUCTION("4124A34E", shsub(v1.s4(), v2.s4(), v3.s4()));
   2820   TEST_INSTRUCTION("41540F2F", sli(v1.b8(), v2.b8(), 7));
   2821   TEST_INSTRUCTION("41541F2F", sli(v1.h4(), v2.h4(), 15));
   2822   TEST_INSTRUCTION("41543F2F", sli(v1.s2(), v2.s2(), 31));
   2823   TEST_INSTRUCTION("41547F7F", sli(d1, d2, 63));
   2824   TEST_INSTRUCTION("41540F6F", sli(v1.b16(), v2.b16(), 7));
   2825   TEST_INSTRUCTION("41541F6F", sli(v1.h8(), v2.h8(), 15));
   2826   TEST_INSTRUCTION("41543F6F", sli(v1.s4(), v2.s4(), 31));
   2827   TEST_INSTRUCTION("41547F6F", sli(v1.d2(), v2.d2(), 63));
   2828   TEST_INSTRUCTION("41C063CE", sm3partw1(v1.s4(), v2.s4(), v3.s4()));
   2829   TEST_INSTRUCTION("41C463CE", sm3partw2(v1.s4(), v2.s4(), v3.s4()));
   2830   TEST_INSTRUCTION("411043CE", sm3ss1(v1.s4(), v2.s4(), v3.s4(), v4.s4()));
   2831   TEST_INSTRUCTION("418044CE", sm3tt1a(v1.s4(), v2.s4(), v4.s(0)));
   2832   TEST_INSTRUCTION("41B044CE", sm3tt1a(v1.s4(), v2.s4(), v4.s(3)));
   2833   TEST_INSTRUCTION("418444CE", sm3tt1b(v1.s4(), v2.s4(), v4.s(0)));
   2834   TEST_INSTRUCTION("41B444CE", sm3tt1b(v1.s4(), v2.s4(), v4.s(3)));
   2835   TEST_INSTRUCTION("418844CE", sm3tt2a(v1.s4(), v2.s4(), v4.s(0)));
   2836   TEST_INSTRUCTION("41B844CE", sm3tt2a(v1.s4(), v2.s4(), v4.s(3)));
   2837   TEST_INSTRUCTION("418C44CE", sm3tt2b(v1.s4(), v2.s4(), v4.s(0)));
   2838   TEST_INSTRUCTION("41BC44CE", sm3tt2b(v1.s4(), v2.s4(), v4.s(3)));
   2839   TEST_INSTRUCTION("4184C0CE", sm4e(v1.s4(), v2.s4()));
   2840   TEST_INSTRUCTION("41C863CE", sm4ekey(v1.s4(), v2.s4(), v3.s4()));
   2841   TEST_INSTRUCTION("4164230E", smax(v1.b8(), v2.b8(), v3.b8()));
   2842   TEST_INSTRUCTION("4164630E", smax(v1.h4(), v2.h4(), v3.h4()));
   2843   TEST_INSTRUCTION("4164A30E", smax(v1.s2(), v2.s2(), v3.s2()));
   2844   TEST_INSTRUCTION("4164234E", smax(v1.b16(), v2.b16(), v3.b16()));
   2845   TEST_INSTRUCTION("4164634E", smax(v1.h8(), v2.h8(), v3.h8()));
   2846   TEST_INSTRUCTION("4164A34E", smax(v1.s4(), v2.s4(), v3.s4()));
   2847   TEST_INSTRUCTION("41A4230E", smaxp(v1.b8(), v2.b8(), v3.b8()));
   2848   TEST_INSTRUCTION("41A4630E", smaxp(v1.h4(), v2.h4(), v3.h4()));
   2849   TEST_INSTRUCTION("41A4A30E", smaxp(v1.s2(), v2.s2(), v3.s2()));
   2850   TEST_INSTRUCTION("41A4234E", smaxp(v1.b16(), v2.b16(), v3.b16()));
   2851   TEST_INSTRUCTION("41A4634E", smaxp(v1.h8(), v2.h8(), v3.h8()));
   2852   TEST_INSTRUCTION("41A4A34E", smaxp(v1.s4(), v2.s4(), v3.s4()));
   2853   TEST_INSTRUCTION("41A8300E", smaxv(b1, v2.b8()));
   2854   TEST_INSTRUCTION("41A8304E", smaxv(b1, v2.b16()));
   2855   TEST_INSTRUCTION("41A8700E", smaxv(h1, v2.h4()));
   2856   TEST_INSTRUCTION("41A8704E", smaxv(h1, v2.h8()));
   2857   TEST_INSTRUCTION("41A8B04E", smaxv(s1, v2.s4()));
   2858   TEST_INSTRUCTION("416C230E", smin(v1.b8(), v2.b8(), v3.b8()));
   2859   TEST_INSTRUCTION("416C630E", smin(v1.h4(), v2.h4(), v3.h4()));
   2860   TEST_INSTRUCTION("416CA30E", smin(v1.s2(), v2.s2(), v3.s2()));
   2861   TEST_INSTRUCTION("416C234E", smin(v1.b16(), v2.b16(), v3.b16()));
   2862   TEST_INSTRUCTION("416C634E", smin(v1.h8(), v2.h8(), v3.h8()));
   2863   TEST_INSTRUCTION("416CA34E", smin(v1.s4(), v2.s4(), v3.s4()));
   2864   TEST_INSTRUCTION("41AC230E", sminp(v1.b8(), v2.b8(), v3.b8()));
   2865   TEST_INSTRUCTION("41AC630E", sminp(v1.h4(), v2.h4(), v3.h4()));
   2866   TEST_INSTRUCTION("41ACA30E", sminp(v1.s2(), v2.s2(), v3.s2()));
   2867   TEST_INSTRUCTION("41AC234E", sminp(v1.b16(), v2.b16(), v3.b16()));
   2868   TEST_INSTRUCTION("41AC634E", sminp(v1.h8(), v2.h8(), v3.h8()));
   2869   TEST_INSTRUCTION("41ACA34E", sminp(v1.s4(), v2.s4(), v3.s4()));
   2870   TEST_INSTRUCTION("41A8310E", sminv(b1, v2.b8()));
   2871   TEST_INSTRUCTION("41A8314E", sminv(b1, v2.b16()));
   2872   TEST_INSTRUCTION("41A8710E", sminv(h1, v2.h4()));
   2873   TEST_INSTRUCTION("41A8714E", sminv(h1, v2.h8()));
   2874   TEST_INSTRUCTION("41A8B14E", sminv(s1, v2.s4()));
   2875   TEST_INSTRUCTION("4180230E", smlal(v1.h8(), v2.b8(), v3.b8()));
   2876   TEST_INSTRUCTION("4180630E", smlal(v1.s4(), v2.h4(), v3.h4()));
   2877   TEST_INSTRUCTION("4180A30E", smlal(v1.d2(), v2.s2(), v3.s2()));
   2878   TEST_INSTRUCTION("4120730F", smlal(v1.s4(), v2.h4(), v3.h(3)));
   2879   TEST_INSTRUCTION("4128A30F", smlal(v1.d2(), v2.s2(), v3.s(3)));
   2880   TEST_INSTRUCTION("4180234E", smlal2(v1.h8(), v2.b16(), v3.b16()));
   2881   TEST_INSTRUCTION("4180634E", smlal2(v1.s4(), v2.h8(), v3.h8()));
   2882   TEST_INSTRUCTION("4180A34E", smlal2(v1.d2(), v2.s4(), v3.s4()));
   2883   TEST_INSTRUCTION("4120734F", smlal2(v1.s4(), v2.h8(), v3.h(3)));
   2884   TEST_INSTRUCTION("4128A34F", smlal2(v1.d2(), v2.s4(), v3.s(3)));
   2885   TEST_INSTRUCTION("41A0230E", smlsl(v1.h8(), v2.b8(), v3.b8()));
   2886   TEST_INSTRUCTION("41A0630E", smlsl(v1.s4(), v2.h4(), v3.h4()));
   2887   TEST_INSTRUCTION("41A0A30E", smlsl(v1.d2(), v2.s2(), v3.s2()));
   2888   TEST_INSTRUCTION("4160730F", smlsl(v1.s4(), v2.h4(), v3.h(3)));
   2889   TEST_INSTRUCTION("4168A30F", smlsl(v1.d2(), v2.s2(), v3.s(3)));
   2890   TEST_INSTRUCTION("41A0234E", smlsl2(v1.h8(), v2.b16(), v3.b16()));
   2891   TEST_INSTRUCTION("41A0634E", smlsl2(v1.s4(), v2.h8(), v3.h8()));
   2892   TEST_INSTRUCTION("41A0A34E", smlsl2(v1.d2(), v2.s4(), v3.s4()));
   2893   TEST_INSTRUCTION("4160734F", smlsl2(v1.s4(), v2.h8(), v3.h(3)));
   2894   TEST_INSTRUCTION("4168A34F", smlsl2(v1.d2(), v2.s4(), v3.s(3)));
   2895   TEST_INSTRUCTION("41A4834E", smmla(v1.s4(), v2.b16(), v3.b16()));
   2896   TEST_INSTRUCTION("412C010E", smov(w1, v2.b(0)));
   2897   TEST_INSTRUCTION("412C1F0E", smov(w1, v2.b(15)));
   2898   TEST_INSTRUCTION("412C020E", smov(w1, v2.h(0)));
   2899   TEST_INSTRUCTION("412C1E0E", smov(w1, v2.h(7)));
   2900   TEST_INSTRUCTION("412C014E", smov(x1, v2.b(0)));
   2901   TEST_INSTRUCTION("412C1F4E", smov(x1, v2.b(15)));
   2902   TEST_INSTRUCTION("412C024E", smov(x1, v2.h(0)));
   2903   TEST_INSTRUCTION("412C1E4E", smov(x1, v2.h(7)));
   2904   TEST_INSTRUCTION("412C044E", smov(x1, v2.s(0)));
   2905   TEST_INSTRUCTION("412C1C4E", smov(x1, v2.s(3)));
   2906   TEST_INSTRUCTION("41C0230E", smull(v1.h8(), v2.b8(), v3.b8()));
   2907   TEST_INSTRUCTION("41C0630E", smull(v1.s4(), v2.h4(), v3.h4()));
   2908   TEST_INSTRUCTION("41C0A30E", smull(v1.d2(), v2.s2(), v3.s2()));
   2909   TEST_INSTRUCTION("41A0730F", smull(v1.s4(), v2.h4(), v3.h(3)));
   2910   TEST_INSTRUCTION("41A8A30F", smull(v1.d2(), v2.s2(), v3.s(3)));
   2911   TEST_INSTRUCTION("41C0234E", smull2(v1.h8(), v2.b16(), v3.b16()));
   2912   TEST_INSTRUCTION("41C0634E", smull2(v1.s4(), v2.h8(), v3.h8()));
   2913   TEST_INSTRUCTION("41C0A34E", smull2(v1.d2(), v2.s4(), v3.s4()));
   2914   TEST_INSTRUCTION("41A0734F", smull2(v1.s4(), v2.h8(), v3.h(3)));
   2915   TEST_INSTRUCTION("41A8A34F", smull2(v1.d2(), v2.s4(), v3.s(3)));
   2916   TEST_INSTRUCTION("4178205E", sqabs(b1, b2));
   2917   TEST_INSTRUCTION("4178605E", sqabs(h1, h2));
   2918   TEST_INSTRUCTION("4178A05E", sqabs(s1, s2));
   2919   TEST_INSTRUCTION("4178E05E", sqabs(d1, d2));
   2920   TEST_INSTRUCTION("4178200E", sqabs(v1.b8(), v2.b8()));
   2921   TEST_INSTRUCTION("4178600E", sqabs(v1.h4(), v2.h4()));
   2922   TEST_INSTRUCTION("4178A00E", sqabs(v1.s2(), v2.s2()));
   2923   TEST_INSTRUCTION("4178204E", sqabs(v1.b16(), v2.b16()));
   2924   TEST_INSTRUCTION("4178604E", sqabs(v1.h8(), v2.h8()));
   2925   TEST_INSTRUCTION("4178A04E", sqabs(v1.s4(), v2.s4()));
   2926   TEST_INSTRUCTION("4178E04E", sqabs(v1.d2(), v2.d2()));
   2927   TEST_INSTRUCTION("410C235E", sqadd(b1, b2, b3));
   2928   TEST_INSTRUCTION("410C635E", sqadd(h1, h2, h3));
   2929   TEST_INSTRUCTION("410CA35E", sqadd(s1, s2, s3));
   2930   TEST_INSTRUCTION("410CE35E", sqadd(d1, d2, d3));
   2931   TEST_INSTRUCTION("410C230E", sqadd(v1.b8(), v2.b8(), v3.b8()));
   2932   TEST_INSTRUCTION("410C630E", sqadd(v1.h4(), v2.h4(), v3.h4()));
   2933   TEST_INSTRUCTION("410CA30E", sqadd(v1.s2(), v2.s2(), v3.s2()));
   2934   TEST_INSTRUCTION("410C234E", sqadd(v1.b16(), v2.b16(), v3.b16()));
   2935   TEST_INSTRUCTION("410C634E", sqadd(v1.h8(), v2.h8(), v3.h8()));
   2936   TEST_INSTRUCTION("410CA34E", sqadd(v1.s4(), v2.s4(), v3.s4()));
   2937   TEST_INSTRUCTION("410CE34E", sqadd(v1.d2(), v2.d2(), v3.d2()));
   2938   TEST_INSTRUCTION("4190635E", sqdmlal(s1, h2, h3));
   2939   TEST_INSTRUCTION("4190A35E", sqdmlal(d1, s2, s3));
   2940   TEST_INSTRUCTION("4190630E", sqdmlal(v1.s4(), v2.h4(), v3.h4()));
   2941   TEST_INSTRUCTION("4190A30E", sqdmlal(v1.d2(), v2.s2(), v3.s2()));
   2942   TEST_INSTRUCTION("4130730F", sqdmlal(v1.s4(), v2.h4(), v3.h(3)));
   2943   TEST_INSTRUCTION("4138A30F", sqdmlal(v1.d2(), v2.s2(), v3.s(3)));
   2944   TEST_INSTRUCTION("4190634E", sqdmlal2(v1.s4(), v2.h8(), v3.h8()));
   2945   TEST_INSTRUCTION("4190A34E", sqdmlal2(v1.d2(), v2.s4(), v3.s4()));
   2946   TEST_INSTRUCTION("4130734F", sqdmlal2(v1.s4(), v2.h8(), v3.h(3)));
   2947   TEST_INSTRUCTION("4138A34F", sqdmlal2(v1.d2(), v2.s4(), v3.s(3)));
   2948   TEST_INSTRUCTION("41B0635E", sqdmlsl(s1, h2, h3));
   2949   TEST_INSTRUCTION("41B0A35E", sqdmlsl(d1, s2, s3));
   2950   TEST_INSTRUCTION("41B0630E", sqdmlsl(v1.s4(), v2.h4(), v3.h4()));
   2951   TEST_INSTRUCTION("41B0A30E", sqdmlsl(v1.d2(), v2.s2(), v3.s2()));
   2952   TEST_INSTRUCTION("4170730F", sqdmlsl(v1.s4(), v2.h4(), v3.h(3)));
   2953   TEST_INSTRUCTION("4178A30F", sqdmlsl(v1.d2(), v2.s2(), v3.s(3)));
   2954   TEST_INSTRUCTION("41B0634E", sqdmlsl2(v1.s4(), v2.h8(), v3.h8()));
   2955   TEST_INSTRUCTION("41B0A34E", sqdmlsl2(v1.d2(), v2.s4(), v3.s4()));
   2956   TEST_INSTRUCTION("4170734F", sqdmlsl2(v1.s4(), v2.h8(), v3.h(3)));
   2957   TEST_INSTRUCTION("4178A34F", sqdmlsl2(v1.d2(), v2.s4(), v3.s(3)));
   2958   TEST_INSTRUCTION("41B4635E", sqdmulh(h1, h2, h3));
   2959   TEST_INSTRUCTION("41B4A35E", sqdmulh(s1, s2, s3));
   2960   TEST_INSTRUCTION("41B4630E", sqdmulh(v1.h4(), v2.h4(), v3.h4()));
   2961   TEST_INSTRUCTION("41B4A30E", sqdmulh(v1.s2(), v2.s2(), v3.s2()));
   2962   TEST_INSTRUCTION("41B4634E", sqdmulh(v1.h8(), v2.h8(), v3.h8()));
   2963   TEST_INSTRUCTION("41B4A34E", sqdmulh(v1.s4(), v2.s4(), v3.s4()));
   2964   TEST_INSTRUCTION("41C0730F", sqdmulh(v1.h4(), v2.h4(), v3.h(3)));
   2965   TEST_INSTRUCTION("41C8A30F", sqdmulh(v1.s2(), v2.s2(), v3.s(3)));
   2966   TEST_INSTRUCTION("41C0734F", sqdmulh(v1.h8(), v2.h8(), v3.h(3)));
   2967   TEST_INSTRUCTION("41C8A34F", sqdmulh(v1.s4(), v2.s4(), v3.s(3)));
   2968   TEST_INSTRUCTION("41D0635E", sqdmull(s1, h2, h3));
   2969   TEST_INSTRUCTION("41D0A35E", sqdmull(d1, s2, s3));
   2970   TEST_INSTRUCTION("41D0630E", sqdmull(v1.s4(), v2.h4(), v3.h4()));
   2971   TEST_INSTRUCTION("41D0A30E", sqdmull(v1.d2(), v2.s2(), v3.s2()));
   2972   TEST_INSTRUCTION("41B0730F", sqdmull(v1.s4(), v2.h4(), v3.h(3)));
   2973   TEST_INSTRUCTION("41B8A30F", sqdmull(v1.d2(), v2.s2(), v3.s(3)));
   2974   TEST_INSTRUCTION("41D0634E", sqdmull2(v1.s4(), v2.h8(), v3.h8()));
   2975   TEST_INSTRUCTION("41D0A34E", sqdmull2(v1.d2(), v2.s4(), v3.s4()));
   2976   TEST_INSTRUCTION("41B0734F", sqdmull2(v1.s4(), v2.h8(), v3.h(3)));
   2977   TEST_INSTRUCTION("41B8A34F", sqdmull2(v1.d2(), v2.s4(), v3.s(3)));
   2978   TEST_INSTRUCTION("4178207E", sqneg(b1, b2));
   2979   TEST_INSTRUCTION("4178607E", sqneg(h1, h2));
   2980   TEST_INSTRUCTION("4178A07E", sqneg(s1, s2));
   2981   TEST_INSTRUCTION("4178E07E", sqneg(d1, d2));
   2982   TEST_INSTRUCTION("4178202E", sqneg(v1.b8(), v2.b8()));
   2983   TEST_INSTRUCTION("4178602E", sqneg(v1.h4(), v2.h4()));
   2984   TEST_INSTRUCTION("4178A02E", sqneg(v1.s2(), v2.s2()));
   2985   TEST_INSTRUCTION("4178206E", sqneg(v1.b16(), v2.b16()));
   2986   TEST_INSTRUCTION("4178606E", sqneg(v1.h8(), v2.h8()));
   2987   TEST_INSTRUCTION("4178A06E", sqneg(v1.s4(), v2.s4()));
   2988   TEST_INSTRUCTION("4178E06E", sqneg(v1.d2(), v2.d2()));
   2989   TEST_INSTRUCTION("4184437E", sqrdmlah(h1, h2, h3));
   2990   TEST_INSTRUCTION("4184837E", sqrdmlah(s1, s2, s3));
   2991   TEST_INSTRUCTION("4184432E", sqrdmlah(v1.h4(), v2.h4(), v3.h4()));
   2992   TEST_INSTRUCTION("4184832E", sqrdmlah(v1.s2(), v2.s2(), v3.s2()));
   2993   TEST_INSTRUCTION("41D0732F", sqrdmlah(v1.h4(), v2.h4(), v3.h(3)));
   2994   TEST_INSTRUCTION("41D8A32F", sqrdmlah(v1.s2(), v2.s2(), v3.s(3)));
   2995   TEST_INSTRUCTION("4184436E", sqrdmlah(v1.h8(), v2.h8(), v3.h8()));
   2996   TEST_INSTRUCTION("4184836E", sqrdmlah(v1.s4(), v2.s4(), v3.s4()));
   2997   TEST_INSTRUCTION("41D0736F", sqrdmlah(v1.h8(), v2.h8(), v3.h(3)));
   2998   TEST_INSTRUCTION("41D8A36F", sqrdmlah(v1.s4(), v2.s4(), v3.s(3)));
   2999   TEST_INSTRUCTION("418C437E", sqrdmlsh(h1, h2, h3));
   3000   TEST_INSTRUCTION("418C837E", sqrdmlsh(s1, s2, s3));
   3001   TEST_INSTRUCTION("418C432E", sqrdmlsh(v1.h4(), v2.h4(), v3.h4()));
   3002   TEST_INSTRUCTION("418C832E", sqrdmlsh(v1.s2(), v2.s2(), v3.s2()));
   3003   TEST_INSTRUCTION("41F0732F", sqrdmlsh(v1.h4(), v2.h4(), v3.h(3)));
   3004   TEST_INSTRUCTION("41F8A32F", sqrdmlsh(v1.s2(), v2.s2(), v3.s(3)));
   3005   TEST_INSTRUCTION("418C436E", sqrdmlsh(v1.h8(), v2.h8(), v3.h8()));
   3006   TEST_INSTRUCTION("418C836E", sqrdmlsh(v1.s4(), v2.s4(), v3.s4()));
   3007   TEST_INSTRUCTION("41F0736F", sqrdmlsh(v1.h8(), v2.h8(), v3.h(3)));
   3008   TEST_INSTRUCTION("41F8A36F", sqrdmlsh(v1.s4(), v2.s4(), v3.s(3)));
   3009   TEST_INSTRUCTION("41B4637E", sqrdmulh(h1, h2, h3));
   3010   TEST_INSTRUCTION("41B4A37E", sqrdmulh(s1, s2, s3));
   3011   TEST_INSTRUCTION("41B4632E", sqrdmulh(v1.h4(), v2.h4(), v3.h4()));
   3012   TEST_INSTRUCTION("41B4A32E", sqrdmulh(v1.s2(), v2.s2(), v3.s2()));
   3013   TEST_INSTRUCTION("41D0730F", sqrdmulh(v1.h4(), v2.h4(), v3.h(3)));
   3014   TEST_INSTRUCTION("41D8A30F", sqrdmulh(v1.s2(), v2.s2(), v3.s(3)));
   3015   TEST_INSTRUCTION("41B4636E", sqrdmulh(v1.h8(), v2.h8(), v3.h8()));
   3016   TEST_INSTRUCTION("41B4A36E", sqrdmulh(v1.s4(), v2.s4(), v3.s4()));
   3017   TEST_INSTRUCTION("41D0734F", sqrdmulh(v1.h8(), v2.h8(), v3.h(3)));
   3018   TEST_INSTRUCTION("41D8A34F", sqrdmulh(v1.s4(), v2.s4(), v3.s(3)));
   3019   TEST_INSTRUCTION("415C235E", sqrshl(b1, b2, b3));
   3020   TEST_INSTRUCTION("415C635E", sqrshl(h1, h2, h3));
   3021   TEST_INSTRUCTION("415CA35E", sqrshl(s1, s2, s3));
   3022   TEST_INSTRUCTION("415C230E", sqrshl(v1.b8(), v2.b8(), v3.b8()));
   3023   TEST_INSTRUCTION("415C630E", sqrshl(v1.h4(), v2.h4(), v3.h4()));
   3024   TEST_INSTRUCTION("415CA30E", sqrshl(v1.s2(), v2.s2(), v3.s2()));
   3025   TEST_INSTRUCTION("415CE35E", sqrshl(d1, d2, d3));
   3026   TEST_INSTRUCTION("415C234E", sqrshl(v1.b16(), v2.b16(), v3.b16()));
   3027   TEST_INSTRUCTION("415C634E", sqrshl(v1.h8(), v2.h8(), v3.h8()));
   3028   TEST_INSTRUCTION("415CA34E", sqrshl(v1.s4(), v2.s4(), v3.s4()));
   3029   TEST_INSTRUCTION("415CE34E", sqrshl(v1.d2(), v2.d2(), v3.d2()));
   3030   TEST_INSTRUCTION("419C085F", sqrshrn(b1, h2, 8));
   3031   TEST_INSTRUCTION("419C105F", sqrshrn(h1, s2, 16));
   3032   TEST_INSTRUCTION("419C205F", sqrshrn(s1, d2, 32));
   3033   TEST_INSTRUCTION("419C080F", sqrshrn(v1.b8(), v2.h8(), 8));
   3034   TEST_INSTRUCTION("419C100F", sqrshrn(v1.h4(), v2.s4(), 16));
   3035   TEST_INSTRUCTION("419C200F", sqrshrn(v1.s2(), v2.d2(), 32));
   3036   TEST_INSTRUCTION("419C084F", sqrshrn2(v1.b16(), v2.h8(), 8));
   3037   TEST_INSTRUCTION("419C104F", sqrshrn2(v1.h8(), v2.s4(), 16));
   3038   TEST_INSTRUCTION("419C204F", sqrshrn2(v1.s4(), v2.d2(), 32));
   3039   TEST_INSTRUCTION("418C087F", sqrshrun(b1, h2, 8));
   3040   TEST_INSTRUCTION("418C107F", sqrshrun(h1, s2, 16));
   3041   TEST_INSTRUCTION("418C207F", sqrshrun(s1, d2, 32));
   3042   TEST_INSTRUCTION("418C082F", sqrshrun(v1.b8(), v2.h8(), 8));
   3043   TEST_INSTRUCTION("418C102F", sqrshrun(v1.h4(), v2.s4(), 16));
   3044   TEST_INSTRUCTION("418C202F", sqrshrun(v1.s2(), v2.d2(), 32));
   3045   TEST_INSTRUCTION("418C086F", sqrshrun2(v1.b16(), v2.h8(), 8));
   3046   TEST_INSTRUCTION("418C106F", sqrshrun2(v1.h8(), v2.s4(), 16));
   3047   TEST_INSTRUCTION("418C206F", sqrshrun2(v1.s4(), v2.d2(), 32));
   3048   TEST_INSTRUCTION("4174095F", sqshl(b1, b2, 1));
   3049   TEST_INSTRUCTION("4174125F", sqshl(h1, h2, 2));
   3050   TEST_INSTRUCTION("4174235F", sqshl(s1, s2, 3));
   3051   TEST_INSTRUCTION("41740F0F", sqshl(v1.b8(), v2.b8(), 7));
   3052   TEST_INSTRUCTION("41741F0F", sqshl(v1.h4(), v2.h4(), 15));
   3053   TEST_INSTRUCTION("41743F0F", sqshl(v1.s2(), v2.s2(), 31));
   3054   TEST_INSTRUCTION("41747F5F", sqshl(d1, d2, 63));
   3055   TEST_INSTRUCTION("41740F4F", sqshl(v1.b16(), v2.b16(), 7));
   3056   TEST_INSTRUCTION("41741F4F", sqshl(v1.h8(), v2.h8(), 15));
   3057   TEST_INSTRUCTION("41743F4F", sqshl(v1.s4(), v2.s4(), 31));
   3058   TEST_INSTRUCTION("41747F4F", sqshl(v1.d2(), v2.d2(), 63));
   3059   TEST_INSTRUCTION("414C235E", sqshl(b1, b2, b3));
   3060   TEST_INSTRUCTION("414C635E", sqshl(h1, h2, h3));
   3061   TEST_INSTRUCTION("414CA35E", sqshl(s1, s2, s3));
   3062   TEST_INSTRUCTION("414C230E", sqshl(v1.b8(), v2.b8(), v3.b8()));
   3063   TEST_INSTRUCTION("414C630E", sqshl(v1.h4(), v2.h4(), v3.h4()));
   3064   TEST_INSTRUCTION("414CA30E", sqshl(v1.s2(), v2.s2(), v3.s2()));
   3065   TEST_INSTRUCTION("414CE35E", sqshl(d1, d2, d3));
   3066   TEST_INSTRUCTION("414C234E", sqshl(v1.b16(), v2.b16(), v3.b16()));
   3067   TEST_INSTRUCTION("414C634E", sqshl(v1.h8(), v2.h8(), v3.h8()));
   3068   TEST_INSTRUCTION("414CA34E", sqshl(v1.s4(), v2.s4(), v3.s4()));
   3069   TEST_INSTRUCTION("414CE34E", sqshl(v1.d2(), v2.d2(), v3.d2()));
   3070   TEST_INSTRUCTION("4164097F", sqshlu(b1, b2, 1));
   3071   TEST_INSTRUCTION("4164127F", sqshlu(h1, h2, 2));
   3072   TEST_INSTRUCTION("4164237F", sqshlu(s1, s2, 3));
   3073   TEST_INSTRUCTION("41640F2F", sqshlu(v1.b8(), v2.b8(), 7));
   3074   TEST_INSTRUCTION("41641F2F", sqshlu(v1.h4(), v2.h4(), 15));
   3075   TEST_INSTRUCTION("41643F2F", sqshlu(v1.s2(), v2.s2(), 31));
   3076   TEST_INSTRUCTION("41647F7F", sqshlu(d1, d2, 63));
   3077   TEST_INSTRUCTION("41640F6F", sqshlu(v1.b16(), v2.b16(), 7));
   3078   TEST_INSTRUCTION("41641F6F", sqshlu(v1.h8(), v2.h8(), 15));
   3079   TEST_INSTRUCTION("41643F6F", sqshlu(v1.s4(), v2.s4(), 31));
   3080   TEST_INSTRUCTION("41647F6F", sqshlu(v1.d2(), v2.d2(), 63));
   3081   TEST_INSTRUCTION("4194085F", sqshrn(b1, h2, 8));
   3082   TEST_INSTRUCTION("4194105F", sqshrn(h1, s2, 16));
   3083   TEST_INSTRUCTION("4194205F", sqshrn(s1, d2, 32));
   3084   TEST_INSTRUCTION("4194080F", sqshrn(v1.b8(), v2.h8(), 8));
   3085   TEST_INSTRUCTION("4194100F", sqshrn(v1.h4(), v2.s4(), 16));
   3086   TEST_INSTRUCTION("4194200F", sqshrn(v1.s2(), v2.d2(), 32));
   3087   TEST_INSTRUCTION("4194084F", sqshrn2(v1.b16(), v2.h8(), 8));
   3088   TEST_INSTRUCTION("4194104F", sqshrn2(v1.h8(), v2.s4(), 16));
   3089   TEST_INSTRUCTION("4194204F", sqshrn2(v1.s4(), v2.d2(), 32));
   3090   TEST_INSTRUCTION("4184087F", sqshrun(b1, h2, 8));
   3091   TEST_INSTRUCTION("4184107F", sqshrun(h1, s2, 16));
   3092   TEST_INSTRUCTION("4184207F", sqshrun(s1, d2, 32));
   3093   TEST_INSTRUCTION("4184082F", sqshrun(v1.b8(), v2.h8(), 8));
   3094   TEST_INSTRUCTION("4184102F", sqshrun(v1.h4(), v2.s4(), 16));
   3095   TEST_INSTRUCTION("4184202F", sqshrun(v1.s2(), v2.d2(), 32));
   3096   TEST_INSTRUCTION("4184086F", sqshrun2(v1.b16(), v2.h8(), 8));
   3097   TEST_INSTRUCTION("4184106F", sqshrun2(v1.h8(), v2.s4(), 16));
   3098   TEST_INSTRUCTION("4184206F", sqshrun2(v1.s4(), v2.d2(), 32));
   3099   TEST_INSTRUCTION("412C235E", sqsub(b1, b2, b3));
   3100   TEST_INSTRUCTION("412C635E", sqsub(h1, h2, h3));
   3101   TEST_INSTRUCTION("412CA35E", sqsub(s1, s2, s3));
   3102   TEST_INSTRUCTION("412CE35E", sqsub(d1, d2, d3));
   3103   TEST_INSTRUCTION("412C230E", sqsub(v1.b8(), v2.b8(), v3.b8()));
   3104   TEST_INSTRUCTION("412C630E", sqsub(v1.h4(), v2.h4(), v3.h4()));
   3105   TEST_INSTRUCTION("412CA30E", sqsub(v1.s2(), v2.s2(), v3.s2()));
   3106   TEST_INSTRUCTION("412C234E", sqsub(v1.b16(), v2.b16(), v3.b16()));
   3107   TEST_INSTRUCTION("412C634E", sqsub(v1.h8(), v2.h8(), v3.h8()));
   3108   TEST_INSTRUCTION("412CA34E", sqsub(v1.s4(), v2.s4(), v3.s4()));
   3109   TEST_INSTRUCTION("412CE34E", sqsub(v1.d2(), v2.d2(), v3.d2()));
   3110   TEST_INSTRUCTION("4148215E", sqxtn(b1, h2));
   3111   TEST_INSTRUCTION("4148615E", sqxtn(h1, s2));
   3112   TEST_INSTRUCTION("4148A15E", sqxtn(s1, d2));
   3113   TEST_INSTRUCTION("4148210E", sqxtn(v1.b8(), v2.h8()));
   3114   TEST_INSTRUCTION("4148610E", sqxtn(v1.h4(), v2.s4()));
   3115   TEST_INSTRUCTION("4148A10E", sqxtn(v1.s2(), v2.d2()));
   3116   TEST_INSTRUCTION("4148214E", sqxtn2(v1.b16(), v2.h8()));
   3117   TEST_INSTRUCTION("4148614E", sqxtn2(v1.h8(), v2.s4()));
   3118   TEST_INSTRUCTION("4148A14E", sqxtn2(v1.s4(), v2.d2()));
   3119   TEST_INSTRUCTION("4128217E", sqxtun(b1, h2));
   3120   TEST_INSTRUCTION("4128617E", sqxtun(h1, s2));
   3121   TEST_INSTRUCTION("4128A17E", sqxtun(s1, d2));
   3122   TEST_INSTRUCTION("4128212E", sqxtun(v1.b8(), v2.h8()));
   3123   TEST_INSTRUCTION("4128612E", sqxtun(v1.h4(), v2.s4()));
   3124   TEST_INSTRUCTION("4128A12E", sqxtun(v1.s2(), v2.d2()));
   3125   TEST_INSTRUCTION("4128216E", sqxtun2(v1.b16(), v2.h8()));
   3126   TEST_INSTRUCTION("4128616E", sqxtun2(v1.h8(), v2.s4()));
   3127   TEST_INSTRUCTION("4128A16E", sqxtun2(v1.s4(), v2.d2()));
   3128   TEST_INSTRUCTION("4114230E", srhadd(v1.b8(), v2.b8(), v3.b8()));
   3129   TEST_INSTRUCTION("4114630E", srhadd(v1.h4(), v2.h4(), v3.h4()));
   3130   TEST_INSTRUCTION("4114A30E", srhadd(v1.s2(), v2.s2(), v3.s2()));
   3131   TEST_INSTRUCTION("4114234E", srhadd(v1.b16(), v2.b16(), v3.b16()));
   3132   TEST_INSTRUCTION("4114634E", srhadd(v1.h8(), v2.h8(), v3.h8()));
   3133   TEST_INSTRUCTION("4114A34E", srhadd(v1.s4(), v2.s4(), v3.s4()));
   3134   TEST_INSTRUCTION("4144092F", sri(v1.b8(), v2.b8(), 7));
   3135   TEST_INSTRUCTION("4144112F", sri(v1.h4(), v2.h4(), 15));
   3136   TEST_INSTRUCTION("4144212F", sri(v1.s2(), v2.s2(), 31));
   3137   TEST_INSTRUCTION("4144417F", sri(d1, d2, 63));
   3138   TEST_INSTRUCTION("4144096F", sri(v1.b16(), v2.b16(), 7));
   3139   TEST_INSTRUCTION("4144116F", sri(v1.h8(), v2.h8(), 15));
   3140   TEST_INSTRUCTION("4144216F", sri(v1.s4(), v2.s4(), 31));
   3141   TEST_INSTRUCTION("4144416F", sri(v1.d2(), v2.d2(), 63));
   3142   TEST_INSTRUCTION("4154230E", srshl(v1.b8(), v2.b8(), v3.b8()));
   3143   TEST_INSTRUCTION("4154630E", srshl(v1.h4(), v2.h4(), v3.h4()));
   3144   TEST_INSTRUCTION("4154A30E", srshl(v1.s2(), v2.s2(), v3.s2()));
   3145   TEST_INSTRUCTION("4154E35E", srshl(d1, d2, d3));
   3146   TEST_INSTRUCTION("4154234E", srshl(v1.b16(), v2.b16(), v3.b16()));
   3147   TEST_INSTRUCTION("4154634E", srshl(v1.h8(), v2.h8(), v3.h8()));
   3148   TEST_INSTRUCTION("4154A34E", srshl(v1.s4(), v2.s4(), v3.s4()));
   3149   TEST_INSTRUCTION("4154E34E", srshl(v1.d2(), v2.d2(), v3.d2()));
   3150   TEST_INSTRUCTION("4124090F", srshr(v1.b8(), v2.b8(), 7));
   3151   TEST_INSTRUCTION("4124110F", srshr(v1.h4(), v2.h4(), 15));
   3152   TEST_INSTRUCTION("4124210F", srshr(v1.s2(), v2.s2(), 31));
   3153   TEST_INSTRUCTION("4124415F", srshr(d1, d2, 63));
   3154   TEST_INSTRUCTION("4124094F", srshr(v1.b16(), v2.b16(), 7));
   3155   TEST_INSTRUCTION("4124114F", srshr(v1.h8(), v2.h8(), 15));
   3156   TEST_INSTRUCTION("4124214F", srshr(v1.s4(), v2.s4(), 31));
   3157   TEST_INSTRUCTION("4124414F", srshr(v1.d2(), v2.d2(), 63));
   3158   TEST_INSTRUCTION("4134090F", srsra(v1.b8(), v2.b8(), 7));
   3159   TEST_INSTRUCTION("4134110F", srsra(v1.h4(), v2.h4(), 15));
   3160   TEST_INSTRUCTION("4134210F", srsra(v1.s2(), v2.s2(), 31));
   3161   TEST_INSTRUCTION("4134415F", srsra(d1, d2, 63));
   3162   TEST_INSTRUCTION("4134094F", srsra(v1.b16(), v2.b16(), 7));
   3163   TEST_INSTRUCTION("4134114F", srsra(v1.h8(), v2.h8(), 15));
   3164   TEST_INSTRUCTION("4134214F", srsra(v1.s4(), v2.s4(), 31));
   3165   TEST_INSTRUCTION("4134414F", srsra(v1.d2(), v2.d2(), 63));
   3166   TEST_INSTRUCTION("4144230E", sshl(v1.b8(), v2.b8(), v3.b8()));
   3167   TEST_INSTRUCTION("4144630E", sshl(v1.h4(), v2.h4(), v3.h4()));
   3168   TEST_INSTRUCTION("4144A30E", sshl(v1.s2(), v2.s2(), v3.s2()));
   3169   TEST_INSTRUCTION("4144E35E", sshl(d1, d2, d3));
   3170   TEST_INSTRUCTION("4144234E", sshl(v1.b16(), v2.b16(), v3.b16()));
   3171   TEST_INSTRUCTION("4144634E", sshl(v1.h8(), v2.h8(), v3.h8()));
   3172   TEST_INSTRUCTION("4144A34E", sshl(v1.s4(), v2.s4(), v3.s4()));
   3173   TEST_INSTRUCTION("4144E34E", sshl(v1.d2(), v2.d2(), v3.d2()));
   3174   TEST_INSTRUCTION("41A40F0F", sshll(v1.h8(), v2.b8(), 7));
   3175   TEST_INSTRUCTION("41A41F0F", sshll(v1.s4(), v2.h4(), 15));
   3176   TEST_INSTRUCTION("41A43F0F", sshll(v1.d2(), v2.s2(), 31));
   3177   TEST_INSTRUCTION("41A40F4F", sshll2(v1.h8(), v2.b16(), 7));
   3178   TEST_INSTRUCTION("41A41F4F", sshll2(v1.s4(), v2.h8(), 15));
   3179   TEST_INSTRUCTION("41A43F4F", sshll2(v1.s2(), v2.s4(), 31));
   3180   TEST_INSTRUCTION("4104090F", sshr(v1.b8(), v2.b8(), 7));
   3181   TEST_INSTRUCTION("4104110F", sshr(v1.h4(), v2.h4(), 15));
   3182   TEST_INSTRUCTION("4104210F", sshr(v1.s2(), v2.s2(), 31));
   3183   TEST_INSTRUCTION("4104415F", sshr(d1, d2, 63));
   3184   TEST_INSTRUCTION("4104094F", sshr(v1.b16(), v2.b16(), 7));
   3185   TEST_INSTRUCTION("4104114F", sshr(v1.h8(), v2.h8(), 15));
   3186   TEST_INSTRUCTION("4104214F", sshr(v1.s4(), v2.s4(), 31));
   3187   TEST_INSTRUCTION("4104414F", sshr(v1.d2(), v2.d2(), 63));
   3188   TEST_INSTRUCTION("4114090F", ssra(v1.b8(), v2.b8(), 7));
   3189   TEST_INSTRUCTION("4114110F", ssra(v1.h4(), v2.h4(), 15));
   3190   TEST_INSTRUCTION("4114210F", ssra(v1.s2(), v2.s2(), 31));
   3191   TEST_INSTRUCTION("4114415F", ssra(d1, d2, 63));
   3192   TEST_INSTRUCTION("4114094F", ssra(v1.b16(), v2.b16(), 7));
   3193   TEST_INSTRUCTION("4114114F", ssra(v1.h8(), v2.h8(), 15));
   3194   TEST_INSTRUCTION("4114214F", ssra(v1.s4(), v2.s4(), 31));
   3195   TEST_INSTRUCTION("4114414F", ssra(v1.d2(), v2.d2(), 63));
   3196   TEST_INSTRUCTION("4120230E", ssubl(v1.h8(), v2.b8(), v3.b8()));
   3197   TEST_INSTRUCTION("4120630E", ssubl(v1.s4(), v2.h4(), v3.h4()));
   3198   TEST_INSTRUCTION("4120A30E", ssubl(v1.d2(), v2.s2(), v3.s2()));
   3199   TEST_INSTRUCTION("4120234E", ssubl2(v1.h8(), v2.b16(), v3.b16()));
   3200   TEST_INSTRUCTION("4120634E", ssubl2(v1.s4(), v2.h8(), v3.h8()));
   3201   TEST_INSTRUCTION("4120A34E", ssubl2(v1.d2(), v2.s4(), v3.s4()));
   3202   TEST_INSTRUCTION("4130230E", ssubw(v1.h8(), v2.h8(), v3.b8()));
   3203   TEST_INSTRUCTION("4130630E", ssubw(v1.s4(), v2.s4(), v3.h4()));
   3204   TEST_INSTRUCTION("4130A30E", ssubw(v1.d2(), v2.d2(), v3.s2()));
   3205   TEST_INSTRUCTION("4130234E", ssubw2(v1.h8(), v2.h8(), v3.b16()));
   3206   TEST_INSTRUCTION("4130634E", ssubw2(v1.s4(), v2.s4(), v3.h8()));
   3207   TEST_INSTRUCTION("4130A34E", ssubw2(v1.d2(), v2.d2(), v3.s4()));
   3208   TEST_INSTRUCTION("4100000D", st1(v1.b(0), ptr(x2)));
   3209   TEST_INSTRUCTION("41009F0D", st1(v1.b(0), ptr_post(x2, 1)));
   3210   TEST_INSTRUCTION("4140000D", st1(v1.h(0), ptr(x2)));
   3211   TEST_INSTRUCTION("41409F0D", st1(v1.h(0), ptr_post(x2, 2)));
   3212   TEST_INSTRUCTION("4180000D", st1(v1.s(0), ptr(x2)));
   3213   TEST_INSTRUCTION("41809F0D", st1(v1.s(0), ptr_post(x2, 4)));
   3214   TEST_INSTRUCTION("4184000D", st1(v1.d(0), ptr(x2)));
   3215   TEST_INSTRUCTION("41849F0D", st1(v1.d(0), ptr_post(x2, 8)));
   3216   TEST_INSTRUCTION("411C004D", st1(v1.b(15), ptr(x2)));
   3217   TEST_INSTRUCTION("411C9F4D", st1(v1.b(15), ptr_post(x2, 1)));
   3218   TEST_INSTRUCTION("4158004D", st1(v1.h(7), ptr(x2)));
   3219   TEST_INSTRUCTION("41589F4D", st1(v1.h(7), ptr_post(x2, 2)));
   3220   TEST_INSTRUCTION("4190004D", st1(v1.s(3), ptr(x2)));
   3221   TEST_INSTRUCTION("41909F4D", st1(v1.s(3), ptr_post(x2, 4)));
   3222   TEST_INSTRUCTION("4184004D", st1(v1.d(1), ptr(x2)));
   3223   TEST_INSTRUCTION("41849F4D", st1(v1.d(1), ptr_post(x2, 8)));
   3224   TEST_INSTRUCTION("4170000C", st1(v1.b8(), ptr(x2)));
   3225   TEST_INSTRUCTION("41709F0C", st1(v1.b8(), ptr_post(x2, 8)));
   3226   TEST_INSTRUCTION("4170004C", st1(v1.b16(), ptr(x2)));
   3227   TEST_INSTRUCTION("41709F4C", st1(v1.b16(), ptr_post(x2, 16)));
   3228   TEST_INSTRUCTION("61A0000C", st1(v1.b8(), v2.b8(), ptr(x3)));
   3229   TEST_INSTRUCTION("61A09F0C", st1(v1.b8(), v2.b8(), ptr_post(x3, 16)));
   3230   TEST_INSTRUCTION("61A0004C", st1(v1.b16(), v2.b16(), ptr(x3)));
   3231   TEST_INSTRUCTION("61A09F4C", st1(v1.b16(), v2.b16(), ptr_post(x3, 32)));
   3232   TEST_INSTRUCTION("8160000C", st1(v1.b8(), v2.b8(), v3.b8(), ptr(x4)));
   3233   TEST_INSTRUCTION("81609F0C", st1(v1.b8(), v2.b8(), v3.b8(), ptr_post(x4, 24)));
   3234   TEST_INSTRUCTION("8160004C", st1(v1.b16(), v2.b16(), v3.b16(), ptr(x4)));
   3235   TEST_INSTRUCTION("81609F4C", st1(v1.b16(), v2.b16(), v3.b16(), ptr_post(x4, 48)));
   3236   TEST_INSTRUCTION("A120000C", st1(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr(x5)));
   3237   TEST_INSTRUCTION("A1209F0C", st1(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr_post(x5, 32)));
   3238   TEST_INSTRUCTION("A120004C", st1(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr(x5)));
   3239   TEST_INSTRUCTION("A1209F4C", st1(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr_post(x5, 64)));
   3240   TEST_INSTRUCTION("4174000C", st1(v1.h4(), ptr(x2)));
   3241   TEST_INSTRUCTION("41749F0C", st1(v1.h4(), ptr_post(x2, 8)));
   3242   TEST_INSTRUCTION("4174004C", st1(v1.h8(), ptr(x2)));
   3243   TEST_INSTRUCTION("41749F4C", st1(v1.h8(), ptr_post(x2, 16)));
   3244   TEST_INSTRUCTION("61A4000C", st1(v1.h4(), v2.h4(), ptr(x3)));
   3245   TEST_INSTRUCTION("61A49F0C", st1(v1.h4(), v2.h4(), ptr_post(x3, 16)));
   3246   TEST_INSTRUCTION("61A4004C", st1(v1.h8(), v2.h8(), ptr(x3)));
   3247   TEST_INSTRUCTION("61A49F4C", st1(v1.h8(), v2.h8(), ptr_post(x3, 32)));
   3248   TEST_INSTRUCTION("8164000C", st1(v1.h4(), v2.h4(), v3.h4(), ptr(x4)));
   3249   TEST_INSTRUCTION("81649F0C", st1(v1.h4(), v2.h4(), v3.h4(), ptr_post(x4, 24)));
   3250   TEST_INSTRUCTION("8164004C", st1(v1.h8(), v2.h8(), v3.h8(), ptr(x4)));
   3251   TEST_INSTRUCTION("81649F4C", st1(v1.h8(), v2.h8(), v3.h8(), ptr_post(x4, 48)));
   3252   TEST_INSTRUCTION("A124000C", st1(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr(x5)));
   3253   TEST_INSTRUCTION("A1249F0C", st1(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr_post(x5, 32)));
   3254   TEST_INSTRUCTION("A124004C", st1(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr(x5)));
   3255   TEST_INSTRUCTION("A1249F4C", st1(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr_post(x5, 64)));
   3256   TEST_INSTRUCTION("4178000C", st1(v1.s2(), ptr(x2)));
   3257   TEST_INSTRUCTION("41789F0C", st1(v1.s2(), ptr_post(x2, 8)));
   3258   TEST_INSTRUCTION("4178004C", st1(v1.s4(), ptr(x2)));
   3259   TEST_INSTRUCTION("41789F4C", st1(v1.s4(), ptr_post(x2, 16)));
   3260   TEST_INSTRUCTION("61A8000C", st1(v1.s2(), v2.s2(), ptr(x3)));
   3261   TEST_INSTRUCTION("61A89F0C", st1(v1.s2(), v2.s2(), ptr_post(x3, 16)));
   3262   TEST_INSTRUCTION("61A8004C", st1(v1.s4(), v2.s4(), ptr(x3)));
   3263   TEST_INSTRUCTION("61A89F4C", st1(v1.s4(), v2.s4(), ptr_post(x3, 32)));
   3264   TEST_INSTRUCTION("8168000C", st1(v1.s2(), v2.s2(), v3.s2(), ptr(x4)));
   3265   TEST_INSTRUCTION("81689F0C", st1(v1.s2(), v2.s2(), v3.s2(), ptr_post(x4, 24)));
   3266   TEST_INSTRUCTION("8168004C", st1(v1.s4(), v2.s4(), v3.s4(), ptr(x4)));
   3267   TEST_INSTRUCTION("81689F4C", st1(v1.s4(), v2.s4(), v3.s4(), ptr_post(x4, 48)));
   3268   TEST_INSTRUCTION("A128000C", st1(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr(x5)));
   3269   TEST_INSTRUCTION("A1289F0C", st1(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr_post(x5, 32)));
   3270   TEST_INSTRUCTION("A128004C", st1(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr(x5)));
   3271   TEST_INSTRUCTION("A1289F4C", st1(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr_post(x5, 64)));
   3272   TEST_INSTRUCTION("417C004C", st1(v1.d2(), ptr(x2)));
   3273   TEST_INSTRUCTION("417C9F4C", st1(v1.d2(), ptr_post(x2, 16)));
   3274   TEST_INSTRUCTION("61AC004C", st1(v1.d2(), v2.d2(), ptr(x3)));
   3275   TEST_INSTRUCTION("61AC9F4C", st1(v1.d2(), v2.d2(), ptr_post(x3, 32)));
   3276   TEST_INSTRUCTION("816C004C", st1(v1.d2(), v2.d2(), v3.d2(), ptr(x4)));
   3277   TEST_INSTRUCTION("816C9F4C", st1(v1.d2(), v2.d2(), v3.d2(), ptr_post(x4, 48)));
   3278   TEST_INSTRUCTION("A12C004C", st1(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr(x5)));
   3279   TEST_INSTRUCTION("A12C9F4C", st1(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr_post(x5, 64)));
   3280   TEST_INSTRUCTION("6100200D", st2(v1.b(0), v2.b(0), ptr(x3)));
   3281   TEST_INSTRUCTION("6100BF0D", st2(v1.b(0), v2.b(0), ptr_post(x3, 2)));
   3282   TEST_INSTRUCTION("6100AB0D", st2(v1.b(0), v2.b(0), ptr_post(x3, x11)));
   3283   TEST_INSTRUCTION("6140200D", st2(v1.h(0), v2.h(0), ptr(x3)));
   3284   TEST_INSTRUCTION("6140BF0D", st2(v1.h(0), v2.h(0), ptr_post(x3, 4)));
   3285   TEST_INSTRUCTION("6140AB0D", st2(v1.h(0), v2.h(0), ptr_post(x3, x11)));
   3286   TEST_INSTRUCTION("6180200D", st2(v1.s(0), v2.s(0), ptr(x3)));
   3287   TEST_INSTRUCTION("6180BF0D", st2(v1.s(0), v2.s(0), ptr_post(x3, 8)));
   3288   TEST_INSTRUCTION("6180AB0D", st2(v1.s(0), v2.s(0), ptr_post(x3, x11)));
   3289   TEST_INSTRUCTION("6184200D", st2(v1.d(0), v2.d(0), ptr(x3)));
   3290   TEST_INSTRUCTION("6184BF0D", st2(v1.d(0), v2.d(0), ptr_post(x3, 16)));
   3291   TEST_INSTRUCTION("6184AB0D", st2(v1.d(0), v2.d(0), ptr_post(x3, x11)));
   3292   TEST_INSTRUCTION("611C204D", st2(v1.b(15), v2.b(15), ptr(x3)));
   3293   TEST_INSTRUCTION("611CBF4D", st2(v1.b(15), v2.b(15), ptr_post(x3, 2)));
   3294   TEST_INSTRUCTION("611CAB4D", st2(v1.b(15), v2.b(15), ptr_post(x3, x11)));
   3295   TEST_INSTRUCTION("6158204D", st2(v1.h(7), v2.h(7), ptr(x3)));
   3296   TEST_INSTRUCTION("6158BF4D", st2(v1.h(7), v2.h(7), ptr_post(x3, 4)));
   3297   TEST_INSTRUCTION("6158AB4D", st2(v1.h(7), v2.h(7), ptr_post(x3, x11)));
   3298   TEST_INSTRUCTION("6190204D", st2(v1.s(3), v2.s(3), ptr(x3)));
   3299   TEST_INSTRUCTION("6190BF4D", st2(v1.s(3), v2.s(3), ptr_post(x3, 8)));
   3300   TEST_INSTRUCTION("6190AB4D", st2(v1.s(3), v2.s(3), ptr_post(x3, x11)));
   3301   TEST_INSTRUCTION("6184204D", st2(v1.d(1), v2.d(1), ptr(x3)));
   3302   TEST_INSTRUCTION("6184BF4D", st2(v1.d(1), v2.d(1), ptr_post(x3, 16)));
   3303   TEST_INSTRUCTION("6184AB4D", st2(v1.d(1), v2.d(1), ptr_post(x3, x11)));
   3304   TEST_INSTRUCTION("6180000C", st2(v1.b8(), v2.b8(), ptr(x3)));
   3305   TEST_INSTRUCTION("61809F0C", st2(v1.b8(), v2.b8(), ptr_post(x3, 16)));
   3306   TEST_INSTRUCTION("61808B0C", st2(v1.b8(), v2.b8(), ptr_post(x3, x11)));
   3307   TEST_INSTRUCTION("6180004C", st2(v1.b16(), v2.b16(), ptr(x3)));
   3308   TEST_INSTRUCTION("61809F4C", st2(v1.b16(), v2.b16(), ptr_post(x3, 32)));
   3309   TEST_INSTRUCTION("61808B4C", st2(v1.b16(), v2.b16(), ptr_post(x3, x11)));
   3310   TEST_INSTRUCTION("6184000C", st2(v1.h4(), v2.h4(), ptr(x3)));
   3311   TEST_INSTRUCTION("61849F0C", st2(v1.h4(), v2.h4(), ptr_post(x3, 16)));
   3312   TEST_INSTRUCTION("61848B0C", st2(v1.h4(), v2.h4(), ptr_post(x3, x11)));
   3313   TEST_INSTRUCTION("6184004C", st2(v1.h8(), v2.h8(), ptr(x3)));
   3314   TEST_INSTRUCTION("61849F4C", st2(v1.h8(), v2.h8(), ptr_post(x3, 32)));
   3315   TEST_INSTRUCTION("61848B4C", st2(v1.h8(), v2.h8(), ptr_post(x3, x11)));
   3316   TEST_INSTRUCTION("6188000C", st2(v1.s2(), v2.s2(), ptr(x3)));
   3317   TEST_INSTRUCTION("61889F0C", st2(v1.s2(), v2.s2(), ptr_post(x3, 16)));
   3318   TEST_INSTRUCTION("61888B0C", st2(v1.s2(), v2.s2(), ptr_post(x3, x11)));
   3319   TEST_INSTRUCTION("6188004C", st2(v1.s4(), v2.s4(), ptr(x3)));
   3320   TEST_INSTRUCTION("61889F4C", st2(v1.s4(), v2.s4(), ptr_post(x3, 32)));
   3321   TEST_INSTRUCTION("61888B4C", st2(v1.s4(), v2.s4(), ptr_post(x3, x11)));
   3322   TEST_INSTRUCTION("618C004C", st2(v1.d2(), v2.d2(), ptr(x3)));
   3323   TEST_INSTRUCTION("618C9F4C", st2(v1.d2(), v2.d2(), ptr_post(x3, 32)));
   3324   TEST_INSTRUCTION("618C8B4C", st2(v1.d2(), v2.d2(), ptr_post(x3, x11)));
   3325   TEST_INSTRUCTION("8120000D", st3(v1.b(0), v2.b(0), v3.b(0), ptr(x4)));
   3326   TEST_INSTRUCTION("81209F0D", st3(v1.b(0), v2.b(0), v3.b(0), ptr_post(x4, 3)));
   3327   TEST_INSTRUCTION("81208B0D", st3(v1.b(0), v2.b(0), v3.b(0), ptr_post(x4, x11)));
   3328   TEST_INSTRUCTION("8160000D", st3(v1.h(0), v2.h(0), v3.h(0), ptr(x4)));
   3329   TEST_INSTRUCTION("81609F0D", st3(v1.h(0), v2.h(0), v3.h(0), ptr_post(x4, 6)));
   3330   TEST_INSTRUCTION("81608B0D", st3(v1.h(0), v2.h(0), v3.h(0), ptr_post(x4, x11)));
   3331   TEST_INSTRUCTION("81A0000D", st3(v1.s(0), v2.s(0), v3.s(0), ptr(x4)));
   3332   TEST_INSTRUCTION("81A09F0D", st3(v1.s(0), v2.s(0), v3.s(0), ptr_post(x4, 12)));
   3333   TEST_INSTRUCTION("81A08B0D", st3(v1.s(0), v2.s(0), v3.s(0), ptr_post(x4, x11)));
   3334   TEST_INSTRUCTION("81A4000D", st3(v1.d(0), v2.d(0), v3.d(0), ptr(x4)));
   3335   TEST_INSTRUCTION("81A49F0D", st3(v1.d(0), v2.d(0), v3.d(0), ptr_post(x4, 24)));
   3336   TEST_INSTRUCTION("81A48B0D", st3(v1.d(0), v2.d(0), v3.d(0), ptr_post(x4, x11)));
   3337   TEST_INSTRUCTION("813C004D", st3(v1.b(15), v2.b(15), v3.b(15), ptr(x4)));
   3338   TEST_INSTRUCTION("813C9F4D", st3(v1.b(15), v2.b(15), v3.b(15), ptr_post(x4, 3)));
   3339   TEST_INSTRUCTION("813C8B4D", st3(v1.b(15), v2.b(15), v3.b(15), ptr_post(x4, x11)));
   3340   TEST_INSTRUCTION("8178004D", st3(v1.h(7), v2.h(7), v3.h(7), ptr(x4)));
   3341   TEST_INSTRUCTION("81789F4D", st3(v1.h(7), v2.h(7), v3.h(7), ptr_post(x4, 6)));
   3342   TEST_INSTRUCTION("81788B4D", st3(v1.h(7), v2.h(7), v3.h(7), ptr_post(x4, x11)));
   3343   TEST_INSTRUCTION("81B0004D", st3(v1.s(3), v2.s(3), v3.s(3), ptr(x4)));
   3344   TEST_INSTRUCTION("81B09F4D", st3(v1.s(3), v2.s(3), v3.s(3), ptr_post(x4, 12)));
   3345   TEST_INSTRUCTION("81B08B4D", st3(v1.s(3), v2.s(3), v3.s(3), ptr_post(x4, x11)));
   3346   TEST_INSTRUCTION("81A4004D", st3(v1.d(1), v2.d(1), v3.d(1), ptr(x4)));
   3347   TEST_INSTRUCTION("81A49F4D", st3(v1.d(1), v2.d(1), v3.d(1), ptr_post(x4, 24)));
   3348   TEST_INSTRUCTION("81A48B4D", st3(v1.d(1), v2.d(1), v3.d(1), ptr_post(x4, x11)));
   3349   TEST_INSTRUCTION("8140000C", st3(v1.b8(), v2.b8(), v3.b8(), ptr(x4)));
   3350   TEST_INSTRUCTION("81409F0C", st3(v1.b8(), v2.b8(), v3.b8(), ptr_post(x4, 24)));
   3351   TEST_INSTRUCTION("81408B0C", st3(v1.b8(), v2.b8(), v3.b8(), ptr_post(x4, x11)));
   3352   TEST_INSTRUCTION("8140004C", st3(v1.b16(), v2.b16(), v3.b16(), ptr(x4)));
   3353   TEST_INSTRUCTION("81409F4C", st3(v1.b16(), v2.b16(), v3.b16(), ptr_post(x4, 48)));
   3354   TEST_INSTRUCTION("81408B4C", st3(v1.b16(), v2.b16(), v3.b16(), ptr_post(x4, x11)));
   3355   TEST_INSTRUCTION("8144000C", st3(v1.h4(), v2.h4(), v3.h4(), ptr(x4)));
   3356   TEST_INSTRUCTION("81449F0C", st3(v1.h4(), v2.h4(), v3.h4(), ptr_post(x4, 24)));
   3357   TEST_INSTRUCTION("81448B0C", st3(v1.h4(), v2.h4(), v3.h4(), ptr_post(x4, x11)));
   3358   TEST_INSTRUCTION("8144004C", st3(v1.h8(), v2.h8(), v3.h8(), ptr(x4)));
   3359   TEST_INSTRUCTION("81449F4C", st3(v1.h8(), v2.h8(), v3.h8(), ptr_post(x4, 48)));
   3360   TEST_INSTRUCTION("81448B4C", st3(v1.h8(), v2.h8(), v3.h8(), ptr_post(x4, x11)));
   3361   TEST_INSTRUCTION("8148000C", st3(v1.s2(), v2.s2(), v3.s2(), ptr(x4)));
   3362   TEST_INSTRUCTION("81489F0C", st3(v1.s2(), v2.s2(), v3.s2(), ptr_post(x4, 24)));
   3363   TEST_INSTRUCTION("81488B0C", st3(v1.s2(), v2.s2(), v3.s2(), ptr_post(x4, x11)));
   3364   TEST_INSTRUCTION("8148004C", st3(v1.s4(), v2.s4(), v3.s4(), ptr(x4)));
   3365   TEST_INSTRUCTION("81489F4C", st3(v1.s4(), v2.s4(), v3.s4(), ptr_post(x4, 48)));
   3366   TEST_INSTRUCTION("81488B4C", st3(v1.s4(), v2.s4(), v3.s4(), ptr_post(x4, x11)));
   3367   TEST_INSTRUCTION("814C004C", st3(v1.d2(), v2.d2(), v3.d2(), ptr(x4)));
   3368   TEST_INSTRUCTION("814C9F4C", st3(v1.d2(), v2.d2(), v3.d2(), ptr_post(x4, 48)));
   3369   TEST_INSTRUCTION("814C8B4C", st3(v1.d2(), v2.d2(), v3.d2(), ptr_post(x4, x11)));
   3370   TEST_INSTRUCTION("A120200D", st4(v1.b(0), v2.b(0), v3.b(0), v4.b(0), ptr(x5)));
   3371   TEST_INSTRUCTION("A120BF0D", st4(v1.b(0), v2.b(0), v3.b(0), v4.b(0), ptr_post(x5, 4)));
   3372   TEST_INSTRUCTION("A120AB0D", st4(v1.b(0), v2.b(0), v3.b(0), v4.b(0), ptr_post(x5, x11)));
   3373   TEST_INSTRUCTION("A160200D", st4(v1.h(0), v2.h(0), v3.h(0), v4.h(0), ptr(x5)));
   3374   TEST_INSTRUCTION("A160BF0D", st4(v1.h(0), v2.h(0), v3.h(0), v4.h(0), ptr_post(x5, 8)));
   3375   TEST_INSTRUCTION("A160AB0D", st4(v1.h(0), v2.h(0), v3.h(0), v4.h(0), ptr_post(x5, x11)));
   3376   TEST_INSTRUCTION("A1A0200D", st4(v1.s(0), v2.s(0), v3.s(0), v4.s(0), ptr(x5)));
   3377   TEST_INSTRUCTION("A1A0BF0D", st4(v1.s(0), v2.s(0), v3.s(0), v4.s(0), ptr_post(x5, 16)));
   3378   TEST_INSTRUCTION("A1A0AB0D", st4(v1.s(0), v2.s(0), v3.s(0), v4.s(0), ptr_post(x5, x11)));
   3379   TEST_INSTRUCTION("A1A4200D", st4(v1.d(0), v2.d(0), v3.d(0), v4.d(0), ptr(x5)));
   3380   TEST_INSTRUCTION("A1A4BF0D", st4(v1.d(0), v2.d(0), v3.d(0), v4.d(0), ptr_post(x5, 32)));
   3381   TEST_INSTRUCTION("A1A4AB0D", st4(v1.d(0), v2.d(0), v3.d(0), v4.d(0), ptr_post(x5, x11)));
   3382   TEST_INSTRUCTION("A13C204D", st4(v1.b(15), v2.b(15), v3.b(15), v4.b(15), ptr(x5)));
   3383   TEST_INSTRUCTION("A13CBF4D", st4(v1.b(15), v2.b(15), v3.b(15), v4.b(15), ptr_post(x5, 4)));
   3384   TEST_INSTRUCTION("A13CAB4D", st4(v1.b(15), v2.b(15), v3.b(15), v4.b(15), ptr_post(x5, x11)));
   3385   TEST_INSTRUCTION("A178204D", st4(v1.h(7), v2.h(7), v3.h(7), v4.h(7), ptr(x5)));
   3386   TEST_INSTRUCTION("A178BF4D", st4(v1.h(7), v2.h(7), v3.h(7), v4.h(7), ptr_post(x5, 8)));
   3387   TEST_INSTRUCTION("A178AB4D", st4(v1.h(7), v2.h(7), v3.h(7), v4.h(7), ptr_post(x5, x11)));
   3388   TEST_INSTRUCTION("A1B0204D", st4(v1.s(3), v2.s(3), v3.s(3), v4.s(3), ptr(x5)));
   3389   TEST_INSTRUCTION("A1B0BF4D", st4(v1.s(3), v2.s(3), v3.s(3), v4.s(3), ptr_post(x5, 16)));
   3390   TEST_INSTRUCTION("A1B0AB4D", st4(v1.s(3), v2.s(3), v3.s(3), v4.s(3), ptr_post(x5, x11)));
   3391   TEST_INSTRUCTION("A1A4204D", st4(v1.d(1), v2.d(1), v3.d(1), v4.d(1), ptr(x5)));
   3392   TEST_INSTRUCTION("A1A4BF4D", st4(v1.d(1), v2.d(1), v3.d(1), v4.d(1), ptr_post(x5, 32)));
   3393   TEST_INSTRUCTION("A1A4AB4D", st4(v1.d(1), v2.d(1), v3.d(1), v4.d(1), ptr_post(x5, x11)));
   3394   TEST_INSTRUCTION("A100000C", st4(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr(x5)));
   3395   TEST_INSTRUCTION("A1009F0C", st4(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr_post(x5, 32)));
   3396   TEST_INSTRUCTION("A1008B0C", st4(v1.b8(), v2.b8(), v3.b8(), v4.b8(), ptr_post(x5, x11)));
   3397   TEST_INSTRUCTION("A100004C", st4(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr(x5)));
   3398   TEST_INSTRUCTION("A1009F4C", st4(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr_post(x5, 64)));
   3399   TEST_INSTRUCTION("A1008B4C", st4(v1.b16(), v2.b16(), v3.b16(), v4.b16(), ptr_post(x5, x11)));
   3400   TEST_INSTRUCTION("A104000C", st4(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr(x5)));
   3401   TEST_INSTRUCTION("A1049F0C", st4(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr_post(x5, 32)));
   3402   TEST_INSTRUCTION("A1048B0C", st4(v1.h4(), v2.h4(), v3.h4(), v4.h4(), ptr_post(x5, x11)));
   3403   TEST_INSTRUCTION("A104004C", st4(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr(x5)));
   3404   TEST_INSTRUCTION("A1049F4C", st4(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr_post(x5, 64)));
   3405   TEST_INSTRUCTION("A1048B4C", st4(v1.h8(), v2.h8(), v3.h8(), v4.h8(), ptr_post(x5, x11)));
   3406   TEST_INSTRUCTION("A108000C", st4(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr(x5)));
   3407   TEST_INSTRUCTION("A1089F0C", st4(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr_post(x5, 32)));
   3408   TEST_INSTRUCTION("A1088B0C", st4(v1.s2(), v2.s2(), v3.s2(), v4.s2(), ptr_post(x5, x11)));
   3409   TEST_INSTRUCTION("A108004C", st4(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr(x5)));
   3410   TEST_INSTRUCTION("A1089F4C", st4(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr_post(x5, 64)));
   3411   TEST_INSTRUCTION("A1088B4C", st4(v1.s4(), v2.s4(), v3.s4(), v4.s4(), ptr_post(x5, x11)));
   3412   TEST_INSTRUCTION("A10C004C", st4(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr(x5)));
   3413   TEST_INSTRUCTION("A10C9F4C", st4(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr_post(x5, 64)));
   3414   TEST_INSTRUCTION("A10C8B4C", st4(v1.d2(), v2.d2(), v3.d2(), v4.d2(), ptr_post(x5, x11)));
   3415   TEST_INSTRUCTION("8109002C", stnp(s1, s2, ptr(x12)));
   3416   TEST_INSTRUCTION("8189002C", stnp(s1, s2, ptr(x12, 4)));
   3417   TEST_INSTRUCTION("8109302C", stnp(s1, s2, ptr(x12, -128)));
   3418   TEST_INSTRUCTION("E10B002C", stnp(s1, s2, ptr(sp)));
   3419   TEST_INSTRUCTION("E18B002C", stnp(s1, s2, ptr(sp, 4)));
   3420   TEST_INSTRUCTION("E10B102C", stnp(s1, s2, ptr(sp, 128)));
   3421   TEST_INSTRUCTION("8109006C", stnp(d1, d2, ptr(x12)));
   3422   TEST_INSTRUCTION("8189006C", stnp(d1, d2, ptr(x12, 8)));
   3423   TEST_INSTRUCTION("8109386C", stnp(d1, d2, ptr(x12, -128)));
   3424   TEST_INSTRUCTION("E10B006C", stnp(d1, d2, ptr(sp)));
   3425   TEST_INSTRUCTION("E18B006C", stnp(d1, d2, ptr(sp, 8)));
   3426   TEST_INSTRUCTION("E10B086C", stnp(d1, d2, ptr(sp, 128)));
   3427   TEST_INSTRUCTION("810900AC", stnp(q1, q2, ptr(x12)));
   3428   TEST_INSTRUCTION("818900AC", stnp(q1, q2, ptr(x12, 16)));
   3429   TEST_INSTRUCTION("81093CAC", stnp(q1, q2, ptr(x12, -128)));
   3430   TEST_INSTRUCTION("E10B00AC", stnp(q1, q2, ptr(sp)));
   3431   TEST_INSTRUCTION("E18B00AC", stnp(q1, q2, ptr(sp, 16)));
   3432   TEST_INSTRUCTION("E10B04AC", stnp(q1, q2, ptr(sp, 128)));
   3433   TEST_INSTRUCTION("8109002D", stp(s1, s2, ptr(x12)));
   3434   TEST_INSTRUCTION("8189002D", stp(s1, s2, ptr(x12, 4)));
   3435   TEST_INSTRUCTION("8109302D", stp(s1, s2, ptr(x12, -128)));
   3436   TEST_INSTRUCTION("8189802D", stp(s1, s2, ptr_pre(x12, 4)));
   3437   TEST_INSTRUCTION("8189802C", stp(s1, s2, ptr_post(x12, 4)));
   3438   TEST_INSTRUCTION("E10B002D", stp(s1, s2, ptr(sp)));
   3439   TEST_INSTRUCTION("E18B002D", stp(s1, s2, ptr(sp, 4)));
   3440   TEST_INSTRUCTION("E10B102D", stp(s1, s2, ptr(sp, 128)));
   3441   TEST_INSTRUCTION("E18B802D", stp(s1, s2, ptr_pre(sp, 4)));
   3442   TEST_INSTRUCTION("E18B802C", stp(s1, s2, ptr_post(sp, 4)));
   3443   TEST_INSTRUCTION("8109006D", stp(d1, d2, ptr(x12)));
   3444   TEST_INSTRUCTION("8189006D", stp(d1, d2, ptr(x12, 8)));
   3445   TEST_INSTRUCTION("8109386D", stp(d1, d2, ptr(x12, -128)));
   3446   TEST_INSTRUCTION("8189806D", stp(d1, d2, ptr_pre(x12, 8)));
   3447   TEST_INSTRUCTION("8189806C", stp(d1, d2, ptr_post(x12, 8)));
   3448   TEST_INSTRUCTION("E10B006D", stp(d1, d2, ptr(sp)));
   3449   TEST_INSTRUCTION("E18B006D", stp(d1, d2, ptr(sp, 8)));
   3450   TEST_INSTRUCTION("E10B086D", stp(d1, d2, ptr(sp, 128)));
   3451   TEST_INSTRUCTION("E18B806D", stp(d1, d2, ptr_pre(sp, 8)));
   3452   TEST_INSTRUCTION("E18B806C", stp(d1, d2, ptr_post(sp, 8)));
   3453   TEST_INSTRUCTION("810900AD", stp(q1, q2, ptr(x12)));
   3454   TEST_INSTRUCTION("818900AD", stp(q1, q2, ptr(x12, 16)));
   3455   TEST_INSTRUCTION("81093CAD", stp(q1, q2, ptr(x12, -128)));
   3456   TEST_INSTRUCTION("818980AD", stp(q1, q2, ptr_pre(x12, 16)));
   3457   TEST_INSTRUCTION("818980AC", stp(q1, q2, ptr_post(x12, 16)));
   3458   TEST_INSTRUCTION("E10B00AD", stp(q1, q2, ptr(sp)));
   3459   TEST_INSTRUCTION("E18B00AD", stp(q1, q2, ptr(sp, 16)));
   3460   TEST_INSTRUCTION("E10B04AD", stp(q1, q2, ptr(sp, 128)));
   3461   TEST_INSTRUCTION("E18B80AD", stp(q1, q2, ptr_pre(sp, 16)));
   3462   TEST_INSTRUCTION("E18B80AC", stp(q1, q2, ptr_post(sp, 16)));
   3463   TEST_INSTRUCTION("4100003D", str(b1, ptr(x2)));
   3464   TEST_INSTRUCTION("4114003C", str(b1, ptr_post(x2, 1)));
   3465   TEST_INSTRUCTION("4104003D", str(b1, ptr(x2, 1)));
   3466   TEST_INSTRUCTION("411C003C", str(b1, ptr_pre(x2, 1)));
   3467   TEST_INSTRUCTION("4114083C", str(b1, ptr_post(x2, 129)));
   3468   TEST_INSTRUCTION("4100007D", str(h1, ptr(x2)));
   3469   TEST_INSTRUCTION("4124007C", str(h1, ptr_post(x2, 2)));
   3470   TEST_INSTRUCTION("4104007D", str(h1, ptr(x2, 2)));
   3471   TEST_INSTRUCTION("412C007C", str(h1, ptr_pre(x2, 2)));
   3472   TEST_INSTRUCTION("4124087C", str(h1, ptr_post(x2, 130)));
   3473   TEST_INSTRUCTION("410000BD", str(s1, ptr(x2)));
   3474   TEST_INSTRUCTION("414400BC", str(s1, ptr_post(x2, 4)));
   3475   TEST_INSTRUCTION("410400BD", str(s1, ptr(x2, 4)));
   3476   TEST_INSTRUCTION("414C00BC", str(s1, ptr_pre(x2, 4)));
   3477   TEST_INSTRUCTION("414408BC", str(s1, ptr_post(x2, 132)));
   3478   TEST_INSTRUCTION("410000FD", str(d1, ptr(x2)));
   3479   TEST_INSTRUCTION("418400FC", str(d1, ptr_post(x2, 8)));
   3480   TEST_INSTRUCTION("410400FD", str(d1, ptr(x2, 8)));
   3481   TEST_INSTRUCTION("418C00FC", str(d1, ptr_pre(x2, 8)));
   3482   TEST_INSTRUCTION("414408FC", str(d1, ptr_post(x2, 132)));
   3483   TEST_INSTRUCTION("4168233C", str(b1, ptr(x2, x3)));
   3484   TEST_INSTRUCTION("4148233C", str(b1, ptr(x2, w3, uxtw(0))));
   3485   TEST_INSTRUCTION("41C8233C", str(b1, ptr(x2, w3, sxtw(0))));
   3486   TEST_INSTRUCTION("4168237C", str(h1, ptr(x2, x3)));
   3487   TEST_INSTRUCTION("4178237C", str(h1, ptr(x2, x3, lsl(1))));
   3488   TEST_INSTRUCTION("4148237C", str(h1, ptr(x2, w3, uxtw(0))));
   3489   TEST_INSTRUCTION("4158237C", str(h1, ptr(x2, w3, uxtw(1))));
   3490   TEST_INSTRUCTION("41C8237C", str(h1, ptr(x2, w3, sxtw(0))));
   3491   TEST_INSTRUCTION("41D8237C", str(h1, ptr(x2, w3, sxtw(1))));
   3492   TEST_INSTRUCTION("416823BC", str(s1, ptr(x2, x3)));
   3493   TEST_INSTRUCTION("417823BC", str(s1, ptr(x2, x3, lsl(2))));
   3494   TEST_INSTRUCTION("414823BC", str(s1, ptr(x2, w3, uxtw(0))));
   3495   TEST_INSTRUCTION("415823BC", str(s1, ptr(x2, w3, uxtw(2))));
   3496   TEST_INSTRUCTION("41C823BC", str(s1, ptr(x2, w3, sxtw(0))));
   3497   TEST_INSTRUCTION("41D823BC", str(s1, ptr(x2, w3, sxtw(2))));
   3498   TEST_INSTRUCTION("416823FC", str(d1, ptr(x2, x3)));
   3499   TEST_INSTRUCTION("417823FC", str(d1, ptr(x2, x3, lsl(3))));
   3500   TEST_INSTRUCTION("414823FC", str(d1, ptr(x2, w3, uxtw(0))));
   3501   TEST_INSTRUCTION("415823FC", str(d1, ptr(x2, w3, uxtw(3))));
   3502   TEST_INSTRUCTION("41C823FC", str(d1, ptr(x2, w3, sxtw(0))));
   3503   TEST_INSTRUCTION("41D823FC", str(d1, ptr(x2, w3, sxtw(3))));
   3504   TEST_INSTRUCTION("4104003D", str(b1, ptr(x2, 1)));
   3505   TEST_INSTRUCTION("41F01F3C", str(b1, ptr(x2, -1))); // STUR
   3506   TEST_INSTRUCTION("4110007C", str(h1, ptr(x2, 1)));  // STUR
   3507   TEST_INSTRUCTION("41F01F7C", str(h1, ptr(x2, -1))); // STUR
   3508   TEST_INSTRUCTION("411000BC", str(s1, ptr(x2, 1)));  // STUR
   3509   TEST_INSTRUCTION("41F01FBC", str(s1, ptr(x2, -1))); // STUR
   3510   TEST_INSTRUCTION("411000FC", str(d1, ptr(x2, 1)));  // STUR
   3511   TEST_INSTRUCTION("41F01FFC", str(d1, ptr(x2, -1))); // STUR
   3512   TEST_INSTRUCTION("8101003C", stur(b1, ptr(x12)));
   3513   TEST_INSTRUCTION("8131003C", stur(b1, ptr(x12, 3)));
   3514   TEST_INSTRUCTION("8131063C", stur(b1, ptr(x12, 99)));
   3515   TEST_INSTRUCTION("81F10F3C", stur(b1, ptr(x12, 255)));
   3516   TEST_INSTRUCTION("8101103C", stur(b1, ptr(x12, -256)));
   3517   TEST_INSTRUCTION("E103003C", stur(b1, ptr(sp)));
   3518   TEST_INSTRUCTION("E153083C", stur(b1, ptr(sp, 133)));
   3519   TEST_INSTRUCTION("8101007C", stur(h1, ptr(x12)));
   3520   TEST_INSTRUCTION("8131007C", stur(h1, ptr(x12, 3)));
   3521   TEST_INSTRUCTION("8131067C", stur(h1, ptr(x12, 99)));
   3522   TEST_INSTRUCTION("81F10F7C", stur(h1, ptr(x12, 255)));
   3523   TEST_INSTRUCTION("8101107C", stur(h1, ptr(x12, -256)));
   3524   TEST_INSTRUCTION("E103007C", stur(h1, ptr(sp)));
   3525   TEST_INSTRUCTION("E153087C", stur(h1, ptr(sp, 133)));
   3526   TEST_INSTRUCTION("810100BC", stur(s1, ptr(x12)));
   3527   TEST_INSTRUCTION("813100BC", stur(s1, ptr(x12, 3)));
   3528   TEST_INSTRUCTION("813106BC", stur(s1, ptr(x12, 99)));
   3529   TEST_INSTRUCTION("81F10FBC", stur(s1, ptr(x12, 255)));
   3530   TEST_INSTRUCTION("810110BC", stur(s1, ptr(x12, -256)));
   3531   TEST_INSTRUCTION("E10300BC", stur(s1, ptr(sp)));
   3532   TEST_INSTRUCTION("E15308BC", stur(s1, ptr(sp, 133)));
   3533   TEST_INSTRUCTION("810100FC", stur(d1, ptr(x12)));
   3534   TEST_INSTRUCTION("813100FC", stur(d1, ptr(x12, 3)));
   3535   TEST_INSTRUCTION("813106FC", stur(d1, ptr(x12, 99)));
   3536   TEST_INSTRUCTION("81F10FFC", stur(d1, ptr(x12, 255)));
   3537   TEST_INSTRUCTION("810110FC", stur(d1, ptr(x12, -256)));
   3538   TEST_INSTRUCTION("E10300FC", stur(d1, ptr(sp)));
   3539   TEST_INSTRUCTION("E15308FC", stur(d1, ptr(sp, 133)));
   3540   TEST_INSTRUCTION("8101803C", stur(q1, ptr(x12)));
   3541   TEST_INSTRUCTION("8131803C", stur(q1, ptr(x12, 3)));
   3542   TEST_INSTRUCTION("8131863C", stur(q1, ptr(x12, 99)));
   3543   TEST_INSTRUCTION("81F18F3C", stur(q1, ptr(x12, 255)));
   3544   TEST_INSTRUCTION("8101903C", stur(q1, ptr(x12, -256)));
   3545   TEST_INSTRUCTION("E103803C", stur(q1, ptr(sp)));
   3546   TEST_INSTRUCTION("E153883C", stur(q1, ptr(sp, 133)));
   3547   TEST_INSTRUCTION("4184232E", sub(v1.b8(), v2.b8(), v3.b8()));
   3548   TEST_INSTRUCTION("4184632E", sub(v1.h4(), v2.h4(), v3.h4()));
   3549   TEST_INSTRUCTION("4184A32E", sub(v1.s2(), v2.s2(), v3.s2()));
   3550   TEST_INSTRUCTION("4184E37E", sub(d1, d2, d3));
   3551   TEST_INSTRUCTION("4184236E", sub(v1.b16(), v2.b16(), v3.b16()));
   3552   TEST_INSTRUCTION("4184636E", sub(v1.h8(), v2.h8(), v3.h8()));
   3553   TEST_INSTRUCTION("4184A36E", sub(v1.s4(), v2.s4(), v3.s4()));
   3554   TEST_INSTRUCTION("4184E36E", sub(v1.d2(), v2.d2(), v3.d2()));
   3555   TEST_INSTRUCTION("4160230E", subhn(v1.b8(), v2.h8(), v3.h8()));
   3556   TEST_INSTRUCTION("4160630E", subhn(v1.h4(), v2.s4(), v3.s4()));
   3557   TEST_INSTRUCTION("4160A30E", subhn(v1.s2(), v2.d2(), v3.d2()));
   3558   TEST_INSTRUCTION("4160234E", subhn2(v1.b16(), v2.h8(), v3.h8()));
   3559   TEST_INSTRUCTION("4160634E", subhn2(v1.h8(), v2.s4(), v3.s4()));
   3560   TEST_INSTRUCTION("4160A34E", subhn2(v1.s4(), v2.d2(), v3.d2()));
   3561   TEST_INSTRUCTION("41F0030F", sudot(v1.s2(), v2.b8(), v3.b4(0)));
   3562   TEST_INSTRUCTION("41F0230F", sudot(v1.s2(), v2.b8(), v3.b4(1)));
   3563   TEST_INSTRUCTION("41F8030F", sudot(v1.s2(), v2.b8(), v3.b4(2)));
   3564   TEST_INSTRUCTION("41F8230F", sudot(v1.s2(), v2.b8(), v3.b4(3)));
   3565   TEST_INSTRUCTION("41F0034F", sudot(v1.s4(), v2.b16(), v3.b4(0)));
   3566   TEST_INSTRUCTION("41F0234F", sudot(v1.s4(), v2.b16(), v3.b4(1)));
   3567   TEST_INSTRUCTION("41F8034F", sudot(v1.s4(), v2.b16(), v3.b4(2)));
   3568   TEST_INSTRUCTION("41F8234F", sudot(v1.s4(), v2.b16(), v3.b4(3)));
   3569   TEST_INSTRUCTION("4138205E", suqadd(b1, b2));
   3570   TEST_INSTRUCTION("4138605E", suqadd(h1, h2));
   3571   TEST_INSTRUCTION("4138A05E", suqadd(s1, s2));
   3572   TEST_INSTRUCTION("4138E05E", suqadd(d1, d2));
   3573   TEST_INSTRUCTION("4138200E", suqadd(v1.b8(), v2.b8()));
   3574   TEST_INSTRUCTION("4138600E", suqadd(v1.h4(), v2.h4()));
   3575   TEST_INSTRUCTION("4138A00E", suqadd(v1.s2(), v2.s2()));
   3576   TEST_INSTRUCTION("4138204E", suqadd(v1.b16(), v2.b16()));
   3577   TEST_INSTRUCTION("4138604E", suqadd(v1.h8(), v2.h8()));
   3578   TEST_INSTRUCTION("4138A04E", suqadd(v1.s4(), v2.s4()));
   3579   TEST_INSTRUCTION("4138E04E", suqadd(v1.d2(), v2.d2()));
   3580   TEST_INSTRUCTION("41A4080F", sxtl(v1.h8(), v2.b8()));
   3581   TEST_INSTRUCTION("41A4100F", sxtl(v1.s4(), v2.h4()));
   3582   TEST_INSTRUCTION("41A4200F", sxtl(v1.d2(), v2.s2()));
   3583   TEST_INSTRUCTION("41A4084F", sxtl2(v1.h8(), v2.b16()));
   3584   TEST_INSTRUCTION("41A4104F", sxtl2(v1.s4(), v2.h8()));
   3585   TEST_INSTRUCTION("41A4204F", sxtl2(v1.d2(), v2.s4()));
   3586   TEST_INSTRUCTION("4100030E", tbl(v1.b8(), v2.b16(), v3.b8()));
   3587   TEST_INSTRUCTION("4120040E", tbl(v1.b8(), v2.b16(), v3.b16(), v4.b8()));
   3588   TEST_INSTRUCTION("4140050E", tbl(v1.b8(), v2.b16(), v3.b16(), v4.b16(), v5.b8()));
   3589   TEST_INSTRUCTION("4160060E", tbl(v1.b8(), v2.b16(), v3.b16(), v4.b16(), v5.b16(), v6.b8()));
   3590   TEST_INSTRUCTION("4100034E", tbl(v1.b16(), v2.b16(), v3.b16()));
   3591   TEST_INSTRUCTION("4120044E", tbl(v1.b16(), v2.b16(), v3.b16(), v4.b16()));
   3592   TEST_INSTRUCTION("4140054E", tbl(v1.b16(), v2.b16(), v3.b16(), v4.b16(), v5.b16()));
   3593   TEST_INSTRUCTION("4160064E", tbl(v1.b16(), v2.b16(), v3.b16(), v4.b16(), v5.b16(), v6.b16()));
   3594   TEST_INSTRUCTION("4110030E", tbx(v1.b8(), v2.b16(), v3.b8()));
   3595   TEST_INSTRUCTION("4130040E", tbx(v1.b8(), v2.b16(), v3.b16(), v4.b8()));
   3596   TEST_INSTRUCTION("4150050E", tbx(v1.b8(), v2.b16(), v3.b16(), v4.b16(), v5.b8()));
   3597   TEST_INSTRUCTION("4170060E", tbx(v1.b8(), v2.b16(), v3.b16(), v4.b16(), v5.b16(), v6.b8()));
   3598   TEST_INSTRUCTION("4110034E", tbx(v1.b16(), v2.b16(), v3.b16()));
   3599   TEST_INSTRUCTION("4130044E", tbx(v1.b16(), v2.b16(), v3.b16(), v4.b16()));
   3600   TEST_INSTRUCTION("4150054E", tbx(v1.b16(), v2.b16(), v3.b16(), v4.b16(), v5.b16()));
   3601   TEST_INSTRUCTION("4170064E", tbx(v1.b16(), v2.b16(), v3.b16(), v4.b16(), v5.b16(), v6.b16()));
   3602   TEST_INSTRUCTION("4128030E", trn1(v1.b8(), v2.b8(), v3.b8()));
   3603   TEST_INSTRUCTION("4128430E", trn1(v1.h4(), v2.h4(), v3.h4()));
   3604   TEST_INSTRUCTION("4128830E", trn1(v1.s2(), v2.s2(), v3.s2()));
   3605   TEST_INSTRUCTION("4128034E", trn1(v1.b16(), v2.b16(), v3.b16()));
   3606   TEST_INSTRUCTION("4128434E", trn1(v1.h8(), v2.h8(), v3.h8()));
   3607   TEST_INSTRUCTION("4128834E", trn1(v1.s4(), v2.s4(), v3.s4()));
   3608   TEST_INSTRUCTION("4128C34E", trn1(v1.d2(), v2.d2(), v3.d2()));
   3609   TEST_INSTRUCTION("4168030E", trn2(v1.b8(), v2.b8(), v3.b8()));
   3610   TEST_INSTRUCTION("4168430E", trn2(v1.h4(), v2.h4(), v3.h4()));
   3611   TEST_INSTRUCTION("4168830E", trn2(v1.s2(), v2.s2(), v3.s2()));
   3612   TEST_INSTRUCTION("4168034E", trn2(v1.b16(), v2.b16(), v3.b16()));
   3613   TEST_INSTRUCTION("4168434E", trn2(v1.h8(), v2.h8(), v3.h8()));
   3614   TEST_INSTRUCTION("4168834E", trn2(v1.s4(), v2.s4(), v3.s4()));
   3615   TEST_INSTRUCTION("4168C34E", trn2(v1.d2(), v2.d2(), v3.d2()));
   3616   TEST_INSTRUCTION("417C232E", uaba(v1.b8(), v2.b8(), v3.b8()));
   3617   TEST_INSTRUCTION("417C632E", uaba(v1.h4(), v2.h4(), v3.h4()));
   3618   TEST_INSTRUCTION("417CA32E", uaba(v1.s2(), v2.s2(), v3.s2()));
   3619   TEST_INSTRUCTION("417C236E", uaba(v1.b16(), v2.b16(), v3.b16()));
   3620   TEST_INSTRUCTION("417C636E", uaba(v1.h8(), v2.h8(), v3.h8()));
   3621   TEST_INSTRUCTION("417CA36E", uaba(v1.s4(), v2.s4(), v3.s4()));
   3622   TEST_INSTRUCTION("4150232E", uabal(v1.h8(), v2.b8(), v3.b8()));
   3623   TEST_INSTRUCTION("4150632E", uabal(v1.s4(), v2.h4(), v3.h4()));
   3624   TEST_INSTRUCTION("4150A32E", uabal(v1.d2(), v2.s2(), v3.s2()));
   3625   TEST_INSTRUCTION("4150236E", uabal2(v1.h8(), v2.b16(), v3.b16()));
   3626   TEST_INSTRUCTION("4150636E", uabal2(v1.s4(), v2.h8(), v3.h8()));
   3627   TEST_INSTRUCTION("4150A36E", uabal2(v1.d2(), v2.s4(), v3.s4()));
   3628   TEST_INSTRUCTION("4174232E", uabd(v1.b8(), v2.b8(), v3.b8()));
   3629   TEST_INSTRUCTION("4174632E", uabd(v1.h4(), v2.h4(), v3.h4()));
   3630   TEST_INSTRUCTION("4174A32E", uabd(v1.s2(), v2.s2(), v3.s2()));
   3631   TEST_INSTRUCTION("4174236E", uabd(v1.b16(), v2.b16(), v3.b16()));
   3632   TEST_INSTRUCTION("4174636E", uabd(v1.h8(), v2.h8(), v3.h8()));
   3633   TEST_INSTRUCTION("4174A36E", uabd(v1.s4(), v2.s4(), v3.s4()));
   3634   TEST_INSTRUCTION("4170232E", uabdl(v1.h8(), v2.b8(), v3.b8()));
   3635   TEST_INSTRUCTION("4170632E", uabdl(v1.s4(), v2.h4(), v3.h4()));
   3636   TEST_INSTRUCTION("4170A32E", uabdl(v1.d2(), v2.s2(), v3.s2()));
   3637   TEST_INSTRUCTION("4170236E", uabdl2(v1.h8(), v2.b16(), v3.b16()));
   3638   TEST_INSTRUCTION("4170636E", uabdl2(v1.s4(), v2.h8(), v3.h8()));
   3639   TEST_INSTRUCTION("4170A36E", uabdl2(v1.d2(), v2.s4(), v3.s4()));
   3640   TEST_INSTRUCTION("4168202E", uadalp(v1.h4(), v2.b8()));
   3641   TEST_INSTRUCTION("4168602E", uadalp(v1.s2(), v2.h4()));
   3642   TEST_INSTRUCTION("4168A02E", uadalp(d1, v2.s2()));
   3643   TEST_INSTRUCTION("4168206E", uadalp(v1.h8(), v2.b16()));
   3644   TEST_INSTRUCTION("4168606E", uadalp(v1.s4(), v2.h8()));
   3645   TEST_INSTRUCTION("4168A06E", uadalp(v1.d2(), v2.s4()));
   3646   TEST_INSTRUCTION("4100232E", uaddl(v1.h8(), v2.b8(), v3.b8()));
   3647   TEST_INSTRUCTION("4100632E", uaddl(v1.s4(), v2.h4(), v3.h4()));
   3648   TEST_INSTRUCTION("4100A32E", uaddl(v1.d2(), v2.s2(), v3.s2()));
   3649   TEST_INSTRUCTION("4100236E", uaddl2(v1.h8(), v2.b16(), v3.b16()));
   3650   TEST_INSTRUCTION("4100636E", uaddl2(v1.s4(), v2.h8(), v3.h8()));
   3651   TEST_INSTRUCTION("4100A36E", uaddl2(v1.d2(), v2.s4(), v3.s4()));
   3652   TEST_INSTRUCTION("4128202E", uaddlp(v1.h4(), v2.b8()));
   3653   TEST_INSTRUCTION("4128602E", uaddlp(v1.s2(), v2.h4()));
   3654   TEST_INSTRUCTION("4128A02E", uaddlp(d1, v2.s2()));
   3655   TEST_INSTRUCTION("4128206E", uaddlp(v1.h8(), v2.b16()));
   3656   TEST_INSTRUCTION("4128606E", uaddlp(v1.s4(), v2.h8()));
   3657   TEST_INSTRUCTION("4128A06E", uaddlp(v1.d2(), v2.s4()));
   3658   TEST_INSTRUCTION("4138302E", uaddlv(h1, v2.b8()));
   3659   TEST_INSTRUCTION("4138306E", uaddlv(h1, v2.b16()));
   3660   TEST_INSTRUCTION("4138702E", uaddlv(s1, v2.h4()));
   3661   TEST_INSTRUCTION("4138706E", uaddlv(s1, v2.h8()));
   3662   TEST_INSTRUCTION("4138B06E", uaddlv(d1, v2.s4()));
   3663   TEST_INSTRUCTION("4110232E", uaddw(v1.h8(), v2.h8(), v3.b8()));
   3664   TEST_INSTRUCTION("4110632E", uaddw(v1.s4(), v2.s4(), v3.h4()));
   3665   TEST_INSTRUCTION("4110A32E", uaddw(v1.d2(), v2.d2(), v3.s2()));
   3666   TEST_INSTRUCTION("4110236E", uaddw2(v1.h8(), v2.h8(), v3.b16()));
   3667   TEST_INSTRUCTION("4110636E", uaddw2(v1.s4(), v2.s4(), v3.h8()));
   3668   TEST_INSTRUCTION("4110A36E", uaddw2(v1.d2(), v2.d2(), v3.s4()));
   3669   TEST_INSTRUCTION("4100E31E", ucvtf(h1, w2));
   3670   TEST_INSTRUCTION("4100231E", ucvtf(s1, w2));
   3671   TEST_INSTRUCTION("4100631E", ucvtf(d1, w2));
   3672   TEST_INSTRUCTION("4100E39E", ucvtf(h1, x2));
   3673   TEST_INSTRUCTION("4100239E", ucvtf(s1, x2));
   3674   TEST_INSTRUCTION("4100639E", ucvtf(d1, x2));
   3675   TEST_INSTRUCTION("41D8797E", ucvtf(h1, h2));
   3676   TEST_INSTRUCTION("41D8217E", ucvtf(s1, s2));
   3677   TEST_INSTRUCTION("41D8617E", ucvtf(d1, d2));
   3678   TEST_INSTRUCTION("41D8792E", ucvtf(v1.h4(), v2.h4()));
   3679   TEST_INSTRUCTION("41D8212E", ucvtf(v1.s2(), v2.s2()));
   3680   TEST_INSTRUCTION("41D8796E", ucvtf(v1.h8(), v2.h8()));
   3681   TEST_INSTRUCTION("41D8216E", ucvtf(v1.s4(), v2.s4()));
   3682   TEST_INSTRUCTION("41D8616E", ucvtf(v1.d2(), v2.d2()));
   3683   TEST_INSTRUCTION("41E0C31E", ucvtf(h1, w2, 8));
   3684   TEST_INSTRUCTION("41E0031E", ucvtf(s1, w2, 8));
   3685   TEST_INSTRUCTION("41E0431E", ucvtf(d1, w2, 8));
   3686   TEST_INSTRUCTION("41E0C39E", ucvtf(h1, x2, 8));
   3687   TEST_INSTRUCTION("41E0039E", ucvtf(s1, x2, 8));
   3688   TEST_INSTRUCTION("41E0439E", ucvtf(d1, x2, 8));
   3689   TEST_INSTRUCTION("41E4187F", ucvtf(h1, h2, 8));
   3690   TEST_INSTRUCTION("41E4387F", ucvtf(s1, s2, 8));
   3691   TEST_INSTRUCTION("41E4787F", ucvtf(d1, d2, 8));
   3692   TEST_INSTRUCTION("41E4182F", ucvtf(v1.h4(), v2.h4(), 8));
   3693   TEST_INSTRUCTION("41E4382F", ucvtf(v1.s2(), v2.s2(), 8));
   3694   TEST_INSTRUCTION("41E4186F", ucvtf(v1.h8(), v2.h8(), 8));
   3695   TEST_INSTRUCTION("41E4386F", ucvtf(v1.s4(), v2.s4(), 8));
   3696   TEST_INSTRUCTION("41E4786F", ucvtf(v1.d2(), v2.d2(), 8));
   3697   TEST_INSTRUCTION("4194832E", udot(v1.s2(), v2.b8(), v3.b8()));
   3698   TEST_INSTRUCTION("4194836E", udot(v1.s4(), v2.b16(), v3.b16()));
   3699   TEST_INSTRUCTION("41E0832F", udot(v1.s2(), v2.b8(), v3.b4(0)));
   3700   TEST_INSTRUCTION("41E0A32F", udot(v1.s2(), v2.b8(), v3.b4(1)));
   3701   TEST_INSTRUCTION("41E8832F", udot(v1.s2(), v2.b8(), v3.b4(2)));
   3702   TEST_INSTRUCTION("41E8A32F", udot(v1.s2(), v2.b8(), v3.b4(3)));
   3703   TEST_INSTRUCTION("41E0836F", udot(v1.s4(), v2.b16(), v3.b4(0)));
   3704   TEST_INSTRUCTION("41E0A36F", udot(v1.s4(), v2.b16(), v3.b4(1)));
   3705   TEST_INSTRUCTION("41E8836F", udot(v1.s4(), v2.b16(), v3.b4(2)));
   3706   TEST_INSTRUCTION("41E8A36F", udot(v1.s4(), v2.b16(), v3.b4(3)));
   3707   TEST_INSTRUCTION("4104232E", uhadd(v1.b8(), v2.b8(), v3.b8()));
   3708   TEST_INSTRUCTION("4104632E", uhadd(v1.h4(), v2.h4(), v3.h4()));
   3709   TEST_INSTRUCTION("4104A32E", uhadd(v1.s2(), v2.s2(), v3.s2()));
   3710   TEST_INSTRUCTION("4104236E", uhadd(v1.b16(), v2.b16(), v3.b16()));
   3711   TEST_INSTRUCTION("4104636E", uhadd(v1.h8(), v2.h8(), v3.h8()));
   3712   TEST_INSTRUCTION("4104A36E", uhadd(v1.s4(), v2.s4(), v3.s4()));
   3713   TEST_INSTRUCTION("4124232E", uhsub(v1.b8(), v2.b8(), v3.b8()));
   3714   TEST_INSTRUCTION("4124632E", uhsub(v1.h4(), v2.h4(), v3.h4()));
   3715   TEST_INSTRUCTION("4124A32E", uhsub(v1.s2(), v2.s2(), v3.s2()));
   3716   TEST_INSTRUCTION("4124236E", uhsub(v1.b16(), v2.b16(), v3.b16()));
   3717   TEST_INSTRUCTION("4124636E", uhsub(v1.h8(), v2.h8(), v3.h8()));
   3718   TEST_INSTRUCTION("4124A36E", uhsub(v1.s4(), v2.s4(), v3.s4()));
   3719   TEST_INSTRUCTION("4164232E", umax(v1.b8(), v2.b8(), v3.b8()));
   3720   TEST_INSTRUCTION("4164632E", umax(v1.h4(), v2.h4(), v3.h4()));
   3721   TEST_INSTRUCTION("4164A32E", umax(v1.s2(), v2.s2(), v3.s2()));
   3722   TEST_INSTRUCTION("4164236E", umax(v1.b16(), v2.b16(), v3.b16()));
   3723   TEST_INSTRUCTION("4164636E", umax(v1.h8(), v2.h8(), v3.h8()));
   3724   TEST_INSTRUCTION("4164A36E", umax(v1.s4(), v2.s4(), v3.s4()));
   3725   TEST_INSTRUCTION("41A4232E", umaxp(v1.b8(), v2.b8(), v3.b8()));
   3726   TEST_INSTRUCTION("41A4632E", umaxp(v1.h4(), v2.h4(), v3.h4()));
   3727   TEST_INSTRUCTION("41A4A32E", umaxp(v1.s2(), v2.s2(), v3.s2()));
   3728   TEST_INSTRUCTION("41A4236E", umaxp(v1.b16(), v2.b16(), v3.b16()));
   3729   TEST_INSTRUCTION("41A4636E", umaxp(v1.h8(), v2.h8(), v3.h8()));
   3730   TEST_INSTRUCTION("41A4A36E", umaxp(v1.s4(), v2.s4(), v3.s4()));
   3731   TEST_INSTRUCTION("41A8302E", umaxv(b1, v2.b8()));
   3732   TEST_INSTRUCTION("41A8306E", umaxv(b1, v2.b16()));
   3733   TEST_INSTRUCTION("41A8702E", umaxv(h1, v2.h4()));
   3734   TEST_INSTRUCTION("41A8706E", umaxv(h1, v2.h8()));
   3735   TEST_INSTRUCTION("41A8B06E", umaxv(s1, v2.s4()));
   3736   TEST_INSTRUCTION("416C232E", umin(v1.b8(), v2.b8(), v3.b8()));
   3737   TEST_INSTRUCTION("416C632E", umin(v1.h4(), v2.h4(), v3.h4()));
   3738   TEST_INSTRUCTION("416CA32E", umin(v1.s2(), v2.s2(), v3.s2()));
   3739   TEST_INSTRUCTION("416C236E", umin(v1.b16(), v2.b16(), v3.b16()));
   3740   TEST_INSTRUCTION("416C636E", umin(v1.h8(), v2.h8(), v3.h8()));
   3741   TEST_INSTRUCTION("416CA36E", umin(v1.s4(), v2.s4(), v3.s4()));
   3742   TEST_INSTRUCTION("41AC232E", uminp(v1.b8(), v2.b8(), v3.b8()));
   3743   TEST_INSTRUCTION("41AC632E", uminp(v1.h4(), v2.h4(), v3.h4()));
   3744   TEST_INSTRUCTION("41ACA32E", uminp(v1.s2(), v2.s2(), v3.s2()));
   3745   TEST_INSTRUCTION("41AC236E", uminp(v1.b16(), v2.b16(), v3.b16()));
   3746   TEST_INSTRUCTION("41AC636E", uminp(v1.h8(), v2.h8(), v3.h8()));
   3747   TEST_INSTRUCTION("41ACA36E", uminp(v1.s4(), v2.s4(), v3.s4()));
   3748   TEST_INSTRUCTION("41A8312E", uminv(b1, v2.b8()));
   3749   TEST_INSTRUCTION("41A8316E", uminv(b1, v2.b16()));
   3750   TEST_INSTRUCTION("41A8712E", uminv(h1, v2.h4()));
   3751   TEST_INSTRUCTION("41A8716E", uminv(h1, v2.h8()));
   3752   TEST_INSTRUCTION("41A8B16E", uminv(s1, v2.s4()));
   3753   TEST_INSTRUCTION("4180232E", umlal(v1.h8(), v2.b8(), v3.b8()));
   3754   TEST_INSTRUCTION("4180632E", umlal(v1.s4(), v2.h4(), v3.h4()));
   3755   TEST_INSTRUCTION("4180A32E", umlal(v1.d2(), v2.s2(), v3.s2()));
   3756   TEST_INSTRUCTION("4120732F", umlal(v1.s4(), v2.h4(), v3.h(3)));
   3757   TEST_INSTRUCTION("4128A32F", umlal(v1.d2(), v2.s2(), v3.s(3)));
   3758   TEST_INSTRUCTION("4180236E", umlal2(v1.h8(), v2.b16(), v3.b16()));
   3759   TEST_INSTRUCTION("4180636E", umlal2(v1.s4(), v2.h8(), v3.h8()));
   3760   TEST_INSTRUCTION("4180A36E", umlal2(v1.d2(), v2.s4(), v3.s4()));
   3761   TEST_INSTRUCTION("4120736F", umlal2(v1.s4(), v2.h8(), v3.h(3)));
   3762   TEST_INSTRUCTION("4128A36F", umlal2(v1.d2(), v2.s4(), v3.s(3)));
   3763   TEST_INSTRUCTION("41A0232E", umlsl(v1.h8(), v2.b8(), v3.b8()));
   3764   TEST_INSTRUCTION("41A0632E", umlsl(v1.s4(), v2.h4(), v3.h4()));
   3765   TEST_INSTRUCTION("41A0A32E", umlsl(v1.d2(), v2.s2(), v3.s2()));
   3766   TEST_INSTRUCTION("4160732F", umlsl(v1.s4(), v2.h4(), v3.h(3)));
   3767   TEST_INSTRUCTION("4168A32F", umlsl(v1.d2(), v2.s2(), v3.s(3)));
   3768   TEST_INSTRUCTION("41A0236E", umlsl2(v1.h8(), v2.b16(), v3.b16()));
   3769   TEST_INSTRUCTION("41A0636E", umlsl2(v1.s4(), v2.h8(), v3.h8()));
   3770   TEST_INSTRUCTION("41A0A36E", umlsl2(v1.d2(), v2.s4(), v3.s4()));
   3771   TEST_INSTRUCTION("4160736F", umlsl2(v1.s4(), v2.h8(), v3.h(3)));
   3772   TEST_INSTRUCTION("4168A36F", umlsl2(v1.d2(), v2.s4(), v3.s(3)));
   3773   TEST_INSTRUCTION("41A4836E", ummla(v1.s4(), v2.b16(), v3.b16()));
   3774   TEST_INSTRUCTION("413C010E", umov(w1, v2.b(0)));
   3775   TEST_INSTRUCTION("413C1F0E", umov(w1, v2.b(15)));
   3776   TEST_INSTRUCTION("413C020E", umov(w1, v2.h(0)));
   3777   TEST_INSTRUCTION("413C1E0E", umov(w1, v2.h(7)));
   3778   TEST_INSTRUCTION("413C040E", umov(w1, v2.s(0)));
   3779   TEST_INSTRUCTION("413C1C0E", umov(w1, v2.s(3)));
   3780   TEST_INSTRUCTION("413C084E", umov(x1, v2.d(0)));
   3781   TEST_INSTRUCTION("413C184E", umov(x1, v2.d(1)));
   3782   TEST_INSTRUCTION("41C0232E", umull(v1.h8(), v2.b8(), v3.b8()));
   3783   TEST_INSTRUCTION("41C0632E", umull(v1.s4(), v2.h4(), v3.h4()));
   3784   TEST_INSTRUCTION("41C0A32E", umull(v1.d2(), v2.s2(), v3.s2()));
   3785   TEST_INSTRUCTION("41A0732F", umull(v1.s4(), v2.h4(), v3.h(3)));
   3786   TEST_INSTRUCTION("41A8A32F", umull(v1.d2(), v2.s2(), v3.s(3)));
   3787   TEST_INSTRUCTION("41C0236E", umull2(v1.h8(), v2.b16(), v3.b16()));
   3788   TEST_INSTRUCTION("41C0636E", umull2(v1.s4(), v2.h8(), v3.h8()));
   3789   TEST_INSTRUCTION("41C0A36E", umull2(v1.d2(), v2.s4(), v3.s4()));
   3790   TEST_INSTRUCTION("41A0736F", umull2(v1.s4(), v2.h8(), v3.h(3)));
   3791   TEST_INSTRUCTION("41A8A36F", umull2(v1.d2(), v2.s4(), v3.s(3)));
   3792   TEST_INSTRUCTION("410C237E", uqadd(b1, b2, b3));
   3793   TEST_INSTRUCTION("410C637E", uqadd(h1, h2, h3));
   3794   TEST_INSTRUCTION("410CA37E", uqadd(s1, s2, s3));
   3795   TEST_INSTRUCTION("410CE37E", uqadd(d1, d2, d3));
   3796   TEST_INSTRUCTION("410C232E", uqadd(v1.b8(), v2.b8(), v3.b8()));
   3797   TEST_INSTRUCTION("410C632E", uqadd(v1.h4(), v2.h4(), v3.h4()));
   3798   TEST_INSTRUCTION("410CA32E", uqadd(v1.s2(), v2.s2(), v3.s2()));
   3799   TEST_INSTRUCTION("410C236E", uqadd(v1.b16(), v2.b16(), v3.b16()));
   3800   TEST_INSTRUCTION("410C636E", uqadd(v1.h8(), v2.h8(), v3.h8()));
   3801   TEST_INSTRUCTION("410CA36E", uqadd(v1.s4(), v2.s4(), v3.s4()));
   3802   TEST_INSTRUCTION("410CE36E", uqadd(v1.d2(), v2.d2(), v3.d2()));
   3803   TEST_INSTRUCTION("415C237E", uqrshl(b1, b2, b3));
   3804   TEST_INSTRUCTION("415C637E", uqrshl(h1, h2, h3));
   3805   TEST_INSTRUCTION("415CA37E", uqrshl(s1, s2, s3));
   3806   TEST_INSTRUCTION("415C232E", uqrshl(v1.b8(), v2.b8(), v3.b8()));
   3807   TEST_INSTRUCTION("415C632E", uqrshl(v1.h4(), v2.h4(), v3.h4()));
   3808   TEST_INSTRUCTION("415CA32E", uqrshl(v1.s2(), v2.s2(), v3.s2()));
   3809   TEST_INSTRUCTION("415CE37E", uqrshl(d1, d2, d3));
   3810   TEST_INSTRUCTION("415C236E", uqrshl(v1.b16(), v2.b16(), v3.b16()));
   3811   TEST_INSTRUCTION("415C636E", uqrshl(v1.h8(), v2.h8(), v3.h8()));
   3812   TEST_INSTRUCTION("415CA36E", uqrshl(v1.s4(), v2.s4(), v3.s4()));
   3813   TEST_INSTRUCTION("415CE36E", uqrshl(v1.d2(), v2.d2(), v3.d2()));
   3814   TEST_INSTRUCTION("419C087F", uqrshrn(b1, h2, 8));
   3815   TEST_INSTRUCTION("419C107F", uqrshrn(h1, s2, 16));
   3816   TEST_INSTRUCTION("419C207F", uqrshrn(s1, d2, 32));
   3817   TEST_INSTRUCTION("419C082F", uqrshrn(v1.b8(), v2.h8(), 8));
   3818   TEST_INSTRUCTION("419C102F", uqrshrn(v1.h4(), v2.s4(), 16));
   3819   TEST_INSTRUCTION("419C202F", uqrshrn(v1.s2(), v2.d2(), 32));
   3820   TEST_INSTRUCTION("419C086F", uqrshrn2(v1.b16(), v2.h8(), 8));
   3821   TEST_INSTRUCTION("419C106F", uqrshrn2(v1.h8(), v2.s4(), 16));
   3822   TEST_INSTRUCTION("419C206F", uqrshrn2(v1.s4(), v2.d2(), 32));
   3823   TEST_INSTRUCTION("4174097F", uqshl(b1, b2, 1));
   3824   TEST_INSTRUCTION("4174127F", uqshl(h1, h2, 2));
   3825   TEST_INSTRUCTION("4174237F", uqshl(s1, s2, 3));
   3826   TEST_INSTRUCTION("41740F2F", uqshl(v1.b8(), v2.b8(), 7));
   3827   TEST_INSTRUCTION("41741F2F", uqshl(v1.h4(), v2.h4(), 15));
   3828   TEST_INSTRUCTION("41743F2F", uqshl(v1.s2(), v2.s2(), 31));
   3829   TEST_INSTRUCTION("41747F7F", uqshl(d1, d2, 63));
   3830   TEST_INSTRUCTION("41740F6F", uqshl(v1.b16(), v2.b16(), 7));
   3831   TEST_INSTRUCTION("41741F6F", uqshl(v1.h8(), v2.h8(), 15));
   3832   TEST_INSTRUCTION("41743F6F", uqshl(v1.s4(), v2.s4(), 31));
   3833   TEST_INSTRUCTION("41747F6F", uqshl(v1.d2(), v2.d2(), 63));
   3834   TEST_INSTRUCTION("414C237E", uqshl(b1, b2, b3));
   3835   TEST_INSTRUCTION("414C637E", uqshl(h1, h2, h3));
   3836   TEST_INSTRUCTION("414CA37E", uqshl(s1, s2, s3));
   3837   TEST_INSTRUCTION("414C232E", uqshl(v1.b8(), v2.b8(), v3.b8()));
   3838   TEST_INSTRUCTION("414C632E", uqshl(v1.h4(), v2.h4(), v3.h4()));
   3839   TEST_INSTRUCTION("414CA32E", uqshl(v1.s2(), v2.s2(), v3.s2()));
   3840   TEST_INSTRUCTION("414CE37E", uqshl(d1, d2, d3));
   3841   TEST_INSTRUCTION("414C236E", uqshl(v1.b16(), v2.b16(), v3.b16()));
   3842   TEST_INSTRUCTION("414C636E", uqshl(v1.h8(), v2.h8(), v3.h8()));
   3843   TEST_INSTRUCTION("414CA36E", uqshl(v1.s4(), v2.s4(), v3.s4()));
   3844   TEST_INSTRUCTION("414CE36E", uqshl(v1.d2(), v2.d2(), v3.d2()));
   3845   TEST_INSTRUCTION("4194087F", uqshrn(b1, h2, 8));
   3846   TEST_INSTRUCTION("4194107F", uqshrn(h1, s2, 16));
   3847   TEST_INSTRUCTION("4194207F", uqshrn(s1, d2, 32));
   3848   TEST_INSTRUCTION("4194082F", uqshrn(v1.b8(), v2.h8(), 8));
   3849   TEST_INSTRUCTION("4194102F", uqshrn(v1.h4(), v2.s4(), 16));
   3850   TEST_INSTRUCTION("4194202F", uqshrn(v1.s2(), v2.d2(), 32));
   3851   TEST_INSTRUCTION("4194086F", uqshrn2(v1.b16(), v2.h8(), 8));
   3852   TEST_INSTRUCTION("4194106F", uqshrn2(v1.h8(), v2.s4(), 16));
   3853   TEST_INSTRUCTION("4194206F", uqshrn2(v1.s4(), v2.d2(), 32));
   3854   TEST_INSTRUCTION("412C237E", uqsub(b1, b2, b3));
   3855   TEST_INSTRUCTION("412C637E", uqsub(h1, h2, h3));
   3856   TEST_INSTRUCTION("412CA37E", uqsub(s1, s2, s3));
   3857   TEST_INSTRUCTION("412CE37E", uqsub(d1, d2, d3));
   3858   TEST_INSTRUCTION("412C232E", uqsub(v1.b8(), v2.b8(), v3.b8()));
   3859   TEST_INSTRUCTION("412C632E", uqsub(v1.h4(), v2.h4(), v3.h4()));
   3860   TEST_INSTRUCTION("412CA32E", uqsub(v1.s2(), v2.s2(), v3.s2()));
   3861   TEST_INSTRUCTION("412C236E", uqsub(v1.b16(), v2.b16(), v3.b16()));
   3862   TEST_INSTRUCTION("412C636E", uqsub(v1.h8(), v2.h8(), v3.h8()));
   3863   TEST_INSTRUCTION("412CA36E", uqsub(v1.s4(), v2.s4(), v3.s4()));
   3864   TEST_INSTRUCTION("412CE36E", uqsub(v1.d2(), v2.d2(), v3.d2()));
   3865   TEST_INSTRUCTION("4148217E", uqxtn(b1, h2));
   3866   TEST_INSTRUCTION("4148617E", uqxtn(h1, s2));
   3867   TEST_INSTRUCTION("4148A17E", uqxtn(s1, d2));
   3868   TEST_INSTRUCTION("4148212E", uqxtn(v1.b8(), v2.h8()));
   3869   TEST_INSTRUCTION("4148612E", uqxtn(v1.h4(), v2.s4()));
   3870   TEST_INSTRUCTION("4148A12E", uqxtn(v1.s2(), v2.d2()));
   3871   TEST_INSTRUCTION("4148216E", uqxtn2(v1.b16(), v2.h8()));
   3872   TEST_INSTRUCTION("4148616E", uqxtn2(v1.h8(), v2.s4()));
   3873   TEST_INSTRUCTION("4148A16E", uqxtn2(v1.s4(), v2.d2()));
   3874   TEST_INSTRUCTION("41C8A10E", urecpe(v1.s2(), v2.s2()));
   3875   TEST_INSTRUCTION("41C8A14E", urecpe(v1.s4(), v2.s4()));
   3876   TEST_INSTRUCTION("4114232E", urhadd(v1.b8(), v2.b8(), v3.b8()));
   3877   TEST_INSTRUCTION("4114632E", urhadd(v1.h4(), v2.h4(), v3.h4()));
   3878   TEST_INSTRUCTION("4114A32E", urhadd(v1.s2(), v2.s2(), v3.s2()));
   3879   TEST_INSTRUCTION("4114236E", urhadd(v1.b16(), v2.b16(), v3.b16()));
   3880   TEST_INSTRUCTION("4114636E", urhadd(v1.h8(), v2.h8(), v3.h8()));
   3881   TEST_INSTRUCTION("4114A36E", urhadd(v1.s4(), v2.s4(), v3.s4()));
   3882   TEST_INSTRUCTION("4154232E", urshl(v1.b8(), v2.b8(), v3.b8()));
   3883   TEST_INSTRUCTION("4154632E", urshl(v1.h4(), v2.h4(), v3.h4()));
   3884   TEST_INSTRUCTION("4154A32E", urshl(v1.s2(), v2.s2(), v3.s2()));
   3885   TEST_INSTRUCTION("4154E37E", urshl(d1, d2, d3));
   3886   TEST_INSTRUCTION("4154236E", urshl(v1.b16(), v2.b16(), v3.b16()));
   3887   TEST_INSTRUCTION("4154636E", urshl(v1.h8(), v2.h8(), v3.h8()));
   3888   TEST_INSTRUCTION("4154A36E", urshl(v1.s4(), v2.s4(), v3.s4()));
   3889   TEST_INSTRUCTION("4154E36E", urshl(v1.d2(), v2.d2(), v3.d2()));
   3890   TEST_INSTRUCTION("4124092F", urshr(v1.b8(), v2.b8(), 7));
   3891   TEST_INSTRUCTION("4124112F", urshr(v1.h4(), v2.h4(), 15));
   3892   TEST_INSTRUCTION("4124212F", urshr(v1.s2(), v2.s2(), 31));
   3893   TEST_INSTRUCTION("4124417F", urshr(d1, d2, 63));
   3894   TEST_INSTRUCTION("4124096F", urshr(v1.b16(), v2.b16(), 7));
   3895   TEST_INSTRUCTION("4124116F", urshr(v1.h8(), v2.h8(), 15));
   3896   TEST_INSTRUCTION("4124216F", urshr(v1.s4(), v2.s4(), 31));
   3897   TEST_INSTRUCTION("4124416F", urshr(v1.d2(), v2.d2(), 63));
   3898   TEST_INSTRUCTION("41C8A12E", ursqrte(v1.s2(), v2.s2()));
   3899   TEST_INSTRUCTION("41C8A16E", ursqrte(v1.s4(), v2.s4()));
   3900   TEST_INSTRUCTION("4134092F", ursra(v1.b8(), v2.b8(), 7));
   3901   TEST_INSTRUCTION("4134112F", ursra(v1.h4(), v2.h4(), 15));
   3902   TEST_INSTRUCTION("4134212F", ursra(v1.s2(), v2.s2(), 31));
   3903   TEST_INSTRUCTION("4134417F", ursra(d1, d2, 63));
   3904   TEST_INSTRUCTION("4134096F", ursra(v1.b16(), v2.b16(), 7));
   3905   TEST_INSTRUCTION("4134116F", ursra(v1.h8(), v2.h8(), 15));
   3906   TEST_INSTRUCTION("4134216F", ursra(v1.s4(), v2.s4(), 31));
   3907   TEST_INSTRUCTION("4134416F", ursra(v1.d2(), v2.d2(), 63));
   3908   TEST_INSTRUCTION("419C830E", usdot(v1.s2(), v2.b8(), v3.b8()));
   3909   TEST_INSTRUCTION("419C834E", usdot(v1.s4(), v2.b16(), v3.b16()));
   3910   TEST_INSTRUCTION("41F0830F", usdot(v1.s2(), v2.b8(), v3.b4(0)));
   3911   TEST_INSTRUCTION("41F0A30F", usdot(v1.s2(), v2.b8(), v3.b4(1)));
   3912   TEST_INSTRUCTION("41F8830F", usdot(v1.s2(), v2.b8(), v3.b4(2)));
   3913   TEST_INSTRUCTION("41F8A30F", usdot(v1.s2(), v2.b8(), v3.b4(3)));
   3914   TEST_INSTRUCTION("41F0834F", usdot(v1.s4(), v2.b16(), v3.b4(0)));
   3915   TEST_INSTRUCTION("41F0A34F", usdot(v1.s4(), v2.b16(), v3.b4(1)));
   3916   TEST_INSTRUCTION("41F8834F", usdot(v1.s4(), v2.b16(), v3.b4(2)));
   3917   TEST_INSTRUCTION("41F8A34F", usdot(v1.s4(), v2.b16(), v3.b4(3)));
   3918   TEST_INSTRUCTION("4144232E", ushl(v1.b8(), v2.b8(), v3.b8()));
   3919   TEST_INSTRUCTION("4144632E", ushl(v1.h4(), v2.h4(), v3.h4()));
   3920   TEST_INSTRUCTION("4144A32E", ushl(v1.s2(), v2.s2(), v3.s2()));
   3921   TEST_INSTRUCTION("4144E37E", ushl(d1, d2, d3));
   3922   TEST_INSTRUCTION("4144236E", ushl(v1.b16(), v2.b16(), v3.b16()));
   3923   TEST_INSTRUCTION("4144636E", ushl(v1.h8(), v2.h8(), v3.h8()));
   3924   TEST_INSTRUCTION("4144A36E", ushl(v1.s4(), v2.s4(), v3.s4()));
   3925   TEST_INSTRUCTION("4144E36E", ushl(v1.d2(), v2.d2(), v3.d2()));
   3926   TEST_INSTRUCTION("41A40F2F", ushll(v1.h8(), v2.b8(), 7));
   3927   TEST_INSTRUCTION("41A41F2F", ushll(v1.s4(), v2.h4(), 15));
   3928   TEST_INSTRUCTION("41A43F2F", ushll(v1.d2(), v2.s2(), 31));
   3929   TEST_INSTRUCTION("41A40F6F", ushll2(v1.h8(), v2.b16(), 7));
   3930   TEST_INSTRUCTION("41A41F6F", ushll2(v1.s4(), v2.h8(), 15));
   3931   TEST_INSTRUCTION("41A43F6F", ushll2(v1.s2(), v2.s4(), 31));
   3932   TEST_INSTRUCTION("4104092F", ushr(v1.b8(), v2.b8(), 7));
   3933   TEST_INSTRUCTION("4104112F", ushr(v1.h4(), v2.h4(), 15));
   3934   TEST_INSTRUCTION("4104212F", ushr(v1.s2(), v2.s2(), 31));
   3935   TEST_INSTRUCTION("4104417F", ushr(d1, d2, 63));
   3936   TEST_INSTRUCTION("4104096F", ushr(v1.b16(), v2.b16(), 7));
   3937   TEST_INSTRUCTION("4104116F", ushr(v1.h8(), v2.h8(), 15));
   3938   TEST_INSTRUCTION("4104216F", ushr(v1.s4(), v2.s4(), 31));
   3939   TEST_INSTRUCTION("4104416F", ushr(v1.d2(), v2.d2(), 63));
   3940   TEST_INSTRUCTION("41AC834E", usmmla(v1.s4(), v2.b16(), v3.b16()));
   3941   TEST_INSTRUCTION("4138207E", usqadd(b1, b2));
   3942   TEST_INSTRUCTION("4138607E", usqadd(h1, h2));
   3943   TEST_INSTRUCTION("4138A07E", usqadd(s1, s2));
   3944   TEST_INSTRUCTION("4138E07E", usqadd(d1, d2));
   3945   TEST_INSTRUCTION("4138202E", usqadd(v1.b8(), v2.b8()));
   3946   TEST_INSTRUCTION("4138602E", usqadd(v1.h4(), v2.h4()));
   3947   TEST_INSTRUCTION("4138A02E", usqadd(v1.s2(), v2.s2()));
   3948   TEST_INSTRUCTION("4138206E", usqadd(v1.b16(), v2.b16()));
   3949   TEST_INSTRUCTION("4138606E", usqadd(v1.h8(), v2.h8()));
   3950   TEST_INSTRUCTION("4138A06E", usqadd(v1.s4(), v2.s4()));
   3951   TEST_INSTRUCTION("4138E06E", usqadd(v1.d2(), v2.d2()));
   3952   TEST_INSTRUCTION("4114092F", usra(v1.b8(), v2.b8(), 7));
   3953   TEST_INSTRUCTION("4114112F", usra(v1.h4(), v2.h4(), 15));
   3954   TEST_INSTRUCTION("4114212F", usra(v1.s2(), v2.s2(), 31));
   3955   TEST_INSTRUCTION("4114417F", usra(d1, d2, 63));
   3956   TEST_INSTRUCTION("4114096F", usra(v1.b16(), v2.b16(), 7));
   3957   TEST_INSTRUCTION("4114116F", usra(v1.h8(), v2.h8(), 15));
   3958   TEST_INSTRUCTION("4114216F", usra(v1.s4(), v2.s4(), 31));
   3959   TEST_INSTRUCTION("4114416F", usra(v1.d2(), v2.d2(), 63));
   3960   TEST_INSTRUCTION("4120232E", usubl(v1.h8(), v2.b8(), v3.b8()));
   3961   TEST_INSTRUCTION("4120632E", usubl(v1.s4(), v2.h4(), v3.h4()));
   3962   TEST_INSTRUCTION("4120A32E", usubl(v1.d2(), v2.s2(), v3.s2()));
   3963   TEST_INSTRUCTION("4120236E", usubl2(v1.h8(), v2.b16(), v3.b16()));
   3964   TEST_INSTRUCTION("4120636E", usubl2(v1.s4(), v2.h8(), v3.h8()));
   3965   TEST_INSTRUCTION("4120A36E", usubl2(v1.d2(), v2.s4(), v3.s4()));
   3966   TEST_INSTRUCTION("4130232E", usubw(v1.h8(), v2.h8(), v3.b8()));
   3967   TEST_INSTRUCTION("4130632E", usubw(v1.s4(), v2.s4(), v3.h4()));
   3968   TEST_INSTRUCTION("4130A32E", usubw(v1.d2(), v2.d2(), v3.s2()));
   3969   TEST_INSTRUCTION("4130236E", usubw2(v1.h8(), v2.h8(), v3.b16()));
   3970   TEST_INSTRUCTION("4130636E", usubw2(v1.s4(), v2.s4(), v3.h8()));
   3971   TEST_INSTRUCTION("4130A36E", usubw2(v1.d2(), v2.d2(), v3.s4()));
   3972   TEST_INSTRUCTION("41A4082F", uxtl(v1.h8(), v2.b8()));
   3973   TEST_INSTRUCTION("41A4102F", uxtl(v1.s4(), v2.h4()));
   3974   TEST_INSTRUCTION("41A4202F", uxtl(v1.d2(), v2.s2()));
   3975   TEST_INSTRUCTION("41A4086F", uxtl2(v1.h8(), v2.b16()));
   3976   TEST_INSTRUCTION("41A4106F", uxtl2(v1.s4(), v2.h8()));
   3977   TEST_INSTRUCTION("41A4206F", uxtl2(v1.d2(), v2.s4()));
   3978   TEST_INSTRUCTION("4118030E", uzp1(v1.b8(), v2.b8(), v3.b8()));
   3979   TEST_INSTRUCTION("4118430E", uzp1(v1.h4(), v2.h4(), v3.h4()));
   3980   TEST_INSTRUCTION("4118830E", uzp1(v1.s2(), v2.s2(), v3.s2()));
   3981   TEST_INSTRUCTION("4118034E", uzp1(v1.b16(), v2.b16(), v3.b16()));
   3982   TEST_INSTRUCTION("4118434E", uzp1(v1.h8(), v2.h8(), v3.h8()));
   3983   TEST_INSTRUCTION("4118834E", uzp1(v1.s4(), v2.s4(), v3.s4()));
   3984   TEST_INSTRUCTION("4118C34E", uzp1(v1.d2(), v2.d2(), v3.d2()));
   3985   TEST_INSTRUCTION("4158030E", uzp2(v1.b8(), v2.b8(), v3.b8()));
   3986   TEST_INSTRUCTION("4158430E", uzp2(v1.h4(), v2.h4(), v3.h4()));
   3987   TEST_INSTRUCTION("4158830E", uzp2(v1.s2(), v2.s2(), v3.s2()));
   3988   TEST_INSTRUCTION("4158034E", uzp2(v1.b16(), v2.b16(), v3.b16()));
   3989   TEST_INSTRUCTION("4158434E", uzp2(v1.h8(), v2.h8(), v3.h8()));
   3990   TEST_INSTRUCTION("4158834E", uzp2(v1.s4(), v2.s4(), v3.s4()));
   3991   TEST_INSTRUCTION("4158C34E", uzp2(v1.d2(), v2.d2(), v3.d2()));
   3992   TEST_INSTRUCTION("4128210E", xtn(v1.b8(), v2.h8()));
   3993   TEST_INSTRUCTION("4128610E", xtn(v1.h4(), v2.s4()));
   3994   TEST_INSTRUCTION("4128A10E", xtn(v1.s2(), v2.d2()));
   3995   TEST_INSTRUCTION("4128214E", xtn2(v1.b16(), v2.h8()));
   3996   TEST_INSTRUCTION("4128614E", xtn2(v1.h8(), v2.s4()));
   3997   TEST_INSTRUCTION("4128A14E", xtn2(v1.s4(), v2.d2()));
   3998   TEST_INSTRUCTION("4138030E", zip1(v1.b8(), v2.b8(), v3.b8()));
   3999   TEST_INSTRUCTION("4138430E", zip1(v1.h4(), v2.h4(), v3.h4()));
   4000   TEST_INSTRUCTION("4138830E", zip1(v1.s2(), v2.s2(), v3.s2()));
   4001   TEST_INSTRUCTION("4138034E", zip1(v1.b16(), v2.b16(), v3.b16()));
   4002   TEST_INSTRUCTION("4138434E", zip1(v1.h8(), v2.h8(), v3.h8()));
   4003   TEST_INSTRUCTION("4138834E", zip1(v1.s4(), v2.s4(), v3.s4()));
   4004   TEST_INSTRUCTION("4138C34E", zip1(v1.d2(), v2.d2(), v3.d2()));
   4005   TEST_INSTRUCTION("4178030E", zip2(v1.b8(), v2.b8(), v3.b8()));
   4006   TEST_INSTRUCTION("4178430E", zip2(v1.h4(), v2.h4(), v3.h4()));
   4007   TEST_INSTRUCTION("4178830E", zip2(v1.s2(), v2.s2(), v3.s2()));
   4008   TEST_INSTRUCTION("4178034E", zip2(v1.b16(), v2.b16(), v3.b16()));
   4009   TEST_INSTRUCTION("4178434E", zip2(v1.h8(), v2.h8(), v3.h8()));
   4010   TEST_INSTRUCTION("4178834E", zip2(v1.s4(), v2.s4(), v3.s4()));
   4011   TEST_INSTRUCTION("4178C34E", zip2(v1.d2(), v2.d2(), v3.d2()));
   4012 }
   4013 
   4014 static void ASMJIT_NOINLINE test_aarch64_assembler_extra(AssemblerTester<a64::Assembler>& tester) noexcept {
   4015   using namespace a64;
   4016 
   4017   // AsmJit additions - AArch64 assembler accepts variety of immediates in
   4018   // MOVI instruction that it encodes by changing the size of its operands.
   4019   TEST_INSTRUCTION("C1E7074F", movi(v1.b16(), 0xFE));
   4020   TEST_INSTRUCTION("C1E7074F", movi(v1.h8(), 0xFEFE));
   4021   TEST_INSTRUCTION("C1E7074F", movi(v1.s4(), 0xFEFEFEFE));
   4022   TEST_INSTRUCTION("C1E7074F", movi(v1.d2(), 0xFEFEFEFEFEFEFEFE));
   4023   TEST_INSTRUCTION("C1A7074F", movi(v1.h8(), 0xFE, lsl(8)));
   4024   TEST_INSTRUCTION("C1A7074F", movi(v1.h8(), 0xFE00));
   4025   TEST_INSTRUCTION("C1A7074F", movi(v1.s4(), 0xFE00FE00));
   4026   TEST_INSTRUCTION("C1A7074F", movi(v1.d2(), 0xFE00FE00FE00FE00));
   4027   TEST_INSTRUCTION("C147074F", movi(v1.s4(), 0xFE, lsl(16)));
   4028   TEST_INSTRUCTION("C147074F", movi(v1.s4(), 0x00FE0000));
   4029   TEST_INSTRUCTION("C147074F", movi(v1.d2(), 0x00FE000000FE0000));
   4030   TEST_INSTRUCTION("C167074F", movi(v1.s4(), 0xFE, lsl(24)));
   4031   TEST_INSTRUCTION("C167074F", movi(v1.s4(), 0xFE000000));
   4032   TEST_INSTRUCTION("C167074F", movi(v1.d2(), 0xFE000000FE000000));
   4033 }
   4034 
   4035 bool test_aarch64_assembler(const TestSettings& settings) noexcept {
   4036   using namespace a64;
   4037 
   4038   AssemblerTester<Assembler> tester(Arch::kAArch64, settings);
   4039   tester.print_header("AArch64");
   4040 
   4041   test_aarch64_assembler_base(tester);
   4042   test_aarch64_assembler_rel(tester);
   4043   test_aarch64_assembler_simd(tester);
   4044   test_aarch64_assembler_extra(tester);
   4045 
   4046   tester.print_summary();
   4047   return tester.did_pass();
   4048 }
   4049 
   4050 #undef TEST_INSTRUCTION
   4051 
   4052 #endif // !ASMJIT_NO_AARCH64