Skip to content

Commit 2c86125

Browse files
committed
Support for pv.mlsdotup.[h,b,c,n]].[0,1] instructions (MAC & load)
1 parent 698c717 commit 2c86125

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

include/opcode/riscv-opc.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -996,6 +996,11 @@
996996
#define MATCH_V_OP_B_VV_PS2 0x02003057
997997
#define MATCH_V_OP_H_VV_PS2 0x02002057
998998

999+
#define MATCH_V_OP_ML_B_VV 0x00001077
1000+
#define MATCH_V_OP_ML_H_VV 0x00000077
1001+
#define MATCH_V_OP_ML_N_VV 0x00002077
1002+
#define MATCH_V_OP_ML_C_VV 0x02002077
1003+
9991004
#define MATCH_V_OP_H_VV_S0 0x00000057
10001005
#define MATCH_V_OP_H_VV_S1 0x00002057
10011006
#define MATCH_V_OP_H_VV_S2 0x00004057
@@ -1024,9 +1029,13 @@
10241029
#define MATCH_V_OP_DOTSP 0x90000000
10251030
#define MATCH_V_OP_DOTUP 0x98000000
10261031
#define MATCH_V_OP_DOTUSP 0xA0000000
1032+
#define MATCH_V_OP_DOTUSP_1 0xA4000000
10271033
#define MATCH_V_OP_SDOTSP 0xA8000000
1034+
#define MATCH_V_OP_SDOTSP_1 0xAC000000
10281035
#define MATCH_V_OP_SDOTUP 0xB0000000
1036+
#define MATCH_V_OP_SDOTUP_1 0xB4000000
10291037
#define MATCH_V_OP_SDOTUSP 0xB8000000
1038+
#define MATCH_V_OP_SDOTUSP_1 0xBC000000
10301039
#define MATCH_V_OP_SHUFFLE 0xC0000000
10311040
#define MATCH_V_OP_SHUFFLEI1 0xE8000000
10321041
#define MATCH_V_OP_SHUFFLEI2 0xF0000000

opcodes/riscv-opc.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2751,6 +2751,38 @@ const struct riscv_opcode riscv_opcodes[] =
27512751
{"pv.packhi.b", "Xpulpv3", "d,s,t", MATCH_V_OP_PACKHI|MATCH_V_OP_B_VV, MASK_V_OP, match_opcode, 0},
27522752
{"pv.packlo.b", "Xpulpv3", "d,s,t", MATCH_V_OP_PACKLO|MATCH_V_OP_B_VV, MASK_V_OP, match_opcode, 0}, */
27532753

2754+
/* Xpulpnn extensions v2 */
2755+
/***********************************************************************************************************************/
2756+
/************************************** Xpulpnn ***************************************************/
2757+
2758+
{"pv.mlsdotup.h.0", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2759+
{"pv.mlsdotup.h.1", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_1|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2760+
{"pv.mlsdotup.b.0", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2761+
{"pv.mlsdotup.b.1", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_1|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2762+
{"pv.mlsdotup.n.0", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2763+
{"pv.mlsdotup.n.1", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_1|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2764+
{"pv.mlsdotup.c.0", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2765+
{"pv.mlsdotup.c.1", "Xpulpnn", "d,s,t", MATCH_V_OP_DOTUSP_1|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2766+
2767+
{"pv.mlsdotusp.h.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2768+
{"pv.mlsdotusp.h.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_1|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2769+
{"pv.mlsdotusp.b.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2770+
{"pv.mlsdotusp.b.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_1|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2771+
{"pv.mlsdotusp.n.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2772+
{"pv.mlsdotusp.n.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_1|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2773+
{"pv.mlsdotusp.c.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2774+
{"pv.mlsdotusp.c.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTSP_1|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2775+
2776+
{"pv.mlsdotsp.h.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2777+
{"pv.mlsdotsp.h.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_1|MATCH_V_OP_ML_H_VV, MASK_V_OP, match_opcode, 0},
2778+
{"pv.mlsdotsp.b.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2779+
{"pv.mlsdotsp.b.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_1|MATCH_V_OP_ML_B_VV, MASK_V_OP, match_opcode, 0},
2780+
{"pv.mlsdotsp.n.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2781+
{"pv.mlsdotsp.n.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_1|MATCH_V_OP_ML_N_VV, MASK_V_OP, match_opcode, 0},
2782+
{"pv.mlsdotsp.c.0", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2783+
{"pv.mlsdotsp.c.1", "Xpulpnn", "d,s,t", MATCH_V_OP_SDOTUSP_1|MATCH_V_OP_ML_C_VV, MASK_V_OP, match_opcode, 0},
2784+
2785+
27542786
/***********************************************************************************************************************/
27552787
/************************************** Gap9 ***************************************************/
27562788
/***********************************************************************************************************************/

0 commit comments

Comments
 (0)