aboutsummaryrefslogtreecommitdiff
path: root/opcodes/kvx-opc.c
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes/kvx-opc.c')
-rw-r--r--opcodes/kvx-opc.c1529
1 files changed, 1490 insertions, 39 deletions
diff --git a/opcodes/kvx-opc.c b/opcodes/kvx-opc.c
index bbefaf3..ea676ef 100644
--- a/opcodes/kvx-opc.c
+++ b/opcodes/kvx-opc.c
@@ -13852,6 +13852,34 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = "%s %s? %s = %s",
},
+ { /* Opcode-kv3_v1-CMOVEHQ_simdcond_registerZ_registerW_w032_splat32_double */
+ .as_op = "cmovehq",
+ .codewords = {
+ {
+ .opcode = 0xf8021000,
+ .mask = 0xf803f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_ALU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_LITE_X, ((int)0 << 8) | (int)Reservation_kv3_v1_ALU_LITE_X,
+ .format = {
+ &kv3_v1_simdcond_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_registerw_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = "%s %s? %s = %s%s",
+ },
{ /* Opcode-kv3_v1-CMOVEWP_simdcond_registerZ_registerW_registerY_simple */
.as_op = "cmovewp",
.codewords = {
@@ -13874,6 +13902,34 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = "%s %s? %s = %s",
},
+ { /* Opcode-kv3_v1-CMOVEWP_simdcond_registerZ_registerW_w032_splat32_double */
+ .as_op = "cmovewp",
+ .codewords = {
+ {
+ .opcode = 0xf0021000,
+ .mask = 0xf803f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_ALU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_LITE_X, ((int)0 << 8) | (int)Reservation_kv3_v1_ALU_LITE_X,
+ .format = {
+ &kv3_v1_simdcond_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_registerw_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = "%s %s? %s = %s%s",
+ },
{ /* Opcode-kv3_v1-CMULDT_registerM_registerZ_registerY_simple */
.as_op = "cmuldt",
.codewords = {
@@ -25601,6 +25657,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MADDSUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "maddsuwdp",
+ .codewords = {
+ {
+ .opcode = 0xda000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_AUXR_X,
+ .format = {
+ &kv3_v1_registerm_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MADDSUWD_registerW_registerZ_registerY_simple */
.as_op = "maddsuwd",
.codewords = {
@@ -25789,6 +25872,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MADDUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "madduwdp",
+ .codewords = {
+ {
+ .opcode = 0xd9000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_AUXR_X,
+ .format = {
+ &kv3_v1_registerm_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MADDUWD_registerW_registerZ_registerY_simple */
.as_op = "madduwd",
.codewords = {
@@ -25956,6 +26066,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MADDWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "maddwdp",
+ .codewords = {
+ {
+ .opcode = 0xd8000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_AUXR_X,
+ .format = {
+ &kv3_v1_registerm_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MADDWD_registerW_registerZ_registerY_simple */
.as_op = "maddwd",
.codewords = {
@@ -27405,6 +27542,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MM212W_registerM_registerZ_w032_splat32_double */
+ .as_op = "mm212w",
+ .codewords = {
+ {
+ .opcode = 0xd3001000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_X,
+ .format = {
+ &kv3_v1_registerm_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MMA212W_registerM_registerZ_registerY_simple */
.as_op = "mma212w",
.codewords = {
@@ -27426,6 +27590,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MMA212W_registerM_registerZ_w032_splat32_double */
+ .as_op = "mma212w",
+ .codewords = {
+ {
+ .opcode = 0xdb000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_AUXR_X,
+ .format = {
+ &kv3_v1_registerm_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MMA444HBD0_registerAq_registerBq_registerC_registerD_simple */
.as_op = "mma444hbd0",
.codewords = {
@@ -27711,6 +27902,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MMS212W_registerM_registerZ_w032_splat32_double */
+ .as_op = "mms212w",
+ .codewords = {
+ {
+ .opcode = 0xdf000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_AUXR_X,
+ .format = {
+ &kv3_v1_registerm_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MOVETQ_registerAE_registerZ_registerY_simple */
.as_op = "movetq",
.codewords = {
@@ -27795,6 +28013,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MSBFD_registerW_registerZ_w032_splat32_double */
+ .as_op = "msbfd",
+ .codewords = {
+ {
+ .opcode = 0xd4000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_AUXR_X,
+ .format = {
+ &kv3_v1_registerw_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MSBFHQ_registerW_registerZ_registerY_simple */
.as_op = "msbfhq",
.codewords = {
@@ -27816,6 +28061,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MSBFHQ_registerW_registerZ_w032_splat32_double */
+ .as_op = "msbfhq",
+ .codewords = {
+ {
+ .opcode = 0xd6000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_AUXR_X,
+ .format = {
+ &kv3_v1_registerw_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MSBFHWQ_registerM_registerZ_registerY_simple */
.as_op = "msbfhwq",
.codewords = {
@@ -27900,6 +28172,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MSBFSUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "msbfsuwdp",
+ .codewords = {
+ {
+ .opcode = 0xde000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_AUXR_X,
+ .format = {
+ &kv3_v1_registerm_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MSBFSUWD_registerW_registerZ_registerY_simple */
.as_op = "msbfsuwd",
.codewords = {
@@ -28010,6 +28309,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MSBFUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "msbfuwdp",
+ .codewords = {
+ {
+ .opcode = 0xdd000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_AUXR_X,
+ .format = {
+ &kv3_v1_registerm_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MSBFUWD_registerW_registerZ_registerY_simple */
.as_op = "msbfuwd",
.codewords = {
@@ -28099,6 +28425,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MSBFWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "msbfwdp",
+ .codewords = {
+ {
+ .opcode = 0xdc000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_AUXR_X,
+ .format = {
+ &kv3_v1_registerm_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MSBFWD_registerW_registerZ_registerY_simple */
.as_op = "msbfwd",
.codewords = {
@@ -28167,6 +28520,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MSBFWP_registerW_registerZ_w032_splat32_double */
+ .as_op = "msbfwp",
+ .codewords = {
+ {
+ .opcode = 0xd5000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_AUXR_X,
+ .format = {
+ &kv3_v1_registerw_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MSBFW_registerW_registerZ_registerY_simple */
.as_op = "msbfw",
.codewords = {
@@ -28673,6 +29053,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MULSUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "mulsuwdp",
+ .codewords = {
+ {
+ .opcode = 0xd2001000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_X,
+ .format = {
+ &kv3_v1_registerm_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MULSUWD_registerW_registerZ_registerY_simple */
.as_op = "mulsuwd",
.codewords = {
@@ -28861,6 +29268,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MULUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "muluwdp",
+ .codewords = {
+ {
+ .opcode = 0xd1001000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_X,
+ .format = {
+ &kv3_v1_registerm_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MULUWD_registerW_registerZ_registerY_simple */
.as_op = "muluwd",
.codewords = {
@@ -29091,6 +29525,33 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v1-MULWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "mulwdp",
+ .codewords = {
+ {
+ .opcode = 0xd0001000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v1_MAU_X,
+ .format = {
+ &kv3_v1_registerm_opnd,
+ &kv3_v1_registerz_opnd,
+ &kv3_v1_upper27_lower5_opnd,
+ &kv3_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v1-MULWD_registerW_registerZ_registerY_simple */
.as_op = "mulwd",
.codewords = {
@@ -37168,7 +37629,7 @@ struct kvxopc kvx_kv3_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
-/* Number of instructions : 1201 */
+/* Number of instructions : 1218 */
{"", { }, 0, 0, 0, 0, { }, "", ""}};
int kvx_kv3_v2_regfiles[] = {
@@ -53396,6 +53857,34 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = "%s %s? %s = %s",
},
+ { /* Opcode-kv3_v2-CMOVEBO_simdcond_registerZ_registerW_w032_splat32_double */
+ .as_op = "cmovebo",
+ .codewords = {
+ {
+ .opcode = 0xf002d000,
+ .mask = 0xf803f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_ALU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_TINY_X, ((int)0 << 8) | (int)Reservation_kv3_v2_ALU_TINY_X,
+ .format = {
+ &kv3_v2_simdcond_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_registerw_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = "%s %s? %s = %s%s",
+ },
{ /* Opcode-kv3_v2-CMOVED_scalarcond_registerZ_registerW_registerY_simple */
.as_op = "cmoved",
.codewords = {
@@ -53521,6 +54010,34 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = "%s %s? %s = %s",
},
+ { /* Opcode-kv3_v2-CMOVEHQ_simdcond_registerZ_registerW_w032_splat32_double */
+ .as_op = "cmovehq",
+ .codewords = {
+ {
+ .opcode = 0xf8021000,
+ .mask = 0xf803f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_ALU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_TINY_X, ((int)0 << 8) | (int)Reservation_kv3_v2_ALU_TINY_X,
+ .format = {
+ &kv3_v2_simdcond_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_registerw_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = "%s %s? %s = %s%s",
+ },
{ /* Opcode-kv3_v2-CMOVEWP_simdcond_registerZ_registerW_registerY_simple */
.as_op = "cmovewp",
.codewords = {
@@ -53543,6 +54060,34 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = "%s %s? %s = %s",
},
+ { /* Opcode-kv3_v2-CMOVEWP_simdcond_registerZ_registerW_w032_splat32_double */
+ .as_op = "cmovewp",
+ .codewords = {
+ {
+ .opcode = 0xf0021000,
+ .mask = 0xf803f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_ALU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_TINY_X, ((int)0 << 8) | (int)Reservation_kv3_v2_ALU_TINY_X,
+ .format = {
+ &kv3_v2_simdcond_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_registerw_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = "%s %s? %s = %s%s",
+ },
{ /* Opcode-kv3_v2-CMULDT_registerM_registerZ_registerY_simple */
.as_op = "cmuldt",
.codewords = {
@@ -61581,12 +62126,12 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
- { /* Opcode-kv3_v2-MADDD_registerW_registerZ_w032_double */
+ { /* Opcode-kv3_v2-MADDD_registerW_registerZ_w032_splat32_double */
.as_op = "maddd",
.codewords = {
{
.opcode = 0xd0000000,
- .mask = 0xff03f800,
+ .mask = 0xff03f000,
.flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
},
{
@@ -61602,10 +62147,11 @@ struct kvxopc kvx_kv3_v2_optab[] = {
&kv3_v2_registerw_opnd,
&kv3_v2_registerz_opnd,
&kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
NULL
},
.rclass = "",
- .fmtstring = " %s = %s, %s",
+ .fmtstring = " %s = %s, %s%s",
},
{ /* Opcode-kv3_v2-MADDHQ_registerW_registerZ_registerY_simple */
.as_op = "maddhq",
@@ -61628,12 +62174,12 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
- { /* Opcode-kv3_v2-MADDHQ_registerW_registerZ_w032_double */
+ { /* Opcode-kv3_v2-MADDHQ_registerW_registerZ_w032_splat32_double */
.as_op = "maddhq",
.codewords = {
{
.opcode = 0xd2000000,
- .mask = 0xff03f800,
+ .mask = 0xff03f000,
.flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
},
{
@@ -61649,10 +62195,11 @@ struct kvxopc kvx_kv3_v2_optab[] = {
&kv3_v2_registerw_opnd,
&kv3_v2_registerz_opnd,
&kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
NULL
},
.rclass = "",
- .fmtstring = " %s = %s, %s",
+ .fmtstring = " %s = %s, %s%s",
},
{ /* Opcode-kv3_v2-MADDHWQ_registerM_registerZ_registerY_simple */
.as_op = "maddhwq",
@@ -61780,6 +62327,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MADDSUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "maddsuwdp",
+ .codewords = {
+ {
+ .opcode = 0xda000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_AUXR_X,
+ .format = {
+ &kv3_v2_registerm_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MADDSUWD_registerW_registerZ_registerY_simple */
.as_op = "maddsuwd",
.codewords = {
@@ -61911,6 +62485,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MADDUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "madduwdp",
+ .codewords = {
+ {
+ .opcode = 0xd9000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_AUXR_X,
+ .format = {
+ &kv3_v2_registerm_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MADDUWD_registerW_registerZ_registerY_simple */
.as_op = "madduwd",
.codewords = {
@@ -62000,6 +62601,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MADDWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "maddwdp",
+ .codewords = {
+ {
+ .opcode = 0xd8000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_AUXR_X,
+ .format = {
+ &kv3_v2_registerm_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MADDWD_registerW_registerZ_registerY_simple */
.as_op = "maddwd",
.codewords = {
@@ -62068,12 +62696,12 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
- { /* Opcode-kv3_v2-MADDWP_registerW_registerZ_w032_double */
+ { /* Opcode-kv3_v2-MADDWP_registerW_registerZ_w032_splat32_double */
.as_op = "maddwp",
.codewords = {
{
.opcode = 0xd1000000,
- .mask = 0xff03f800,
+ .mask = 0xff03f000,
.flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
},
{
@@ -62089,10 +62717,11 @@ struct kvxopc kvx_kv3_v2_optab[] = {
&kv3_v2_registerw_opnd,
&kv3_v2_registerz_opnd,
&kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
NULL
},
.rclass = "",
- .fmtstring = " %s = %s, %s",
+ .fmtstring = " %s = %s, %s%s",
},
{ /* Opcode-kv3_v2-MADDWQ_registerM_registerP_registerO_simple */
.as_op = "maddwq",
@@ -63850,6 +64479,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MM212W_registerM_registerZ_w032_splat32_double */
+ .as_op = "mm212w",
+ .codewords = {
+ {
+ .opcode = 0xd3001000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_X,
+ .format = {
+ &kv3_v2_registerm_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MMA212W_registerM_registerZ_registerY_simple */
.as_op = "mma212w",
.codewords = {
@@ -63871,6 +64527,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MMA212W_registerM_registerZ_w032_splat32_double */
+ .as_op = "mma212w",
+ .codewords = {
+ {
+ .opcode = 0xdb000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_AUXR_X,
+ .format = {
+ &kv3_v2_registerm_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MMS212W_registerM_registerZ_registerY_simple */
.as_op = "mms212w",
.codewords = {
@@ -63892,6 +64575,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MMS212W_registerM_registerZ_w032_splat32_double */
+ .as_op = "mms212w",
+ .codewords = {
+ {
+ .opcode = 0xdf000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_AUXR_X,
+ .format = {
+ &kv3_v2_registerm_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MSBFDT_registerM_registerZ_registerY_simple */
.as_op = "msbfdt",
.codewords = {
@@ -63934,6 +64644,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MSBFD_registerW_registerZ_w032_splat32_double */
+ .as_op = "msbfd",
+ .codewords = {
+ {
+ .opcode = 0xd4000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_AUXR_X,
+ .format = {
+ &kv3_v2_registerw_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MSBFHQ_registerW_registerZ_registerY_simple */
.as_op = "msbfhq",
.codewords = {
@@ -63955,6 +64692,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MSBFHQ_registerW_registerZ_w032_splat32_double */
+ .as_op = "msbfhq",
+ .codewords = {
+ {
+ .opcode = 0xd6000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_AUXR_X,
+ .format = {
+ &kv3_v2_registerw_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MSBFHWQ_registerM_registerZ_registerY_simple */
.as_op = "msbfhwq",
.codewords = {
@@ -64081,6 +64845,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MSBFSUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "msbfsuwdp",
+ .codewords = {
+ {
+ .opcode = 0xde000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_AUXR_X,
+ .format = {
+ &kv3_v2_registerm_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MSBFSUWD_registerW_registerZ_registerY_simple */
.as_op = "msbfsuwd",
.codewords = {
@@ -64212,6 +65003,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MSBFUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "msbfuwdp",
+ .codewords = {
+ {
+ .opcode = 0xdd000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_AUXR_X,
+ .format = {
+ &kv3_v2_registerm_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MSBFUWD_registerW_registerZ_registerY_simple */
.as_op = "msbfuwd",
.codewords = {
@@ -64301,6 +65119,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MSBFWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "msbfwdp",
+ .codewords = {
+ {
+ .opcode = 0xdc000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_AUXR_X,
+ .format = {
+ &kv3_v2_registerm_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MSBFWD_registerW_registerZ_registerY_simple */
.as_op = "msbfwd",
.codewords = {
@@ -64369,6 +65214,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MSBFWP_registerW_registerZ_w032_splat32_double */
+ .as_op = "msbfwp",
+ .codewords = {
+ {
+ .opcode = 0xd5000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_AUXR_X,
+ .format = {
+ &kv3_v2_registerw_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MSBFWQ_registerM_registerP_registerO_simple */
.as_op = "msbfwq",
.codewords = {
@@ -64479,12 +65351,12 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
- { /* Opcode-kv3_v2-MULD_registerW_registerZ_w032_double */
+ { /* Opcode-kv3_v2-MULD_registerW_registerZ_w032_splat32_double */
.as_op = "muld",
.codewords = {
{
.opcode = 0xd4001000,
- .mask = 0xff03f800,
+ .mask = 0xff03f000,
.flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
},
{
@@ -64500,10 +65372,11 @@ struct kvxopc kvx_kv3_v2_optab[] = {
&kv3_v2_registerw_opnd,
&kv3_v2_registerz_opnd,
&kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
NULL
},
.rclass = "",
- .fmtstring = " %s = %s, %s",
+ .fmtstring = " %s = %s, %s%s",
},
{ /* Opcode-kv3_v2-MULHQ_registerW_registerZ_registerY_simple */
.as_op = "mulhq",
@@ -64526,12 +65399,12 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
- { /* Opcode-kv3_v2-MULHQ_registerW_registerZ_w032_double */
+ { /* Opcode-kv3_v2-MULHQ_registerW_registerZ_w032_splat32_double */
.as_op = "mulhq",
.codewords = {
{
.opcode = 0xd6001000,
- .mask = 0xff03f800,
+ .mask = 0xff03f000,
.flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
},
{
@@ -64547,10 +65420,11 @@ struct kvxopc kvx_kv3_v2_optab[] = {
&kv3_v2_registerw_opnd,
&kv3_v2_registerz_opnd,
&kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
NULL
},
.rclass = "",
- .fmtstring = " %s = %s, %s",
+ .fmtstring = " %s = %s, %s%s",
},
{ /* Opcode-kv3_v2-MULHWQ_registerM_registerZ_registerY_simple */
.as_op = "mulhwq",
@@ -64678,6 +65552,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MULSUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "mulsuwdp",
+ .codewords = {
+ {
+ .opcode = 0xd2001000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_X,
+ .format = {
+ &kv3_v2_registerm_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MULSUWD_registerW_registerZ_registerY_simple */
.as_op = "mulsuwd",
.codewords = {
@@ -64809,6 +65710,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MULUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "muluwdp",
+ .codewords = {
+ {
+ .opcode = 0xd1001000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_X,
+ .format = {
+ &kv3_v2_registerm_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MULUWD_registerW_registerZ_registerY_simple */
.as_op = "muluwd",
.codewords = {
@@ -64877,6 +65805,33 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv3_v2-MULWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "mulwdp",
+ .codewords = {
+ {
+ .opcode = 0xd0001000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv3_v2_MAU_X, ((int)0 << 8) | (int)Reservation_kv3_v2_MAU_X,
+ .format = {
+ &kv3_v2_registerm_opnd,
+ &kv3_v2_registerz_opnd,
+ &kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv3_v2-MULWD_registerW_registerZ_registerY_simple */
.as_op = "mulwd",
.codewords = {
@@ -64945,12 +65900,12 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
- { /* Opcode-kv3_v2-MULWP_registerW_registerZ_w032_double */
+ { /* Opcode-kv3_v2-MULWP_registerW_registerZ_w032_splat32_double */
.as_op = "mulwp",
.codewords = {
{
.opcode = 0xd5001000,
- .mask = 0xff03f800,
+ .mask = 0xff03f000,
.flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
},
{
@@ -64966,10 +65921,11 @@ struct kvxopc kvx_kv3_v2_optab[] = {
&kv3_v2_registerw_opnd,
&kv3_v2_registerz_opnd,
&kv3_v2_upper27_lower5_opnd,
+ &kv3_v2_splat32_opnd,
NULL
},
.rclass = "",
- .fmtstring = " %s = %s, %s",
+ .fmtstring = " %s = %s, %s%s",
},
{ /* Opcode-kv3_v2-MULWQ_registerM_registerP_registerO_simple */
.as_op = "mulwq",
@@ -76152,7 +77108,7 @@ struct kvxopc kvx_kv3_v2_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
-/* Number of instructions : 1261 */
+/* Number of instructions : 1279 */
{"", { }, 0, 0, 0, 0, { }, "", ""}};
int kvx_kv4_v1_regfiles[] = {
@@ -92380,6 +93336,34 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = "%s %s? %s = %s",
},
+ { /* Opcode-kv4_v1-CMOVEBO_simdcond_registerZ_registerW_w032_splat32_double */
+ .as_op = "cmovebo",
+ .codewords = {
+ {
+ .opcode = 0xf002d000,
+ .mask = 0xf803f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_ALU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_TINY_X, ((int)0 << 8) | (int)Reservation_kv4_v1_ALU_TINY_X,
+ .format = {
+ &kv4_v1_simdcond_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_registerw_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = "%s %s? %s = %s%s",
+ },
{ /* Opcode-kv4_v1-CMOVED_scalarcond_registerZ_registerW_registerY_simple */
.as_op = "cmoved",
.codewords = {
@@ -92505,6 +93489,34 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = "%s %s? %s = %s",
},
+ { /* Opcode-kv4_v1-CMOVEHQ_simdcond_registerZ_registerW_w032_splat32_double */
+ .as_op = "cmovehq",
+ .codewords = {
+ {
+ .opcode = 0xf8021000,
+ .mask = 0xf803f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_ALU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_TINY_X, ((int)0 << 8) | (int)Reservation_kv4_v1_ALU_TINY_X,
+ .format = {
+ &kv4_v1_simdcond_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_registerw_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = "%s %s? %s = %s%s",
+ },
{ /* Opcode-kv4_v1-CMOVEWP_simdcond_registerZ_registerW_registerY_simple */
.as_op = "cmovewp",
.codewords = {
@@ -92527,6 +93539,34 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = "%s %s? %s = %s",
},
+ { /* Opcode-kv4_v1-CMOVEWP_simdcond_registerZ_registerW_w032_splat32_double */
+ .as_op = "cmovewp",
+ .codewords = {
+ {
+ .opcode = 0xf0021000,
+ .mask = 0xf803f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_ALU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_TINY_X, ((int)0 << 8) | (int)Reservation_kv4_v1_ALU_TINY_X,
+ .format = {
+ &kv4_v1_simdcond_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_registerw_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = "%s %s? %s = %s%s",
+ },
{ /* Opcode-kv4_v1-CMULDT_registerM_registerZ_registerY_simple */
.as_op = "cmuldt",
.codewords = {
@@ -100565,12 +101605,12 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
- { /* Opcode-kv4_v1-MADDD_registerW_registerZ_w032_double */
+ { /* Opcode-kv4_v1-MADDD_registerW_registerZ_w032_splat32_double */
.as_op = "maddd",
.codewords = {
{
.opcode = 0xd0000000,
- .mask = 0xff03f800,
+ .mask = 0xff03f000,
.flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
},
{
@@ -100586,10 +101626,11 @@ struct kvxopc kvx_kv4_v1_optab[] = {
&kv4_v1_registerw_opnd,
&kv4_v1_registerz_opnd,
&kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
NULL
},
.rclass = "",
- .fmtstring = " %s = %s, %s",
+ .fmtstring = " %s = %s, %s%s",
},
{ /* Opcode-kv4_v1-MADDHQ_registerW_registerZ_registerY_simple */
.as_op = "maddhq",
@@ -100612,12 +101653,12 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
- { /* Opcode-kv4_v1-MADDHQ_registerW_registerZ_w032_double */
+ { /* Opcode-kv4_v1-MADDHQ_registerW_registerZ_w032_splat32_double */
.as_op = "maddhq",
.codewords = {
{
.opcode = 0xd2000000,
- .mask = 0xff03f800,
+ .mask = 0xff03f000,
.flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
},
{
@@ -100633,10 +101674,11 @@ struct kvxopc kvx_kv4_v1_optab[] = {
&kv4_v1_registerw_opnd,
&kv4_v1_registerz_opnd,
&kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
NULL
},
.rclass = "",
- .fmtstring = " %s = %s, %s",
+ .fmtstring = " %s = %s, %s%s",
},
{ /* Opcode-kv4_v1-MADDHWQ_registerM_registerZ_registerY_simple */
.as_op = "maddhwq",
@@ -100764,6 +101806,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MADDSUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "maddsuwdp",
+ .codewords = {
+ {
+ .opcode = 0xda000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_AUXR_X,
+ .format = {
+ &kv4_v1_registerm_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MADDSUWD_registerW_registerZ_registerY_simple */
.as_op = "maddsuwd",
.codewords = {
@@ -100895,6 +101964,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MADDUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "madduwdp",
+ .codewords = {
+ {
+ .opcode = 0xd9000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_AUXR_X,
+ .format = {
+ &kv4_v1_registerm_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MADDUWD_registerW_registerZ_registerY_simple */
.as_op = "madduwd",
.codewords = {
@@ -100984,6 +102080,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MADDWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "maddwdp",
+ .codewords = {
+ {
+ .opcode = 0xd8000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_AUXR_X,
+ .format = {
+ &kv4_v1_registerm_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MADDWD_registerW_registerZ_registerY_simple */
.as_op = "maddwd",
.codewords = {
@@ -101052,12 +102175,12 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
- { /* Opcode-kv4_v1-MADDWP_registerW_registerZ_w032_double */
+ { /* Opcode-kv4_v1-MADDWP_registerW_registerZ_w032_splat32_double */
.as_op = "maddwp",
.codewords = {
{
.opcode = 0xd1000000,
- .mask = 0xff03f800,
+ .mask = 0xff03f000,
.flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
},
{
@@ -101073,10 +102196,11 @@ struct kvxopc kvx_kv4_v1_optab[] = {
&kv4_v1_registerw_opnd,
&kv4_v1_registerz_opnd,
&kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
NULL
},
.rclass = "",
- .fmtstring = " %s = %s, %s",
+ .fmtstring = " %s = %s, %s%s",
},
{ /* Opcode-kv4_v1-MADDWQ_registerM_registerP_registerO_simple */
.as_op = "maddwq",
@@ -102834,6 +103958,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MM212W_registerM_registerZ_w032_splat32_double */
+ .as_op = "mm212w",
+ .codewords = {
+ {
+ .opcode = 0xd3001000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_X,
+ .format = {
+ &kv4_v1_registerm_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MMA212W_registerM_registerZ_registerY_simple */
.as_op = "mma212w",
.codewords = {
@@ -102855,6 +104006,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MMA212W_registerM_registerZ_w032_splat32_double */
+ .as_op = "mma212w",
+ .codewords = {
+ {
+ .opcode = 0xdb000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_AUXR_X,
+ .format = {
+ &kv4_v1_registerm_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MMS212W_registerM_registerZ_registerY_simple */
.as_op = "mms212w",
.codewords = {
@@ -102876,6 +104054,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MMS212W_registerM_registerZ_w032_splat32_double */
+ .as_op = "mms212w",
+ .codewords = {
+ {
+ .opcode = 0xdf000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_AUXR_X,
+ .format = {
+ &kv4_v1_registerm_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MSBFDT_registerM_registerZ_registerY_simple */
.as_op = "msbfdt",
.codewords = {
@@ -102918,6 +104123,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MSBFD_registerW_registerZ_w032_splat32_double */
+ .as_op = "msbfd",
+ .codewords = {
+ {
+ .opcode = 0xd4000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_AUXR_X,
+ .format = {
+ &kv4_v1_registerw_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MSBFHQ_registerW_registerZ_registerY_simple */
.as_op = "msbfhq",
.codewords = {
@@ -102939,6 +104171,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MSBFHQ_registerW_registerZ_w032_splat32_double */
+ .as_op = "msbfhq",
+ .codewords = {
+ {
+ .opcode = 0xd6000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_AUXR_X,
+ .format = {
+ &kv4_v1_registerw_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MSBFHWQ_registerM_registerZ_registerY_simple */
.as_op = "msbfhwq",
.codewords = {
@@ -103065,6 +104324,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MSBFSUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "msbfsuwdp",
+ .codewords = {
+ {
+ .opcode = 0xde000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_AUXR_X,
+ .format = {
+ &kv4_v1_registerm_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MSBFSUWD_registerW_registerZ_registerY_simple */
.as_op = "msbfsuwd",
.codewords = {
@@ -103196,6 +104482,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MSBFUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "msbfuwdp",
+ .codewords = {
+ {
+ .opcode = 0xdd000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_AUXR_X,
+ .format = {
+ &kv4_v1_registerm_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MSBFUWD_registerW_registerZ_registerY_simple */
.as_op = "msbfuwd",
.codewords = {
@@ -103285,6 +104598,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MSBFWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "msbfwdp",
+ .codewords = {
+ {
+ .opcode = 0xdc000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_AUXR_X,
+ .format = {
+ &kv4_v1_registerm_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MSBFWD_registerW_registerZ_registerY_simple */
.as_op = "msbfwd",
.codewords = {
@@ -103353,6 +104693,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MSBFWP_registerW_registerZ_w032_splat32_double */
+ .as_op = "msbfwp",
+ .codewords = {
+ {
+ .opcode = 0xd5000000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_AUXR_X,
+ .format = {
+ &kv4_v1_registerw_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MSBFWQ_registerM_registerP_registerO_simple */
.as_op = "msbfwq",
.codewords = {
@@ -103463,12 +104830,12 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
- { /* Opcode-kv4_v1-MULD_registerW_registerZ_w032_double */
+ { /* Opcode-kv4_v1-MULD_registerW_registerZ_w032_splat32_double */
.as_op = "muld",
.codewords = {
{
.opcode = 0xd4001000,
- .mask = 0xff03f800,
+ .mask = 0xff03f000,
.flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
},
{
@@ -103484,10 +104851,11 @@ struct kvxopc kvx_kv4_v1_optab[] = {
&kv4_v1_registerw_opnd,
&kv4_v1_registerz_opnd,
&kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
NULL
},
.rclass = "",
- .fmtstring = " %s = %s, %s",
+ .fmtstring = " %s = %s, %s%s",
},
{ /* Opcode-kv4_v1-MULHQ_registerW_registerZ_registerY_simple */
.as_op = "mulhq",
@@ -103510,12 +104878,12 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
- { /* Opcode-kv4_v1-MULHQ_registerW_registerZ_w032_double */
+ { /* Opcode-kv4_v1-MULHQ_registerW_registerZ_w032_splat32_double */
.as_op = "mulhq",
.codewords = {
{
.opcode = 0xd6001000,
- .mask = 0xff03f800,
+ .mask = 0xff03f000,
.flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
},
{
@@ -103531,10 +104899,11 @@ struct kvxopc kvx_kv4_v1_optab[] = {
&kv4_v1_registerw_opnd,
&kv4_v1_registerz_opnd,
&kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
NULL
},
.rclass = "",
- .fmtstring = " %s = %s, %s",
+ .fmtstring = " %s = %s, %s%s",
},
{ /* Opcode-kv4_v1-MULHWQ_registerM_registerZ_registerY_simple */
.as_op = "mulhwq",
@@ -103662,6 +105031,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MULSUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "mulsuwdp",
+ .codewords = {
+ {
+ .opcode = 0xd2001000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_X,
+ .format = {
+ &kv4_v1_registerm_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MULSUWD_registerW_registerZ_registerY_simple */
.as_op = "mulsuwd",
.codewords = {
@@ -103793,6 +105189,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MULUWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "muluwdp",
+ .codewords = {
+ {
+ .opcode = 0xd1001000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_X,
+ .format = {
+ &kv4_v1_registerm_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MULUWD_registerW_registerZ_registerY_simple */
.as_op = "muluwd",
.codewords = {
@@ -103861,6 +105284,33 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
+ { /* Opcode-kv4_v1-MULWDP_registerM_registerZ_w032_splat32_double */
+ .as_op = "mulwdp",
+ .codewords = {
+ {
+ .opcode = 0xd0001000,
+ .mask = 0xff03f000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
+ },
+ {
+ .opcode = 0x00000000,
+ .mask = 0x60000000,
+ .flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32|kvxOPCODE_FLAG_IMMX0|kvxOPCODE_FLAG_MAU
+ },
+ },
+ .wordcount = 2,
+ .coding_size = 64,
+ .bundling = ((int)0 << 8) | (int)Bundling_kv4_v1_MAU_X, ((int)0 << 8) | (int)Reservation_kv4_v1_MAU_X,
+ .format = {
+ &kv4_v1_registerm_opnd,
+ &kv4_v1_registerz_opnd,
+ &kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
+ NULL
+ },
+ .rclass = "",
+ .fmtstring = " %s = %s, %s%s",
+ },
{ /* Opcode-kv4_v1-MULWD_registerW_registerZ_registerY_simple */
.as_op = "mulwd",
.codewords = {
@@ -103929,12 +105379,12 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
- { /* Opcode-kv4_v1-MULWP_registerW_registerZ_w032_double */
+ { /* Opcode-kv4_v1-MULWP_registerW_registerZ_w032_splat32_double */
.as_op = "mulwp",
.codewords = {
{
.opcode = 0xd5001000,
- .mask = 0xff03f800,
+ .mask = 0xff03f000,
.flags = kvxOPCODE_FLAG_MODE64|kvxOPCODE_FLAG_MODE32
},
{
@@ -103950,10 +105400,11 @@ struct kvxopc kvx_kv4_v1_optab[] = {
&kv4_v1_registerw_opnd,
&kv4_v1_registerz_opnd,
&kv4_v1_upper27_lower5_opnd,
+ &kv4_v1_splat32_opnd,
NULL
},
.rclass = "",
- .fmtstring = " %s = %s, %s",
+ .fmtstring = " %s = %s, %s%s",
},
{ /* Opcode-kv4_v1-MULWQ_registerM_registerP_registerO_simple */
.as_op = "mulwq",
@@ -113983,7 +115434,7 @@ struct kvxopc kvx_kv4_v1_optab[] = {
.rclass = "",
.fmtstring = " %s = %s, %s",
},
-/* Number of instructions : 1212 */
+/* Number of instructions : 1230 */
{"", { }, 0, 0, 0, 0, { }, "", ""}};
const struct kvx_core_info *kvx_core_info_table[] =