Skip to content

Commit a72edf6

Browse files
committed
[Zvdot4a] Renaming Zvqdotq to Zvdot4a and vdotq to vdot4a
Folowing Architecture Review Committee's (ARC) recommendation https://riscv.atlassian.net/browse/RVS-1971?focusedCommentId=21112 shared during the review of Zvqdotq, the extension and its instructions are renamed. Changelogs: * Renaming extension Zvqdotq to Zvdot4a8i * Renaming instructions vqdot* to vdot4a* * Importing new encodings from riscv/riscv-opcodes#402
1 parent 770ce31 commit a72edf6

20 files changed

Lines changed: 110 additions & 117 deletions

disasm/disasm.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1864,11 +1864,11 @@ void disassembler_t::add_instructions(const isa_parser_t* isa, bool strict)
18641864
DISASM_OPIV_MULTIPLYADD__X__INSN(vwmaccus, 1);
18651865
DISASM_OPIV_MULTIPLYADD_VX__INSN(vwmaccsu, 0);
18661866

1867-
if (ext_enabled(EXT_ZVQDOTQ)) {
1868-
DISASM_OPIV_VX__INSN(vqdot, 0);
1869-
DISASM_OPIV_VX__INSN(vqdotu, 0);
1870-
DISASM_OPIV_VX__INSN(vqdotsu, 0);
1871-
DISASM_OPIV__X__INSN(vqdotus, 0);
1867+
if (ext_enabled(EXT_ZVDOT4A8I)) {
1868+
DISASM_OPIV_VX__INSN(vdot4a, 0);
1869+
DISASM_OPIV_VX__INSN(vdot4au, 0);
1870+
DISASM_OPIV_VX__INSN(vdot4asu, 0);
1871+
DISASM_OPIV__X__INSN(vdot4aus, 0);
18721872
}
18731873

18741874
#undef DISASM_OPIV_VXI_INSN

disasm/isa_parser.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,8 +302,8 @@ void isa_parser_t::add_extension(const std::string& ext_str, const char* str)
302302
extension_table[EXT_ZVKSED] = true;
303303
} else if (ext_str == "zvksh") {
304304
extension_table[EXT_ZVKSH] = true;
305-
} else if (ext_str == "zvqdotq") {
306-
extension_table[EXT_ZVQDOTQ] = true;
305+
} else if (ext_str == "zvdot4a8i") {
306+
extension_table[EXT_ZVDOT4A8I] = true;
307307
} else if (ext_str == "zvqbdot8i") {
308308
extension_table[EXT_ZVQBDOT8I] = true;
309309
} else if (ext_str == "zvqbdot16i") {

riscv/encoding.h

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
/*
66
* This file is auto-generated by running 'make' in
7-
* https://github.com/riscv/riscv-opcodes (4644ba3)
7+
* https://github.com/riscv/riscv-opcodes (eb5c51c)
88
*/
99

1010
#ifndef RISCV_CSR_ENCODING_H
@@ -1725,6 +1725,20 @@
17251725
#define MASK_VDIVU_VV 0xfc00707f
17261726
#define MATCH_VDIVU_VX 0x80006057
17271727
#define MASK_VDIVU_VX 0xfc00707f
1728+
#define MATCH_VDOT4A_VV 0xb0002057
1729+
#define MASK_VDOT4A_VV 0xfc00707f
1730+
#define MATCH_VDOT4A_VX 0xb0006057
1731+
#define MASK_VDOT4A_VX 0xfc00707f
1732+
#define MATCH_VDOT4ASU_VV 0xa8002057
1733+
#define MASK_VDOT4ASU_VV 0xfc00707f
1734+
#define MATCH_VDOT4ASU_VX 0xa8006057
1735+
#define MASK_VDOT4ASU_VX 0xfc00707f
1736+
#define MATCH_VDOT4AU_VV 0xa0002057
1737+
#define MASK_VDOT4AU_VV 0xfc00707f
1738+
#define MATCH_VDOT4AU_VX 0xa0006057
1739+
#define MASK_VDOT4AU_VX 0xfc00707f
1740+
#define MATCH_VDOT4AUS_VX 0xb8006057
1741+
#define MASK_VDOT4AUS_VX 0xfc00707f
17281742
#define MATCH_VFADD_VF 0x5057
17291743
#define MASK_VFADD_VF 0xfc00707f
17301744
#define MATCH_VFADD_VV 0x1057
@@ -2233,20 +2247,6 @@
22332247
#define MASK_VQBDOTS_VV 0xfc00707f
22342248
#define MATCH_VQBDOTU_VV 0xb8000077
22352249
#define MASK_VQBDOTU_VV 0xfc00707f
2236-
#define MATCH_VQDOT_VV 0xb0002057
2237-
#define MASK_VQDOT_VV 0xfc00707f
2238-
#define MATCH_VQDOT_VX 0xb0006057
2239-
#define MASK_VQDOT_VX 0xfc00707f
2240-
#define MATCH_VQDOTSU_VV 0xa8002057
2241-
#define MASK_VQDOTSU_VV 0xfc00707f
2242-
#define MATCH_VQDOTSU_VX 0xa8006057
2243-
#define MASK_VQDOTSU_VX 0xfc00707f
2244-
#define MATCH_VQDOTU_VV 0xa0002057
2245-
#define MASK_VQDOTU_VV 0xfc00707f
2246-
#define MATCH_VQDOTU_VX 0xa0006057
2247-
#define MASK_VQDOTU_VX 0xfc00707f
2248-
#define MATCH_VQDOTUS_VX 0xb8006057
2249-
#define MASK_VQDOTUS_VX 0xfc00707f
22502250
#define MATCH_VQLDOTS_VV 0x9c000077
22512251
#define MASK_VQLDOTS_VV 0xfc00707f
22522252
#define MATCH_VQLDOTU_VV 0x98000077
@@ -3724,6 +3724,13 @@ DECLARE_INSN(vdiv_vv, MATCH_VDIV_VV, MASK_VDIV_VV)
37243724
DECLARE_INSN(vdiv_vx, MATCH_VDIV_VX, MASK_VDIV_VX)
37253725
DECLARE_INSN(vdivu_vv, MATCH_VDIVU_VV, MASK_VDIVU_VV)
37263726
DECLARE_INSN(vdivu_vx, MATCH_VDIVU_VX, MASK_VDIVU_VX)
3727+
DECLARE_INSN(vdot4a_vv, MATCH_VDOT4A_VV, MASK_VDOT4A_VV)
3728+
DECLARE_INSN(vdot4a_vx, MATCH_VDOT4A_VX, MASK_VDOT4A_VX)
3729+
DECLARE_INSN(vdot4asu_vv, MATCH_VDOT4ASU_VV, MASK_VDOT4ASU_VV)
3730+
DECLARE_INSN(vdot4asu_vx, MATCH_VDOT4ASU_VX, MASK_VDOT4ASU_VX)
3731+
DECLARE_INSN(vdot4au_vv, MATCH_VDOT4AU_VV, MASK_VDOT4AU_VV)
3732+
DECLARE_INSN(vdot4au_vx, MATCH_VDOT4AU_VX, MASK_VDOT4AU_VX)
3733+
DECLARE_INSN(vdot4aus_vx, MATCH_VDOT4AUS_VX, MASK_VDOT4AUS_VX)
37273734
DECLARE_INSN(vfadd_vf, MATCH_VFADD_VF, MASK_VFADD_VF)
37283735
DECLARE_INSN(vfadd_vv, MATCH_VFADD_VV, MASK_VFADD_VV)
37293736
DECLARE_INSN(vfbdot_vv, MATCH_VFBDOT_VV, MASK_VFBDOT_VV)
@@ -3978,13 +3985,6 @@ DECLARE_INSN(vpaire_vv, MATCH_VPAIRE_VV, MASK_VPAIRE_VV)
39783985
DECLARE_INSN(vpairo_vv, MATCH_VPAIRO_VV, MASK_VPAIRO_VV)
39793986
DECLARE_INSN(vqbdots_vv, MATCH_VQBDOTS_VV, MASK_VQBDOTS_VV)
39803987
DECLARE_INSN(vqbdotu_vv, MATCH_VQBDOTU_VV, MASK_VQBDOTU_VV)
3981-
DECLARE_INSN(vqdot_vv, MATCH_VQDOT_VV, MASK_VQDOT_VV)
3982-
DECLARE_INSN(vqdot_vx, MATCH_VQDOT_VX, MASK_VQDOT_VX)
3983-
DECLARE_INSN(vqdotsu_vv, MATCH_VQDOTSU_VV, MASK_VQDOTSU_VV)
3984-
DECLARE_INSN(vqdotsu_vx, MATCH_VQDOTSU_VX, MASK_VQDOTSU_VX)
3985-
DECLARE_INSN(vqdotu_vv, MATCH_VQDOTU_VV, MASK_VQDOTU_VV)
3986-
DECLARE_INSN(vqdotu_vx, MATCH_VQDOTU_VX, MASK_VQDOTU_VX)
3987-
DECLARE_INSN(vqdotus_vx, MATCH_VQDOTUS_VX, MASK_VQDOTUS_VX)
39883988
DECLARE_INSN(vqldots_vv, MATCH_VQLDOTS_VV, MASK_VQLDOTS_VV)
39893989
DECLARE_INSN(vqldotu_vv, MATCH_VQLDOTU_VV, MASK_VQLDOTU_VV)
39903990
DECLARE_INSN(vredand_vs, MATCH_VREDAND_VS, MASK_VREDAND_VS)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
OUT_ARR[2] = (TYPE)((IN >> 16) & 0xff); \
66
OUT_ARR[3] = (TYPE)((IN >> 24) & 0xff); \
77

8-
#define VQDOT(IN1, IN2, TYPE1, TYPE2) \
8+
#define VDOT4A(IN1, IN2, TYPE1, TYPE2) \
99
UNPACK_32_TO_8(IN1, TYPE1, unpacked_vs1) \
1010
UNPACK_32_TO_8(IN2, TYPE2, unpacked_vs2) \
1111
uint64_t result = unpacked_vs1[0]*unpacked_vs2[0] + \

riscv/insns/vdot4a_vv.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// vdot4a.vv vd, vs2, vs1, vm
2+
#include "vdot4a_common.h"
3+
4+
require_extension(EXT_ZVDOT4A8I);
5+
require(P.VU.vsew == e32);
6+
7+
VI_VV_LOOP({
8+
VDOT4A(vs1, vs2, int8_t, int8_t);
9+
vd = (vd + result) & 0xffffffff;
10+
})

riscv/insns/vdot4a_vx.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// vdot4a.vx vd, vs2, rs1, vm
2+
#include "vdot4a_common.h"
3+
4+
require_extension(EXT_ZVDOT4A8I);
5+
require(P.VU.vsew == e32);
6+
7+
VI_VX_LOOP({
8+
VDOT4A(rs1, vs2, int8_t, int8_t);
9+
vd = (vd + result) & 0xffffffff;
10+
})

riscv/insns/vdot4asu_vv.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// vdot4asu.vv vd, vs2, vs1, vm
2+
#include "vdot4a_common.h"
3+
4+
require_extension(EXT_ZVDOT4A8I);
5+
require(P.VU.vsew == e32);
6+
7+
VI_VV_LOOP({
8+
VDOT4A(vs1, vs2, uint8_t, int8_t);
9+
vd = (vd + result) & 0xffffffff;
10+
})

riscv/insns/vdot4asu_vx.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// vdot4asu.vx vd, vs2, rs1, vm
2+
#include "vdot4a_common.h"
3+
4+
require_extension(EXT_ZVDOT4A8I);
5+
require(P.VU.vsew == e32);
6+
7+
VI_VX_LOOP({
8+
VDOT4A(rs1, vs2, uint8_t, int8_t);
9+
vd = (vd + result) & 0xffffffff;
10+
})

riscv/insns/vdot4au_vv.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// vdot4au.vv vd, vs2, vs1, vm
2+
#include "vdot4a_common.h"
3+
4+
require_extension(EXT_ZVDOT4A8I);
5+
require(P.VU.vsew == e32);
6+
7+
VI_VV_LOOP({
8+
VDOT4A(vs1, vs2, uint8_t, uint8_t);
9+
vd = (vd + result) & 0xffffffff;
10+
})

riscv/insns/vdot4au_vx.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// vdot4au.vx vd, vs2, rs1, vm
2+
#include "vdot4a_common.h"
3+
4+
require_extension(EXT_ZVDOT4A8I);
5+
require(P.VU.vsew == e32);
6+
7+
VI_VX_LOOP({
8+
VDOT4A(rs1, vs2, uint8_t, uint8_t);
9+
vd = (vd + result) & 0xffffffff;
10+
})

0 commit comments

Comments
 (0)