Files
asmjit/asmjit-testing/tests/asmjit_test_assembler_a32.cpp
2025-11-29 09:13:58 +01:00

2882 lines
159 KiB
C++

// This file is part of AsmJit project <https://asmjit.com>
//
// See asmjit.h or LICENSE.md for license and copyright information
// SPDX-License-Identifier: Zlib
#include <asmjit/core.h>
#if !defined(ASMJIT_NO_AARCH32)
#include <asmjit/a32.h>
#include <asmjit-testing/commons/cmdline.h>
#include <asmjit-testing/tests/asmjit_test_assembler.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace asmjit;
#define TEST_INSTRUCTION(OPCODE, ...) \
tester.test_valid_instruction(#__VA_ARGS__, OPCODE, tester.assembler.__VA_ARGS__)
static void ASMJIT_NOINLINE test_aarch32_assembler_base(AssemblerTester<a32::Assembler>& tester) noexcept {
using namespace a32;
TEST_INSTRUCTION("1314A2E0", adc(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("3314A2E0", adc(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("5314A2E0", adc(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("7314A2E0", adc(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("0314A2E0", adc(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("2314A2E0", adc(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("4314A2E0", adc(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("6314A2E0", adc(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("0810A2E2", adc(r1, r2, 8));
TEST_INSTRUCTION("FF10A2E2", adc(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1CA2E2", adc(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF14A2E2", adc(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF12A2E2", adc(r1, r2, 0xF000000F));
TEST_INSTRUCTION("1314B2E0", adcs(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("3314B2E0", adcs(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("5314B2E0", adcs(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("7314B2E0", adcs(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("0314B2E0", adcs(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("2314B2E0", adcs(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("4314B2E0", adcs(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("6314B2E0", adcs(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF10B2E2", adcs(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1CB2E2", adcs(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF14B2E2", adcs(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF12B2E2", adcs(r1, r2, 0xF000000F));
TEST_INSTRUCTION("131482E0", add(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("331482E0", add(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("531482E0", add(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("731482E0", add(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("031482E0", add(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("231482E0", add(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("431482E0", add(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("631482E0", add(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF1082E2", add(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1C82E2", add(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF1482E2", add(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF1282E2", add(r1, r2, 0xF000000F));
TEST_INSTRUCTION("131492E0", adds(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("331492E0", adds(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("531492E0", adds(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("731492E0", adds(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("031492E0", adds(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("231492E0", adds(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("431492E0", adds(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("631492E0", adds(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF1092E2", adds(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1C92E2", adds(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF1492E2", adds(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF1292E2", adds(r1, r2, 0xF000000F));
TEST_INSTRUCTION("131402E0", and_(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("331402E0", and_(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("531402E0", and_(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("731402E0", and_(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("031402E0", and_(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("231402E0", and_(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("431402E0", and_(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("631402E0", and_(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF1002E2", and_(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1C02E2", and_(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF1402E2", and_(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF1202E2", and_(r1, r2, 0xF000000F));
TEST_INSTRUCTION("131412E0", ands(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("331412E0", ands(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("531412E0", ands(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("731412E0", ands(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("031412E0", ands(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("231412E0", ands(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("431412E0", ands(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("631412E0", ands(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF1012E2", ands(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1C12E2", ands(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF1412E2", ands(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF1212E2", ands(r1, r2, 0xF000000F));
TEST_INSTRUCTION("5213A0E1", asr(r1, r2, r3));
TEST_INSTRUCTION("C211A0E1", asr(r1, r2, 3));
TEST_INSTRUCTION("5213B0E1", asrs(r1, r2, r3));
TEST_INSTRUCTION("C211B0E1", asrs(r1, r2, 3));
TEST_INSTRUCTION("9F11C7E7", bfc(r1, 3, 5));
TEST_INSTRUCTION("9211C7E7", bfi(r1, r2, 3, 5));
TEST_INSTRUCTION("1314C2E1", bic(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("3314C2E1", bic(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("5314C2E1", bic(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("7314C2E1", bic(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("0314C2E1", bic(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("2314C2E1", bic(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("4314C2E1", bic(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("6314C2E1", bic(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF10C2E3", bic(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1CC2E3", bic(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF14C2E3", bic(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF12C2E3", bic(r1, r2, 0xF000000F));
TEST_INSTRUCTION("1314D2E1", bics(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("3314D2E1", bics(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("5314D2E1", bics(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("7314D2E1", bics(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("0314D2E1", bics(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("2314D2E1", bics(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("4314D2E1", bics(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("6314D2E1", bics(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF10D2E3", bics(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1CD2E3", bics(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF14D2E3", bics(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF12D2E3", bics(r1, r2, 0xF000000F));
TEST_INSTRUCTION("710020E1", bkpt(1));
TEST_INSTRUCTION("31FF2FE1", blx(r1));
TEST_INSTRUCTION("11FF2FE1", bx(r1));
TEST_INSTRUCTION("21FF2FE1", bxj(r1));
TEST_INSTRUCTION("1FF07FF5", clrex());
TEST_INSTRUCTION("121F6FE1", clz(r1, r2));
TEST_INSTRUCTION("120371E1", cmn(r1, r2, lsl(r3)));
TEST_INSTRUCTION("320371E1", cmn(r1, r2, lsr(r3)));
TEST_INSTRUCTION("520371E1", cmn(r1, r2, asr(r3)));
TEST_INSTRUCTION("720371E1", cmn(r1, r2, ror(r3)));
TEST_INSTRUCTION("020471E1", cmn(r1, r2, lsl(8)));
TEST_INSTRUCTION("220471E1", cmn(r1, r2, lsr(8)));
TEST_INSTRUCTION("420471E1", cmn(r1, r2, asr(8)));
TEST_INSTRUCTION("620471E1", cmn(r1, r2, ror(8)));
TEST_INSTRUCTION("FF0071E3", cmn(r1, 0xFF));
TEST_INSTRUCTION("FF0C71E3", cmn(r1, 0xFF00));
TEST_INSTRUCTION("FF0471E3", cmn(r1, 0xFF000000));
TEST_INSTRUCTION("FF0271E3", cmn(r1, 0xF000000F));
TEST_INSTRUCTION("120351E1", cmp(r1, r2, lsl(r3)));
TEST_INSTRUCTION("320351E1", cmp(r1, r2, lsr(r3)));
TEST_INSTRUCTION("520351E1", cmp(r1, r2, asr(r3)));
TEST_INSTRUCTION("720351E1", cmp(r1, r2, ror(r3)));
TEST_INSTRUCTION("020451E1", cmp(r1, r2, lsl(8)));
TEST_INSTRUCTION("220451E1", cmp(r1, r2, lsr(8)));
TEST_INSTRUCTION("420451E1", cmp(r1, r2, asr(8)));
TEST_INSTRUCTION("620451E1", cmp(r1, r2, ror(8)));
TEST_INSTRUCTION("FF0051E3", cmp(r1, 0xFF));
TEST_INSTRUCTION("FF0C51E3", cmp(r1, 0xFF00));
TEST_INSTRUCTION("FF0451E3", cmp(r1, 0xFF000000));
TEST_INSTRUCTION("FF0251E3", cmp(r1, 0xF000000F));
TEST_INSTRUCTION("010002F1", cps(1));
TEST_INSTRUCTION("431002E1", crc32b(r1, r2, r3));
TEST_INSTRUCTION("431202E1", crc32cb(r1, r2, r3));
TEST_INSTRUCTION("431222E1", crc32ch(r1, r2, r3));
TEST_INSTRUCTION("431242E1", crc32cw(r1, r2, r3));
TEST_INSTRUCTION("431022E1", crc32h(r1, r2, r3));
TEST_INSTRUCTION("431042E1", crc32w(r1, r2, r3));
TEST_INSTRUCTION("F1F020E3", dbg(1));
TEST_INSTRUCTION("131422E0", eor(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("331422E0", eor(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("531422E0", eor(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("731422E0", eor(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("031422E0", eor(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("231422E0", eor(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("431422E0", eor(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("631422E0", eor(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF1022E2", eor(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1C22E2", eor(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF1422E2", eor(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF1222E2", eor(r1, r2, 0xF000000F));
TEST_INSTRUCTION("131432E0", eors(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("331432E0", eors(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("531432E0", eors(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("731432E0", eors(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("031432E0", eors(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("231432E0", eors(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("431432E0", eors(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("631432E0", eors(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF1032E2", eors(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1C32E2", eors(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF1432E2", eors(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF1232E2", eors(r1, r2, 0xF000000F));
TEST_INSTRUCTION("6E0060E1", eret());
TEST_INSTRUCTION("710000E1", hlt(1));
TEST_INSTRUCTION("710040E1", hvc(1));
TEST_INSTRUCTION("0F0014E8", ldmda(ptr(r4), GpList(0xF)));
TEST_INSTRUCTION("0F0014E8", ldmda(ptr(r4), GpList{r0, r1, r2, r3}));
TEST_INSTRUCTION("001C10E8", ldmda(ptr(r0), GpList{r10, r11, r12}));
TEST_INSTRUCTION("031092E7", ldr(r1, ptr(r2, r3)));
TEST_INSTRUCTION("831092E7", ldr(r1, ptr(r2, r3, lsl(1))));
TEST_INSTRUCTION("031192E7", ldr(r1, ptr(r2, r3, lsl(2))));
TEST_INSTRUCTION("831192E7", ldr(r1, ptr(r2, r3, lsl(3))));
TEST_INSTRUCTION("031292E7", ldr(r1, ptr(r2, r3, lsl(4))));
TEST_INSTRUCTION("0310B2E7", ldr(r1, ptr_pre(r2, r3)));
TEST_INSTRUCTION("031092E6", ldr(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("041092E5", ldr(r1, ptr(r2, 4)));
TEST_INSTRUCTION("0410B2E5", ldr(r1, ptr_pre(r2, 4)));
TEST_INSTRUCTION("041092E4", ldr(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("0C301FE5", ldr(r3, ptr(pc, -12)));
TEST_INSTRUCTION("0310D2E7", ldrb(r1, ptr(r2, r3)));
TEST_INSTRUCTION("0310F2E7", ldrb(r1, ptr_pre(r2, r3)));
TEST_INSTRUCTION("0310D2E6", ldrb(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("0410D2E5", ldrb(r1, ptr(r2, 4)));
TEST_INSTRUCTION("0410F2E5", ldrb(r1, ptr_pre(r2, 4)));
TEST_INSTRUCTION("0410D2E4", ldrb(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("0C305FE5", ldrb(r3, ptr(pc, -12)));
TEST_INSTRUCTION("0310F2E6", ldrbt(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("0410F2E4", ldrbt(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("D30082E1", ldrd(r0, r1, ptr(r2, r3)));
TEST_INSTRUCTION("D300A2E1", ldrd(r0, r1, ptr_pre(r2, r3)));
TEST_INSTRUCTION("D30082E0", ldrd(r0, r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("D400C2E1", ldrd(r0, r1, ptr(r2, 4)));
TEST_INSTRUCTION("D400E2E1", ldrd(r0, r1, ptr_pre(r2, 4)));
TEST_INSTRUCTION("DC204FE1", ldrd(r2, r3, ptr(pc, -12)));
TEST_INSTRUCTION("B31092E1", ldrh(r1, ptr(r2, r3)));
TEST_INSTRUCTION("B310B2E1", ldrh(r1, ptr_pre(r2, r3)));
TEST_INSTRUCTION("B31092E0", ldrh(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("B410D2E1", ldrh(r1, ptr(r2, 4)));
TEST_INSTRUCTION("B410F2E1", ldrh(r1, ptr_pre(r2, 4)));
TEST_INSTRUCTION("B410D2E0", ldrh(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("BC505FE1", ldrh(r5, ptr(pc, -12)));
TEST_INSTRUCTION("B310B2E0", ldrht(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("B410F2E0", ldrht(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("D31092E1", ldrsb(r1, ptr(r2, r3)));
TEST_INSTRUCTION("D310B2E1", ldrsb(r1, ptr_pre(r2, r3)));
TEST_INSTRUCTION("D31092E0", ldrsb(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("D410D2E1", ldrsb(r1, ptr(r2, 4)));
TEST_INSTRUCTION("D410F2E1", ldrsb(r1, ptr_pre(r2, 4)));
TEST_INSTRUCTION("D410D2E0", ldrsb(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("DC705FE1", ldrsb(r7, ptr(pc, -12)));
TEST_INSTRUCTION("D310B2E0", ldrsbt(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("D410F2E0", ldrsbt(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("F31092E1", ldrsh(r1, ptr(r2, r3)));
TEST_INSTRUCTION("F310B2E1", ldrsh(r1, ptr_pre(r2, r3)));
TEST_INSTRUCTION("F31092E0", ldrsh(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("F410D2E1", ldrsh(r1, ptr(r2, 4)));
TEST_INSTRUCTION("F410F2E1", ldrsh(r1, ptr_pre(r2, 4)));
TEST_INSTRUCTION("F410D2E0", ldrsh(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("FC405FE1", ldrsh(r4, ptr(pc, -12)));
TEST_INSTRUCTION("F410F2E0", ldrsht(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("F310B2E0", ldrsht(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("0310B2E6", ldrt(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("0410B2E4", ldrt(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("8211A0E1", lsl(r1, r2, 3));
TEST_INSTRUCTION("1213A0E1", lsl(r1, r2, r3));
TEST_INSTRUCTION("8211B0E1", lsls(r1, r2, 3));
TEST_INSTRUCTION("1213B0E1", lsls(r1, r2, r3));
TEST_INSTRUCTION("A211A0E1", lsr(r1, r2, 3));
TEST_INSTRUCTION("3213A0E1", lsr(r1, r2, r3));
TEST_INSTRUCTION("A211B0E1", lsrs(r1, r2, 3));
TEST_INSTRUCTION("3213B0E1", lsrs(r1, r2, r3));
TEST_INSTRUCTION("924321E0", mla(r1, r2, r3, r4));
TEST_INSTRUCTION("924331E0", mlas(r1, r2, r3, r4));
TEST_INSTRUCTION("924361E0", mls(r1, r2, r3, r4));
TEST_INSTRUCTION("1213A0E1", mov(r1, r2, lsl(r3)));
TEST_INSTRUCTION("3213A0E1", mov(r1, r2, lsr(r3)));
TEST_INSTRUCTION("5213A0E1", mov(r1, r2, asr(r3)));
TEST_INSTRUCTION("7213A0E1", mov(r1, r2, ror(r3)));
TEST_INSTRUCTION("0214A0E1", mov(r1, r2, lsl(8)));
TEST_INSTRUCTION("2214A0E1", mov(r1, r2, lsr(8)));
TEST_INSTRUCTION("4214A0E1", mov(r1, r2, asr(8)));
TEST_INSTRUCTION("6214A0E1", mov(r1, r2, ror(8)));
TEST_INSTRUCTION("FF10A0E3", mov(r1, 0xFF));
TEST_INSTRUCTION("FF1CA0E3", mov(r1, 0xFF00));
TEST_INSTRUCTION("FF14A0E3", mov(r1, 0xFF000000));
TEST_INSTRUCTION("FF12A0E3", mov(r1, 0xF000000F));
TEST_INSTRUCTION("1213B0E1", movs(r1, r2, lsl(r3)));
TEST_INSTRUCTION("3213B0E1", movs(r1, r2, lsr(r3)));
TEST_INSTRUCTION("5213B0E1", movs(r1, r2, asr(r3)));
TEST_INSTRUCTION("7213B0E1", movs(r1, r2, ror(r3)));
TEST_INSTRUCTION("0214B0E1", movs(r1, r2, lsl(8)));
TEST_INSTRUCTION("2214B0E1", movs(r1, r2, lsr(8)));
TEST_INSTRUCTION("4214B0E1", movs(r1, r2, asr(8)));
TEST_INSTRUCTION("6214B0E1", movs(r1, r2, ror(8)));
TEST_INSTRUCTION("FF10B0E3", movs(r1, 0xFF));
TEST_INSTRUCTION("FF1CB0E3", movs(r1, 0xFF00));
TEST_INSTRUCTION("FF14B0E3", movs(r1, 0xFF000000));
TEST_INSTRUCTION("FF12B0E3", movs(r1, 0xF000000F));
TEST_INSTRUCTION("011040E3", movt(r1, 1));
TEST_INSTRUCTION("011000E3", movw(r1, 1));
TEST_INSTRUCTION("920301E0", mul(r1, r2, r3));
TEST_INSTRUCTION("920311E0", muls(r1, r2, r3));
TEST_INSTRUCTION("1213E0E1", mvn(r1, r2, lsl(r3)));
TEST_INSTRUCTION("3213E0E1", mvn(r1, r2, lsr(r3)));
TEST_INSTRUCTION("5213E0E1", mvn(r1, r2, asr(r3)));
TEST_INSTRUCTION("7213E0E1", mvn(r1, r2, ror(r3)));
TEST_INSTRUCTION("0214E0E1", mvn(r1, r2, lsl(8)));
TEST_INSTRUCTION("2214E0E1", mvn(r1, r2, lsr(8)));
TEST_INSTRUCTION("4214E0E1", mvn(r1, r2, asr(8)));
TEST_INSTRUCTION("6214E0E1", mvn(r1, r2, ror(8)));
TEST_INSTRUCTION("FF10E0E3", mvn(r1, 0xFF));
TEST_INSTRUCTION("FF1CE0E3", mvn(r1, 0xFF00));
TEST_INSTRUCTION("FF14E0E3", mvn(r1, 0xFF000000));
TEST_INSTRUCTION("FF12E0E3", mvn(r1, 0xF000000F));
TEST_INSTRUCTION("1213F0E1", mvns(r1, r2, lsl(r3)));
TEST_INSTRUCTION("3213F0E1", mvns(r1, r2, lsr(r3)));
TEST_INSTRUCTION("5213F0E1", mvns(r1, r2, asr(r3)));
TEST_INSTRUCTION("7213F0E1", mvns(r1, r2, ror(r3)));
TEST_INSTRUCTION("0214F0E1", mvns(r1, r2, lsl(8)));
TEST_INSTRUCTION("2214F0E1", mvns(r1, r2, lsr(8)));
TEST_INSTRUCTION("4214F0E1", mvns(r1, r2, asr(8)));
TEST_INSTRUCTION("6214F0E1", mvns(r1, r2, ror(8)));
TEST_INSTRUCTION("FF10F0E3", mvns(r1, 0xFF));
TEST_INSTRUCTION("FF1CF0E3", mvns(r1, 0xFF00));
TEST_INSTRUCTION("FF14F0E3", mvns(r1, 0xFF000000));
TEST_INSTRUCTION("FF12F0E3", mvns(r1, 0xF000000F));
TEST_INSTRUCTION("00F020E3", nop());
TEST_INSTRUCTION("131482E1", orr(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("331482E1", orr(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("531482E1", orr(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("731482E1", orr(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("031482E1", orr(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("231482E1", orr(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("431482E1", orr(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("631482E1", orr(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF1082E3", orr(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1C82E3", orr(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF1482E3", orr(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF1282E3", orr(r1, r2, 0xF000000F));
TEST_INSTRUCTION("131492E1", orrs(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("331492E1", orrs(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("531492E1", orrs(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("731492E1", orrs(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("031492E1", orrs(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("231492E1", orrs(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("431492E1", orrs(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("631492E1", orrs(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF1092E3", orrs(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1C92E3", orrs(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF1492E3", orrs(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF1292E3", orrs(r1, r2, 0xF000000F));
TEST_INSTRUCTION("131482E6", pkhbt(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("531482E6", pkhtb(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("02F0D1F7", pld(ptr(r1, r2)));
TEST_INSTRUCTION("04F0D1F5", pld(ptr(r1, 4)));
TEST_INSTRUCTION("02F091F7", pldw(ptr(r1, r2)));
TEST_INSTRUCTION("04F091F5", pldw(ptr(r1, 4)));
TEST_INSTRUCTION("02F0D1F6", pli(ptr(r1, r2)));
TEST_INSTRUCTION("04F0D1F4", pli(ptr(r1, 4)));
TEST_INSTRUCTION("04109DE4", pop(r1));
TEST_INSTRUCTION("3A02BDE8", pop(GpList{r1, r3, r4, r5, r9}));
TEST_INSTRUCTION("04102DE5", push(r1));
TEST_INSTRUCTION("7A032DE9", push(GpList{r1, r3, r4, r5, r6, r8, r9}));
TEST_INSTRUCTION("521003E1", qadd(r1, r2, r3));
TEST_INSTRUCTION("131F22E6", qadd16(r1, r2, r3));
TEST_INSTRUCTION("931F22E6", qadd8(r1, r2, r3));
TEST_INSTRUCTION("331F22E6", qasx(r1, r2, r3));
TEST_INSTRUCTION("521043E1", qdadd(r1, r2, r3));
TEST_INSTRUCTION("521063E1", qdsub(r1, r2, r3));
TEST_INSTRUCTION("531F22E6", qsax(r1, r2, r3));
TEST_INSTRUCTION("521023E1", qsub(r1, r2, r3));
TEST_INSTRUCTION("731F22E6", qsub16(r1, r2, r3));
TEST_INSTRUCTION("F31F22E6", qsub8(r1, r2, r3));
TEST_INSTRUCTION("321FFFE6", rbit(r1, r2));
TEST_INSTRUCTION("321FBFE6", rev(r1, r2));
TEST_INSTRUCTION("B21FBFE6", rev16(r1, r2));
TEST_INSTRUCTION("B21FFFE6", revsh(r1, r2));
TEST_INSTRUCTION("000A11F8", rfeda(ptr(r1)));
TEST_INSTRUCTION("000A11F9", rfedb(ptr(r1)));
TEST_INSTRUCTION("000A91F8", rfeia(ptr(r1)));
TEST_INSTRUCTION("000A91F9", rfeib(ptr(r1)));
TEST_INSTRUCTION("E211A0E1", ror(r1, r2, 3));
TEST_INSTRUCTION("7213A0E1", ror(r1, r2, r3));
TEST_INSTRUCTION("E211B0E1", rors(r1, r2, 3));
TEST_INSTRUCTION("7213B0E1", rors(r1, r2, r3));
TEST_INSTRUCTION("6210A0E1", rrx(r1, r2));
TEST_INSTRUCTION("6210B0E1", rrxs(r1, r2));
TEST_INSTRUCTION("131462E0", rsb(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("331462E0", rsb(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("531462E0", rsb(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("731462E0", rsb(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("031462E0", rsb(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("231462E0", rsb(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("431462E0", rsb(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("631462E0", rsb(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF1062E2", rsb(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1C62E2", rsb(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF1462E2", rsb(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF1262E2", rsb(r1, r2, 0xF000000F));
TEST_INSTRUCTION("131472E0", rsbs(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("331472E0", rsbs(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("531472E0", rsbs(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("731472E0", rsbs(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("031472E0", rsbs(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("231472E0", rsbs(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("431472E0", rsbs(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("631472E0", rsbs(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF1072E2", rsbs(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1C72E2", rsbs(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF1472E2", rsbs(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF1272E2", rsbs(r1, r2, 0xF000000F));
TEST_INSTRUCTION("1314E2E0", rsc(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("3314E2E0", rsc(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("5314E2E0", rsc(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("7314E2E0", rsc(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("0314E2E0", rsc(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("2314E2E0", rsc(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("4314E2E0", rsc(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("6314E2E0", rsc(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF10E2E2", rsc(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1CE2E2", rsc(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF14E2E2", rsc(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF12E2E2", rsc(r1, r2, 0xF000000F));
TEST_INSTRUCTION("1314F2E0", rscs(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("3314F2E0", rscs(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("5314F2E0", rscs(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("7314F2E0", rscs(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("0314F2E0", rscs(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("2314F2E0", rscs(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("4314F2E0", rscs(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("6314F2E0", rscs(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF10F2E2", rscs(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1CF2E2", rscs(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF14F2E2", rscs(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF12F2E2", rscs(r1, r2, 0xF000000F));
TEST_INSTRUCTION("131F12E6", sadd16(r1, r2, r3));
TEST_INSTRUCTION("931F12E6", sadd8(r1, r2, r3));
TEST_INSTRUCTION("331F12E6", sasx(r1, r2, r3));
TEST_INSTRUCTION("1314C2E0", sbc(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("3314C2E0", sbc(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("5314C2E0", sbc(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("7314C2E0", sbc(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("0314C2E0", sbc(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("2314C2E0", sbc(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("4314C2E0", sbc(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("6314C2E0", sbc(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF10C2E2", sbc(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1CC2E2", sbc(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF14C2E2", sbc(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF12C2E2", sbc(r1, r2, 0xF000000F));
TEST_INSTRUCTION("1314D2E0", sbcs(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("3314D2E0", sbcs(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("5314D2E0", sbcs(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("7314D2E0", sbcs(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("0314D2E0", sbcs(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("2314D2E0", sbcs(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("4314D2E0", sbcs(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("6314D2E0", sbcs(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF10D2E2", sbcs(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1CD2E2", sbcs(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF14D2E2", sbcs(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF12D2E2", sbcs(r1, r2, 0xF000000F));
TEST_INSTRUCTION("D211A4E7", sbfx(r1, r2, 3, 5));
TEST_INSTRUCTION("12F311E7", sdiv(r1, r2, r3));
TEST_INSTRUCTION("B31F82E6", sel(r1, r2, r3));
TEST_INSTRUCTION("04F020E3", sev());
TEST_INSTRUCTION("05F020E3", sevl());
TEST_INSTRUCTION("131F32E6", shadd16(r1, r2, r3));
TEST_INSTRUCTION("931F32E6", shadd8(r1, r2, r3));
TEST_INSTRUCTION("331F32E6", shasx(r1, r2, r3));
TEST_INSTRUCTION("531F32E6", shsax(r1, r2, r3));
TEST_INSTRUCTION("731F32E6", shsub16(r1, r2, r3));
TEST_INSTRUCTION("F31F32E6", shsub8(r1, r2, r3));
TEST_INSTRUCTION("710060E1", smc(1));
TEST_INSTRUCTION("824301E1", smlabb(r1, r2, r3, r4));
TEST_INSTRUCTION("C24301E1", smlabt(r1, r2, r3, r4));
TEST_INSTRUCTION("124301E7", smlad(r1, r2, r3, r4));
TEST_INSTRUCTION("324301E7", smladx(r1, r2, r3, r4));
TEST_INSTRUCTION("9314E2E0", smlal(r1, r2, r3, r4));
TEST_INSTRUCTION("831442E1", smlalbb(r1, r2, r3, r4));
TEST_INSTRUCTION("C31442E1", smlalbt(r1, r2, r3, r4));
TEST_INSTRUCTION("131442E7", smlald(r1, r2, r3, r4));
TEST_INSTRUCTION("331442E7", smlaldx(r1, r2, r3, r4));
TEST_INSTRUCTION("9314F2E0", smlals(r1, r2, r3, r4));
TEST_INSTRUCTION("A31442E1", smlaltb(r1, r2, r3, r4));
TEST_INSTRUCTION("E31442E1", smlaltt(r1, r2, r3, r4));
TEST_INSTRUCTION("A24301E1", smlatb(r1, r2, r3, r4));
TEST_INSTRUCTION("E24301E1", smlatt(r1, r2, r3, r4));
TEST_INSTRUCTION("824321E1", smlawb(r1, r2, r3, r4));
TEST_INSTRUCTION("C24321E1", smlawt(r1, r2, r3, r4));
TEST_INSTRUCTION("524301E7", smlsd(r1, r2, r3, r4));
TEST_INSTRUCTION("724301E7", smlsdx(r1, r2, r3, r4));
TEST_INSTRUCTION("531442E7", smlsld(r1, r2, r3, r4));
TEST_INSTRUCTION("731442E7", smlsldx(r1, r2, r3, r4));
TEST_INSTRUCTION("124351E7", smmla(r1, r2, r3, r4));
TEST_INSTRUCTION("324351E7", smmlar(r1, r2, r3, r4));
TEST_INSTRUCTION("D24351E7", smmls(r1, r2, r3, r4));
TEST_INSTRUCTION("F24351E7", smmlsr(r1, r2, r3, r4));
TEST_INSTRUCTION("12F351E7", smmul(r1, r2, r3));
TEST_INSTRUCTION("32F351E7", smmulr(r1, r2, r3));
TEST_INSTRUCTION("12F301E7", smuad(r1, r2, r3));
TEST_INSTRUCTION("32F301E7", smuadx(r1, r2, r3));
TEST_INSTRUCTION("820361E1", smulbb(r1, r2, r3));
TEST_INSTRUCTION("C20361E1", smulbt(r1, r2, r3));
TEST_INSTRUCTION("9314C2E0", smull(r1, r2, r3, r4));
TEST_INSTRUCTION("9314D2E0", smulls(r1, r2, r3, r4));
TEST_INSTRUCTION("A20361E1", smultb(r1, r2, r3));
TEST_INSTRUCTION("E20361E1", smultt(r1, r2, r3));
TEST_INSTRUCTION("A20321E1", smulwb(r1, r2, r3));
TEST_INSTRUCTION("E20321E1", smulwt(r1, r2, r3));
TEST_INSTRUCTION("52F301E7", smusd(r1, r2, r3));
TEST_INSTRUCTION("72F301E7", smusdx(r1, r2, r3));
TEST_INSTRUCTION("1310A7E6", ssat(r1, 8, r3));
TEST_INSTRUCTION("1314A7E6", ssat(r1, 8, r3, lsl(8)));
TEST_INSTRUCTION("5314A7E6", ssat(r1, 8, r3, asr(8)));
TEST_INSTRUCTION("331FA7E6", ssat16(r1, 8, r3));
TEST_INSTRUCTION("531F12E6", ssax(r1, r2, r3));
TEST_INSTRUCTION("731F12E6", ssub16(r1, r2, r3));
TEST_INSTRUCTION("F31F12E6", ssub8(r1, r2, r3));
TEST_INSTRUCTION("031082E7", str(r1, ptr(r2, r3)));
TEST_INSTRUCTION("031182E7", str(r1, ptr(r2, r3, lsl(2))));
TEST_INSTRUCTION("0310A2E7", str(r1, ptr_pre(r2, r3)));
TEST_INSTRUCTION("031082E6", str(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("041082E5", str(r1, ptr(r2, 4)));
TEST_INSTRUCTION("0410A2E5", str(r1, ptr_pre(r2, 4)));
TEST_INSTRUCTION("041082E4", str(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("0C408FE5", str(r4, ptr(pc, 12)));
TEST_INSTRUCTION("0310C2E7", strb(r1, ptr(r2, r3)));
TEST_INSTRUCTION("0310E2E7", strb(r1, ptr_pre(r2, r3)));
TEST_INSTRUCTION("0310C2E6", strb(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("0410C2E5", strb(r1, ptr(r2, 4)));
TEST_INSTRUCTION("0410E2E5", strb(r1, ptr_pre(r2, 4)));
TEST_INSTRUCTION("0410C2E4", strb(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("30A0CFE5", strb(r10, ptr(pc, 48)));
TEST_INSTRUCTION("0310E2E6", strbt(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("0410E2E4", strbt(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("0490EFE4", strbt(r9, ptr(pc, 4)));
TEST_INSTRUCTION("F30082E1", strd(r0, r1, ptr(r2, r3)));
TEST_INSTRUCTION("F300A2E1", strd(r0, r1, ptr_pre(r2, r3)));
TEST_INSTRUCTION("F30082E0", strd(r0, r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("F400C2E1", strd(r0, r1, ptr(r2, 4)));
TEST_INSTRUCTION("F400E2E1", strd(r0, r1, ptr_pre(r2, 4)));
TEST_INSTRUCTION("F400C2E0", strd(r0, r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("F024CFE1", strd(r2, r3, ptr(pc, 64)));
TEST_INSTRUCTION("B31082E1", strh(r1, ptr(r2, r3)));
TEST_INSTRUCTION("B310A2E1", strh(r1, ptr_pre(r2, r3)));
TEST_INSTRUCTION("B31082E0", strh(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("B410C2E1", strh(r1, ptr(r2, 4)));
TEST_INSTRUCTION("B410E2E1", strh(r1, ptr_pre(r2, 4)));
TEST_INSTRUCTION("B410C2E0", strh(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("B0344FE1", strh(r3, ptr(pc, -64)));
TEST_INSTRUCTION("B310A2E0", strht(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("B410E2E0", strht(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("0310A2E6", strt(r1, ptr_post(r2, r3)));
TEST_INSTRUCTION("0410A2E4", strt(r1, ptr_post(r2, 4)));
TEST_INSTRUCTION("131442E0", sub(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("331442E0", sub(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("531442E0", sub(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("731442E0", sub(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("031442E0", sub(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("231442E0", sub(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("431442E0", sub(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("631442E0", sub(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF1042E2", sub(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1C42E2", sub(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF1442E2", sub(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF1242E2", sub(r1, r2, 0xF000000F));
TEST_INSTRUCTION("131452E0", subs(r1, r2, r3, lsl(r4)));
TEST_INSTRUCTION("331452E0", subs(r1, r2, r3, lsr(r4)));
TEST_INSTRUCTION("531452E0", subs(r1, r2, r3, asr(r4)));
TEST_INSTRUCTION("731452E0", subs(r1, r2, r3, ror(r4)));
TEST_INSTRUCTION("031452E0", subs(r1, r2, r3, lsl(8)));
TEST_INSTRUCTION("231452E0", subs(r1, r2, r3, lsr(8)));
TEST_INSTRUCTION("431452E0", subs(r1, r2, r3, asr(8)));
TEST_INSTRUCTION("631452E0", subs(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("FF1052E2", subs(r1, r2, 0xFF));
TEST_INSTRUCTION("FF1C52E2", subs(r1, r2, 0xFF00));
TEST_INSTRUCTION("FF1452E2", subs(r1, r2, 0xFF000000));
TEST_INSTRUCTION("FF1252E2", subs(r1, r2, 0xF000000F));
TEST_INSTRUCTION("010000EF", svc(1));
TEST_INSTRUCTION("7314A2E6", sxtab(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("731482E6", sxtab16(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("7314B2E6", sxtah(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("7214AFE6", sxtb(r1, r2, ror(8)));
TEST_INSTRUCTION("72148FE6", sxtb16(r1, r2, ror(8)));
TEST_INSTRUCTION("7214BFE6", sxth(r1, r2, ror(8)));
TEST_INSTRUCTION("120331E1", teq(r1, r2, lsl(r3)));
TEST_INSTRUCTION("320331E1", teq(r1, r2, lsr(r3)));
TEST_INSTRUCTION("520331E1", teq(r1, r2, asr(r3)));
TEST_INSTRUCTION("720331E1", teq(r1, r2, ror(r3)));
TEST_INSTRUCTION("020431E1", teq(r1, r2, lsl(8)));
TEST_INSTRUCTION("220431E1", teq(r1, r2, lsr(8)));
TEST_INSTRUCTION("420431E1", teq(r1, r2, asr(8)));
TEST_INSTRUCTION("620431E1", teq(r1, r2, ror(8)));
TEST_INSTRUCTION("FF0031E3", teq(r1, 0xFF));
TEST_INSTRUCTION("FF0C31E3", teq(r1, 0xFF00));
TEST_INSTRUCTION("FF0431E3", teq(r1, 0xFF000000));
TEST_INSTRUCTION("FF0231E3", teq(r1, 0xF000000F));
TEST_INSTRUCTION("120311E1", tst(r1, r2, lsl(r3)));
TEST_INSTRUCTION("320311E1", tst(r1, r2, lsr(r3)));
TEST_INSTRUCTION("520311E1", tst(r1, r2, asr(r3)));
TEST_INSTRUCTION("720311E1", tst(r1, r2, ror(r3)));
TEST_INSTRUCTION("020411E1", tst(r1, r2, lsl(8)));
TEST_INSTRUCTION("220411E1", tst(r1, r2, lsr(8)));
TEST_INSTRUCTION("420411E1", tst(r1, r2, asr(8)));
TEST_INSTRUCTION("620411E1", tst(r1, r2, ror(8)));
TEST_INSTRUCTION("FF0011E3", tst(r1, 0xFF));
TEST_INSTRUCTION("FF0C11E3", tst(r1, 0xFF00));
TEST_INSTRUCTION("FF0411E3", tst(r1, 0xFF000000));
TEST_INSTRUCTION("FF0211E3", tst(r1, 0xF000000F));
TEST_INSTRUCTION("131F52E6", uadd16(r1, r2, r3));
TEST_INSTRUCTION("931F52E6", uadd8(r1, r2, r3));
TEST_INSTRUCTION("331F52E6", uasx(r1, r2, r3));
TEST_INSTRUCTION("D211E4E7", ubfx(r1, r2, 3, 5));
TEST_INSTRUCTION("F100F0E7", udf(1));
TEST_INSTRUCTION("12F331E7", udiv(r1, r2, r3));
TEST_INSTRUCTION("131F72E6", uhadd16(r1, r2, r3));
TEST_INSTRUCTION("931F72E6", uhadd8(r1, r2, r3));
TEST_INSTRUCTION("331F72E6", uhasx(r1, r2, r3));
TEST_INSTRUCTION("531F72E6", uhsax(r1, r2, r3));
TEST_INSTRUCTION("731F72E6", uhsub16(r1, r2, r3));
TEST_INSTRUCTION("F31F72E6", uhsub8(r1, r2, r3));
TEST_INSTRUCTION("931442E0", umaal(r1, r2, r3, r4));
TEST_INSTRUCTION("9314A2E0", umlal(r1, r2, r3, r4));
TEST_INSTRUCTION("9314B2E0", umlals(r1, r2, r3, r4));
TEST_INSTRUCTION("931482E0", umull(r1, r2, r3, r4));
TEST_INSTRUCTION("931492E0", umulls(r1, r2, r3, r4));
TEST_INSTRUCTION("131F62E6", uqadd16(r1, r2, r3));
TEST_INSTRUCTION("931F62E6", uqadd8(r1, r2, r3));
TEST_INSTRUCTION("331F62E6", uqasx(r1, r2, r3));
TEST_INSTRUCTION("531F62E6", uqsax(r1, r2, r3));
TEST_INSTRUCTION("731F62E6", uqsub16(r1, r2, r3));
TEST_INSTRUCTION("F31F62E6", uqsub8(r1, r2, r3));
TEST_INSTRUCTION("12F381E7", usad8(r1, r2, r3));
TEST_INSTRUCTION("124381E7", usada8(r1, r2, r3, r4));
TEST_INSTRUCTION("1314E8E6", usat(r1, 8, r3, lsl(8)));
TEST_INSTRUCTION("5314E8E6", usat(r1, 8, r3, asr(8)));
TEST_INSTRUCTION("331FE8E6", usat16(r1, 8, r3));
TEST_INSTRUCTION("531F52E6", usax(r1, r2, r3));
TEST_INSTRUCTION("731F52E6", usub16(r1, r2, r3));
TEST_INSTRUCTION("F31F52E6", usub8(r1, r2, r3));
TEST_INSTRUCTION("7314E2E6", uxtab(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("7314C2E6", uxtab16(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("7314F2E6", uxtah(r1, r2, r3, ror(8)));
TEST_INSTRUCTION("7214EFE6", uxtb(r1, r2, ror(8)));
TEST_INSTRUCTION("7214CFE6", uxtb16(r1, r2, ror(8)));
TEST_INSTRUCTION("7214FFE6", uxth(r1, r2, ror(8)));
TEST_INSTRUCTION("02F020E3", wfe());
TEST_INSTRUCTION("03F020E3", wfi());
TEST_INSTRUCTION("01F020E3", yield());
}
static void ASMJIT_NOINLINE test_aarch32_assembler_vec(AssemblerTester<a32::Assembler>& tester) noexcept {
using namespace a32;
TEST_INSTRUCTION("4423B0F3", aesd_s8(q1, q2));
TEST_INSTRUCTION("4423B0F3", aesd_u8(q1, q2));
TEST_INSTRUCTION("0423B0F3", aese_s8(q1, q2));
TEST_INSTRUCTION("0423B0F3", aese_u8(q1, q2));
TEST_INSTRUCTION("C423B0F3", aesimc_s8(q1, q2));
TEST_INSTRUCTION("C423B0F3", aesimc_u8(q1, q2));
TEST_INSTRUCTION("8423B0F3", aesmc_s8(q1, q2));
TEST_INSTRUCTION("8423B0F3", aesmc_u8(q1, q2));
TEST_INSTRUCTION("462C04F2", sha1c_32(q1, q2, q3));
TEST_INSTRUCTION("C422B9F3", sha1h_32(q1, q2));
TEST_INSTRUCTION("462C24F2", sha1m_32(q1, q2, q3));
TEST_INSTRUCTION("462C14F2", sha1p_32(q1, q2, q3));
TEST_INSTRUCTION("462C34F2", sha1su0_32(q1, q2, q3));
TEST_INSTRUCTION("8423BAF3", sha1su1_32(q1, q2));
TEST_INSTRUCTION("462C04F3", sha256h_32(q1, q2, q3));
TEST_INSTRUCTION("462C14F3", sha256h2_32(q1, q2, q3));
TEST_INSTRUCTION("C423BAF3", sha256su0_32(q1, q2));
TEST_INSTRUCTION("462C24F3", sha256su1_32(q1, q2, q3));
TEST_INSTRUCTION("131712F2", vaba_s16(d1, d2, d3));
TEST_INSTRUCTION("131722F2", vaba_s32(d1, d2, d3));
TEST_INSTRUCTION("131702F2", vaba_s8(d1, d2, d3));
TEST_INSTRUCTION("131712F3", vaba_u16(d1, d2, d3));
TEST_INSTRUCTION("131722F3", vaba_u32(d1, d2, d3));
TEST_INSTRUCTION("131702F3", vaba_u8(d1, d2, d3));
TEST_INSTRUCTION("562714F2", vaba_s16(q1, q2, q3));
TEST_INSTRUCTION("562724F2", vaba_s32(q1, q2, q3));
TEST_INSTRUCTION("562704F2", vaba_s8(q1, q2, q3));
TEST_INSTRUCTION("562714F3", vaba_u16(q1, q2, q3));
TEST_INSTRUCTION("562724F3", vaba_u32(q1, q2, q3));
TEST_INSTRUCTION("562704F3", vaba_u8(q1, q2, q3));
TEST_INSTRUCTION("032592F2", vabal_s16(q1, d2, d3));
TEST_INSTRUCTION("0325A2F2", vabal_s32(q1, d2, d3));
TEST_INSTRUCTION("032582F2", vabal_s8(q1, d2, d3));
TEST_INSTRUCTION("032592F3", vabal_u16(q1, d2, d3));
TEST_INSTRUCTION("0325A2F3", vabal_u32(q1, d2, d3));
TEST_INSTRUCTION("032582F3", vabal_u8(q1, d2, d3));
TEST_INSTRUCTION("031D32F3", vabd_f16(d1, d2, d3));
TEST_INSTRUCTION("031D22F3", vabd_f32(d1, d2, d3));
TEST_INSTRUCTION("462D34F3", vabd_f16(q1, q2, q3));
TEST_INSTRUCTION("462D24F3", vabd_f32(q1, q2, q3));
TEST_INSTRUCTION("031712F2", vabd_s16(d1, d2, d3));
TEST_INSTRUCTION("031722F2", vabd_s32(d1, d2, d3));
TEST_INSTRUCTION("031702F2", vabd_s8(d1, d2, d3));
TEST_INSTRUCTION("031712F3", vabd_u16(d1, d2, d3));
TEST_INSTRUCTION("031722F3", vabd_u32(d1, d2, d3));
TEST_INSTRUCTION("031702F3", vabd_u8(d1, d2, d3));
TEST_INSTRUCTION("462714F2", vabd_s16(q1, q2, q3));
TEST_INSTRUCTION("462724F2", vabd_s32(q1, q2, q3));
TEST_INSTRUCTION("462704F2", vabd_s8(q1, q2, q3));
TEST_INSTRUCTION("462714F3", vabd_u16(q1, q2, q3));
TEST_INSTRUCTION("462724F3", vabd_u32(q1, q2, q3));
TEST_INSTRUCTION("462704F3", vabd_u8(q1, q2, q3));
TEST_INSTRUCTION("032792F2", vabdl_s16(q1, d2, d3));
TEST_INSTRUCTION("0327A2F2", vabdl_s32(q1, d2, d3));
TEST_INSTRUCTION("032782F2", vabdl_s8(q1, d2, d3));
TEST_INSTRUCTION("032792F3", vabdl_u16(q1, d2, d3));
TEST_INSTRUCTION("0327A2F3", vabdl_u32(q1, d2, d3));
TEST_INSTRUCTION("032782F3", vabdl_u8(q1, d2, d3));
TEST_INSTRUCTION("C109F0EE", vabs_f16(s1, s2));
TEST_INSTRUCTION("C10AF0EE", vabs_f32(s1, s2));
TEST_INSTRUCTION("C21BB0EE", vabs_f64(d1, d2));
TEST_INSTRUCTION("0217B5F3", vabs_f16(d1, d2));
TEST_INSTRUCTION("0217B9F3", vabs_f32(d1, d2));
TEST_INSTRUCTION("4427B5F3", vabs_f16(q1, q2));
TEST_INSTRUCTION("4427B9F3", vabs_f32(q1, q2));
TEST_INSTRUCTION("0213B5F3", vabs_s16(d1, d2));
TEST_INSTRUCTION("0213B9F3", vabs_s32(d1, d2));
TEST_INSTRUCTION("0213B1F3", vabs_s8(d1, d2));
TEST_INSTRUCTION("4423B5F3", vabs_s16(q1, q2));
TEST_INSTRUCTION("4423B9F3", vabs_s32(q1, q2));
TEST_INSTRUCTION("4423B1F3", vabs_s8(q1, q2));
TEST_INSTRUCTION("131E12F3", vacge_f16(d1, d2, d3));
TEST_INSTRUCTION("131E02F3", vacge_f32(d1, d2, d3));
TEST_INSTRUCTION("562E14F3", vacge_f16(q1, q2, q3));
TEST_INSTRUCTION("562E04F3", vacge_f32(q1, q2, q3));
TEST_INSTRUCTION("131E32F3", vacgt_f16(d1, d2, d3));
TEST_INSTRUCTION("131E22F3", vacgt_f32(d1, d2, d3));
TEST_INSTRUCTION("562E34F3", vacgt_f16(q1, q2, q3));
TEST_INSTRUCTION("562E24F3", vacgt_f32(q1, q2, q3));
TEST_INSTRUCTION("121E13F3", vacle_f16(d1, d2, d3));
TEST_INSTRUCTION("121E03F3", vacle_f32(d1, d2, d3));
TEST_INSTRUCTION("542E16F3", vacle_f16(q1, q2, q3));
TEST_INSTRUCTION("542E06F3", vacle_f32(q1, q2, q3));
TEST_INSTRUCTION("121E33F3", vaclt_f16(d1, d2, d3));
TEST_INSTRUCTION("121E23F3", vaclt_f32(d1, d2, d3));
TEST_INSTRUCTION("542E36F3", vaclt_f16(q1, q2, q3));
TEST_INSTRUCTION("542E26F3", vaclt_f32(q1, q2, q3));
TEST_INSTRUCTION("210971EE", vadd_f16(s1, s2, s3));
TEST_INSTRUCTION("210A71EE", vadd_f32(s1, s2, s3));
TEST_INSTRUCTION("031B32EE", vadd_f64(d1, d2, d3));
TEST_INSTRUCTION("031D02F2", vadd_f32(d1, d2, d3));
TEST_INSTRUCTION("462D04F2", vadd_f32(q1, q2, q3));
TEST_INSTRUCTION("031812F2", vadd_s16(d1, d2, d3));
TEST_INSTRUCTION("031822F2", vadd_s32(d1, d2, d3));
TEST_INSTRUCTION("031832F2", vadd_s64(d1, d2, d3));
TEST_INSTRUCTION("031802F2", vadd_s8(d1, d2, d3));
TEST_INSTRUCTION("031812F2", vadd_u16(d1, d2, d3));
TEST_INSTRUCTION("031822F2", vadd_u32(d1, d2, d3));
TEST_INSTRUCTION("031832F2", vadd_u64(d1, d2, d3));
TEST_INSTRUCTION("031802F2", vadd_u8(d1, d2, d3));
TEST_INSTRUCTION("462814F2", vadd_s16(q1, q2, q3));
TEST_INSTRUCTION("462824F2", vadd_s32(q1, q2, q3));
TEST_INSTRUCTION("462834F2", vadd_s64(q1, q2, q3));
TEST_INSTRUCTION("462804F2", vadd_s8(q1, q2, q3));
TEST_INSTRUCTION("462814F2", vadd_u16(q1, q2, q3));
TEST_INSTRUCTION("462824F2", vadd_u32(q1, q2, q3));
TEST_INSTRUCTION("462834F2", vadd_u64(q1, q2, q3));
TEST_INSTRUCTION("462804F2", vadd_u8(q1, q2, q3));
TEST_INSTRUCTION("061484F2", vaddhn_s16(d1, q2, q3));
TEST_INSTRUCTION("061494F2", vaddhn_s32(d1, q2, q3));
TEST_INSTRUCTION("0614A4F2", vaddhn_s64(d1, q2, q3));
TEST_INSTRUCTION("061484F2", vaddhn_u16(d1, q2, q3));
TEST_INSTRUCTION("061494F2", vaddhn_u32(d1, q2, q3));
TEST_INSTRUCTION("0614A4F2", vaddhn_u64(d1, q2, q3));
TEST_INSTRUCTION("032092F2", vaddl_s16(q1, d2, d3));
TEST_INSTRUCTION("0320A2F2", vaddl_s32(q1, d2, d3));
TEST_INSTRUCTION("032082F2", vaddl_s8(q1, d2, d3));
TEST_INSTRUCTION("032092F3", vaddl_u16(q1, d2, d3));
TEST_INSTRUCTION("0320A2F3", vaddl_u32(q1, d2, d3));
TEST_INSTRUCTION("032082F3", vaddl_u8(q1, d2, d3));
TEST_INSTRUCTION("032194F2", vaddw_s16(q1, q2, d3));
TEST_INSTRUCTION("0321A4F2", vaddw_s32(q1, q2, d3));
TEST_INSTRUCTION("032184F2", vaddw_s8(q1, q2, d3));
TEST_INSTRUCTION("032194F3", vaddw_u16(q1, q2, d3));
TEST_INSTRUCTION("0321A4F3", vaddw_u32(q1, q2, d3));
TEST_INSTRUCTION("032184F3", vaddw_u8(q1, q2, d3));
TEST_INSTRUCTION("131102F2", vand(d1, d2, d3));
TEST_INSTRUCTION("562104F2", vand(q1, q2, q3));
TEST_INSTRUCTION("3F1B87F3", vand_s16(d1, 0xFF));
TEST_INSTRUCTION("3F1987F3", vand_s16(d1, 0xFF00));
TEST_INSTRUCTION("3F1187F3", vand_s32(d1, 0xFFFFFF00));
TEST_INSTRUCTION("3F1787F3", vand_s32(d1, 0x00FFFFFF));
TEST_INSTRUCTION("3F1B87F3", vand_u16(d1, 0xFF));
TEST_INSTRUCTION("3F1987F3", vand_u16(d1, 0xFF00));
TEST_INSTRUCTION("3F1187F3", vand_u32(d1, 0xFFFFFF00));
TEST_INSTRUCTION("3F1787F3", vand_u32(d1, 0x00FFFFFF));
TEST_INSTRUCTION("7F2B87F3", vand_s16(q1, 0xFF));
TEST_INSTRUCTION("7F2987F3", vand_s16(q1, 0xFF00));
TEST_INSTRUCTION("7F2187F3", vand_s32(q1, 0xFFFFFF00));
TEST_INSTRUCTION("7F2787F3", vand_s32(q1, 0x00FFFFFF));
TEST_INSTRUCTION("7F2B87F3", vand_u16(q1, 0xFF));
TEST_INSTRUCTION("7F2987F3", vand_u16(q1, 0xFF00));
TEST_INSTRUCTION("7F2187F3", vand_u32(q1, 0xFFFFFF00));
TEST_INSTRUCTION("7F2787F3", vand_u32(q1, 0x00FFFFFF));
TEST_INSTRUCTION("131112F2", vbic(d1, d2, d3));
TEST_INSTRUCTION("562114F2", vbic(q1, q2, q3));
TEST_INSTRUCTION("3F1981F2", vbic_s16(d1, 0x1F));
TEST_INSTRUCTION("301980F3", vbic_s16(d1, 0x80));
TEST_INSTRUCTION("3F1987F3", vbic_s16(d1, 0xFF));
TEST_INSTRUCTION("3F1B81F2", vbic_s16(d1, 0x1F00));
TEST_INSTRUCTION("3F1B87F3", vbic_s16(d1, 0xFF00));
TEST_INSTRUCTION("3F1181F2", vbic_s32(d1, 0x1F));
TEST_INSTRUCTION("301180F3", vbic_s32(d1, 0x80));
TEST_INSTRUCTION("3F1187F3", vbic_s32(d1, 0xFF));
TEST_INSTRUCTION("3F1381F2", vbic_s32(d1, 0x1F00));
TEST_INSTRUCTION("3F1387F3", vbic_s32(d1, 0xFF00));
TEST_INSTRUCTION("3F1581F2", vbic_s32(d1, 0x1F0000));
TEST_INSTRUCTION("3F1587F3", vbic_s32(d1, 0xFF0000));
TEST_INSTRUCTION("3F1787F3", vbic_s32(d1, 0xFF000000));
TEST_INSTRUCTION("3F1981F2", vbic_u16(d1, 0x1F));
TEST_INSTRUCTION("301980F3", vbic_u16(d1, 0x80));
TEST_INSTRUCTION("3F1987F3", vbic_u16(d1, 0xFF));
TEST_INSTRUCTION("3F1B81F2", vbic_u16(d1, 0x1F00));
TEST_INSTRUCTION("3F1B87F3", vbic_u16(d1, 0xFF00));
TEST_INSTRUCTION("3F1181F2", vbic_u32(d1, 0x1F));
TEST_INSTRUCTION("301180F3", vbic_u32(d1, 0x80));
TEST_INSTRUCTION("3F1187F3", vbic_u32(d1, 0xFF));
TEST_INSTRUCTION("3F1381F2", vbic_u32(d1, 0x1F00));
TEST_INSTRUCTION("3F1387F3", vbic_u32(d1, 0xFF00));
TEST_INSTRUCTION("3F1581F2", vbic_u32(d1, 0x1F0000));
TEST_INSTRUCTION("3F1587F3", vbic_u32(d1, 0xFF0000));
TEST_INSTRUCTION("3F1787F3", vbic_u32(d1, 0xFF000000));
TEST_INSTRUCTION("7F2981F2", vbic_s16(q1, 0x1F));
TEST_INSTRUCTION("702980F3", vbic_s16(q1, 0x80));
TEST_INSTRUCTION("7F2987F3", vbic_s16(q1, 0xFF));
TEST_INSTRUCTION("7F2B81F2", vbic_s16(q1, 0x1F00));
TEST_INSTRUCTION("7F2B87F3", vbic_s16(q1, 0xFF00));
TEST_INSTRUCTION("7F2181F2", vbic_s32(q1, 0x1F));
TEST_INSTRUCTION("702180F3", vbic_s32(q1, 0x80));
TEST_INSTRUCTION("7F2187F3", vbic_s32(q1, 0xFF));
TEST_INSTRUCTION("7F2381F2", vbic_s32(q1, 0x1F00));
TEST_INSTRUCTION("7F2387F3", vbic_s32(q1, 0xFF00));
TEST_INSTRUCTION("7F2581F2", vbic_s32(q1, 0x1F0000));
TEST_INSTRUCTION("7F2587F3", vbic_s32(q1, 0xFF0000));
TEST_INSTRUCTION("7F2787F3", vbic_s32(q1, 0xFF000000));
TEST_INSTRUCTION("7F2981F2", vbic_u16(q1, 0x1F));
TEST_INSTRUCTION("702980F3", vbic_u16(q1, 0x80));
TEST_INSTRUCTION("7F2987F3", vbic_u16(q1, 0xFF));
TEST_INSTRUCTION("7F2B81F2", vbic_u16(q1, 0x1F00));
TEST_INSTRUCTION("7F2B87F3", vbic_u16(q1, 0xFF00));
TEST_INSTRUCTION("7F2181F2", vbic_u32(q1, 0x1F));
TEST_INSTRUCTION("702180F3", vbic_u32(q1, 0x80));
TEST_INSTRUCTION("7F2187F3", vbic_u32(q1, 0xFF));
TEST_INSTRUCTION("7F2381F2", vbic_u32(q1, 0x1F00));
TEST_INSTRUCTION("7F2387F3", vbic_u32(q1, 0xFF00));
TEST_INSTRUCTION("7F2581F2", vbic_u32(q1, 0x1F0000));
TEST_INSTRUCTION("7F2587F3", vbic_u32(q1, 0xFF0000));
TEST_INSTRUCTION("7F2787F3", vbic_u32(q1, 0xFF000000));
TEST_INSTRUCTION("131132F3", vbif(d1, d2, d3));
TEST_INSTRUCTION("562134F3", vbif(q1, q2, q3));
TEST_INSTRUCTION("131122F3", vbit(d1, d2, d3));
TEST_INSTRUCTION("562124F3", vbit(q1, q2, q3));
TEST_INSTRUCTION("131112F3", vbsl(d1, d2, d3));
TEST_INSTRUCTION("562114F3", vbsl(q1, q2, q3));
TEST_INSTRUCTION("031882FC", vcadd_f16(d1, d2, d3, 90));
TEST_INSTRUCTION("031882FD", vcadd_f16(d1, d2, d3, 270));
TEST_INSTRUCTION("031892FC", vcadd_f32(d1, d2, d3, 90));
TEST_INSTRUCTION("031892FD", vcadd_f32(d1, d2, d3, 270));
TEST_INSTRUCTION("462884FC", vcadd_f16(q1, q2, q3, 90));
TEST_INSTRUCTION("462884FD", vcadd_f16(q1, q2, q3, 270));
TEST_INSTRUCTION("462894FC", vcadd_f32(q1, q2, q3, 90));
TEST_INSTRUCTION("462894FD", vcadd_f32(q1, q2, q3, 270));
TEST_INSTRUCTION("0215B5F3", vceq_f16(d1, d2, 0));
TEST_INSTRUCTION("0215B9F3", vceq_f32(d1, d2, 0));
TEST_INSTRUCTION("4425B5F3", vceq_f16(q1, q2, 0));
TEST_INSTRUCTION("4425B9F3", vceq_f32(q1, q2, 0));
TEST_INSTRUCTION("0211B5F3", vceq_s16(d1, d2, 0));
TEST_INSTRUCTION("0211B9F3", vceq_s32(d1, d2, 0));
TEST_INSTRUCTION("0211B1F3", vceq_s8(d1, d2, 0));
TEST_INSTRUCTION("0211B5F3", vceq_u16(d1, d2, 0));
TEST_INSTRUCTION("0211B9F3", vceq_u32(d1, d2, 0));
TEST_INSTRUCTION("0211B1F3", vceq_u8(d1, d2, 0));
TEST_INSTRUCTION("4421B5F3", vceq_s16(q1, q2, 0));
TEST_INSTRUCTION("4421B9F3", vceq_s32(q1, q2, 0));
TEST_INSTRUCTION("4421B1F3", vceq_s8(q1, q2, 0));
TEST_INSTRUCTION("4421B5F3", vceq_u16(q1, q2, 0));
TEST_INSTRUCTION("4421B9F3", vceq_u32(q1, q2, 0));
TEST_INSTRUCTION("4421B1F3", vceq_u8(q1, q2, 0));
TEST_INSTRUCTION("031E12F2", vceq_f16(d1, d2, d3));
TEST_INSTRUCTION("031E02F2", vceq_f32(d1, d2, d3));
TEST_INSTRUCTION("462E14F2", vceq_f16(q1, q2, q3));
TEST_INSTRUCTION("462E04F2", vceq_f32(q1, q2, q3));
TEST_INSTRUCTION("131812F3", vceq_s16(d1, d2, d3));
TEST_INSTRUCTION("131822F3", vceq_s32(d1, d2, d3));
TEST_INSTRUCTION("131802F3", vceq_s8(d1, d2, d3));
TEST_INSTRUCTION("131812F3", vceq_u16(d1, d2, d3));
TEST_INSTRUCTION("131822F3", vceq_u32(d1, d2, d3));
TEST_INSTRUCTION("131802F3", vceq_u8(d1, d2, d3));
TEST_INSTRUCTION("562814F3", vceq_s16(q1, q2, q3));
TEST_INSTRUCTION("562824F3", vceq_s32(q1, q2, q3));
TEST_INSTRUCTION("562804F3", vceq_s8(q1, q2, q3));
TEST_INSTRUCTION("562814F3", vceq_u16(q1, q2, q3));
TEST_INSTRUCTION("562824F3", vceq_u32(q1, q2, q3));
TEST_INSTRUCTION("562804F3", vceq_u8(q1, q2, q3));
TEST_INSTRUCTION("8214B5F3", vcge_f16(d1, d2, 0));
TEST_INSTRUCTION("8214B9F3", vcge_f32(d1, d2, 0));
TEST_INSTRUCTION("C424B5F3", vcge_f16(q1, q2, 0));
TEST_INSTRUCTION("C424B9F3", vcge_f32(q1, q2, 0));
TEST_INSTRUCTION("8210B5F3", vcge_s16(d1, d2, 0));
TEST_INSTRUCTION("8210B9F3", vcge_s32(d1, d2, 0));
TEST_INSTRUCTION("8210B1F3", vcge_s8(d1, d2, 0));
TEST_INSTRUCTION("C420B5F3", vcge_s16(q1, q2, 0));
TEST_INSTRUCTION("C420B9F3", vcge_s32(q1, q2, 0));
TEST_INSTRUCTION("C420B1F3", vcge_s8(q1, q2, 0));
TEST_INSTRUCTION("031E12F3", vcge_f16(d1, d2, d3));
TEST_INSTRUCTION("031E02F3", vcge_f32(d1, d2, d3));
TEST_INSTRUCTION("462E14F3", vcge_f16(q1, q2, q3));
TEST_INSTRUCTION("462E04F3", vcge_f32(q1, q2, q3));
TEST_INSTRUCTION("131312F2", vcge_s16(d1, d2, d3));
TEST_INSTRUCTION("131322F2", vcge_s32(d1, d2, d3));
TEST_INSTRUCTION("131302F2", vcge_s8(d1, d2, d3));
TEST_INSTRUCTION("131312F3", vcge_u16(d1, d2, d3));
TEST_INSTRUCTION("131322F3", vcge_u32(d1, d2, d3));
TEST_INSTRUCTION("131302F3", vcge_u8(d1, d2, d3));
TEST_INSTRUCTION("562314F2", vcge_s16(q1, q2, q3));
TEST_INSTRUCTION("562324F2", vcge_s32(q1, q2, q3));
TEST_INSTRUCTION("562304F2", vcge_s8(q1, q2, q3));
TEST_INSTRUCTION("562314F3", vcge_u16(q1, q2, q3));
TEST_INSTRUCTION("562324F3", vcge_u32(q1, q2, q3));
TEST_INSTRUCTION("562304F3", vcge_u8(q1, q2, q3));
TEST_INSTRUCTION("0214B5F3", vcgt_f16(d1, d2, 0));
TEST_INSTRUCTION("0214B9F3", vcgt_f32(d1, d2, 0));
TEST_INSTRUCTION("4424B5F3", vcgt_f16(q1, q2, 0));
TEST_INSTRUCTION("4424B9F3", vcgt_f32(q1, q2, 0));
TEST_INSTRUCTION("0210B5F3", vcgt_s16(d1, d2, 0));
TEST_INSTRUCTION("0210B9F3", vcgt_s32(d1, d2, 0));
TEST_INSTRUCTION("0210B1F3", vcgt_s8(d1, d2, 0));
TEST_INSTRUCTION("4420B5F3", vcgt_s16(q1, q2, 0));
TEST_INSTRUCTION("4420B9F3", vcgt_s32(q1, q2, 0));
TEST_INSTRUCTION("4420B1F3", vcgt_s8(q1, q2, 0));
TEST_INSTRUCTION("031E32F3", vcgt_f16(d1, d2, d3));
TEST_INSTRUCTION("031E22F3", vcgt_f32(d1, d2, d3));
TEST_INSTRUCTION("462E34F3", vcgt_f16(q1, q2, q3));
TEST_INSTRUCTION("462E24F3", vcgt_f32(q1, q2, q3));
TEST_INSTRUCTION("031312F2", vcgt_s16(d1, d2, d3));
TEST_INSTRUCTION("031322F2", vcgt_s32(d1, d2, d3));
TEST_INSTRUCTION("031302F2", vcgt_s8(d1, d2, d3));
TEST_INSTRUCTION("031312F3", vcgt_u16(d1, d2, d3));
TEST_INSTRUCTION("031322F3", vcgt_u32(d1, d2, d3));
TEST_INSTRUCTION("031302F3", vcgt_u8(d1, d2, d3));
TEST_INSTRUCTION("462314F2", vcgt_s16(q1, q2, q3));
TEST_INSTRUCTION("462324F2", vcgt_s32(q1, q2, q3));
TEST_INSTRUCTION("462304F2", vcgt_s8(q1, q2, q3));
TEST_INSTRUCTION("462314F3", vcgt_u16(q1, q2, q3));
TEST_INSTRUCTION("462324F3", vcgt_u32(q1, q2, q3));
TEST_INSTRUCTION("462304F3", vcgt_u8(q1, q2, q3));
TEST_INSTRUCTION("8215B5F3", vcle_f16(d1, d2, 0));
TEST_INSTRUCTION("8215B9F3", vcle_f32(d1, d2, 0));
TEST_INSTRUCTION("C425B5F3", vcle_f16(q1, q2, 0));
TEST_INSTRUCTION("C425B9F3", vcle_f32(q1, q2, 0));
TEST_INSTRUCTION("8211B5F3", vcle_s16(d1, d2, 0));
TEST_INSTRUCTION("8211B9F3", vcle_s32(d1, d2, 0));
TEST_INSTRUCTION("8211B1F3", vcle_s8(d1, d2, 0));
TEST_INSTRUCTION("C421B5F3", vcle_s16(q1, q2, 0));
TEST_INSTRUCTION("C421B9F3", vcle_s32(q1, q2, 0));
TEST_INSTRUCTION("C421B1F3", vcle_s8(q1, q2, 0));
TEST_INSTRUCTION("021E13F3", vcle_f16(d1, d2, d3));
TEST_INSTRUCTION("021E03F3", vcle_f32(d1, d2, d3));
TEST_INSTRUCTION("442E16F3", vcle_f16(q1, q2, q3));
TEST_INSTRUCTION("442E06F3", vcle_f32(q1, q2, q3));
TEST_INSTRUCTION("121313F2", vcle_s16(d1, d2, d3));
TEST_INSTRUCTION("121323F2", vcle_s32(d1, d2, d3));
TEST_INSTRUCTION("121303F2", vcle_s8(d1, d2, d3));
TEST_INSTRUCTION("121313F3", vcle_u16(d1, d2, d3));
TEST_INSTRUCTION("121323F3", vcle_u32(d1, d2, d3));
TEST_INSTRUCTION("121303F3", vcle_u8(d1, d2, d3));
TEST_INSTRUCTION("542316F2", vcle_s16(q1, q2, q3));
TEST_INSTRUCTION("542326F2", vcle_s32(q1, q2, q3));
TEST_INSTRUCTION("542306F2", vcle_s8(q1, q2, q3));
TEST_INSTRUCTION("542316F3", vcle_u16(q1, q2, q3));
TEST_INSTRUCTION("542326F3", vcle_u32(q1, q2, q3));
TEST_INSTRUCTION("542306F3", vcle_u8(q1, q2, q3));
TEST_INSTRUCTION("0214B4F3", vcls_s16(d1, d2));
TEST_INSTRUCTION("0214B8F3", vcls_s32(d1, d2));
TEST_INSTRUCTION("0214B0F3", vcls_s8(d1, d2));
TEST_INSTRUCTION("0214B4F3", vcls_u16(d1, d2));
TEST_INSTRUCTION("0214B8F3", vcls_u32(d1, d2));
TEST_INSTRUCTION("0214B0F3", vcls_u8(d1, d2));
TEST_INSTRUCTION("4424B4F3", vcls_s16(q1, q2));
TEST_INSTRUCTION("4424B8F3", vcls_s32(q1, q2));
TEST_INSTRUCTION("4424B0F3", vcls_s8(q1, q2));
TEST_INSTRUCTION("4424B4F3", vcls_u16(q1, q2));
TEST_INSTRUCTION("4424B8F3", vcls_u32(q1, q2));
TEST_INSTRUCTION("4424B0F3", vcls_u8(q1, q2));
TEST_INSTRUCTION("0216B5F3", vclt_f16(d1, d2, 0));
TEST_INSTRUCTION("0216B9F3", vclt_f32(d1, d2, 0));
TEST_INSTRUCTION("4426B5F3", vclt_f16(q1, q2, 0));
TEST_INSTRUCTION("4426B9F3", vclt_f32(q1, q2, 0));
TEST_INSTRUCTION("0212B5F3", vclt_s16(d1, d2, 0));
TEST_INSTRUCTION("0212B9F3", vclt_s32(d1, d2, 0));
TEST_INSTRUCTION("0212B1F3", vclt_s8(d1, d2, 0));
TEST_INSTRUCTION("4422B5F3", vclt_s16(q1, q2, 0));
TEST_INSTRUCTION("4422B9F3", vclt_s32(q1, q2, 0));
TEST_INSTRUCTION("4422B1F3", vclt_s8(q1, q2, 0));
TEST_INSTRUCTION("021E33F3", vclt_f16(d1, d2, d3));
TEST_INSTRUCTION("021E23F3", vclt_f32(d1, d2, d3));
TEST_INSTRUCTION("442E36F3", vclt_f16(q1, q2, q3));
TEST_INSTRUCTION("442E26F3", vclt_f32(q1, q2, q3));
TEST_INSTRUCTION("021313F2", vclt_s16(d1, d2, d3));
TEST_INSTRUCTION("021323F2", vclt_s32(d1, d2, d3));
TEST_INSTRUCTION("021303F2", vclt_s8(d1, d2, d3));
TEST_INSTRUCTION("021313F3", vclt_u16(d1, d2, d3));
TEST_INSTRUCTION("021323F3", vclt_u32(d1, d2, d3));
TEST_INSTRUCTION("021303F3", vclt_u8(d1, d2, d3));
TEST_INSTRUCTION("442316F2", vclt_s16(q1, q2, q3));
TEST_INSTRUCTION("442326F2", vclt_s32(q1, q2, q3));
TEST_INSTRUCTION("442306F2", vclt_s8(q1, q2, q3));
TEST_INSTRUCTION("442316F3", vclt_u16(q1, q2, q3));
TEST_INSTRUCTION("442326F3", vclt_u32(q1, q2, q3));
TEST_INSTRUCTION("442306F3", vclt_u8(q1, q2, q3));
TEST_INSTRUCTION("8214B4F3", vclz_s16(d1, d2));
TEST_INSTRUCTION("8214B8F3", vclz_s32(d1, d2));
TEST_INSTRUCTION("8214B0F3", vclz_s8(d1, d2));
TEST_INSTRUCTION("8214B4F3", vclz_u16(d1, d2));
TEST_INSTRUCTION("8214B8F3", vclz_u32(d1, d2));
TEST_INSTRUCTION("8214B0F3", vclz_u8(d1, d2));
TEST_INSTRUCTION("C424B4F3", vclz_s16(q1, q2));
TEST_INSTRUCTION("C424B8F3", vclz_s32(q1, q2));
TEST_INSTRUCTION("C424B0F3", vclz_s8(q1, q2));
TEST_INSTRUCTION("C424B4F3", vclz_u16(q1, q2));
TEST_INSTRUCTION("C424B8F3", vclz_u32(q1, q2));
TEST_INSTRUCTION("C424B0F3", vclz_u8(q1, q2));
TEST_INSTRUCTION("031822FC", vcmla_f16(d1, d2, d3, 0));
TEST_INSTRUCTION("0318A2FC", vcmla_f16(d1, d2, d3, 90));
TEST_INSTRUCTION("031822FD", vcmla_f16(d1, d2, d3, 180));
TEST_INSTRUCTION("0318A2FD", vcmla_f16(d1, d2, d3, 270));
TEST_INSTRUCTION("031832FC", vcmla_f32(d1, d2, d3, 0));
TEST_INSTRUCTION("0318B2FC", vcmla_f32(d1, d2, d3, 90));
TEST_INSTRUCTION("031832FD", vcmla_f32(d1, d2, d3, 180));
TEST_INSTRUCTION("0318B2FD", vcmla_f32(d1, d2, d3, 270));
TEST_INSTRUCTION("462824FC", vcmla_f16(q1, q2, q3, 0));
TEST_INSTRUCTION("4628A4FC", vcmla_f16(q1, q2, q3, 90));
TEST_INSTRUCTION("462824FD", vcmla_f16(q1, q2, q3, 180));
TEST_INSTRUCTION("4628A4FD", vcmla_f16(q1, q2, q3, 270));
TEST_INSTRUCTION("462834FC", vcmla_f32(q1, q2, q3, 0));
TEST_INSTRUCTION("4628B4FC", vcmla_f32(q1, q2, q3, 90));
TEST_INSTRUCTION("462834FD", vcmla_f32(q1, q2, q3, 180));
TEST_INSTRUCTION("4628B4FD", vcmla_f32(q1, q2, q3, 270));
TEST_INSTRUCTION("031802FE", vcmla_f16(d1, d2, d3.at(0), 0));
TEST_INSTRUCTION("031812FE", vcmla_f16(d1, d2, d3.at(0), 90));
TEST_INSTRUCTION("031822FE", vcmla_f16(d1, d2, d3.at(0), 180));
TEST_INSTRUCTION("031832FE", vcmla_f16(d1, d2, d3.at(0), 270));
TEST_INSTRUCTION("231802FE", vcmla_f16(d1, d2, d3.at(1), 0));
TEST_INSTRUCTION("231812FE", vcmla_f16(d1, d2, d3.at(1), 90));
TEST_INSTRUCTION("231822FE", vcmla_f16(d1, d2, d3.at(1), 180));
TEST_INSTRUCTION("231832FE", vcmla_f16(d1, d2, d3.at(1), 270));
TEST_INSTRUCTION("432804FE", vcmla_f16(q1, q2, d3.at(0), 0));
TEST_INSTRUCTION("432814FE", vcmla_f16(q1, q2, d3.at(0), 90));
TEST_INSTRUCTION("432824FE", vcmla_f16(q1, q2, d3.at(0), 180));
TEST_INSTRUCTION("432834FE", vcmla_f16(q1, q2, d3.at(0), 270));
TEST_INSTRUCTION("632804FE", vcmla_f16(q1, q2, d3.at(1), 0));
TEST_INSTRUCTION("632814FE", vcmla_f16(q1, q2, d3.at(1), 90));
TEST_INSTRUCTION("632824FE", vcmla_f16(q1, q2, d3.at(1), 180));
TEST_INSTRUCTION("632834FE", vcmla_f16(q1, q2, d3.at(1), 270));
TEST_INSTRUCTION("031882FE", vcmla_f32(d1, d2, d3.at(0), 0));
TEST_INSTRUCTION("031892FE", vcmla_f32(d1, d2, d3.at(0), 90));
TEST_INSTRUCTION("0318A2FE", vcmla_f32(d1, d2, d3.at(0), 180));
TEST_INSTRUCTION("0318B2FE", vcmla_f32(d1, d2, d3.at(0), 270));
TEST_INSTRUCTION("432884FE", vcmla_f32(q1, q2, d3.at(0), 0));
TEST_INSTRUCTION("432894FE", vcmla_f32(q1, q2, d3.at(0), 90));
TEST_INSTRUCTION("4328A4FE", vcmla_f32(q1, q2, d3.at(0), 180));
TEST_INSTRUCTION("4328B4FE", vcmla_f32(q1, q2, d3.at(0), 270));
TEST_INSTRUCTION("4009F5EE", vcmp_f16(s1, 0));
TEST_INSTRUCTION("400AF5EE", vcmp_f32(s1, 0));
TEST_INSTRUCTION("401BB5EE", vcmp_f64(d1, 0));
TEST_INSTRUCTION("4109F4EE", vcmp_f16(s1, s2));
TEST_INSTRUCTION("410AF4EE", vcmp_f32(s1, s2));
TEST_INSTRUCTION("421BB4EE", vcmp_f64(d1, d2));
TEST_INSTRUCTION("C009F5EE", vcmpe_f16(s1, 0));
TEST_INSTRUCTION("C00AF5EE", vcmpe_f32(s1, 0));
TEST_INSTRUCTION("C01BB5EE", vcmpe_f64(d1, 0));
TEST_INSTRUCTION("C109F4EE", vcmpe_f16(s1, s2));
TEST_INSTRUCTION("C10AF4EE", vcmpe_f32(s1, s2));
TEST_INSTRUCTION("C21BB4EE", vcmpe_f64(d1, d2));
TEST_INSTRUCTION("0215B0F3", vcnt_s8(d1, d2));
TEST_INSTRUCTION("0215B0F3", vcnt_u8(d1, d2));
TEST_INSTRUCTION("4425B0F3", vcnt_s8(q1, q2));
TEST_INSTRUCTION("4425B0F3", vcnt_u8(q1, q2));
TEST_INSTRUCTION("C20BF7EE", vcvt_f32_f64(s1, d2));
TEST_INSTRUCTION("C11AB7EE", vcvt_f64_f32(d1, s2));
TEST_INSTRUCTION("C10AF8EE", vcvt_f32_s32(s1, s2));
TEST_INSTRUCTION("410AF8EE", vcvt_f32_u32(s1, s2));
TEST_INSTRUCTION("C11BB8EE", vcvt_f64_s32(d1, s2));
TEST_INSTRUCTION("411BB8EE", vcvt_f64_u32(d1, s2));
TEST_INSTRUCTION("0416B6F3", vcvt_f16_f32(d1, q2));
TEST_INSTRUCTION("0227B6F3", vcvt_f32_f16(q1, d2));
TEST_INSTRUCTION("0217BBF3", vcvt_s32_f32(d1, d2));
TEST_INSTRUCTION("4427BBF3", vcvt_s32_f32(q1, q2));
TEST_INSTRUCTION("8217BBF3", vcvt_u32_f32(d1, d2));
TEST_INSTRUCTION("C427BBF3", vcvt_u32_f32(q1, q2));
TEST_INSTRUCTION("0216BBF3", vcvt_f32_s32(d1, d2));
TEST_INSTRUCTION("4426BBF3", vcvt_f32_s32(q1, q2));
TEST_INSTRUCTION("8216BBF3", vcvt_f32_u32(d1, d2));
TEST_INSTRUCTION("C426BBF3", vcvt_f32_u32(q1, q2));
TEST_INSTRUCTION("C109FCFE", vcvta_s32_f16(s1, s2));
TEST_INSTRUCTION("C10AFCFE", vcvta_s32_f32(s1, s2));
TEST_INSTRUCTION("C20BFCFE", vcvta_s32_f64(s1, d2));
TEST_INSTRUCTION("4109FCFE", vcvta_u32_f16(s1, s2));
TEST_INSTRUCTION("410AFCFE", vcvta_u32_f32(s1, s2));
TEST_INSTRUCTION("420BFCFE", vcvta_u32_f64(s1, d2));
TEST_INSTRUCTION("410AF2EE", vcvtb_f32_f16(s1, s2));
TEST_INSTRUCTION("410AF3EE", vcvtb_f16_f32(s1, s2));
TEST_INSTRUCTION("411BB2EE", vcvtb_f64_f16(d1, s2));
TEST_INSTRUCTION("420BF3EE", vcvtb_f16_f64(s1, d2));
TEST_INSTRUCTION("0213B7F3", vcvtm_s16_f16(d1, d2));
TEST_INSTRUCTION("4423B7F3", vcvtm_s16_f16(q1, q2));
TEST_INSTRUCTION("8213B7F3", vcvtm_u16_f16(d1, d2));
TEST_INSTRUCTION("C423B7F3", vcvtm_u16_f16(q1, q2));
TEST_INSTRUCTION("0213BBF3", vcvtm_s32_f32(d1, d2));
TEST_INSTRUCTION("4423BBF3", vcvtm_s32_f32(q1, q2));
TEST_INSTRUCTION("8213BBF3", vcvtm_u32_f32(d1, d2));
TEST_INSTRUCTION("C423BBF3", vcvtm_u32_f32(q1, q2));
TEST_INSTRUCTION("C109FFFE", vcvtm_s32_f16(s1, s2));
TEST_INSTRUCTION("C10AFFFE", vcvtm_s32_f32(s1, s2));
TEST_INSTRUCTION("C20BFFFE", vcvtm_s32_f64(s1, d2));
TEST_INSTRUCTION("4109FFFE", vcvtm_u32_f16(s1, s2));
TEST_INSTRUCTION("410AFFFE", vcvtm_u32_f32(s1, s2));
TEST_INSTRUCTION("420BFFFE", vcvtm_u32_f64(s1, d2));
TEST_INSTRUCTION("0211B7F3", vcvtn_s16_f16(d1, d2));
TEST_INSTRUCTION("4421B7F3", vcvtn_s16_f16(q1, q2));
TEST_INSTRUCTION("8211B7F3", vcvtn_u16_f16(d1, d2));
TEST_INSTRUCTION("C421B7F3", vcvtn_u16_f16(q1, q2));
TEST_INSTRUCTION("0211BBF3", vcvtn_s32_f32(d1, d2));
TEST_INSTRUCTION("4421BBF3", vcvtn_s32_f32(q1, q2));
TEST_INSTRUCTION("8211BBF3", vcvtn_u32_f32(d1, d2));
TEST_INSTRUCTION("C421BBF3", vcvtn_u32_f32(q1, q2));
TEST_INSTRUCTION("C109FDFE", vcvtn_s32_f16(s1, s2));
TEST_INSTRUCTION("C10AFDFE", vcvtn_s32_f32(s1, s2));
TEST_INSTRUCTION("C20BFDFE", vcvtn_s32_f64(s1, d2));
TEST_INSTRUCTION("4109FDFE", vcvtn_u32_f16(s1, s2));
TEST_INSTRUCTION("410AFDFE", vcvtn_u32_f32(s1, s2));
TEST_INSTRUCTION("420BFDFE", vcvtn_u32_f64(s1, d2));
TEST_INSTRUCTION("0212B7F3", vcvtp_s16_f16(d1, d2));
TEST_INSTRUCTION("4422B7F3", vcvtp_s16_f16(q1, q2));
TEST_INSTRUCTION("8212B7F3", vcvtp_u16_f16(d1, d2));
TEST_INSTRUCTION("C422B7F3", vcvtp_u16_f16(q1, q2));
TEST_INSTRUCTION("0212BBF3", vcvtp_s32_f32(d1, d2));
TEST_INSTRUCTION("4422BBF3", vcvtp_s32_f32(q1, q2));
TEST_INSTRUCTION("8212BBF3", vcvtp_u32_f32(d1, d2));
TEST_INSTRUCTION("C422BBF3", vcvtp_u32_f32(q1, q2));
TEST_INSTRUCTION("C109FEFE", vcvtp_s32_f16(s1, s2));
TEST_INSTRUCTION("C10AFEFE", vcvtp_s32_f32(s1, s2));
TEST_INSTRUCTION("C20BFEFE", vcvtp_s32_f64(s1, d2));
TEST_INSTRUCTION("4109FEFE", vcvtp_u32_f16(s1, s2));
TEST_INSTRUCTION("410AFEFE", vcvtp_u32_f32(s1, s2));
TEST_INSTRUCTION("420BFEFE", vcvtp_u32_f64(s1, d2));
TEST_INSTRUCTION("4109FDEE", vcvtr_s32_f16(s1, s2));
TEST_INSTRUCTION("410AFDEE", vcvtr_s32_f32(s1, s2));
TEST_INSTRUCTION("420BFDEE", vcvtr_s32_f64(s1, d2));
TEST_INSTRUCTION("4109FCEE", vcvtr_u32_f16(s1, s2));
TEST_INSTRUCTION("410AFCEE", vcvtr_u32_f32(s1, s2));
TEST_INSTRUCTION("420BFCEE", vcvtr_u32_f64(s1, d2));
TEST_INSTRUCTION("C10AF2EE", vcvtt_f32_f16(s1, s2));
TEST_INSTRUCTION("C10AF3EE", vcvtt_f16_f32(s1, s2));
TEST_INSTRUCTION("C11BB2EE", vcvtt_f64_f16(d1, s2));
TEST_INSTRUCTION("C20BF3EE", vcvtt_f16_f64(s1, d2));
TEST_INSTRUCTION("2109C1EE", vdiv_f16(s1, s2, s3));
TEST_INSTRUCTION("210AC1EE", vdiv_f32(s1, s2, s3));
TEST_INSTRUCTION("031B82EE", vdiv_f64(d1, d2, d3));
TEST_INSTRUCTION("031D02FC", vdot_bf16(d1, d2, d3));
TEST_INSTRUCTION("462D04FC", vdot_bf16(q1, q2, q3));
TEST_INSTRUCTION("031D02FE", vdot_bf16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("231D02FE", vdot_bf16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("432D04FE", vdot_bf16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("632D04FE", vdot_bf16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("102BC1EE", vdup_8(d1, r2));
TEST_INSTRUCTION("102BE2EE", vdup_8(q1, r2));
TEST_INSTRUCTION("302B81EE", vdup_16(d1, r2));
TEST_INSTRUCTION("302BA2EE", vdup_16(q1, r2));
TEST_INSTRUCTION("102B81EE", vdup_32(d1, r2));
TEST_INSTRUCTION("102BA2EE", vdup_32(q1, r2));
TEST_INSTRUCTION("021CB1F3", vdup_8(d1, d2.at(0)));
TEST_INSTRUCTION("021CB3F3", vdup_8(d1, d2.at(1)));
TEST_INSTRUCTION("021CB5F3", vdup_8(d1, d2.at(2)));
TEST_INSTRUCTION("021CB7F3", vdup_8(d1, d2.at(3)));
TEST_INSTRUCTION("021CB9F3", vdup_8(d1, d2.at(4)));
TEST_INSTRUCTION("021CBBF3", vdup_8(d1, d2.at(5)));
TEST_INSTRUCTION("021CBDF3", vdup_8(d1, d2.at(6)));
TEST_INSTRUCTION("021CBFF3", vdup_8(d1, d2.at(7)));
TEST_INSTRUCTION("422CB1F3", vdup_8(q1, d2.at(0)));
TEST_INSTRUCTION("422CB3F3", vdup_8(q1, d2.at(1)));
TEST_INSTRUCTION("422CB5F3", vdup_8(q1, d2.at(2)));
TEST_INSTRUCTION("422CB7F3", vdup_8(q1, d2.at(3)));
TEST_INSTRUCTION("422CB9F3", vdup_8(q1, d2.at(4)));
TEST_INSTRUCTION("422CBBF3", vdup_8(q1, d2.at(5)));
TEST_INSTRUCTION("422CBDF3", vdup_8(q1, d2.at(6)));
TEST_INSTRUCTION("422CBFF3", vdup_8(q1, d2.at(7)));
TEST_INSTRUCTION("021CB2F3", vdup_16(d1, d2.at(0)));
TEST_INSTRUCTION("021CB6F3", vdup_16(d1, d2.at(1)));
TEST_INSTRUCTION("021CBAF3", vdup_16(d1, d2.at(2)));
TEST_INSTRUCTION("021CBEF3", vdup_16(d1, d2.at(3)));
TEST_INSTRUCTION("422CB2F3", vdup_16(q1, d2.at(0)));
TEST_INSTRUCTION("422CB6F3", vdup_16(q1, d2.at(1)));
TEST_INSTRUCTION("422CBAF3", vdup_16(q1, d2.at(2)));
TEST_INSTRUCTION("422CBEF3", vdup_16(q1, d2.at(3)));
TEST_INSTRUCTION("021CB4F3", vdup_32(d1, d2.at(0)));
TEST_INSTRUCTION("021CBCF3", vdup_32(d1, d2.at(1)));
TEST_INSTRUCTION("422CB4F3", vdup_32(q1, d2.at(0)));
TEST_INSTRUCTION("422CBCF3", vdup_32(q1, d2.at(1)));
TEST_INSTRUCTION("131102F3", veor(d1, d2, d3));
TEST_INSTRUCTION("562104F3", veor(q1, q2, q3));
TEST_INSTRUCTION("0311B2F2", vext_8(d1, d2, d3, 1));
TEST_INSTRUCTION("4621B4F2", vext_8(q1, q2, q3, 1));
TEST_INSTRUCTION("2109E1EE", vfma_f16(s1, s2, s3));
TEST_INSTRUCTION("210AE1EE", vfma_f32(s1, s2, s3));
TEST_INSTRUCTION("031BA2EE", vfma_f64(d1, d2, d3));
TEST_INSTRUCTION("131C12F2", vfma_f16(d1, d2, d3));
TEST_INSTRUCTION("131C02F2", vfma_f32(d1, d2, d3));
TEST_INSTRUCTION("562C14F2", vfma_f16(q1, q2, q3));
TEST_INSTRUCTION("562C04F2", vfma_f32(q1, q2, q3));
TEST_INSTRUCTION("162834FC", vfmab_bf16(q1, q2, q3));
TEST_INSTRUCTION("132834FE", vfmab_bf16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("1B2834FE", vfmab_bf16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("332834FE", vfmab_bf16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("3B2834FE", vfmab_bf16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("311821FC", vfmal_f16(d1, s2, s3));
TEST_INSTRUCTION("532822FC", vfmal_f16(q1, d2, d3));
TEST_INSTRUCTION("311801FE", vfmal_f16(d1, s2, s3.at(0)));
TEST_INSTRUCTION("391801FE", vfmal_f16(d1, s2, s3.at(1)));
TEST_INSTRUCTION("532802FE", vfmal_f16(q1, d2, d3.at(0)));
TEST_INSTRUCTION("5B2802FE", vfmal_f16(q1, d2, d3.at(1)));
TEST_INSTRUCTION("562834FC", vfmat_bf16(q1, q2, q3));
TEST_INSTRUCTION("532834FE", vfmat_bf16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("5B2834FE", vfmat_bf16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("732834FE", vfmat_bf16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("7B2834FE", vfmat_bf16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("6109E1EE", vfms_f16(s1, s2, s3));
TEST_INSTRUCTION("610AE1EE", vfms_f32(s1, s2, s3));
TEST_INSTRUCTION("431BA2EE", vfms_f64(d1, d2, d3));
TEST_INSTRUCTION("131C32F2", vfms_f16(d1, d2, d3));
TEST_INSTRUCTION("131C22F2", vfms_f32(d1, d2, d3));
TEST_INSTRUCTION("562C34F2", vfms_f16(q1, q2, q3));
TEST_INSTRUCTION("562C24F2", vfms_f32(q1, q2, q3));
TEST_INSTRUCTION("3118A1FC", vfmsl_f16(d1, s2, s3));
TEST_INSTRUCTION("5328A2FC", vfmsl_f16(q1, d2, d3));
TEST_INSTRUCTION("311811FE", vfmsl_f16(d1, s2, s3.at(0)));
TEST_INSTRUCTION("391811FE", vfmsl_f16(d1, s2, s3.at(1)));
TEST_INSTRUCTION("532812FE", vfmsl_f16(q1, d2, d3.at(0)));
TEST_INSTRUCTION("5B2812FE", vfmsl_f16(q1, d2, d3.at(1)));
TEST_INSTRUCTION("6109D1EE", vfnma_f16(s1, s2, s3));
TEST_INSTRUCTION("610AD1EE", vfnma_f32(s1, s2, s3));
TEST_INSTRUCTION("431B92EE", vfnma_f64(d1, d2, d3));
TEST_INSTRUCTION("2109D1EE", vfnms_f16(s1, s2, s3));
TEST_INSTRUCTION("210AD1EE", vfnms_f32(s1, s2, s3));
TEST_INSTRUCTION("031B92EE", vfnms_f64(d1, d2, d3));
TEST_INSTRUCTION("031012F2", vhadd_s16(d1, d2, d3));
TEST_INSTRUCTION("031022F2", vhadd_s32(d1, d2, d3));
TEST_INSTRUCTION("031002F2", vhadd_s8(d1, d2, d3));
TEST_INSTRUCTION("031012F3", vhadd_u16(d1, d2, d3));
TEST_INSTRUCTION("031022F3", vhadd_u32(d1, d2, d3));
TEST_INSTRUCTION("031002F3", vhadd_u8(d1, d2, d3));
TEST_INSTRUCTION("462014F2", vhadd_s16(q1, q2, q3));
TEST_INSTRUCTION("462024F2", vhadd_s32(q1, q2, q3));
TEST_INSTRUCTION("462004F2", vhadd_s8(q1, q2, q3));
TEST_INSTRUCTION("462014F3", vhadd_u16(q1, q2, q3));
TEST_INSTRUCTION("462024F3", vhadd_u32(q1, q2, q3));
TEST_INSTRUCTION("462004F3", vhadd_u8(q1, q2, q3));
TEST_INSTRUCTION("031212F2", vhsub_s16(d1, d2, d3));
TEST_INSTRUCTION("031222F2", vhsub_s32(d1, d2, d3));
TEST_INSTRUCTION("031202F2", vhsub_s8(d1, d2, d3));
TEST_INSTRUCTION("031212F3", vhsub_u16(d1, d2, d3));
TEST_INSTRUCTION("031222F3", vhsub_u32(d1, d2, d3));
TEST_INSTRUCTION("031202F3", vhsub_u8(d1, d2, d3));
TEST_INSTRUCTION("462214F2", vhsub_s16(q1, q2, q3));
TEST_INSTRUCTION("462224F2", vhsub_s32(q1, q2, q3));
TEST_INSTRUCTION("462204F2", vhsub_s8(q1, q2, q3));
TEST_INSTRUCTION("462214F3", vhsub_u16(q1, q2, q3));
TEST_INSTRUCTION("462224F3", vhsub_u32(q1, q2, q3));
TEST_INSTRUCTION("462204F3", vhsub_u8(q1, q2, q3));
TEST_INSTRUCTION("C10AF0FE", vins_f16(s1, s2));
TEST_INSTRUCTION("C20BF9EE", vjcvt_s32_f64(s1, d2));
TEST_INSTRUCTION("431722F4", vld1_16(d1, ptr_post(r2, r3)));
TEST_INSTRUCTION("831722F4", vld1_32(d1, ptr_post(r2, r3)));
TEST_INSTRUCTION("C31722F4", vld1_64(d1, ptr_post(r2, r3)));
TEST_INSTRUCTION("031722F4", vld1_8(d1, ptr_post(r2, r3)));
TEST_INSTRUCTION("4D1722F4", vld1_16(d1, ptr_post(r2, 8)));
TEST_INSTRUCTION("8D1722F4", vld1_32(d1, ptr_post(r2, 8)));
TEST_INSTRUCTION("CD1722F4", vld1_64(d1, ptr_post(r2, 8)));
TEST_INSTRUCTION("0D1722F4", vld1_8(d1, ptr_post(r2, 8)));
TEST_INSTRUCTION("441A23F4", vld1_16(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("841A23F4", vld1_32(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("C41A23F4", vld1_64(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("041A23F4", vld1_8(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("4D1A23F4", vld1_16(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("8D1A23F4", vld1_32(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("CD1A23F4", vld1_64(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("0D1A23F4", vld1_8(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("451624F4", vld1_16(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("851624F4", vld1_32(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("C51624F4", vld1_64(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("051624F4", vld1_8(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("4D1624F4", vld1_16(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("8D1624F4", vld1_32(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("CD1624F4", vld1_64(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("0D1624F4", vld1_8(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("461225F4", vld1_16(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("861225F4", vld1_32(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("C61225F4", vld1_64(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("061225F4", vld1_8(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("4D1225F4", vld1_16(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("8D1225F4", vld1_32(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("CD1225F4", vld1_64(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("0D1225F4", vld1_8(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("0310A2F4", vld1_8(d1.at(0), ptr_post(r2, r3)));
TEST_INSTRUCTION("2310A2F4", vld1_8(d1.at(1), ptr_post(r2, r3)));
TEST_INSTRUCTION("4310A2F4", vld1_8(d1.at(2), ptr_post(r2, r3)));
TEST_INSTRUCTION("6310A2F4", vld1_8(d1.at(3), ptr_post(r2, r3)));
TEST_INSTRUCTION("8310A2F4", vld1_8(d1.at(4), ptr_post(r2, r3)));
TEST_INSTRUCTION("A310A2F4", vld1_8(d1.at(5), ptr_post(r2, r3)));
TEST_INSTRUCTION("C310A2F4", vld1_8(d1.at(6), ptr_post(r2, r3)));
TEST_INSTRUCTION("E310A2F4", vld1_8(d1.at(7), ptr_post(r2, r3)));
TEST_INSTRUCTION("0D10A2F4", vld1_8(d1.at(0), ptr_post(r2, 1)));
TEST_INSTRUCTION("2D10A2F4", vld1_8(d1.at(1), ptr_post(r2, 1)));
TEST_INSTRUCTION("4D10A2F4", vld1_8(d1.at(2), ptr_post(r2, 1)));
TEST_INSTRUCTION("6D10A2F4", vld1_8(d1.at(3), ptr_post(r2, 1)));
TEST_INSTRUCTION("8D10A2F4", vld1_8(d1.at(4), ptr_post(r2, 1)));
TEST_INSTRUCTION("AD10A2F4", vld1_8(d1.at(5), ptr_post(r2, 1)));
TEST_INSTRUCTION("CD10A2F4", vld1_8(d1.at(6), ptr_post(r2, 1)));
TEST_INSTRUCTION("ED10A2F4", vld1_8(d1.at(7), ptr_post(r2, 1)));
TEST_INSTRUCTION("0314A2F4", vld1_16(d1.at(0), ptr_post(r2, r3)));
TEST_INSTRUCTION("4314A2F4", vld1_16(d1.at(1), ptr_post(r2, r3)));
TEST_INSTRUCTION("8314A2F4", vld1_16(d1.at(2), ptr_post(r2, r3)));
TEST_INSTRUCTION("C314A2F4", vld1_16(d1.at(3), ptr_post(r2, r3)));
TEST_INSTRUCTION("0D14A2F4", vld1_16(d1.at(0), ptr_post(r2, 2)));
TEST_INSTRUCTION("4D14A2F4", vld1_16(d1.at(1), ptr_post(r2, 2)));
TEST_INSTRUCTION("8D14A2F4", vld1_16(d1.at(2), ptr_post(r2, 2)));
TEST_INSTRUCTION("CD14A2F4", vld1_16(d1.at(3), ptr_post(r2, 2)));
TEST_INSTRUCTION("0318A2F4", vld1_32(d1.at(0), ptr_post(r2, r3)));
TEST_INSTRUCTION("8318A2F4", vld1_32(d1.at(1), ptr_post(r2, r3)));
TEST_INSTRUCTION("0D18A2F4", vld1_32(d1.at(0), ptr_post(r2, 4)));
TEST_INSTRUCTION("8D18A2F4", vld1_32(d1.at(1), ptr_post(r2, 4)));
TEST_INSTRUCTION("431CA2F4", vld1r_16(d1, ptr_post(r2, r3)));
TEST_INSTRUCTION("831CA2F4", vld1r_32(d1, ptr_post(r2, r3)));
TEST_INSTRUCTION("031CA2F4", vld1r_8(d1, ptr_post(r2, r3)));
TEST_INSTRUCTION("4D1CA2F4", vld1r_16(d1, ptr_post(r2, 2)));
TEST_INSTRUCTION("8D1CA2F4", vld1r_32(d1, ptr_post(r2, 4)));
TEST_INSTRUCTION("0D1CA2F4", vld1r_8(d1, ptr_post(r2, 1)));
TEST_INSTRUCTION("641CA3F4", vld1r_16(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("A41CA3F4", vld1r_32(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("241CA3F4", vld1r_8(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("6D1CA3F4", vld1r_16(d1, d2, ptr_post(r3, 2)));
TEST_INSTRUCTION("AD1CA3F4", vld1r_32(d1, d2, ptr_post(r3, 4)));
TEST_INSTRUCTION("2D1CA3F4", vld1r_8(d1, d2, ptr_post(r3, 1)));
TEST_INSTRUCTION("441823F4", vld2_16(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("841823F4", vld2_32(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("041823F4", vld2_8(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("4D1823F4", vld2_16(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("8D1823F4", vld2_32(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("0D1823F4", vld2_8(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("441823F4", vld2_16(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("841823F4", vld2_32(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("041823F4", vld2_8(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("4D1823F4", vld2_16(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("8D1823F4", vld2_32(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("0D1823F4", vld2_8(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("461325F4", vld2_16(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("861325F4", vld2_32(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("061325F4", vld2_8(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("4D1325F4", vld2_16(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("8D1325F4", vld2_32(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("0D1325F4", vld2_8(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("0411A3F4", vld2_8(d1.at(0), d2.at(0), ptr_post(r3, r4)));
TEST_INSTRUCTION("2411A3F4", vld2_8(d1.at(1), d2.at(1), ptr_post(r3, r4)));
TEST_INSTRUCTION("4411A3F4", vld2_8(d1.at(2), d2.at(2), ptr_post(r3, r4)));
TEST_INSTRUCTION("6411A3F4", vld2_8(d1.at(3), d2.at(3), ptr_post(r3, r4)));
TEST_INSTRUCTION("8411A3F4", vld2_8(d1.at(4), d2.at(4), ptr_post(r3, r4)));
TEST_INSTRUCTION("A411A3F4", vld2_8(d1.at(5), d2.at(5), ptr_post(r3, r4)));
TEST_INSTRUCTION("C411A3F4", vld2_8(d1.at(6), d2.at(6), ptr_post(r3, r4)));
TEST_INSTRUCTION("E411A3F4", vld2_8(d1.at(7), d2.at(7), ptr_post(r3, r4)));
TEST_INSTRUCTION("0D11A3F4", vld2_8(d1.at(0), d2.at(0), ptr_post(r3, 2)));
TEST_INSTRUCTION("2D11A3F4", vld2_8(d1.at(1), d2.at(1), ptr_post(r3, 2)));
TEST_INSTRUCTION("4D11A3F4", vld2_8(d1.at(2), d2.at(2), ptr_post(r3, 2)));
TEST_INSTRUCTION("6D11A3F4", vld2_8(d1.at(3), d2.at(3), ptr_post(r3, 2)));
TEST_INSTRUCTION("8D11A3F4", vld2_8(d1.at(4), d2.at(4), ptr_post(r3, 2)));
TEST_INSTRUCTION("AD11A3F4", vld2_8(d1.at(5), d2.at(5), ptr_post(r3, 2)));
TEST_INSTRUCTION("CD11A3F4", vld2_8(d1.at(6), d2.at(6), ptr_post(r3, 2)));
TEST_INSTRUCTION("ED11A3F4", vld2_8(d1.at(7), d2.at(7), ptr_post(r3, 2)));
TEST_INSTRUCTION("0415A3F4", vld2_16(d1.at(0), d2.at(0), ptr_post(r3, r4)));
TEST_INSTRUCTION("4415A3F4", vld2_16(d1.at(1), d2.at(1), ptr_post(r3, r4)));
TEST_INSTRUCTION("8415A3F4", vld2_16(d1.at(2), d2.at(2), ptr_post(r3, r4)));
TEST_INSTRUCTION("C415A3F4", vld2_16(d1.at(3), d2.at(3), ptr_post(r3, r4)));
TEST_INSTRUCTION("0D15A3F4", vld2_16(d1.at(0), d2.at(0), ptr_post(r3, 4)));
TEST_INSTRUCTION("4D15A3F4", vld2_16(d1.at(1), d2.at(1), ptr_post(r3, 4)));
TEST_INSTRUCTION("8D15A3F4", vld2_16(d1.at(2), d2.at(2), ptr_post(r3, 4)));
TEST_INSTRUCTION("CD15A3F4", vld2_16(d1.at(3), d2.at(3), ptr_post(r3, 4)));
TEST_INSTRUCTION("0415A3F4", vld2_16(d1.at(0), d2.at(0), ptr_post(r3, r4)));
TEST_INSTRUCTION("4415A3F4", vld2_16(d1.at(1), d2.at(1), ptr_post(r3, r4)));
TEST_INSTRUCTION("8415A3F4", vld2_16(d1.at(2), d2.at(2), ptr_post(r3, r4)));
TEST_INSTRUCTION("C415A3F4", vld2_16(d1.at(3), d2.at(3), ptr_post(r3, r4)));
TEST_INSTRUCTION("0D15A3F4", vld2_16(d1.at(0), d2.at(0), ptr_post(r3, 4)));
TEST_INSTRUCTION("4D15A3F4", vld2_16(d1.at(1), d2.at(1), ptr_post(r3, 4)));
TEST_INSTRUCTION("8D15A3F4", vld2_16(d1.at(2), d2.at(2), ptr_post(r3, 4)));
TEST_INSTRUCTION("CD15A3F4", vld2_16(d1.at(3), d2.at(3), ptr_post(r3, 4)));
TEST_INSTRUCTION("0419A3F4", vld2_32(d1.at(0), d2.at(0), ptr_post(r3, r4)));
TEST_INSTRUCTION("8419A3F4", vld2_32(d1.at(1), d2.at(1), ptr_post(r3, r4)));
TEST_INSTRUCTION("0D19A3F4", vld2_32(d1.at(0), d2.at(0), ptr_post(r3, 8)));
TEST_INSTRUCTION("8D19A3F4", vld2_32(d1.at(1), d2.at(1), ptr_post(r3, 8)));
TEST_INSTRUCTION("0419A3F4", vld2_32(d1.at(0), d2.at(0), ptr_post(r3, r4)));
TEST_INSTRUCTION("8419A3F4", vld2_32(d1.at(1), d2.at(1), ptr_post(r3, r4)));
TEST_INSTRUCTION("0D19A3F4", vld2_32(d1.at(0), d2.at(0), ptr_post(r3, 8)));
TEST_INSTRUCTION("8D19A3F4", vld2_32(d1.at(1), d2.at(1), ptr_post(r3, 8)));
TEST_INSTRUCTION("441DA3F4", vld2r_16(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("841DA3F4", vld2r_32(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("041DA3F4", vld2r_8(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("4D1DA3F4", vld2r_16(d1, d2, ptr_post(r3, 4)));
TEST_INSTRUCTION("8D1DA3F4", vld2r_32(d1, d2, ptr_post(r3, 8)));
TEST_INSTRUCTION("0D1DA3F4", vld2r_8(d1, d2, ptr_post(r3, 2)));
TEST_INSTRUCTION("441DA3F4", vld2r_16(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("841DA3F4", vld2r_32(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("041DA3F4", vld2r_8(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("4D1DA3F4", vld2r_16(d1, d2, ptr_post(r3, 4)));
TEST_INSTRUCTION("8D1DA3F4", vld2r_32(d1, d2, ptr_post(r3, 8)));
TEST_INSTRUCTION("0D1DA3F4", vld2r_8(d1, d2, ptr_post(r3, 2)));
TEST_INSTRUCTION("451424F4", vld3_16(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("851424F4", vld3_32(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("051424F4", vld3_8(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("4D1424F4", vld3_16(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("8D1424F4", vld3_32(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("0D1424F4", vld3_8(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("451424F4", vld3_16(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("851424F4", vld3_32(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("051424F4", vld3_8(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("4D1424F4", vld3_16(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("8D1424F4", vld3_32(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("0D1424F4", vld3_8(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("0512A4F4", vld3_8(d1.at(0), d2.at(0), d3.at(0), ptr_post(r4, r5)));
TEST_INSTRUCTION("2512A4F4", vld3_8(d1.at(1), d2.at(1), d3.at(1), ptr_post(r4, r5)));
TEST_INSTRUCTION("4512A4F4", vld3_8(d1.at(2), d2.at(2), d3.at(2), ptr_post(r4, r5)));
TEST_INSTRUCTION("6512A4F4", vld3_8(d1.at(3), d2.at(3), d3.at(3), ptr_post(r4, r5)));
TEST_INSTRUCTION("8512A4F4", vld3_8(d1.at(4), d2.at(4), d3.at(4), ptr_post(r4, r5)));
TEST_INSTRUCTION("A512A4F4", vld3_8(d1.at(5), d2.at(5), d3.at(5), ptr_post(r4, r5)));
TEST_INSTRUCTION("C512A4F4", vld3_8(d1.at(6), d2.at(6), d3.at(6), ptr_post(r4, r5)));
TEST_INSTRUCTION("E512A4F4", vld3_8(d1.at(7), d2.at(7), d3.at(7), ptr_post(r4, r5)));
TEST_INSTRUCTION("0D12A4F4", vld3_8(d1.at(0), d2.at(0), d3.at(0), ptr_post(r4, 3)));
TEST_INSTRUCTION("2D12A4F4", vld3_8(d1.at(1), d2.at(1), d3.at(1), ptr_post(r4, 3)));
TEST_INSTRUCTION("4D12A4F4", vld3_8(d1.at(2), d2.at(2), d3.at(2), ptr_post(r4, 3)));
TEST_INSTRUCTION("6D12A4F4", vld3_8(d1.at(3), d2.at(3), d3.at(3), ptr_post(r4, 3)));
TEST_INSTRUCTION("8D12A4F4", vld3_8(d1.at(4), d2.at(4), d3.at(4), ptr_post(r4, 3)));
TEST_INSTRUCTION("AD12A4F4", vld3_8(d1.at(5), d2.at(5), d3.at(5), ptr_post(r4, 3)));
TEST_INSTRUCTION("CD12A4F4", vld3_8(d1.at(6), d2.at(6), d3.at(6), ptr_post(r4, 3)));
TEST_INSTRUCTION("ED12A4F4", vld3_8(d1.at(7), d2.at(7), d3.at(7), ptr_post(r4, 3)));
TEST_INSTRUCTION("0516A4F4", vld3_16(d1.at(0), d2.at(0), d3.at(0), ptr_post(r4, r5)));
TEST_INSTRUCTION("4516A4F4", vld3_16(d1.at(1), d2.at(1), d3.at(1), ptr_post(r4, r5)));
TEST_INSTRUCTION("8516A4F4", vld3_16(d1.at(2), d2.at(2), d3.at(2), ptr_post(r4, r5)));
TEST_INSTRUCTION("C516A4F4", vld3_16(d1.at(3), d2.at(3), d3.at(3), ptr_post(r4, r5)));
TEST_INSTRUCTION("0D16A4F4", vld3_16(d1.at(0), d2.at(0), d3.at(0), ptr_post(r4, 6)));
TEST_INSTRUCTION("4D16A4F4", vld3_16(d1.at(1), d2.at(1), d3.at(1), ptr_post(r4, 6)));
TEST_INSTRUCTION("8D16A4F4", vld3_16(d1.at(2), d2.at(2), d3.at(2), ptr_post(r4, 6)));
TEST_INSTRUCTION("CD16A4F4", vld3_16(d1.at(3), d2.at(3), d3.at(3), ptr_post(r4, 6)));
TEST_INSTRUCTION("0516A4F4", vld3_16(d1.at(0), d2.at(0), d3.at(0), ptr_post(r4, r5)));
TEST_INSTRUCTION("4516A4F4", vld3_16(d1.at(1), d2.at(1), d3.at(1), ptr_post(r4, r5)));
TEST_INSTRUCTION("8516A4F4", vld3_16(d1.at(2), d2.at(2), d3.at(2), ptr_post(r4, r5)));
TEST_INSTRUCTION("C516A4F4", vld3_16(d1.at(3), d2.at(3), d3.at(3), ptr_post(r4, r5)));
TEST_INSTRUCTION("0D16A4F4", vld3_16(d1.at(0), d2.at(0), d3.at(0), ptr_post(r4, 6)));
TEST_INSTRUCTION("4D16A4F4", vld3_16(d1.at(1), d2.at(1), d3.at(1), ptr_post(r4, 6)));
TEST_INSTRUCTION("8D16A4F4", vld3_16(d1.at(2), d2.at(2), d3.at(2), ptr_post(r4, 6)));
TEST_INSTRUCTION("CD16A4F4", vld3_16(d1.at(3), d2.at(3), d3.at(3), ptr_post(r4, 6)));
TEST_INSTRUCTION("051AA4F4", vld3_32(d1.at(0), d2.at(0), d3.at(0), ptr_post(r4, r5)));
TEST_INSTRUCTION("851AA4F4", vld3_32(d1.at(1), d2.at(1), d3.at(1), ptr_post(r4, r5)));
TEST_INSTRUCTION("0D1AA4F4", vld3_32(d1.at(0), d2.at(0), d3.at(0), ptr_post(r4, 12)));
TEST_INSTRUCTION("8D1AA4F4", vld3_32(d1.at(1), d2.at(1), d3.at(1), ptr_post(r4, 12)));
TEST_INSTRUCTION("051AA4F4", vld3_32(d1.at(0), d2.at(0), d3.at(0), ptr_post(r4, r5)));
TEST_INSTRUCTION("851AA4F4", vld3_32(d1.at(1), d2.at(1), d3.at(1), ptr_post(r4, r5)));
TEST_INSTRUCTION("0D1AA4F4", vld3_32(d1.at(0), d2.at(0), d3.at(0), ptr_post(r4, 12)));
TEST_INSTRUCTION("8D1AA4F4", vld3_32(d1.at(1), d2.at(1), d3.at(1), ptr_post(r4, 12)));
TEST_INSTRUCTION("451EA4F4", vld3r_16(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("851EA4F4", vld3r_32(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("051EA4F4", vld3r_8(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("4D1EA4F4", vld3r_16(d1, d2, d3, ptr_post(r4, 6)));
TEST_INSTRUCTION("8D1EA4F4", vld3r_32(d1, d2, d3, ptr_post(r4, 12)));
TEST_INSTRUCTION("0D1EA4F4", vld3r_8(d1, d2, d3, ptr_post(r4, 3)));
TEST_INSTRUCTION("451EA4F4", vld3r_16(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("851EA4F4", vld3r_32(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("051EA4F4", vld3r_8(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("4D1EA4F4", vld3r_16(d1, d2, d3, ptr_post(r4, 6)));
TEST_INSTRUCTION("8D1EA4F4", vld3r_32(d1, d2, d3, ptr_post(r4, 12)));
TEST_INSTRUCTION("0D1EA4F4", vld3r_8(d1, d2, d3, ptr_post(r4, 3)));
TEST_INSTRUCTION("461025F4", vld4_16(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("861025F4", vld4_32(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("061025F4", vld4_8(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("4D1025F4", vld4_16(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("8D1025F4", vld4_32(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("0D1025F4", vld4_8(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("461025F4", vld4_16(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("861025F4", vld4_32(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("061025F4", vld4_8(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("4D1025F4", vld4_16(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("8D1025F4", vld4_32(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("0D1025F4", vld4_8(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("0613A5F4", vld4_8(d1.at(0), d2.at(0), d3.at(0), d4.at(0), ptr_post(r5, r6)));
TEST_INSTRUCTION("2613A5F4", vld4_8(d1.at(1), d2.at(1), d3.at(1), d4.at(1), ptr_post(r5, r6)));
TEST_INSTRUCTION("4613A5F4", vld4_8(d1.at(2), d2.at(2), d3.at(2), d4.at(2), ptr_post(r5, r6)));
TEST_INSTRUCTION("6613A5F4", vld4_8(d1.at(3), d2.at(3), d3.at(3), d4.at(3), ptr_post(r5, r6)));
TEST_INSTRUCTION("8613A5F4", vld4_8(d1.at(4), d2.at(4), d3.at(4), d4.at(4), ptr_post(r5, r6)));
TEST_INSTRUCTION("A613A5F4", vld4_8(d1.at(5), d2.at(5), d3.at(5), d4.at(5), ptr_post(r5, r6)));
TEST_INSTRUCTION("C613A5F4", vld4_8(d1.at(6), d2.at(6), d3.at(6), d4.at(6), ptr_post(r5, r6)));
TEST_INSTRUCTION("E613A5F4", vld4_8(d1.at(7), d2.at(7), d3.at(7), d4.at(7), ptr_post(r5, r6)));
TEST_INSTRUCTION("0D13A5F4", vld4_8(d1.at(0), d2.at(0), d3.at(0), d4.at(0), ptr_post(r5, 4)));
TEST_INSTRUCTION("2D13A5F4", vld4_8(d1.at(1), d2.at(1), d3.at(1), d4.at(1), ptr_post(r5, 4)));
TEST_INSTRUCTION("4D13A5F4", vld4_8(d1.at(2), d2.at(2), d3.at(2), d4.at(2), ptr_post(r5, 4)));
TEST_INSTRUCTION("6D13A5F4", vld4_8(d1.at(3), d2.at(3), d3.at(3), d4.at(3), ptr_post(r5, 4)));
TEST_INSTRUCTION("8D13A5F4", vld4_8(d1.at(4), d2.at(4), d3.at(4), d4.at(4), ptr_post(r5, 4)));
TEST_INSTRUCTION("AD13A5F4", vld4_8(d1.at(5), d2.at(5), d3.at(5), d4.at(5), ptr_post(r5, 4)));
TEST_INSTRUCTION("CD13A5F4", vld4_8(d1.at(6), d2.at(6), d3.at(6), d4.at(6), ptr_post(r5, 4)));
TEST_INSTRUCTION("ED13A5F4", vld4_8(d1.at(7), d2.at(7), d3.at(7), d4.at(7), ptr_post(r5, 4)));
TEST_INSTRUCTION("0617A5F4", vld4_16(d1.at(0), d2.at(0), d3.at(0), d4.at(0), ptr_post(r5, r6)));
TEST_INSTRUCTION("4617A5F4", vld4_16(d1.at(1), d2.at(1), d3.at(1), d4.at(1), ptr_post(r5, r6)));
TEST_INSTRUCTION("8617A5F4", vld4_16(d1.at(2), d2.at(2), d3.at(2), d4.at(2), ptr_post(r5, r6)));
TEST_INSTRUCTION("C617A5F4", vld4_16(d1.at(3), d2.at(3), d3.at(3), d4.at(3), ptr_post(r5, r6)));
TEST_INSTRUCTION("0D17A5F4", vld4_16(d1.at(0), d2.at(0), d3.at(0), d4.at(0), ptr_post(r5, 8)));
TEST_INSTRUCTION("4D17A5F4", vld4_16(d1.at(1), d2.at(1), d3.at(1), d4.at(1), ptr_post(r5, 8)));
TEST_INSTRUCTION("8D17A5F4", vld4_16(d1.at(2), d2.at(2), d3.at(2), d4.at(2), ptr_post(r5, 8)));
TEST_INSTRUCTION("CD17A5F4", vld4_16(d1.at(3), d2.at(3), d3.at(3), d4.at(3), ptr_post(r5, 8)));
TEST_INSTRUCTION("0617A5F4", vld4_16(d1.at(0), d2.at(0), d3.at(0), d4.at(0), ptr_post(r5, r6)));
TEST_INSTRUCTION("4617A5F4", vld4_16(d1.at(1), d2.at(1), d3.at(1), d4.at(1), ptr_post(r5, r6)));
TEST_INSTRUCTION("8617A5F4", vld4_16(d1.at(2), d2.at(2), d3.at(2), d4.at(2), ptr_post(r5, r6)));
TEST_INSTRUCTION("C617A5F4", vld4_16(d1.at(3), d2.at(3), d3.at(3), d4.at(3), ptr_post(r5, r6)));
TEST_INSTRUCTION("0D17A5F4", vld4_16(d1.at(0), d2.at(0), d3.at(0), d4.at(0), ptr_post(r5, 8)));
TEST_INSTRUCTION("4D17A5F4", vld4_16(d1.at(1), d2.at(1), d3.at(1), d4.at(1), ptr_post(r5, 8)));
TEST_INSTRUCTION("8D17A5F4", vld4_16(d1.at(2), d2.at(2), d3.at(2), d4.at(2), ptr_post(r5, 8)));
TEST_INSTRUCTION("CD17A5F4", vld4_16(d1.at(3), d2.at(3), d3.at(3), d4.at(3), ptr_post(r5, 8)));
TEST_INSTRUCTION("061BA5F4", vld4_32(d1.at(0), d2.at(0), d3.at(0), d4.at(0), ptr_post(r5, r6)));
TEST_INSTRUCTION("861BA5F4", vld4_32(d1.at(1), d2.at(1), d3.at(1), d4.at(1), ptr_post(r5, r6)));
TEST_INSTRUCTION("0D1BA5F4", vld4_32(d1.at(0), d2.at(0), d3.at(0), d4.at(0), ptr_post(r5, 16)));
TEST_INSTRUCTION("8D1BA5F4", vld4_32(d1.at(1), d2.at(1), d3.at(1), d4.at(1), ptr_post(r5, 16)));
TEST_INSTRUCTION("061BA5F4", vld4_32(d1.at(0), d2.at(0), d3.at(0), d4.at(0), ptr_post(r5, r6)));
TEST_INSTRUCTION("861BA5F4", vld4_32(d1.at(1), d2.at(1), d3.at(1), d4.at(1), ptr_post(r5, r6)));
TEST_INSTRUCTION("0D1BA5F4", vld4_32(d1.at(0), d2.at(0), d3.at(0), d4.at(0), ptr_post(r5, 16)));
TEST_INSTRUCTION("8D1BA5F4", vld4_32(d1.at(1), d2.at(1), d3.at(1), d4.at(1), ptr_post(r5, 16)));
TEST_INSTRUCTION("461FA5F4", vld4r_16(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("861FA5F4", vld4r_32(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("061FA5F4", vld4r_8(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("4D1FA5F4", vld4r_16(d1, d2, d3, d4, ptr_post(r5, 8)));
TEST_INSTRUCTION("8D1FA5F4", vld4r_32(d1, d2, d3, d4, ptr_post(r5, 16)));
TEST_INSTRUCTION("0D1FA5F4", vld4r_8(d1, d2, d3, d4, ptr_post(r5, 4)));
TEST_INSTRUCTION("461FA5F4", vld4r_16(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("861FA5F4", vld4r_32(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("061FA5F4", vld4r_8(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("4D1FA5F4", vld4r_16(d1, d2, d3, d4, ptr_post(r5, 8)));
TEST_INSTRUCTION("8D1FA5F4", vld4r_32(d1, d2, d3, d4, ptr_post(r5, 16)));
TEST_INSTRUCTION("0D1FA5F4", vld4r_8(d1, d2, d3, d4, ptr_post(r5, 4)));
TEST_INSTRUCTION("040A30ED", vldmdb_32(ptr_pre(r0), VecSList{s0, s1, s2, s3}));
TEST_INSTRUCTION("080B30ED", vldmdb_64(ptr_pre(r0), VecDList{d0, d1, d2, d3}));
TEST_INSTRUCTION("040A91EC", vldmia_32(ptr(r1), VecSList{s0, s1, s2, s3}));
TEST_INSTRUCTION("080B97EC", vldmia_64(ptr(r7), VecDList{d0, d1, d2, d3}));
TEST_INSTRUCTION("040AB1EC", vldmia_32(ptr_pre(r1), VecSList{s0, s1, s2, s3}));
TEST_INSTRUCTION("080BB7EC", vldmia_64(ptr_pre(r7), VecDList{d0, d1, d2, d3}));
TEST_INSTRUCTION("0209D2ED", vldr_16(s1, ptr(r2, 4)));
TEST_INSTRUCTION("2009DFED", vldr_16(s1, ptr(pc, 64)));
TEST_INSTRUCTION("010AD2ED", vldr_32(s1, ptr(r2, 4)));
TEST_INSTRUCTION("140ADFED", vldr_32(s1, ptr(pc, 80)));
TEST_INSTRUCTION("011B92ED", vldr_64(d1, ptr(r2, 4)));
TEST_INSTRUCTION("191B9FED", vldr_64(d1, ptr(pc, 100)));
TEST_INSTRUCTION("031F12F2", vmax_f16(d1, d2, d3));
TEST_INSTRUCTION("031F02F2", vmax_f32(d1, d2, d3));
TEST_INSTRUCTION("462F14F2", vmax_f16(q1, q2, q3));
TEST_INSTRUCTION("462F04F2", vmax_f32(q1, q2, q3));
TEST_INSTRUCTION("031612F2", vmax_s16(d1, d2, d3));
TEST_INSTRUCTION("031622F2", vmax_s32(d1, d2, d3));
TEST_INSTRUCTION("031602F2", vmax_s8(d1, d2, d3));
TEST_INSTRUCTION("031612F3", vmax_u16(d1, d2, d3));
TEST_INSTRUCTION("031622F3", vmax_u32(d1, d2, d3));
TEST_INSTRUCTION("031602F3", vmax_u8(d1, d2, d3));
TEST_INSTRUCTION("462614F2", vmax_s16(q1, q2, q3));
TEST_INSTRUCTION("462624F2", vmax_s32(q1, q2, q3));
TEST_INSTRUCTION("462604F2", vmax_s8(q1, q2, q3));
TEST_INSTRUCTION("462614F3", vmax_u16(q1, q2, q3));
TEST_INSTRUCTION("462624F3", vmax_u32(q1, q2, q3));
TEST_INSTRUCTION("462604F3", vmax_u8(q1, q2, q3));
TEST_INSTRUCTION("2109C1FE", vmaxnm_f16(s1, s2, s3));
TEST_INSTRUCTION("210AC1FE", vmaxnm_f32(s1, s2, s3));
TEST_INSTRUCTION("031B82FE", vmaxnm_f64(d1, d2, d3));
TEST_INSTRUCTION("131F12F3", vmaxnm_f16(d1, d2, d3));
TEST_INSTRUCTION("131F02F3", vmaxnm_f32(d1, d2, d3));
TEST_INSTRUCTION("562F14F3", vmaxnm_f16(q1, q2, q3));
TEST_INSTRUCTION("562F04F3", vmaxnm_f32(q1, q2, q3));
TEST_INSTRUCTION("031F32F2", vmin_f16(d1, d2, d3));
TEST_INSTRUCTION("031F22F2", vmin_f32(d1, d2, d3));
TEST_INSTRUCTION("462F34F2", vmin_f16(q1, q2, q3));
TEST_INSTRUCTION("462F24F2", vmin_f32(q1, q2, q3));
TEST_INSTRUCTION("131612F2", vmin_s16(d1, d2, d3));
TEST_INSTRUCTION("131622F2", vmin_s32(d1, d2, d3));
TEST_INSTRUCTION("131602F2", vmin_s8(d1, d2, d3));
TEST_INSTRUCTION("131612F3", vmin_u16(d1, d2, d3));
TEST_INSTRUCTION("131622F3", vmin_u32(d1, d2, d3));
TEST_INSTRUCTION("131602F3", vmin_u8(d1, d2, d3));
TEST_INSTRUCTION("562614F2", vmin_s16(q1, q2, q3));
TEST_INSTRUCTION("562624F2", vmin_s32(q1, q2, q3));
TEST_INSTRUCTION("562604F2", vmin_s8(q1, q2, q3));
TEST_INSTRUCTION("562614F3", vmin_u16(q1, q2, q3));
TEST_INSTRUCTION("562624F3", vmin_u32(q1, q2, q3));
TEST_INSTRUCTION("562604F3", vmin_u8(q1, q2, q3));
TEST_INSTRUCTION("6109C1FE", vminnm_f16(s1, s2, s3));
TEST_INSTRUCTION("610AC1FE", vminnm_f32(s1, s2, s3));
TEST_INSTRUCTION("431B82FE", vminnm_f64(d1, d2, d3));
TEST_INSTRUCTION("131F32F3", vminnm_f16(d1, d2, d3));
TEST_INSTRUCTION("131F22F3", vminnm_f32(d1, d2, d3));
TEST_INSTRUCTION("562F34F3", vminnm_f16(q1, q2, q3));
TEST_INSTRUCTION("562F24F3", vminnm_f32(q1, q2, q3));
TEST_INSTRUCTION("210941EE", vmla_f16(s1, s2, s3));
TEST_INSTRUCTION("210A41EE", vmla_f32(s1, s2, s3));
TEST_INSTRUCTION("031B02EE", vmla_f64(d1, d2, d3));
TEST_INSTRUCTION("131D12F2", vmla_f16(d1, d2, d3));
TEST_INSTRUCTION("131D02F2", vmla_f32(d1, d2, d3));
TEST_INSTRUCTION("562D14F2", vmla_f16(q1, q2, q3));
TEST_INSTRUCTION("562D04F2", vmla_f32(q1, q2, q3));
TEST_INSTRUCTION("031912F2", vmla_s16(d1, d2, d3));
TEST_INSTRUCTION("031922F2", vmla_s32(d1, d2, d3));
TEST_INSTRUCTION("031902F2", vmla_s8(d1, d2, d3));
TEST_INSTRUCTION("031912F2", vmla_u16(d1, d2, d3));
TEST_INSTRUCTION("031922F2", vmla_u32(d1, d2, d3));
TEST_INSTRUCTION("031902F2", vmla_u8(d1, d2, d3));
TEST_INSTRUCTION("462914F2", vmla_s16(q1, q2, q3));
TEST_INSTRUCTION("462924F2", vmla_s32(q1, q2, q3));
TEST_INSTRUCTION("462904F2", vmla_s8(q1, q2, q3));
TEST_INSTRUCTION("462914F2", vmla_u16(q1, q2, q3));
TEST_INSTRUCTION("462924F2", vmla_u32(q1, q2, q3));
TEST_INSTRUCTION("462904F2", vmla_u8(q1, q2, q3));
TEST_INSTRUCTION("431192F2", vmla_f16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1192F2", vmla_f16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631192F2", vmla_f16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1192F2", vmla_f16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("432194F3", vmla_f16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2194F3", vmla_f16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632194F3", vmla_f16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2194F3", vmla_f16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("4311A2F2", vmla_f32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("6311A2F2", vmla_f32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("4321A4F3", vmla_f32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("6321A4F3", vmla_f32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("431092F2", vmla_s16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1092F2", vmla_s16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631092F2", vmla_s16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1092F2", vmla_s16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("431092F2", vmla_u16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1092F2", vmla_u16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631092F2", vmla_u16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1092F2", vmla_u16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("432094F3", vmla_s16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2094F3", vmla_s16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632094F3", vmla_s16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2094F3", vmla_s16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("432094F3", vmla_u16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2094F3", vmla_u16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632094F3", vmla_u16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2094F3", vmla_u16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("4310A2F2", vmla_s32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("6310A2F2", vmla_s32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("4310A2F2", vmla_u32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("6310A2F2", vmla_u32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("4320A4F3", vmla_s32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("6320A4F3", vmla_s32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("4320A4F3", vmla_u32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("6320A4F3", vmla_u32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("032892F2", vmlal_s16(q1, d2, d3));
TEST_INSTRUCTION("0328A2F2", vmlal_s32(q1, d2, d3));
TEST_INSTRUCTION("032882F2", vmlal_s8(q1, d2, d3));
TEST_INSTRUCTION("032892F3", vmlal_u16(q1, d2, d3));
TEST_INSTRUCTION("0328A2F3", vmlal_u32(q1, d2, d3));
TEST_INSTRUCTION("032882F3", vmlal_u8(q1, d2, d3));
TEST_INSTRUCTION("432292F2", vmlal_s16(q1, d2, d3.at(0)));
TEST_INSTRUCTION("4B2292F2", vmlal_s16(q1, d2, d3.at(1)));
TEST_INSTRUCTION("632292F2", vmlal_s16(q1, d2, d3.at(2)));
TEST_INSTRUCTION("6B2292F2", vmlal_s16(q1, d2, d3.at(3)));
TEST_INSTRUCTION("432292F3", vmlal_u16(q1, d2, d3.at(0)));
TEST_INSTRUCTION("4B2292F3", vmlal_u16(q1, d2, d3.at(1)));
TEST_INSTRUCTION("632292F3", vmlal_u16(q1, d2, d3.at(2)));
TEST_INSTRUCTION("6B2292F3", vmlal_u16(q1, d2, d3.at(3)));
TEST_INSTRUCTION("4322A2F2", vmlal_s32(q1, d2, d3.at(0)));
TEST_INSTRUCTION("6322A2F2", vmlal_s32(q1, d2, d3.at(1)));
TEST_INSTRUCTION("4322A2F3", vmlal_u32(q1, d2, d3.at(0)));
TEST_INSTRUCTION("6322A2F3", vmlal_u32(q1, d2, d3.at(1)));
TEST_INSTRUCTION("610941EE", vmls_f16(s1, s2, s3));
TEST_INSTRUCTION("610A41EE", vmls_f32(s1, s2, s3));
TEST_INSTRUCTION("431B02EE", vmls_f64(d1, d2, d3));
TEST_INSTRUCTION("131D32F2", vmls_f16(d1, d2, d3));
TEST_INSTRUCTION("131D22F2", vmls_f32(d1, d2, d3));
TEST_INSTRUCTION("562D34F2", vmls_f16(q1, q2, q3));
TEST_INSTRUCTION("562D24F2", vmls_f32(q1, q2, q3));
TEST_INSTRUCTION("031912F3", vmls_s16(d1, d2, d3));
TEST_INSTRUCTION("031922F3", vmls_s32(d1, d2, d3));
TEST_INSTRUCTION("031902F3", vmls_s8(d1, d2, d3));
TEST_INSTRUCTION("031912F3", vmls_u16(d1, d2, d3));
TEST_INSTRUCTION("031922F3", vmls_u32(d1, d2, d3));
TEST_INSTRUCTION("031902F3", vmls_u8(d1, d2, d3));
TEST_INSTRUCTION("462914F3", vmls_s16(q1, q2, q3));
TEST_INSTRUCTION("462924F3", vmls_s32(q1, q2, q3));
TEST_INSTRUCTION("462904F3", vmls_s8(q1, q2, q3));
TEST_INSTRUCTION("462914F3", vmls_u16(q1, q2, q3));
TEST_INSTRUCTION("462924F3", vmls_u32(q1, q2, q3));
TEST_INSTRUCTION("462904F3", vmls_u8(q1, q2, q3));
TEST_INSTRUCTION("431592F2", vmls_f16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1592F2", vmls_f16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631592F2", vmls_f16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1592F2", vmls_f16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("432594F3", vmls_f16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2594F3", vmls_f16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632594F3", vmls_f16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2594F3", vmls_f16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("4315A2F2", vmls_f32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("6315A2F2", vmls_f32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("4325A4F3", vmls_f32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("6325A4F3", vmls_f32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("431492F2", vmls_s16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1492F2", vmls_s16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631492F2", vmls_s16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1492F2", vmls_s16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("431492F2", vmls_u16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1492F2", vmls_u16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631492F2", vmls_u16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1492F2", vmls_u16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("432494F3", vmls_s16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2494F3", vmls_s16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632494F3", vmls_s16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2494F3", vmls_s16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("432494F3", vmls_u16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2494F3", vmls_u16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632494F3", vmls_u16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2494F3", vmls_u16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("4314A2F2", vmls_s32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("6314A2F2", vmls_s32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("4314A2F2", vmls_u32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("6314A2F2", vmls_u32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("4324A4F3", vmls_s32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("6324A4F3", vmls_s32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("4324A4F3", vmls_u32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("6324A4F3", vmls_u32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("032A92F2", vmlsl_s16(q1, d2, d3));
TEST_INSTRUCTION("032AA2F2", vmlsl_s32(q1, d2, d3));
TEST_INSTRUCTION("032A82F2", vmlsl_s8(q1, d2, d3));
TEST_INSTRUCTION("032A92F3", vmlsl_u16(q1, d2, d3));
TEST_INSTRUCTION("032AA2F3", vmlsl_u32(q1, d2, d3));
TEST_INSTRUCTION("032A82F3", vmlsl_u8(q1, d2, d3));
TEST_INSTRUCTION("432692F2", vmlsl_s16(q1, d2, d3.at(0)));
TEST_INSTRUCTION("4B2692F2", vmlsl_s16(q1, d2, d3.at(1)));
TEST_INSTRUCTION("632692F2", vmlsl_s16(q1, d2, d3.at(2)));
TEST_INSTRUCTION("6B2692F2", vmlsl_s16(q1, d2, d3.at(3)));
TEST_INSTRUCTION("432692F3", vmlsl_u16(q1, d2, d3.at(0)));
TEST_INSTRUCTION("4B2692F3", vmlsl_u16(q1, d2, d3.at(1)));
TEST_INSTRUCTION("632692F3", vmlsl_u16(q1, d2, d3.at(2)));
TEST_INSTRUCTION("6B2692F3", vmlsl_u16(q1, d2, d3.at(3)));
TEST_INSTRUCTION("4326A2F2", vmlsl_s32(q1, d2, d3.at(0)));
TEST_INSTRUCTION("6326A2F2", vmlsl_s32(q1, d2, d3.at(1)));
TEST_INSTRUCTION("4326A2F3", vmlsl_u32(q1, d2, d3.at(0)));
TEST_INSTRUCTION("6326A2F3", vmlsl_u32(q1, d2, d3.at(1)));
TEST_INSTRUCTION("462C04FC", vmmla_bf16(q1, q2, q3));
TEST_INSTRUCTION("101911EE", vmov_f16(r1, s2));
TEST_INSTRUCTION("902900EE", vmov_f16(s1, r2));
TEST_INSTRUCTION("101A11EE", vmov(r1, s2));
TEST_INSTRUCTION("902A00EE", vmov(s1, r2));
TEST_INSTRUCTION("311A52EC", vmov(r1, r2, s3, s4));
TEST_INSTRUCTION("303A44EC", vmov(s1, s2, r3, r4));
TEST_INSTRUCTION("131B52EC", vmov(r1, r2, d3));
TEST_INSTRUCTION("112B43EC", vmov(d1, r2, r3));
TEST_INSTRUCTION("410AF0EE", vmov_f32(s1, s2));
TEST_INSTRUCTION("421BB0EE", vmov_f64(d1, d2));
TEST_INSTRUCTION("102B41EE", vmov_s8(d1.at(0), r2));
TEST_INSTRUCTION("302B41EE", vmov_s8(d1.at(1), r2));
TEST_INSTRUCTION("502B41EE", vmov_s8(d1.at(2), r2));
TEST_INSTRUCTION("702B41EE", vmov_s8(d1.at(3), r2));
TEST_INSTRUCTION("102B61EE", vmov_s8(d1.at(4), r2));
TEST_INSTRUCTION("302B61EE", vmov_s8(d1.at(5), r2));
TEST_INSTRUCTION("502B61EE", vmov_s8(d1.at(6), r2));
TEST_INSTRUCTION("702B61EE", vmov_s8(d1.at(7), r2));
TEST_INSTRUCTION("102B41EE", vmov_u8(d1.at(0), r2));
TEST_INSTRUCTION("302B41EE", vmov_u8(d1.at(1), r2));
TEST_INSTRUCTION("502B41EE", vmov_u8(d1.at(2), r2));
TEST_INSTRUCTION("702B41EE", vmov_u8(d1.at(3), r2));
TEST_INSTRUCTION("102B61EE", vmov_u8(d1.at(4), r2));
TEST_INSTRUCTION("302B61EE", vmov_u8(d1.at(5), r2));
TEST_INSTRUCTION("502B61EE", vmov_u8(d1.at(6), r2));
TEST_INSTRUCTION("702B61EE", vmov_u8(d1.at(7), r2));
TEST_INSTRUCTION("302B01EE", vmov_s16(d1.at(0), r2));
TEST_INSTRUCTION("702B01EE", vmov_s16(d1.at(1), r2));
TEST_INSTRUCTION("302B21EE", vmov_s16(d1.at(2), r2));
TEST_INSTRUCTION("702B21EE", vmov_s16(d1.at(3), r2));
TEST_INSTRUCTION("302B01EE", vmov_u16(d1.at(0), r2));
TEST_INSTRUCTION("702B01EE", vmov_u16(d1.at(1), r2));
TEST_INSTRUCTION("302B21EE", vmov_u16(d1.at(2), r2));
TEST_INSTRUCTION("702B21EE", vmov_u16(d1.at(3), r2));
TEST_INSTRUCTION("102B01EE", vmov_s32(d1.at(0), r2));
TEST_INSTRUCTION("102B21EE", vmov_s32(d1.at(1), r2));
TEST_INSTRUCTION("102B01EE", vmov_u32(d1.at(0), r2));
TEST_INSTRUCTION("102B21EE", vmov_u32(d1.at(1), r2));
TEST_INSTRUCTION("101B52EE", vmov_s8(r1, d2.at(0)));
TEST_INSTRUCTION("301B52EE", vmov_s8(r1, d2.at(1)));
TEST_INSTRUCTION("501B52EE", vmov_s8(r1, d2.at(2)));
TEST_INSTRUCTION("701B52EE", vmov_s8(r1, d2.at(3)));
TEST_INSTRUCTION("101B72EE", vmov_s8(r1, d2.at(4)));
TEST_INSTRUCTION("301B72EE", vmov_s8(r1, d2.at(5)));
TEST_INSTRUCTION("501B72EE", vmov_s8(r1, d2.at(6)));
TEST_INSTRUCTION("701B72EE", vmov_s8(r1, d2.at(7)));
TEST_INSTRUCTION("101BD2EE", vmov_u8(r1, d2.at(0)));
TEST_INSTRUCTION("301BD2EE", vmov_u8(r1, d2.at(1)));
TEST_INSTRUCTION("501BD2EE", vmov_u8(r1, d2.at(2)));
TEST_INSTRUCTION("701BD2EE", vmov_u8(r1, d2.at(3)));
TEST_INSTRUCTION("101BF2EE", vmov_u8(r1, d2.at(4)));
TEST_INSTRUCTION("301BF2EE", vmov_u8(r1, d2.at(5)));
TEST_INSTRUCTION("501BF2EE", vmov_u8(r1, d2.at(6)));
TEST_INSTRUCTION("701BF2EE", vmov_u8(r1, d2.at(7)));
TEST_INSTRUCTION("301B12EE", vmov_s16(r1, d2.at(0)));
TEST_INSTRUCTION("701B12EE", vmov_s16(r1, d2.at(1)));
TEST_INSTRUCTION("301B32EE", vmov_s16(r1, d2.at(2)));
TEST_INSTRUCTION("701B32EE", vmov_s16(r1, d2.at(3)));
TEST_INSTRUCTION("301B92EE", vmov_u16(r1, d2.at(0)));
TEST_INSTRUCTION("701B92EE", vmov_u16(r1, d2.at(1)));
TEST_INSTRUCTION("301BB2EE", vmov_u16(r1, d2.at(2)));
TEST_INSTRUCTION("701BB2EE", vmov_u16(r1, d2.at(3)));
TEST_INSTRUCTION("101B12EE", vmov_s32(r1, d2.at(0)));
TEST_INSTRUCTION("101B32EE", vmov_s32(r1, d2.at(1)));
TEST_INSTRUCTION("101B12EE", vmov_u32(r1, d2.at(0)));
TEST_INSTRUCTION("101B32EE", vmov_u32(r1, d2.at(1)));
TEST_INSTRUCTION("121122F2", vmov(d1, d2));
TEST_INSTRUCTION("542124F2", vmov(q1, q2));
TEST_INSTRUCTION("1F1881F2", vmov_s16(d1, 0x1F));
TEST_INSTRUCTION("101880F3", vmov_s16(d1, 0x80));
TEST_INSTRUCTION("1F1887F3", vmov_s16(d1, 0xFF));
TEST_INSTRUCTION("1F1A81F2", vmov_s16(d1, 0x1F00));
TEST_INSTRUCTION("1F1A87F3", vmov_s16(d1, 0xFF00));
TEST_INSTRUCTION("1F1081F2", vmov_s32(d1, 0x1F));
TEST_INSTRUCTION("101080F3", vmov_s32(d1, 0x80));
TEST_INSTRUCTION("1F1087F3", vmov_s32(d1, 0xFF));
TEST_INSTRUCTION("1F1281F2", vmov_s32(d1, 0x1F00));
TEST_INSTRUCTION("1F1287F3", vmov_s32(d1, 0xFF00));
TEST_INSTRUCTION("1F1481F2", vmov_s32(d1, 0x1F0000));
TEST_INSTRUCTION("1F1487F3", vmov_s32(d1, 0xFF0000));
TEST_INSTRUCTION("1F1687F3", vmov_s32(d1, 0xFF000000));
TEST_INSTRUCTION("1F1C87F3", vmov_s32(d1, 0x0000FFFF));
TEST_INSTRUCTION("1F1D87F3", vmov_s32(d1, 0x00FFFFFF));
TEST_INSTRUCTION("301E82F3", vmov_s64(d1, 0xFF00FF0000000000));
TEST_INSTRUCTION("3F1E80F2", vmov_s64(d1, 0x00000000FFFFFFFF));
TEST_INSTRUCTION("1F1881F2", vmov_u16(d1, 0x1F));
TEST_INSTRUCTION("101880F3", vmov_u16(d1, 0x80));
TEST_INSTRUCTION("1F1887F3", vmov_u16(d1, 0xFF));
TEST_INSTRUCTION("1F1A81F2", vmov_u16(d1, 0x1F00));
TEST_INSTRUCTION("1F1A87F3", vmov_u16(d1, 0xFF00));
TEST_INSTRUCTION("1F1081F2", vmov_u32(d1, 0x1F));
TEST_INSTRUCTION("101080F3", vmov_u32(d1, 0x80));
TEST_INSTRUCTION("1F1087F3", vmov_u32(d1, 0xFF));
TEST_INSTRUCTION("1F1281F2", vmov_u32(d1, 0x1F00));
TEST_INSTRUCTION("1F1287F3", vmov_u32(d1, 0xFF00));
TEST_INSTRUCTION("1F1481F2", vmov_u32(d1, 0x1F0000));
TEST_INSTRUCTION("1F1487F3", vmov_u32(d1, 0xFF0000));
TEST_INSTRUCTION("1F1687F3", vmov_u32(d1, 0xFF000000));
TEST_INSTRUCTION("1F1C87F3", vmov_u32(d1, 0x0000FFFF));
TEST_INSTRUCTION("1F1D87F3", vmov_u32(d1, 0x00FFFFFF));
TEST_INSTRUCTION("301E82F3", vmov_u64(d1, 0xFF00FF0000000000));
TEST_INSTRUCTION("3F1E80F2", vmov_u64(d1, 0x00000000FFFFFFFF));
TEST_INSTRUCTION("5F2881F2", vmov_s16(q1, 0x1F));
TEST_INSTRUCTION("502880F3", vmov_s16(q1, 0x80));
TEST_INSTRUCTION("5F2887F3", vmov_s16(q1, 0xFF));
TEST_INSTRUCTION("5F2A81F2", vmov_s16(q1, 0x1F00));
TEST_INSTRUCTION("5F2A87F3", vmov_s16(q1, 0xFF00));
TEST_INSTRUCTION("5F2081F2", vmov_s32(q1, 0x1F));
TEST_INSTRUCTION("502080F3", vmov_s32(q1, 0x80));
TEST_INSTRUCTION("5F2087F3", vmov_s32(q1, 0xFF));
TEST_INSTRUCTION("5F2281F2", vmov_s32(q1, 0x1F00));
TEST_INSTRUCTION("5F2287F3", vmov_s32(q1, 0xFF00));
TEST_INSTRUCTION("5F2481F2", vmov_s32(q1, 0x1F0000));
TEST_INSTRUCTION("5F2487F3", vmov_s32(q1, 0xFF0000));
TEST_INSTRUCTION("5F2687F3", vmov_s32(q1, 0xFF000000));
TEST_INSTRUCTION("5F2C87F3", vmov_s32(q1, 0x0000FFFF));
TEST_INSTRUCTION("5F2D87F3", vmov_s32(q1, 0x00FFFFFF));
TEST_INSTRUCTION("702E82F3", vmov_s64(q1, 0xFF00FF0000000000));
TEST_INSTRUCTION("7F2E80F2", vmov_s64(q1, 0x00000000FFFFFFFF));
TEST_INSTRUCTION("5F2881F2", vmov_u16(q1, 0x1F));
TEST_INSTRUCTION("502880F3", vmov_u16(q1, 0x80));
TEST_INSTRUCTION("5F2887F3", vmov_u16(q1, 0xFF));
TEST_INSTRUCTION("5F2A81F2", vmov_u16(q1, 0x1F00));
TEST_INSTRUCTION("5F2A87F3", vmov_u16(q1, 0xFF00));
TEST_INSTRUCTION("5F2081F2", vmov_u32(q1, 0x1F));
TEST_INSTRUCTION("502080F3", vmov_u32(q1, 0x80));
TEST_INSTRUCTION("5F2087F3", vmov_u32(q1, 0xFF));
TEST_INSTRUCTION("5F2281F2", vmov_u32(q1, 0x1F00));
TEST_INSTRUCTION("5F2287F3", vmov_u32(q1, 0xFF00));
TEST_INSTRUCTION("5F2481F2", vmov_u32(q1, 0x1F0000));
TEST_INSTRUCTION("5F2487F3", vmov_u32(q1, 0xFF0000));
TEST_INSTRUCTION("5F2687F3", vmov_u32(q1, 0xFF000000));
TEST_INSTRUCTION("5F2C87F3", vmov_u32(q1, 0x0000FFFF));
TEST_INSTRUCTION("5F2D87F3", vmov_u32(q1, 0x00FFFFFF));
TEST_INSTRUCTION("702E82F3", vmov_u64(q1, 0xFF00FF0000000000));
TEST_INSTRUCTION("7F2E80F2", vmov_u64(q1, 0x00000000FFFFFFFF));
TEST_INSTRUCTION("122A88F2", vmovl_s8(q1, d2));
TEST_INSTRUCTION("122A88F3", vmovl_u8(q1, d2));
TEST_INSTRUCTION("122A90F2", vmovl_s16(q1, d2));
TEST_INSTRUCTION("122A90F3", vmovl_u16(q1, d2));
TEST_INSTRUCTION("122AA0F2", vmovl_s32(q1, d2));
TEST_INSTRUCTION("122AA0F3", vmovl_u32(q1, d2));
TEST_INSTRUCTION("0412B2F3", vmovn_s16(d1, q2));
TEST_INSTRUCTION("0412B6F3", vmovn_s32(d1, q2));
TEST_INSTRUCTION("0412BAF3", vmovn_s64(d1, q2));
TEST_INSTRUCTION("0412B2F3", vmovn_u16(d1, q2));
TEST_INSTRUCTION("0412B6F3", vmovn_u32(d1, q2));
TEST_INSTRUCTION("0412BAF3", vmovn_u64(d1, q2));
TEST_INSTRUCTION("410AF0FE", vmovx_f16(s1, s2));
TEST_INSTRUCTION("210961EE", vmul_f16(s1, s2, s3));
TEST_INSTRUCTION("210A61EE", vmul_f32(s1, s2, s3));
TEST_INSTRUCTION("031B22EE", vmul_f64(d1, d2, d3));
TEST_INSTRUCTION("131D12F3", vmul_f16(d1, d2, d3));
TEST_INSTRUCTION("131D02F3", vmul_f32(d1, d2, d3));
TEST_INSTRUCTION("562D14F3", vmul_f16(q1, q2, q3));
TEST_INSTRUCTION("562D04F3", vmul_f32(q1, q2, q3));
TEST_INSTRUCTION("131902F3", vmul_p8(d1, d2, d3));
TEST_INSTRUCTION("131912F2", vmul_s16(d1, d2, d3));
TEST_INSTRUCTION("131922F2", vmul_s32(d1, d2, d3));
TEST_INSTRUCTION("131902F2", vmul_s8(d1, d2, d3));
TEST_INSTRUCTION("131912F2", vmul_u16(d1, d2, d3));
TEST_INSTRUCTION("131922F2", vmul_u32(d1, d2, d3));
TEST_INSTRUCTION("131902F2", vmul_u8(d1, d2, d3));
TEST_INSTRUCTION("562904F3", vmul_p8(q1, q2, q3));
TEST_INSTRUCTION("562914F2", vmul_s16(q1, q2, q3));
TEST_INSTRUCTION("562924F2", vmul_s32(q1, q2, q3));
TEST_INSTRUCTION("562904F2", vmul_s8(q1, q2, q3));
TEST_INSTRUCTION("562914F2", vmul_u16(q1, q2, q3));
TEST_INSTRUCTION("562924F2", vmul_u32(q1, q2, q3));
TEST_INSTRUCTION("562904F2", vmul_u8(q1, q2, q3));
TEST_INSTRUCTION("431992F2", vmul_f16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1992F2", vmul_f16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631992F2", vmul_f16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1992F2", vmul_f16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("432994F3", vmul_f16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2994F3", vmul_f16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632994F3", vmul_f16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2994F3", vmul_f16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("4319A2F2", vmul_f32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("6319A2F2", vmul_f32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("4329A4F3", vmul_f32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("6329A4F3", vmul_f32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("431892F2", vmul_s16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1892F2", vmul_s16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631892F2", vmul_s16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1892F2", vmul_s16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("431892F2", vmul_u16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1892F2", vmul_u16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631892F2", vmul_u16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1892F2", vmul_u16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("432894F3", vmul_s16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2894F3", vmul_s16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632894F3", vmul_s16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2894F3", vmul_s16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("432894F3", vmul_u16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2894F3", vmul_u16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632894F3", vmul_u16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2894F3", vmul_u16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("4318A2F2", vmul_s32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("6318A2F2", vmul_s32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("4318A2F2", vmul_u32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("6318A2F2", vmul_u32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("4328A4F3", vmul_s32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("6328A4F3", vmul_s32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("4328A4F3", vmul_u32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("6328A4F3", vmul_u32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("032E82F2", vmull_p8(q1, d2, d3));
TEST_INSTRUCTION("032C92F2", vmull_s16(q1, d2, d3));
TEST_INSTRUCTION("032CA2F2", vmull_s32(q1, d2, d3));
TEST_INSTRUCTION("032C82F2", vmull_s8(q1, d2, d3));
TEST_INSTRUCTION("032C92F3", vmull_u16(q1, d2, d3));
TEST_INSTRUCTION("032CA2F3", vmull_u32(q1, d2, d3));
TEST_INSTRUCTION("032C82F3", vmull_u8(q1, d2, d3));
TEST_INSTRUCTION("032EA2F2", vmull_p64(q1, d2, d3));
TEST_INSTRUCTION("432A92F2", vmull_s16(q1, d2, d3.at(0)));
TEST_INSTRUCTION("4B2A92F2", vmull_s16(q1, d2, d3.at(1)));
TEST_INSTRUCTION("632A92F2", vmull_s16(q1, d2, d3.at(2)));
TEST_INSTRUCTION("6B2A92F2", vmull_s16(q1, d2, d3.at(3)));
TEST_INSTRUCTION("432A92F3", vmull_u16(q1, d2, d3.at(0)));
TEST_INSTRUCTION("4B2A92F3", vmull_u16(q1, d2, d3.at(1)));
TEST_INSTRUCTION("632A92F3", vmull_u16(q1, d2, d3.at(2)));
TEST_INSTRUCTION("6B2A92F3", vmull_u16(q1, d2, d3.at(3)));
TEST_INSTRUCTION("432AA2F2", vmull_s32(q1, d2, d3.at(0)));
TEST_INSTRUCTION("632AA2F2", vmull_s32(q1, d2, d3.at(1)));
TEST_INSTRUCTION("432AA2F3", vmull_u32(q1, d2, d3.at(0)));
TEST_INSTRUCTION("632AA2F3", vmull_u32(q1, d2, d3.at(1)));
TEST_INSTRUCTION("8215B0F3", vmvn(d1, d2));
TEST_INSTRUCTION("C425B0F3", vmvn(q1, q2));
TEST_INSTRUCTION("4109F1EE", vneg_f16(s1, s2));
TEST_INSTRUCTION("410AF1EE", vneg_f32(s1, s2));
TEST_INSTRUCTION("421BB1EE", vneg_f64(d1, d2));
TEST_INSTRUCTION("8217B5F3", vneg_f16(d1, d2));
TEST_INSTRUCTION("8217B9F3", vneg_f32(d1, d2));
TEST_INSTRUCTION("C427B5F3", vneg_f16(q1, q2));
TEST_INSTRUCTION("C427B9F3", vneg_f32(q1, q2));
TEST_INSTRUCTION("8213B5F3", vneg_s16(d1, d2));
TEST_INSTRUCTION("8213B9F3", vneg_s32(d1, d2));
TEST_INSTRUCTION("8213B1F3", vneg_s8(d1, d2));
TEST_INSTRUCTION("C423B5F3", vneg_s16(q1, q2));
TEST_INSTRUCTION("C423B9F3", vneg_s32(q1, q2));
TEST_INSTRUCTION("C423B1F3", vneg_s8(q1, q2));
TEST_INSTRUCTION("610951EE", vnmla_f16(s1, s2, s3));
TEST_INSTRUCTION("610A51EE", vnmla_f32(s1, s2, s3));
TEST_INSTRUCTION("431B12EE", vnmla_f64(d1, d2, d3));
TEST_INSTRUCTION("210951EE", vnmls_f16(s1, s2, s3));
TEST_INSTRUCTION("210A51EE", vnmls_f32(s1, s2, s3));
TEST_INSTRUCTION("031B12EE", vnmls_f64(d1, d2, d3));
TEST_INSTRUCTION("610961EE", vnmul_f16(s1, s2, s3));
TEST_INSTRUCTION("610A61EE", vnmul_f32(s1, s2, s3));
TEST_INSTRUCTION("431B22EE", vnmul_f64(d1, d2, d3));
TEST_INSTRUCTION("131132F2", vorn(d1, d2, d3));
TEST_INSTRUCTION("562134F2", vorn(q1, q2, q3));
TEST_INSTRUCTION("1F1981F2", vorr_s16(d1, 0x1F));
TEST_INSTRUCTION("101980F3", vorr_s16(d1, 0x80));
TEST_INSTRUCTION("1F1987F3", vorr_s16(d1, 0xFF));
TEST_INSTRUCTION("1F1B81F2", vorr_s16(d1, 0x1F00));
TEST_INSTRUCTION("1F1B87F3", vorr_s16(d1, 0xFF00));
TEST_INSTRUCTION("1F1181F2", vorr_s32(d1, 0x1F));
TEST_INSTRUCTION("101180F3", vorr_s32(d1, 0x80));
TEST_INSTRUCTION("1F1187F3", vorr_s32(d1, 0xFF));
TEST_INSTRUCTION("1F1381F2", vorr_s32(d1, 0x1F00));
TEST_INSTRUCTION("1F1387F3", vorr_s32(d1, 0xFF00));
TEST_INSTRUCTION("1F1581F2", vorr_s32(d1, 0x1F0000));
TEST_INSTRUCTION("1F1587F3", vorr_s32(d1, 0xFF0000));
TEST_INSTRUCTION("1F1787F3", vorr_s32(d1, 0xFF000000));
TEST_INSTRUCTION("1F1981F2", vorr_u16(d1, 0x1F));
TEST_INSTRUCTION("101980F3", vorr_u16(d1, 0x80));
TEST_INSTRUCTION("1F1987F3", vorr_u16(d1, 0xFF));
TEST_INSTRUCTION("1F1B81F2", vorr_u16(d1, 0x1F00));
TEST_INSTRUCTION("1F1B87F3", vorr_u16(d1, 0xFF00));
TEST_INSTRUCTION("1F1181F2", vorr_u32(d1, 0x1F));
TEST_INSTRUCTION("101180F3", vorr_u32(d1, 0x80));
TEST_INSTRUCTION("1F1187F3", vorr_u32(d1, 0xFF));
TEST_INSTRUCTION("1F1381F2", vorr_u32(d1, 0x1F00));
TEST_INSTRUCTION("1F1387F3", vorr_u32(d1, 0xFF00));
TEST_INSTRUCTION("1F1581F2", vorr_u32(d1, 0x1F0000));
TEST_INSTRUCTION("1F1587F3", vorr_u32(d1, 0xFF0000));
TEST_INSTRUCTION("1F1787F3", vorr_u32(d1, 0xFF000000));
TEST_INSTRUCTION("5F2981F2", vorr_s16(q1, 0x1F));
TEST_INSTRUCTION("502980F3", vorr_s16(q1, 0x80));
TEST_INSTRUCTION("5F2987F3", vorr_s16(q1, 0xFF));
TEST_INSTRUCTION("5F2B81F2", vorr_s16(q1, 0x1F00));
TEST_INSTRUCTION("5F2B87F3", vorr_s16(q1, 0xFF00));
TEST_INSTRUCTION("5F2181F2", vorr_s32(q1, 0x1F));
TEST_INSTRUCTION("502180F3", vorr_s32(q1, 0x80));
TEST_INSTRUCTION("5F2187F3", vorr_s32(q1, 0xFF));
TEST_INSTRUCTION("5F2381F2", vorr_s32(q1, 0x1F00));
TEST_INSTRUCTION("5F2387F3", vorr_s32(q1, 0xFF00));
TEST_INSTRUCTION("5F2581F2", vorr_s32(q1, 0x1F0000));
TEST_INSTRUCTION("5F2587F3", vorr_s32(q1, 0xFF0000));
TEST_INSTRUCTION("5F2787F3", vorr_s32(q1, 0xFF000000));
TEST_INSTRUCTION("5F2981F2", vorr_u16(q1, 0x1F));
TEST_INSTRUCTION("502980F3", vorr_u16(q1, 0x80));
TEST_INSTRUCTION("5F2987F3", vorr_u16(q1, 0xFF));
TEST_INSTRUCTION("5F2B81F2", vorr_u16(q1, 0x1F00));
TEST_INSTRUCTION("5F2B87F3", vorr_u16(q1, 0xFF00));
TEST_INSTRUCTION("5F2181F2", vorr_u32(q1, 0x1F));
TEST_INSTRUCTION("502180F3", vorr_u32(q1, 0x80));
TEST_INSTRUCTION("5F2187F3", vorr_u32(q1, 0xFF));
TEST_INSTRUCTION("5F2381F2", vorr_u32(q1, 0x1F00));
TEST_INSTRUCTION("5F2387F3", vorr_u32(q1, 0xFF00));
TEST_INSTRUCTION("5F2581F2", vorr_u32(q1, 0x1F0000));
TEST_INSTRUCTION("5F2587F3", vorr_u32(q1, 0xFF0000));
TEST_INSTRUCTION("5F2787F3", vorr_u32(q1, 0xFF000000));
TEST_INSTRUCTION("131122F2", vorr(d1, d2, d3));
TEST_INSTRUCTION("562124F2", vorr(q1, q2, q3));
TEST_INSTRUCTION("0216B4F3", vpadal_s16(d1, d2));
TEST_INSTRUCTION("0216B8F3", vpadal_s32(d1, d2));
TEST_INSTRUCTION("0216B0F3", vpadal_s8(d1, d2));
TEST_INSTRUCTION("8216B4F3", vpadal_u16(d1, d2));
TEST_INSTRUCTION("8216B8F3", vpadal_u32(d1, d2));
TEST_INSTRUCTION("8216B0F3", vpadal_u8(d1, d2));
TEST_INSTRUCTION("4426B4F3", vpadal_s16(q1, q2));
TEST_INSTRUCTION("4426B8F3", vpadal_s32(q1, q2));
TEST_INSTRUCTION("4426B0F3", vpadal_s8(q1, q2));
TEST_INSTRUCTION("C426B4F3", vpadal_u16(q1, q2));
TEST_INSTRUCTION("C426B8F3", vpadal_u32(q1, q2));
TEST_INSTRUCTION("C426B0F3", vpadal_u8(q1, q2));
TEST_INSTRUCTION("031D12F3", vpadd_f16(d1, d2, d3));
TEST_INSTRUCTION("031D02F3", vpadd_f32(d1, d2, d3));
TEST_INSTRUCTION("0212B4F3", vpaddl_s16(d1, d2));
TEST_INSTRUCTION("0212B8F3", vpaddl_s32(d1, d2));
TEST_INSTRUCTION("0212B0F3", vpaddl_s8(d1, d2));
TEST_INSTRUCTION("8212B4F3", vpaddl_u16(d1, d2));
TEST_INSTRUCTION("8212B8F3", vpaddl_u32(d1, d2));
TEST_INSTRUCTION("8212B0F3", vpaddl_u8(d1, d2));
TEST_INSTRUCTION("4422B4F3", vpaddl_s16(q1, q2));
TEST_INSTRUCTION("4422B8F3", vpaddl_s32(q1, q2));
TEST_INSTRUCTION("4422B0F3", vpaddl_s8(q1, q2));
TEST_INSTRUCTION("C422B4F3", vpaddl_u16(q1, q2));
TEST_INSTRUCTION("C422B8F3", vpaddl_u32(q1, q2));
TEST_INSTRUCTION("C422B0F3", vpaddl_u8(q1, q2));
TEST_INSTRUCTION("031F12F3", vpmax_f16(d1, d2, d3));
TEST_INSTRUCTION("031F02F3", vpmax_f32(d1, d2, d3));
TEST_INSTRUCTION("031A12F2", vpmax_s16(d1, d2, d3));
TEST_INSTRUCTION("031A22F2", vpmax_s32(d1, d2, d3));
TEST_INSTRUCTION("031A02F2", vpmax_s8(d1, d2, d3));
TEST_INSTRUCTION("031A12F3", vpmax_u16(d1, d2, d3));
TEST_INSTRUCTION("031A22F3", vpmax_u32(d1, d2, d3));
TEST_INSTRUCTION("031A02F3", vpmax_u8(d1, d2, d3));
TEST_INSTRUCTION("031F32F3", vpmin_f16(d1, d2, d3));
TEST_INSTRUCTION("031F22F3", vpmin_f32(d1, d2, d3));
TEST_INSTRUCTION("131A12F2", vpmin_s16(d1, d2, d3));
TEST_INSTRUCTION("131A22F2", vpmin_s32(d1, d2, d3));
TEST_INSTRUCTION("131A02F2", vpmin_s8(d1, d2, d3));
TEST_INSTRUCTION("131A12F3", vpmin_u16(d1, d2, d3));
TEST_INSTRUCTION("131A22F3", vpmin_u32(d1, d2, d3));
TEST_INSTRUCTION("131A02F3", vpmin_u8(d1, d2, d3));
TEST_INSTRUCTION("040ABDEC", vpop_32(VecSList{s0, s1, s2, s3}));
TEST_INSTRUCTION("080BBDEC", vpop_64(VecDList{d0, d1, d2, d3}));
TEST_INSTRUCTION("040A2DED", vpush_32(VecSList{s0, s1, s2, s3}));
TEST_INSTRUCTION("080B2DED", vpush_64(VecDList{d0, d1, d2, d3}));
TEST_INSTRUCTION("0217B4F3", vqabs_s16(d1, d2));
TEST_INSTRUCTION("0217B8F3", vqabs_s32(d1, d2));
TEST_INSTRUCTION("0217B0F3", vqabs_s8(d1, d2));
TEST_INSTRUCTION("4427B4F3", vqabs_s16(q1, q2));
TEST_INSTRUCTION("4427B8F3", vqabs_s32(q1, q2));
TEST_INSTRUCTION("4427B0F3", vqabs_s8(q1, q2));
TEST_INSTRUCTION("131012F2", vqadd_s16(d1, d2, d3));
TEST_INSTRUCTION("131022F2", vqadd_s32(d1, d2, d3));
TEST_INSTRUCTION("131032F2", vqadd_s64(d1, d2, d3));
TEST_INSTRUCTION("131002F2", vqadd_s8(d1, d2, d3));
TEST_INSTRUCTION("131012F3", vqadd_u16(d1, d2, d3));
TEST_INSTRUCTION("131022F3", vqadd_u32(d1, d2, d3));
TEST_INSTRUCTION("131032F3", vqadd_u64(d1, d2, d3));
TEST_INSTRUCTION("131002F3", vqadd_u8(d1, d2, d3));
TEST_INSTRUCTION("562014F2", vqadd_s16(q1, q2, q3));
TEST_INSTRUCTION("562024F2", vqadd_s32(q1, q2, q3));
TEST_INSTRUCTION("562034F2", vqadd_s64(q1, q2, q3));
TEST_INSTRUCTION("562004F2", vqadd_s8(q1, q2, q3));
TEST_INSTRUCTION("562014F3", vqadd_u16(q1, q2, q3));
TEST_INSTRUCTION("562024F3", vqadd_u32(q1, q2, q3));
TEST_INSTRUCTION("562034F3", vqadd_u64(q1, q2, q3));
TEST_INSTRUCTION("562004F3", vqadd_u8(q1, q2, q3));
TEST_INSTRUCTION("032992F2", vqdmlal_s16(q1, d2, d3));
TEST_INSTRUCTION("0329A2F2", vqdmlal_s32(q1, d2, d3));
TEST_INSTRUCTION("432392F2", vqdmlal_s16(q1, d2, d3.at(0)));
TEST_INSTRUCTION("4B2392F2", vqdmlal_s16(q1, d2, d3.at(1)));
TEST_INSTRUCTION("632392F2", vqdmlal_s16(q1, d2, d3.at(2)));
TEST_INSTRUCTION("6B2392F2", vqdmlal_s16(q1, d2, d3.at(3)));
TEST_INSTRUCTION("4323A2F2", vqdmlal_s32(q1, d2, d3.at(0)));
TEST_INSTRUCTION("6323A2F2", vqdmlal_s32(q1, d2, d3.at(1)));
TEST_INSTRUCTION("032B92F2", vqdmlsl_s16(q1, d2, d3));
TEST_INSTRUCTION("032BA2F2", vqdmlsl_s32(q1, d2, d3));
TEST_INSTRUCTION("432792F2", vqdmlsl_s16(q1, d2, d3.at(0)));
TEST_INSTRUCTION("4B2792F2", vqdmlsl_s16(q1, d2, d3.at(1)));
TEST_INSTRUCTION("632792F2", vqdmlsl_s16(q1, d2, d3.at(2)));
TEST_INSTRUCTION("6B2792F2", vqdmlsl_s16(q1, d2, d3.at(3)));
TEST_INSTRUCTION("4327A2F2", vqdmlsl_s32(q1, d2, d3.at(0)));
TEST_INSTRUCTION("6327A2F2", vqdmlsl_s32(q1, d2, d3.at(1)));
TEST_INSTRUCTION("031B12F2", vqdmulh_s16(d1, d2, d3));
TEST_INSTRUCTION("031B22F2", vqdmulh_s32(d1, d2, d3));
TEST_INSTRUCTION("462B14F2", vqdmulh_s16(q1, q2, q3));
TEST_INSTRUCTION("462B24F2", vqdmulh_s32(q1, q2, q3));
TEST_INSTRUCTION("431C92F2", vqdmulh_s16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1C92F2", vqdmulh_s16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631C92F2", vqdmulh_s16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1C92F2", vqdmulh_s16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("432C94F3", vqdmulh_s16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2C94F3", vqdmulh_s16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632C94F3", vqdmulh_s16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2C94F3", vqdmulh_s16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("431CA2F2", vqdmulh_s32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("631CA2F2", vqdmulh_s32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("432CA4F3", vqdmulh_s32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("632CA4F3", vqdmulh_s32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("032D92F2", vqdmull_s16(q1, d2, d3));
TEST_INSTRUCTION("032DA2F2", vqdmull_s32(q1, d2, d3));
TEST_INSTRUCTION("432B92F2", vqdmull_s16(q1, d2, d3.at(0)));
TEST_INSTRUCTION("4B2B92F2", vqdmull_s16(q1, d2, d3.at(1)));
TEST_INSTRUCTION("632B92F2", vqdmull_s16(q1, d2, d3.at(2)));
TEST_INSTRUCTION("6B2B92F2", vqdmull_s16(q1, d2, d3.at(3)));
TEST_INSTRUCTION("432BA2F2", vqdmull_s32(q1, d2, d3.at(0)));
TEST_INSTRUCTION("632BA2F2", vqdmull_s32(q1, d2, d3.at(1)));
TEST_INSTRUCTION("8412B2F3", vqmovn_s16(d1, q2));
TEST_INSTRUCTION("8412B6F3", vqmovn_s32(d1, q2));
TEST_INSTRUCTION("8412BAF3", vqmovn_s64(d1, q2));
TEST_INSTRUCTION("C412B2F3", vqmovn_u16(d1, q2));
TEST_INSTRUCTION("C412B6F3", vqmovn_u32(d1, q2));
TEST_INSTRUCTION("C412BAF3", vqmovn_u64(d1, q2));
TEST_INSTRUCTION("4412B2F3", vqmovun_s16(d1, q2));
TEST_INSTRUCTION("4412B6F3", vqmovun_s32(d1, q2));
TEST_INSTRUCTION("4412BAF3", vqmovun_s64(d1, q2));
TEST_INSTRUCTION("8217B4F3", vqneg_s16(d1, d2));
TEST_INSTRUCTION("8217B8F3", vqneg_s32(d1, d2));
TEST_INSTRUCTION("8217B0F3", vqneg_s8(d1, d2));
TEST_INSTRUCTION("C427B4F3", vqneg_s16(q1, q2));
TEST_INSTRUCTION("C427B8F3", vqneg_s32(q1, q2));
TEST_INSTRUCTION("C427B0F3", vqneg_s8(q1, q2));
TEST_INSTRUCTION("131B12F3", vqrdmlah_s16(d1, d2, d3));
TEST_INSTRUCTION("131B22F3", vqrdmlah_s32(d1, d2, d3));
TEST_INSTRUCTION("562B14F3", vqrdmlah_s16(q1, q2, q3));
TEST_INSTRUCTION("562B24F3", vqrdmlah_s32(q1, q2, q3));
TEST_INSTRUCTION("431E92F2", vqrdmlah_s16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1E92F2", vqrdmlah_s16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631E92F2", vqrdmlah_s16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1E92F2", vqrdmlah_s16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("432E94F3", vqrdmlah_s16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2E94F3", vqrdmlah_s16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632E94F3", vqrdmlah_s16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2E94F3", vqrdmlah_s16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("431EA2F2", vqrdmlah_s32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("631EA2F2", vqrdmlah_s32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("432EA4F3", vqrdmlah_s32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("632EA4F3", vqrdmlah_s32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("131C12F3", vqrdmlsh_s16(d1, d2, d3));
TEST_INSTRUCTION("131C22F3", vqrdmlsh_s32(d1, d2, d3));
TEST_INSTRUCTION("562C14F3", vqrdmlsh_s16(q1, q2, q3));
TEST_INSTRUCTION("562C24F3", vqrdmlsh_s32(q1, q2, q3));
TEST_INSTRUCTION("431F92F2", vqrdmlsh_s16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1F92F2", vqrdmlsh_s16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631F92F2", vqrdmlsh_s16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1F92F2", vqrdmlsh_s16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("432F94F3", vqrdmlsh_s16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2F94F3", vqrdmlsh_s16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632F94F3", vqrdmlsh_s16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2F94F3", vqrdmlsh_s16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("431FA2F2", vqrdmlsh_s32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("631FA2F2", vqrdmlsh_s32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("432FA4F3", vqrdmlsh_s32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("632FA4F3", vqrdmlsh_s32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("031B12F3", vqrdmulh_s16(d1, d2, d3));
TEST_INSTRUCTION("031B22F3", vqrdmulh_s32(d1, d2, d3));
TEST_INSTRUCTION("462B14F3", vqrdmulh_s16(q1, q2, q3));
TEST_INSTRUCTION("462B24F3", vqrdmulh_s32(q1, q2, q3));
TEST_INSTRUCTION("431D92F2", vqrdmulh_s16(d1, d2, d3.at(0)));
TEST_INSTRUCTION("4B1D92F2", vqrdmulh_s16(d1, d2, d3.at(1)));
TEST_INSTRUCTION("631D92F2", vqrdmulh_s16(d1, d2, d3.at(2)));
TEST_INSTRUCTION("6B1D92F2", vqrdmulh_s16(d1, d2, d3.at(3)));
TEST_INSTRUCTION("432D94F3", vqrdmulh_s16(q1, q2, d3.at(0)));
TEST_INSTRUCTION("4B2D94F3", vqrdmulh_s16(q1, q2, d3.at(1)));
TEST_INSTRUCTION("632D94F3", vqrdmulh_s16(q1, q2, d3.at(2)));
TEST_INSTRUCTION("6B2D94F3", vqrdmulh_s16(q1, q2, d3.at(3)));
TEST_INSTRUCTION("431DA2F2", vqrdmulh_s32(d1, d2, d3.at(0)));
TEST_INSTRUCTION("631DA2F2", vqrdmulh_s32(d1, d2, d3.at(1)));
TEST_INSTRUCTION("432DA4F3", vqrdmulh_s32(q1, q2, d3.at(0)));
TEST_INSTRUCTION("632DA4F3", vqrdmulh_s32(q1, q2, d3.at(1)));
TEST_INSTRUCTION("121513F2", vqrshl_s16(d1, d2, d3));
TEST_INSTRUCTION("121523F2", vqrshl_s32(d1, d2, d3));
TEST_INSTRUCTION("121533F2", vqrshl_s64(d1, d2, d3));
TEST_INSTRUCTION("121503F2", vqrshl_s8(d1, d2, d3));
TEST_INSTRUCTION("121513F3", vqrshl_u16(d1, d2, d3));
TEST_INSTRUCTION("121523F3", vqrshl_u32(d1, d2, d3));
TEST_INSTRUCTION("121533F3", vqrshl_u64(d1, d2, d3));
TEST_INSTRUCTION("121503F3", vqrshl_u8(d1, d2, d3));
TEST_INSTRUCTION("542516F2", vqrshl_s16(q1, q2, q3));
TEST_INSTRUCTION("542526F2", vqrshl_s32(q1, q2, q3));
TEST_INSTRUCTION("542536F2", vqrshl_s64(q1, q2, q3));
TEST_INSTRUCTION("542506F2", vqrshl_s8(q1, q2, q3));
TEST_INSTRUCTION("542516F3", vqrshl_u16(q1, q2, q3));
TEST_INSTRUCTION("542526F3", vqrshl_u32(q1, q2, q3));
TEST_INSTRUCTION("542536F3", vqrshl_u64(q1, q2, q3));
TEST_INSTRUCTION("542506F3", vqrshl_u8(q1, q2, q3));
TEST_INSTRUCTION("54198DF2", vqrshrn_s16(d1, q2, 3));
TEST_INSTRUCTION("54199DF2", vqrshrn_s32(d1, q2, 3));
TEST_INSTRUCTION("5419BDF2", vqrshrn_s64(d1, q2, 3));
TEST_INSTRUCTION("54198DF3", vqrshrn_u16(d1, q2, 3));
TEST_INSTRUCTION("54199DF3", vqrshrn_u32(d1, q2, 3));
TEST_INSTRUCTION("5419BDF3", vqrshrn_u64(d1, q2, 3));
TEST_INSTRUCTION("54188DF3", vqrshrun_s16(d1, q2, 3));
TEST_INSTRUCTION("54189DF3", vqrshrun_s32(d1, q2, 3));
TEST_INSTRUCTION("5418BDF3", vqrshrun_s64(d1, q2, 3));
TEST_INSTRUCTION("121413F2", vqshl_s16(d1, d2, d3));
TEST_INSTRUCTION("121423F2", vqshl_s32(d1, d2, d3));
TEST_INSTRUCTION("121433F2", vqshl_s64(d1, d2, d3));
TEST_INSTRUCTION("121403F2", vqshl_s8(d1, d2, d3));
TEST_INSTRUCTION("121413F3", vqshl_u16(d1, d2, d3));
TEST_INSTRUCTION("121423F3", vqshl_u32(d1, d2, d3));
TEST_INSTRUCTION("121433F3", vqshl_u64(d1, d2, d3));
TEST_INSTRUCTION("121403F3", vqshl_u8(d1, d2, d3));
TEST_INSTRUCTION("542416F2", vqshl_s16(q1, q2, q3));
TEST_INSTRUCTION("542426F2", vqshl_s32(q1, q2, q3));
TEST_INSTRUCTION("542436F2", vqshl_s64(q1, q2, q3));
TEST_INSTRUCTION("542406F2", vqshl_s8(q1, q2, q3));
TEST_INSTRUCTION("542416F3", vqshl_u16(q1, q2, q3));
TEST_INSTRUCTION("542426F3", vqshl_u32(q1, q2, q3));
TEST_INSTRUCTION("542436F3", vqshl_u64(q1, q2, q3));
TEST_INSTRUCTION("542406F3", vqshl_u8(q1, q2, q3));
TEST_INSTRUCTION("121793F2", vqshl_s16(d1, d2, 3));
TEST_INSTRUCTION("1217A3F2", vqshl_s32(d1, d2, 3));
TEST_INSTRUCTION("921783F2", vqshl_s64(d1, d2, 3));
TEST_INSTRUCTION("12178BF2", vqshl_s8(d1, d2, 3));
TEST_INSTRUCTION("121793F3", vqshl_u16(d1, d2, 3));
TEST_INSTRUCTION("1217A3F3", vqshl_u32(d1, d2, 3));
TEST_INSTRUCTION("921783F3", vqshl_u64(d1, d2, 3));
TEST_INSTRUCTION("12178BF3", vqshl_u8(d1, d2, 3));
TEST_INSTRUCTION("542793F2", vqshl_s16(q1, q2, 3));
TEST_INSTRUCTION("5427A3F2", vqshl_s32(q1, q2, 3));
TEST_INSTRUCTION("D42783F2", vqshl_s64(q1, q2, 3));
TEST_INSTRUCTION("54278BF2", vqshl_s8(q1, q2, 3));
TEST_INSTRUCTION("542793F3", vqshl_u16(q1, q2, 3));
TEST_INSTRUCTION("5427A3F3", vqshl_u32(q1, q2, 3));
TEST_INSTRUCTION("D42783F3", vqshl_u64(q1, q2, 3));
TEST_INSTRUCTION("54278BF3", vqshl_u8(q1, q2, 3));
TEST_INSTRUCTION("121693F3", vqshlu_s16(d1, d2, 3));
TEST_INSTRUCTION("1216A3F3", vqshlu_s32(d1, d2, 3));
TEST_INSTRUCTION("921683F3", vqshlu_s64(d1, d2, 3));
TEST_INSTRUCTION("12168BF3", vqshlu_s8(d1, d2, 3));
TEST_INSTRUCTION("542693F3", vqshlu_s16(q1, q2, 3));
TEST_INSTRUCTION("5426A3F3", vqshlu_s32(q1, q2, 3));
TEST_INSTRUCTION("D42683F3", vqshlu_s64(q1, q2, 3));
TEST_INSTRUCTION("54268BF3", vqshlu_s8(q1, q2, 3));
TEST_INSTRUCTION("14198DF2", vqshrn_s16(d1, q2, 3));
TEST_INSTRUCTION("14199DF2", vqshrn_s32(d1, q2, 3));
TEST_INSTRUCTION("1419BDF2", vqshrn_s64(d1, q2, 3));
TEST_INSTRUCTION("14198DF3", vqshrn_u16(d1, q2, 3));
TEST_INSTRUCTION("14199DF3", vqshrn_u32(d1, q2, 3));
TEST_INSTRUCTION("1419BDF3", vqshrn_u64(d1, q2, 3));
TEST_INSTRUCTION("14188DF3", vqshrun_s16(d1, q2, 3));
TEST_INSTRUCTION("14189DF3", vqshrun_s32(d1, q2, 3));
TEST_INSTRUCTION("1418BDF3", vqshrun_s64(d1, q2, 3));
TEST_INSTRUCTION("131212F2", vqsub_s16(d1, d2, d3));
TEST_INSTRUCTION("131222F2", vqsub_s32(d1, d2, d3));
TEST_INSTRUCTION("131232F2", vqsub_s64(d1, d2, d3));
TEST_INSTRUCTION("131202F2", vqsub_s8(d1, d2, d3));
TEST_INSTRUCTION("131212F3", vqsub_u16(d1, d2, d3));
TEST_INSTRUCTION("131222F3", vqsub_u32(d1, d2, d3));
TEST_INSTRUCTION("131232F3", vqsub_u64(d1, d2, d3));
TEST_INSTRUCTION("131202F3", vqsub_u8(d1, d2, d3));
TEST_INSTRUCTION("562214F2", vqsub_s16(q1, q2, q3));
TEST_INSTRUCTION("562224F2", vqsub_s32(q1, q2, q3));
TEST_INSTRUCTION("562234F2", vqsub_s64(q1, q2, q3));
TEST_INSTRUCTION("562204F2", vqsub_s8(q1, q2, q3));
TEST_INSTRUCTION("562214F3", vqsub_u16(q1, q2, q3));
TEST_INSTRUCTION("562224F3", vqsub_u32(q1, q2, q3));
TEST_INSTRUCTION("562234F3", vqsub_u64(q1, q2, q3));
TEST_INSTRUCTION("562204F3", vqsub_u8(q1, q2, q3));
TEST_INSTRUCTION("061484F3", vraddhn_s16(d1, q2, q3));
TEST_INSTRUCTION("061494F3", vraddhn_s32(d1, q2, q3));
TEST_INSTRUCTION("0614A4F3", vraddhn_s64(d1, q2, q3));
TEST_INSTRUCTION("061484F3", vraddhn_u16(d1, q2, q3));
TEST_INSTRUCTION("061494F3", vraddhn_u32(d1, q2, q3));
TEST_INSTRUCTION("0614A4F3", vraddhn_u64(d1, q2, q3));
TEST_INSTRUCTION("0215B7F3", vrecpe_f16(d1, d2));
TEST_INSTRUCTION("0215BBF3", vrecpe_f32(d1, d2));
TEST_INSTRUCTION("4425B7F3", vrecpe_f16(q1, q2));
TEST_INSTRUCTION("4425BBF3", vrecpe_f32(q1, q2));
TEST_INSTRUCTION("0214BBF3", vrecpe_u32(d1, d2));
TEST_INSTRUCTION("4424BBF3", vrecpe_u32(q1, q2));
TEST_INSTRUCTION("131F12F2", vrecps_f16(d1, d2, d3));
TEST_INSTRUCTION("131F02F2", vrecps_f32(d1, d2, d3));
TEST_INSTRUCTION("562F14F2", vrecps_f16(q1, q2, q3));
TEST_INSTRUCTION("562F04F2", vrecps_f32(q1, q2, q3));
TEST_INSTRUCTION("0211B0F3", vrev16_s8(d1, d2));
TEST_INSTRUCTION("0211B0F3", vrev16_u8(d1, d2));
TEST_INSTRUCTION("4421B0F3", vrev16_s8(q1, q2));
TEST_INSTRUCTION("4421B0F3", vrev16_u8(q1, q2));
TEST_INSTRUCTION("8210B4F3", vrev32_s16(d1, d2));
TEST_INSTRUCTION("8210B0F3", vrev32_s8(d1, d2));
TEST_INSTRUCTION("8210B4F3", vrev32_u16(d1, d2));
TEST_INSTRUCTION("8210B0F3", vrev32_u8(d1, d2));
TEST_INSTRUCTION("C420B4F3", vrev32_s16(q1, q2));
TEST_INSTRUCTION("C420B0F3", vrev32_s8(q1, q2));
TEST_INSTRUCTION("C420B4F3", vrev32_u16(q1, q2));
TEST_INSTRUCTION("C420B0F3", vrev32_u8(q1, q2));
TEST_INSTRUCTION("0210B4F3", vrev64_s16(d1, d2));
TEST_INSTRUCTION("0210B8F3", vrev64_s32(d1, d2));
TEST_INSTRUCTION("0210B0F3", vrev64_s8(d1, d2));
TEST_INSTRUCTION("0210B4F3", vrev64_u16(d1, d2));
TEST_INSTRUCTION("0210B8F3", vrev64_u32(d1, d2));
TEST_INSTRUCTION("0210B0F3", vrev64_u8(d1, d2));
TEST_INSTRUCTION("4420B4F3", vrev64_s16(q1, q2));
TEST_INSTRUCTION("4420B8F3", vrev64_s32(q1, q2));
TEST_INSTRUCTION("4420B0F3", vrev64_s8(q1, q2));
TEST_INSTRUCTION("4420B4F3", vrev64_u16(q1, q2));
TEST_INSTRUCTION("4420B8F3", vrev64_u32(q1, q2));
TEST_INSTRUCTION("4420B0F3", vrev64_u8(q1, q2));
TEST_INSTRUCTION("031112F2", vrhadd_s16(d1, d2, d3));
TEST_INSTRUCTION("031122F2", vrhadd_s32(d1, d2, d3));
TEST_INSTRUCTION("031102F2", vrhadd_s8(d1, d2, d3));
TEST_INSTRUCTION("031112F3", vrhadd_u16(d1, d2, d3));
TEST_INSTRUCTION("031122F3", vrhadd_u32(d1, d2, d3));
TEST_INSTRUCTION("031102F3", vrhadd_u8(d1, d2, d3));
TEST_INSTRUCTION("462114F2", vrhadd_s16(q1, q2, q3));
TEST_INSTRUCTION("462124F2", vrhadd_s32(q1, q2, q3));
TEST_INSTRUCTION("462104F2", vrhadd_s8(q1, q2, q3));
TEST_INSTRUCTION("462114F3", vrhadd_u16(q1, q2, q3));
TEST_INSTRUCTION("462124F3", vrhadd_u32(q1, q2, q3));
TEST_INSTRUCTION("462104F3", vrhadd_u8(q1, q2, q3));
TEST_INSTRUCTION("4109F8FE", vrinta_f16(s1, s2));
TEST_INSTRUCTION("410AF8FE", vrinta_f32(s1, s2));
TEST_INSTRUCTION("421BB8FE", vrinta_f64(d1, d2));
TEST_INSTRUCTION("0215B6F3", vrinta_f16(d1, d2));
TEST_INSTRUCTION("0215BAF3", vrinta_f32(d1, d2));
TEST_INSTRUCTION("4425B6F3", vrinta_f16(q1, q2));
TEST_INSTRUCTION("4425BAF3", vrinta_f32(q1, q2));
TEST_INSTRUCTION("4109FBFE", vrintm_f16(s1, s2));
TEST_INSTRUCTION("410AFBFE", vrintm_f32(s1, s2));
TEST_INSTRUCTION("421BBBFE", vrintm_f64(d1, d2));
TEST_INSTRUCTION("8216B6F3", vrintm_f16(d1, d2));
TEST_INSTRUCTION("8216BAF3", vrintm_f32(d1, d2));
TEST_INSTRUCTION("C426B6F3", vrintm_f16(q1, q2));
TEST_INSTRUCTION("C426BAF3", vrintm_f32(q1, q2));
TEST_INSTRUCTION("4109F9FE", vrintn_f16(s1, s2));
TEST_INSTRUCTION("410AF9FE", vrintn_f32(s1, s2));
TEST_INSTRUCTION("421BB9FE", vrintn_f64(d1, d2));
TEST_INSTRUCTION("0214B6F3", vrintn_f16(d1, d2));
TEST_INSTRUCTION("0214BAF3", vrintn_f32(d1, d2));
TEST_INSTRUCTION("4424B6F3", vrintn_f16(q1, q2));
TEST_INSTRUCTION("4424BAF3", vrintn_f32(q1, q2));
TEST_INSTRUCTION("4109FAFE", vrintp_f16(s1, s2));
TEST_INSTRUCTION("410AFAFE", vrintp_f32(s1, s2));
TEST_INSTRUCTION("421BBAFE", vrintp_f64(d1, d2));
TEST_INSTRUCTION("8217B6F3", vrintp_f16(d1, d2));
TEST_INSTRUCTION("8217BAF3", vrintp_f32(d1, d2));
TEST_INSTRUCTION("C427B6F3", vrintp_f16(q1, q2));
TEST_INSTRUCTION("C427BAF3", vrintp_f32(q1, q2));
TEST_INSTRUCTION("4109F6EE", vrintr_f16(s1, s2));
TEST_INSTRUCTION("410AF6EE", vrintr_f32(s1, s2));
TEST_INSTRUCTION("421BB6EE", vrintr_f64(d1, d2));
TEST_INSTRUCTION("4109F7EE", vrintx_f16(s1, s2));
TEST_INSTRUCTION("410AF7EE", vrintx_f32(s1, s2));
TEST_INSTRUCTION("421BB7EE", vrintx_f64(d1, d2));
TEST_INSTRUCTION("8214B6F3", vrintx_f16(d1, d2));
TEST_INSTRUCTION("8214BAF3", vrintx_f32(d1, d2));
TEST_INSTRUCTION("C424B6F3", vrintx_f16(q1, q2));
TEST_INSTRUCTION("C424BAF3", vrintx_f32(q1, q2));
TEST_INSTRUCTION("C109F6EE", vrintz_f16(s1, s2));
TEST_INSTRUCTION("C10AF6EE", vrintz_f32(s1, s2));
TEST_INSTRUCTION("C21BB6EE", vrintz_f64(d1, d2));
TEST_INSTRUCTION("8215B6F3", vrintz_f16(d1, d2));
TEST_INSTRUCTION("8215BAF3", vrintz_f32(d1, d2));
TEST_INSTRUCTION("C425B6F3", vrintz_f16(q1, q2));
TEST_INSTRUCTION("C425BAF3", vrintz_f32(q1, q2));
TEST_INSTRUCTION("021513F2", vrshl_s16(d1, d2, d3));
TEST_INSTRUCTION("021523F2", vrshl_s32(d1, d2, d3));
TEST_INSTRUCTION("021533F2", vrshl_s64(d1, d2, d3));
TEST_INSTRUCTION("021503F2", vrshl_s8(d1, d2, d3));
TEST_INSTRUCTION("021513F3", vrshl_u16(d1, d2, d3));
TEST_INSTRUCTION("021523F3", vrshl_u32(d1, d2, d3));
TEST_INSTRUCTION("021533F3", vrshl_u64(d1, d2, d3));
TEST_INSTRUCTION("021503F3", vrshl_u8(d1, d2, d3));
TEST_INSTRUCTION("442516F2", vrshl_s16(q1, q2, q3));
TEST_INSTRUCTION("442526F2", vrshl_s32(q1, q2, q3));
TEST_INSTRUCTION("442536F2", vrshl_s64(q1, q2, q3));
TEST_INSTRUCTION("442506F2", vrshl_s8(q1, q2, q3));
TEST_INSTRUCTION("442516F3", vrshl_u16(q1, q2, q3));
TEST_INSTRUCTION("442526F3", vrshl_u32(q1, q2, q3));
TEST_INSTRUCTION("442536F3", vrshl_u64(q1, q2, q3));
TEST_INSTRUCTION("442506F3", vrshl_u8(q1, q2, q3));
TEST_INSTRUCTION("12129DF2", vrshr_s16(d1, d2, 3));
TEST_INSTRUCTION("1212BDF2", vrshr_s32(d1, d2, 3));
TEST_INSTRUCTION("12128DF2", vrshr_s8(d1, d2, 3));
TEST_INSTRUCTION("12129DF3", vrshr_u16(d1, d2, 3));
TEST_INSTRUCTION("1212BDF3", vrshr_u32(d1, d2, 3));
TEST_INSTRUCTION("12128DF3", vrshr_u8(d1, d2, 3));
TEST_INSTRUCTION("54229DF2", vrshr_s16(q1, q2, 3));
TEST_INSTRUCTION("5422BDF2", vrshr_s32(q1, q2, 3));
TEST_INSTRUCTION("54228DF2", vrshr_s8(q1, q2, 3));
TEST_INSTRUCTION("54229DF3", vrshr_u16(q1, q2, 3));
TEST_INSTRUCTION("5422BDF3", vrshr_u32(q1, q2, 3));
TEST_INSTRUCTION("54228DF3", vrshr_u8(q1, q2, 3));
TEST_INSTRUCTION("54188DF2", vrshrn_s16(d1, q2, 3));
TEST_INSTRUCTION("54189DF2", vrshrn_s32(d1, q2, 3));
TEST_INSTRUCTION("5418BDF2", vrshrn_s64(d1, q2, 3));
TEST_INSTRUCTION("54188DF2", vrshrn_u16(d1, q2, 3));
TEST_INSTRUCTION("54189DF2", vrshrn_u32(d1, q2, 3));
TEST_INSTRUCTION("5418BDF2", vrshrn_u64(d1, q2, 3));
TEST_INSTRUCTION("8215B7F3", vrsqrte_f16(d1, d2));
TEST_INSTRUCTION("8215BBF3", vrsqrte_f32(d1, d2));
TEST_INSTRUCTION("C425B7F3", vrsqrte_f16(q1, q2));
TEST_INSTRUCTION("C425BBF3", vrsqrte_f32(q1, q2));
TEST_INSTRUCTION("8214BBF3", vrsqrte_u32(d1, d2));
TEST_INSTRUCTION("C424BBF3", vrsqrte_u32(q1, q2));
TEST_INSTRUCTION("131F32F2", vrsqrts_f16(d1, d2, d3));
TEST_INSTRUCTION("131F22F2", vrsqrts_f32(d1, d2, d3));
TEST_INSTRUCTION("562F34F2", vrsqrts_f16(q1, q2, q3));
TEST_INSTRUCTION("562F24F2", vrsqrts_f32(q1, q2, q3));
TEST_INSTRUCTION("12139DF2", vrsra_s16(d1, d2, 3));
TEST_INSTRUCTION("1213BDF2", vrsra_s32(d1, d2, 3));
TEST_INSTRUCTION("9213BDF2", vrsra_s64(d1, d2, 3));
TEST_INSTRUCTION("12138DF2", vrsra_s8(d1, d2, 3));
TEST_INSTRUCTION("12139DF3", vrsra_u16(d1, d2, 3));
TEST_INSTRUCTION("1213BDF3", vrsra_u32(d1, d2, 3));
TEST_INSTRUCTION("9213BDF3", vrsra_u64(d1, d2, 3));
TEST_INSTRUCTION("12138DF3", vrsra_u8(d1, d2, 3));
TEST_INSTRUCTION("54239DF2", vrsra_s16(q1, q2, 3));
TEST_INSTRUCTION("5423BDF2", vrsra_s32(q1, q2, 3));
TEST_INSTRUCTION("D423BDF2", vrsra_s64(q1, q2, 3));
TEST_INSTRUCTION("54238DF2", vrsra_s8(q1, q2, 3));
TEST_INSTRUCTION("54239DF3", vrsra_u16(q1, q2, 3));
TEST_INSTRUCTION("5423BDF3", vrsra_u32(q1, q2, 3));
TEST_INSTRUCTION("D423BDF3", vrsra_u64(q1, q2, 3));
TEST_INSTRUCTION("54238DF3", vrsra_u8(q1, q2, 3));
TEST_INSTRUCTION("061684F3", vrsubhn_s16(d1, q2, q3));
TEST_INSTRUCTION("061694F3", vrsubhn_s32(d1, q2, q3));
TEST_INSTRUCTION("0616A4F3", vrsubhn_s64(d1, q2, q3));
TEST_INSTRUCTION("061684F3", vrsubhn_u16(d1, q2, q3));
TEST_INSTRUCTION("061694F3", vrsubhn_u32(d1, q2, q3));
TEST_INSTRUCTION("0616A4F3", vrsubhn_u64(d1, q2, q3));
TEST_INSTRUCTION("031D22FC", vsdot_s8(d1, d2, d3));
TEST_INSTRUCTION("462D24FC", vsdot_s8(q1, q2, q3));
TEST_INSTRUCTION("031D22FE", vsdot_s8(d1, d2, d3.at(0)));
TEST_INSTRUCTION("231D22FE", vsdot_s8(d1, d2, d3.at(1)));
TEST_INSTRUCTION("432D24FE", vsdot_s8(q1, q2, d3.at(0)));
TEST_INSTRUCTION("632D24FE", vsdot_s8(q1, q2, d3.at(1)));
TEST_INSTRUCTION("210941FE", vseleq_f16(s1, s2, s3));
TEST_INSTRUCTION("210A41FE", vseleq_f32(s1, s2, s3));
TEST_INSTRUCTION("031B02FE", vseleq_f64(d1, d2, d3));
TEST_INSTRUCTION("210961FE", vselge_f16(s1, s2, s3));
TEST_INSTRUCTION("210A61FE", vselge_f32(s1, s2, s3));
TEST_INSTRUCTION("031B22FE", vselge_f64(d1, d2, d3));
TEST_INSTRUCTION("210971FE", vselgt_f16(s1, s2, s3));
TEST_INSTRUCTION("210A71FE", vselgt_f32(s1, s2, s3));
TEST_INSTRUCTION("031B32FE", vselgt_f64(d1, d2, d3));
TEST_INSTRUCTION("210951FE", vselvs_f16(s1, s2, s3));
TEST_INSTRUCTION("210A51FE", vselvs_f32(s1, s2, s3));
TEST_INSTRUCTION("031B12FE", vselvs_f64(d1, d2, d3));
TEST_INSTRUCTION("121593F2", vshl_s16(d1, d2, 3));
TEST_INSTRUCTION("1215A3F2", vshl_s32(d1, d2, 3));
TEST_INSTRUCTION("921583F2", vshl_s64(d1, d2, 3));
TEST_INSTRUCTION("12158BF2", vshl_s8(d1, d2, 3));
TEST_INSTRUCTION("121593F2", vshl_u16(d1, d2, 3));
TEST_INSTRUCTION("1215A3F2", vshl_u32(d1, d2, 3));
TEST_INSTRUCTION("921583F2", vshl_u64(d1, d2, 3));
TEST_INSTRUCTION("12158BF2", vshl_u8(d1, d2, 3));
TEST_INSTRUCTION("542593F2", vshl_s16(q1, q2, 3));
TEST_INSTRUCTION("5425A3F2", vshl_s32(q1, q2, 3));
TEST_INSTRUCTION("D42583F2", vshl_s64(q1, q2, 3));
TEST_INSTRUCTION("54258BF2", vshl_s8(q1, q2, 3));
TEST_INSTRUCTION("542593F2", vshl_u16(q1, q2, 3));
TEST_INSTRUCTION("5425A3F2", vshl_u32(q1, q2, 3));
TEST_INSTRUCTION("D42583F2", vshl_u64(q1, q2, 3));
TEST_INSTRUCTION("54258BF2", vshl_u8(q1, q2, 3));
TEST_INSTRUCTION("021413F2", vshl_s16(d1, d2, d3));
TEST_INSTRUCTION("021423F2", vshl_s32(d1, d2, d3));
TEST_INSTRUCTION("021433F2", vshl_s64(d1, d2, d3));
TEST_INSTRUCTION("021403F2", vshl_s8(d1, d2, d3));
TEST_INSTRUCTION("021413F3", vshl_u16(d1, d2, d3));
TEST_INSTRUCTION("021423F3", vshl_u32(d1, d2, d3));
TEST_INSTRUCTION("021433F3", vshl_u64(d1, d2, d3));
TEST_INSTRUCTION("021403F3", vshl_u8(d1, d2, d3));
TEST_INSTRUCTION("442416F2", vshl_s16(q1, q2, q3));
TEST_INSTRUCTION("442426F2", vshl_s32(q1, q2, q3));
TEST_INSTRUCTION("442436F2", vshl_s64(q1, q2, q3));
TEST_INSTRUCTION("442406F2", vshl_s8(q1, q2, q3));
TEST_INSTRUCTION("442416F3", vshl_u16(q1, q2, q3));
TEST_INSTRUCTION("442426F3", vshl_u32(q1, q2, q3));
TEST_INSTRUCTION("442436F3", vshl_u64(q1, q2, q3));
TEST_INSTRUCTION("442406F3", vshl_u8(q1, q2, q3));
TEST_INSTRUCTION("122A93F2", vshll_s16(q1, d2, 3));
TEST_INSTRUCTION("122AA3F2", vshll_s32(q1, d2, 3));
TEST_INSTRUCTION("122A8BF2", vshll_s8(q1, d2, 3));
TEST_INSTRUCTION("122A93F3", vshll_u16(q1, d2, 3));
TEST_INSTRUCTION("122AA3F3", vshll_u32(q1, d2, 3));
TEST_INSTRUCTION("122A8BF3", vshll_u8(q1, d2, 3));
TEST_INSTRUCTION("12109DF2", vshr_s16(d1, d2, 3));
TEST_INSTRUCTION("1210BDF2", vshr_s32(d1, d2, 3));
TEST_INSTRUCTION("9210BDF2", vshr_s64(d1, d2, 3));
TEST_INSTRUCTION("12108DF2", vshr_s8(d1, d2, 3));
TEST_INSTRUCTION("12109DF3", vshr_u16(d1, d2, 3));
TEST_INSTRUCTION("1210BDF3", vshr_u32(d1, d2, 3));
TEST_INSTRUCTION("9210BDF3", vshr_u64(d1, d2, 3));
TEST_INSTRUCTION("12108DF3", vshr_u8(d1, d2, 3));
TEST_INSTRUCTION("54209DF2", vshr_s16(q1, q2, 3));
TEST_INSTRUCTION("5420BDF2", vshr_s32(q1, q2, 3));
TEST_INSTRUCTION("D420BDF2", vshr_s64(q1, q2, 3));
TEST_INSTRUCTION("54208DF2", vshr_s8(q1, q2, 3));
TEST_INSTRUCTION("54209DF3", vshr_u16(q1, q2, 3));
TEST_INSTRUCTION("5420BDF3", vshr_u32(q1, q2, 3));
TEST_INSTRUCTION("D420BDF3", vshr_u64(q1, q2, 3));
TEST_INSTRUCTION("54208DF3", vshr_u8(q1, q2, 3));
TEST_INSTRUCTION("14188DF2", vshrn_s16(d1, q2, 3));
TEST_INSTRUCTION("14189DF2", vshrn_s32(d1, q2, 3));
TEST_INSTRUCTION("1418BDF2", vshrn_s64(d1, q2, 3));
TEST_INSTRUCTION("14188DF2", vshrn_u16(d1, q2, 3));
TEST_INSTRUCTION("14189DF2", vshrn_u32(d1, q2, 3));
TEST_INSTRUCTION("1418BDF2", vshrn_u64(d1, q2, 3));
TEST_INSTRUCTION("121593F3", vsli_s16(d1, d2, 3));
TEST_INSTRUCTION("1215A3F3", vsli_s32(d1, d2, 3));
TEST_INSTRUCTION("921583F3", vsli_s64(d1, d2, 3));
TEST_INSTRUCTION("12158BF3", vsli_s8(d1, d2, 3));
TEST_INSTRUCTION("121593F3", vsli_u16(d1, d2, 3));
TEST_INSTRUCTION("1215A3F3", vsli_u32(d1, d2, 3));
TEST_INSTRUCTION("921583F3", vsli_u64(d1, d2, 3));
TEST_INSTRUCTION("12158BF3", vsli_u8(d1, d2, 3));
TEST_INSTRUCTION("542593F3", vsli_s16(q1, q2, 3));
TEST_INSTRUCTION("5425A3F3", vsli_s32(q1, q2, 3));
TEST_INSTRUCTION("D42583F3", vsli_s64(q1, q2, 3));
TEST_INSTRUCTION("54258BF3", vsli_s8(q1, q2, 3));
TEST_INSTRUCTION("542593F3", vsli_u16(q1, q2, 3));
TEST_INSTRUCTION("5425A3F3", vsli_u32(q1, q2, 3));
TEST_INSTRUCTION("D42583F3", vsli_u64(q1, q2, 3));
TEST_INSTRUCTION("54258BF3", vsli_u8(q1, q2, 3));
TEST_INSTRUCTION("462C24FC", vsmmla_s8(q1, q2, q3));
TEST_INSTRUCTION("C109F1EE", vsqrt_f16(s1, s2));
TEST_INSTRUCTION("C10AF1EE", vsqrt_f32(s1, s2));
TEST_INSTRUCTION("C21BB1EE", vsqrt_f64(d1, d2));
TEST_INSTRUCTION("12119DF2", vsra_s16(d1, d2, 3));
TEST_INSTRUCTION("1211BDF2", vsra_s32(d1, d2, 3));
TEST_INSTRUCTION("9211BDF2", vsra_s64(d1, d2, 3));
TEST_INSTRUCTION("12118DF2", vsra_s8(d1, d2, 3));
TEST_INSTRUCTION("12119DF3", vsra_u16(d1, d2, 3));
TEST_INSTRUCTION("1211BDF3", vsra_u32(d1, d2, 3));
TEST_INSTRUCTION("9211BDF3", vsra_u64(d1, d2, 3));
TEST_INSTRUCTION("12118DF3", vsra_u8(d1, d2, 3));
TEST_INSTRUCTION("54219DF2", vsra_s16(q1, q2, 3));
TEST_INSTRUCTION("5421BDF2", vsra_s32(q1, q2, 3));
TEST_INSTRUCTION("D421BDF2", vsra_s64(q1, q2, 3));
TEST_INSTRUCTION("54218DF2", vsra_s8(q1, q2, 3));
TEST_INSTRUCTION("54219DF3", vsra_u16(q1, q2, 3));
TEST_INSTRUCTION("5421BDF3", vsra_u32(q1, q2, 3));
TEST_INSTRUCTION("D421BDF3", vsra_u64(q1, q2, 3));
TEST_INSTRUCTION("54218DF3", vsra_u8(q1, q2, 3));
TEST_INSTRUCTION("12149DF3", vsri_s16(d1, d2, 3));
TEST_INSTRUCTION("1214BDF3", vsri_s32(d1, d2, 3));
TEST_INSTRUCTION("9214BDF3", vsri_s64(d1, d2, 3));
TEST_INSTRUCTION("12148DF3", vsri_s8(d1, d2, 3));
TEST_INSTRUCTION("12149DF3", vsri_u16(d1, d2, 3));
TEST_INSTRUCTION("1214BDF3", vsri_u32(d1, d2, 3));
TEST_INSTRUCTION("9214BDF3", vsri_u64(d1, d2, 3));
TEST_INSTRUCTION("12148DF3", vsri_u8(d1, d2, 3));
TEST_INSTRUCTION("54249DF3", vsri_s16(q1, q2, 3));
TEST_INSTRUCTION("5424BDF3", vsri_s32(q1, q2, 3));
TEST_INSTRUCTION("D424BDF3", vsri_s64(q1, q2, 3));
TEST_INSTRUCTION("54248DF3", vsri_s8(q1, q2, 3));
TEST_INSTRUCTION("54249DF3", vsri_u16(q1, q2, 3));
TEST_INSTRUCTION("5424BDF3", vsri_u32(q1, q2, 3));
TEST_INSTRUCTION("D424BDF3", vsri_u64(q1, q2, 3));
TEST_INSTRUCTION("54248DF3", vsri_u8(q1, q2, 3));
TEST_INSTRUCTION("431702F4", vst1_16(d1, ptr_post(r2, r3)));
TEST_INSTRUCTION("831702F4", vst1_32(d1, ptr_post(r2, r3)));
TEST_INSTRUCTION("C31702F4", vst1_64(d1, ptr_post(r2, r3)));
TEST_INSTRUCTION("031702F4", vst1_8(d1, ptr_post(r2, r3)));
TEST_INSTRUCTION("4D1702F4", vst1_16(d1, ptr_post(r2, 8)));
TEST_INSTRUCTION("8D1702F4", vst1_32(d1, ptr_post(r2, 8)));
TEST_INSTRUCTION("CD1702F4", vst1_64(d1, ptr_post(r2, 8)));
TEST_INSTRUCTION("0D1702F4", vst1_8(d1, ptr_post(r2, 8)));
TEST_INSTRUCTION("441A03F4", vst1_16(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("841A03F4", vst1_32(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("C41A03F4", vst1_64(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("041A03F4", vst1_8(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("4D1A03F4", vst1_16(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("8D1A03F4", vst1_32(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("CD1A03F4", vst1_64(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("0D1A03F4", vst1_8(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("451604F4", vst1_16(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("851604F4", vst1_32(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("C51604F4", vst1_64(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("051604F4", vst1_8(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("4D1604F4", vst1_16(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("8D1604F4", vst1_32(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("CD1604F4", vst1_64(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("0D1604F4", vst1_8(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("461205F4", vst1_16(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("861205F4", vst1_32(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("C61205F4", vst1_64(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("061205F4", vst1_8(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("4D1205F4", vst1_16(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("8D1205F4", vst1_32(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("CD1205F4", vst1_64(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("0D1205F4", vst1_8(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("441803F4", vst2_16(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("841803F4", vst2_32(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("041803F4", vst2_8(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("4D1803F4", vst2_16(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("8D1803F4", vst2_32(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("0D1803F4", vst2_8(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("441803F4", vst2_16(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("841803F4", vst2_32(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("041803F4", vst2_8(d1, d2, ptr_post(r3, r4)));
TEST_INSTRUCTION("4D1803F4", vst2_16(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("8D1803F4", vst2_32(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("0D1803F4", vst2_8(d1, d2, ptr_post(r3, 16)));
TEST_INSTRUCTION("461305F4", vst2_16(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("861305F4", vst2_32(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("061305F4", vst2_8(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("4D1305F4", vst2_16(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("8D1305F4", vst2_32(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("0D1305F4", vst2_8(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("451404F4", vst3_16(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("851404F4", vst3_32(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("051404F4", vst3_8(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("4D1404F4", vst3_16(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("8D1404F4", vst3_32(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("0D1404F4", vst3_8(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("451404F4", vst3_16(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("851404F4", vst3_32(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("051404F4", vst3_8(d1, d2, d3, ptr_post(r4, r5)));
TEST_INSTRUCTION("4D1404F4", vst3_16(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("8D1404F4", vst3_32(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("0D1404F4", vst3_8(d1, d2, d3, ptr_post(r4, 24)));
TEST_INSTRUCTION("461005F4", vst4_16(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("861005F4", vst4_32(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("061005F4", vst4_8(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("4D1005F4", vst4_16(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("8D1005F4", vst4_32(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("0D1005F4", vst4_8(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("461005F4", vst4_16(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("861005F4", vst4_32(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("061005F4", vst4_8(d1, d2, d3, d4, ptr_post(r5, r6)));
TEST_INSTRUCTION("4D1005F4", vst4_16(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("8D1005F4", vst4_32(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("0D1005F4", vst4_8(d1, d2, d3, d4, ptr_post(r5, 32)));
TEST_INSTRUCTION("040A20ED", vstmdb_32(ptr_pre(r0), VecSList{s0, s1, s2, s3}));
TEST_INSTRUCTION("080B20ED", vstmdb_64(ptr_pre(r0), VecDList{d0, d1, d2, d3}));
TEST_INSTRUCTION("040A81EC", vstmia_32(ptr(r1), VecSList{s0, s1, s2, s3}));
TEST_INSTRUCTION("080B87EC", vstmia_64(ptr(r7), VecDList{d0, d1, d2, d3}));
TEST_INSTRUCTION("040AA1EC", vstmia_32(ptr_pre(r1), VecSList{s0, s1, s2, s3}));
TEST_INSTRUCTION("080BA7EC", vstmia_64(ptr_pre(r7), VecDList{d0, d1, d2, d3}));
TEST_INSTRUCTION("0209C2ED", vstr_16(s1, ptr(r2, 4)));
TEST_INSTRUCTION("010AC2ED", vstr_32(s1, ptr(r2, 4)));
TEST_INSTRUCTION("011B82ED", vstr_64(d1, ptr(r2, 4)));
TEST_INSTRUCTION("610971EE", vsub_f16(s1, s2, s3));
TEST_INSTRUCTION("610A71EE", vsub_f32(s1, s2, s3));
TEST_INSTRUCTION("431B32EE", vsub_f64(d1, d2, d3));
TEST_INSTRUCTION("031D32F2", vsub_f16(d1, d2, d3));
TEST_INSTRUCTION("031D22F2", vsub_f32(d1, d2, d3));
TEST_INSTRUCTION("462D34F2", vsub_f16(q1, q2, q3));
TEST_INSTRUCTION("462D24F2", vsub_f32(q1, q2, q3));
TEST_INSTRUCTION("031812F3", vsub_s16(d1, d2, d3));
TEST_INSTRUCTION("031822F3", vsub_s32(d1, d2, d3));
TEST_INSTRUCTION("031832F3", vsub_s64(d1, d2, d3));
TEST_INSTRUCTION("031802F3", vsub_s8(d1, d2, d3));
TEST_INSTRUCTION("031812F3", vsub_u16(d1, d2, d3));
TEST_INSTRUCTION("031822F3", vsub_u32(d1, d2, d3));
TEST_INSTRUCTION("031832F3", vsub_u64(d1, d2, d3));
TEST_INSTRUCTION("031802F3", vsub_u8(d1, d2, d3));
TEST_INSTRUCTION("462814F3", vsub_s16(q1, q2, q3));
TEST_INSTRUCTION("462824F3", vsub_s32(q1, q2, q3));
TEST_INSTRUCTION("462834F3", vsub_s64(q1, q2, q3));
TEST_INSTRUCTION("462804F3", vsub_s8(q1, q2, q3));
TEST_INSTRUCTION("462814F3", vsub_u16(q1, q2, q3));
TEST_INSTRUCTION("462824F3", vsub_u32(q1, q2, q3));
TEST_INSTRUCTION("462834F3", vsub_u64(q1, q2, q3));
TEST_INSTRUCTION("462804F3", vsub_u8(q1, q2, q3));
TEST_INSTRUCTION("061684F2", vsubhn_s16(d1, q2, q3));
TEST_INSTRUCTION("061694F2", vsubhn_s32(d1, q2, q3));
TEST_INSTRUCTION("0616A4F2", vsubhn_s64(d1, q2, q3));
TEST_INSTRUCTION("061684F2", vsubhn_u16(d1, q2, q3));
TEST_INSTRUCTION("061694F2", vsubhn_u32(d1, q2, q3));
TEST_INSTRUCTION("0616A4F2", vsubhn_u64(d1, q2, q3));
TEST_INSTRUCTION("032292F2", vsubl_s16(q1, d2, d3));
TEST_INSTRUCTION("0322A2F2", vsubl_s32(q1, d2, d3));
TEST_INSTRUCTION("032282F2", vsubl_s8(q1, d2, d3));
TEST_INSTRUCTION("032292F3", vsubl_u16(q1, d2, d3));
TEST_INSTRUCTION("0322A2F3", vsubl_u32(q1, d2, d3));
TEST_INSTRUCTION("032282F3", vsubl_u8(q1, d2, d3));
TEST_INSTRUCTION("032394F2", vsubw_s16(q1, q2, d3));
TEST_INSTRUCTION("0323A4F2", vsubw_s32(q1, q2, d3));
TEST_INSTRUCTION("032384F2", vsubw_s8(q1, q2, d3));
TEST_INSTRUCTION("032394F3", vsubw_u16(q1, q2, d3));
TEST_INSTRUCTION("0323A4F3", vsubw_u32(q1, q2, d3));
TEST_INSTRUCTION("032384F3", vsubw_u8(q1, q2, d3));
TEST_INSTRUCTION("131D82FE", vsudot_u8(d1, d2, d3.at(0)));
TEST_INSTRUCTION("331D82FE", vsudot_u8(d1, d2, d3.at(1)));
TEST_INSTRUCTION("532D84FE", vsudot_u8(q1, q2, d3.at(0)));
TEST_INSTRUCTION("732D84FE", vsudot_u8(q1, q2, d3.at(1)));
TEST_INSTRUCTION("0210B2F3", vswp(d1, d2));
TEST_INSTRUCTION("4420B2F3", vswp(q1, q2));
TEST_INSTRUCTION("0318B2F3", vtbl_s8(d1, d2, d3));
TEST_INSTRUCTION("0318B2F3", vtbl_u8(d1, d2, d3));
TEST_INSTRUCTION("0419B2F3", vtbl_s8(d1, d2, d3, d4));
TEST_INSTRUCTION("0419B2F3", vtbl_u8(d1, d2, d3, d4));
TEST_INSTRUCTION("051AB2F3", vtbl_s8(d1, d2, d3, d4, d5));
TEST_INSTRUCTION("051AB2F3", vtbl_u8(d1, d2, d3, d4, d5));
TEST_INSTRUCTION("061BB2F3", vtbl_s8(d1, d2, d3, d4, d5, d6));
TEST_INSTRUCTION("061BB2F3", vtbl_u8(d1, d2, d3, d4, d5, d6));
TEST_INSTRUCTION("4318B2F3", vtbx_s8(d1, d2, d3));
TEST_INSTRUCTION("4318B2F3", vtbx_u8(d1, d2, d3));
TEST_INSTRUCTION("4419B2F3", vtbx_s8(d1, d2, d3, d4));
TEST_INSTRUCTION("4419B2F3", vtbx_u8(d1, d2, d3, d4));
TEST_INSTRUCTION("451AB2F3", vtbx_s8(d1, d2, d3, d4, d5));
TEST_INSTRUCTION("451AB2F3", vtbx_u8(d1, d2, d3, d4, d5));
TEST_INSTRUCTION("461BB2F3", vtbx_s8(d1, d2, d3, d4, d5, d6));
TEST_INSTRUCTION("461BB2F3", vtbx_u8(d1, d2, d3, d4, d5, d6));
TEST_INSTRUCTION("8210B6F3", vtrn_s16(d1, d2));
TEST_INSTRUCTION("8210BAF3", vtrn_s32(d1, d2));
TEST_INSTRUCTION("8210B2F3", vtrn_s8(d1, d2));
TEST_INSTRUCTION("8210B6F3", vtrn_u16(d1, d2));
TEST_INSTRUCTION("8210BAF3", vtrn_u32(d1, d2));
TEST_INSTRUCTION("8210B2F3", vtrn_u8(d1, d2));
TEST_INSTRUCTION("C420B6F3", vtrn_s16(q1, q2));
TEST_INSTRUCTION("C420BAF3", vtrn_s32(q1, q2));
TEST_INSTRUCTION("C420B2F3", vtrn_s8(q1, q2));
TEST_INSTRUCTION("C420B6F3", vtrn_u16(q1, q2));
TEST_INSTRUCTION("C420BAF3", vtrn_u32(q1, q2));
TEST_INSTRUCTION("C420B2F3", vtrn_u8(q1, q2));
TEST_INSTRUCTION("131812F2", vtst_s16(d1, d2, d3));
TEST_INSTRUCTION("131822F2", vtst_s32(d1, d2, d3));
TEST_INSTRUCTION("131802F2", vtst_s8(d1, d2, d3));
TEST_INSTRUCTION("131812F2", vtst_u16(d1, d2, d3));
TEST_INSTRUCTION("131822F2", vtst_u32(d1, d2, d3));
TEST_INSTRUCTION("131802F2", vtst_u8(d1, d2, d3));
TEST_INSTRUCTION("562814F2", vtst_s16(q1, q2, q3));
TEST_INSTRUCTION("562824F2", vtst_s32(q1, q2, q3));
TEST_INSTRUCTION("562804F2", vtst_s8(q1, q2, q3));
TEST_INSTRUCTION("562814F2", vtst_u16(q1, q2, q3));
TEST_INSTRUCTION("562824F2", vtst_u32(q1, q2, q3));
TEST_INSTRUCTION("562804F2", vtst_u8(q1, q2, q3));
TEST_INSTRUCTION("131D22FC", vudot_u8(d1, d2, d3));
TEST_INSTRUCTION("562D24FC", vudot_u8(q1, q2, q3));
TEST_INSTRUCTION("131D22FE", vudot_u8(d1, d2, d3.at(0)));
TEST_INSTRUCTION("331D22FE", vudot_u8(d1, d2, d3.at(1)));
TEST_INSTRUCTION("532D24FE", vudot_u8(q1, q2, d3.at(0)));
TEST_INSTRUCTION("732D24FE", vudot_u8(q1, q2, d3.at(1)));
TEST_INSTRUCTION("562C24FC", vummla_u8(q1, q2, q3));
TEST_INSTRUCTION("031DA2FC", vusdot_s8(d1, d2, d3));
TEST_INSTRUCTION("462DA4FC", vusdot_s8(q1, q2, q3));
TEST_INSTRUCTION("031D82FE", vusdot_s8(d1, d2, d3.at(0)));
TEST_INSTRUCTION("231D82FE", vusdot_s8(d1, d2, d3.at(1)));
TEST_INSTRUCTION("432D84FE", vusdot_s8(q1, q2, d3.at(0)));
TEST_INSTRUCTION("632D84FE", vusdot_s8(q1, q2, d3.at(1)));
TEST_INSTRUCTION("462CA4FC", vusmmla_s8(q1, q2, q3));
TEST_INSTRUCTION("0211B6F3", vuzp_s16(d1, d2));
TEST_INSTRUCTION("0211B2F3", vuzp_s8(d1, d2));
TEST_INSTRUCTION("0211B6F3", vuzp_u16(d1, d2));
TEST_INSTRUCTION("0211B2F3", vuzp_u8(d1, d2));
TEST_INSTRUCTION("8210BAF3", vuzp_s32(d1, d2));
TEST_INSTRUCTION("8210BAF3", vuzp_u32(d1, d2));
TEST_INSTRUCTION("4421B6F3", vuzp_s16(q1, q2));
TEST_INSTRUCTION("4421BAF3", vuzp_s32(q1, q2));
TEST_INSTRUCTION("4421B2F3", vuzp_s8(q1, q2));
TEST_INSTRUCTION("4421B6F3", vuzp_u16(q1, q2));
TEST_INSTRUCTION("4421BAF3", vuzp_u32(q1, q2));
TEST_INSTRUCTION("4421B2F3", vuzp_u8(q1, q2));
TEST_INSTRUCTION("8211B6F3", vzip_s16(d1, d2));
TEST_INSTRUCTION("8211B2F3", vzip_s8(d1, d2));
TEST_INSTRUCTION("8211B6F3", vzip_u16(d1, d2));
TEST_INSTRUCTION("8211B2F3", vzip_u8(d1, d2));
TEST_INSTRUCTION("8210BAF3", vzip_s32(d1, d2));
TEST_INSTRUCTION("8210BAF3", vzip_u32(d1, d2));
TEST_INSTRUCTION("C421B6F3", vzip_s16(q1, q2));
TEST_INSTRUCTION("C421BAF3", vzip_s32(q1, q2));
TEST_INSTRUCTION("C421B2F3", vzip_s8(q1, q2));
TEST_INSTRUCTION("C421B6F3", vzip_u16(q1, q2));
TEST_INSTRUCTION("C421BAF3", vzip_u32(q1, q2));
TEST_INSTRUCTION("C421B2F3", vzip_u8(q1, q2));
}
static void ASMJIT_NOINLINE test_aarch32_assembler_rel(AssemblerTester<a32::Assembler>& tester) noexcept {
using namespace a32;
// NOTE: PC points to `<instruction> + 8` on ARM32.
a32::Assembler& a = tester.assembler;
// Check whether the relative memory address calculation is encoded properly.
{
Label L0 = a.new_label();
a.bind(L0);
a.adr(r1, L0);
tester.test_valid_instruction("L0: adr r1, L0", "08104FE2");
}
// Check whether the relative memory address calculation is encoded properly.
{
Label L0 = a.new_label();
a.adr(r1, L0);
a.bind(L0);
tester.test_valid_instruction("adr r1, L0; L0:", "04104FE2");
}
// Check whether the relative memory read is encoded properly.
{
Label L0 = a.new_label();
a.bind(L0);
a.ldr(r1, ptr(L0));
tester.test_valid_instruction("L0: ldr r1, [L0]", "08101FE5");
}
// Check whether the relative memory read is encoded properly.
{
Label L0 = a.new_label();
a.ldr(r1, ptr(L0));
a.bind(L0);
tester.test_valid_instruction("ldr r1, [L0]; L0:", "04101FE5");
}
// Check whether the relative backward jump is encoded properly.
{
Label L0 = a.new_label();
a.bind(L0);
a.b(L0);
tester.test_valid_instruction("L0: b L0", "FEFFFFEA");
}
// Check whether the relative forward jump is encoded properly.
{
Label L0 = a.new_label();
a.b(L0);
a.bind(L0);
tester.test_valid_instruction("b L0; L0:", "FFFFFFEA");
}
}
bool test_aarch32_assembler(const TestSettings& settings) noexcept {
using namespace a32;
AssemblerTester<Assembler> tester(Arch::kARM, settings);
tester.print_header("AArch32");
test_aarch32_assembler_base(tester);
test_aarch32_assembler_vec(tester);
test_aarch32_assembler_rel(tester);
tester.print_summary();
return tester.did_pass();
}
#undef TEST_INSTRUCTION
#endif // !ASMJIT_NO_AARCH32