From 77c0265df9e78cec06573cf0f3eee6b6a845bbbf Mon Sep 17 00:00:00 2001 From: Brendan Punsky Date: Mon, 15 Jun 2026 21:37:31 -0400 Subject: [PATCH] rexcode/arm64: NEON ABS/NEG + FP vector-convert encode forms Adds 14 mnemonics (74 forms) via specgen: integer two-register ABS/NEG, and the FP vector-convert (register form) family FCVTAS/AU/MS/MU/NS/NU/PS/PU/ZS/ZU + SCVTF/UCVTF. SP/DP .NEON, half-precision .FP16; the fixed-point (#fbits) convert forms come later with the immediate phase. Verified: decode round-trips incl. FP16 (abs/neg/fcvtzs.8h/scvtf), arm64 check + 461 tests pass. --- core/rexcode/arm64/mnemonic_builders.odin | 56 + .../arm64/tablegen/encoding_table.odin | 104 ++ .../tablegen/generated/decode_tables.odin | 912 +++++----- .../tablegen/generated/encode_tables.odin | 1530 +++++++++-------- core/rexcode/arm64/tablegen/specgen.lua | 6 + .../arm64/tables/arm64.encode_forms.bin | Bin 36120 -> 37600 bytes .../arm64/tables/arm64.encode_runs.bin | Bin 8960 -> 8960 bytes core/rexcode/arm64/tables/arm64.entries.bin | Bin 36160 -> 37640 bytes core/rexcode/arm64/tables/arm64.idx_op0.bin | Bin 64 -> 64 bytes 9 files changed, 1468 insertions(+), 1140 deletions(-) diff --git a/core/rexcode/arm64/mnemonic_builders.odin b/core/rexcode/arm64/mnemonic_builders.odin index a429e4166..9184cc144 100644 --- a/core/rexcode/arm64/mnemonic_builders.odin +++ b/core/rexcode/arm64/mnemonic_builders.odin @@ -743,6 +743,10 @@ inst_mla_v_r_r_r :: #force_inline proc "contextless" (dst: Regist emit_mla_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mla_v_r_r_r(dst, src, src2)) } inst_mls_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLS_V, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } emit_mls_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mls_v_r_r_r(dst, src, src2)) } +inst_neg_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NEG_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } +emit_neg_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_neg_v_r_r(dst, src)) } +inst_abs_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ABS_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } +emit_abs_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_abs_v_r_r(dst, src)) } inst_shadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHADD, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } emit_shadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shadd_r_r_r(dst, src, src2)) } inst_uhadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHADD, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } @@ -987,6 +991,30 @@ inst_frintx_v_r_r :: #force_inline proc "contextless" (dst: Regist emit_frintx_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintx_v_r_r(dst, src)) } inst_frintz_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTZ_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } emit_frintz_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintz_v_r_r(dst, src)) } +inst_scvtf_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SCVTF_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } +emit_scvtf_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_scvtf_v_r_r(dst, src)) } +inst_ucvtf_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UCVTF_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } +emit_ucvtf_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ucvtf_v_r_r(dst, src)) } +inst_fcvtas_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAS_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } +emit_fcvtas_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtas_v_r_r(dst, src)) } +inst_fcvtau_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAU_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } +emit_fcvtau_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtau_v_r_r(dst, src)) } +inst_fcvtms_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMS_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } +emit_fcvtms_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtms_v_r_r(dst, src)) } +inst_fcvtmu_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMU_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } +emit_fcvtmu_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtmu_v_r_r(dst, src)) } +inst_fcvtns_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNS_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } +emit_fcvtns_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtns_v_r_r(dst, src)) } +inst_fcvtnu_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNU_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } +emit_fcvtnu_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtnu_v_r_r(dst, src)) } +inst_fcvtps_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPS_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } +emit_fcvtps_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtps_v_r_r(dst, src)) } +inst_fcvtpu_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPU_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } +emit_fcvtpu_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtpu_v_r_r(dst, src)) } +inst_fcvtzs_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZS_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } +emit_fcvtzs_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzs_v_r_r(dst, src)) } +inst_fcvtzu_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZU_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } +emit_fcvtzu_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzu_v_r_r(dst, src)) } inst_fcmeq_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMEQ, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } emit_fcmeq_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmeq_r_r_r(dst, src, src2)) } inst_fcmge_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGE, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } @@ -2582,6 +2610,10 @@ inst_mla_v :: inst_mla_v_r_r_r emit_mla_v :: emit_mla_v_r_r_r inst_mls_v :: inst_mls_v_r_r_r emit_mls_v :: emit_mls_v_r_r_r +inst_neg_v :: inst_neg_v_r_r +emit_neg_v :: emit_neg_v_r_r +inst_abs_v :: inst_abs_v_r_r +emit_abs_v :: emit_abs_v_r_r inst_shadd :: inst_shadd_r_r_r emit_shadd :: emit_shadd_r_r_r inst_uhadd :: inst_uhadd_r_r_r @@ -2826,6 +2858,30 @@ inst_frintx_v :: inst_frintx_v_r_r emit_frintx_v :: emit_frintx_v_r_r inst_frintz_v :: inst_frintz_v_r_r emit_frintz_v :: emit_frintz_v_r_r +inst_scvtf_v :: inst_scvtf_v_r_r +emit_scvtf_v :: emit_scvtf_v_r_r +inst_ucvtf_v :: inst_ucvtf_v_r_r +emit_ucvtf_v :: emit_ucvtf_v_r_r +inst_fcvtas_v :: inst_fcvtas_v_r_r +emit_fcvtas_v :: emit_fcvtas_v_r_r +inst_fcvtau_v :: inst_fcvtau_v_r_r +emit_fcvtau_v :: emit_fcvtau_v_r_r +inst_fcvtms_v :: inst_fcvtms_v_r_r +emit_fcvtms_v :: emit_fcvtms_v_r_r +inst_fcvtmu_v :: inst_fcvtmu_v_r_r +emit_fcvtmu_v :: emit_fcvtmu_v_r_r +inst_fcvtns_v :: inst_fcvtns_v_r_r +emit_fcvtns_v :: emit_fcvtns_v_r_r +inst_fcvtnu_v :: inst_fcvtnu_v_r_r +emit_fcvtnu_v :: emit_fcvtnu_v_r_r +inst_fcvtps_v :: inst_fcvtps_v_r_r +emit_fcvtps_v :: emit_fcvtps_v_r_r +inst_fcvtpu_v :: inst_fcvtpu_v_r_r +emit_fcvtpu_v :: emit_fcvtpu_v_r_r +inst_fcvtzs_v :: inst_fcvtzs_v_r_r +emit_fcvtzs_v :: emit_fcvtzs_v_r_r +inst_fcvtzu_v :: inst_fcvtzu_v_r_r +emit_fcvtzu_v :: emit_fcvtzu_v_r_r inst_fcmeq :: inst_fcmeq_r_r_r emit_fcmeq :: emit_fcmeq_r_r_r inst_fcmge :: inst_fcmge_r_r_r diff --git a/core/rexcode/arm64/tablegen/encoding_table.odin b/core/rexcode/arm64/tablegen/encoding_table.odin index 309658476..a96e21c0d 100644 --- a/core/rexcode/arm64/tablegen/encoding_table.odin +++ b/core/rexcode/arm64/tablegen/encoding_table.odin @@ -3261,6 +3261,24 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ }, // Advanced SIMD two-register misc. + .ABS_V = { + {.ABS_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E20B800, 0xFFFFFC00, .NEON, {}}, + {.ABS_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E20B800, 0xFFFFFC00, .NEON, {}}, + {.ABS_V, {.V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E60B800, 0xFFFFFC00, .NEON, {}}, + {.ABS_V, {.V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E60B800, 0xFFFFFC00, .NEON, {}}, + {.ABS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA0B800, 0xFFFFFC00, .NEON, {}}, + {.ABS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA0B800, 0xFFFFFC00, .NEON, {}}, + {.ABS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EE0B800, 0xFFFFFC00, .NEON, {}}, + }, + .NEG_V = { + {.NEG_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E20B800, 0xFFFFFC00, .NEON, {}}, + {.NEG_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E20B800, 0xFFFFFC00, .NEON, {}}, + {.NEG_V, {.V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E60B800, 0xFFFFFC00, .NEON, {}}, + {.NEG_V, {.V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E60B800, 0xFFFFFC00, .NEON, {}}, + {.NEG_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA0B800, 0xFFFFFC00, .NEON, {}}, + {.NEG_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA0B800, 0xFFFFFC00, .NEON, {}}, + {.NEG_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EE0B800, 0xFFFFFC00, .NEON, {}}, + }, .NOT_V = { {.NOT_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {}}, {.NOT_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {}}, @@ -3523,6 +3541,92 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ {.FRSQRTE, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EF9D800, 0xFFFFFC00, .FP16, {}}, }, + // Advanced SIMD floating-point convert (vector, register form). + .FCVTAS_V = { + {.FCVTAS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E21C800, 0xFFFFFC00, .NEON, {}}, + {.FCVTAS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E21C800, 0xFFFFFC00, .NEON, {}}, + {.FCVTAS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E61C800, 0xFFFFFC00, .NEON, {}}, + {.FCVTAS_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E79C800, 0xFFFFFC00, .FP16, {}}, + {.FCVTAS_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E79C800, 0xFFFFFC00, .FP16, {}}, + }, + .FCVTAU_V = { + {.FCVTAU_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E21C800, 0xFFFFFC00, .NEON, {}}, + {.FCVTAU_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E21C800, 0xFFFFFC00, .NEON, {}}, + {.FCVTAU_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E61C800, 0xFFFFFC00, .NEON, {}}, + {.FCVTAU_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E79C800, 0xFFFFFC00, .FP16, {}}, + {.FCVTAU_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E79C800, 0xFFFFFC00, .FP16, {}}, + }, + .FCVTMS_V = { + {.FCVTMS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E21B800, 0xFFFFFC00, .NEON, {}}, + {.FCVTMS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E21B800, 0xFFFFFC00, .NEON, {}}, + {.FCVTMS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E61B800, 0xFFFFFC00, .NEON, {}}, + {.FCVTMS_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E79B800, 0xFFFFFC00, .FP16, {}}, + {.FCVTMS_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E79B800, 0xFFFFFC00, .FP16, {}}, + }, + .FCVTMU_V = { + {.FCVTMU_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E21B800, 0xFFFFFC00, .NEON, {}}, + {.FCVTMU_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E21B800, 0xFFFFFC00, .NEON, {}}, + {.FCVTMU_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E61B800, 0xFFFFFC00, .NEON, {}}, + {.FCVTMU_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E79B800, 0xFFFFFC00, .FP16, {}}, + {.FCVTMU_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E79B800, 0xFFFFFC00, .FP16, {}}, + }, + .FCVTNS_V = { + {.FCVTNS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E21A800, 0xFFFFFC00, .NEON, {}}, + {.FCVTNS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E21A800, 0xFFFFFC00, .NEON, {}}, + {.FCVTNS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E61A800, 0xFFFFFC00, .NEON, {}}, + {.FCVTNS_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E79A800, 0xFFFFFC00, .FP16, {}}, + {.FCVTNS_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E79A800, 0xFFFFFC00, .FP16, {}}, + }, + .FCVTNU_V = { + {.FCVTNU_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E21A800, 0xFFFFFC00, .NEON, {}}, + {.FCVTNU_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E21A800, 0xFFFFFC00, .NEON, {}}, + {.FCVTNU_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E61A800, 0xFFFFFC00, .NEON, {}}, + {.FCVTNU_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E79A800, 0xFFFFFC00, .FP16, {}}, + {.FCVTNU_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E79A800, 0xFFFFFC00, .FP16, {}}, + }, + .FCVTPS_V = { + {.FCVTPS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA1A800, 0xFFFFFC00, .NEON, {}}, + {.FCVTPS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA1A800, 0xFFFFFC00, .NEON, {}}, + {.FCVTPS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EE1A800, 0xFFFFFC00, .NEON, {}}, + {.FCVTPS_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EF9A800, 0xFFFFFC00, .FP16, {}}, + {.FCVTPS_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EF9A800, 0xFFFFFC00, .FP16, {}}, + }, + .FCVTPU_V = { + {.FCVTPU_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA1A800, 0xFFFFFC00, .NEON, {}}, + {.FCVTPU_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA1A800, 0xFFFFFC00, .NEON, {}}, + {.FCVTPU_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EE1A800, 0xFFFFFC00, .NEON, {}}, + {.FCVTPU_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EF9A800, 0xFFFFFC00, .FP16, {}}, + {.FCVTPU_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EF9A800, 0xFFFFFC00, .FP16, {}}, + }, + .FCVTZS_V = { + {.FCVTZS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA1B800, 0xFFFFFC00, .NEON, {}}, + {.FCVTZS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA1B800, 0xFFFFFC00, .NEON, {}}, + {.FCVTZS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EE1B800, 0xFFFFFC00, .NEON, {}}, + {.FCVTZS_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EF9B800, 0xFFFFFC00, .FP16, {}}, + {.FCVTZS_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EF9B800, 0xFFFFFC00, .FP16, {}}, + }, + .FCVTZU_V = { + {.FCVTZU_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA1B800, 0xFFFFFC00, .NEON, {}}, + {.FCVTZU_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA1B800, 0xFFFFFC00, .NEON, {}}, + {.FCVTZU_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EE1B800, 0xFFFFFC00, .NEON, {}}, + {.FCVTZU_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EF9B800, 0xFFFFFC00, .FP16, {}}, + {.FCVTZU_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EF9B800, 0xFFFFFC00, .FP16, {}}, + }, + .SCVTF_V = { + {.SCVTF_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E21D800, 0xFFFFFC00, .NEON, {}}, + {.SCVTF_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E21D800, 0xFFFFFC00, .NEON, {}}, + {.SCVTF_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E61D800, 0xFFFFFC00, .NEON, {}}, + {.SCVTF_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E79D800, 0xFFFFFC00, .FP16, {}}, + {.SCVTF_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E79D800, 0xFFFFFC00, .FP16, {}}, + }, + .UCVTF_V = { + {.UCVTF_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E21D800, 0xFFFFFC00, .NEON, {}}, + {.UCVTF_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E21D800, 0xFFFFFC00, .NEON, {}}, + {.UCVTF_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E61D800, 0xFFFFFC00, .NEON, {}}, + {.UCVTF_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E79D800, 0xFFFFFC00, .FP16, {}}, + {.UCVTF_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E79D800, 0xFFFFFC00, .FP16, {}}, + }, + // Advanced SIMD three-different (long). .SADDL = { {.SADDL, {.V_8H, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E200000, 0xFFE0FC00, .NEON, {}}, diff --git a/core/rexcode/arm64/tablegen/generated/decode_tables.odin b/core/rexcode/arm64/tablegen/generated/decode_tables.odin index 7982808d5..14fbdae3c 100644 --- a/core/rexcode/arm64/tablegen/generated/decode_tables.odin +++ b/core/rexcode/arm64/tablegen/generated/decode_tables.odin @@ -8,7 +8,7 @@ package rexcode_arm64_generated import lib "../.." @(rodata) -DECODE_ENTRIES := [1808]lib.Decode_Entry{ +DECODE_ENTRIES := [1882]lib.Decode_Entry{ { .AMX_SET, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x00201220, 0xFFFFFFFF, .AMX, {} }, { .AMX_CLR, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x00201240, 0xFFFFFFFF, .AMX, {} }, { .AMX_LDX, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201000, 0xFFFFFFE0, .AMX, {is_64=true} }, @@ -62,10 +62,10 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .SME_BFMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0x81800010, 0xFFE08010, .SME, {} }, { .SME_SMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA0800000, 0xFFE08010, .SME, {} }, { .SME_SMOPA, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA0C00000, 0xFFE08010, .SME, {is_64=true} }, - { .SME_SMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA0800010, 0xFFE08010, .SME, {} }, { .SME_SMOPS, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA0C00010, 0xFFE08010, .SME, {is_64=true} }, - { .SME_UMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA1A00000, 0xFFE08010, .SME, {} }, + { .SME_SMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA0800010, 0xFFE08010, .SME, {} }, { .SME_UMOPA, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA1E00000, 0xFFE08010, .SME, {is_64=true} }, + { .SME_UMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA1A00000, 0xFFE08010, .SME, {} }, { .SME_UMOPS, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA1E00010, 0xFFE08010, .SME, {is_64=true} }, { .SME_UMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA1A00010, 0xFFE08010, .SME, {} }, { .SME_USMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA1800000, 0xFFE08010, .SME, {} }, @@ -92,14 +92,14 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .SVE_REV_P, {.P_REG,.P_REG,.NONE,.NONE}, {.PD,.PN,.NONE,.NONE}, 0x05344000, 0xFFFFFE10, .SVE, {} }, { .SVE_PTRUE, {.P_REG,.SVE_PATTERN,.NONE,.NONE}, {.PD,.SVE_PATTERN,.NONE,.NONE}, 0x2518E000, 0xFFFFFC10, .SVE, {} }, { .SVE_PTRUES, {.P_REG,.SVE_PATTERN,.NONE,.NONE}, {.PD,.SVE_PATTERN,.NONE,.NONE}, 0x2519E000, 0xFFFFFC10, .SVE, {sets_flags=true} }, - { .SVE_DUP_Z, {.Z_REG_D,.X_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05E03800, 0xFFFFFC00, .SVE, {is_64=true} }, - { .SVE_DUP_Z, {.Z_REG_S,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05A03800, 0xFFFFFC00, .SVE, {} }, - { .SVE_DUP_Z, {.Z_REG_B,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05203800, 0xFFFFFC00, .SVE, {} }, { .SVE_DUP_Z, {.Z_REG_H,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05603800, 0xFFFFFC00, .SVE, {} }, - { .SVE_REV_Z, {.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05383800, 0xFFFFFC00, .SVE, {} }, + { .SVE_DUP_Z, {.Z_REG_D,.X_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05E03800, 0xFFFFFC00, .SVE, {is_64=true} }, + { .SVE_DUP_Z, {.Z_REG_B,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05203800, 0xFFFFFC00, .SVE, {} }, + { .SVE_DUP_Z, {.Z_REG_S,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05A03800, 0xFFFFFC00, .SVE, {} }, { .SVE_REV_Z, {.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05F83800, 0xFFFFFC00, .SVE, {is_64=true} }, - { .SVE_REV_Z, {.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05B83800, 0xFFFFFC00, .SVE, {} }, { .SVE_REV_Z, {.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05783800, 0xFFFFFC00, .SVE, {} }, + { .SVE_REV_Z, {.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05383800, 0xFFFFFC00, .SVE, {} }, + { .SVE_REV_Z, {.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05B83800, 0xFFFFFC00, .SVE, {} }, { .SVE_AESE, {.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4522E000, 0xFFFFFC00, .SVE2, {} }, { .SVE_AESD, {.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4522E400, 0xFFFFFC00, .SVE2, {} }, { .SME_RDSVL, {.X_REG,.IMM_6,.NONE,.NONE}, {.RD,.IMM6,.NONE,.NONE}, 0x04BF5800, 0xFFFFFC00, .SME, {is_64=true} }, @@ -116,88 +116,88 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .SVE_SPLICE, {.Z_REG_B,.P_REG_GOV,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VN}, 0x052C8000, 0xFFFFE000, .SVE, {} }, { .SVE_BFCVT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x658AA000, 0xFFFFE000, .SVE, {} }, { .SVE_BFCVTNT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x648AA000, 0xFFFFE000, .SVE, {} }, - { .SVE_ADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E00000, 0xFFE0FC00, .SVE, {is_64=true} }, { .SVE_ADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A00000, 0xFFE0FC00, .SVE, {} }, { .SVE_ADD_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04200000, 0xFFE0FC00, .SVE, {} }, { .SVE_ADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04600000, 0xFFE0FC00, .SVE, {} }, + { .SVE_ADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E00000, 0xFFE0FC00, .SVE, {is_64=true} }, { .SVE_SUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E00400, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_SUB_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04200400, 0xFFE0FC00, .SVE, {} }, - { .SVE_SUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A00400, 0xFFE0FC00, .SVE, {} }, { .SVE_SUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04600400, 0xFFE0FC00, .SVE, {} }, + { .SVE_SUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A00400, 0xFFE0FC00, .SVE, {} }, + { .SVE_SUB_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04200400, 0xFFE0FC00, .SVE, {} }, + { .SVE_SQADD_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201000, 0xFFE0FC00, .SVE, {} }, { .SVE_SQADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01000, 0xFFE0FC00, .SVE, {} }, { .SVE_SQADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601000, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQADD_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201000, 0xFFE0FC00, .SVE, {} }, { .SVE_SQADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01000, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_UQADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01400, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQADD_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201400, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601400, 0xFFE0FC00, .SVE, {} }, { .SVE_UQADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01400, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_SQSUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601800, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQSUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01800, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQSUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01800, 0xFFE0FC00, .SVE, {is_64=true} }, + { .SVE_UQADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01400, 0xFFE0FC00, .SVE, {} }, + { .SVE_UQADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601400, 0xFFE0FC00, .SVE, {} }, + { .SVE_UQADD_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201400, 0xFFE0FC00, .SVE, {} }, { .SVE_SQSUB_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201800, 0xFFE0FC00, .SVE, {} }, + { .SVE_SQSUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01800, 0xFFE0FC00, .SVE, {} }, + { .SVE_SQSUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601800, 0xFFE0FC00, .SVE, {} }, + { .SVE_SQSUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01800, 0xFFE0FC00, .SVE, {is_64=true} }, + { .SVE_UQSUB_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201C00, 0xFFE0FC00, .SVE, {} }, { .SVE_UQSUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01C00, 0xFFE0FC00, .SVE, {} }, { .SVE_UQSUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01C00, 0xFFE0FC00, .SVE, {is_64=true} }, { .SVE_UQSUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQSUB_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_FADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800000, 0xFFE0FC00, .SVE, {} }, { .SVE_FADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00000, 0xFFE0FC00, .SVE, {is_64=true} }, { .SVE_FADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400000, 0xFFE0FC00, .SVE, {} }, + { .SVE_FADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800000, 0xFFE0FC00, .SVE, {} }, { .SVE_FSUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400400, 0xFFE0FC00, .SVE, {} }, - { .SVE_FSUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800400, 0xFFE0FC00, .SVE, {} }, { .SVE_FSUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00400, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_FMUL_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400800, 0xFFE0FC00, .SVE, {} }, + { .SVE_FSUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800400, 0xFFE0FC00, .SVE, {} }, { .SVE_FMUL_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800800, 0xFFE0FC00, .SVE, {} }, + { .SVE_FMUL_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400800, 0xFFE0FC00, .SVE, {} }, { .SVE_FMUL_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00800, 0xFFE0FC00, .SVE, {is_64=true} }, { .SVE_FRECPS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65401800, 0xFFE0FC00, .SVE, {} }, - { .SVE_FRECPS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C01800, 0xFFE0FC00, .SVE, {is_64=true} }, { .SVE_FRECPS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65801800, 0xFFE0FC00, .SVE, {} }, + { .SVE_FRECPS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C01800, 0xFFE0FC00, .SVE, {is_64=true} }, + { .SVE_FRSQRTS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65801C00, 0xFFE0FC00, .SVE, {} }, { .SVE_FRSQRTS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65401C00, 0xFFE0FC00, .SVE, {} }, { .SVE_FRSQRTS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C01C00, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_FRSQRTS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65801C00, 0xFFE0FC00, .SVE, {} }, { .SVE_FTSMUL, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400C00, 0xFFE0FC00, .SVE, {} }, { .SVE_FTSMUL, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800C00, 0xFFE0FC00, .SVE, {} }, { .SVE_FTSMUL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00C00, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_TBL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E03000, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_TBL, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A03000, 0xFFE0FC00, .SVE, {} }, { .SVE_TBL, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05603000, 0xFFE0FC00, .SVE, {} }, + { .SVE_TBL, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A03000, 0xFFE0FC00, .SVE, {} }, { .SVE_TBL, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05203000, 0xFFE0FC00, .SVE, {} }, + { .SVE_TBL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E03000, 0xFFE0FC00, .SVE, {is_64=true} }, { .SVE_ZIP1_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06000, 0xFFE0FC00, .SVE, {} }, { .SVE_ZIP1_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06000, 0xFFE0FC00, .SVE, {is_64=true} }, + { .SVE_ZIP1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06000, 0xFFE0FC00, .SVE, {} }, { .SVE_ZIP1_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP2_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206400, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP2_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606400, 0xFFE0FC00, .SVE, {} }, { .SVE_ZIP2_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06400, 0xFFE0FC00, .SVE, {is_64=true} }, { .SVE_ZIP2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06400, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06800, 0xFFE0FC00, .SVE, {} }, + { .SVE_ZIP2_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606400, 0xFFE0FC00, .SVE, {} }, + { .SVE_ZIP2_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206400, 0xFFE0FC00, .SVE, {} }, { .SVE_UZP1_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606800, 0xFFE0FC00, .SVE, {} }, + { .SVE_UZP1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06800, 0xFFE0FC00, .SVE, {} }, { .SVE_UZP1_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06800, 0xFFE0FC00, .SVE, {is_64=true} }, { .SVE_UZP1_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206800, 0xFFE0FC00, .SVE, {} }, { .SVE_UZP2_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206C00, 0xFFE0FC00, .SVE, {} }, { .SVE_UZP2_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06C00, 0xFFE0FC00, .SVE, {} }, { .SVE_UZP2_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06C00, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_TRN1_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E07000, 0xFFE0FC00, .SVE, {is_64=true} }, + { .SVE_UZP2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06C00, 0xFFE0FC00, .SVE, {} }, { .SVE_TRN1_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05207000, 0xFFE0FC00, .SVE, {} }, { .SVE_TRN1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A07000, 0xFFE0FC00, .SVE, {} }, { .SVE_TRN1_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05607000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A07400, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN2_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E07400, 0xFFE0FC00, .SVE, {is_64=true} }, + { .SVE_TRN1_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E07000, 0xFFE0FC00, .SVE, {is_64=true} }, { .SVE_TRN2_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05607400, 0xFFE0FC00, .SVE, {} }, + { .SVE_TRN2_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E07400, 0xFFE0FC00, .SVE, {is_64=true} }, + { .SVE_TRN2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A07400, 0xFFE0FC00, .SVE, {} }, { .SVE_TRN2_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05207400, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQRDMLAH, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44C07000, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_SQRDMLAH, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44007000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLAH, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44807000, 0xFFE0FC00, .SVE2, {} }, { .SVE_SQRDMLAH, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44407000, 0xFFE0FC00, .SVE2, {} }, + { .SVE_SQRDMLAH, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44007000, 0xFFE0FC00, .SVE2, {} }, + { .SVE_SQRDMLAH, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44C07000, 0xFFE0FC00, .SVE2, {is_64=true} }, + { .SVE_SQRDMLAH, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44807000, 0xFFE0FC00, .SVE2, {} }, { .SVE_SQRDMLSH, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44007400, 0xFFE0FC00, .SVE2, {} }, { .SVE_SQRDMLSH, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44407400, 0xFFE0FC00, .SVE2, {} }, { .SVE_SQRDMLSH, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44C07400, 0xFFE0FC00, .SVE2, {is_64=true} }, { .SVE_SQRDMLSH, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44807400, 0xFFE0FC00, .SVE2, {} }, { .SVE_ADCLB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4500D000, 0xFFE0FC00, .SVE2, {} }, { .SVE_ADCLB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4540D000, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_ADCLT, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4500D400, 0xFFE0FC00, .SVE2, {} }, { .SVE_ADCLT, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4540D400, 0xFFE0FC00, .SVE2, {is_64=true} }, + { .SVE_ADCLT, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4500D400, 0xFFE0FC00, .SVE2, {} }, { .SVE_SBCLB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4580D000, 0xFFE0FC00, .SVE2, {} }, { .SVE_SBCLB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x45C0D000, 0xFFE0FC00, .SVE2, {is_64=true} }, { .SVE_SBCLT, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x45C0D400, 0xFFE0FC00, .SVE2, {is_64=true} }, @@ -248,54 +248,54 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .SVE_EORS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25404200, 0xFFE0C210, .SVE, {sets_flags=true} }, { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x2440A010, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C0A010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x2480A010, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x2400A010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true} }, + { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x2480A010, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true} }, + { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true} }, + { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true} }, + { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, + { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true} }, + { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPHI, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPHI, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPHI, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, { .SVE_CMPHI, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true} }, + { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_LDR_P, {.P_REG,.MEM,.NONE,.NONE}, {.PD,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0x85800000, 0xFFE0E010, .SVE, {} }, { .SVE_STR_P, {.P_REG,.MEM,.NONE,.NONE}, {.PD,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0xE5800000, 0xFFE0E010, .SVE, {} }, - { .SVE_MATCH, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x45208000, 0xFFE0E010, .SVE2, {sets_flags=true} }, { .SVE_MATCH, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x45608000, 0xFFE0E010, .SVE2, {sets_flags=true} }, + { .SVE_MATCH, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x45208000, 0xFFE0E010, .SVE2, {sets_flags=true} }, { .SVE_NMATCH, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x45608010, 0xFFE0E010, .SVE2, {sets_flags=true} }, { .SVE_NMATCH, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x45208010, 0xFFE0E010, .SVE2, {sets_flags=true} }, { .SVE_ADD_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04000000, 0xFFE0E000, .SVE, {} }, - { .SVE_ADD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04800000, 0xFFE0E000, .SVE, {} }, { .SVE_ADD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04400000, 0xFFE0E000, .SVE, {} }, { .SVE_ADD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C00000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_SUB_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04810000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUB_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04010000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUB_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C10000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_ADD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04800000, 0xFFE0E000, .SVE, {} }, { .SVE_SUB_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04410000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUBR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04830000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUBR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C30000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_SUBR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04030000, 0xFFE0E000, .SVE, {} }, + { .SVE_SUB_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04010000, 0xFFE0E000, .SVE, {} }, + { .SVE_SUB_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04810000, 0xFFE0E000, .SVE, {} }, + { .SVE_SUB_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C10000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_SUBR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04430000, 0xFFE0E000, .SVE, {} }, - { .SVE_MUL_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04900000, 0xFFE0E000, .SVE, {} }, + { .SVE_SUBR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04830000, 0xFFE0E000, .SVE, {} }, + { .SVE_SUBR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04030000, 0xFFE0E000, .SVE, {} }, + { .SVE_SUBR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C30000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_MUL_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04500000, 0xFFE0E000, .SVE, {} }, { .SVE_MUL_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D00000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_MUL_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04100000, 0xFFE0E000, .SVE, {} }, - { .SVE_MUL_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04500000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMULH_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04920000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMULH_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04520000, 0xFFE0E000, .SVE, {} }, + { .SVE_MUL_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04900000, 0xFFE0E000, .SVE, {} }, { .SVE_SMULH_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04120000, 0xFFE0E000, .SVE, {} }, { .SVE_SMULH_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D20000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_UMULH_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04930000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMULH_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D30000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_SMULH_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04920000, 0xFFE0E000, .SVE, {} }, + { .SVE_SMULH_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04520000, 0xFFE0E000, .SVE, {} }, { .SVE_UMULH_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04530000, 0xFFE0E000, .SVE, {} }, { .SVE_UMULH_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04130000, 0xFFE0E000, .SVE, {} }, + { .SVE_UMULH_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D30000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_UMULH_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04930000, 0xFFE0E000, .SVE, {} }, { .SVE_SDIV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04940000, 0xFFE0E000, .SVE, {} }, { .SVE_SDIV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D40000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_UDIV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D50000, 0xFFE0E000, .SVE, {is_64=true} }, @@ -304,105 +304,105 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .SVE_SMAX_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04080000, 0xFFE0E000, .SVE, {} }, { .SVE_SMAX_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C80000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_SMAX_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04480000, 0xFFE0E000, .SVE, {} }, + { .SVE_UMAX_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04090000, 0xFFE0E000, .SVE, {} }, + { .SVE_UMAX_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04890000, 0xFFE0E000, .SVE, {} }, { .SVE_UMAX_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04490000, 0xFFE0E000, .SVE, {} }, { .SVE_UMAX_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C90000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_UMAX_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04890000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMAX_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04090000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMIN_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048A0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMIN_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CA0000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_SMIN_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040A0000, 0xFFE0E000, .SVE, {} }, { .SVE_SMIN_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044A0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMIN_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044B0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMIN_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048B0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMIN_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CB0000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_SMIN_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040A0000, 0xFFE0E000, .SVE, {} }, + { .SVE_SMIN_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CA0000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_SMIN_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048A0000, 0xFFE0E000, .SVE, {} }, { .SVE_UMIN_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040B0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SABD_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040C0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SABD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CC0000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_SABD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044C0000, 0xFFE0E000, .SVE, {} }, + { .SVE_UMIN_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044B0000, 0xFFE0E000, .SVE, {} }, + { .SVE_UMIN_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CB0000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_UMIN_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048B0000, 0xFFE0E000, .SVE, {} }, { .SVE_SABD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048C0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UABD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048D0000, 0xFFE0E000, .SVE, {} }, + { .SVE_SABD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044C0000, 0xFFE0E000, .SVE, {} }, + { .SVE_SABD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CC0000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_SABD_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040C0000, 0xFFE0E000, .SVE, {} }, { .SVE_UABD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044D0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UABD_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040D0000, 0xFFE0E000, .SVE, {} }, { .SVE_UABD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CD0000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_UABD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048D0000, 0xFFE0E000, .SVE, {} }, + { .SVE_UABD_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040D0000, 0xFFE0E000, .SVE, {} }, { .SVE_ASR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04108000, 0xFFE0E000, .SVE, {} }, + { .SVE_ASR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D08000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_ASR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04908000, 0xFFE0E000, .SVE, {} }, { .SVE_ASR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04508000, 0xFFE0E000, .SVE, {} }, - { .SVE_ASR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D08000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_LSL_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D38000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_LSL_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04938000, 0xFFE0E000, .SVE, {} }, { .SVE_LSL_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04538000, 0xFFE0E000, .SVE, {} }, + { .SVE_LSL_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D38000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_LSL_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04138000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04918000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04518000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04118000, 0xFFE0E000, .SVE, {} }, { .SVE_LSR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D18000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_ABS_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D6A000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_ABS_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0416A000, 0xFFE0E000, .SVE, {} }, + { .SVE_LSR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04118000, 0xFFE0E000, .SVE, {} }, + { .SVE_LSR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04518000, 0xFFE0E000, .SVE, {} }, + { .SVE_LSR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04918000, 0xFFE0E000, .SVE, {} }, { .SVE_ABS_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0496A000, 0xFFE0E000, .SVE, {} }, + { .SVE_ABS_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0416A000, 0xFFE0E000, .SVE, {} }, { .SVE_ABS_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0456A000, 0xFFE0E000, .SVE, {} }, + { .SVE_ABS_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D6A000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_NEG_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0497A000, 0xFFE0E000, .SVE, {} }, + { .SVE_NEG_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0417A000, 0xFFE0E000, .SVE, {} }, { .SVE_NEG_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D7A000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_NEG_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0457A000, 0xFFE0E000, .SVE, {} }, - { .SVE_NEG_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0417A000, 0xFFE0E000, .SVE, {} }, { .SVE_CLS_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0418A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLS_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0458A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLS_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0498A000, 0xFFE0E000, .SVE, {} }, { .SVE_CLS_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D8A000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_CLS_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0498A000, 0xFFE0E000, .SVE, {} }, + { .SVE_CLS_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0458A000, 0xFFE0E000, .SVE, {} }, + { .SVE_CLZ_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0459A000, 0xFFE0E000, .SVE, {} }, { .SVE_CLZ_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0419A000, 0xFFE0E000, .SVE, {} }, { .SVE_CLZ_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D9A000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_CLZ_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0459A000, 0xFFE0E000, .SVE, {} }, { .SVE_CLZ_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0499A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CNT_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049AA000, 0xFFE0E000, .SVE, {} }, { .SVE_CNT_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04DAA000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_CNT_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x045AA000, 0xFFE0E000, .SVE, {} }, { .SVE_CNT_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x041AA000, 0xFFE0E000, .SVE, {} }, + { .SVE_CNT_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049AA000, 0xFFE0E000, .SVE, {} }, + { .SVE_CNT_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x045AA000, 0xFFE0E000, .SVE, {} }, + { .SVE_FADD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65408000, 0xFFE0E000, .SVE, {} }, { .SVE_FADD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65808000, 0xFFE0E000, .SVE, {} }, { .SVE_FADD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C08000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FADD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65408000, 0xFFE0E000, .SVE, {} }, + { .SVE_FSUB_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65818000, 0xFFE0E000, .SVE, {} }, { .SVE_FSUB_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65418000, 0xFFE0E000, .SVE, {} }, { .SVE_FSUB_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C18000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FSUB_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65818000, 0xFFE0E000, .SVE, {} }, { .SVE_FMUL_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C28000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FMUL_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65828000, 0xFFE0E000, .SVE, {} }, { .SVE_FMUL_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65428000, 0xFFE0E000, .SVE, {} }, + { .SVE_FMUL_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65828000, 0xFFE0E000, .SVE, {} }, { .SVE_FDIV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65CD8000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_FDIV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x658D8000, 0xFFE0E000, .SVE, {} }, { .SVE_FDIV_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x654D8000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMAX_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65868000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMAX_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65468000, 0xFFE0E000, .SVE, {} }, { .SVE_FMAX_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C68000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FMIN_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C78000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_FMAX_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65468000, 0xFFE0E000, .SVE, {} }, + { .SVE_FMAX_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65868000, 0xFFE0E000, .SVE, {} }, { .SVE_FMIN_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65478000, 0xFFE0E000, .SVE, {} }, + { .SVE_FMIN_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C78000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_FMIN_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65878000, 0xFFE0E000, .SVE, {} }, + { .SVE_FMAXNM_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65848000, 0xFFE0E000, .SVE, {} }, { .SVE_FMAXNM_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C48000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_FMAXNM_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65448000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMAXNM_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65848000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMINNM_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65458000, 0xFFE0E000, .SVE, {} }, { .SVE_FMINNM_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65858000, 0xFFE0E000, .SVE, {} }, + { .SVE_FMINNM_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65458000, 0xFFE0E000, .SVE, {} }, { .SVE_FMINNM_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C58000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FABS_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x045CA000, 0xFFE0E000, .SVE, {} }, { .SVE_FABS_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049CA000, 0xFFE0E000, .SVE, {} }, { .SVE_FABS_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04DCA000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FNEG_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049DA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FNEG_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04DDA000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_FABS_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x045CA000, 0xFFE0E000, .SVE, {} }, { .SVE_FNEG_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x045DA000, 0xFFE0E000, .SVE, {} }, + { .SVE_FNEG_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04DDA000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_FNEG_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049DA000, 0xFFE0E000, .SVE, {} }, { .SVE_FSQRT_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x654DA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FSQRT_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65CDA000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_FSQRT_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x658DA000, 0xFFE0E000, .SVE, {} }, + { .SVE_FSQRT_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65CDA000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_FMLA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A00000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMLA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E00000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_FMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65600000, 0xFFE0E000, .SVE, {} }, + { .SVE_FMLA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E00000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_FMLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E02000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_FMLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A02000, 0xFFE0E000, .SVE, {} }, { .SVE_FMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65602000, 0xFFE0E000, .SVE, {} }, - { .SVE_FNMLA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A04000, 0xFFE0E000, .SVE, {} }, { .SVE_FNMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65604000, 0xFFE0E000, .SVE, {} }, + { .SVE_FNMLA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A04000, 0xFFE0E000, .SVE, {} }, { .SVE_FNMLA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E04000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FNMLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E06000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FNMLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A06000, 0xFFE0E000, .SVE, {} }, { .SVE_FNMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65606000, 0xFFE0E000, .SVE, {} }, - { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x2400A000, 0xFFE0E000, .SVE, {sets_flags=true} }, + { .SVE_FNMLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A06000, 0xFFE0E000, .SVE, {} }, + { .SVE_FNMLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E06000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x2480A000, 0xFFE0E000, .SVE, {sets_flags=true} }, + { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x2400A000, 0xFFE0E000, .SVE, {sets_flags=true} }, { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x2440A000, 0xFFE0E000, .SVE, {sets_flags=true} }, { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C0A000, 0xFFE0E000, .SVE, {sets_flags=true, is_64=true} }, { .SVE_LD1B, {.Z_REG_B,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4004000, 0xFFE0E000, .SVE, {} }, @@ -541,22 +541,22 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .STGP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x69000000, 0xFFC00000, .MTE, {is_64=true} }, { .MOV_REG, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xAA0003E0, 0xFFE0FFE0, .BASE, {is_64=true} }, { .MOV_REG, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x2A0003E0, 0xFFE0FFE0, .BASE, {} }, - { .MVN, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x2A2003E0, 0xFFE0FFE0, .BASE, {} }, { .MVN, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xAA2003E0, 0xFFE0FFE0, .BASE, {is_64=true} }, - { .CMP_ER, {.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xEB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true} }, + { .MVN, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x2A2003E0, 0xFFE0FFE0, .BASE, {} }, { .CMP_ER, {.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x6B20001F, 0xFFE0001F, .BASE, {sets_flags=true} }, + { .CMP_ER, {.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xEB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true} }, { .CMN_ER, {.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xAB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true} }, { .CMN_ER, {.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x2B20001F, 0xFFE0001F, .BASE, {sets_flags=true} }, - { .NEG_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xCB0003E0, 0xFF2003E0, .BASE, {is_64=true} }, { .NEG_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x4B0003E0, 0xFF2003E0, .BASE, {} }, + { .NEG_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xCB0003E0, 0xFF2003E0, .BASE, {is_64=true} }, { .NEGS, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x6B0003E0, 0xFF2003E0, .BASE, {sets_flags=true} }, { .NEGS, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xEB0003E0, 0xFF2003E0, .BASE, {sets_flags=true, is_64=true} }, { .CMP_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xEB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true} }, { .CMP_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x6B00001F, 0xFF20001F, .BASE, {sets_flags=true} }, - { .CMN_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xAB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true} }, { .CMN_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x2B00001F, 0xFF20001F, .BASE, {sets_flags=true} }, - { .TST_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x6A00001F, 0xFF20001F, .BASE, {sets_flags=true} }, + { .CMN_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xAB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true} }, { .TST_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xEA00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true} }, + { .TST_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x6A00001F, 0xFF20001F, .BASE, {sets_flags=true} }, { .ADD_ER, {.XSP_REG,.XSP_REG,.X_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x8B200000, 0xFFE00000, .BASE, {is_64=true} }, { .ADD_ER, {.WSP_REG,.WSP_REG,.W_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x0B200000, 0xFFE00000, .BASE, {} }, { .ADDS_ER, {.W_REG,.WSP_REG,.W_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x2B200000, 0xFFE00000, .BASE, {sets_flags=true} }, @@ -593,8 +593,8 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .ST1, {.V_2D,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007C00, 0xFFFFFC00, .NEON, {} }, { .LD1, {.V_8H,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C407400, 0xFFFFF400, .NEON, {} }, { .LD1, {.V_4S,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C407800, 0xFFFFF800, .NEON, {} }, - { .ST1, {.V_4S,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007800, 0xFFFFF800, .NEON, {} }, { .ST1, {.V_8H,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007400, 0xFFFFF400, .NEON, {} }, + { .ST1, {.V_4S,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007800, 0xFFFFF800, .NEON, {} }, { .LD1, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C407000, 0xFFFFF000, .NEON, {} }, { .ST1, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007000, 0xFFFFF000, .NEON, {} }, { .AESE, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E284800, 0xFFFFFC00, .CRYPTO, {} }, @@ -605,197 +605,271 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .SM4E, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0xCEC08400, 0xFFFFFC00, .CRYPTO, {} }, { .BFCVTN, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA16800, 0xFFFFFC00, .BF16, {} }, { .BFCVTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA16800, 0xFFFFFC00, .BF16, {} }, - { .ADDV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E31B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E31B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E71B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB1B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E60B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E60B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA0B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E20B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E20B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E60B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E20B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E20B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E60B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0B800, 0xFFFFFC00, .NEON, {} }, { .ADDV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E71B800, 0xFFFFFC00, .NEON, {} }, + { .ADDV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E31B800, 0xFFFFFC00, .NEON, {} }, + { .ADDV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB1B800, 0xFFFFFC00, .NEON, {} }, + { .ADDV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E71B800, 0xFFFFFC00, .NEON, {} }, + { .ADDV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E31B800, 0xFFFFFC00, .NEON, {} }, { .SADDLP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E202800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA02800, 0xFFFFFC00, .NEON, {} }, { .SADDLP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA02800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E602800, 0xFFFFFC00, .NEON, {} }, { .SADDLP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E202800, 0xFFFFFC00, .NEON, {} }, + { .SADDLP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA02800, 0xFFFFFC00, .NEON, {} }, { .SADDLP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E602800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA02800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E202800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA02800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E602800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E602800, 0xFFFFFC00, .NEON, {} }, + { .SADDLP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E602800, 0xFFFFFC00, .NEON, {} }, { .UADDLP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E202800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E606800, 0xFFFFFC00, .NEON, {} }, + { .UADDLP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E202800, 0xFFFFFC00, .NEON, {} }, + { .UADDLP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E602800, 0xFFFFFC00, .NEON, {} }, + { .UADDLP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA02800, 0xFFFFFC00, .NEON, {} }, + { .UADDLP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E602800, 0xFFFFFC00, .NEON, {} }, + { .UADDLP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA02800, 0xFFFFFC00, .NEON, {} }, + { .SADALP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA06800, 0xFFFFFC00, .NEON, {} }, { .SADALP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E606800, 0xFFFFFC00, .NEON, {} }, { .SADALP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E206800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA06800, 0xFFFFFC00, .NEON, {} }, { .SADALP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA06800, 0xFFFFFC00, .NEON, {} }, + { .SADALP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E606800, 0xFFFFFC00, .NEON, {} }, { .SADALP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E206800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E206800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E606800, 0xFFFFFC00, .NEON, {} }, { .UADALP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E606800, 0xFFFFFC00, .NEON, {} }, { .UADALP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA06800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA06800, 0xFFFFFC00, .NEON, {} }, + { .UADALP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E606800, 0xFFFFFC00, .NEON, {} }, + { .UADALP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E206800, 0xFFFFFC00, .NEON, {} }, { .UADALP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E206800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.D_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB03800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.S_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E703800, 0xFFFFFC00, .NEON, {} }, + { .UADALP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA06800, 0xFFFFFC00, .NEON, {} }, { .SADDLV, {.H_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E303800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.S_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E703800, 0xFFFFFC00, .NEON, {} }, + { .SADDLV, {.D_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB03800, 0xFFFFFC00, .NEON, {} }, { .SADDLV, {.H_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E303800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.D_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB03800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.H_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E303800, 0xFFFFFC00, .NEON, {} }, + { .SADDLV, {.S_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E703800, 0xFFFFFC00, .NEON, {} }, + { .SADDLV, {.S_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E703800, 0xFFFFFC00, .NEON, {} }, { .UADDLV, {.H_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E303800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.S_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E703800, 0xFFFFFC00, .NEON, {} }, + { .UADDLV, {.H_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E303800, 0xFFFFFC00, .NEON, {} }, { .UADDLV, {.S_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E703800, 0xFFFFFC00, .NEON, {} }, + { .UADDLV, {.S_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E703800, 0xFFFFFC00, .NEON, {} }, + { .UADDLV, {.D_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB03800, 0xFFFFFC00, .NEON, {} }, { .SMAXV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30A800, 0xFFFFFC00, .NEON, {} }, + { .SMAXV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E70A800, 0xFFFFFC00, .NEON, {} }, { .SMAXV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E70A800, 0xFFFFFC00, .NEON, {} }, { .SMAXV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30A800, 0xFFFFFC00, .NEON, {} }, { .SMAXV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB0A800, 0xFFFFFC00, .NEON, {} }, - { .SMAXV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E70A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E30A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E70A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E70A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30A800, 0xFFFFFC00, .NEON, {} }, { .UMAXV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB0A800, 0xFFFFFC00, .NEON, {} }, + { .UMAXV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E70A800, 0xFFFFFC00, .NEON, {} }, + { .UMAXV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E70A800, 0xFFFFFC00, .NEON, {} }, + { .UMAXV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30A800, 0xFFFFFC00, .NEON, {} }, + { .UMAXV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E30A800, 0xFFFFFC00, .NEON, {} }, { .SMINV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E31A800, 0xFFFFFC00, .NEON, {} }, - { .SMINV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E71A800, 0xFFFFFC00, .NEON, {} }, { .SMINV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E31A800, 0xFFFFFC00, .NEON, {} }, + { .SMINV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E71A800, 0xFFFFFC00, .NEON, {} }, { .SMINV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB1A800, 0xFFFFFC00, .NEON, {} }, { .SMINV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E71A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E31A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E71A800, 0xFFFFFC00, .NEON, {} }, { .UMINV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB1A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E31A800, 0xFFFFFC00, .NEON, {} }, { .UMINV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E71A800, 0xFFFFFC00, .NEON, {} }, - { .XTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA12800, 0xFFFFFC00, .NEON, {} }, - { .XTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E612800, 0xFFFFFC00, .NEON, {} }, + { .UMINV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E71A800, 0xFFFFFC00, .NEON, {} }, + { .UMINV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E31A800, 0xFFFFFC00, .NEON, {} }, + { .UMINV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E31A800, 0xFFFFFC00, .NEON, {} }, { .XTN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E212800, 0xFFFFFC00, .NEON, {} }, + { .XTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E612800, 0xFFFFFC00, .NEON, {} }, + { .XTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA12800, 0xFFFFFC00, .NEON, {} }, { .XTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA12800, 0xFFFFFC00, .NEON, {} }, { .XTN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E212800, 0xFFFFFC00, .NEON, {} }, { .XTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E612800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA14800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E614800, 0xFFFFFC00, .NEON, {} }, { .SQXTN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E214800, 0xFFFFFC00, .NEON, {} }, + { .SQXTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E614800, 0xFFFFFC00, .NEON, {} }, + { .SQXTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA14800, 0xFFFFFC00, .NEON, {} }, { .SQXTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA14800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E214800, 0xFFFFFC00, .NEON, {} }, { .SQXTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E614800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E614800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA14800, 0xFFFFFC00, .NEON, {} }, + { .SQXTN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E214800, 0xFFFFFC00, .NEON, {} }, { .UQXTN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E214800, 0xFFFFFC00, .NEON, {} }, + { .UQXTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA14800, 0xFFFFFC00, .NEON, {} }, + { .UQXTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E614800, 0xFFFFFC00, .NEON, {} }, { .UQXTN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E214800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA14800, 0xFFFFFC00, .NEON, {} }, { .UQXTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E614800, 0xFFFFFC00, .NEON, {} }, + { .UQXTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA14800, 0xFFFFFC00, .NEON, {} }, { .SQXTUN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E212800, 0xFFFFFC00, .NEON, {} }, { .SQXTUN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E612800, 0xFFFFFC00, .NEON, {} }, { .SQXTUN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA12800, 0xFFFFFC00, .NEON, {} }, { .SQXTUN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA12800, 0xFFFFFC00, .NEON, {} }, { .SQXTUN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E612800, 0xFFFFFC00, .NEON, {} }, { .SQXTUN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E212800, 0xFFFFFC00, .NEON, {} }, - { .FNEG_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0F800, 0xFFFFFC00, .NEON, {} }, - { .FNEG_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF8F800, 0xFFFFFC00, .FP16, {} }, - { .FNEG_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA0F800, 0xFFFFFC00, .NEON, {} }, - { .FNEG_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0F800, 0xFFFFFC00, .NEON, {} }, { .FNEG_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF8F800, 0xFFFFFC00, .FP16, {} }, - { .FABS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF8F800, 0xFFFFFC00, .FP16, {} }, - { .FABS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0F800, 0xFFFFFC00, .NEON, {} }, + { .FNEG_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0F800, 0xFFFFFC00, .NEON, {} }, + { .FNEG_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA0F800, 0xFFFFFC00, .NEON, {} }, + { .FNEG_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF8F800, 0xFFFFFC00, .FP16, {} }, + { .FNEG_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0F800, 0xFFFFFC00, .NEON, {} }, { .FABS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF8F800, 0xFFFFFC00, .FP16, {} }, - { .FABS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0F800, 0xFFFFFC00, .NEON, {} }, { .FABS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0F800, 0xFFFFFC00, .NEON, {} }, + { .FABS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0F800, 0xFFFFFC00, .NEON, {} }, + { .FABS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0F800, 0xFFFFFC00, .NEON, {} }, + { .FABS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF8F800, 0xFFFFFC00, .FP16, {} }, + { .FSQRT_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1F800, 0xFFFFFC00, .NEON, {} }, + { .FSQRT_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9F800, 0xFFFFFC00, .FP16, {} }, { .FSQRT_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1F800, 0xFFFFFC00, .NEON, {} }, { .FSQRT_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9F800, 0xFFFFFC00, .FP16, {} }, - { .FSQRT_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1F800, 0xFFFFFC00, .NEON, {} }, { .FSQRT_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1F800, 0xFFFFFC00, .NEON, {} }, - { .FSQRT_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9F800, 0xFFFFFC00, .FP16, {} }, { .FMAXV_V, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30F800, 0xFFFFFC00, .FP16, {} }, { .FMAXV_V, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30F800, 0xFFFFFC00, .NEON, {} }, { .FMAXV_V, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30F800, 0xFFFFFC00, .FP16, {} }, - { .FMINV_V, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EB0F800, 0xFFFFFC00, .FP16, {} }, { .FMINV_V, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB0F800, 0xFFFFFC00, .FP16, {} }, { .FMINV_V, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB0F800, 0xFFFFFC00, .NEON, {} }, + { .FMINV_V, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EB0F800, 0xFFFFFC00, .FP16, {} }, { .FMAXNMV, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30C800, 0xFFFFFC00, .FP16, {} }, - { .FMAXNMV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30C800, 0xFFFFFC00, .NEON, {} }, { .FMAXNMV, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30C800, 0xFFFFFC00, .FP16, {} }, + { .FMAXNMV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30C800, 0xFFFFFC00, .NEON, {} }, { .FMINNMV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB0C800, 0xFFFFFC00, .NEON, {} }, { .FMINNMV, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EB0C800, 0xFFFFFC00, .FP16, {} }, { .FMINNMV, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB0C800, 0xFFFFFC00, .FP16, {} }, - { .FRECPE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1D800, 0xFFFFFC00, .NEON, {} }, { .FRECPE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1D800, 0xFFFFFC00, .NEON, {} }, - { .FRECPE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9D800, 0xFFFFFC00, .FP16, {} }, + { .FRECPE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1D800, 0xFFFFFC00, .NEON, {} }, { .FRECPE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9D800, 0xFFFFFC00, .FP16, {} }, + { .FRECPE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9D800, 0xFFFFFC00, .FP16, {} }, { .FRECPE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1D800, 0xFFFFFC00, .NEON, {} }, - { .FRSQRTE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9D800, 0xFFFFFC00, .FP16, {} }, - { .FRSQRTE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1D800, 0xFFFFFC00, .NEON, {} }, { .FRSQRTE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1D800, 0xFFFFFC00, .NEON, {} }, - { .FRSQRTE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1D800, 0xFFFFFC00, .NEON, {} }, + { .FRSQRTE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1D800, 0xFFFFFC00, .NEON, {} }, { .FRSQRTE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9D800, 0xFFFFFC00, .FP16, {} }, - { .FRINTA_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTA_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E798800, 0xFFFFFC00, .FP16, {} }, - { .FRINTA_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E618800, 0xFFFFFC00, .NEON, {} }, + { .FRSQRTE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1D800, 0xFFFFFC00, .NEON, {} }, + { .FRSQRTE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9D800, 0xFFFFFC00, .FP16, {} }, { .FRINTA_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E218800, 0xFFFFFC00, .NEON, {} }, { .FRINTA_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E798800, 0xFFFFFC00, .FP16, {} }, + { .FRINTA_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E618800, 0xFFFFFC00, .NEON, {} }, + { .FRINTA_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E218800, 0xFFFFFC00, .NEON, {} }, + { .FRINTA_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E798800, 0xFFFFFC00, .FP16, {} }, + { .FRINTI_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA19800, 0xFFFFFC00, .NEON, {} }, { .FRINTI_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF99800, 0xFFFFFC00, .FP16, {} }, { .FRINTI_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTI_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTI_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA19800, 0xFFFFFC00, .NEON, {} }, { .FRINTI_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF99800, 0xFFFFFC00, .FP16, {} }, - { .FRINTM_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E619800, 0xFFFFFC00, .NEON, {} }, - { .FRINTM_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E799800, 0xFFFFFC00, .FP16, {} }, + { .FRINTI_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE19800, 0xFFFFFC00, .NEON, {} }, { .FRINTM_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E219800, 0xFFFFFC00, .NEON, {} }, + { .FRINTM_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E799800, 0xFFFFFC00, .FP16, {} }, + { .FRINTM_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E619800, 0xFFFFFC00, .NEON, {} }, { .FRINTM_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E799800, 0xFFFFFC00, .FP16, {} }, { .FRINTM_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E219800, 0xFFFFFC00, .NEON, {} }, - { .FRINTN_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E618800, 0xFFFFFC00, .NEON, {} }, - { .FRINTN_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTN_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E798800, 0xFFFFFC00, .FP16, {} }, - { .FRINTN_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E798800, 0xFFFFFC00, .FP16, {} }, { .FRINTN_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTP_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF98800, 0xFFFFFC00, .FP16, {} }, - { .FRINTP_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA18800, 0xFFFFFC00, .NEON, {} }, - { .FRINTP_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA18800, 0xFFFFFC00, .NEON, {} }, + { .FRINTN_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E798800, 0xFFFFFC00, .FP16, {} }, + { .FRINTN_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E218800, 0xFFFFFC00, .NEON, {} }, + { .FRINTN_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E618800, 0xFFFFFC00, .NEON, {} }, + { .FRINTN_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E798800, 0xFFFFFC00, .FP16, {} }, { .FRINTP_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF98800, 0xFFFFFC00, .FP16, {} }, { .FRINTP_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE18800, 0xFFFFFC00, .NEON, {} }, - { .FRINTX_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E219800, 0xFFFFFC00, .NEON, {} }, - { .FRINTX_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E619800, 0xFFFFFC00, .NEON, {} }, + { .FRINTP_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF98800, 0xFFFFFC00, .FP16, {} }, + { .FRINTP_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA18800, 0xFFFFFC00, .NEON, {} }, + { .FRINTP_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA18800, 0xFFFFFC00, .NEON, {} }, { .FRINTX_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E799800, 0xFFFFFC00, .FP16, {} }, { .FRINTX_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E799800, 0xFFFFFC00, .FP16, {} }, + { .FRINTX_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E219800, 0xFFFFFC00, .NEON, {} }, + { .FRINTX_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E619800, 0xFFFFFC00, .NEON, {} }, { .FRINTX_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E219800, 0xFFFFFC00, .NEON, {} }, - { .FRINTZ_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF99800, 0xFFFFFC00, .FP16, {} }, - { .FRINTZ_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF99800, 0xFFFFFC00, .FP16, {} }, - { .FRINTZ_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA19800, 0xFFFFFC00, .NEON, {} }, { .FRINTZ_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA19800, 0xFFFFFC00, .NEON, {} }, { .FRINTZ_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE19800, 0xFFFFFC00, .NEON, {} }, - { .NOT_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, + { .FRINTZ_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF99800, 0xFFFFFC00, .FP16, {} }, + { .FRINTZ_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF99800, 0xFFFFFC00, .FP16, {} }, + { .FRINTZ_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA19800, 0xFFFFFC00, .NEON, {} }, + { .SCVTF_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79D800, 0xFFFFFC00, .FP16, {} }, + { .SCVTF_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21D800, 0xFFFFFC00, .NEON, {} }, + { .SCVTF_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61D800, 0xFFFFFC00, .NEON, {} }, + { .SCVTF_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21D800, 0xFFFFFC00, .NEON, {} }, + { .SCVTF_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79D800, 0xFFFFFC00, .FP16, {} }, + { .UCVTF_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79D800, 0xFFFFFC00, .FP16, {} }, + { .UCVTF_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21D800, 0xFFFFFC00, .NEON, {} }, + { .UCVTF_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79D800, 0xFFFFFC00, .FP16, {} }, + { .UCVTF_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21D800, 0xFFFFFC00, .NEON, {} }, + { .UCVTF_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61D800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21C800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79C800, 0xFFFFFC00, .FP16, {} }, + { .FCVTAS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61C800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79C800, 0xFFFFFC00, .FP16, {} }, + { .FCVTAS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21C800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79C800, 0xFFFFFC00, .FP16, {} }, + { .FCVTAU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61C800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21C800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21C800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79C800, 0xFFFFFC00, .FP16, {} }, + { .FCVTMS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTMS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTMS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79B800, 0xFFFFFC00, .FP16, {} }, + { .FCVTMS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTMS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79B800, 0xFFFFFC00, .FP16, {} }, + { .FCVTMU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTMU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTMU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79B800, 0xFFFFFC00, .FP16, {} }, + { .FCVTMU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTMU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79B800, 0xFFFFFC00, .FP16, {} }, + { .FCVTNS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTNS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTNS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTNS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTNS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTNU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTNU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTNU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTNU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTNU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTPS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTPS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTPS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTPS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTPS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTPU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTPU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTPU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTPU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTPU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9B800, 0xFFFFFC00, .FP16, {} }, + { .FCVTZS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9B800, 0xFFFFFC00, .FP16, {} }, + { .FCVTZS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9B800, 0xFFFFFC00, .FP16, {} }, + { .FCVTZU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9B800, 0xFFFFFC00, .FP16, {} }, { .NOT_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {} }, - { .RBIT_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E605800, 0xFFFFFC00, .NEON, {} }, + { .NOT_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, { .RBIT_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E605800, 0xFFFFFC00, .NEON, {} }, + { .RBIT_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E605800, 0xFFFFFC00, .NEON, {} }, { .REV16_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E201800, 0xFFFFFC00, .NEON, {} }, { .REV16_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E201800, 0xFFFFFC00, .NEON, {} }, - { .REV32_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E200800, 0xFFFFFC00, .NEON, {} }, - { .REV32_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E200800, 0xFFFFFC00, .NEON, {} }, { .REV32_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E600800, 0xFFFFFC00, .NEON, {} }, + { .REV32_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E200800, 0xFFFFFC00, .NEON, {} }, + { .REV32_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E200800, 0xFFFFFC00, .NEON, {} }, { .REV32_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E600800, 0xFFFFFC00, .NEON, {} }, + { .REV64, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E600800, 0xFFFFFC00, .NEON, {} }, { .REV64, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA00800, 0xFFFFFC00, .NEON, {} }, { .REV64, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA00800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E600800, 0xFFFFFC00, .NEON, {} }, { .REV64, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E200800, 0xFFFFFC00, .NEON, {} }, { .REV64, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E600800, 0xFFFFFC00, .NEON, {} }, { .REV64, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E200800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA04800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E604800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E204800, 0xFFFFFC00, .NEON, {} }, { .CLS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA04800, 0xFFFFFC00, .NEON, {} }, + { .CLS_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E604800, 0xFFFFFC00, .NEON, {} }, { .CLS_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E204800, 0xFFFFFC00, .NEON, {} }, + { .CLS_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E204800, 0xFFFFFC00, .NEON, {} }, { .CLS_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E604800, 0xFFFFFC00, .NEON, {} }, + { .CLS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA04800, 0xFFFFFC00, .NEON, {} }, { .CLZ_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA04800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA04800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E204800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E604800, 0xFFFFFC00, .NEON, {} }, { .CLZ_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E604800, 0xFFFFFC00, .NEON, {} }, { .CLZ_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E204800, 0xFFFFFC00, .NEON, {} }, - { .CNT, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E205800, 0xFFFFFC00, .NEON, {} }, + { .CLZ_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E204800, 0xFFFFFC00, .NEON, {} }, + { .CLZ_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA04800, 0xFFFFFC00, .NEON, {} }, + { .CLZ_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E604800, 0xFFFFFC00, .NEON, {} }, { .CNT, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E205800, 0xFFFFFC00, .NEON, {} }, + { .CNT, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E205800, 0xFFFFFC00, .NEON, {} }, { .URECPE_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1C800, 0xFFFFFC00, .NEON, {} }, { .URECPE_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1C800, 0xFFFFFC00, .NEON, {} }, { .URSQRTE_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1C800, 0xFFFFFC00, .NEON, {} }, { .URSQRTE_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1C800, 0xFFFFFC00, .NEON, {} }, - { .NOT_V_ALIAS, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, { .NOT_V_ALIAS, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {} }, + { .NOT_V_ALIAS, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, { .SHA512H, {.Q_REG,.Q_REG,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE608000, 0xFFE0FC00, .CRYPTO, {} }, { .SHA512H2, {.Q_REG,.Q_REG,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE608400, 0xFFE0FC00, .CRYPTO, {} }, { .SHA512SU1, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE608800, 0xFFE0FC00, .CRYPTO, {} }, @@ -837,411 +911,411 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .MLS_V, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E209400, 0xFFE0FC00, .NEON, {} }, { .MLS_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E209400, 0xFFE0FC00, .NEON, {} }, { .MLS_V, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E609400, 0xFFE0FC00, .NEON, {} }, + { .SHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA00400, 0xFFE0FC00, .NEON, {} }, { .SHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E600400, 0xFFE0FC00, .NEON, {} }, { .SHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E600400, 0xFFE0FC00, .NEON, {} }, { .SHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA00400, 0xFFE0FC00, .NEON, {} }, { .SHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E200400, 0xFFE0FC00, .NEON, {} }, { .SHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E200400, 0xFFE0FC00, .NEON, {} }, - { .SHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA00400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA00400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E600400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E200400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E600400, 0xFFE0FC00, .NEON, {} }, { .UHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA00400, 0xFFE0FC00, .NEON, {} }, + { .UHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA00400, 0xFFE0FC00, .NEON, {} }, { .UHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E200400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA02400, 0xFFE0FC00, .NEON, {} }, + { .UHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E200400, 0xFFE0FC00, .NEON, {} }, + { .UHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E600400, 0xFFE0FC00, .NEON, {} }, + { .UHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E600400, 0xFFE0FC00, .NEON, {} }, { .SHSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA02400, 0xFFE0FC00, .NEON, {} }, + { .SHSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E602400, 0xFFE0FC00, .NEON, {} }, + { .SHSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA02400, 0xFFE0FC00, .NEON, {} }, { .SHSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E202400, 0xFFE0FC00, .NEON, {} }, { .SHSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E202400, 0xFFE0FC00, .NEON, {} }, { .SHSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E602400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E602400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E202400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E202400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E602400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E602400, 0xFFE0FC00, .NEON, {} }, { .UHSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA02400, 0xFFE0FC00, .NEON, {} }, + { .UHSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E602400, 0xFFE0FC00, .NEON, {} }, + { .UHSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E202400, 0xFFE0FC00, .NEON, {} }, + { .UHSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E602400, 0xFFE0FC00, .NEON, {} }, { .UHSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA02400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA01400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E601400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E201400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E201400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E601400, 0xFFE0FC00, .NEON, {} }, + { .UHSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E202400, 0xFFE0FC00, .NEON, {} }, { .SRHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA01400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA01400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E601400, 0xFFE0FC00, .NEON, {} }, + { .SRHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E601400, 0xFFE0FC00, .NEON, {} }, + { .SRHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E201400, 0xFFE0FC00, .NEON, {} }, + { .SRHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E601400, 0xFFE0FC00, .NEON, {} }, + { .SRHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA01400, 0xFFE0FC00, .NEON, {} }, + { .SRHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E201400, 0xFFE0FC00, .NEON, {} }, { .URHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA01400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E201400, 0xFFE0FC00, .NEON, {} }, { .URHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E201400, 0xFFE0FC00, .NEON, {} }, + { .URHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E201400, 0xFFE0FC00, .NEON, {} }, { .URHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E601400, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE00C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA00C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E600C00, 0xFFE0FC00, .NEON, {} }, + { .URHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E601400, 0xFFE0FC00, .NEON, {} }, + { .URHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA01400, 0xFFE0FC00, .NEON, {} }, { .SQADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA00C00, 0xFFE0FC00, .NEON, {} }, + { .SQADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA00C00, 0xFFE0FC00, .NEON, {} }, + { .SQADD, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE00C00, 0xFFE0FC00, .NEON, {} }, + { .SQADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E600C00, 0xFFE0FC00, .NEON, {} }, { .SQADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E200C00, 0xFFE0FC00, .NEON, {} }, { .SQADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E200C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E600C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE00C00, 0xFFE0FC00, .NEON, {} }, + { .SQADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E600C00, 0xFFE0FC00, .NEON, {} }, + { .UQADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA00C00, 0xFFE0FC00, .NEON, {} }, { .UQADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E600C00, 0xFFE0FC00, .NEON, {} }, { .UQADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E200C00, 0xFFE0FC00, .NEON, {} }, { .UQADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E600C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E200C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA00C00, 0xFFE0FC00, .NEON, {} }, { .UQADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA00C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA02C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA02C00, 0xFFE0FC00, .NEON, {} }, + { .UQADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E200C00, 0xFFE0FC00, .NEON, {} }, + { .UQADD, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE00C00, 0xFFE0FC00, .NEON, {} }, { .SQSUB, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE02C00, 0xFFE0FC00, .NEON, {} }, + { .SQSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA02C00, 0xFFE0FC00, .NEON, {} }, { .SQSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E602C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E202C00, 0xFFE0FC00, .NEON, {} }, { .SQSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E202C00, 0xFFE0FC00, .NEON, {} }, { .SQSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E602C00, 0xFFE0FC00, .NEON, {} }, + { .SQSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA02C00, 0xFFE0FC00, .NEON, {} }, + { .SQSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E202C00, 0xFFE0FC00, .NEON, {} }, + { .UQSUB, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE02C00, 0xFFE0FC00, .NEON, {} }, { .UQSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA02C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E602C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E202C00, 0xFFE0FC00, .NEON, {} }, { .UQSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E602C00, 0xFFE0FC00, .NEON, {} }, { .UQSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA02C00, 0xFFE0FC00, .NEON, {} }, { .UQSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E202C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE02C00, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA06400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E606400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E206400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E606400, 0xFFE0FC00, .NEON, {} }, + { .UQSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E202C00, 0xFFE0FC00, .NEON, {} }, + { .UQSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E602C00, 0xFFE0FC00, .NEON, {} }, { .SMAX, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA06400, 0xFFE0FC00, .NEON, {} }, + { .SMAX, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E606400, 0xFFE0FC00, .NEON, {} }, + { .SMAX, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E606400, 0xFFE0FC00, .NEON, {} }, + { .SMAX, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA06400, 0xFFE0FC00, .NEON, {} }, { .SMAX, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E206400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA06400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA06400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E206400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E206400, 0xFFE0FC00, .NEON, {} }, + { .SMAX, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E206400, 0xFFE0FC00, .NEON, {} }, { .UMAX, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E606400, 0xFFE0FC00, .NEON, {} }, + { .UMAX, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E206400, 0xFFE0FC00, .NEON, {} }, { .UMAX, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E606400, 0xFFE0FC00, .NEON, {} }, + { .UMAX, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E206400, 0xFFE0FC00, .NEON, {} }, + { .UMAX, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA06400, 0xFFE0FC00, .NEON, {} }, + { .UMAX, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA06400, 0xFFE0FC00, .NEON, {} }, { .SMIN, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA06C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA06C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E206C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E206C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E606C00, 0xFFE0FC00, .NEON, {} }, { .SMIN, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E606C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA06C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E606C00, 0xFFE0FC00, .NEON, {} }, + { .SMIN, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E606C00, 0xFFE0FC00, .NEON, {} }, + { .SMIN, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA06C00, 0xFFE0FC00, .NEON, {} }, + { .SMIN, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E206C00, 0xFFE0FC00, .NEON, {} }, + { .SMIN, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E206C00, 0xFFE0FC00, .NEON, {} }, { .UMIN, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA06C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E206C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E206C00, 0xFFE0FC00, .NEON, {} }, { .UMIN, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E606C00, 0xFFE0FC00, .NEON, {} }, + { .UMIN, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E206C00, 0xFFE0FC00, .NEON, {} }, + { .UMIN, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E606C00, 0xFFE0FC00, .NEON, {} }, + { .UMIN, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E206C00, 0xFFE0FC00, .NEON, {} }, + { .UMIN, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA06C00, 0xFFE0FC00, .NEON, {} }, { .SABD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA07400, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA07400, 0xFFE0FC00, .NEON, {} }, + { .SABD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E607400, 0xFFE0FC00, .NEON, {} }, { .SABD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E207400, 0xFFE0FC00, .NEON, {} }, { .SABD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E207400, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E607400, 0xFFE0FC00, .NEON, {} }, { .SABD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E607400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA07400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E607400, 0xFFE0FC00, .NEON, {} }, + { .SABD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA07400, 0xFFE0FC00, .NEON, {} }, { .UABD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA07400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E207400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E207400, 0xFFE0FC00, .NEON, {} }, + { .UABD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA07400, 0xFFE0FC00, .NEON, {} }, { .UABD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E607400, 0xFFE0FC00, .NEON, {} }, + { .UABD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E207400, 0xFFE0FC00, .NEON, {} }, + { .UABD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E207400, 0xFFE0FC00, .NEON, {} }, + { .UABD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E607400, 0xFFE0FC00, .NEON, {} }, { .SABA, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA07C00, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E607C00, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E207C00, 0xFFE0FC00, .NEON, {} }, { .SABA, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E607C00, 0xFFE0FC00, .NEON, {} }, { .SABA, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA07C00, 0xFFE0FC00, .NEON, {} }, { .SABA, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E207C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA07C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E607C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E207C00, 0xFFE0FC00, .NEON, {} }, + { .SABA, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E207C00, 0xFFE0FC00, .NEON, {} }, + { .SABA, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E607C00, 0xFFE0FC00, .NEON, {} }, { .UABA, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E607C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA07C00, 0xFFE0FC00, .NEON, {} }, + { .UABA, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E607C00, 0xFFE0FC00, .NEON, {} }, + { .UABA, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA07C00, 0xFFE0FC00, .NEON, {} }, { .UABA, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E207C00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0BC00, 0xFFE0FC00, .NEON, {} }, + { .UABA, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E207C00, 0xFFE0FC00, .NEON, {} }, + { .UABA, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA07C00, 0xFFE0FC00, .NEON, {} }, + { .ADDP_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60BC00, 0xFFE0FC00, .NEON, {} }, { .ADDP_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20BC00, 0xFFE0FC00, .NEON, {} }, { .ADDP_V, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20BC00, 0xFFE0FC00, .NEON, {} }, { .ADDP_V, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60BC00, 0xFFE0FC00, .NEON, {} }, { .ADDP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0BC00, 0xFFE0FC00, .NEON, {} }, + { .ADDP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0BC00, 0xFFE0FC00, .NEON, {} }, + { .ADDP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0BC00, 0xFFE0FC00, .NEON, {} }, + { .SMAXP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0A400, 0xFFE0FC00, .NEON, {} }, { .SMAXP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60A400, 0xFFE0FC00, .NEON, {} }, { .SMAXP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20A400, 0xFFE0FC00, .NEON, {} }, { .SMAXP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60A400, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20A400, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0A400, 0xFFE0FC00, .NEON, {} }, { .SMAXP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20A400, 0xFFE0FC00, .NEON, {} }, + { .SMAXP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20A400, 0xFFE0FC00, .NEON, {} }, { .UMAXP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20A400, 0xFFE0FC00, .NEON, {} }, + { .UMAXP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20A400, 0xFFE0FC00, .NEON, {} }, { .UMAXP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60A400, 0xFFE0FC00, .NEON, {} }, { .UMAXP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0A400, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0AC00, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60AC00, 0xFFE0FC00, .NEON, {} }, + { .UMAXP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60A400, 0xFFE0FC00, .NEON, {} }, + { .UMAXP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0A400, 0xFFE0FC00, .NEON, {} }, { .SMINP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0AC00, 0xFFE0FC00, .NEON, {} }, + { .SMINP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0AC00, 0xFFE0FC00, .NEON, {} }, + { .SMINP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60AC00, 0xFFE0FC00, .NEON, {} }, { .SMINP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20AC00, 0xFFE0FC00, .NEON, {} }, { .SMINP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20AC00, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60AC00, 0xFFE0FC00, .NEON, {} }, + { .SMINP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60AC00, 0xFFE0FC00, .NEON, {} }, + { .UMINP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0AC00, 0xFFE0FC00, .NEON, {} }, + { .UMINP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60AC00, 0xFFE0FC00, .NEON, {} }, + { .UMINP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60AC00, 0xFFE0FC00, .NEON, {} }, + { .UMINP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0AC00, 0xFFE0FC00, .NEON, {} }, { .UMINP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20AC00, 0xFFE0FC00, .NEON, {} }, { .UMINP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0AC00, 0xFFE0FC00, .NEON, {} }, - { .SADDL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E200000, 0xFFE0FC00, .NEON, {} }, { .SADDL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA00000, 0xFFE0FC00, .NEON, {} }, + { .SADDL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E200000, 0xFFE0FC00, .NEON, {} }, { .SADDL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E600000, 0xFFE0FC00, .NEON, {} }, - { .SADDL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E600000, 0xFFE0FC00, .NEON, {} }, - { .SADDL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E200000, 0xFFE0FC00, .NEON, {} }, { .SADDL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA00000, 0xFFE0FC00, .NEON, {} }, + { .SADDL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E200000, 0xFFE0FC00, .NEON, {} }, + { .SADDL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E600000, 0xFFE0FC00, .NEON, {} }, + { .UADDL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA00000, 0xFFE0FC00, .NEON, {} }, { .UADDL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E600000, 0xFFE0FC00, .NEON, {} }, { .UADDL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E200000, 0xFFE0FC00, .NEON, {} }, - { .UADDL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA00000, 0xFFE0FC00, .NEON, {} }, - { .UADDL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA00000, 0xFFE0FC00, .NEON, {} }, - { .UADDL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E600000, 0xFFE0FC00, .NEON, {} }, { .UADDL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E200000, 0xFFE0FC00, .NEON, {} }, + { .UADDL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E600000, 0xFFE0FC00, .NEON, {} }, + { .UADDL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA00000, 0xFFE0FC00, .NEON, {} }, { .SSUBL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E602000, 0xFFE0FC00, .NEON, {} }, { .SSUBL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E202000, 0xFFE0FC00, .NEON, {} }, { .SSUBL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA02000, 0xFFE0FC00, .NEON, {} }, { .SSUBL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA02000, 0xFFE0FC00, .NEON, {} }, - { .SSUBL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E602000, 0xFFE0FC00, .NEON, {} }, { .SSUBL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E202000, 0xFFE0FC00, .NEON, {} }, - { .USUBL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E602000, 0xFFE0FC00, .NEON, {} }, + { .SSUBL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E602000, 0xFFE0FC00, .NEON, {} }, { .USUBL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E202000, 0xFFE0FC00, .NEON, {} }, + { .USUBL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E602000, 0xFFE0FC00, .NEON, {} }, { .USUBL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA02000, 0xFFE0FC00, .NEON, {} }, { .USUBL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E602000, 0xFFE0FC00, .NEON, {} }, { .USUBL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E202000, 0xFFE0FC00, .NEON, {} }, { .USUBL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA02000, 0xFFE0FC00, .NEON, {} }, - { .SADDW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA01000, 0xFFE0FC00, .NEON, {} }, { .SADDW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E201000, 0xFFE0FC00, .NEON, {} }, { .SADDW, {.V_4S,.V_4S,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E601000, 0xFFE0FC00, .NEON, {} }, + { .SADDW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA01000, 0xFFE0FC00, .NEON, {} }, { .SADDW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA01000, 0xFFE0FC00, .NEON, {} }, - { .SADDW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E201000, 0xFFE0FC00, .NEON, {} }, { .SADDW2, {.V_4S,.V_4S,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E601000, 0xFFE0FC00, .NEON, {} }, - { .UADDW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA01000, 0xFFE0FC00, .NEON, {} }, + { .SADDW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E201000, 0xFFE0FC00, .NEON, {} }, { .UADDW, {.V_4S,.V_4S,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E601000, 0xFFE0FC00, .NEON, {} }, { .UADDW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E201000, 0xFFE0FC00, .NEON, {} }, - { .UADDW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA01000, 0xFFE0FC00, .NEON, {} }, - { .UADDW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E201000, 0xFFE0FC00, .NEON, {} }, + { .UADDW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA01000, 0xFFE0FC00, .NEON, {} }, { .UADDW2, {.V_4S,.V_4S,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E601000, 0xFFE0FC00, .NEON, {} }, + { .UADDW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E201000, 0xFFE0FC00, .NEON, {} }, + { .UADDW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA01000, 0xFFE0FC00, .NEON, {} }, { .SSUBW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA03000, 0xFFE0FC00, .NEON, {} }, - { .SSUBW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E203000, 0xFFE0FC00, .NEON, {} }, { .SSUBW, {.V_4S,.V_4S,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E603000, 0xFFE0FC00, .NEON, {} }, - { .SSUBW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E203000, 0xFFE0FC00, .NEON, {} }, + { .SSUBW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E203000, 0xFFE0FC00, .NEON, {} }, { .SSUBW2, {.V_4S,.V_4S,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E603000, 0xFFE0FC00, .NEON, {} }, + { .SSUBW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E203000, 0xFFE0FC00, .NEON, {} }, { .SSUBW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA03000, 0xFFE0FC00, .NEON, {} }, + { .USUBW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA03000, 0xFFE0FC00, .NEON, {} }, { .USUBW, {.V_4S,.V_4S,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E603000, 0xFFE0FC00, .NEON, {} }, { .USUBW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E203000, 0xFFE0FC00, .NEON, {} }, - { .USUBW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA03000, 0xFFE0FC00, .NEON, {} }, - { .USUBW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA03000, 0xFFE0FC00, .NEON, {} }, - { .USUBW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E203000, 0xFFE0FC00, .NEON, {} }, { .USUBW2, {.V_4S,.V_4S,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E603000, 0xFFE0FC00, .NEON, {} }, - { .RADDHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E204000, 0xFFE0FC00, .NEON, {} }, + { .USUBW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E203000, 0xFFE0FC00, .NEON, {} }, + { .USUBW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA03000, 0xFFE0FC00, .NEON, {} }, { .RADDHN, {.V_4H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E604000, 0xFFE0FC00, .NEON, {} }, + { .RADDHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E204000, 0xFFE0FC00, .NEON, {} }, { .RADDHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA04000, 0xFFE0FC00, .NEON, {} }, - { .RADDHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E604000, 0xFFE0FC00, .NEON, {} }, { .RADDHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E204000, 0xFFE0FC00, .NEON, {} }, + { .RADDHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E604000, 0xFFE0FC00, .NEON, {} }, { .RADDHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA04000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E206000, 0xFFE0FC00, .NEON, {} }, { .RSUBHN, {.V_4H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E606000, 0xFFE0FC00, .NEON, {} }, + { .RSUBHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E206000, 0xFFE0FC00, .NEON, {} }, { .RSUBHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA06000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E606000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E206000, 0xFFE0FC00, .NEON, {} }, { .RSUBHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA06000, 0xFFE0FC00, .NEON, {} }, - { .ADDHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA04000, 0xFFE0FC00, .NEON, {} }, + { .RSUBHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E206000, 0xFFE0FC00, .NEON, {} }, + { .RSUBHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E606000, 0xFFE0FC00, .NEON, {} }, { .ADDHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E204000, 0xFFE0FC00, .NEON, {} }, { .ADDHN, {.V_4H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E604000, 0xFFE0FC00, .NEON, {} }, - { .ADDHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E204000, 0xFFE0FC00, .NEON, {} }, + { .ADDHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA04000, 0xFFE0FC00, .NEON, {} }, { .ADDHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E604000, 0xFFE0FC00, .NEON, {} }, + { .ADDHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E204000, 0xFFE0FC00, .NEON, {} }, { .ADDHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA04000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA06000, 0xFFE0FC00, .NEON, {} }, { .SUBHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E206000, 0xFFE0FC00, .NEON, {} }, { .SUBHN, {.V_4H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E606000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA06000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E206000, 0xFFE0FC00, .NEON, {} }, + { .SUBHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA06000, 0xFFE0FC00, .NEON, {} }, { .SUBHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E606000, 0xFFE0FC00, .NEON, {} }, - { .SMULL_V, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0C000, 0xFFE0FC00, .NEON, {} }, - { .SMULL_V, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20C000, 0xFFE0FC00, .NEON, {} }, + { .SUBHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E206000, 0xFFE0FC00, .NEON, {} }, + { .SUBHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA06000, 0xFFE0FC00, .NEON, {} }, { .SMULL_V, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60C000, 0xFFE0FC00, .NEON, {} }, + { .SMULL_V, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20C000, 0xFFE0FC00, .NEON, {} }, + { .SMULL_V, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0C000, 0xFFE0FC00, .NEON, {} }, + { .SMULL2_V, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0C000, 0xFFE0FC00, .NEON, {} }, { .SMULL2_V, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20C000, 0xFFE0FC00, .NEON, {} }, { .SMULL2_V, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60C000, 0xFFE0FC00, .NEON, {} }, - { .SMULL2_V, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0C000, 0xFFE0FC00, .NEON, {} }, - { .UMULL_V, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60C000, 0xFFE0FC00, .NEON, {} }, { .UMULL_V, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20C000, 0xFFE0FC00, .NEON, {} }, + { .UMULL_V, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60C000, 0xFFE0FC00, .NEON, {} }, { .UMULL_V, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0C000, 0xFFE0FC00, .NEON, {} }, - { .UMULL2_V, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20C000, 0xFFE0FC00, .NEON, {} }, { .UMULL2_V, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60C000, 0xFFE0FC00, .NEON, {} }, + { .UMULL2_V, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20C000, 0xFFE0FC00, .NEON, {} }, { .UMULL2_V, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0C000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA08000, 0xFFE0FC00, .NEON, {} }, { .SMLAL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E208000, 0xFFE0FC00, .NEON, {} }, { .SMLAL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E608000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA08000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E208000, 0xFFE0FC00, .NEON, {} }, + { .SMLAL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA08000, 0xFFE0FC00, .NEON, {} }, { .SMLAL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E608000, 0xFFE0FC00, .NEON, {} }, + { .SMLAL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E208000, 0xFFE0FC00, .NEON, {} }, + { .SMLAL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA08000, 0xFFE0FC00, .NEON, {} }, { .UMLAL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA08000, 0xFFE0FC00, .NEON, {} }, - { .UMLAL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E608000, 0xFFE0FC00, .NEON, {} }, { .UMLAL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E208000, 0xFFE0FC00, .NEON, {} }, - { .UMLAL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA08000, 0xFFE0FC00, .NEON, {} }, + { .UMLAL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E608000, 0xFFE0FC00, .NEON, {} }, { .UMLAL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E208000, 0xFFE0FC00, .NEON, {} }, { .UMLAL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E608000, 0xFFE0FC00, .NEON, {} }, + { .UMLAL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA08000, 0xFFE0FC00, .NEON, {} }, { .SMLSL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0A000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20A000, 0xFFE0FC00, .NEON, {} }, { .SMLSL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60A000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0A000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20A000, 0xFFE0FC00, .NEON, {} }, + { .SMLSL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20A000, 0xFFE0FC00, .NEON, {} }, { .SMLSL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60A000, 0xFFE0FC00, .NEON, {} }, - { .UMLSL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0A000, 0xFFE0FC00, .NEON, {} }, - { .UMLSL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20A000, 0xFFE0FC00, .NEON, {} }, + { .SMLSL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20A000, 0xFFE0FC00, .NEON, {} }, + { .SMLSL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0A000, 0xFFE0FC00, .NEON, {} }, { .UMLSL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60A000, 0xFFE0FC00, .NEON, {} }, + { .UMLSL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20A000, 0xFFE0FC00, .NEON, {} }, + { .UMLSL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0A000, 0xFFE0FC00, .NEON, {} }, { .UMLSL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0A000, 0xFFE0FC00, .NEON, {} }, { .UMLSL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60A000, 0xFFE0FC00, .NEON, {} }, { .UMLSL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20A000, 0xFFE0FC00, .NEON, {} }, - { .SQDMULL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60D000, 0xFFE0FC00, .NEON, {} }, { .SQDMULL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0D000, 0xFFE0FC00, .NEON, {} }, - { .SQDMULL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0D000, 0xFFE0FC00, .NEON, {} }, + { .SQDMULL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60D000, 0xFFE0FC00, .NEON, {} }, { .SQDMULL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60D000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLAL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E609000, 0xFFE0FC00, .NEON, {} }, + { .SQDMULL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0D000, 0xFFE0FC00, .NEON, {} }, { .SQDMLAL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA09000, 0xFFE0FC00, .NEON, {} }, + { .SQDMLAL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E609000, 0xFFE0FC00, .NEON, {} }, { .SQDMLAL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E609000, 0xFFE0FC00, .NEON, {} }, { .SQDMLAL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA09000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLSL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0B000, 0xFFE0FC00, .NEON, {} }, { .SQDMLSL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60B000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLSL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60B000, 0xFFE0FC00, .NEON, {} }, + { .SQDMLSL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0B000, 0xFFE0FC00, .NEON, {} }, { .SQDMLSL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0B000, 0xFFE0FC00, .NEON, {} }, + { .SQDMLSL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60B000, 0xFFE0FC00, .NEON, {} }, { .SQDMULH, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0B400, 0xFFE0FC00, .NEON, {} }, - { .SQDMULH, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60B400, 0xFFE0FC00, .NEON, {} }, - { .SQDMULH, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60B400, 0xFFE0FC00, .NEON, {} }, { .SQDMULH, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0B400, 0xFFE0FC00, .NEON, {} }, - { .SQRDMULH, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0B400, 0xFFE0FC00, .NEON, {} }, - { .SQRDMULH, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60B400, 0xFFE0FC00, .NEON, {} }, + { .SQDMULH, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60B400, 0xFFE0FC00, .NEON, {} }, + { .SQDMULH, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60B400, 0xFFE0FC00, .NEON, {} }, { .SQRDMULH, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60B400, 0xFFE0FC00, .NEON, {} }, + { .SQRDMULH, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60B400, 0xFFE0FC00, .NEON, {} }, { .SQRDMULH, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0B400, 0xFFE0FC00, .NEON, {} }, - { .SDOT, {.V_2S,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E809400, 0xFFE0FC00, .DOT, {} }, + { .SQRDMULH, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0B400, 0xFFE0FC00, .NEON, {} }, { .SDOT, {.V_4S,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E809400, 0xFFE0FC00, .DOT, {} }, - { .UDOT, {.V_2S,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E809400, 0xFFE0FC00, .DOT, {} }, + { .SDOT, {.V_2S,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E809400, 0xFFE0FC00, .DOT, {} }, { .UDOT, {.V_4S,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E809400, 0xFFE0FC00, .DOT, {} }, + { .UDOT, {.V_2S,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E809400, 0xFFE0FC00, .DOT, {} }, + { .FADD_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60D400, 0xFFE0FC00, .NEON, {} }, { .FADD_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20D400, 0xFFE0FC00, .NEON, {} }, { .FADD_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20D400, 0xFFE0FC00, .NEON, {} }, - { .FADD_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60D400, 0xFFE0FC00, .NEON, {} }, - { .FSUB_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0D400, 0xFFE0FC00, .NEON, {} }, - { .FSUB_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0D400, 0xFFE0FC00, .NEON, {} }, { .FSUB_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0D400, 0xFFE0FC00, .NEON, {} }, - { .FMUL_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20DC00, 0xFFE0FC00, .NEON, {} }, - { .FMUL_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20DC00, 0xFFE0FC00, .NEON, {} }, + { .FSUB_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0D400, 0xFFE0FC00, .NEON, {} }, + { .FSUB_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0D400, 0xFFE0FC00, .NEON, {} }, { .FMUL_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60DC00, 0xFFE0FC00, .NEON, {} }, + { .FMUL_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20DC00, 0xFFE0FC00, .NEON, {} }, + { .FMUL_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20DC00, 0xFFE0FC00, .NEON, {} }, { .FDIV_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60FC00, 0xFFE0FC00, .NEON, {} }, - { .FDIV_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20FC00, 0xFFE0FC00, .NEON, {} }, { .FDIV_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20FC00, 0xFFE0FC00, .NEON, {} }, + { .FDIV_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20FC00, 0xFFE0FC00, .NEON, {} }, { .FMLA_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60CC00, 0xFFE0FC00, .NEON, {} }, { .FMLA_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20CC00, 0xFFE0FC00, .NEON, {} }, { .FMLS_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0CC00, 0xFFE0FC00, .NEON, {} }, { .FMLS_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0CC00, 0xFFE0FC00, .NEON, {} }, { .FMULX, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E401C00, 0xFFE0FC00, .FP16, {} }, - { .FMULX, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20DC00, 0xFFE0FC00, .NEON, {} }, - { .FMULX, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20DC00, 0xFFE0FC00, .NEON, {} }, { .FMULX, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60DC00, 0xFFE0FC00, .NEON, {} }, { .FMULX, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E401C00, 0xFFE0FC00, .FP16, {} }, - { .FMAX_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E403400, 0xFFE0FC00, .FP16, {} }, - { .FMAX_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60F400, 0xFFE0FC00, .NEON, {} }, - { .FMAX_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20F400, 0xFFE0FC00, .NEON, {} }, + { .FMULX, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20DC00, 0xFFE0FC00, .NEON, {} }, + { .FMULX, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20DC00, 0xFFE0FC00, .NEON, {} }, { .FMAX_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E403400, 0xFFE0FC00, .FP16, {} }, + { .FMAX_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60F400, 0xFFE0FC00, .NEON, {} }, + { .FMAX_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E403400, 0xFFE0FC00, .FP16, {} }, { .FMAX_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20F400, 0xFFE0FC00, .NEON, {} }, + { .FMAX_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20F400, 0xFFE0FC00, .NEON, {} }, + { .FMIN_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC03400, 0xFFE0FC00, .FP16, {} }, { .FMIN_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0F400, 0xFFE0FC00, .NEON, {} }, { .FMIN_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0F400, 0xFFE0FC00, .NEON, {} }, { .FMIN_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EC03400, 0xFFE0FC00, .FP16, {} }, { .FMIN_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0F400, 0xFFE0FC00, .NEON, {} }, - { .FMIN_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC03400, 0xFFE0FC00, .FP16, {} }, { .FMAXNM_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E400400, 0xFFE0FC00, .FP16, {} }, - { .FMAXNM_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNM_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20C400, 0xFFE0FC00, .NEON, {} }, { .FMAXNM_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E400400, 0xFFE0FC00, .FP16, {} }, { .FMAXNM_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNM_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNM_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNM_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EC00400, 0xFFE0FC00, .FP16, {} }, - { .FMINNM_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0C400, 0xFFE0FC00, .NEON, {} }, + { .FMAXNM_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20C400, 0xFFE0FC00, .NEON, {} }, + { .FMAXNM_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60C400, 0xFFE0FC00, .NEON, {} }, { .FMINNM_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC00400, 0xFFE0FC00, .FP16, {} }, + { .FMINNM_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EC00400, 0xFFE0FC00, .FP16, {} }, + { .FMINNM_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0C400, 0xFFE0FC00, .NEON, {} }, + { .FMINNM_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0C400, 0xFFE0FC00, .NEON, {} }, + { .FMINNM_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0C400, 0xFFE0FC00, .NEON, {} }, { .FMAXP_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E403400, 0xFFE0FC00, .FP16, {} }, - { .FMAXP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20F400, 0xFFE0FC00, .NEON, {} }, - { .FMAXP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20F400, 0xFFE0FC00, .NEON, {} }, { .FMAXP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60F400, 0xFFE0FC00, .NEON, {} }, { .FMAXP_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E403400, 0xFFE0FC00, .FP16, {} }, - { .FMINP_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC03400, 0xFFE0FC00, .FP16, {} }, - { .FMINP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0F400, 0xFFE0FC00, .NEON, {} }, + { .FMAXP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20F400, 0xFFE0FC00, .NEON, {} }, + { .FMAXP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20F400, 0xFFE0FC00, .NEON, {} }, { .FMINP_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC03400, 0xFFE0FC00, .FP16, {} }, + { .FMINP_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC03400, 0xFFE0FC00, .FP16, {} }, { .FMINP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0F400, 0xFFE0FC00, .NEON, {} }, { .FMINP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0F400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNMP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E400400, 0xFFE0FC00, .FP16, {} }, - { .FMAXNMP, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60C400, 0xFFE0FC00, .NEON, {} }, + { .FMINP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0F400, 0xFFE0FC00, .NEON, {} }, { .FMAXNMP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E400400, 0xFFE0FC00, .FP16, {} }, - { .FMAXNMP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20C400, 0xFFE0FC00, .NEON, {} }, + { .FMAXNMP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E400400, 0xFFE0FC00, .FP16, {} }, { .FMAXNMP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20C400, 0xFFE0FC00, .NEON, {} }, + { .FMAXNMP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20C400, 0xFFE0FC00, .NEON, {} }, + { .FMAXNMP, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60C400, 0xFFE0FC00, .NEON, {} }, { .FMINNMP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC00400, 0xFFE0FC00, .FP16, {} }, - { .FMINNMP, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNMP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNMP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC00400, 0xFFE0FC00, .FP16, {} }, { .FMINNMP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0C400, 0xFFE0FC00, .NEON, {} }, + { .FMINNMP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0C400, 0xFFE0FC00, .NEON, {} }, + { .FMINNMP, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0C400, 0xFFE0FC00, .NEON, {} }, + { .FMINNMP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC00400, 0xFFE0FC00, .FP16, {} }, { .FRECPS, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E403C00, 0xFFE0FC00, .FP16, {} }, - { .FRECPS, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20FC00, 0xFFE0FC00, .NEON, {} }, - { .FRECPS, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20FC00, 0xFFE0FC00, .NEON, {} }, { .FRECPS, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60FC00, 0xFFE0FC00, .NEON, {} }, { .FRECPS, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E403C00, 0xFFE0FC00, .FP16, {} }, - { .FRSQRTS, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC03C00, 0xFFE0FC00, .FP16, {} }, - { .FRSQRTS, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0FC00, 0xFFE0FC00, .NEON, {} }, - { .FRSQRTS, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0FC00, 0xFFE0FC00, .NEON, {} }, + { .FRECPS, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20FC00, 0xFFE0FC00, .NEON, {} }, + { .FRECPS, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20FC00, 0xFFE0FC00, .NEON, {} }, { .FRSQRTS, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EC03C00, 0xFFE0FC00, .FP16, {} }, + { .FRSQRTS, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0FC00, 0xFFE0FC00, .NEON, {} }, + { .FRSQRTS, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC03C00, 0xFFE0FC00, .FP16, {} }, { .FRSQRTS, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0FC00, 0xFFE0FC00, .NEON, {} }, + { .FRSQRTS, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0FC00, 0xFFE0FC00, .NEON, {} }, + { .FADDP_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E401400, 0xFFE0FC00, .FP16, {} }, { .FADDP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60D400, 0xFFE0FC00, .NEON, {} }, { .FADDP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20D400, 0xFFE0FC00, .NEON, {} }, { .FADDP_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E401400, 0xFFE0FC00, .FP16, {} }, { .FADDP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20D400, 0xFFE0FC00, .NEON, {} }, - { .FADDP_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E401400, 0xFFE0FC00, .FP16, {} }, - { .FCMEQ, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E402400, 0xFFE0FC00, .FP16, {} }, + { .FCMEQ, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E402400, 0xFFE0FC00, .FP16, {} }, { .FCMEQ, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60E400, 0xFFE0FC00, .NEON, {} }, + { .FCMEQ, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E402400, 0xFFE0FC00, .FP16, {} }, { .FCMEQ, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20E400, 0xFFE0FC00, .NEON, {} }, { .FCMEQ, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20E400, 0xFFE0FC00, .NEON, {} }, - { .FCMEQ, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E402400, 0xFFE0FC00, .FP16, {} }, + { .FCMGE, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E402400, 0xFFE0FC00, .FP16, {} }, + { .FCMGE, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60E400, 0xFFE0FC00, .NEON, {} }, { .FCMGE, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E402400, 0xFFE0FC00, .FP16, {} }, { .FCMGE, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20E400, 0xFFE0FC00, .NEON, {} }, { .FCMGE, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGE, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGE, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E402400, 0xFFE0FC00, .FP16, {} }, { .FCMGT, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC02400, 0xFFE0FC00, .FP16, {} }, { .FCMGT, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGT, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0E400, 0xFFE0FC00, .NEON, {} }, { .FCMGT, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0E400, 0xFFE0FC00, .NEON, {} }, { .FCMGT, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC02400, 0xFFE0FC00, .FP16, {} }, + { .FCMGT, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0E400, 0xFFE0FC00, .NEON, {} }, { .FACGE, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E402C00, 0xFFE0FC00, .FP16, {} }, - { .FACGE, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E402C00, 0xFFE0FC00, .FP16, {} }, { .FACGE, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20EC00, 0xFFE0FC00, .NEON, {} }, { .FACGE, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20EC00, 0xFFE0FC00, .NEON, {} }, { .FACGE, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGT, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGT, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGT, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGT, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC02C00, 0xFFE0FC00, .FP16, {} }, + { .FACGE, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E402C00, 0xFFE0FC00, .FP16, {} }, { .FACGT, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC02C00, 0xFFE0FC00, .FP16, {} }, + { .FACGT, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0EC00, 0xFFE0FC00, .NEON, {} }, + { .FACGT, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0EC00, 0xFFE0FC00, .NEON, {} }, + { .FACGT, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0EC00, 0xFFE0FC00, .NEON, {} }, + { .FACGT, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC02C00, 0xFFE0FC00, .FP16, {} }, { .CMEQ, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE08C00, 0xFFE0FC00, .NEON, {} }, - { .CMEQ, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E608C00, 0xFFE0FC00, .NEON, {} }, { .CMEQ, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E208C00, 0xFFE0FC00, .NEON, {} }, + { .CMEQ, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E608C00, 0xFFE0FC00, .NEON, {} }, { .CMEQ, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA08C00, 0xFFE0FC00, .NEON, {} }, { .CMGE, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE03C00, 0xFFE0FC00, .NEON, {} }, { .CMGE, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA03C00, 0xFFE0FC00, .NEON, {} }, { .CMGE, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E603C00, 0xFFE0FC00, .NEON, {} }, + { .CMGE, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E203C00, 0xFFE0FC00, .NEON, {} }, { .CMGE, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E203C00, 0xFFE0FC00, .NEON, {} }, { .CMGE, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E603C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E203C00, 0xFFE0FC00, .NEON, {} }, { .CMGE, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA03C00, 0xFFE0FC00, .NEON, {} }, { .CMGT, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE03400, 0xFFE0FC00, .NEON, {} }, { .CMGT, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E203400, 0xFFE0FC00, .NEON, {} }, - { .CMHI, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E203400, 0xFFE0FC00, .NEON, {} }, { .CMHI, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE03400, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE03C00, 0xFFE0FC00, .NEON, {} }, + { .CMHI, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E203400, 0xFFE0FC00, .NEON, {} }, { .CMHS, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA03C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E603C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E203C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E203C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E603C00, 0xFFE0FC00, .NEON, {} }, { .CMHS, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA03C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA08C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA08C00, 0xFFE0FC00, .NEON, {} }, + { .CMHS, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE03C00, 0xFFE0FC00, .NEON, {} }, + { .CMHS, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E203C00, 0xFFE0FC00, .NEON, {} }, + { .CMHS, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E203C00, 0xFFE0FC00, .NEON, {} }, + { .CMHS, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E603C00, 0xFFE0FC00, .NEON, {} }, + { .CMHS, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E603C00, 0xFFE0FC00, .NEON, {} }, { .CMTST, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE08C00, 0xFFE0FC00, .NEON, {} }, + { .CMTST, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E608C00, 0xFFE0FC00, .NEON, {} }, + { .CMTST, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E608C00, 0xFFE0FC00, .NEON, {} }, + { .CMTST, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA08C00, 0xFFE0FC00, .NEON, {} }, { .CMTST, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E208C00, 0xFFE0FC00, .NEON, {} }, { .CMTST, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E208C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E608C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E608C00, 0xFFE0FC00, .NEON, {} }, + { .CMTST, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA08C00, 0xFFE0FC00, .NEON, {} }, { .AND_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E201C00, 0xFFE0FC00, .NEON, {} }, { .ORR_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {} }, { .EOR_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E201C00, 0xFFE0FC00, .NEON, {} }, @@ -1250,36 +1324,36 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .BIT, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA01C00, 0xFFE0FC00, .NEON, {} }, { .BIF, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE01C00, 0xFFE0FC00, .NEON, {} }, { .BSL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E601C00, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA05400, 0xFFE0FC00, .NEON, {} }, { .SRSHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA05400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE05400, 0xFFE0FC00, .NEON, {} }, + { .SRSHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E605400, 0xFFE0FC00, .NEON, {} }, + { .SRSHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA05400, 0xFFE0FC00, .NEON, {} }, { .SRSHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E205400, 0xFFE0FC00, .NEON, {} }, { .SRSHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E205400, 0xFFE0FC00, .NEON, {} }, { .SRSHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E605400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E605400, 0xFFE0FC00, .NEON, {} }, + { .SRSHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE05400, 0xFFE0FC00, .NEON, {} }, + { .URSHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE05400, 0xFFE0FC00, .NEON, {} }, { .URSHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E605400, 0xFFE0FC00, .NEON, {} }, + { .URSHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E205400, 0xFFE0FC00, .NEON, {} }, + { .URSHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E205400, 0xFFE0FC00, .NEON, {} }, { .URSHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E605400, 0xFFE0FC00, .NEON, {} }, { .URSHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA05400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E205400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E205400, 0xFFE0FC00, .NEON, {} }, { .URSHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA05400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE05400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE04400, 0xFFE0FC00, .NEON, {} }, { .SSHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA04400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E604400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E204400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E204400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E604400, 0xFFE0FC00, .NEON, {} }, { .SSHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA04400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA04400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E604400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E604400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA04400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE04400, 0xFFE0FC00, .NEON, {} }, + { .SSHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE04400, 0xFFE0FC00, .NEON, {} }, + { .SSHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E604400, 0xFFE0FC00, .NEON, {} }, + { .SSHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E204400, 0xFFE0FC00, .NEON, {} }, + { .SSHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E204400, 0xFFE0FC00, .NEON, {} }, + { .SSHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E604400, 0xFFE0FC00, .NEON, {} }, { .USHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E204400, 0xFFE0FC00, .NEON, {} }, { .USHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E204400, 0xFFE0FC00, .NEON, {} }, - { .MOV_V_ALIAS, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {} }, + { .USHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E604400, 0xFFE0FC00, .NEON, {} }, + { .USHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E604400, 0xFFE0FC00, .NEON, {} }, + { .USHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA04400, 0xFFE0FC00, .NEON, {} }, + { .USHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA04400, 0xFFE0FC00, .NEON, {} }, + { .USHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE04400, 0xFFE0FC00, .NEON, {} }, { .MOV_V_ALIAS, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA01C00, 0xFFE0FC00, .NEON, {} }, + { .MOV_V_ALIAS, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {} }, { .SM3TT1A, {.V_4S,.V_4S,.V_ELEM_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE408000, 0xFFE0CC00, .CRYPTO, {} }, { .SM3TT1B, {.V_4S,.V_4S,.V_ELEM_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE408400, 0xFFE0CC00, .CRYPTO, {} }, { .SM3TT2A, {.V_4S,.V_4S,.V_ELEM_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE408800, 0xFFE0CC00, .CRYPTO, {} }, @@ -1296,8 +1370,8 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .BCAX, {.V_16B,.V_16B,.V_16B,.V_16B}, {.VD,.VN,.VM,.VA}, 0xCE200000, 0xFFE08000, .CRYPTO, {} }, { .SM3SS1, {.V_4S,.V_4S,.V_4S,.V_4S}, {.VD,.VN,.VM,.VA}, 0xCE400000, 0xFFE08000, .CRYPTO, {} }, { .XAR, {.V_2D,.V_2D,.V_2D,.IMM_6}, {.VD,.VN,.VM,.IMM6}, 0xCE800000, 0xFFE00000, .CRYPTO, {} }, - { .CMP_IMM, {.XSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0xF100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true} }, { .CMP_IMM, {.WSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0x7100001F, 0xFF80001F, .BASE, {sets_flags=true} }, + { .CMP_IMM, {.XSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0xF100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true} }, { .CMN_IMM, {.WSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0x3100001F, 0xFF80001F, .BASE, {sets_flags=true} }, { .CMN_IMM, {.XSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0xB100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true} }, { .ADDG, {.XSP_REG,.XSP_REG,.IMM_6,.IMM_4}, {.RD,.RN,.IMM6,.IMM_HW}, 0x91800000, 0xFFC0C000, .MTE, {is_64=true} }, @@ -1320,16 +1394,16 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .SXTW, {.X_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x93407C00, 0xFFFFFC00, .BASE, {is_64=true} }, { .LSR_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0xD340FC00, 0xFFC0FC00, .BASE, {is_64=true} }, { .LSR_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x53007C00, 0xFFC0FC00, .BASE, {} }, - { .ASR_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x13007C00, 0xFFC0FC00, .BASE, {} }, { .ASR_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x9340FC00, 0xFFC0FC00, .BASE, {is_64=true} }, + { .ASR_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x13007C00, 0xFFC0FC00, .BASE, {} }, { .TST_IMM, {.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x7200001F, 0xFFC0001F, .BASE, {sets_flags=true} }, { .MOV_BITMASK, {.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.BITMASK_FIELD,.NONE,.NONE}, 0x320003E0, 0xFFC003E0, .BASE, {} }, { .TST_IMM, {.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RN,.BITMASK_FIELD,.NONE,.NONE}, 0xF200001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true} }, { .MOV_BITMASK, {.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.BITMASK_FIELD,.NONE,.NONE}, 0xB20003E0, 0xFF8003E0, .BASE, {is_64=true} }, { .EXTR, {.W_REG,.W_REG,.W_REG,.IMM_6}, {.RD,.RN,.RM,.IMM6}, 0x13800000, 0xFFE08000, .BASE, {} }, { .EXTR, {.X_REG,.X_REG,.X_REG,.IMM_6}, {.RD,.RN,.RM,.IMM6}, 0x93C00000, 0xFFE08000, .BASE, {is_64=true} }, - { .ROR_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.ENC_DUAL_RN_RM,.ENC_ROR_SHIFT,.NONE}, 0x93C00000, 0xFFE00000, .BASE, {is_64=true} }, { .ROR_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.ENC_DUAL_RN_RM,.ENC_ROR_SHIFT,.NONE}, 0x13800000, 0xFFE00000, .BASE, {} }, + { .ROR_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.ENC_DUAL_RN_RM,.ENC_ROR_SHIFT,.NONE}, 0x93C00000, 0xFFE00000, .BASE, {is_64=true} }, { .AND_IMM, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x12000000, 0xFFC00000, .BASE, {} }, { .ANDS_IMM, {.W_REG,.W_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x72000000, 0xFFC00000, .BASE, {sets_flags=true} }, { .ORR_IMM, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x32000000, 0xFFC00000, .BASE, {} }, @@ -1580,18 +1654,18 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .LDGM, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xD9E00000, 0xFFE00C00, .MTE, {is_64=true} }, { .STGM, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xD9A00000, 0xFFE00C00, .MTE, {is_64=true} }, { .STZGM, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xD9200000, 0xFFE00C00, .MTE, {is_64=true} }, - { .LDAPUR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9400000, 0xFFE00C00, .BASE, {is_64=true} }, { .LDAPUR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x99400000, 0xFFE00C00, .BASE, {} }, - { .STLUR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9000000, 0xFFE00C00, .BASE, {is_64=true} }, + { .LDAPUR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9400000, 0xFFE00C00, .BASE, {is_64=true} }, { .STLUR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x99000000, 0xFFE00C00, .BASE, {} }, + { .STLUR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9000000, 0xFFE00C00, .BASE, {is_64=true} }, { .LDAPURB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19400000, 0xFFE00C00, .BASE, {} }, { .STLURB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19000000, 0xFFE00C00, .BASE, {} }, { .LDAPURH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59400000, 0xFFE00C00, .BASE, {} }, { .STLURH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59000000, 0xFFE00C00, .BASE, {} }, - { .LDAPURSB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19C00000, 0xFFE00C00, .BASE, {} }, { .LDAPURSB, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDAPURSH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59C00000, 0xFFE00C00, .BASE, {} }, + { .LDAPURSB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19C00000, 0xFFE00C00, .BASE, {} }, { .LDAPURSH, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59800000, 0xFFE00C00, .BASE, {is_64=true} }, + { .LDAPURSH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59C00000, 0xFFE00C00, .BASE, {} }, { .LDAPURSW, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x99800000, 0xFFE00C00, .BASE, {is_64=true} }, { .PRFUM, {.IMM_5,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xF8800000, 0xFFE00C00, .BASE, {is_64=true} }, { .LDRAA, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xF8200400, 0xFFA00C00, .PAC, {is_64=true} }, @@ -1644,10 +1718,10 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .AUTIB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC11400, 0xFFFFFC00, .PAC, {is_64=true} }, { .AUTDA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC11800, 0xFFFFFC00, .PAC, {is_64=true} }, { .AUTDB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC11C00, 0xFFFFFC00, .PAC, {is_64=true} }, - { .NGC, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x5A0003E0, 0xFFE0FFE0, .BASE, {} }, { .NGC, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xDA0003E0, 0xFFE0FFE0, .BASE, {is_64=true} }, - { .NGCS, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x7A0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true} }, + { .NGC, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x5A0003E0, 0xFFE0FFE0, .BASE, {} }, { .NGCS, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xFA0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true, is_64=true} }, + { .NGCS, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x7A0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true} }, { .LSLV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC02000, 0xFFE0FC00, .BASE, {} }, { .LSLV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC02000, 0xFFE0FC00, .BASE, {is_64=true} }, { .LSRV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC02400, 0xFFE0FC00, .BASE, {is_64=true} }, @@ -1679,8 +1753,8 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .ADC, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9A000000, 0xFFE0FC00, .BASE, {is_64=true} }, { .ADCS, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xBA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true} }, { .ADCS, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x3A000000, 0xFFE0FC00, .BASE, {sets_flags=true} }, - { .SBC, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x5A000000, 0xFFE0FC00, .BASE, {} }, { .SBC, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xDA000000, 0xFFE0FC00, .BASE, {is_64=true} }, + { .SBC, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x5A000000, 0xFFE0FC00, .BASE, {} }, { .SBCS, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xFA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true} }, { .SBCS, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x7A000000, 0xFFE0FC00, .BASE, {sets_flags=true} }, { .CCMP_REG, {.X_REG,.X_REG,.NZCV_IMM,.COND}, {.RN,.RM,.NZCV_FIELD,.COND_HI}, 0xFA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true} }, @@ -1706,11 +1780,11 @@ DECODE_ENTRIES := [1808]lib.Decode_Entry{ { .CPYP, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1D000400, 0xFFE03C00, .BASE, {is_64=true} }, { .CPYM, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1D400400, 0xFFE03C00, .BASE, {is_64=true} }, { .CPYE, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1D800400, 0xFFE03C00, .BASE, {is_64=true} }, - { .LDR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xFD400000, 0xFFC00000, .FP, {} }, - { .LDR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xBD400000, 0xFFC00000, .FP, {} }, { .LDR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3DC00000, 0xFFC00000, .FP, {} }, - { .LDR_V, {.B_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3D400000, 0xFFC00000, .FP, {} }, + { .LDR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xFD400000, 0xFFC00000, .FP, {} }, { .LDR_V, {.H_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x7D400000, 0xFFC00000, .FP, {} }, + { .LDR_V, {.B_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3D400000, 0xFFC00000, .FP, {} }, + { .LDR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xBD400000, 0xFFC00000, .FP, {} }, { .STR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xFD000000, 0xFFC00000, .FP, {} }, { .STR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xBD000000, 0xFFC00000, .FP, {} }, { .STR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3D800000, 0xFFC00000, .FP, {} }, @@ -1826,14 +1900,14 @@ DECODE_INDEX_OP0 := [16]lib.Decode_Index{ 0x04 = { 454, 76}, 0x05 = { 530, 50}, 0x06 = { 580, 8}, - 0x07 = { 588, 699}, - 0x08 = {1287, 16}, - 0x09 = {1303, 34}, - 0x0A = {1337, 98}, - 0x0B = {1435, 21}, - 0x0C = {1456, 150}, - 0x0D = {1606, 88}, - 0x0E = {1694, 13}, - 0x0F = {1707, 101}, + 0x07 = { 588, 773}, + 0x08 = {1361, 16}, + 0x09 = {1377, 34}, + 0x0A = {1411, 98}, + 0x0B = {1509, 21}, + 0x0C = {1530, 150}, + 0x0D = {1680, 88}, + 0x0E = {1768, 13}, + 0x0F = {1781, 101}, } diff --git a/core/rexcode/arm64/tablegen/generated/encode_tables.odin b/core/rexcode/arm64/tablegen/generated/encode_tables.odin index f7bc43379..d45c137f5 100644 --- a/core/rexcode/arm64/tablegen/generated/encode_tables.odin +++ b/core/rexcode/arm64/tablegen/generated/encode_tables.odin @@ -8,7 +8,7 @@ package rexcode_arm64_generated import lib "../.." @(rodata) -ENCODE_FORMS := [1806]lib.Encoding{ +ENCODE_FORMS := [1880]lib.Encoding{ // .ADD_IMM { .ADD_IMM, {.WSP_REG,.WSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x11000000, 0xFF800000, .BASE, {} }, { .ADD_IMM, {.XSP_REG,.XSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x91000000, 0xFF800000, .BASE, {is_64=true} }, @@ -917,6 +917,22 @@ ENCODE_FORMS := [1806]lib.Encoding{ { .MLS_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E609400, 0xFFE0FC00, .NEON, {} }, { .MLS_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA09400, 0xFFE0FC00, .NEON, {} }, { .MLS_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA09400, 0xFFE0FC00, .NEON, {} }, + // .NEG_V + { .NEG_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E20B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E20B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E60B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E60B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA0B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0B800, 0xFFFFFC00, .NEON, {} }, + { .NEG_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0B800, 0xFFFFFC00, .NEON, {} }, + // .ABS_V + { .ABS_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E20B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E20B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E60B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E60B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0B800, 0xFFFFFC00, .NEON, {} }, + { .ABS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0B800, 0xFFFFFC00, .NEON, {} }, // .SHADD { .SHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E200400, 0xFFE0FC00, .NEON, {} }, { .SHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E200400, 0xFFE0FC00, .NEON, {} }, @@ -1545,6 +1561,78 @@ ENCODE_FORMS := [1806]lib.Encoding{ { .FRINTZ_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE19800, 0xFFFFFC00, .NEON, {} }, { .FRINTZ_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF99800, 0xFFFFFC00, .FP16, {} }, { .FRINTZ_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF99800, 0xFFFFFC00, .FP16, {} }, + // .SCVTF_V + { .SCVTF_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21D800, 0xFFFFFC00, .NEON, {} }, + { .SCVTF_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21D800, 0xFFFFFC00, .NEON, {} }, + { .SCVTF_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61D800, 0xFFFFFC00, .NEON, {} }, + { .SCVTF_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79D800, 0xFFFFFC00, .FP16, {} }, + { .SCVTF_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79D800, 0xFFFFFC00, .FP16, {} }, + // .UCVTF_V + { .UCVTF_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21D800, 0xFFFFFC00, .NEON, {} }, + { .UCVTF_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21D800, 0xFFFFFC00, .NEON, {} }, + { .UCVTF_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61D800, 0xFFFFFC00, .NEON, {} }, + { .UCVTF_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79D800, 0xFFFFFC00, .FP16, {} }, + { .UCVTF_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79D800, 0xFFFFFC00, .FP16, {} }, + // .FCVTAS_V + { .FCVTAS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21C800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21C800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61C800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79C800, 0xFFFFFC00, .FP16, {} }, + { .FCVTAS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79C800, 0xFFFFFC00, .FP16, {} }, + // .FCVTAU_V + { .FCVTAU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21C800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21C800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61C800, 0xFFFFFC00, .NEON, {} }, + { .FCVTAU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79C800, 0xFFFFFC00, .FP16, {} }, + { .FCVTAU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79C800, 0xFFFFFC00, .FP16, {} }, + // .FCVTMS_V + { .FCVTMS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTMS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTMS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTMS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79B800, 0xFFFFFC00, .FP16, {} }, + { .FCVTMS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79B800, 0xFFFFFC00, .FP16, {} }, + // .FCVTMU_V + { .FCVTMU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTMU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTMU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTMU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79B800, 0xFFFFFC00, .FP16, {} }, + { .FCVTMU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79B800, 0xFFFFFC00, .FP16, {} }, + // .FCVTNS_V + { .FCVTNS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTNS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTNS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTNS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTNS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79A800, 0xFFFFFC00, .FP16, {} }, + // .FCVTNU_V + { .FCVTNU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTNU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTNU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTNU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTNU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79A800, 0xFFFFFC00, .FP16, {} }, + // .FCVTPS_V + { .FCVTPS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTPS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTPS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTPS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTPS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9A800, 0xFFFFFC00, .FP16, {} }, + // .FCVTPU_V + { .FCVTPU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTPU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTPU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1A800, 0xFFFFFC00, .NEON, {} }, + { .FCVTPU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTPU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9A800, 0xFFFFFC00, .FP16, {} }, + // .FCVTZS_V + { .FCVTZS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9B800, 0xFFFFFC00, .FP16, {} }, + { .FCVTZS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9B800, 0xFFFFFC00, .FP16, {} }, + // .FCVTZU_V + { .FCVTZU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1B800, 0xFFFFFC00, .NEON, {} }, + { .FCVTZU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9B800, 0xFFFFFC00, .FP16, {} }, + { .FCVTZU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9B800, 0xFFFFFC00, .FP16, {} }, // .FCMEQ { .FCMEQ, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20E400, 0xFFE0FC00, .NEON, {} }, { .FCMEQ, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20E400, 0xFFE0FC00, .NEON, {} }, @@ -3136,724 +3224,724 @@ ENCODE_RUNS := [lib.Mnemonic]lib.Encode_Run{ .MUL_V = { 533, 3}, .MLA_V = { 536, 6}, .MLS_V = { 542, 6}, - .NEG_V = { 548, 0}, - .ABS_V = { 548, 0}, - .SHADD = { 548, 6}, - .UHADD = { 554, 6}, - .SHSUB = { 560, 6}, - .UHSUB = { 566, 6}, - .SRHADD = { 572, 6}, - .URHADD = { 578, 6}, - .SQADD = { 584, 7}, - .UQADD = { 591, 7}, - .SQSUB = { 598, 7}, - .UQSUB = { 605, 7}, - .SMAX = { 612, 6}, - .UMAX = { 618, 6}, - .SMIN = { 624, 6}, - .UMIN = { 630, 6}, - .SABD = { 636, 6}, - .UABD = { 642, 6}, - .SABA = { 648, 6}, - .UABA = { 654, 6}, - .ADDP_V = { 660, 7}, - .ADDV = { 667, 5}, - .SADDLP = { 672, 6}, - .UADDLP = { 678, 6}, - .SADALP = { 684, 6}, - .UADALP = { 690, 6}, - .SADDLV = { 696, 5}, - .UADDLV = { 701, 5}, - .SMAXV = { 706, 5}, - .UMAXV = { 711, 5}, - .SMINV = { 716, 5}, - .UMINV = { 721, 5}, - .SMAXP = { 726, 6}, - .UMAXP = { 732, 6}, - .SMINP = { 738, 6}, - .UMINP = { 744, 6}, - .SADDL = { 750, 3}, - .SADDL2 = { 753, 3}, - .UADDL = { 756, 3}, - .UADDL2 = { 759, 3}, - .SSUBL = { 762, 3}, - .SSUBL2 = { 765, 3}, - .USUBL = { 768, 3}, - .USUBL2 = { 771, 3}, - .SADDW = { 774, 3}, - .SADDW2 = { 777, 3}, - .UADDW = { 780, 3}, - .UADDW2 = { 783, 3}, - .SSUBW = { 786, 3}, - .SSUBW2 = { 789, 3}, - .USUBW = { 792, 3}, - .USUBW2 = { 795, 3}, - .RADDHN = { 798, 3}, - .RADDHN2 = { 801, 3}, - .RSUBHN = { 804, 3}, - .RSUBHN2 = { 807, 3}, - .ADDHN = { 810, 3}, - .ADDHN2 = { 813, 3}, - .SUBHN = { 816, 3}, - .SUBHN2 = { 819, 3}, - .XTN = { 822, 3}, - .XTN2 = { 825, 3}, - .SQXTN = { 828, 3}, - .SQXTN2 = { 831, 3}, - .UQXTN = { 834, 3}, - .UQXTN2 = { 837, 3}, - .SQXTUN = { 840, 3}, - .SQXTUN2 = { 843, 3}, - .SMULL_V = { 846, 3}, - .SMULL2_V = { 849, 3}, - .UMULL_V = { 852, 3}, - .UMULL2_V = { 855, 3}, - .SMLAL = { 858, 3}, - .SMLAL2 = { 861, 3}, - .UMLAL = { 864, 3}, - .UMLAL2 = { 867, 3}, - .SMLSL = { 870, 3}, - .SMLSL2 = { 873, 3}, - .UMLSL = { 876, 3}, - .UMLSL2 = { 879, 3}, - .SQDMULL = { 882, 2}, - .SQDMULL2 = { 884, 2}, - .SQDMLAL = { 886, 2}, - .SQDMLAL2 = { 888, 2}, - .SQDMLSL = { 890, 2}, - .SQDMLSL2 = { 892, 2}, - .SQDMULH = { 894, 4}, - .SQRDMULH = { 898, 4}, - .SDOT = { 902, 2}, - .UDOT = { 904, 2}, - .USDOT = { 906, 0}, - .FADD_V = { 906, 3}, - .FSUB_V = { 909, 3}, - .FMUL_V = { 912, 3}, - .FDIV_V = { 915, 3}, - .FNEG_V = { 918, 5}, - .FABS_V = { 923, 5}, - .FSQRT_V = { 928, 5}, - .FMLA_V = { 933, 2}, - .FMLS_V = { 935, 2}, - .FMULX = { 937, 5}, - .FMAX_V = { 942, 5}, - .FMIN_V = { 947, 5}, - .FMAXNM_V = { 952, 5}, - .FMINNM_V = { 957, 5}, - .FMAXP_V = { 962, 5}, - .FMINP_V = { 967, 5}, - .FMAXNMP = { 972, 5}, - .FMINNMP = { 977, 5}, - .FMAXV_V = { 982, 3}, - .FMINV_V = { 985, 3}, - .FMAXNMV = { 988, 3}, - .FMINNMV = { 991, 3}, - .FRECPE = { 994, 5}, - .FRSQRTE = { 999, 5}, - .FRECPS = { 1004, 5}, - .FRSQRTS = { 1009, 5}, - .FRECPX = { 1014, 0}, - .FADDP_V = { 1014, 5}, - .FRINTA_V = { 1019, 5}, - .FRINTI_V = { 1024, 5}, - .FRINTM_V = { 1029, 5}, - .FRINTN_V = { 1034, 5}, - .FRINTP_V = { 1039, 5}, - .FRINTX_V = { 1044, 5}, - .FRINTZ_V = { 1049, 5}, - .SCVTF_V = { 1054, 0}, - .UCVTF_V = { 1054, 0}, - .FCVTAS_V = { 1054, 0}, - .FCVTAU_V = { 1054, 0}, - .FCVTMS_V = { 1054, 0}, - .FCVTMU_V = { 1054, 0}, - .FCVTNS_V = { 1054, 0}, - .FCVTNU_V = { 1054, 0}, - .FCVTPS_V = { 1054, 0}, - .FCVTPU_V = { 1054, 0}, - .FCVTZS_V = { 1054, 0}, - .FCVTZU_V = { 1054, 0}, - .FCVTL = { 1054, 0}, - .FCVTL2 = { 1054, 0}, - .FCVTN = { 1054, 0}, - .FCVTN2 = { 1054, 0}, - .FCVTXN = { 1054, 0}, - .FCVTXN2 = { 1054, 0}, - .FCMEQ = { 1054, 5}, - .FCMGE = { 1059, 5}, - .FCMGT = { 1064, 5}, - .FCMLE = { 1069, 0}, - .FCMLT = { 1069, 0}, - .FACGE = { 1069, 5}, - .FACGT = { 1074, 5}, - .CMEQ = { 1079, 4}, - .CMGE = { 1083, 7}, - .CMGT = { 1090, 2}, - .CMHI = { 1092, 2}, - .CMHS = { 1094, 7}, - .CMLE = { 1101, 0}, - .CMLT = { 1101, 0}, - .CMTST = { 1101, 7}, - .AND_V = { 1108, 1}, - .ORR_V = { 1109, 1}, - .EOR_V = { 1110, 1}, - .BIC_V = { 1111, 1}, - .ORN_V = { 1112, 1}, - .MVN_V = { 1113, 0}, - .BIT = { 1113, 1}, - .BIF = { 1114, 1}, - .BSL = { 1115, 1}, - .SHL_V = { 1116, 0}, - .SQSHL_V = { 1116, 0}, - .SQSHLU = { 1116, 0}, - .SRSHL = { 1116, 7}, - .URSHL = { 1123, 7}, - .SSHR = { 1130, 0}, - .USHR = { 1130, 0}, - .SSRA = { 1130, 0}, - .USRA = { 1130, 0}, - .SRSHR = { 1130, 0}, - .URSHR = { 1130, 0}, - .SRSRA = { 1130, 0}, - .URSRA = { 1130, 0}, - .SSHL = { 1130, 7}, - .USHL = { 1137, 7}, - .SLI = { 1144, 0}, - .SRI = { 1144, 0}, - .SSHLL = { 1144, 0}, - .SSHLL2 = { 1144, 0}, - .USHLL = { 1144, 0}, - .USHLL2 = { 1144, 0}, - .SXTL = { 1144, 0}, - .SXTL2 = { 1144, 0}, - .UXTL = { 1144, 0}, - .UXTL2 = { 1144, 0}, - .SHRN = { 1144, 0}, - .SHRN2 = { 1144, 0}, - .RSHRN = { 1144, 0}, - .RSHRN2 = { 1144, 0}, - .SQSHRN = { 1144, 0}, - .SQSHRN2 = { 1144, 0}, - .UQSHRN = { 1144, 0}, - .UQSHRN2 = { 1144, 0}, - .SQRSHRN = { 1144, 0}, - .SQRSHRN2 = { 1144, 0}, - .UQRSHRN = { 1144, 0}, - .UQRSHRN2 = { 1144, 0}, - .SQSHRUN = { 1144, 0}, - .SQSHRUN2 = { 1144, 0}, - .SQRSHRUN = { 1144, 0}, - .SQRSHRUN2 = { 1144, 0}, - .DUP_V = { 1144, 0}, - .INS = { 1144, 0}, - .MOV_V = { 1144, 0}, - .EXT_V = { 1144, 0}, - .TBL = { 1144, 0}, - .TBX = { 1144, 0}, - .ZIP1 = { 1144, 0}, - .ZIP2 = { 1144, 0}, - .UZP1 = { 1144, 0}, - .UZP2 = { 1144, 0}, - .TRN1 = { 1144, 0}, - .TRN2 = { 1144, 0}, - .NOT_V = { 1144, 2}, - .RBIT_V = { 1146, 2}, - .REV16_V = { 1148, 2}, - .REV32_V = { 1150, 4}, - .REV64 = { 1154, 6}, - .CLS_V = { 1160, 6}, - .CLZ_V = { 1166, 6}, - .CNT = { 1172, 2}, - .URECPE_V = { 1174, 2}, - .URSQRTE_V = { 1176, 2}, - .MOVI = { 1178, 0}, - .MVNI = { 1178, 0}, - .FMOV_V_IMM = { 1178, 0}, - .LD1 = { 1178, 4}, - .LD2 = { 1182, 0}, - .LD3 = { 1182, 0}, - .LD4 = { 1182, 0}, - .ST1 = { 1182, 4}, - .ST2 = { 1186, 0}, - .ST3 = { 1186, 0}, - .ST4 = { 1186, 0}, - .LD1R = { 1186, 0}, - .LD2R = { 1186, 0}, - .LD3R = { 1186, 0}, - .LD4R = { 1186, 0}, - .LD1_LANE = { 1186, 0}, - .LD2_LANE = { 1186, 0}, - .LD3_LANE = { 1186, 0}, - .LD4_LANE = { 1186, 0}, - .ST1_LANE = { 1186, 0}, - .ST2_LANE = { 1186, 0}, - .ST3_LANE = { 1186, 0}, - .ST4_LANE = { 1186, 0}, - .LDR_V = { 1186, 5}, - .STR_V = { 1191, 5}, - .LDP_V = { 1196, 0}, - .STP_V = { 1196, 0}, - .LDUR_V = { 1196, 0}, - .STUR_V = { 1196, 0}, - .SVE_ADD_Z = { 1196, 4}, - .SVE_SUB_Z = { 1200, 4}, - .SVE_SQADD_Z = { 1204, 4}, - .SVE_UQADD_Z = { 1208, 4}, - .SVE_SQSUB_Z = { 1212, 4}, - .SVE_UQSUB_Z = { 1216, 4}, - .SVE_ADD_PRED = { 1220, 4}, - .SVE_SUB_PRED = { 1224, 4}, - .SVE_SUBR_PRED = { 1228, 4}, - .SVE_MUL_PRED = { 1232, 4}, - .SVE_SMULH_PRED = { 1236, 4}, - .SVE_UMULH_PRED = { 1240, 4}, - .SVE_SDIV_PRED = { 1244, 2}, - .SVE_UDIV_PRED = { 1246, 2}, - .SVE_SMAX_PRED = { 1248, 4}, - .SVE_UMAX_PRED = { 1252, 4}, - .SVE_SMIN_PRED = { 1256, 4}, - .SVE_UMIN_PRED = { 1260, 4}, - .SVE_SABD_PRED = { 1264, 4}, - .SVE_UABD_PRED = { 1268, 4}, - .SVE_AND_PRED = { 1272, 1}, - .SVE_ORR_PRED = { 1273, 1}, - .SVE_EOR_PRED = { 1274, 1}, - .SVE_BIC_PRED = { 1275, 1}, - .SVE_ASR_PRED = { 1276, 4}, - .SVE_LSL_PRED = { 1280, 4}, - .SVE_LSR_PRED = { 1284, 4}, - .SVE_ASRR_PRED = { 1288, 0}, - .SVE_LSLR_PRED = { 1288, 0}, - .SVE_LSRR_PRED = { 1288, 0}, - .SVE_ABS_PRED = { 1288, 4}, - .SVE_NEG_PRED = { 1292, 4}, - .SVE_CLS_PRED = { 1296, 4}, - .SVE_CLZ_PRED = { 1300, 4}, - .SVE_CNT_PRED = { 1304, 4}, - .SVE_MOV_PRED = { 1308, 0}, - .SVE_FADD_Z = { 1308, 3}, - .SVE_FSUB_Z = { 1311, 3}, - .SVE_FMUL_Z = { 1314, 3}, - .SVE_FRECPS = { 1317, 3}, - .SVE_FRSQRTS = { 1320, 3}, - .SVE_FTSMUL = { 1323, 3}, - .SVE_FADD_PRED = { 1326, 3}, - .SVE_FSUB_PRED = { 1329, 3}, - .SVE_FSUBR_PRED = { 1332, 0}, - .SVE_FMUL_PRED = { 1332, 3}, - .SVE_FDIV_PRED = { 1335, 3}, - .SVE_FDIVR_PRED = { 1338, 0}, - .SVE_FMAX_PRED = { 1338, 3}, - .SVE_FMIN_PRED = { 1341, 3}, - .SVE_FMAXNM_PRED = { 1344, 3}, - .SVE_FMINNM_PRED = { 1347, 3}, - .SVE_FABS_Z = { 1350, 3}, - .SVE_FNEG_Z = { 1353, 3}, - .SVE_FSQRT_Z = { 1356, 3}, - .SVE_FRECPX_Z = { 1359, 0}, - .SVE_FRINTN = { 1359, 0}, - .SVE_FRINTP = { 1359, 0}, - .SVE_FRINTM = { 1359, 0}, - .SVE_FRINTZ = { 1359, 0}, - .SVE_FRINTA = { 1359, 0}, - .SVE_FRINTX = { 1359, 0}, - .SVE_FRINTI = { 1359, 0}, - .SVE_FMLA = { 1359, 3}, - .SVE_FMLS = { 1362, 3}, - .SVE_FNMLA = { 1365, 3}, - .SVE_FNMLS = { 1368, 3}, - .SVE_AND_P = { 1371, 1}, - .SVE_BIC_P = { 1372, 1}, - .SVE_ORR_P = { 1373, 1}, - .SVE_EOR_P = { 1374, 1}, - .SVE_NAND_P = { 1375, 1}, - .SVE_NOR_P = { 1376, 1}, - .SVE_ORN_P = { 1377, 1}, - .SVE_SEL_P = { 1378, 1}, - .SVE_ANDS_P = { 1379, 1}, - .SVE_BICS_P = { 1380, 1}, - .SVE_ORRS_P = { 1381, 1}, - .SVE_EORS_P = { 1382, 1}, - .SVE_NANDS_P = { 1383, 0}, - .SVE_NORS_P = { 1383, 0}, - .SVE_ORNS_P = { 1383, 0}, - .SVE_NOT_P = { 1383, 0}, - .SVE_MOV_P = { 1383, 0}, - .SVE_MOVS_P = { 1383, 0}, - .SVE_PTRUE = { 1383, 1}, - .SVE_PTRUES = { 1384, 1}, - .SVE_PFALSE = { 1385, 1}, - .SVE_PFIRST = { 1386, 1}, - .SVE_PNEXT = { 1387, 1}, - .SVE_BRKA = { 1388, 0}, - .SVE_BRKB = { 1388, 0}, - .SVE_BRKAS = { 1388, 0}, - .SVE_BRKBS = { 1388, 0}, - .SVE_BRKPA = { 1388, 0}, - .SVE_BRKPB = { 1388, 0}, - .SVE_BRKN = { 1388, 0}, - .SVE_RDFFR = { 1388, 0}, - .SVE_WRFFR = { 1388, 0}, - .SVE_SETFFR = { 1388, 0}, - .SVE_CMPEQ = { 1388, 4}, - .SVE_CMPNE = { 1392, 4}, - .SVE_CMPGE = { 1396, 4}, - .SVE_CMPGT = { 1400, 4}, - .SVE_CMPLE = { 1404, 0}, - .SVE_CMPLT = { 1404, 0}, - .SVE_CMPHI = { 1404, 4}, - .SVE_CMPHS = { 1408, 4}, - .SVE_CMPLO = { 1412, 0}, - .SVE_CMPLS = { 1412, 0}, - .SVE_FCMEQ = { 1412, 0}, - .SVE_FCMNE = { 1412, 0}, - .SVE_FCMGE = { 1412, 0}, - .SVE_FCMGT = { 1412, 0}, - .SVE_FCMLE = { 1412, 0}, - .SVE_FCMLT = { 1412, 0}, - .SVE_FCMUO = { 1412, 0}, - .SVE_DUP_Z = { 1412, 4}, - .SVE_INSR = { 1416, 0}, - .SVE_REV_Z = { 1416, 4}, - .SVE_REV_P = { 1420, 1}, - .SVE_TBL = { 1421, 4}, - .SVE_ZIP1_Z = { 1425, 4}, - .SVE_ZIP2_Z = { 1429, 4}, - .SVE_UZP1_Z = { 1433, 4}, - .SVE_UZP2_Z = { 1437, 4}, - .SVE_TRN1_Z = { 1441, 4}, - .SVE_TRN2_Z = { 1445, 4}, - .SVE_ZIP1_P = { 1449, 1}, - .SVE_ZIP2_P = { 1450, 1}, - .SVE_UZP1_P = { 1451, 1}, - .SVE_UZP2_P = { 1452, 1}, - .SVE_TRN1_P = { 1453, 1}, - .SVE_TRN2_P = { 1454, 1}, - .SVE_CPY_Z = { 1455, 0}, - .SVE_COMPACT = { 1455, 0}, - .SVE_EXT_Z = { 1455, 0}, - .SVE_LD1B = { 1455, 1}, - .SVE_LD1H = { 1456, 1}, - .SVE_LD1W = { 1457, 1}, - .SVE_LD1D = { 1458, 1}, - .SVE_LD1SB = { 1459, 1}, - .SVE_LD1SH = { 1460, 1}, - .SVE_LD1SW = { 1461, 1}, - .SVE_ST1B = { 1462, 1}, - .SVE_ST1H = { 1463, 1}, - .SVE_ST1W = { 1464, 1}, - .SVE_ST1D = { 1465, 1}, - .SVE_LDR_Z = { 1466, 1}, - .SVE_STR_Z = { 1467, 1}, - .SVE_LDR_P = { 1468, 1}, - .SVE_STR_P = { 1469, 1}, - .SVE_LDFF1B = { 1470, 1}, - .SVE_LDFF1H = { 1471, 1}, - .SVE_LDFF1W = { 1472, 1}, - .SVE_LDFF1D = { 1473, 1}, - .SVE_WHILEGE = { 1474, 1}, - .SVE_WHILEGT = { 1475, 1}, - .SVE_WHILELE = { 1476, 1}, - .SVE_WHILELT = { 1477, 1}, - .SVE_WHILEHI = { 1478, 1}, - .SVE_WHILEHS = { 1479, 1}, - .SVE_WHILELO = { 1480, 1}, - .SVE_WHILELS = { 1481, 1}, - .SVE_SQRDMLAH = { 1482, 4}, - .SVE_SQRDMLSH = { 1486, 4}, - .SVE_ADCLB = { 1490, 2}, - .SVE_ADCLT = { 1492, 2}, - .SVE_SBCLB = { 1494, 2}, - .SVE_SBCLT = { 1496, 2}, - .SVE_TBL2 = { 1498, 1}, - .SVE_TBX = { 1499, 1}, - .SVE_AESE = { 1500, 1}, - .SVE_AESD = { 1501, 1}, - .SVE_AESMC = { 1502, 1}, - .SVE_AESIMC = { 1503, 1}, - .SVE_BCAX_Z = { 1504, 0}, - .SVE_XAR_Z = { 1504, 0}, - .SVE_EOR3_Z = { 1504, 0}, - .SVE_MATCH = { 1504, 2}, - .SVE_NMATCH = { 1506, 2}, - .SVE_HISTCNT = { 1508, 2}, - .SVE_HISTSEG = { 1510, 1}, - .SME_SMSTART = { 1511, 1}, - .SME_SMSTOP = { 1512, 1}, - .SME_RDSVL = { 1513, 1}, - .SME_ADDHA = { 1514, 0}, - .SME_ADDVA = { 1514, 0}, - .SME_ZERO = { 1514, 1}, - .SME_FMOPA = { 1515, 1}, - .SME_FMOPS = { 1516, 1}, - .SME_BFMOPA = { 1517, 1}, - .SME_BFMOPS = { 1518, 1}, - .SME_SMOPA = { 1519, 2}, - .SME_SMOPS = { 1521, 2}, - .SME_UMOPA = { 1523, 2}, - .SME_UMOPS = { 1525, 2}, - .SME_USMOPA = { 1527, 1}, - .SME_SUMOPA = { 1528, 1}, - .SME_MOVA_TO_Z = { 1529, 0}, - .SME_MOVA_TO_ZA = { 1529, 0}, - .SME_LD1B_ZA = { 1529, 0}, - .SME_LD1H_ZA = { 1529, 0}, - .SME_LD1W_ZA = { 1529, 0}, - .SME_LD1D_ZA = { 1529, 0}, - .SME_LD1Q_ZA = { 1529, 0}, - .SME_ST1B_ZA = { 1529, 0}, - .SME_ST1H_ZA = { 1529, 0}, - .SME_ST1W_ZA = { 1529, 0}, - .SME_ST1D_ZA = { 1529, 0}, - .SME_ST1Q_ZA = { 1529, 0}, - .SME_LDR_ZA = { 1529, 1}, - .SME_STR_ZA = { 1530, 1}, - .SVE_FMLA_IDX_H = { 1531, 1}, - .SVE_FMLA_IDX_S = { 1532, 1}, - .SVE_FMLA_IDX_D = { 1533, 1}, - .SVE_FMLS_IDX_H = { 1534, 1}, - .SVE_FMLS_IDX_S = { 1535, 1}, - .SVE_FMLS_IDX_D = { 1536, 1}, - .SVE_LD1B_GATHER_S = { 1537, 1}, - .SVE_LD1B_GATHER_D = { 1538, 1}, - .SVE_LD1H_GATHER_S = { 1539, 1}, - .SVE_LD1H_GATHER_D = { 1540, 1}, - .SVE_LD1W_GATHER_S = { 1541, 1}, - .SVE_LD1W_GATHER_D = { 1542, 1}, - .SVE_LD1D_GATHER_D = { 1543, 1}, - .SVE_LD1SB_GATHER_S = { 1544, 1}, - .SVE_LD1SB_GATHER_D = { 1545, 1}, - .SVE_LD1SH_GATHER_S = { 1546, 1}, - .SVE_LD1SH_GATHER_D = { 1547, 1}, - .SVE_LD1SW_GATHER_D = { 1548, 1}, - .SVE_ST1B_SCATTER_S = { 1549, 1}, - .SVE_ST1B_SCATTER_D = { 1550, 1}, - .SVE_ST1H_SCATTER_S = { 1551, 1}, - .SVE_ST1H_SCATTER_D = { 1552, 1}, - .SVE_ST1W_SCATTER_S = { 1553, 1}, - .SVE_ST1W_SCATTER_D = { 1554, 1}, - .SVE_ST1D_SCATTER_D = { 1555, 1}, - .SME_LD1B_TILE = { 1556, 1}, - .SME_LD1H_TILE = { 1557, 1}, - .SME_LD1W_TILE = { 1558, 1}, - .SME_LD1D_TILE = { 1559, 1}, - .SME_LD1Q_TILE = { 1560, 1}, - .SME_ST1B_TILE = { 1561, 1}, - .SME_ST1H_TILE = { 1562, 1}, - .SME_ST1W_TILE = { 1563, 1}, - .SME_ST1D_TILE = { 1564, 1}, - .SME_ST1Q_TILE = { 1565, 1}, - .SME_MOVA_Z_FROM_TILE = { 1566, 1}, - .SME_MOVA_TILE_FROM_Z = { 1567, 1}, - .FCMLA_4H = { 1568, 1}, - .FCMLA_8H = { 1569, 1}, - .FCMLA_4S = { 1570, 1}, - .FCMLA_2D = { 1571, 1}, - .FCADD_4H = { 1572, 1}, - .FCADD_8H = { 1573, 1}, - .FCADD_4S = { 1574, 1}, - .FCADD_2D = { 1575, 1}, - .SVE_PRFB = { 1576, 1}, - .SVE_PRFH = { 1577, 1}, - .SVE_PRFW = { 1578, 1}, - .SVE_PRFD = { 1579, 1}, - .SVE_LDNT1B = { 1580, 1}, - .SVE_LDNT1H = { 1581, 1}, - .SVE_LDNT1W = { 1582, 1}, - .SVE_LDNT1D = { 1583, 1}, - .SVE_STNT1B = { 1584, 1}, - .SVE_STNT1H = { 1585, 1}, - .SVE_STNT1W = { 1586, 1}, - .SVE_STNT1D = { 1587, 1}, - .SVE_EXT = { 1588, 1}, - .SVE_SPLICE = { 1589, 1}, - .SVE_INDEX_II = { 1590, 1}, - .SVE_INDEX_IR = { 1591, 1}, - .SVE_INDEX_RI = { 1592, 1}, - .SVE_INDEX_RR = { 1593, 1}, - .SVE_BSL = { 1594, 1}, - .SVE_BSL1N = { 1595, 1}, - .SVE_BSL2N = { 1596, 1}, - .SVE_NBSL = { 1597, 1}, - .SVE_PMUL_VEC = { 1598, 1}, - .SVE_PMULLB = { 1599, 1}, - .SVE_PMULLT = { 1600, 1}, - .SVE_BFCVT = { 1601, 1}, - .SVE_BFCVTNT = { 1602, 1}, - .LDRAA = { 1603, 1}, - .LDRAB = { 1604, 1}, - .LDRAA_PRE = { 1605, 1}, - .LDRAB_PRE = { 1606, 1}, - .TSTART = { 1607, 1}, - .TCOMMIT = { 1608, 1}, - .TCANCEL = { 1609, 1}, - .TTEST = { 1610, 1}, - .WFET = { 1611, 1}, - .WFIT = { 1612, 1}, - .BC_COND = { 1613, 1}, - .UXTB = { 1614, 1}, - .UXTH = { 1615, 1}, - .UXTW = { 1616, 1}, - .SXTB = { 1617, 1}, - .SXTH = { 1618, 1}, - .SXTW = { 1619, 1}, - .ADC = { 1620, 2}, - .ADCS = { 1622, 2}, - .SBC = { 1624, 2}, - .SBCS = { 1626, 2}, - .NGC = { 1628, 2}, - .NGCS = { 1630, 2}, - .LDAPUR = { 1632, 2}, - .STLUR = { 1634, 2}, - .LDAPURB = { 1636, 1}, - .STLURB = { 1637, 1}, - .LDAPURH = { 1638, 1}, - .STLURH = { 1639, 1}, - .LDAPURSB = { 1640, 2}, - .LDAPURSH = { 1642, 2}, - .LDAPURSW = { 1644, 1}, - .SVE_BFADD = { 1645, 1}, - .SVE_BFSUB = { 1646, 1}, - .SVE_BFMUL = { 1647, 1}, - .SVE_BFMLA = { 1648, 1}, - .SVE_BFMLS = { 1649, 1}, - .SB = { 1650, 1}, - .CSDB = { 1651, 1}, - .DGH = { 1652, 1}, - .PSB_CSYNC = { 1653, 1}, - .TSB_CSYNC = { 1654, 1}, - .BTI_J = { 1655, 1}, - .BTI_C = { 1656, 1}, - .BTI_JC = { 1657, 1}, - .MOV_V_ALIAS = { 1658, 2}, - .NOT_V_ALIAS = { 1660, 2}, - .LSL_IMM = { 1662, 2}, - .LSR_IMM = { 1664, 2}, - .ASR_IMM = { 1666, 2}, - .ROR_IMM = { 1668, 2}, - .SVE_BFADD_UNPRED = { 1670, 1}, - .SVE_BFSUB_UNPRED = { 1671, 1}, - .SVE_BFMUL_UNPRED = { 1672, 1}, - .SVE_BFCLAMP = { 1673, 1}, - .SVE_BFMAXNM = { 1674, 1}, - .SVE_BFMINNM = { 1675, 1}, - .SME2_LUTI2_B = { 1676, 1}, - .SME2_LUTI4_B = { 1677, 1}, - .SME2_LD1B_X2 = { 1678, 1}, - .SME2_LD1H_X2 = { 1679, 1}, - .SME2_LD1W_X2 = { 1680, 1}, - .SME2_LD1D_X2 = { 1681, 1}, - .SME2_LD1B_X4 = { 1682, 1}, - .SME2_LD1H_X4 = { 1683, 1}, - .SME2_LD1W_X4 = { 1684, 1}, - .SME2_LD1D_X4 = { 1685, 1}, - .SME2_ST1B_X2 = { 1686, 1}, - .SME2_ST1H_X2 = { 1687, 1}, - .SME2_ST1W_X2 = { 1688, 1}, - .SME2_ST1D_X2 = { 1689, 1}, - .SME2_ST1B_X4 = { 1690, 1}, - .SME2_ST1H_X4 = { 1691, 1}, - .SME2_ST1W_X4 = { 1692, 1}, - .SME2_ST1D_X4 = { 1693, 1}, - .SME2_ZIP_3 = { 1694, 1}, - .SME2_ZIP_4 = { 1695, 1}, - .SME2_UZP_3 = { 1696, 1}, - .SME2_UZP_4 = { 1697, 1}, - .TLBI_RPALOS = { 1698, 1}, - .TLBI_RPAOS = { 1699, 1}, - .AT_S1E1A = { 1700, 1}, - .DC_CIPAPA = { 1701, 1}, - .DC_CIGDPAPA = { 1702, 1}, - .TLBI_PAALL = { 1703, 1}, - .TLBI_PAALLOS = { 1704, 1}, - .AMX_LDX = { 1705, 1}, - .AMX_LDY = { 1706, 1}, - .AMX_STX = { 1707, 1}, - .AMX_STY = { 1708, 1}, - .AMX_LDZ = { 1709, 1}, - .AMX_STZ = { 1710, 1}, - .AMX_LDZI = { 1711, 1}, - .AMX_STZI = { 1712, 1}, - .AMX_EXTRX = { 1713, 1}, - .AMX_EXTRY = { 1714, 1}, - .AMX_FMA64 = { 1715, 1}, - .AMX_FMS64 = { 1716, 1}, - .AMX_FMA32 = { 1717, 1}, - .AMX_FMS32 = { 1718, 1}, - .AMX_MAC16 = { 1719, 1}, - .AMX_FMA16 = { 1720, 1}, - .AMX_FMS16 = { 1721, 1}, - .AMX_SET = { 1722, 1}, - .AMX_CLR = { 1723, 1}, - .AMX_VECINT = { 1724, 1}, - .AMX_VECFP = { 1725, 1}, - .AMX_MATINT = { 1726, 1}, - .AMX_MATFP = { 1727, 1}, - .AMX_GENLUT = { 1728, 1}, - .CPYP = { 1729, 1}, - .CPYM = { 1730, 1}, - .CPYE = { 1731, 1}, - .CPYFP = { 1732, 1}, - .CPYFM = { 1733, 1}, - .CPYFE = { 1734, 1}, - .SETP = { 1735, 1}, - .SETM = { 1736, 1}, - .SETE = { 1737, 1}, - .DC_IVAC = { 1738, 1}, - .DC_ISW = { 1739, 1}, - .DC_CSW = { 1740, 1}, - .DC_CISW = { 1741, 1}, - .DC_ZVA = { 1742, 1}, - .DC_CVAC = { 1743, 1}, - .DC_CVAU = { 1744, 1}, - .DC_CIVAC = { 1745, 1}, - .IC_IALLUIS = { 1746, 1}, - .IC_IALLU = { 1747, 1}, - .IC_IVAU = { 1748, 1}, - .AT_S1E1R = { 1749, 1}, - .AT_S1E1W = { 1750, 1}, - .AT_S1E0R = { 1751, 1}, - .AT_S1E0W = { 1752, 1}, - .AT_S1E2R = { 1753, 1}, - .AT_S1E2W = { 1754, 1}, - .AT_S1E3R = { 1755, 1}, - .AT_S1E3W = { 1756, 1}, - .AT_S12E1R = { 1757, 1}, - .AT_S12E1W = { 1758, 1}, - .AT_S12E0R = { 1759, 1}, - .AT_S12E0W = { 1760, 1}, - .TLBI_VMALLE1 = { 1761, 1}, - .TLBI_VMALLE1IS = { 1762, 1}, - .TLBI_VAE1 = { 1763, 1}, - .TLBI_VAE1IS = { 1764, 1}, - .TLBI_ASIDE1 = { 1765, 1}, - .TLBI_ASIDE1IS = { 1766, 1}, - .TLBI_VAAE1 = { 1767, 1}, - .TLBI_VAAE1IS = { 1768, 1}, - .TLBI_VALE1 = { 1769, 1}, - .TLBI_VALE1IS = { 1770, 1}, - .TLBI_VAALE1 = { 1771, 1}, - .TLBI_VAALE1IS = { 1772, 1}, - .TLBI_ALLE1 = { 1773, 1}, - .TLBI_ALLE1IS = { 1774, 1}, - .TLBI_ALLE2 = { 1775, 1}, - .TLBI_ALLE2IS = { 1776, 1}, - .TLBI_ALLE3 = { 1777, 1}, - .TLBI_ALLE3IS = { 1778, 1}, - .PRFM = { 1779, 1}, - .PRFUM = { 1780, 1}, - .PRFM_LIT = { 1781, 1}, - .MOV_REG = { 1782, 2}, - .MOV_BITMASK = { 1784, 2}, - .MVN = { 1786, 2}, - .NEG_SR = { 1788, 2}, - .NEGS = { 1790, 2}, - .CMP_SR = { 1792, 2}, - .CMP_ER = { 1794, 2}, - .CMP_IMM = { 1796, 2}, - .CMN_SR = { 1798, 2}, - .CMN_ER = { 1800, 2}, - .CMN_IMM = { 1802, 2}, - .TST_SR = { 1804, 2}, + .NEG_V = { 548, 7}, + .ABS_V = { 555, 7}, + .SHADD = { 562, 6}, + .UHADD = { 568, 6}, + .SHSUB = { 574, 6}, + .UHSUB = { 580, 6}, + .SRHADD = { 586, 6}, + .URHADD = { 592, 6}, + .SQADD = { 598, 7}, + .UQADD = { 605, 7}, + .SQSUB = { 612, 7}, + .UQSUB = { 619, 7}, + .SMAX = { 626, 6}, + .UMAX = { 632, 6}, + .SMIN = { 638, 6}, + .UMIN = { 644, 6}, + .SABD = { 650, 6}, + .UABD = { 656, 6}, + .SABA = { 662, 6}, + .UABA = { 668, 6}, + .ADDP_V = { 674, 7}, + .ADDV = { 681, 5}, + .SADDLP = { 686, 6}, + .UADDLP = { 692, 6}, + .SADALP = { 698, 6}, + .UADALP = { 704, 6}, + .SADDLV = { 710, 5}, + .UADDLV = { 715, 5}, + .SMAXV = { 720, 5}, + .UMAXV = { 725, 5}, + .SMINV = { 730, 5}, + .UMINV = { 735, 5}, + .SMAXP = { 740, 6}, + .UMAXP = { 746, 6}, + .SMINP = { 752, 6}, + .UMINP = { 758, 6}, + .SADDL = { 764, 3}, + .SADDL2 = { 767, 3}, + .UADDL = { 770, 3}, + .UADDL2 = { 773, 3}, + .SSUBL = { 776, 3}, + .SSUBL2 = { 779, 3}, + .USUBL = { 782, 3}, + .USUBL2 = { 785, 3}, + .SADDW = { 788, 3}, + .SADDW2 = { 791, 3}, + .UADDW = { 794, 3}, + .UADDW2 = { 797, 3}, + .SSUBW = { 800, 3}, + .SSUBW2 = { 803, 3}, + .USUBW = { 806, 3}, + .USUBW2 = { 809, 3}, + .RADDHN = { 812, 3}, + .RADDHN2 = { 815, 3}, + .RSUBHN = { 818, 3}, + .RSUBHN2 = { 821, 3}, + .ADDHN = { 824, 3}, + .ADDHN2 = { 827, 3}, + .SUBHN = { 830, 3}, + .SUBHN2 = { 833, 3}, + .XTN = { 836, 3}, + .XTN2 = { 839, 3}, + .SQXTN = { 842, 3}, + .SQXTN2 = { 845, 3}, + .UQXTN = { 848, 3}, + .UQXTN2 = { 851, 3}, + .SQXTUN = { 854, 3}, + .SQXTUN2 = { 857, 3}, + .SMULL_V = { 860, 3}, + .SMULL2_V = { 863, 3}, + .UMULL_V = { 866, 3}, + .UMULL2_V = { 869, 3}, + .SMLAL = { 872, 3}, + .SMLAL2 = { 875, 3}, + .UMLAL = { 878, 3}, + .UMLAL2 = { 881, 3}, + .SMLSL = { 884, 3}, + .SMLSL2 = { 887, 3}, + .UMLSL = { 890, 3}, + .UMLSL2 = { 893, 3}, + .SQDMULL = { 896, 2}, + .SQDMULL2 = { 898, 2}, + .SQDMLAL = { 900, 2}, + .SQDMLAL2 = { 902, 2}, + .SQDMLSL = { 904, 2}, + .SQDMLSL2 = { 906, 2}, + .SQDMULH = { 908, 4}, + .SQRDMULH = { 912, 4}, + .SDOT = { 916, 2}, + .UDOT = { 918, 2}, + .USDOT = { 920, 0}, + .FADD_V = { 920, 3}, + .FSUB_V = { 923, 3}, + .FMUL_V = { 926, 3}, + .FDIV_V = { 929, 3}, + .FNEG_V = { 932, 5}, + .FABS_V = { 937, 5}, + .FSQRT_V = { 942, 5}, + .FMLA_V = { 947, 2}, + .FMLS_V = { 949, 2}, + .FMULX = { 951, 5}, + .FMAX_V = { 956, 5}, + .FMIN_V = { 961, 5}, + .FMAXNM_V = { 966, 5}, + .FMINNM_V = { 971, 5}, + .FMAXP_V = { 976, 5}, + .FMINP_V = { 981, 5}, + .FMAXNMP = { 986, 5}, + .FMINNMP = { 991, 5}, + .FMAXV_V = { 996, 3}, + .FMINV_V = { 999, 3}, + .FMAXNMV = { 1002, 3}, + .FMINNMV = { 1005, 3}, + .FRECPE = { 1008, 5}, + .FRSQRTE = { 1013, 5}, + .FRECPS = { 1018, 5}, + .FRSQRTS = { 1023, 5}, + .FRECPX = { 1028, 0}, + .FADDP_V = { 1028, 5}, + .FRINTA_V = { 1033, 5}, + .FRINTI_V = { 1038, 5}, + .FRINTM_V = { 1043, 5}, + .FRINTN_V = { 1048, 5}, + .FRINTP_V = { 1053, 5}, + .FRINTX_V = { 1058, 5}, + .FRINTZ_V = { 1063, 5}, + .SCVTF_V = { 1068, 5}, + .UCVTF_V = { 1073, 5}, + .FCVTAS_V = { 1078, 5}, + .FCVTAU_V = { 1083, 5}, + .FCVTMS_V = { 1088, 5}, + .FCVTMU_V = { 1093, 5}, + .FCVTNS_V = { 1098, 5}, + .FCVTNU_V = { 1103, 5}, + .FCVTPS_V = { 1108, 5}, + .FCVTPU_V = { 1113, 5}, + .FCVTZS_V = { 1118, 5}, + .FCVTZU_V = { 1123, 5}, + .FCVTL = { 1128, 0}, + .FCVTL2 = { 1128, 0}, + .FCVTN = { 1128, 0}, + .FCVTN2 = { 1128, 0}, + .FCVTXN = { 1128, 0}, + .FCVTXN2 = { 1128, 0}, + .FCMEQ = { 1128, 5}, + .FCMGE = { 1133, 5}, + .FCMGT = { 1138, 5}, + .FCMLE = { 1143, 0}, + .FCMLT = { 1143, 0}, + .FACGE = { 1143, 5}, + .FACGT = { 1148, 5}, + .CMEQ = { 1153, 4}, + .CMGE = { 1157, 7}, + .CMGT = { 1164, 2}, + .CMHI = { 1166, 2}, + .CMHS = { 1168, 7}, + .CMLE = { 1175, 0}, + .CMLT = { 1175, 0}, + .CMTST = { 1175, 7}, + .AND_V = { 1182, 1}, + .ORR_V = { 1183, 1}, + .EOR_V = { 1184, 1}, + .BIC_V = { 1185, 1}, + .ORN_V = { 1186, 1}, + .MVN_V = { 1187, 0}, + .BIT = { 1187, 1}, + .BIF = { 1188, 1}, + .BSL = { 1189, 1}, + .SHL_V = { 1190, 0}, + .SQSHL_V = { 1190, 0}, + .SQSHLU = { 1190, 0}, + .SRSHL = { 1190, 7}, + .URSHL = { 1197, 7}, + .SSHR = { 1204, 0}, + .USHR = { 1204, 0}, + .SSRA = { 1204, 0}, + .USRA = { 1204, 0}, + .SRSHR = { 1204, 0}, + .URSHR = { 1204, 0}, + .SRSRA = { 1204, 0}, + .URSRA = { 1204, 0}, + .SSHL = { 1204, 7}, + .USHL = { 1211, 7}, + .SLI = { 1218, 0}, + .SRI = { 1218, 0}, + .SSHLL = { 1218, 0}, + .SSHLL2 = { 1218, 0}, + .USHLL = { 1218, 0}, + .USHLL2 = { 1218, 0}, + .SXTL = { 1218, 0}, + .SXTL2 = { 1218, 0}, + .UXTL = { 1218, 0}, + .UXTL2 = { 1218, 0}, + .SHRN = { 1218, 0}, + .SHRN2 = { 1218, 0}, + .RSHRN = { 1218, 0}, + .RSHRN2 = { 1218, 0}, + .SQSHRN = { 1218, 0}, + .SQSHRN2 = { 1218, 0}, + .UQSHRN = { 1218, 0}, + .UQSHRN2 = { 1218, 0}, + .SQRSHRN = { 1218, 0}, + .SQRSHRN2 = { 1218, 0}, + .UQRSHRN = { 1218, 0}, + .UQRSHRN2 = { 1218, 0}, + .SQSHRUN = { 1218, 0}, + .SQSHRUN2 = { 1218, 0}, + .SQRSHRUN = { 1218, 0}, + .SQRSHRUN2 = { 1218, 0}, + .DUP_V = { 1218, 0}, + .INS = { 1218, 0}, + .MOV_V = { 1218, 0}, + .EXT_V = { 1218, 0}, + .TBL = { 1218, 0}, + .TBX = { 1218, 0}, + .ZIP1 = { 1218, 0}, + .ZIP2 = { 1218, 0}, + .UZP1 = { 1218, 0}, + .UZP2 = { 1218, 0}, + .TRN1 = { 1218, 0}, + .TRN2 = { 1218, 0}, + .NOT_V = { 1218, 2}, + .RBIT_V = { 1220, 2}, + .REV16_V = { 1222, 2}, + .REV32_V = { 1224, 4}, + .REV64 = { 1228, 6}, + .CLS_V = { 1234, 6}, + .CLZ_V = { 1240, 6}, + .CNT = { 1246, 2}, + .URECPE_V = { 1248, 2}, + .URSQRTE_V = { 1250, 2}, + .MOVI = { 1252, 0}, + .MVNI = { 1252, 0}, + .FMOV_V_IMM = { 1252, 0}, + .LD1 = { 1252, 4}, + .LD2 = { 1256, 0}, + .LD3 = { 1256, 0}, + .LD4 = { 1256, 0}, + .ST1 = { 1256, 4}, + .ST2 = { 1260, 0}, + .ST3 = { 1260, 0}, + .ST4 = { 1260, 0}, + .LD1R = { 1260, 0}, + .LD2R = { 1260, 0}, + .LD3R = { 1260, 0}, + .LD4R = { 1260, 0}, + .LD1_LANE = { 1260, 0}, + .LD2_LANE = { 1260, 0}, + .LD3_LANE = { 1260, 0}, + .LD4_LANE = { 1260, 0}, + .ST1_LANE = { 1260, 0}, + .ST2_LANE = { 1260, 0}, + .ST3_LANE = { 1260, 0}, + .ST4_LANE = { 1260, 0}, + .LDR_V = { 1260, 5}, + .STR_V = { 1265, 5}, + .LDP_V = { 1270, 0}, + .STP_V = { 1270, 0}, + .LDUR_V = { 1270, 0}, + .STUR_V = { 1270, 0}, + .SVE_ADD_Z = { 1270, 4}, + .SVE_SUB_Z = { 1274, 4}, + .SVE_SQADD_Z = { 1278, 4}, + .SVE_UQADD_Z = { 1282, 4}, + .SVE_SQSUB_Z = { 1286, 4}, + .SVE_UQSUB_Z = { 1290, 4}, + .SVE_ADD_PRED = { 1294, 4}, + .SVE_SUB_PRED = { 1298, 4}, + .SVE_SUBR_PRED = { 1302, 4}, + .SVE_MUL_PRED = { 1306, 4}, + .SVE_SMULH_PRED = { 1310, 4}, + .SVE_UMULH_PRED = { 1314, 4}, + .SVE_SDIV_PRED = { 1318, 2}, + .SVE_UDIV_PRED = { 1320, 2}, + .SVE_SMAX_PRED = { 1322, 4}, + .SVE_UMAX_PRED = { 1326, 4}, + .SVE_SMIN_PRED = { 1330, 4}, + .SVE_UMIN_PRED = { 1334, 4}, + .SVE_SABD_PRED = { 1338, 4}, + .SVE_UABD_PRED = { 1342, 4}, + .SVE_AND_PRED = { 1346, 1}, + .SVE_ORR_PRED = { 1347, 1}, + .SVE_EOR_PRED = { 1348, 1}, + .SVE_BIC_PRED = { 1349, 1}, + .SVE_ASR_PRED = { 1350, 4}, + .SVE_LSL_PRED = { 1354, 4}, + .SVE_LSR_PRED = { 1358, 4}, + .SVE_ASRR_PRED = { 1362, 0}, + .SVE_LSLR_PRED = { 1362, 0}, + .SVE_LSRR_PRED = { 1362, 0}, + .SVE_ABS_PRED = { 1362, 4}, + .SVE_NEG_PRED = { 1366, 4}, + .SVE_CLS_PRED = { 1370, 4}, + .SVE_CLZ_PRED = { 1374, 4}, + .SVE_CNT_PRED = { 1378, 4}, + .SVE_MOV_PRED = { 1382, 0}, + .SVE_FADD_Z = { 1382, 3}, + .SVE_FSUB_Z = { 1385, 3}, + .SVE_FMUL_Z = { 1388, 3}, + .SVE_FRECPS = { 1391, 3}, + .SVE_FRSQRTS = { 1394, 3}, + .SVE_FTSMUL = { 1397, 3}, + .SVE_FADD_PRED = { 1400, 3}, + .SVE_FSUB_PRED = { 1403, 3}, + .SVE_FSUBR_PRED = { 1406, 0}, + .SVE_FMUL_PRED = { 1406, 3}, + .SVE_FDIV_PRED = { 1409, 3}, + .SVE_FDIVR_PRED = { 1412, 0}, + .SVE_FMAX_PRED = { 1412, 3}, + .SVE_FMIN_PRED = { 1415, 3}, + .SVE_FMAXNM_PRED = { 1418, 3}, + .SVE_FMINNM_PRED = { 1421, 3}, + .SVE_FABS_Z = { 1424, 3}, + .SVE_FNEG_Z = { 1427, 3}, + .SVE_FSQRT_Z = { 1430, 3}, + .SVE_FRECPX_Z = { 1433, 0}, + .SVE_FRINTN = { 1433, 0}, + .SVE_FRINTP = { 1433, 0}, + .SVE_FRINTM = { 1433, 0}, + .SVE_FRINTZ = { 1433, 0}, + .SVE_FRINTA = { 1433, 0}, + .SVE_FRINTX = { 1433, 0}, + .SVE_FRINTI = { 1433, 0}, + .SVE_FMLA = { 1433, 3}, + .SVE_FMLS = { 1436, 3}, + .SVE_FNMLA = { 1439, 3}, + .SVE_FNMLS = { 1442, 3}, + .SVE_AND_P = { 1445, 1}, + .SVE_BIC_P = { 1446, 1}, + .SVE_ORR_P = { 1447, 1}, + .SVE_EOR_P = { 1448, 1}, + .SVE_NAND_P = { 1449, 1}, + .SVE_NOR_P = { 1450, 1}, + .SVE_ORN_P = { 1451, 1}, + .SVE_SEL_P = { 1452, 1}, + .SVE_ANDS_P = { 1453, 1}, + .SVE_BICS_P = { 1454, 1}, + .SVE_ORRS_P = { 1455, 1}, + .SVE_EORS_P = { 1456, 1}, + .SVE_NANDS_P = { 1457, 0}, + .SVE_NORS_P = { 1457, 0}, + .SVE_ORNS_P = { 1457, 0}, + .SVE_NOT_P = { 1457, 0}, + .SVE_MOV_P = { 1457, 0}, + .SVE_MOVS_P = { 1457, 0}, + .SVE_PTRUE = { 1457, 1}, + .SVE_PTRUES = { 1458, 1}, + .SVE_PFALSE = { 1459, 1}, + .SVE_PFIRST = { 1460, 1}, + .SVE_PNEXT = { 1461, 1}, + .SVE_BRKA = { 1462, 0}, + .SVE_BRKB = { 1462, 0}, + .SVE_BRKAS = { 1462, 0}, + .SVE_BRKBS = { 1462, 0}, + .SVE_BRKPA = { 1462, 0}, + .SVE_BRKPB = { 1462, 0}, + .SVE_BRKN = { 1462, 0}, + .SVE_RDFFR = { 1462, 0}, + .SVE_WRFFR = { 1462, 0}, + .SVE_SETFFR = { 1462, 0}, + .SVE_CMPEQ = { 1462, 4}, + .SVE_CMPNE = { 1466, 4}, + .SVE_CMPGE = { 1470, 4}, + .SVE_CMPGT = { 1474, 4}, + .SVE_CMPLE = { 1478, 0}, + .SVE_CMPLT = { 1478, 0}, + .SVE_CMPHI = { 1478, 4}, + .SVE_CMPHS = { 1482, 4}, + .SVE_CMPLO = { 1486, 0}, + .SVE_CMPLS = { 1486, 0}, + .SVE_FCMEQ = { 1486, 0}, + .SVE_FCMNE = { 1486, 0}, + .SVE_FCMGE = { 1486, 0}, + .SVE_FCMGT = { 1486, 0}, + .SVE_FCMLE = { 1486, 0}, + .SVE_FCMLT = { 1486, 0}, + .SVE_FCMUO = { 1486, 0}, + .SVE_DUP_Z = { 1486, 4}, + .SVE_INSR = { 1490, 0}, + .SVE_REV_Z = { 1490, 4}, + .SVE_REV_P = { 1494, 1}, + .SVE_TBL = { 1495, 4}, + .SVE_ZIP1_Z = { 1499, 4}, + .SVE_ZIP2_Z = { 1503, 4}, + .SVE_UZP1_Z = { 1507, 4}, + .SVE_UZP2_Z = { 1511, 4}, + .SVE_TRN1_Z = { 1515, 4}, + .SVE_TRN2_Z = { 1519, 4}, + .SVE_ZIP1_P = { 1523, 1}, + .SVE_ZIP2_P = { 1524, 1}, + .SVE_UZP1_P = { 1525, 1}, + .SVE_UZP2_P = { 1526, 1}, + .SVE_TRN1_P = { 1527, 1}, + .SVE_TRN2_P = { 1528, 1}, + .SVE_CPY_Z = { 1529, 0}, + .SVE_COMPACT = { 1529, 0}, + .SVE_EXT_Z = { 1529, 0}, + .SVE_LD1B = { 1529, 1}, + .SVE_LD1H = { 1530, 1}, + .SVE_LD1W = { 1531, 1}, + .SVE_LD1D = { 1532, 1}, + .SVE_LD1SB = { 1533, 1}, + .SVE_LD1SH = { 1534, 1}, + .SVE_LD1SW = { 1535, 1}, + .SVE_ST1B = { 1536, 1}, + .SVE_ST1H = { 1537, 1}, + .SVE_ST1W = { 1538, 1}, + .SVE_ST1D = { 1539, 1}, + .SVE_LDR_Z = { 1540, 1}, + .SVE_STR_Z = { 1541, 1}, + .SVE_LDR_P = { 1542, 1}, + .SVE_STR_P = { 1543, 1}, + .SVE_LDFF1B = { 1544, 1}, + .SVE_LDFF1H = { 1545, 1}, + .SVE_LDFF1W = { 1546, 1}, + .SVE_LDFF1D = { 1547, 1}, + .SVE_WHILEGE = { 1548, 1}, + .SVE_WHILEGT = { 1549, 1}, + .SVE_WHILELE = { 1550, 1}, + .SVE_WHILELT = { 1551, 1}, + .SVE_WHILEHI = { 1552, 1}, + .SVE_WHILEHS = { 1553, 1}, + .SVE_WHILELO = { 1554, 1}, + .SVE_WHILELS = { 1555, 1}, + .SVE_SQRDMLAH = { 1556, 4}, + .SVE_SQRDMLSH = { 1560, 4}, + .SVE_ADCLB = { 1564, 2}, + .SVE_ADCLT = { 1566, 2}, + .SVE_SBCLB = { 1568, 2}, + .SVE_SBCLT = { 1570, 2}, + .SVE_TBL2 = { 1572, 1}, + .SVE_TBX = { 1573, 1}, + .SVE_AESE = { 1574, 1}, + .SVE_AESD = { 1575, 1}, + .SVE_AESMC = { 1576, 1}, + .SVE_AESIMC = { 1577, 1}, + .SVE_BCAX_Z = { 1578, 0}, + .SVE_XAR_Z = { 1578, 0}, + .SVE_EOR3_Z = { 1578, 0}, + .SVE_MATCH = { 1578, 2}, + .SVE_NMATCH = { 1580, 2}, + .SVE_HISTCNT = { 1582, 2}, + .SVE_HISTSEG = { 1584, 1}, + .SME_SMSTART = { 1585, 1}, + .SME_SMSTOP = { 1586, 1}, + .SME_RDSVL = { 1587, 1}, + .SME_ADDHA = { 1588, 0}, + .SME_ADDVA = { 1588, 0}, + .SME_ZERO = { 1588, 1}, + .SME_FMOPA = { 1589, 1}, + .SME_FMOPS = { 1590, 1}, + .SME_BFMOPA = { 1591, 1}, + .SME_BFMOPS = { 1592, 1}, + .SME_SMOPA = { 1593, 2}, + .SME_SMOPS = { 1595, 2}, + .SME_UMOPA = { 1597, 2}, + .SME_UMOPS = { 1599, 2}, + .SME_USMOPA = { 1601, 1}, + .SME_SUMOPA = { 1602, 1}, + .SME_MOVA_TO_Z = { 1603, 0}, + .SME_MOVA_TO_ZA = { 1603, 0}, + .SME_LD1B_ZA = { 1603, 0}, + .SME_LD1H_ZA = { 1603, 0}, + .SME_LD1W_ZA = { 1603, 0}, + .SME_LD1D_ZA = { 1603, 0}, + .SME_LD1Q_ZA = { 1603, 0}, + .SME_ST1B_ZA = { 1603, 0}, + .SME_ST1H_ZA = { 1603, 0}, + .SME_ST1W_ZA = { 1603, 0}, + .SME_ST1D_ZA = { 1603, 0}, + .SME_ST1Q_ZA = { 1603, 0}, + .SME_LDR_ZA = { 1603, 1}, + .SME_STR_ZA = { 1604, 1}, + .SVE_FMLA_IDX_H = { 1605, 1}, + .SVE_FMLA_IDX_S = { 1606, 1}, + .SVE_FMLA_IDX_D = { 1607, 1}, + .SVE_FMLS_IDX_H = { 1608, 1}, + .SVE_FMLS_IDX_S = { 1609, 1}, + .SVE_FMLS_IDX_D = { 1610, 1}, + .SVE_LD1B_GATHER_S = { 1611, 1}, + .SVE_LD1B_GATHER_D = { 1612, 1}, + .SVE_LD1H_GATHER_S = { 1613, 1}, + .SVE_LD1H_GATHER_D = { 1614, 1}, + .SVE_LD1W_GATHER_S = { 1615, 1}, + .SVE_LD1W_GATHER_D = { 1616, 1}, + .SVE_LD1D_GATHER_D = { 1617, 1}, + .SVE_LD1SB_GATHER_S = { 1618, 1}, + .SVE_LD1SB_GATHER_D = { 1619, 1}, + .SVE_LD1SH_GATHER_S = { 1620, 1}, + .SVE_LD1SH_GATHER_D = { 1621, 1}, + .SVE_LD1SW_GATHER_D = { 1622, 1}, + .SVE_ST1B_SCATTER_S = { 1623, 1}, + .SVE_ST1B_SCATTER_D = { 1624, 1}, + .SVE_ST1H_SCATTER_S = { 1625, 1}, + .SVE_ST1H_SCATTER_D = { 1626, 1}, + .SVE_ST1W_SCATTER_S = { 1627, 1}, + .SVE_ST1W_SCATTER_D = { 1628, 1}, + .SVE_ST1D_SCATTER_D = { 1629, 1}, + .SME_LD1B_TILE = { 1630, 1}, + .SME_LD1H_TILE = { 1631, 1}, + .SME_LD1W_TILE = { 1632, 1}, + .SME_LD1D_TILE = { 1633, 1}, + .SME_LD1Q_TILE = { 1634, 1}, + .SME_ST1B_TILE = { 1635, 1}, + .SME_ST1H_TILE = { 1636, 1}, + .SME_ST1W_TILE = { 1637, 1}, + .SME_ST1D_TILE = { 1638, 1}, + .SME_ST1Q_TILE = { 1639, 1}, + .SME_MOVA_Z_FROM_TILE = { 1640, 1}, + .SME_MOVA_TILE_FROM_Z = { 1641, 1}, + .FCMLA_4H = { 1642, 1}, + .FCMLA_8H = { 1643, 1}, + .FCMLA_4S = { 1644, 1}, + .FCMLA_2D = { 1645, 1}, + .FCADD_4H = { 1646, 1}, + .FCADD_8H = { 1647, 1}, + .FCADD_4S = { 1648, 1}, + .FCADD_2D = { 1649, 1}, + .SVE_PRFB = { 1650, 1}, + .SVE_PRFH = { 1651, 1}, + .SVE_PRFW = { 1652, 1}, + .SVE_PRFD = { 1653, 1}, + .SVE_LDNT1B = { 1654, 1}, + .SVE_LDNT1H = { 1655, 1}, + .SVE_LDNT1W = { 1656, 1}, + .SVE_LDNT1D = { 1657, 1}, + .SVE_STNT1B = { 1658, 1}, + .SVE_STNT1H = { 1659, 1}, + .SVE_STNT1W = { 1660, 1}, + .SVE_STNT1D = { 1661, 1}, + .SVE_EXT = { 1662, 1}, + .SVE_SPLICE = { 1663, 1}, + .SVE_INDEX_II = { 1664, 1}, + .SVE_INDEX_IR = { 1665, 1}, + .SVE_INDEX_RI = { 1666, 1}, + .SVE_INDEX_RR = { 1667, 1}, + .SVE_BSL = { 1668, 1}, + .SVE_BSL1N = { 1669, 1}, + .SVE_BSL2N = { 1670, 1}, + .SVE_NBSL = { 1671, 1}, + .SVE_PMUL_VEC = { 1672, 1}, + .SVE_PMULLB = { 1673, 1}, + .SVE_PMULLT = { 1674, 1}, + .SVE_BFCVT = { 1675, 1}, + .SVE_BFCVTNT = { 1676, 1}, + .LDRAA = { 1677, 1}, + .LDRAB = { 1678, 1}, + .LDRAA_PRE = { 1679, 1}, + .LDRAB_PRE = { 1680, 1}, + .TSTART = { 1681, 1}, + .TCOMMIT = { 1682, 1}, + .TCANCEL = { 1683, 1}, + .TTEST = { 1684, 1}, + .WFET = { 1685, 1}, + .WFIT = { 1686, 1}, + .BC_COND = { 1687, 1}, + .UXTB = { 1688, 1}, + .UXTH = { 1689, 1}, + .UXTW = { 1690, 1}, + .SXTB = { 1691, 1}, + .SXTH = { 1692, 1}, + .SXTW = { 1693, 1}, + .ADC = { 1694, 2}, + .ADCS = { 1696, 2}, + .SBC = { 1698, 2}, + .SBCS = { 1700, 2}, + .NGC = { 1702, 2}, + .NGCS = { 1704, 2}, + .LDAPUR = { 1706, 2}, + .STLUR = { 1708, 2}, + .LDAPURB = { 1710, 1}, + .STLURB = { 1711, 1}, + .LDAPURH = { 1712, 1}, + .STLURH = { 1713, 1}, + .LDAPURSB = { 1714, 2}, + .LDAPURSH = { 1716, 2}, + .LDAPURSW = { 1718, 1}, + .SVE_BFADD = { 1719, 1}, + .SVE_BFSUB = { 1720, 1}, + .SVE_BFMUL = { 1721, 1}, + .SVE_BFMLA = { 1722, 1}, + .SVE_BFMLS = { 1723, 1}, + .SB = { 1724, 1}, + .CSDB = { 1725, 1}, + .DGH = { 1726, 1}, + .PSB_CSYNC = { 1727, 1}, + .TSB_CSYNC = { 1728, 1}, + .BTI_J = { 1729, 1}, + .BTI_C = { 1730, 1}, + .BTI_JC = { 1731, 1}, + .MOV_V_ALIAS = { 1732, 2}, + .NOT_V_ALIAS = { 1734, 2}, + .LSL_IMM = { 1736, 2}, + .LSR_IMM = { 1738, 2}, + .ASR_IMM = { 1740, 2}, + .ROR_IMM = { 1742, 2}, + .SVE_BFADD_UNPRED = { 1744, 1}, + .SVE_BFSUB_UNPRED = { 1745, 1}, + .SVE_BFMUL_UNPRED = { 1746, 1}, + .SVE_BFCLAMP = { 1747, 1}, + .SVE_BFMAXNM = { 1748, 1}, + .SVE_BFMINNM = { 1749, 1}, + .SME2_LUTI2_B = { 1750, 1}, + .SME2_LUTI4_B = { 1751, 1}, + .SME2_LD1B_X2 = { 1752, 1}, + .SME2_LD1H_X2 = { 1753, 1}, + .SME2_LD1W_X2 = { 1754, 1}, + .SME2_LD1D_X2 = { 1755, 1}, + .SME2_LD1B_X4 = { 1756, 1}, + .SME2_LD1H_X4 = { 1757, 1}, + .SME2_LD1W_X4 = { 1758, 1}, + .SME2_LD1D_X4 = { 1759, 1}, + .SME2_ST1B_X2 = { 1760, 1}, + .SME2_ST1H_X2 = { 1761, 1}, + .SME2_ST1W_X2 = { 1762, 1}, + .SME2_ST1D_X2 = { 1763, 1}, + .SME2_ST1B_X4 = { 1764, 1}, + .SME2_ST1H_X4 = { 1765, 1}, + .SME2_ST1W_X4 = { 1766, 1}, + .SME2_ST1D_X4 = { 1767, 1}, + .SME2_ZIP_3 = { 1768, 1}, + .SME2_ZIP_4 = { 1769, 1}, + .SME2_UZP_3 = { 1770, 1}, + .SME2_UZP_4 = { 1771, 1}, + .TLBI_RPALOS = { 1772, 1}, + .TLBI_RPAOS = { 1773, 1}, + .AT_S1E1A = { 1774, 1}, + .DC_CIPAPA = { 1775, 1}, + .DC_CIGDPAPA = { 1776, 1}, + .TLBI_PAALL = { 1777, 1}, + .TLBI_PAALLOS = { 1778, 1}, + .AMX_LDX = { 1779, 1}, + .AMX_LDY = { 1780, 1}, + .AMX_STX = { 1781, 1}, + .AMX_STY = { 1782, 1}, + .AMX_LDZ = { 1783, 1}, + .AMX_STZ = { 1784, 1}, + .AMX_LDZI = { 1785, 1}, + .AMX_STZI = { 1786, 1}, + .AMX_EXTRX = { 1787, 1}, + .AMX_EXTRY = { 1788, 1}, + .AMX_FMA64 = { 1789, 1}, + .AMX_FMS64 = { 1790, 1}, + .AMX_FMA32 = { 1791, 1}, + .AMX_FMS32 = { 1792, 1}, + .AMX_MAC16 = { 1793, 1}, + .AMX_FMA16 = { 1794, 1}, + .AMX_FMS16 = { 1795, 1}, + .AMX_SET = { 1796, 1}, + .AMX_CLR = { 1797, 1}, + .AMX_VECINT = { 1798, 1}, + .AMX_VECFP = { 1799, 1}, + .AMX_MATINT = { 1800, 1}, + .AMX_MATFP = { 1801, 1}, + .AMX_GENLUT = { 1802, 1}, + .CPYP = { 1803, 1}, + .CPYM = { 1804, 1}, + .CPYE = { 1805, 1}, + .CPYFP = { 1806, 1}, + .CPYFM = { 1807, 1}, + .CPYFE = { 1808, 1}, + .SETP = { 1809, 1}, + .SETM = { 1810, 1}, + .SETE = { 1811, 1}, + .DC_IVAC = { 1812, 1}, + .DC_ISW = { 1813, 1}, + .DC_CSW = { 1814, 1}, + .DC_CISW = { 1815, 1}, + .DC_ZVA = { 1816, 1}, + .DC_CVAC = { 1817, 1}, + .DC_CVAU = { 1818, 1}, + .DC_CIVAC = { 1819, 1}, + .IC_IALLUIS = { 1820, 1}, + .IC_IALLU = { 1821, 1}, + .IC_IVAU = { 1822, 1}, + .AT_S1E1R = { 1823, 1}, + .AT_S1E1W = { 1824, 1}, + .AT_S1E0R = { 1825, 1}, + .AT_S1E0W = { 1826, 1}, + .AT_S1E2R = { 1827, 1}, + .AT_S1E2W = { 1828, 1}, + .AT_S1E3R = { 1829, 1}, + .AT_S1E3W = { 1830, 1}, + .AT_S12E1R = { 1831, 1}, + .AT_S12E1W = { 1832, 1}, + .AT_S12E0R = { 1833, 1}, + .AT_S12E0W = { 1834, 1}, + .TLBI_VMALLE1 = { 1835, 1}, + .TLBI_VMALLE1IS = { 1836, 1}, + .TLBI_VAE1 = { 1837, 1}, + .TLBI_VAE1IS = { 1838, 1}, + .TLBI_ASIDE1 = { 1839, 1}, + .TLBI_ASIDE1IS = { 1840, 1}, + .TLBI_VAAE1 = { 1841, 1}, + .TLBI_VAAE1IS = { 1842, 1}, + .TLBI_VALE1 = { 1843, 1}, + .TLBI_VALE1IS = { 1844, 1}, + .TLBI_VAALE1 = { 1845, 1}, + .TLBI_VAALE1IS = { 1846, 1}, + .TLBI_ALLE1 = { 1847, 1}, + .TLBI_ALLE1IS = { 1848, 1}, + .TLBI_ALLE2 = { 1849, 1}, + .TLBI_ALLE2IS = { 1850, 1}, + .TLBI_ALLE3 = { 1851, 1}, + .TLBI_ALLE3IS = { 1852, 1}, + .PRFM = { 1853, 1}, + .PRFUM = { 1854, 1}, + .PRFM_LIT = { 1855, 1}, + .MOV_REG = { 1856, 2}, + .MOV_BITMASK = { 1858, 2}, + .MVN = { 1860, 2}, + .NEG_SR = { 1862, 2}, + .NEGS = { 1864, 2}, + .CMP_SR = { 1866, 2}, + .CMP_ER = { 1868, 2}, + .CMP_IMM = { 1870, 2}, + .CMN_SR = { 1872, 2}, + .CMN_ER = { 1874, 2}, + .CMN_IMM = { 1876, 2}, + .TST_SR = { 1878, 2}, } diff --git a/core/rexcode/arm64/tablegen/specgen.lua b/core/rexcode/arm64/tablegen/specgen.lua index b1dc7ea56..232f1c091 100644 --- a/core/rexcode/arm64/tablegen/specgen.lua +++ b/core/rexcode/arm64/tablegen/specgen.lua @@ -102,6 +102,7 @@ local UNIFORM = { {"SSHL","sshl"},{"USHL","ushl"},{"SRSHL","srshl"},{"URSHL","urshl"}, }}, { title="two-register misc", enc=VD_VN, nreg=2, items={ + {"ABS_V","abs"},{"NEG_V","neg"}, {"NOT_V","not"},{"RBIT_V","rbit"}, {"REV16_V","rev16"},{"REV32_V","rev32"},{"REV64","rev64"}, {"CLS_V","cls"},{"CLZ_V","clz"},{"CNT","cnt"}, @@ -121,6 +122,11 @@ local UNIFORM = { {"FRINTP_V","frintp"},{"FRINTX_V","frintx"},{"FRINTZ_V","frintz"}, {"FRECPE","frecpe"},{"FRSQRTE","frsqrte"}, }}, + { title="floating-point convert (vector, register form)", enc=VD_VN, nreg=2, arr={"2S","4S","2D","4HF","8HF"}, items={ + {"FCVTAS_V","fcvtas"},{"FCVTAU_V","fcvtau"},{"FCVTMS_V","fcvtms"},{"FCVTMU_V","fcvtmu"}, + {"FCVTNS_V","fcvtns"},{"FCVTNU_V","fcvtnu"},{"FCVTPS_V","fcvtps"},{"FCVTPU_V","fcvtpu"}, + {"FCVTZS_V","fcvtzs"},{"FCVTZU_V","fcvtzu"},{"SCVTF_V","scvtf"},{"UCVTF_V","ucvtf"}, + }}, } for _, fam in ipairs(UNIFORM) do local blk = {} diff --git a/core/rexcode/arm64/tables/arm64.encode_forms.bin b/core/rexcode/arm64/tables/arm64.encode_forms.bin index a638c8416a7bc0a7713692006ca2b975eac50b1d..a75956307b87e519a805596a7e4249e04d045369 100644 GIT binary patch delta 1503 zcmbO+i|N5qrVSUg>L)Pr^D{6gt1vJy>`>5S`1Aii6T<{X0RaY>SRPDFP!J}Tpa&BZ z5@LX=OMt5r7KVu}(1WQH5n+I;TL4!lCdR;^To1PR0aS1zvSaulnkOPV#t$Zj-@LIN%ZR>#i3k8Fn?#5w#BJHUZ+LlGJ{{K%HT#gHrkYX%vJ zWC>UuJA(kik`pkG2tX_W`S}FQBLWCJP9*x(LtG=k1h?b_%qIc}pPZK z7zB|m0XqgH1`n+hiEuF_JHUF`83gN*EdeWJXAnYIvIFK5A%rD6U_KE-_+$qxN`w#| z*#Yy25W7hSEde_QBnJ1%4wz4bku3r1WoHmZwgjw~ok0X@ z2?GPe3YbSk5O%Ck^kb+8=SC5PPgcNuB7(4F1l7-;(0TM%4@(?bDu;V9K zFUUM-09&7Ede_QB!*-OTnxz)uwIaPP)k5|fYq@xNFeOk z0rE&as4$d3Sh54=6A46=?11@10ud!UU_OyRgw_t2MxSTj3=B(f!Wn}dRmSpfidg@TR% delta 19 bcmaE`lxfB+rVSUgHowsBP~WT&ali@yUvLQk diff --git a/core/rexcode/arm64/tables/arm64.encode_runs.bin b/core/rexcode/arm64/tables/arm64.encode_runs.bin index 2e3252c1ef88e442c5a5da05415c3c0fba9e2830..70ea03ce5ba744e7598661d9478d58792a52581b 100644 GIT binary patch literal 8960 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 F0|0fUSIhta literal 8960 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 diff --git a/core/rexcode/arm64/tables/arm64.entries.bin b/core/rexcode/arm64/tables/arm64.entries.bin index bb02f919cb91e8d19a2cea95031af71b3ef9b352..25c9e302aacf7476c7bee89de45f864a2a5ba0c8 100644 GIT binary patch delta 8537 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 DCgs^* diff --git a/core/rexcode/arm64/tables/arm64.idx_op0.bin b/core/rexcode/arm64/tables/arm64.idx_op0.bin index 58728c8e2b3f8c9846dca3aa3f253e9ea3fa7045..5707ff7443678d142021f4905b5bec971e79e950 100644 GIT binary patch delta 39 vcmZ>8m>{Rb${fflz>vtQ#L&!|#PF0=l;IcaG=>Rm5ezTbcp1L3r7{2jr7;N( delta 39 vcmZ>8m>{RLn~9xOfI*y9iNTUJiD5RYD8mNUX$)>`5e)O#co|l+r7{2jlbi>0