From 33e5202f0541ebb3d48d99e93e35c449e7d52e9f Mon Sep 17 00:00:00 2001 From: Brendan Punsky Date: Thu, 18 Jun 2026 00:21:43 -0400 Subject: [PATCH] rexcode/arm64: single-structure lane load/store (LD1-4_LANE / ST1-4_LANE) All eight LD#_LANE / ST#_LANE mnemonics across .B/.H/.S/.D (32 forms). New NEON_LANE_B/H/S/D encodings split the lane index across Q (bit 30), S (bit 12) and size (bits 11:10) per element size; the list length and load/store bit are fixed in the entry bits. All 11 representative forms (every element size, structure count, and lane extremes) byte-exact vs llvm-mc and decode-clean; 461 tests green. --- core/rexcode/arm64/decoder.odin | 11 + core/rexcode/arm64/encoder.odin | 13 + core/rexcode/arm64/encoding_types.odin | 9 + core/rexcode/arm64/mnemonic_builders.odin | 32 + .../arm64/tablegen/encoding_table.odin | 52 + .../tablegen/generated/decode_tables.odin | 654 ++++++------ .../tablegen/generated/encode_tables.odin | 990 +++++++++--------- .../arm64/tables/arm64.encode_forms.bin | Bin 48080 -> 48720 bytes .../arm64/tables/arm64.encode_runs.bin | Bin 8960 -> 8960 bytes core/rexcode/arm64/tables/arm64.entries.bin | Bin 48120 -> 48760 bytes core/rexcode/arm64/tables/arm64.idx_op0.bin | Bin 64 -> 64 bytes 11 files changed, 975 insertions(+), 786 deletions(-) diff --git a/core/rexcode/arm64/decoder.odin b/core/rexcode/arm64/decoder.odin index 929cbb76f..9a3771b96 100644 --- a/core/rexcode/arm64/decoder.odin +++ b/core/rexcode/arm64/decoder.odin @@ -252,6 +252,17 @@ extract_operand_inline :: #force_inline proc "contextless" ( return Operand{immediate = i64(v), kind = .IMMEDIATE, size = 1} case .ZA_TILE_LOW: return Operand{immediate = i64(word & 0x7), kind = .IMMEDIATE, size = 1} + case .NEON_LANE_B: + i := ((word >> 30) & 0x1) << 3 | ((word >> 12) & 0x1) << 2 | ((word >> 10) & 0x3) + return Operand{immediate = i64(i), kind = .IMMEDIATE, size = 1} + case .NEON_LANE_H: + i := ((word >> 30) & 0x1) << 2 | ((word >> 12) & 0x1) << 1 | ((word >> 11) & 0x1) + return Operand{immediate = i64(i), kind = .IMMEDIATE, size = 1} + case .NEON_LANE_S: + i := ((word >> 30) & 0x1) << 1 | ((word >> 12) & 0x1) + return Operand{immediate = i64(i), kind = .IMMEDIATE, size = 1} + case .NEON_LANE_D: + return Operand{immediate = i64((word >> 30) & 0x1), kind = .IMMEDIATE, size = 1} // ---- Memory operand variants ------------------------------------------ case .OFFSET_BASE_U12: diff --git a/core/rexcode/arm64/encoder.odin b/core/rexcode/arm64/encoder.odin index 16aa705d8..b2bf567f9 100644 --- a/core/rexcode/arm64/encoder.odin +++ b/core/rexcode/arm64/encoder.odin @@ -506,6 +506,19 @@ pack_operand_inline :: #force_inline proc( case .ZA_TILE_LOW: return (u32(op.immediate) & 0x7) << 0 + // NEON single-structure lane index (Q at 30, S at 12, size at 11:10). + case .NEON_LANE_B: + i := u32(op.immediate) + return ((i >> 3) & 0x1) << 30 | ((i >> 2) & 0x1) << 12 | (i & 0x3) << 10 + case .NEON_LANE_H: + i := u32(op.immediate) + return ((i >> 2) & 0x1) << 30 | ((i >> 1) & 0x1) << 12 | (i & 0x1) << 11 + case .NEON_LANE_S: + i := u32(op.immediate) + return ((i >> 1) & 0x1) << 30 | (i & 0x1) << 12 + case .NEON_LANE_D: + return (u32(op.immediate) & 0x1) << 30 + // NEON MOVI/FMOV immediate split: abc at bits 18-16, defgh at bits 9-5. case .NEON_IMM8_FMOV: v := u32(op.immediate) & 0xFF diff --git a/core/rexcode/arm64/encoding_types.odin b/core/rexcode/arm64/encoding_types.odin index 461d7079b..a3c0160b6 100644 --- a/core/rexcode/arm64/encoding_types.odin +++ b/core/rexcode/arm64/encoding_types.odin @@ -265,6 +265,15 @@ Operand_Encoding :: enum u8 { SVE_EXT_IMM, // SVE EXT byte index: imm8h at 20:16, imm8l at 12:10 ZA_TILE_LOW, // SME ZA accumulator tile number at bits 2:0 (ADDHA/ADDVA) + // ---- NEON single-structure lane index (LD1..4_LANE / ST1..4_LANE) ---- + // The lane index is split across Q (bit 30), S (bit 12) and size (bits + // 11:10) in an element-size-dependent way; the structure-size/count opcode + // bits stay fixed in the entry `bits`. + NEON_LANE_B, // .B[i]: Q<<3 | S<<2 | size (i in 0..15) + NEON_LANE_H, // .H[i]: Q<<2 | S<<1 | bit11 (i in 0..7) + NEON_LANE_S, // .S[i]: Q<<1 | S (i in 0..3) + NEON_LANE_D, // .D[i]: Q (i in 0..1) + // ---- LSE atomics ------------------------------------------------------ ATOMIC_RS, // Rs (source / compare) at bits 16-20 ATOMIC_RT, // Rt (target) at bits 0-4 diff --git a/core/rexcode/arm64/mnemonic_builders.odin b/core/rexcode/arm64/mnemonic_builders.odin index cca63d2db..d729989ae 100644 --- a/core/rexcode/arm64/mnemonic_builders.odin +++ b/core/rexcode/arm64/mnemonic_builders.odin @@ -1309,6 +1309,22 @@ inst_ld3r_r_m :: #force_inline proc "contextless" (dst: Regist emit_ld3r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld3r_r_m(dst, mem)) } inst_ld4r_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD4R, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } emit_ld4r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld4r_r_m(dst, mem)) } +inst_ld1_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } +emit_ld1_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld1_lane_r_i_m(dst, imm, mem)) } +inst_ld2_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD2_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } +emit_ld2_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld2_lane_r_i_m(dst, imm, mem)) } +inst_ld3_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD3_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } +emit_ld3_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld3_lane_r_i_m(dst, imm, mem)) } +inst_ld4_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD4_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } +emit_ld4_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld4_lane_r_i_m(dst, imm, mem)) } +inst_st1_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } +emit_st1_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st1_lane_r_i_m(dst, imm, mem)) } +inst_st2_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST2_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } +emit_st2_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st2_lane_r_i_m(dst, imm, mem)) } +inst_st3_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST3_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } +emit_st3_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st3_lane_r_i_m(dst, imm, mem)) } +inst_st4_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST4_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } +emit_st4_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st4_lane_r_i_m(dst, imm, mem)) } inst_ldr_v_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDR_V, dst, mem) } emit_ldr_v_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldr_v_r_m(dst, mem)) } inst_str_v_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STR_V, dst, mem) } @@ -3504,6 +3520,22 @@ inst_ld3r :: inst_ld3r_r_m emit_ld3r :: emit_ld3r_r_m inst_ld4r :: inst_ld4r_r_m emit_ld4r :: emit_ld4r_r_m +inst_ld1_lane :: inst_ld1_lane_r_i_m +emit_ld1_lane :: emit_ld1_lane_r_i_m +inst_ld2_lane :: inst_ld2_lane_r_i_m +emit_ld2_lane :: emit_ld2_lane_r_i_m +inst_ld3_lane :: inst_ld3_lane_r_i_m +emit_ld3_lane :: emit_ld3_lane_r_i_m +inst_ld4_lane :: inst_ld4_lane_r_i_m +emit_ld4_lane :: emit_ld4_lane_r_i_m +inst_st1_lane :: inst_st1_lane_r_i_m +emit_st1_lane :: emit_st1_lane_r_i_m +inst_st2_lane :: inst_st2_lane_r_i_m +emit_st2_lane :: emit_st2_lane_r_i_m +inst_st3_lane :: inst_st3_lane_r_i_m +emit_st3_lane :: emit_st3_lane_r_i_m +inst_st4_lane :: inst_st4_lane_r_i_m +emit_st4_lane :: emit_st4_lane_r_i_m inst_ldr_v :: inst_ldr_v_r_m emit_ldr_v :: emit_ldr_v_r_m inst_str_v :: inst_str_v_r_m diff --git a/core/rexcode/arm64/tablegen/encoding_table.odin b/core/rexcode/arm64/tablegen/encoding_table.odin index 5c39efc5c..dd950715f 100644 --- a/core/rexcode/arm64/tablegen/encoding_table.odin +++ b/core/rexcode/arm64/tablegen/encoding_table.odin @@ -1406,6 +1406,58 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ .LD3R = { {.LD3R, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4D40E000, 0xFFFFFC00, .NEON, {}} }, .LD4R = { {.LD4R, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4D60E000, 0xFFFFFC00, .NEON, {}} }, + // Single-structure (one lane) load/store: LD#_LANE / ST#_LANE. The lane + // index is split across Q (30), S (12) and size (11:10) per element size; + // the list length + load/store bit are fixed in the bits. + .LD1_LANE = { + {.LD1_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D400000, 0xBFFFE000, .NEON, {}}, + {.LD1_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D404000, 0xBFFFE400, .NEON, {}}, + {.LD1_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D408000, 0xBFFFEC00, .NEON, {}}, + {.LD1_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D408400, 0xBFFFFC00, .NEON, {}}, + }, + .LD2_LANE = { + {.LD2_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D600000, 0xBFFFE000, .NEON, {}}, + {.LD2_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D604000, 0xBFFFE400, .NEON, {}}, + {.LD2_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D608000, 0xBFFFEC00, .NEON, {}}, + {.LD2_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D608400, 0xBFFFFC00, .NEON, {}}, + }, + .LD3_LANE = { + {.LD3_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D402000, 0xBFFFE000, .NEON, {}}, + {.LD3_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D406000, 0xBFFFE400, .NEON, {}}, + {.LD3_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D40A000, 0xBFFFEC00, .NEON, {}}, + {.LD3_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D40A400, 0xBFFFFC00, .NEON, {}}, + }, + .LD4_LANE = { + {.LD4_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D602000, 0xBFFFE000, .NEON, {}}, + {.LD4_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D606000, 0xBFFFE400, .NEON, {}}, + {.LD4_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D60A000, 0xBFFFEC00, .NEON, {}}, + {.LD4_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D60A400, 0xBFFFFC00, .NEON, {}}, + }, + .ST1_LANE = { + {.ST1_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D000000, 0xBFFFE000, .NEON, {}}, + {.ST1_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D004000, 0xBFFFE400, .NEON, {}}, + {.ST1_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D008000, 0xBFFFEC00, .NEON, {}}, + {.ST1_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D008400, 0xBFFFFC00, .NEON, {}}, + }, + .ST2_LANE = { + {.ST2_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D200000, 0xBFFFE000, .NEON, {}}, + {.ST2_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D204000, 0xBFFFE400, .NEON, {}}, + {.ST2_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D208000, 0xBFFFEC00, .NEON, {}}, + {.ST2_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D208400, 0xBFFFFC00, .NEON, {}}, + }, + .ST3_LANE = { + {.ST3_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D002000, 0xBFFFE000, .NEON, {}}, + {.ST3_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D006000, 0xBFFFE400, .NEON, {}}, + {.ST3_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D00A000, 0xBFFFEC00, .NEON, {}}, + {.ST3_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D00A400, 0xBFFFFC00, .NEON, {}}, + }, + .ST4_LANE = { + {.ST4_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D202000, 0xBFFFE000, .NEON, {}}, + {.ST4_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D206000, 0xBFFFE400, .NEON, {}}, + {.ST4_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D20A000, 0xBFFFEC00, .NEON, {}}, + {.ST4_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D20A400, 0xBFFFFC00, .NEON, {}}, + }, + // FP/SIMD scalar load/store via V regs (offset-form) .LDR_V = { {.LDR_V, {.B_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x3D400000, 0xFFC00000, .FP, {}}, diff --git a/core/rexcode/arm64/tablegen/generated/decode_tables.odin b/core/rexcode/arm64/tablegen/generated/decode_tables.odin index 94b7f90cc..814546c2c 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 := [2406]lib.Decode_Entry{ +DECODE_ENTRIES := [2438]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 := [2406]lib.Decode_Entry{ { .SME_FMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0x80800010, 0xFFE08010, .SME, {} }, { .SME_BFMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0x81800000, 0xFFE08010, .SME, {} }, { .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_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA0C00010, 0xFFE08010, .SME, {is_64=true} }, + { .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_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_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} }, @@ -97,18 +97,18 @@ DECODE_ENTRIES := [2406]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_H,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05603800, 0xFFFFFC00, .SVE, {} }, + { .SVE_DUP_Z, {.Z_REG_B,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05203800, 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_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_INSR, {.Z_REG_B,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05243800, 0xFFFFFC00, .SVE, {} }, - { .SVE_INSR, {.Z_REG_S,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05A43800, 0xFFFFFC00, .SVE, {} }, { .SVE_INSR, {.Z_REG_H,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05643800, 0xFFFFFC00, .SVE, {} }, { .SVE_INSR, {.Z_REG_D,.X_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05E43800, 0xFFFFFC00, .SVE, {is_64=true} }, - { .SVE_REV_Z, {.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05F83800, 0xFFFFFC00, .SVE, {is_64=true} }, + { .SVE_INSR, {.Z_REG_S,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05A43800, 0xFFFFFC00, .SVE, {} }, + { .SVE_INSR, {.Z_REG_B,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05243800, 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_REV_Z, {.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05F83800, 0xFFFFFC00, .SVE, {is_64=true} }, { .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} }, @@ -117,157 +117,157 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .SVE_BRKAS, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4,.PN,.NONE}, 0x25504000, 0xFFFFC210, .SVE, {sets_flags=true} }, { .SVE_BRKBS, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4,.PN,.NONE}, 0x25D04000, 0xFFFFC210, .SVE, {sets_flags=true} }, { .SVE_BRKN, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PD}, 0x25184000, 0xFFFFC210, .SVE, {} }, - { .SVE_FCMLE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65512010, 0xFFFFE010, .SVE, {} }, { .SVE_FCMLE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65D12010, 0xFFFFE010, .SVE, {is_64=true} }, { .SVE_FCMLE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65912010, 0xFFFFE010, .SVE, {} }, + { .SVE_FCMLE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65512010, 0xFFFFE010, .SVE, {} }, + { .SVE_FCMLT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65512000, 0xFFFFE010, .SVE, {} }, { .SVE_FCMLT, {.P_REG,.P_REG_ZERO,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65912000, 0xFFFFE010, .SVE, {} }, { .SVE_FCMLT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65D12000, 0xFFFFE010, .SVE, {is_64=true} }, - { .SVE_FCMLT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65512000, 0xFFFFE010, .SVE, {} }, { .SVE_AND_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x041A0000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_ORR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04180000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_EOR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04190000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_BIC_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x041B0000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_ASRR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x04D48000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_ASRR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x04948000, 0xFFFFE000, .SVE, {} }, { .SVE_ASRR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VN}, 0x04148000, 0xFFFFE000, .SVE, {} }, + { .SVE_ASRR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x04948000, 0xFFFFE000, .SVE, {} }, + { .SVE_ASRR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x04D48000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_ASRR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x04548000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSLR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x04978000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSLR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x04578000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSLR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x04D78000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_LSLR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VN}, 0x04178000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSRR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x04958000, 0xFFFFE000, .SVE, {} }, + { .SVE_LSLR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x04D78000, 0xFFFFE000, .SVE, {is_64=true} }, + { .SVE_LSLR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x04578000, 0xFFFFE000, .SVE, {} }, + { .SVE_LSLR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x04978000, 0xFFFFE000, .SVE, {} }, { .SVE_LSRR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x04558000, 0xFFFFE000, .SVE, {} }, + { .SVE_LSRR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x04958000, 0xFFFFE000, .SVE, {} }, { .SVE_LSRR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VN}, 0x04158000, 0xFFFFE000, .SVE, {} }, { .SVE_LSRR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x04D58000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FSUBR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x65438000, 0xFFFFE000, .SVE, {} }, { .SVE_FSUBR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x65C38000, 0xFFFFE000, .SVE, {is_64=true} }, + { .SVE_FSUBR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x65438000, 0xFFFFE000, .SVE, {} }, { .SVE_FSUBR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x65838000, 0xFFFFE000, .SVE, {} }, { .SVE_FDIVR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x65CC8000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_FDIVR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x654C8000, 0xFFFFE000, .SVE, {} }, { .SVE_FDIVR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x658C8000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRECPX_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x654CA000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRECPX_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65CCA000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_FRECPX_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x658CA000, 0xFFFFE000, .SVE, {} }, + { .SVE_FRECPX_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65CCA000, 0xFFFFE000, .SVE, {is_64=true} }, + { .SVE_FRECPX_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x654CA000, 0xFFFFE000, .SVE, {} }, + { .SVE_FRINTN, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C0A000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_FRINTN, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6580A000, 0xFFFFE000, .SVE, {} }, { .SVE_FRINTN, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6540A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTN, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C0A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FRINTP, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C1A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FRINTP, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6541A000, 0xFFFFE000, .SVE, {} }, { .SVE_FRINTP, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6581A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTM, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C2A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FRINTM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6542A000, 0xFFFFE000, .SVE, {} }, + { .SVE_FRINTP, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6541A000, 0xFFFFE000, .SVE, {} }, + { .SVE_FRINTP, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C1A000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_FRINTM, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6582A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTZ, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C3A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FRINTZ, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6583A000, 0xFFFFE000, .SVE, {} }, + { .SVE_FRINTM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6542A000, 0xFFFFE000, .SVE, {} }, + { .SVE_FRINTM, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C2A000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_FRINTZ, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6543A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6544A000, 0xFFFFE000, .SVE, {} }, + { .SVE_FRINTZ, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6583A000, 0xFFFFE000, .SVE, {} }, + { .SVE_FRINTZ, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C3A000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_FRINTA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C4A000, 0xFFFFE000, .SVE, {is_64=true} }, + { .SVE_FRINTA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6544A000, 0xFFFFE000, .SVE, {} }, { .SVE_FRINTA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6584A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6586A000, 0xFFFFE000, .SVE, {} }, { .SVE_FRINTX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6546A000, 0xFFFFE000, .SVE, {} }, + { .SVE_FRINTX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6586A000, 0xFFFFE000, .SVE, {} }, { .SVE_FRINTX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C6A000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_FRINTI, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6547A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTI, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6587A000, 0xFFFFE000, .SVE, {} }, { .SVE_FRINTI, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C7A000, 0xFFFFE000, .SVE, {is_64=true} }, + { .SVE_FRINTI, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6587A000, 0xFFFFE000, .SVE, {} }, { .SVE_ZIP1_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05204000, 0xFFE0FE10, .SVE, {} }, { .SVE_ZIP2_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05204400, 0xFFE0FE10, .SVE, {} }, { .SVE_UZP1_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05204800, 0xFFE0FE10, .SVE, {} }, { .SVE_UZP2_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05204C00, 0xFFE0FE10, .SVE, {} }, { .SVE_TRN1_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05205000, 0xFFE0FE10, .SVE, {} }, { .SVE_TRN2_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05205400, 0xFFE0FE10, .SVE, {} }, - { .SVE_CPY_Z, {.Z_REG_S,.P_REG_MERGE,.W_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05A8A000, 0xFFFFE000, .SVE, {} }, - { .SVE_CPY_Z, {.Z_REG_D,.P_REG_MERGE,.X_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05E8A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_CPY_Z, {.Z_REG_B,.P_REG_MERGE,.W_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0528A000, 0xFFFFE000, .SVE, {} }, { .SVE_CPY_Z, {.Z_REG_H,.P_REG_MERGE,.W_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0568A000, 0xFFFFE000, .SVE, {} }, + { .SVE_CPY_Z, {.Z_REG_S,.P_REG_MERGE,.W_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05A8A000, 0xFFFFE000, .SVE, {} }, + { .SVE_CPY_Z, {.Z_REG_B,.P_REG_MERGE,.W_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0528A000, 0xFFFFE000, .SVE, {} }, + { .SVE_CPY_Z, {.Z_REG_D,.P_REG_MERGE,.X_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05E8A000, 0xFFFFE000, .SVE, {is_64=true} }, { .SVE_COMPACT, {.Z_REG_S,.P_REG_GOV,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05A18000, 0xFFFFE000, .SVE, {} }, { .SVE_COMPACT, {.Z_REG_D,.P_REG_GOV,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05E18000, 0xFFFFE000, .SVE, {is_64=true} }, { .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_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04600000, 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_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E00000, 0xFFE0FC00, .SVE, {is_64=true} }, + { .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_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A00000, 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_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_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04600400, 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_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_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01400, 0xFFE0FC00, .SVE, {is_64=true} }, + { .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_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01000, 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_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01400, 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_UQADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601400, 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_SQSUB_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201800, 0xFFE0FC00, .SVE, {} }, + { .SVE_UQADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01400, 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_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201800, 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_SQSUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601800, 0xFFE0FC00, .SVE, {} }, { .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_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_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_FADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800000, 0xFFE0FC00, .SVE, {} }, - { .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_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_FSUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800400, 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_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_FMUL_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00800, 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_FMUL_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800800, 0xFFE0FC00, .SVE, {} }, + { .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_FRECPS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65401800, 0xFFE0FC00, .SVE, {} }, - { .SVE_FRECPS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65801800, 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_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_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05203000, 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_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_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E03000, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_ZIP1_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06000, 0xFFE0FC00, .SVE, {} }, + { .SVE_TBL, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05203000, 0xFFE0FC00, .SVE, {} }, { .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_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06000, 0xFFE0FC00, .SVE, {is_64=true} }, + { .SVE_ZIP1_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206000, 0xFFE0FC00, .SVE, {} }, + { .SVE_ZIP1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06000, 0xFFE0FC00, .SVE, {} }, { .SVE_ZIP2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06400, 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_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_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06800, 0xFFE0FC00, .SVE, {is_64=true} }, { .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_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206800, 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_UZP2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06C00, 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_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06C00, 0xFFE0FC00, .SVE, {is_64=true} }, { .SVE_UZP2_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606C00, 0xFFE0FC00, .SVE, {} }, - { .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_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06C00, 0xFFE0FC00, .SVE, {is_64=true} }, + { .SVE_UZP2_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206C00, 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_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05207000, 0xFFE0FC00, .SVE, {} }, { .SVE_TRN1_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05607000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A07000, 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_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05207400, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN2_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05607400, 0xFFE0FC00, .SVE, {} }, + { .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_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_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_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05607400, 0xFFE0FC00, .SVE, {} }, + { .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_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_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_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44407400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLSH, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44807400, 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_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_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_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x45C0D000, 0xFFE0FC00, .SVE2, {is_64=true} }, { .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_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4580D400, 0xFFE0FC00, .SVE2, {} }, { .SVE_SBCLT, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x45C0D400, 0xFFE0FC00, .SVE2, {is_64=true} }, { .SVE_TBL2, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05202800, 0xFFE0FC00, .SVE2, {} }, @@ -325,51 +325,51 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .SVE_MOV_P, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4,.PN_PM_DUP,.NONE}, 0x25004000, 0xFFE0C210, .SVE, {} }, { .SVE_MOV_P, {.P_REG,.P_REG,.NONE,.NONE}, {.PD,.PN_PG_PM_DUP,.NONE,.NONE}, 0x25804000, 0xFFE0C210, .SVE, {} }, { .SVE_MOVS_P, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4,.PN_PM_DUP,.NONE}, 0x25404000, 0xFFE0C210, .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_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_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x2440A010, 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_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_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_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24408000, 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_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_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24808000, 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_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_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_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, + { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, + { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true} }, + { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24408010, 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_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=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_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24400010, 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_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24000010, 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_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_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24000000, 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_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true} }, + { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true} }, + { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true} }, { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_FCMEQ, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65806000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMEQ, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C06000, 0xFFE0E010, .SVE, {is_64=true} }, { .SVE_FCMEQ, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65406000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMNE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C06010, 0xFFE0E010, .SVE, {is_64=true} }, + { .SVE_FCMEQ, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C06000, 0xFFE0E010, .SVE, {is_64=true} }, + { .SVE_FCMEQ, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65806000, 0xFFE0E010, .SVE, {} }, { .SVE_FCMNE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65806010, 0xFFE0E010, .SVE, {} }, + { .SVE_FCMNE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C06010, 0xFFE0E010, .SVE, {is_64=true} }, { .SVE_FCMNE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65406010, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMGE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65404000, 0xFFE0E010, .SVE, {} }, { .SVE_FCMGE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65804000, 0xFFE0E010, .SVE, {} }, { .SVE_FCMGE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C04000, 0xFFE0E010, .SVE, {is_64=true} }, + { .SVE_FCMGE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65404000, 0xFFE0E010, .SVE, {} }, { .SVE_FCMGT, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65804010, 0xFFE0E010, .SVE, {} }, { .SVE_FCMGT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65404010, 0xFFE0E010, .SVE, {} }, { .SVE_FCMGT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C04010, 0xFFE0E010, .SVE, {is_64=true} }, @@ -382,143 +382,143 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .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_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x45208010, 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_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_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_ADD_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04000000, 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_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_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_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_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_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04100000, 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_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04830000, 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_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04900000, 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_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D20000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_SMULH_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04520000, 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_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_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04900000, 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_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_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04530000, 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_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04520000, 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_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_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D40000, 0xFFE0E000, .SVE, {is_64=true} }, + { .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_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04530000, 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} }, { .SVE_UDIV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04950000, 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_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04880000, 0xFFE0E000, .SVE, {} }, - { .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_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04480000, 0xFFE0E000, .SVE, {} }, + { .SVE_SMAX_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04080000, 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_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04090000, 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_UMAX_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04490000, 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_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044A0000, 0xFFE0E000, .SVE, {} }, - { .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_SMIN_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040A0000, 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_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040B0000, 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_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_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048C0000, 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_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048D0000, 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_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_UABD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044D0000, 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_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04908000, 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_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04508000, 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_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_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_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04138000, 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_LSR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04918000, 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_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04538000, 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_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_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_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_NEG_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0417A000, 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_ABS_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0456A000, 0xFFE0E000, .SVE, {} }, + { .SVE_ABS_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0416A000, 0xFFE0E000, .SVE, {} }, { .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_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_NEG_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D7A000, 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_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D8A000, 0xFFE0E000, .SVE, {is_64=true} }, { .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_CLZ_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0499A000, 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_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D9A000, 0xFFE0E000, .SVE, {is_64=true} }, { .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_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0499A000, 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_CNT_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x041AA000, 0xFFE0E000, .SVE, {} }, - { .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_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_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049AA000, 0xFFE0E000, .SVE, {} }, - { .SVE_MOV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x05A0C000, 0xFFE0E000, .SVE, {} }, { .SVE_MOV_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x0560C000, 0xFFE0E000, .SVE, {} }, - { .SVE_MOV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x05E0C000, 0xFFE0E000, .SVE, {is_64=true} }, { .SVE_MOV_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x0520C000, 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_MOV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x05E0C000, 0xFFE0E000, .SVE, {is_64=true} }, + { .SVE_MOV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x05A0C000, 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_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65408000, 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_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_FSUB_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65418000, 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_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_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65428000, 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_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_FDIV_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x654D8000, 0xFFE0E000, .SVE, {} }, { .SVE_FDIV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x658D8000, 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_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_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_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C68000, 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_FMIN_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65878000, 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_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_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C48000, 0xFFE0E000, .SVE, {is_64=true} }, { .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_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_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_FABS_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049CA000, 0xFFE0E000, .SVE, {} }, { .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_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x045DA000, 0xFFE0E000, .SVE, {} }, { .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_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_FSQRT_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x658DA000, 0xFFE0E000, .SVE, {} }, { .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_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_FMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65600000, 0xFFE0E000, .SVE, {} }, { .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_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E02000, 0xFFE0E000, .SVE, {is_64=true} }, { .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_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E04000, 0xFFE0E000, .SVE, {is_64=true} }, - { .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_FNMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65606000, 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_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_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_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_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_EXT_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.VEC_SHIFT}, {.VD,.VD,.VN,.SVE_EXT_IMM}, 0x05200000, 0xFFE0E000, .SVE, {} }, { .SVE_LD1B, {.Z_REG_B,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4004000, 0xFFE0E000, .SVE, {} }, { .SVE_LD1H, {.Z_REG_H,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4A04000, 0xFFE0E000, .SVE, {} }, @@ -666,8 +666,8 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .NEG_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x4B0003E0, 0xFF2003E0, .BASE, {} }, { .NEGS, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xEB0003E0, 0xFF2003E0, .BASE, {sets_flags=true, is_64=true} }, { .NEGS, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x6B0003E0, 0xFF2003E0, .BASE, {sets_flags=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} }, + { .CMP_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xEB00001F, 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} }, { .CMN_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xAB00001F, 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} }, @@ -716,15 +716,47 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .LD2R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D60C000, 0xFFFFFC00, .NEON, {} }, { .LD3R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D40E000, 0xFFFFFC00, .NEON, {} }, { .LD4R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D60E000, 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, {} }, + { .LD1, {.V_8H,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C407400, 0xFFFFF400, .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_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D408400, 0xBFFFFC00, .NEON, {} }, + { .LD2_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D608400, 0xBFFFFC00, .NEON, {} }, + { .LD3_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D40A400, 0xBFFFFC00, .NEON, {} }, + { .LD4_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D60A400, 0xBFFFFC00, .NEON, {} }, + { .ST1_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D008400, 0xBFFFFC00, .NEON, {} }, + { .ST2_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D208400, 0xBFFFFC00, .NEON, {} }, + { .ST3_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D00A400, 0xBFFFFC00, .NEON, {} }, + { .ST4_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D20A400, 0xBFFFFC00, .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, {} }, - { .LDP_V, {.Q_REG,.Q_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xAD400000, 0xFFC00000, .NEON, {} }, - { .LDP_V, {.S_REG,.S_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x2D400000, 0xFFC00000, .NEON, {} }, + { .LD1_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D408000, 0xBFFFEC00, .NEON, {} }, + { .LD2_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D608000, 0xBFFFEC00, .NEON, {} }, + { .LD3_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D40A000, 0xBFFFEC00, .NEON, {} }, + { .LD4_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D60A000, 0xBFFFEC00, .NEON, {} }, + { .ST1_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D008000, 0xBFFFEC00, .NEON, {} }, + { .ST2_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D208000, 0xBFFFEC00, .NEON, {} }, + { .ST3_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D00A000, 0xBFFFEC00, .NEON, {} }, + { .ST4_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D20A000, 0xBFFFEC00, .NEON, {} }, + { .LD1_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D404000, 0xBFFFE400, .NEON, {} }, + { .LD2_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D604000, 0xBFFFE400, .NEON, {} }, + { .LD3_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D406000, 0xBFFFE400, .NEON, {} }, + { .LD4_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D606000, 0xBFFFE400, .NEON, {} }, + { .ST1_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D004000, 0xBFFFE400, .NEON, {} }, + { .ST2_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D204000, 0xBFFFE400, .NEON, {} }, + { .ST3_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D006000, 0xBFFFE400, .NEON, {} }, + { .ST4_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D206000, 0xBFFFE400, .NEON, {} }, + { .LD1_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D400000, 0xBFFFE000, .NEON, {} }, + { .LD2_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D600000, 0xBFFFE000, .NEON, {} }, + { .LD3_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D402000, 0xBFFFE000, .NEON, {} }, + { .LD4_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D602000, 0xBFFFE000, .NEON, {} }, + { .ST1_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D000000, 0xBFFFE000, .NEON, {} }, + { .ST2_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D200000, 0xBFFFE000, .NEON, {} }, + { .ST3_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D002000, 0xBFFFE000, .NEON, {} }, + { .ST4_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D202000, 0xBFFFE000, .NEON, {} }, { .LDP_V, {.D_REG,.D_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x6D400000, 0xFFC00000, .NEON, {} }, + { .LDP_V, {.S_REG,.S_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x2D400000, 0xFFC00000, .NEON, {} }, + { .LDP_V, {.Q_REG,.Q_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xAD400000, 0xFFC00000, .NEON, {} }, { .STP_V, {.D_REG,.D_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x6D000000, 0xFFC00000, .NEON, {} }, { .STP_V, {.S_REG,.S_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x2D000000, 0xFFC00000, .NEON, {} }, { .STP_V, {.Q_REG,.Q_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xAD000000, 0xFFC00000, .NEON, {} }, @@ -750,275 +782,275 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .ABS_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E20B800, 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, {} }, - { .ADDV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E71B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E71B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E31B800, 0xFFFFFC00, .NEON, {} }, { .ADDV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB1B800, 0xFFFFFC00, .NEON, {} }, + { .ADDV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E71B800, 0xFFFFFC00, .NEON, {} }, + { .ADDV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E71B800, 0xFFFFFC00, .NEON, {} }, { .ADDV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E31B800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E202800, 0xFFFFFC00, .NEON, {} }, + { .ADDV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E31B800, 0xFFFFFC00, .NEON, {} }, { .SADDLP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E602800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E202800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E602800, 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, {} }, - { .UADDLP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E202800, 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_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, {} }, + { .SADDLP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E202800, 0xFFFFFC00, .NEON, {} }, + { .SADDLP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E202800, 0xFFFFFC00, .NEON, {} }, { .UADDLP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA02800, 0xFFFFFC00, .NEON, {} }, { .UADDLP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA02800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E206800, 0xFFFFFC00, .NEON, {} }, + { .UADDLP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E602800, 0xFFFFFC00, .NEON, {} }, + { .UADDLP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E602800, 0xFFFFFC00, .NEON, {} }, + { .UADDLP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E202800, 0xFFFFFC00, .NEON, {} }, + { .UADDLP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E202800, 0xFFFFFC00, .NEON, {} }, { .SADALP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E606800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E606800, 0xFFFFFC00, .NEON, {} }, { .SADALP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA06800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E206800, 0xFFFFFC00, .NEON, {} }, { .SADALP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA06800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E606800, 0xFFFFFC00, .NEON, {} }, + { .SADALP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E206800, 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_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E606800, 0xFFFFFC00, .NEON, {} }, { .UADALP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA06800, 0xFFFFFC00, .NEON, {} }, { .UADALP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA06800, 0xFFFFFC00, .NEON, {} }, + { .UADALP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E606800, 0xFFFFFC00, .NEON, {} }, + { .UADALP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E606800, 0xFFFFFC00, .NEON, {} }, { .UADALP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E206800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.S_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E703800, 0xFFFFFC00, .NEON, {} }, { .SADDLV, {.H_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E303800, 0xFFFFFC00, .NEON, {} }, { .SADDLV, {.D_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB03800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.H_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E303800, 0xFFFFFC00, .NEON, {} }, + { .SADDLV, {.S_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E703800, 0xFFFFFC00, .NEON, {} }, { .SADDLV, {.S_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E703800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.H_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E303800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.S_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E703800, 0xFFFFFC00, .NEON, {} }, + { .SADDLV, {.H_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E303800, 0xFFFFFC00, .NEON, {} }, { .UADDLV, {.H_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E303800, 0xFFFFFC00, .NEON, {} }, { .UADDLV, {.D_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB03800, 0xFFFFFC00, .NEON, {} }, + { .UADDLV, {.S_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E703800, 0xFFFFFC00, .NEON, {} }, { .UADDLV, {.S_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E703800, 0xFFFFFC00, .NEON, {} }, - { .SMAXV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30A800, 0xFFFFFC00, .NEON, {} }, - { .SMAXV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30A800, 0xFFFFFC00, .NEON, {} }, + { .UADDLV, {.H_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E303800, 0xFFFFFC00, .NEON, {} }, { .SMAXV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E70A800, 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, {.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, {} }, + { .SMAXV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30A800, 0xFFFFFC00, .NEON, {} }, + { .SMAXV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30A800, 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, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB0A800, 0xFFFFFC00, .NEON, {} }, { .UMAXV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E30A800, 0xFFFFFC00, .NEON, {} }, + { .UMAXV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30A800, 0xFFFFFC00, .NEON, {} }, + { .SMINV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E31A800, 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, {} }, { .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, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E31A800, 0xFFFFFC00, .NEON, {} }, - { .SMINV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E31A800, 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, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E71A800, 0xFFFFFC00, .NEON, {} }, { .UMINV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E31A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E71A800, 0xFFFFFC00, .NEON, {} }, - { .XTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E612800, 0xFFFFFC00, .NEON, {} }, - { .XTN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E212800, 0xFFFFFC00, .NEON, {} }, + { .UMINV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E31A800, 0xFFFFFC00, .NEON, {} }, { .XTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA12800, 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, {} }, { .XTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA12800, 0xFFFFFC00, .NEON, {} }, - { .XTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E612800, 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_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_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, {} }, - { .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, {} }, + { .SQXTN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E214800, 0xFFFFFC00, .NEON, {} }, + { .SQXTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA14800, 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, {} }, + { .UQXTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA14800, 0xFFFFFC00, .NEON, {} }, { .UQXTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E614800, 0xFFFFFC00, .NEON, {} }, - { .SQXTUN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA12800, 0xFFFFFC00, .NEON, {} }, - { .SQXTUN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E612800, 0xFFFFFC00, .NEON, {} }, + { .UQXTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA14800, 0xFFFFFC00, .NEON, {} }, + { .UQXTN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E214800, 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_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E212800, 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, {} }, - { .FNEG_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0F800, 0xFFFFFC00, .NEON, {} }, - { .FNEG_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF8F800, 0xFFFFFC00, .FP16, {} }, - { .FNEG_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0F800, 0xFFFFFC00, .NEON, {} }, { .FNEG_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF8F800, 0xFFFFFC00, .FP16, {} }, + { .FNEG_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF8F800, 0xFFFFFC00, .FP16, {} }, + { .FNEG_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0F800, 0xFFFFFC00, .NEON, {} }, + { .FNEG_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0F800, 0xFFFFFC00, .NEON, {} }, { .FNEG_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA0F800, 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, {} }, { .FABS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0F800, 0xFFFFFC00, .NEON, {} }, { .FABS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF8F800, 0xFFFFFC00, .FP16, {} }, { .FABS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0F800, 0xFFFFFC00, .NEON, {} }, - { .FSQRT_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9F800, 0xFFFFFC00, .FP16, {} }, - { .FSQRT_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9F800, 0xFFFFFC00, .FP16, {} }, + { .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_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1F800, 0xFFFFFC00, .NEON, {} }, { .FSQRT_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1F800, 0xFFFFFC00, .NEON, {} }, - { .FMAXV_V, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30F800, 0xFFFFFC00, .FP16, {} }, - { .FMAXV_V, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30F800, 0xFFFFFC00, .FP16, {} }, + { .FSQRT_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9F800, 0xFFFFFC00, .FP16, {} }, + { .FSQRT_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9F800, 0xFFFFFC00, .FP16, {} }, { .FMAXV_V, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30F800, 0xFFFFFC00, .NEON, {} }, - { .FMINV_V, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB0F800, 0xFFFFFC00, .NEON, {} }, + { .FMAXV_V, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30F800, 0xFFFFFC00, .FP16, {} }, + { .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, {} }, { .FMAXNMV, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30C800, 0xFFFFFC00, .FP16, {} }, - { .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, {} }, + { .FMAXNMV, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30C800, 0xFFFFFC00, .FP16, {} }, + { .FMINNMV, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB0C800, 0xFFFFFC00, .FP16, {} }, { .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_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9D800, 0xFFFFFC00, .FP16, {} }, - { .FRECPE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1D800, 0xFFFFFC00, .NEON, {} }, - { .FRECPE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1D800, 0xFFFFFC00, .NEON, {} }, - { .FRECPE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1D800, 0xFFFFFC00, .NEON, {} }, { .FRECPE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9D800, 0xFFFFFC00, .FP16, {} }, - { .FRSQRTE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9D800, 0xFFFFFC00, .FP16, {} }, + { .FRECPE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1D800, 0xFFFFFC00, .NEON, {} }, + { .FRECPE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9D800, 0xFFFFFC00, .FP16, {} }, + { .FRECPE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1D800, 0xFFFFFC00, .NEON, {} }, + { .FRECPE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1D800, 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, {} }, { .FRSQRTE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1D800, 0xFFFFFC00, .NEON, {} }, + { .FRSQRTE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9D800, 0xFFFFFC00, .FP16, {} }, + { .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, {} }, { .FRINTA_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E218800, 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_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E798800, 0xFFFFFC00, .FP16, {} }, { .FRINTA_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E798800, 0xFFFFFC00, .FP16, {} }, { .FRINTA_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTI_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF99800, 0xFFFFFC00, .FP16, {} }, - { .FRINTI_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTI_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF99800, 0xFFFFFC00, .FP16, {} }, { .FRINTI_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE19800, 0xFFFFFC00, .NEON, {} }, + { .FRINTI_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA19800, 0xFFFFFC00, .NEON, {} }, { .FRINTI_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTM_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E799800, 0xFFFFFC00, .FP16, {} }, + { .FRINTI_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF99800, 0xFFFFFC00, .FP16, {} }, + { .FRINTI_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF99800, 0xFFFFFC00, .FP16, {} }, { .FRINTM_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E219800, 0xFFFFFC00, .NEON, {} }, { .FRINTM_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E219800, 0xFFFFFC00, .NEON, {} }, - { .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, {} }, - { .FRINTN_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTN_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E798800, 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, {} }, { .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_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E218800, 0xFFFFFC00, .NEON, {} }, { .FRINTN_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E798800, 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, {} }, - { .FRINTP_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF98800, 0xFFFFFC00, .FP16, {} }, + { .FRINTN_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E618800, 0xFFFFFC00, .NEON, {} }, + { .FRINTN_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E798800, 0xFFFFFC00, .FP16, {} }, { .FRINTP_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE18800, 0xFFFFFC00, .NEON, {} }, { .FRINTP_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF98800, 0xFFFFFC00, .FP16, {} }, + { .FRINTP_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF98800, 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_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E619800, 0xFFFFFC00, .NEON, {} }, + { .FRINTX_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E219800, 0xFFFFFC00, .NEON, {} }, { .FRINTX_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E219800, 0xFFFFFC00, .NEON, {} }, { .FRINTX_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E799800, 0xFFFFFC00, .FP16, {} }, - { .FRINTX_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E799800, 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, {} }, - { .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_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, {} }, { .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_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF99800, 0xFFFFFC00, .FP16, {} }, + { .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, {} }, + { .SCVTF_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79D800, 0xFFFFFC00, .FP16, {} }, + { .SCVTF_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79D800, 0xFFFFFC00, .FP16, {} }, { .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, {.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, {} }, - { .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_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79D800, 0xFFFFFC00, .FP16, {} }, { .UCVTF_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21D800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61C800, 0xFFFFFC00, .NEON, {} }, + { .UCVTF_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21D800, 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, {} }, { .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_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79C800, 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_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79C800, 0xFFFFFC00, .FP16, {} }, { .FCVTAU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61C800, 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, {} }, + { .FCVTAU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79C800, 0xFFFFFC00, .FP16, {} }, { .FCVTAU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTMS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61B800, 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, {} }, { .FCVTMS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79B800, 0xFFFFFC00, .FP16, {} }, + { .FCVTMS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61B800, 0xFFFFFC00, .NEON, {} }, { .FCVTMU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTMU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61B800, 0xFFFFFC00, .NEON, {} }, - { .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, {} }, - { .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_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, {} }, + { .FCVTMU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21B800, 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, {} }, { .FCVTNS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTNU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79A800, 0xFFFFFC00, .FP16, {} }, + { .FCVTNS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79A800, 0xFFFFFC00, .FP16, {} }, + { .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_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61A800, 0xFFFFFC00, .NEON, {} }, { .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_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79A800, 0xFFFFFC00, .FP16, {} }, + { .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_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_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1A800, 0xFFFFFC00, .NEON, {} }, { .FCVTPS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTPU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1A800, 0xFFFFFC00, .NEON, {} }, + { .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_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_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTPU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1A800, 0xFFFFFC00, .NEON, {} }, { .FCVTPU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTZS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9B800, 0xFFFFFC00, .FP16, {} }, + { .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_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1B800, 0xFFFFFC00, .NEON, {} }, { .FCVTZS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTZU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9B800, 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, {} }, { .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, {} }, { .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, {} }, { .FCVTL, {.V_4S,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E217800, 0xFFFFFC00, .FP16, {} }, { .FCVTL, {.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E617800, 0xFFFFFC00, .NEON, {} }, { .FCVTL2, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E617800, 0xFFFFFC00, .NEON, {} }, { .FCVTL2, {.V_4S,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E217800, 0xFFFFFC00, .FP16, {} }, - { .FCVTN, {.V_4H_FP16,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E216800, 0xFFFFFC00, .FP16, {} }, { .FCVTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E616800, 0xFFFFFC00, .NEON, {} }, + { .FCVTN, {.V_4H_FP16,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E216800, 0xFFFFFC00, .FP16, {} }, { .FCVTN2, {.V_8H_FP16,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E216800, 0xFFFFFC00, .FP16, {} }, { .FCVTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E616800, 0xFFFFFC00, .NEON, {} }, { .FCVTXN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E616800, 0xFFFFFC00, .NEON, {} }, { .FCVTXN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E616800, 0xFFFFFC00, .NEON, {} }, - { .FCMLE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF8D800, 0xFFFFFC00, .FP16, {} }, { .FCMLE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0D800, 0xFFFFFC00, .NEON, {} }, { .FCMLE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0D800, 0xFFFFFC00, .NEON, {} }, - { .FCMLE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF8D800, 0xFFFFFC00, .FP16, {} }, { .FCMLE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA0D800, 0xFFFFFC00, .NEON, {} }, - { .FCMLT, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0E800, 0xFFFFFC00, .NEON, {} }, + { .FCMLE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF8D800, 0xFFFFFC00, .FP16, {} }, + { .FCMLE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF8D800, 0xFFFFFC00, .FP16, {} }, { .FCMLT, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF8E800, 0xFFFFFC00, .FP16, {} }, + { .FCMLT, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0E800, 0xFFFFFC00, .NEON, {} }, + { .FCMLT, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0E800, 0xFFFFFC00, .NEON, {} }, { .FCMLT, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF8E800, 0xFFFFFC00, .FP16, {} }, { .FCMLT, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0E800, 0xFFFFFC00, .NEON, {} }, - { .FCMLT, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0E800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA09800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA09800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E609800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE09800, 0xFFFFFC00, .NEON, {} }, { .CMLE, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E209800, 0xFFFFFC00, .NEON, {} }, { .CMLE, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E209800, 0xFFFFFC00, .NEON, {} }, + { .CMLE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA09800, 0xFFFFFC00, .NEON, {} }, + { .CMLE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA09800, 0xFFFFFC00, .NEON, {} }, + { .CMLE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE09800, 0xFFFFFC00, .NEON, {} }, + { .CMLE, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E609800, 0xFFFFFC00, .NEON, {} }, { .CMLE, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E609800, 0xFFFFFC00, .NEON, {} }, + { .CMLT, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E20A800, 0xFFFFFC00, .NEON, {} }, + { .CMLT, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0A800, 0xFFFFFC00, .NEON, {} }, + { .CMLT, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0A800, 0xFFFFFC00, .NEON, {} }, + { .CMLT, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E60A800, 0xFFFFFC00, .NEON, {} }, { .CMLT, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E60A800, 0xFFFFFC00, .NEON, {} }, { .CMLT, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E20A800, 0xFFFFFC00, .NEON, {} }, { .CMLT, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E20A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E60A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0A800, 0xFFFFFC00, .NEON, {} }, - { .MVN_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, { .MVN_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {} }, - { .SXTL, {.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0F20A400, 0xFFFFFC00, .NEON, {} }, + { .MVN_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, { .SXTL, {.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0F10A400, 0xFFFFFC00, .NEON, {} }, { .SXTL, {.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0F08A400, 0xFFFFFC00, .NEON, {} }, + { .SXTL, {.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0F20A400, 0xFFFFFC00, .NEON, {} }, + { .SXTL2, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4F08A400, 0xFFFFFC00, .NEON, {} }, { .SXTL2, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4F10A400, 0xFFFFFC00, .NEON, {} }, { .SXTL2, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4F20A400, 0xFFFFFC00, .NEON, {} }, - { .SXTL2, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4F08A400, 0xFFFFFC00, .NEON, {} }, { .UXTL, {.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2F20A400, 0xFFFFFC00, .NEON, {} }, - { .UXTL, {.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2F08A400, 0xFFFFFC00, .NEON, {} }, { .UXTL, {.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2F10A400, 0xFFFFFC00, .NEON, {} }, + { .UXTL, {.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2F08A400, 0xFFFFFC00, .NEON, {} }, { .UXTL2, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6F08A400, 0xFFFFFC00, .NEON, {} }, - { .UXTL2, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6F10A400, 0xFFFFFC00, .NEON, {} }, { .UXTL2, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6F20A400, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_2D,.X_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E080C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_4H,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x0E020C00, 0xFFFFFC00, .NEON, {} }, + { .UXTL2, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6F10A400, 0xFFFFFC00, .NEON, {} }, { .DUP_V, {.V_4S,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E040C00, 0xFFFFFC00, .NEON, {} }, + { .DUP_V, {.V_2D,.X_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E080C00, 0xFFFFFC00, .NEON, {} }, + { .DUP_V, {.V_8B,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x0E010C00, 0xFFFFFC00, .NEON, {} }, + { .DUP_V, {.V_4H,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x0E020C00, 0xFFFFFC00, .NEON, {} }, { .DUP_V, {.V_16B,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E010C00, 0xFFFFFC00, .NEON, {} }, { .DUP_V, {.V_8H,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E020C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_8B,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x0E010C00, 0xFFFFFC00, .NEON, {} }, { .DUP_V, {.V_2S,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x0E040C00, 0xFFFFFC00, .NEON, {} }, { .NOT_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {} }, { .NOT_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, @@ -1026,34 +1058,34 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .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_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E600800, 0xFFFFFC00, .NEON, {} }, - { .REV32_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E200800, 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, {} }, - { .REV64, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA00800, 0xFFFFFC00, .NEON, {} }, + { .REV32_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E600800, 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_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA00800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E200800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E200800, 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_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA00800, 0xFFFFFC00, .NEON, {} }, + { .REV64, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E200800, 0xFFFFFC00, .NEON, {} }, { .REV64, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E600800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E604800, 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_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E204800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA04800, 0xFFFFFC00, .NEON, {} }, { .CLS_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E204800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E204800, 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_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E604800, 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, {} }, { .CLZ_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E204800, 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_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA04800, 0xFFFFFC00, .NEON, {} }, { .CLZ_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA04800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E604800, 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, {} }, + { .CLZ_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E204800, 0xFFFFFC00, .NEON, {} }, { .CNT, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E205800, 0xFFFFFC00, .NEON, {} }, + { .CNT, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E205800, 0xFFFFFC00, .NEON, {} }, { .URECPE_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1C800, 0xFFFFFC00, .NEON, {} }, { .URECPE_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1C800, 0xFFFFFC00, .NEON, {} }, - { .URSQRTE_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1C800, 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, {} }, { .DUP_V, {.V_2D,.V_ELEM_D,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x4E080400, 0xFFEFFC00, .NEON, {} }, @@ -1066,14 +1098,14 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .SHL_V, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F085400, 0xFFF8FC00, .NEON, {} }, { .SQSHL_V, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F087400, 0xFFF8FC00, .NEON, {} }, { .SQSHL_V, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F087400, 0xFFF8FC00, .NEON, {} }, - { .SQSHLU, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F086400, 0xFFF8FC00, .NEON, {} }, { .SQSHLU, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F086400, 0xFFF8FC00, .NEON, {} }, - { .SSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F080400, 0xFFF8FC00, .NEON, {} }, + { .SQSHLU, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F086400, 0xFFF8FC00, .NEON, {} }, { .SSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F080400, 0xFFF8FC00, .NEON, {} }, + { .SSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F080400, 0xFFF8FC00, .NEON, {} }, { .USHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F080400, 0xFFF8FC00, .NEON, {} }, { .USHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F080400, 0xFFF8FC00, .NEON, {} }, - { .SSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F081400, 0xFFF8FC00, .NEON, {} }, { .SSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F081400, 0xFFF8FC00, .NEON, {} }, + { .SSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F081400, 0xFFF8FC00, .NEON, {} }, { .USRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F081400, 0xFFF8FC00, .NEON, {} }, { .USRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F081400, 0xFFF8FC00, .NEON, {} }, { .SRSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F082400, 0xFFF8FC00, .NEON, {} }, @@ -1086,8 +1118,8 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .URSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F083400, 0xFFF8FC00, .NEON, {} }, { .SLI, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F085400, 0xFFF8FC00, .NEON, {} }, { .SLI, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F085400, 0xFFF8FC00, .NEON, {} }, - { .SRI, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F084400, 0xFFF8FC00, .NEON, {} }, { .SRI, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F084400, 0xFFF8FC00, .NEON, {} }, + { .SRI, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F084400, 0xFFF8FC00, .NEON, {} }, { .SSHLL, {.V_8H,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F08A400, 0xFFF8FC00, .NEON, {} }, { .SSHLL2, {.V_8H,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F08A400, 0xFFF8FC00, .NEON, {} }, { .USHLL, {.V_8H,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F08A400, 0xFFF8FC00, .NEON, {} }, @@ -1111,26 +1143,26 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .DUP_V, {.V_4H,.V_ELEM_H,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x0E020400, 0xFFE3FC00, .NEON, {} }, { .DUP_V, {.V_8H,.V_ELEM_H,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x4E020400, 0xFFE3FC00, .NEON, {} }, { .INS, {.V_ELEM_H,.VEC_INDEX,.W_REG,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE}, 0x4E021C00, 0xFFE3FC00, .NEON, {} }, - { .MOVI, {.V_8H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F008400, 0xFFF8FC00, .NEON, {} }, + { .MOVI, {.V_2S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F000400, 0xFFF8FC00, .NEON, {} }, { .MOVI, {.V_2D,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x6F00E400, 0xFFF8FC00, .NEON, {} }, { .MOVI, {.V_4S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F000400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_2S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F000400, 0xFFF8FC00, .NEON, {} }, { .MOVI, {.V_8B,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F00E400, 0xFFF8FC00, .NEON, {} }, + { .MOVI, {.V_8H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F008400, 0xFFF8FC00, .NEON, {} }, { .MOVI, {.V_4H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F008400, 0xFFF8FC00, .NEON, {} }, { .MOVI, {.V_16B,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F00E400, 0xFFF8FC00, .NEON, {} }, { .MVNI, {.V_4S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x6F000400, 0xFFF8FC00, .NEON, {} }, - { .MVNI, {.V_2S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x2F000400, 0xFFF8FC00, .NEON, {} }, { .MVNI, {.V_4H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x2F008400, 0xFFF8FC00, .NEON, {} }, + { .MVNI, {.V_2S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x2F000400, 0xFFF8FC00, .NEON, {} }, { .MVNI, {.V_8H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x6F008400, 0xFFF8FC00, .NEON, {} }, + { .FMOV_V_IMM, {.V_2S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F00F400, 0xFFF8FC00, .NEON, {} }, + { .FMOV_V_IMM, {.V_8H_FP16,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F00FC00, 0xFFF8FC00, .FP16, {} }, { .FMOV_V_IMM, {.V_4S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F00F400, 0xFFF8FC00, .NEON, {} }, { .FMOV_V_IMM, {.V_2D,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x6F00F400, 0xFFF8FC00, .NEON, {} }, { .FMOV_V_IMM, {.V_4H_FP16,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F00FC00, 0xFFF8FC00, .FP16, {} }, - { .FMOV_V_IMM, {.V_8H_FP16,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F00FC00, 0xFFF8FC00, .FP16, {} }, - { .FMOV_V_IMM, {.V_2S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F00F400, 0xFFF8FC00, .NEON, {} }, - { .SHL_V, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F105400, 0xFFF0FC00, .NEON, {} }, { .SHL_V, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F105400, 0xFFF0FC00, .NEON, {} }, - { .SQSHL_V, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F107400, 0xFFF0FC00, .NEON, {} }, + { .SHL_V, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F105400, 0xFFF0FC00, .NEON, {} }, { .SQSHL_V, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F107400, 0xFFF0FC00, .NEON, {} }, + { .SQSHL_V, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F107400, 0xFFF0FC00, .NEON, {} }, { .SQSHLU, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F106400, 0xFFF0FC00, .NEON, {} }, { .SQSHLU, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F106400, 0xFFF0FC00, .NEON, {} }, { .SSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F100400, 0xFFF0FC00, .NEON, {} }, @@ -1139,8 +1171,8 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .USHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F100400, 0xFFF0FC00, .NEON, {} }, { .SSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F101400, 0xFFF0FC00, .NEON, {} }, { .SSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F101400, 0xFFF0FC00, .NEON, {} }, - { .USRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F101400, 0xFFF0FC00, .NEON, {} }, { .USRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F101400, 0xFFF0FC00, .NEON, {} }, + { .USRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F101400, 0xFFF0FC00, .NEON, {} }, { .SRSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F102400, 0xFFF0FC00, .NEON, {} }, { .SRSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F102400, 0xFFF0FC00, .NEON, {} }, { .URSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F102400, 0xFFF0FC00, .NEON, {} }, @@ -1149,10 +1181,10 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .SRSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F103400, 0xFFF0FC00, .NEON, {} }, { .URSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F103400, 0xFFF0FC00, .NEON, {} }, { .URSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F103400, 0xFFF0FC00, .NEON, {} }, - { .SLI, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F105400, 0xFFF0FC00, .NEON, {} }, { .SLI, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F105400, 0xFFF0FC00, .NEON, {} }, - { .SRI, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F104400, 0xFFF0FC00, .NEON, {} }, + { .SLI, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F105400, 0xFFF0FC00, .NEON, {} }, { .SRI, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F104400, 0xFFF0FC00, .NEON, {} }, + { .SRI, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F104400, 0xFFF0FC00, .NEON, {} }, { .SSHLL, {.V_4S,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F10A400, 0xFFF0FC00, .NEON, {} }, { .SSHLL2, {.V_4S,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F10A400, 0xFFF0FC00, .NEON, {} }, { .USHLL, {.V_4S,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F10A400, 0xFFF0FC00, .NEON, {} }, @@ -1173,8 +1205,8 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .SQSHRUN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F108400, 0xFFF0FC00, .NEON, {} }, { .SQRSHRUN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F108C00, 0xFFF0FC00, .NEON, {} }, { .SQRSHRUN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F108C00, 0xFFF0FC00, .NEON, {} }, - { .DUP_V, {.V_16B,.V_ELEM_B,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x4E010400, 0xFFE1FC00, .NEON, {} }, { .DUP_V, {.V_8B,.V_ELEM_B,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x0E010400, 0xFFE1FC00, .NEON, {} }, + { .DUP_V, {.V_16B,.V_ELEM_B,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x4E010400, 0xFFE1FC00, .NEON, {} }, { .INS, {.V_ELEM_S,.VEC_INDEX,.V_ELEM_S,.VEC_INDEX}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4}, 0x6E040400, 0xFFE79C00, .NEON, {} }, { .INS, {.V_ELEM_B,.VEC_INDEX,.W_REG,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE}, 0x4E011C00, 0xFFE1FC00, .NEON, {} }, { .SHA512H, {.Q_REG,.Q_REG,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE608000, 0xFFE0FC00, .CRYPTO, {} }, @@ -1790,10 +1822,10 @@ DECODE_ENTRIES := [2406]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} }, - { .CMN_IMM, {.XSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0xB100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=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} }, { .SUBG, {.XSP_REG,.XSP_REG,.IMM_6,.IMM_4}, {.RD,.RN,.IMM6,.IMM_HW}, 0xD1800000, 0xFFC0C000, .MTE, {is_64=true} }, { .ADD_IMM, {.XSP_REG,.XSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x91000000, 0xFF800000, .BASE, {is_64=true} }, @@ -1812,18 +1844,18 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .SXTB, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x13001C00, 0xFFFFFC00, .BASE, {} }, { .SXTH, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x13003C00, 0xFFFFFC00, .BASE, {} }, { .SXTW, {.X_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x93407C00, 0xFFFFFC00, .BASE, {is_64=true} }, - { .LSR_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x53007C00, 0xFFC0FC00, .BASE, {} }, { .LSR_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0xD340FC00, 0xFFC0FC00, .BASE, {is_64=true} }, - { .ASR_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x9340FC00, 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} }, { .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, {.X_REG,.X_REG,.X_REG,.IMM_6}, {.RD,.RN,.RM,.IMM6}, 0x93C00000, 0xFFE08000, .BASE, {is_64=true} }, { .EXTR, {.W_REG,.W_REG,.W_REG,.IMM_6}, {.RD,.RN,.RM,.IMM6}, 0x13800000, 0xFFE08000, .BASE, {} }, - { .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} }, + { .ROR_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.ENC_DUAL_RN_RM,.ENC_ROR_SHIFT,.NONE}, 0x13800000, 0xFFE00000, .BASE, {} }, { .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, {} }, @@ -2093,18 +2125,18 @@ DECODE_ENTRIES := [2406]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, {} }, + { .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, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59800000, 0xFFE00C00, .BASE, {is_64=true} }, + { .LDAPURSB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19C00000, 0xFFE00C00, .BASE, {} }, { .LDAPURSH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59C00000, 0xFFE00C00, .BASE, {} }, + { .LDAPURSH, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59800000, 0xFFE00C00, .BASE, {is_64=true} }, { .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} }, @@ -2192,8 +2224,8 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .ADC, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1A000000, 0xFFE0FC00, .BASE, {} }, { .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, {.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, {} }, + { .SBC, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xDA000000, 0xFFE0FC00, .BASE, {is_64=true} }, { .SBCS, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x7A000000, 0xFFE0FC00, .BASE, {sets_flags=true} }, { .SBCS, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xFA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=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} }, @@ -2224,21 +2256,21 @@ DECODE_ENTRIES := [2406]lib.Decode_Entry{ { .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} }, { .LDUR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x3CC00000, 0xFFE00C00, .NEON, {} }, - { .LDUR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xFC400000, 0xFFE00C00, .NEON, {} }, { .LDUR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xBC400000, 0xFFE00C00, .NEON, {} }, + { .LDUR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xFC400000, 0xFFE00C00, .NEON, {} }, + { .STUR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x3C800000, 0xFFE00C00, .NEON, {} }, { .STUR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xBC000000, 0xFFE00C00, .NEON, {} }, { .STUR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xFC000000, 0xFFE00C00, .NEON, {} }, - { .STUR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x3C800000, 0xFFE00C00, .NEON, {} }, { .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, {.H_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x7D400000, 0xFFC00000, .FP, {} }, { .STR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3D800000, 0xFFC00000, .FP, {} }, - { .STR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xBD000000, 0xFFC00000, .FP, {} }, - { .STR_V, {.H_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x7D000000, 0xFFC00000, .FP, {} }, { .STR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xFD000000, 0xFFC00000, .FP, {} }, { .STR_V, {.B_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3D000000, 0xFFC00000, .FP, {} }, + { .STR_V, {.H_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x7D000000, 0xFFC00000, .FP, {} }, + { .STR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xBD000000, 0xFFC00000, .FP, {} }, { .FMOV_REG, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E604000, 0xFFFFFC00, .FP, {} }, { .FMOV_REG, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E204000, 0xFFFFFC00, .FP, {} }, { .FMOV_GEN, {.D_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E670000, 0xFFFFFC00, .FP, {is_64=true} }, @@ -2423,15 +2455,15 @@ DECODE_INDEX_OP0 := [16]lib.Decode_Index{ 0x02 = { 77, 492}, 0x04 = { 569, 76}, 0x05 = { 645, 50}, - 0x06 = { 695, 24}, - 0x07 = { 719, 1062}, - 0x08 = {1781, 16}, - 0x09 = {1797, 34}, - 0x0A = {1831, 100}, - 0x0B = {1931, 21}, - 0x0C = {1952, 167}, - 0x0D = {2119, 92}, - 0x0E = {2211, 19}, - 0x0F = {2230, 176}, + 0x06 = { 695, 56}, + 0x07 = { 751, 1062}, + 0x08 = {1813, 16}, + 0x09 = {1829, 34}, + 0x0A = {1863, 100}, + 0x0B = {1963, 21}, + 0x0C = {1984, 167}, + 0x0D = {2151, 92}, + 0x0E = {2243, 19}, + 0x0F = {2262, 176}, } diff --git a/core/rexcode/arm64/tablegen/generated/encode_tables.odin b/core/rexcode/arm64/tablegen/generated/encode_tables.odin index 17b77cb3a..16a9a162e 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 := [2404]lib.Encoding{ +ENCODE_FORMS := [2436]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} }, @@ -2307,6 +2307,46 @@ ENCODE_FORMS := [2404]lib.Encoding{ { .LD3R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D40E000, 0xFFFFFC00, .NEON, {} }, // .LD4R { .LD4R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D60E000, 0xFFFFFC00, .NEON, {} }, + // .LD1_LANE + { .LD1_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D400000, 0xBFFFE000, .NEON, {} }, + { .LD1_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D404000, 0xBFFFE400, .NEON, {} }, + { .LD1_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D408000, 0xBFFFEC00, .NEON, {} }, + { .LD1_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D408400, 0xBFFFFC00, .NEON, {} }, + // .LD2_LANE + { .LD2_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D600000, 0xBFFFE000, .NEON, {} }, + { .LD2_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D604000, 0xBFFFE400, .NEON, {} }, + { .LD2_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D608000, 0xBFFFEC00, .NEON, {} }, + { .LD2_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D608400, 0xBFFFFC00, .NEON, {} }, + // .LD3_LANE + { .LD3_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D402000, 0xBFFFE000, .NEON, {} }, + { .LD3_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D406000, 0xBFFFE400, .NEON, {} }, + { .LD3_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D40A000, 0xBFFFEC00, .NEON, {} }, + { .LD3_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D40A400, 0xBFFFFC00, .NEON, {} }, + // .LD4_LANE + { .LD4_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D602000, 0xBFFFE000, .NEON, {} }, + { .LD4_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D606000, 0xBFFFE400, .NEON, {} }, + { .LD4_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D60A000, 0xBFFFEC00, .NEON, {} }, + { .LD4_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D60A400, 0xBFFFFC00, .NEON, {} }, + // .ST1_LANE + { .ST1_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D000000, 0xBFFFE000, .NEON, {} }, + { .ST1_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D004000, 0xBFFFE400, .NEON, {} }, + { .ST1_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D008000, 0xBFFFEC00, .NEON, {} }, + { .ST1_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D008400, 0xBFFFFC00, .NEON, {} }, + // .ST2_LANE + { .ST2_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D200000, 0xBFFFE000, .NEON, {} }, + { .ST2_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D204000, 0xBFFFE400, .NEON, {} }, + { .ST2_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D208000, 0xBFFFEC00, .NEON, {} }, + { .ST2_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D208400, 0xBFFFFC00, .NEON, {} }, + // .ST3_LANE + { .ST3_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D002000, 0xBFFFE000, .NEON, {} }, + { .ST3_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D006000, 0xBFFFE400, .NEON, {} }, + { .ST3_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D00A000, 0xBFFFEC00, .NEON, {} }, + { .ST3_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D00A400, 0xBFFFFC00, .NEON, {} }, + // .ST4_LANE + { .ST4_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D202000, 0xBFFFE000, .NEON, {} }, + { .ST4_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D206000, 0xBFFFE400, .NEON, {} }, + { .ST4_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D20A000, 0xBFFFEC00, .NEON, {} }, + { .ST4_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D20A400, 0xBFFFFC00, .NEON, {} }, // .LDR_V { .LDR_V, {.B_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3D400000, 0xFFC00000, .FP, {} }, { .LDR_V, {.H_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x7D400000, 0xFFC00000, .FP, {} }, @@ -4157,478 +4197,478 @@ ENCODE_RUNS := [lib.Mnemonic]lib.Encode_Run{ .LD2R = { 1654, 1}, .LD3R = { 1655, 1}, .LD4R = { 1656, 1}, - .LD1_LANE = { 1657, 0}, - .LD2_LANE = { 1657, 0}, - .LD3_LANE = { 1657, 0}, - .LD4_LANE = { 1657, 0}, - .ST1_LANE = { 1657, 0}, - .ST2_LANE = { 1657, 0}, - .ST3_LANE = { 1657, 0}, - .ST4_LANE = { 1657, 0}, - .LDR_V = { 1657, 5}, - .STR_V = { 1662, 5}, - .LDP_V = { 1667, 3}, - .STP_V = { 1670, 3}, - .LDUR_V = { 1673, 3}, - .STUR_V = { 1676, 3}, - .SVE_ADD_Z = { 1679, 4}, - .SVE_SUB_Z = { 1683, 4}, - .SVE_SQADD_Z = { 1687, 4}, - .SVE_UQADD_Z = { 1691, 4}, - .SVE_SQSUB_Z = { 1695, 4}, - .SVE_UQSUB_Z = { 1699, 4}, - .SVE_ADD_PRED = { 1703, 4}, - .SVE_SUB_PRED = { 1707, 4}, - .SVE_SUBR_PRED = { 1711, 4}, - .SVE_MUL_PRED = { 1715, 4}, - .SVE_SMULH_PRED = { 1719, 4}, - .SVE_UMULH_PRED = { 1723, 4}, - .SVE_SDIV_PRED = { 1727, 2}, - .SVE_UDIV_PRED = { 1729, 2}, - .SVE_SMAX_PRED = { 1731, 4}, - .SVE_UMAX_PRED = { 1735, 4}, - .SVE_SMIN_PRED = { 1739, 4}, - .SVE_UMIN_PRED = { 1743, 4}, - .SVE_SABD_PRED = { 1747, 4}, - .SVE_UABD_PRED = { 1751, 4}, - .SVE_AND_PRED = { 1755, 1}, - .SVE_ORR_PRED = { 1756, 1}, - .SVE_EOR_PRED = { 1757, 1}, - .SVE_BIC_PRED = { 1758, 1}, - .SVE_ASR_PRED = { 1759, 4}, - .SVE_LSL_PRED = { 1763, 4}, - .SVE_LSR_PRED = { 1767, 4}, - .SVE_ASRR_PRED = { 1771, 4}, - .SVE_LSLR_PRED = { 1775, 4}, - .SVE_LSRR_PRED = { 1779, 4}, - .SVE_ABS_PRED = { 1783, 4}, - .SVE_NEG_PRED = { 1787, 4}, - .SVE_CLS_PRED = { 1791, 4}, - .SVE_CLZ_PRED = { 1795, 4}, - .SVE_CNT_PRED = { 1799, 4}, - .SVE_MOV_PRED = { 1803, 4}, - .SVE_FADD_Z = { 1807, 3}, - .SVE_FSUB_Z = { 1810, 3}, - .SVE_FMUL_Z = { 1813, 3}, - .SVE_FRECPS = { 1816, 3}, - .SVE_FRSQRTS = { 1819, 3}, - .SVE_FTSMUL = { 1822, 3}, - .SVE_FADD_PRED = { 1825, 3}, - .SVE_FSUB_PRED = { 1828, 3}, - .SVE_FSUBR_PRED = { 1831, 3}, - .SVE_FMUL_PRED = { 1834, 3}, - .SVE_FDIV_PRED = { 1837, 3}, - .SVE_FDIVR_PRED = { 1840, 3}, - .SVE_FMAX_PRED = { 1843, 3}, - .SVE_FMIN_PRED = { 1846, 3}, - .SVE_FMAXNM_PRED = { 1849, 3}, - .SVE_FMINNM_PRED = { 1852, 3}, - .SVE_FABS_Z = { 1855, 3}, - .SVE_FNEG_Z = { 1858, 3}, - .SVE_FSQRT_Z = { 1861, 3}, - .SVE_FRECPX_Z = { 1864, 3}, - .SVE_FRINTN = { 1867, 3}, - .SVE_FRINTP = { 1870, 3}, - .SVE_FRINTM = { 1873, 3}, - .SVE_FRINTZ = { 1876, 3}, - .SVE_FRINTA = { 1879, 3}, - .SVE_FRINTX = { 1882, 3}, - .SVE_FRINTI = { 1885, 3}, - .SVE_FMLA = { 1888, 3}, - .SVE_FMLS = { 1891, 3}, - .SVE_FNMLA = { 1894, 3}, - .SVE_FNMLS = { 1897, 3}, - .SVE_AND_P = { 1900, 1}, - .SVE_BIC_P = { 1901, 1}, - .SVE_ORR_P = { 1902, 1}, - .SVE_EOR_P = { 1903, 1}, - .SVE_NAND_P = { 1904, 1}, - .SVE_NOR_P = { 1905, 1}, - .SVE_ORN_P = { 1906, 1}, - .SVE_SEL_P = { 1907, 1}, - .SVE_ANDS_P = { 1908, 1}, - .SVE_BICS_P = { 1909, 1}, - .SVE_ORRS_P = { 1910, 1}, - .SVE_EORS_P = { 1911, 1}, - .SVE_NANDS_P = { 1912, 1}, - .SVE_NORS_P = { 1913, 1}, - .SVE_ORNS_P = { 1914, 1}, - .SVE_NOT_P = { 1915, 1}, - .SVE_MOV_P = { 1916, 2}, - .SVE_MOVS_P = { 1918, 1}, - .SVE_PTRUE = { 1919, 1}, - .SVE_PTRUES = { 1920, 1}, - .SVE_PFALSE = { 1921, 1}, - .SVE_PFIRST = { 1922, 1}, - .SVE_PNEXT = { 1923, 1}, - .SVE_BRKA = { 1924, 1}, - .SVE_BRKB = { 1925, 1}, - .SVE_BRKAS = { 1926, 1}, - .SVE_BRKBS = { 1927, 1}, - .SVE_BRKPA = { 1928, 1}, - .SVE_BRKPB = { 1929, 1}, - .SVE_BRKN = { 1930, 1}, - .SVE_RDFFR = { 1931, 1}, - .SVE_WRFFR = { 1932, 1}, - .SVE_SETFFR = { 1933, 1}, - .SVE_CMPEQ = { 1934, 4}, - .SVE_CMPNE = { 1938, 4}, - .SVE_CMPGE = { 1942, 4}, - .SVE_CMPGT = { 1946, 4}, - .SVE_CMPLE = { 1950, 4}, - .SVE_CMPLT = { 1954, 4}, - .SVE_CMPHI = { 1958, 4}, - .SVE_CMPHS = { 1962, 4}, - .SVE_CMPLO = { 1966, 4}, - .SVE_CMPLS = { 1970, 4}, - .SVE_FCMEQ = { 1974, 3}, - .SVE_FCMNE = { 1977, 3}, - .SVE_FCMGE = { 1980, 3}, - .SVE_FCMGT = { 1983, 3}, - .SVE_FCMLE = { 1986, 3}, - .SVE_FCMLT = { 1989, 3}, - .SVE_FCMUO = { 1992, 3}, - .SVE_DUP_Z = { 1995, 4}, - .SVE_INSR = { 1999, 4}, - .SVE_REV_Z = { 2003, 4}, - .SVE_REV_P = { 2007, 1}, - .SVE_TBL = { 2008, 4}, - .SVE_ZIP1_Z = { 2012, 4}, - .SVE_ZIP2_Z = { 2016, 4}, - .SVE_UZP1_Z = { 2020, 4}, - .SVE_UZP2_Z = { 2024, 4}, - .SVE_TRN1_Z = { 2028, 4}, - .SVE_TRN2_Z = { 2032, 4}, - .SVE_ZIP1_P = { 2036, 1}, - .SVE_ZIP2_P = { 2037, 1}, - .SVE_UZP1_P = { 2038, 1}, - .SVE_UZP2_P = { 2039, 1}, - .SVE_TRN1_P = { 2040, 1}, - .SVE_TRN2_P = { 2041, 1}, - .SVE_CPY_Z = { 2042, 4}, - .SVE_COMPACT = { 2046, 2}, - .SVE_EXT_Z = { 2048, 1}, - .SVE_LD1B = { 2049, 1}, - .SVE_LD1H = { 2050, 1}, - .SVE_LD1W = { 2051, 1}, - .SVE_LD1D = { 2052, 1}, - .SVE_LD1SB = { 2053, 1}, - .SVE_LD1SH = { 2054, 1}, - .SVE_LD1SW = { 2055, 1}, - .SVE_ST1B = { 2056, 1}, - .SVE_ST1H = { 2057, 1}, - .SVE_ST1W = { 2058, 1}, - .SVE_ST1D = { 2059, 1}, - .SVE_LDR_Z = { 2060, 1}, - .SVE_STR_Z = { 2061, 1}, - .SVE_LDR_P = { 2062, 1}, - .SVE_STR_P = { 2063, 1}, - .SVE_LDFF1B = { 2064, 1}, - .SVE_LDFF1H = { 2065, 1}, - .SVE_LDFF1W = { 2066, 1}, - .SVE_LDFF1D = { 2067, 1}, - .SVE_WHILEGE = { 2068, 1}, - .SVE_WHILEGT = { 2069, 1}, - .SVE_WHILELE = { 2070, 1}, - .SVE_WHILELT = { 2071, 1}, - .SVE_WHILEHI = { 2072, 1}, - .SVE_WHILEHS = { 2073, 1}, - .SVE_WHILELO = { 2074, 1}, - .SVE_WHILELS = { 2075, 1}, - .SVE_SQRDMLAH = { 2076, 4}, - .SVE_SQRDMLSH = { 2080, 4}, - .SVE_ADCLB = { 2084, 2}, - .SVE_ADCLT = { 2086, 2}, - .SVE_SBCLB = { 2088, 2}, - .SVE_SBCLT = { 2090, 2}, - .SVE_TBL2 = { 2092, 1}, - .SVE_TBX = { 2093, 1}, - .SVE_AESE = { 2094, 1}, - .SVE_AESD = { 2095, 1}, - .SVE_AESMC = { 2096, 1}, - .SVE_AESIMC = { 2097, 1}, - .SVE_BCAX_Z = { 2098, 1}, - .SVE_XAR_Z = { 2099, 0}, - .SVE_EOR3_Z = { 2099, 1}, - .SVE_MATCH = { 2100, 2}, - .SVE_NMATCH = { 2102, 2}, - .SVE_HISTCNT = { 2104, 2}, - .SVE_HISTSEG = { 2106, 1}, - .SME_SMSTART = { 2107, 1}, - .SME_SMSTOP = { 2108, 1}, - .SME_RDSVL = { 2109, 1}, - .SME_ADDHA = { 2110, 1}, - .SME_ADDVA = { 2111, 1}, - .SME_ZERO = { 2112, 1}, - .SME_FMOPA = { 2113, 1}, - .SME_FMOPS = { 2114, 1}, - .SME_BFMOPA = { 2115, 1}, - .SME_BFMOPS = { 2116, 1}, - .SME_SMOPA = { 2117, 2}, - .SME_SMOPS = { 2119, 2}, - .SME_UMOPA = { 2121, 2}, - .SME_UMOPS = { 2123, 2}, - .SME_USMOPA = { 2125, 1}, - .SME_SUMOPA = { 2126, 1}, - .SME_MOVA_TO_Z = { 2127, 0}, - .SME_MOVA_TO_ZA = { 2127, 0}, - .SME_LD1B_ZA = { 2127, 0}, - .SME_LD1H_ZA = { 2127, 0}, - .SME_LD1W_ZA = { 2127, 0}, - .SME_LD1D_ZA = { 2127, 0}, - .SME_LD1Q_ZA = { 2127, 0}, - .SME_ST1B_ZA = { 2127, 0}, - .SME_ST1H_ZA = { 2127, 0}, - .SME_ST1W_ZA = { 2127, 0}, - .SME_ST1D_ZA = { 2127, 0}, - .SME_ST1Q_ZA = { 2127, 0}, - .SME_LDR_ZA = { 2127, 1}, - .SME_STR_ZA = { 2128, 1}, - .SVE_FMLA_IDX_H = { 2129, 1}, - .SVE_FMLA_IDX_S = { 2130, 1}, - .SVE_FMLA_IDX_D = { 2131, 1}, - .SVE_FMLS_IDX_H = { 2132, 1}, - .SVE_FMLS_IDX_S = { 2133, 1}, - .SVE_FMLS_IDX_D = { 2134, 1}, - .SVE_LD1B_GATHER_S = { 2135, 1}, - .SVE_LD1B_GATHER_D = { 2136, 1}, - .SVE_LD1H_GATHER_S = { 2137, 1}, - .SVE_LD1H_GATHER_D = { 2138, 1}, - .SVE_LD1W_GATHER_S = { 2139, 1}, - .SVE_LD1W_GATHER_D = { 2140, 1}, - .SVE_LD1D_GATHER_D = { 2141, 1}, - .SVE_LD1SB_GATHER_S = { 2142, 1}, - .SVE_LD1SB_GATHER_D = { 2143, 1}, - .SVE_LD1SH_GATHER_S = { 2144, 1}, - .SVE_LD1SH_GATHER_D = { 2145, 1}, - .SVE_LD1SW_GATHER_D = { 2146, 1}, - .SVE_ST1B_SCATTER_S = { 2147, 1}, - .SVE_ST1B_SCATTER_D = { 2148, 1}, - .SVE_ST1H_SCATTER_S = { 2149, 1}, - .SVE_ST1H_SCATTER_D = { 2150, 1}, - .SVE_ST1W_SCATTER_S = { 2151, 1}, - .SVE_ST1W_SCATTER_D = { 2152, 1}, - .SVE_ST1D_SCATTER_D = { 2153, 1}, - .SME_LD1B_TILE = { 2154, 1}, - .SME_LD1H_TILE = { 2155, 1}, - .SME_LD1W_TILE = { 2156, 1}, - .SME_LD1D_TILE = { 2157, 1}, - .SME_LD1Q_TILE = { 2158, 1}, - .SME_ST1B_TILE = { 2159, 1}, - .SME_ST1H_TILE = { 2160, 1}, - .SME_ST1W_TILE = { 2161, 1}, - .SME_ST1D_TILE = { 2162, 1}, - .SME_ST1Q_TILE = { 2163, 1}, - .SME_MOVA_Z_FROM_TILE = { 2164, 1}, - .SME_MOVA_TILE_FROM_Z = { 2165, 1}, - .FCMLA_4H = { 2166, 1}, - .FCMLA_8H = { 2167, 1}, - .FCMLA_4S = { 2168, 1}, - .FCMLA_2D = { 2169, 1}, - .FCADD_4H = { 2170, 1}, - .FCADD_8H = { 2171, 1}, - .FCADD_4S = { 2172, 1}, - .FCADD_2D = { 2173, 1}, - .SVE_PRFB = { 2174, 1}, - .SVE_PRFH = { 2175, 1}, - .SVE_PRFW = { 2176, 1}, - .SVE_PRFD = { 2177, 1}, - .SVE_LDNT1B = { 2178, 1}, - .SVE_LDNT1H = { 2179, 1}, - .SVE_LDNT1W = { 2180, 1}, - .SVE_LDNT1D = { 2181, 1}, - .SVE_STNT1B = { 2182, 1}, - .SVE_STNT1H = { 2183, 1}, - .SVE_STNT1W = { 2184, 1}, - .SVE_STNT1D = { 2185, 1}, - .SVE_EXT = { 2186, 1}, - .SVE_SPLICE = { 2187, 1}, - .SVE_INDEX_II = { 2188, 1}, - .SVE_INDEX_IR = { 2189, 1}, - .SVE_INDEX_RI = { 2190, 1}, - .SVE_INDEX_RR = { 2191, 1}, - .SVE_BSL = { 2192, 1}, - .SVE_BSL1N = { 2193, 1}, - .SVE_BSL2N = { 2194, 1}, - .SVE_NBSL = { 2195, 1}, - .SVE_PMUL_VEC = { 2196, 1}, - .SVE_PMULLB = { 2197, 1}, - .SVE_PMULLT = { 2198, 1}, - .SVE_BFCVT = { 2199, 1}, - .SVE_BFCVTNT = { 2200, 1}, - .LDRAA = { 2201, 1}, - .LDRAB = { 2202, 1}, - .LDRAA_PRE = { 2203, 1}, - .LDRAB_PRE = { 2204, 1}, - .TSTART = { 2205, 1}, - .TCOMMIT = { 2206, 1}, - .TCANCEL = { 2207, 1}, - .TTEST = { 2208, 1}, - .WFET = { 2209, 1}, - .WFIT = { 2210, 1}, - .BC_COND = { 2211, 1}, - .UXTB = { 2212, 1}, - .UXTH = { 2213, 1}, - .UXTW = { 2214, 1}, - .SXTB = { 2215, 1}, - .SXTH = { 2216, 1}, - .SXTW = { 2217, 1}, - .ADC = { 2218, 2}, - .ADCS = { 2220, 2}, - .SBC = { 2222, 2}, - .SBCS = { 2224, 2}, - .NGC = { 2226, 2}, - .NGCS = { 2228, 2}, - .LDAPUR = { 2230, 2}, - .STLUR = { 2232, 2}, - .LDAPURB = { 2234, 1}, - .STLURB = { 2235, 1}, - .LDAPURH = { 2236, 1}, - .STLURH = { 2237, 1}, - .LDAPURSB = { 2238, 2}, - .LDAPURSH = { 2240, 2}, - .LDAPURSW = { 2242, 1}, - .SVE_BFADD = { 2243, 1}, - .SVE_BFSUB = { 2244, 1}, - .SVE_BFMUL = { 2245, 1}, - .SVE_BFMLA = { 2246, 1}, - .SVE_BFMLS = { 2247, 1}, - .SB = { 2248, 1}, - .CSDB = { 2249, 1}, - .DGH = { 2250, 1}, - .PSB_CSYNC = { 2251, 1}, - .TSB_CSYNC = { 2252, 1}, - .BTI_J = { 2253, 1}, - .BTI_C = { 2254, 1}, - .BTI_JC = { 2255, 1}, - .MOV_V_ALIAS = { 2256, 2}, - .NOT_V_ALIAS = { 2258, 2}, - .LSL_IMM = { 2260, 2}, - .LSR_IMM = { 2262, 2}, - .ASR_IMM = { 2264, 2}, - .ROR_IMM = { 2266, 2}, - .SVE_BFADD_UNPRED = { 2268, 1}, - .SVE_BFSUB_UNPRED = { 2269, 1}, - .SVE_BFMUL_UNPRED = { 2270, 1}, - .SVE_BFCLAMP = { 2271, 1}, - .SVE_BFMAXNM = { 2272, 1}, - .SVE_BFMINNM = { 2273, 1}, - .SME2_LUTI2_B = { 2274, 1}, - .SME2_LUTI4_B = { 2275, 1}, - .SME2_LD1B_X2 = { 2276, 1}, - .SME2_LD1H_X2 = { 2277, 1}, - .SME2_LD1W_X2 = { 2278, 1}, - .SME2_LD1D_X2 = { 2279, 1}, - .SME2_LD1B_X4 = { 2280, 1}, - .SME2_LD1H_X4 = { 2281, 1}, - .SME2_LD1W_X4 = { 2282, 1}, - .SME2_LD1D_X4 = { 2283, 1}, - .SME2_ST1B_X2 = { 2284, 1}, - .SME2_ST1H_X2 = { 2285, 1}, - .SME2_ST1W_X2 = { 2286, 1}, - .SME2_ST1D_X2 = { 2287, 1}, - .SME2_ST1B_X4 = { 2288, 1}, - .SME2_ST1H_X4 = { 2289, 1}, - .SME2_ST1W_X4 = { 2290, 1}, - .SME2_ST1D_X4 = { 2291, 1}, - .SME2_ZIP_3 = { 2292, 1}, - .SME2_ZIP_4 = { 2293, 1}, - .SME2_UZP_3 = { 2294, 1}, - .SME2_UZP_4 = { 2295, 1}, - .TLBI_RPALOS = { 2296, 1}, - .TLBI_RPAOS = { 2297, 1}, - .AT_S1E1A = { 2298, 1}, - .DC_CIPAPA = { 2299, 1}, - .DC_CIGDPAPA = { 2300, 1}, - .TLBI_PAALL = { 2301, 1}, - .TLBI_PAALLOS = { 2302, 1}, - .AMX_LDX = { 2303, 1}, - .AMX_LDY = { 2304, 1}, - .AMX_STX = { 2305, 1}, - .AMX_STY = { 2306, 1}, - .AMX_LDZ = { 2307, 1}, - .AMX_STZ = { 2308, 1}, - .AMX_LDZI = { 2309, 1}, - .AMX_STZI = { 2310, 1}, - .AMX_EXTRX = { 2311, 1}, - .AMX_EXTRY = { 2312, 1}, - .AMX_FMA64 = { 2313, 1}, - .AMX_FMS64 = { 2314, 1}, - .AMX_FMA32 = { 2315, 1}, - .AMX_FMS32 = { 2316, 1}, - .AMX_MAC16 = { 2317, 1}, - .AMX_FMA16 = { 2318, 1}, - .AMX_FMS16 = { 2319, 1}, - .AMX_SET = { 2320, 1}, - .AMX_CLR = { 2321, 1}, - .AMX_VECINT = { 2322, 1}, - .AMX_VECFP = { 2323, 1}, - .AMX_MATINT = { 2324, 1}, - .AMX_MATFP = { 2325, 1}, - .AMX_GENLUT = { 2326, 1}, - .CPYP = { 2327, 1}, - .CPYM = { 2328, 1}, - .CPYE = { 2329, 1}, - .CPYFP = { 2330, 1}, - .CPYFM = { 2331, 1}, - .CPYFE = { 2332, 1}, - .SETP = { 2333, 1}, - .SETM = { 2334, 1}, - .SETE = { 2335, 1}, - .DC_IVAC = { 2336, 1}, - .DC_ISW = { 2337, 1}, - .DC_CSW = { 2338, 1}, - .DC_CISW = { 2339, 1}, - .DC_ZVA = { 2340, 1}, - .DC_CVAC = { 2341, 1}, - .DC_CVAU = { 2342, 1}, - .DC_CIVAC = { 2343, 1}, - .IC_IALLUIS = { 2344, 1}, - .IC_IALLU = { 2345, 1}, - .IC_IVAU = { 2346, 1}, - .AT_S1E1R = { 2347, 1}, - .AT_S1E1W = { 2348, 1}, - .AT_S1E0R = { 2349, 1}, - .AT_S1E0W = { 2350, 1}, - .AT_S1E2R = { 2351, 1}, - .AT_S1E2W = { 2352, 1}, - .AT_S1E3R = { 2353, 1}, - .AT_S1E3W = { 2354, 1}, - .AT_S12E1R = { 2355, 1}, - .AT_S12E1W = { 2356, 1}, - .AT_S12E0R = { 2357, 1}, - .AT_S12E0W = { 2358, 1}, - .TLBI_VMALLE1 = { 2359, 1}, - .TLBI_VMALLE1IS = { 2360, 1}, - .TLBI_VAE1 = { 2361, 1}, - .TLBI_VAE1IS = { 2362, 1}, - .TLBI_ASIDE1 = { 2363, 1}, - .TLBI_ASIDE1IS = { 2364, 1}, - .TLBI_VAAE1 = { 2365, 1}, - .TLBI_VAAE1IS = { 2366, 1}, - .TLBI_VALE1 = { 2367, 1}, - .TLBI_VALE1IS = { 2368, 1}, - .TLBI_VAALE1 = { 2369, 1}, - .TLBI_VAALE1IS = { 2370, 1}, - .TLBI_ALLE1 = { 2371, 1}, - .TLBI_ALLE1IS = { 2372, 1}, - .TLBI_ALLE2 = { 2373, 1}, - .TLBI_ALLE2IS = { 2374, 1}, - .TLBI_ALLE3 = { 2375, 1}, - .TLBI_ALLE3IS = { 2376, 1}, - .PRFM = { 2377, 1}, - .PRFUM = { 2378, 1}, - .PRFM_LIT = { 2379, 1}, - .MOV_REG = { 2380, 2}, - .MOV_BITMASK = { 2382, 2}, - .MVN = { 2384, 2}, - .NEG_SR = { 2386, 2}, - .NEGS = { 2388, 2}, - .CMP_SR = { 2390, 2}, - .CMP_ER = { 2392, 2}, - .CMP_IMM = { 2394, 2}, - .CMN_SR = { 2396, 2}, - .CMN_ER = { 2398, 2}, - .CMN_IMM = { 2400, 2}, - .TST_SR = { 2402, 2}, + .LD1_LANE = { 1657, 4}, + .LD2_LANE = { 1661, 4}, + .LD3_LANE = { 1665, 4}, + .LD4_LANE = { 1669, 4}, + .ST1_LANE = { 1673, 4}, + .ST2_LANE = { 1677, 4}, + .ST3_LANE = { 1681, 4}, + .ST4_LANE = { 1685, 4}, + .LDR_V = { 1689, 5}, + .STR_V = { 1694, 5}, + .LDP_V = { 1699, 3}, + .STP_V = { 1702, 3}, + .LDUR_V = { 1705, 3}, + .STUR_V = { 1708, 3}, + .SVE_ADD_Z = { 1711, 4}, + .SVE_SUB_Z = { 1715, 4}, + .SVE_SQADD_Z = { 1719, 4}, + .SVE_UQADD_Z = { 1723, 4}, + .SVE_SQSUB_Z = { 1727, 4}, + .SVE_UQSUB_Z = { 1731, 4}, + .SVE_ADD_PRED = { 1735, 4}, + .SVE_SUB_PRED = { 1739, 4}, + .SVE_SUBR_PRED = { 1743, 4}, + .SVE_MUL_PRED = { 1747, 4}, + .SVE_SMULH_PRED = { 1751, 4}, + .SVE_UMULH_PRED = { 1755, 4}, + .SVE_SDIV_PRED = { 1759, 2}, + .SVE_UDIV_PRED = { 1761, 2}, + .SVE_SMAX_PRED = { 1763, 4}, + .SVE_UMAX_PRED = { 1767, 4}, + .SVE_SMIN_PRED = { 1771, 4}, + .SVE_UMIN_PRED = { 1775, 4}, + .SVE_SABD_PRED = { 1779, 4}, + .SVE_UABD_PRED = { 1783, 4}, + .SVE_AND_PRED = { 1787, 1}, + .SVE_ORR_PRED = { 1788, 1}, + .SVE_EOR_PRED = { 1789, 1}, + .SVE_BIC_PRED = { 1790, 1}, + .SVE_ASR_PRED = { 1791, 4}, + .SVE_LSL_PRED = { 1795, 4}, + .SVE_LSR_PRED = { 1799, 4}, + .SVE_ASRR_PRED = { 1803, 4}, + .SVE_LSLR_PRED = { 1807, 4}, + .SVE_LSRR_PRED = { 1811, 4}, + .SVE_ABS_PRED = { 1815, 4}, + .SVE_NEG_PRED = { 1819, 4}, + .SVE_CLS_PRED = { 1823, 4}, + .SVE_CLZ_PRED = { 1827, 4}, + .SVE_CNT_PRED = { 1831, 4}, + .SVE_MOV_PRED = { 1835, 4}, + .SVE_FADD_Z = { 1839, 3}, + .SVE_FSUB_Z = { 1842, 3}, + .SVE_FMUL_Z = { 1845, 3}, + .SVE_FRECPS = { 1848, 3}, + .SVE_FRSQRTS = { 1851, 3}, + .SVE_FTSMUL = { 1854, 3}, + .SVE_FADD_PRED = { 1857, 3}, + .SVE_FSUB_PRED = { 1860, 3}, + .SVE_FSUBR_PRED = { 1863, 3}, + .SVE_FMUL_PRED = { 1866, 3}, + .SVE_FDIV_PRED = { 1869, 3}, + .SVE_FDIVR_PRED = { 1872, 3}, + .SVE_FMAX_PRED = { 1875, 3}, + .SVE_FMIN_PRED = { 1878, 3}, + .SVE_FMAXNM_PRED = { 1881, 3}, + .SVE_FMINNM_PRED = { 1884, 3}, + .SVE_FABS_Z = { 1887, 3}, + .SVE_FNEG_Z = { 1890, 3}, + .SVE_FSQRT_Z = { 1893, 3}, + .SVE_FRECPX_Z = { 1896, 3}, + .SVE_FRINTN = { 1899, 3}, + .SVE_FRINTP = { 1902, 3}, + .SVE_FRINTM = { 1905, 3}, + .SVE_FRINTZ = { 1908, 3}, + .SVE_FRINTA = { 1911, 3}, + .SVE_FRINTX = { 1914, 3}, + .SVE_FRINTI = { 1917, 3}, + .SVE_FMLA = { 1920, 3}, + .SVE_FMLS = { 1923, 3}, + .SVE_FNMLA = { 1926, 3}, + .SVE_FNMLS = { 1929, 3}, + .SVE_AND_P = { 1932, 1}, + .SVE_BIC_P = { 1933, 1}, + .SVE_ORR_P = { 1934, 1}, + .SVE_EOR_P = { 1935, 1}, + .SVE_NAND_P = { 1936, 1}, + .SVE_NOR_P = { 1937, 1}, + .SVE_ORN_P = { 1938, 1}, + .SVE_SEL_P = { 1939, 1}, + .SVE_ANDS_P = { 1940, 1}, + .SVE_BICS_P = { 1941, 1}, + .SVE_ORRS_P = { 1942, 1}, + .SVE_EORS_P = { 1943, 1}, + .SVE_NANDS_P = { 1944, 1}, + .SVE_NORS_P = { 1945, 1}, + .SVE_ORNS_P = { 1946, 1}, + .SVE_NOT_P = { 1947, 1}, + .SVE_MOV_P = { 1948, 2}, + .SVE_MOVS_P = { 1950, 1}, + .SVE_PTRUE = { 1951, 1}, + .SVE_PTRUES = { 1952, 1}, + .SVE_PFALSE = { 1953, 1}, + .SVE_PFIRST = { 1954, 1}, + .SVE_PNEXT = { 1955, 1}, + .SVE_BRKA = { 1956, 1}, + .SVE_BRKB = { 1957, 1}, + .SVE_BRKAS = { 1958, 1}, + .SVE_BRKBS = { 1959, 1}, + .SVE_BRKPA = { 1960, 1}, + .SVE_BRKPB = { 1961, 1}, + .SVE_BRKN = { 1962, 1}, + .SVE_RDFFR = { 1963, 1}, + .SVE_WRFFR = { 1964, 1}, + .SVE_SETFFR = { 1965, 1}, + .SVE_CMPEQ = { 1966, 4}, + .SVE_CMPNE = { 1970, 4}, + .SVE_CMPGE = { 1974, 4}, + .SVE_CMPGT = { 1978, 4}, + .SVE_CMPLE = { 1982, 4}, + .SVE_CMPLT = { 1986, 4}, + .SVE_CMPHI = { 1990, 4}, + .SVE_CMPHS = { 1994, 4}, + .SVE_CMPLO = { 1998, 4}, + .SVE_CMPLS = { 2002, 4}, + .SVE_FCMEQ = { 2006, 3}, + .SVE_FCMNE = { 2009, 3}, + .SVE_FCMGE = { 2012, 3}, + .SVE_FCMGT = { 2015, 3}, + .SVE_FCMLE = { 2018, 3}, + .SVE_FCMLT = { 2021, 3}, + .SVE_FCMUO = { 2024, 3}, + .SVE_DUP_Z = { 2027, 4}, + .SVE_INSR = { 2031, 4}, + .SVE_REV_Z = { 2035, 4}, + .SVE_REV_P = { 2039, 1}, + .SVE_TBL = { 2040, 4}, + .SVE_ZIP1_Z = { 2044, 4}, + .SVE_ZIP2_Z = { 2048, 4}, + .SVE_UZP1_Z = { 2052, 4}, + .SVE_UZP2_Z = { 2056, 4}, + .SVE_TRN1_Z = { 2060, 4}, + .SVE_TRN2_Z = { 2064, 4}, + .SVE_ZIP1_P = { 2068, 1}, + .SVE_ZIP2_P = { 2069, 1}, + .SVE_UZP1_P = { 2070, 1}, + .SVE_UZP2_P = { 2071, 1}, + .SVE_TRN1_P = { 2072, 1}, + .SVE_TRN2_P = { 2073, 1}, + .SVE_CPY_Z = { 2074, 4}, + .SVE_COMPACT = { 2078, 2}, + .SVE_EXT_Z = { 2080, 1}, + .SVE_LD1B = { 2081, 1}, + .SVE_LD1H = { 2082, 1}, + .SVE_LD1W = { 2083, 1}, + .SVE_LD1D = { 2084, 1}, + .SVE_LD1SB = { 2085, 1}, + .SVE_LD1SH = { 2086, 1}, + .SVE_LD1SW = { 2087, 1}, + .SVE_ST1B = { 2088, 1}, + .SVE_ST1H = { 2089, 1}, + .SVE_ST1W = { 2090, 1}, + .SVE_ST1D = { 2091, 1}, + .SVE_LDR_Z = { 2092, 1}, + .SVE_STR_Z = { 2093, 1}, + .SVE_LDR_P = { 2094, 1}, + .SVE_STR_P = { 2095, 1}, + .SVE_LDFF1B = { 2096, 1}, + .SVE_LDFF1H = { 2097, 1}, + .SVE_LDFF1W = { 2098, 1}, + .SVE_LDFF1D = { 2099, 1}, + .SVE_WHILEGE = { 2100, 1}, + .SVE_WHILEGT = { 2101, 1}, + .SVE_WHILELE = { 2102, 1}, + .SVE_WHILELT = { 2103, 1}, + .SVE_WHILEHI = { 2104, 1}, + .SVE_WHILEHS = { 2105, 1}, + .SVE_WHILELO = { 2106, 1}, + .SVE_WHILELS = { 2107, 1}, + .SVE_SQRDMLAH = { 2108, 4}, + .SVE_SQRDMLSH = { 2112, 4}, + .SVE_ADCLB = { 2116, 2}, + .SVE_ADCLT = { 2118, 2}, + .SVE_SBCLB = { 2120, 2}, + .SVE_SBCLT = { 2122, 2}, + .SVE_TBL2 = { 2124, 1}, + .SVE_TBX = { 2125, 1}, + .SVE_AESE = { 2126, 1}, + .SVE_AESD = { 2127, 1}, + .SVE_AESMC = { 2128, 1}, + .SVE_AESIMC = { 2129, 1}, + .SVE_BCAX_Z = { 2130, 1}, + .SVE_XAR_Z = { 2131, 0}, + .SVE_EOR3_Z = { 2131, 1}, + .SVE_MATCH = { 2132, 2}, + .SVE_NMATCH = { 2134, 2}, + .SVE_HISTCNT = { 2136, 2}, + .SVE_HISTSEG = { 2138, 1}, + .SME_SMSTART = { 2139, 1}, + .SME_SMSTOP = { 2140, 1}, + .SME_RDSVL = { 2141, 1}, + .SME_ADDHA = { 2142, 1}, + .SME_ADDVA = { 2143, 1}, + .SME_ZERO = { 2144, 1}, + .SME_FMOPA = { 2145, 1}, + .SME_FMOPS = { 2146, 1}, + .SME_BFMOPA = { 2147, 1}, + .SME_BFMOPS = { 2148, 1}, + .SME_SMOPA = { 2149, 2}, + .SME_SMOPS = { 2151, 2}, + .SME_UMOPA = { 2153, 2}, + .SME_UMOPS = { 2155, 2}, + .SME_USMOPA = { 2157, 1}, + .SME_SUMOPA = { 2158, 1}, + .SME_MOVA_TO_Z = { 2159, 0}, + .SME_MOVA_TO_ZA = { 2159, 0}, + .SME_LD1B_ZA = { 2159, 0}, + .SME_LD1H_ZA = { 2159, 0}, + .SME_LD1W_ZA = { 2159, 0}, + .SME_LD1D_ZA = { 2159, 0}, + .SME_LD1Q_ZA = { 2159, 0}, + .SME_ST1B_ZA = { 2159, 0}, + .SME_ST1H_ZA = { 2159, 0}, + .SME_ST1W_ZA = { 2159, 0}, + .SME_ST1D_ZA = { 2159, 0}, + .SME_ST1Q_ZA = { 2159, 0}, + .SME_LDR_ZA = { 2159, 1}, + .SME_STR_ZA = { 2160, 1}, + .SVE_FMLA_IDX_H = { 2161, 1}, + .SVE_FMLA_IDX_S = { 2162, 1}, + .SVE_FMLA_IDX_D = { 2163, 1}, + .SVE_FMLS_IDX_H = { 2164, 1}, + .SVE_FMLS_IDX_S = { 2165, 1}, + .SVE_FMLS_IDX_D = { 2166, 1}, + .SVE_LD1B_GATHER_S = { 2167, 1}, + .SVE_LD1B_GATHER_D = { 2168, 1}, + .SVE_LD1H_GATHER_S = { 2169, 1}, + .SVE_LD1H_GATHER_D = { 2170, 1}, + .SVE_LD1W_GATHER_S = { 2171, 1}, + .SVE_LD1W_GATHER_D = { 2172, 1}, + .SVE_LD1D_GATHER_D = { 2173, 1}, + .SVE_LD1SB_GATHER_S = { 2174, 1}, + .SVE_LD1SB_GATHER_D = { 2175, 1}, + .SVE_LD1SH_GATHER_S = { 2176, 1}, + .SVE_LD1SH_GATHER_D = { 2177, 1}, + .SVE_LD1SW_GATHER_D = { 2178, 1}, + .SVE_ST1B_SCATTER_S = { 2179, 1}, + .SVE_ST1B_SCATTER_D = { 2180, 1}, + .SVE_ST1H_SCATTER_S = { 2181, 1}, + .SVE_ST1H_SCATTER_D = { 2182, 1}, + .SVE_ST1W_SCATTER_S = { 2183, 1}, + .SVE_ST1W_SCATTER_D = { 2184, 1}, + .SVE_ST1D_SCATTER_D = { 2185, 1}, + .SME_LD1B_TILE = { 2186, 1}, + .SME_LD1H_TILE = { 2187, 1}, + .SME_LD1W_TILE = { 2188, 1}, + .SME_LD1D_TILE = { 2189, 1}, + .SME_LD1Q_TILE = { 2190, 1}, + .SME_ST1B_TILE = { 2191, 1}, + .SME_ST1H_TILE = { 2192, 1}, + .SME_ST1W_TILE = { 2193, 1}, + .SME_ST1D_TILE = { 2194, 1}, + .SME_ST1Q_TILE = { 2195, 1}, + .SME_MOVA_Z_FROM_TILE = { 2196, 1}, + .SME_MOVA_TILE_FROM_Z = { 2197, 1}, + .FCMLA_4H = { 2198, 1}, + .FCMLA_8H = { 2199, 1}, + .FCMLA_4S = { 2200, 1}, + .FCMLA_2D = { 2201, 1}, + .FCADD_4H = { 2202, 1}, + .FCADD_8H = { 2203, 1}, + .FCADD_4S = { 2204, 1}, + .FCADD_2D = { 2205, 1}, + .SVE_PRFB = { 2206, 1}, + .SVE_PRFH = { 2207, 1}, + .SVE_PRFW = { 2208, 1}, + .SVE_PRFD = { 2209, 1}, + .SVE_LDNT1B = { 2210, 1}, + .SVE_LDNT1H = { 2211, 1}, + .SVE_LDNT1W = { 2212, 1}, + .SVE_LDNT1D = { 2213, 1}, + .SVE_STNT1B = { 2214, 1}, + .SVE_STNT1H = { 2215, 1}, + .SVE_STNT1W = { 2216, 1}, + .SVE_STNT1D = { 2217, 1}, + .SVE_EXT = { 2218, 1}, + .SVE_SPLICE = { 2219, 1}, + .SVE_INDEX_II = { 2220, 1}, + .SVE_INDEX_IR = { 2221, 1}, + .SVE_INDEX_RI = { 2222, 1}, + .SVE_INDEX_RR = { 2223, 1}, + .SVE_BSL = { 2224, 1}, + .SVE_BSL1N = { 2225, 1}, + .SVE_BSL2N = { 2226, 1}, + .SVE_NBSL = { 2227, 1}, + .SVE_PMUL_VEC = { 2228, 1}, + .SVE_PMULLB = { 2229, 1}, + .SVE_PMULLT = { 2230, 1}, + .SVE_BFCVT = { 2231, 1}, + .SVE_BFCVTNT = { 2232, 1}, + .LDRAA = { 2233, 1}, + .LDRAB = { 2234, 1}, + .LDRAA_PRE = { 2235, 1}, + .LDRAB_PRE = { 2236, 1}, + .TSTART = { 2237, 1}, + .TCOMMIT = { 2238, 1}, + .TCANCEL = { 2239, 1}, + .TTEST = { 2240, 1}, + .WFET = { 2241, 1}, + .WFIT = { 2242, 1}, + .BC_COND = { 2243, 1}, + .UXTB = { 2244, 1}, + .UXTH = { 2245, 1}, + .UXTW = { 2246, 1}, + .SXTB = { 2247, 1}, + .SXTH = { 2248, 1}, + .SXTW = { 2249, 1}, + .ADC = { 2250, 2}, + .ADCS = { 2252, 2}, + .SBC = { 2254, 2}, + .SBCS = { 2256, 2}, + .NGC = { 2258, 2}, + .NGCS = { 2260, 2}, + .LDAPUR = { 2262, 2}, + .STLUR = { 2264, 2}, + .LDAPURB = { 2266, 1}, + .STLURB = { 2267, 1}, + .LDAPURH = { 2268, 1}, + .STLURH = { 2269, 1}, + .LDAPURSB = { 2270, 2}, + .LDAPURSH = { 2272, 2}, + .LDAPURSW = { 2274, 1}, + .SVE_BFADD = { 2275, 1}, + .SVE_BFSUB = { 2276, 1}, + .SVE_BFMUL = { 2277, 1}, + .SVE_BFMLA = { 2278, 1}, + .SVE_BFMLS = { 2279, 1}, + .SB = { 2280, 1}, + .CSDB = { 2281, 1}, + .DGH = { 2282, 1}, + .PSB_CSYNC = { 2283, 1}, + .TSB_CSYNC = { 2284, 1}, + .BTI_J = { 2285, 1}, + .BTI_C = { 2286, 1}, + .BTI_JC = { 2287, 1}, + .MOV_V_ALIAS = { 2288, 2}, + .NOT_V_ALIAS = { 2290, 2}, + .LSL_IMM = { 2292, 2}, + .LSR_IMM = { 2294, 2}, + .ASR_IMM = { 2296, 2}, + .ROR_IMM = { 2298, 2}, + .SVE_BFADD_UNPRED = { 2300, 1}, + .SVE_BFSUB_UNPRED = { 2301, 1}, + .SVE_BFMUL_UNPRED = { 2302, 1}, + .SVE_BFCLAMP = { 2303, 1}, + .SVE_BFMAXNM = { 2304, 1}, + .SVE_BFMINNM = { 2305, 1}, + .SME2_LUTI2_B = { 2306, 1}, + .SME2_LUTI4_B = { 2307, 1}, + .SME2_LD1B_X2 = { 2308, 1}, + .SME2_LD1H_X2 = { 2309, 1}, + .SME2_LD1W_X2 = { 2310, 1}, + .SME2_LD1D_X2 = { 2311, 1}, + .SME2_LD1B_X4 = { 2312, 1}, + .SME2_LD1H_X4 = { 2313, 1}, + .SME2_LD1W_X4 = { 2314, 1}, + .SME2_LD1D_X4 = { 2315, 1}, + .SME2_ST1B_X2 = { 2316, 1}, + .SME2_ST1H_X2 = { 2317, 1}, + .SME2_ST1W_X2 = { 2318, 1}, + .SME2_ST1D_X2 = { 2319, 1}, + .SME2_ST1B_X4 = { 2320, 1}, + .SME2_ST1H_X4 = { 2321, 1}, + .SME2_ST1W_X4 = { 2322, 1}, + .SME2_ST1D_X4 = { 2323, 1}, + .SME2_ZIP_3 = { 2324, 1}, + .SME2_ZIP_4 = { 2325, 1}, + .SME2_UZP_3 = { 2326, 1}, + .SME2_UZP_4 = { 2327, 1}, + .TLBI_RPALOS = { 2328, 1}, + .TLBI_RPAOS = { 2329, 1}, + .AT_S1E1A = { 2330, 1}, + .DC_CIPAPA = { 2331, 1}, + .DC_CIGDPAPA = { 2332, 1}, + .TLBI_PAALL = { 2333, 1}, + .TLBI_PAALLOS = { 2334, 1}, + .AMX_LDX = { 2335, 1}, + .AMX_LDY = { 2336, 1}, + .AMX_STX = { 2337, 1}, + .AMX_STY = { 2338, 1}, + .AMX_LDZ = { 2339, 1}, + .AMX_STZ = { 2340, 1}, + .AMX_LDZI = { 2341, 1}, + .AMX_STZI = { 2342, 1}, + .AMX_EXTRX = { 2343, 1}, + .AMX_EXTRY = { 2344, 1}, + .AMX_FMA64 = { 2345, 1}, + .AMX_FMS64 = { 2346, 1}, + .AMX_FMA32 = { 2347, 1}, + .AMX_FMS32 = { 2348, 1}, + .AMX_MAC16 = { 2349, 1}, + .AMX_FMA16 = { 2350, 1}, + .AMX_FMS16 = { 2351, 1}, + .AMX_SET = { 2352, 1}, + .AMX_CLR = { 2353, 1}, + .AMX_VECINT = { 2354, 1}, + .AMX_VECFP = { 2355, 1}, + .AMX_MATINT = { 2356, 1}, + .AMX_MATFP = { 2357, 1}, + .AMX_GENLUT = { 2358, 1}, + .CPYP = { 2359, 1}, + .CPYM = { 2360, 1}, + .CPYE = { 2361, 1}, + .CPYFP = { 2362, 1}, + .CPYFM = { 2363, 1}, + .CPYFE = { 2364, 1}, + .SETP = { 2365, 1}, + .SETM = { 2366, 1}, + .SETE = { 2367, 1}, + .DC_IVAC = { 2368, 1}, + .DC_ISW = { 2369, 1}, + .DC_CSW = { 2370, 1}, + .DC_CISW = { 2371, 1}, + .DC_ZVA = { 2372, 1}, + .DC_CVAC = { 2373, 1}, + .DC_CVAU = { 2374, 1}, + .DC_CIVAC = { 2375, 1}, + .IC_IALLUIS = { 2376, 1}, + .IC_IALLU = { 2377, 1}, + .IC_IVAU = { 2378, 1}, + .AT_S1E1R = { 2379, 1}, + .AT_S1E1W = { 2380, 1}, + .AT_S1E0R = { 2381, 1}, + .AT_S1E0W = { 2382, 1}, + .AT_S1E2R = { 2383, 1}, + .AT_S1E2W = { 2384, 1}, + .AT_S1E3R = { 2385, 1}, + .AT_S1E3W = { 2386, 1}, + .AT_S12E1R = { 2387, 1}, + .AT_S12E1W = { 2388, 1}, + .AT_S12E0R = { 2389, 1}, + .AT_S12E0W = { 2390, 1}, + .TLBI_VMALLE1 = { 2391, 1}, + .TLBI_VMALLE1IS = { 2392, 1}, + .TLBI_VAE1 = { 2393, 1}, + .TLBI_VAE1IS = { 2394, 1}, + .TLBI_ASIDE1 = { 2395, 1}, + .TLBI_ASIDE1IS = { 2396, 1}, + .TLBI_VAAE1 = { 2397, 1}, + .TLBI_VAAE1IS = { 2398, 1}, + .TLBI_VALE1 = { 2399, 1}, + .TLBI_VALE1IS = { 2400, 1}, + .TLBI_VAALE1 = { 2401, 1}, + .TLBI_VAALE1IS = { 2402, 1}, + .TLBI_ALLE1 = { 2403, 1}, + .TLBI_ALLE1IS = { 2404, 1}, + .TLBI_ALLE2 = { 2405, 1}, + .TLBI_ALLE2IS = { 2406, 1}, + .TLBI_ALLE3 = { 2407, 1}, + .TLBI_ALLE3IS = { 2408, 1}, + .PRFM = { 2409, 1}, + .PRFUM = { 2410, 1}, + .PRFM_LIT = { 2411, 1}, + .MOV_REG = { 2412, 2}, + .MOV_BITMASK = { 2414, 2}, + .MVN = { 2416, 2}, + .NEG_SR = { 2418, 2}, + .NEGS = { 2420, 2}, + .CMP_SR = { 2422, 2}, + .CMP_ER = { 2424, 2}, + .CMP_IMM = { 2426, 2}, + .CMN_SR = { 2428, 2}, + .CMN_ER = { 2430, 2}, + .CMN_IMM = { 2432, 2}, + .TST_SR = { 2434, 2}, } diff --git a/core/rexcode/arm64/tables/arm64.encode_forms.bin b/core/rexcode/arm64/tables/arm64.encode_forms.bin index 8ec7e55bf576495ed3cdb6668dbf9e4b215a2a0a..8775f6e7caba45ea00174b01fdad4c4442a44806 100644 GIT binary patch delta 11343 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 delta 10699 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 diff --git a/core/rexcode/arm64/tables/arm64.encode_runs.bin b/core/rexcode/arm64/tables/arm64.encode_runs.bin index e5a533e7b8da80f4cda6ab96e145ab55995523fa..835fe5f37f5d27ed2573dec2009a26147a09380a 100644 GIT binary patch delta 1980 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 delta 14558 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 O$ypoJHt*PQfENJmQOQ^U diff --git a/core/rexcode/arm64/tables/arm64.idx_op0.bin b/core/rexcode/arm64/tables/arm64.idx_op0.bin index 53ea6a21b3bba096f83d502813a1c83c3f34bf48..15fa01c88d634ca517f004f23138c4c0722561da 100644 GIT binary patch delta 43 zcmZ>8m>{KQ!SJ3*jYX7QfI*dAiNT#cg<&8m>{Jl!El~QjpZww00S$#5`#K>3PU%$D8mBw