-
Notifications
You must be signed in to change notification settings - Fork 902
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v-spec 0.7.1 support #303
v-spec 0.7.1 support #303
Conversation
vector unit tests need identical floating library to generate golden pattern Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
It is preparatory commit for vector extension. v-ext has hundresds of new instructions and mixing them with scalar instructions messes up code. Separate each extension into different list to make thing clean Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
7dd8085
to
34e90d3
Compare
Cool. Will review and provide feedback over the next day or so. |
Okay. We can fix this later if people complain. Can you update the autoconf/configure scripts to check for a 64-bit host, and issue a useful error message if the host is 32-bit? |
How to test these vector instructions ? Current assembler can't compile vector instructions |
Binutils port is also being released (sorry, I don’t have a link)
…On Thu, Jun 13, 2019 at 10:36 AM myftptoyman ***@***.***> wrote:
How to test these vector instructions ? Current assembler can't compile
vector instructions
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
<#303>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAH3XQXC4NA5DG7MXYJTRQ3P2IBHBANCNFSM4HW326VQ>
.
|
You can find rvv 0.7.1 binutils sources in the rvv branch at We should create a branch in riscv/riscv-gnu-toolchain to hold this, and some minimal gcc patches to support the vector extension, but I'm swamped with work and haven't gotten around to it yet. Plus I wasn't sure what exactly was happening with the spike work. There is an existing rvv branch in riscv/riscv-gnu-toolchain, but it holds rvv 0.6 support. I don't know if that is useful to anyone anymore, so I don't know if it is safe to overwrite that or not. I could alternatively create a rvv-0.7 branch for the new work to avoid conflicting with the old work and avoid conflicts with possible future work. I'd rather not have non-upstream patches on riscv-gnu-toolchain master, and I'd rather not upstream patches that aren't an official standard yet, so I don't have any better suggestion than creating an rvv specific branch. |
also remove duplicated one in fesvr Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
It is a preparatory commit. vector extension has supported segment load/store which have the same prefix and a serial number as suffix. ex: base : vlsegb.v variation: vlseg2.v, vlseg3b ... vlseg8b dynamic string can reduce the typing effort Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
support most of vector instruction except for AMO extension Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
1. configure option "--with-varch" the option defines the default u-arch implementatiton-decided parameter VLEN: vector register length in bit SLEN: striping distance in bit ELEN: max element size in bit ex: --with-vector=v128:e32:s128 2. add __int128_t type checking 3. add --varch command option and help message ex: --varch=v512:e64:s512 Signed-off-by: Dave Wen <dave.wen@sifive.com>
Signed-off-by: Bruce Hoult <bruce@hoult.org> Signed-off-by: Dave Wen <dave.wen@sifive.com>
the default vector parameters are defined in configuration time but can be changed throught command-line option Signed-off-by: Dave Wen <dave.wen@sifive.com>
34e90d3
to
a6071ab
Compare
Changes
|
Thank you for addressing all these requests! I think it is @palmer-dabbelt's turn to review the code. |
I have builld success the rvv Spike and binutils rvv 0.7.1 and run on gcc inline assembly. It is look very good. I will try some algorithm on this platform. Thank you. |
I don't understand the github interface
}else if(sew == e64){ \ | ||
VV_PARAMS(e64); \ | ||
BODY; \ | ||
} \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should fail on an unknown SEW. There's a bunch of these.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we're checking the unsupported SEW at very begging of each instruction. Please reference the decode.h:460.
add command to show vector register in debug mode Signed-off-by: Bruce Hoult <bruce@hoult.org>
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
1. add integer signed add/subu and unsigend add/sub saturation function 2. merge these with mulhi helper Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
Signed-off-by: Bruce Hoult <bruce@hoult.org> Signed-off-by: Dave Wen <dave.wen@sifive.com> Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
based on v-spec 0.7.1, support sections: 12/13/15.1 ~ 15.2/16/17 element size: 8/16/32/64 support ediv: 1 Signed-off-by: Bruce Hoult <bruce@hoult.org> Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com> Signed-off-by: Dave Wen <dave.wen@sifive.com>
based on v-spec 0.7.1, support section: 7 element size: 8/16/32/64 Signed-off-by: Bruce Hoult <bruce@hoult.org> Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com> Signed-off-by: Dave Wen <dave.wen@sifive.com> Signed-off-by: Zakk Chen <zakk.chen@sifive.com>
based on v-spec 0.7.1, support sections: 14/15.3 ~ 15.4 element size: 32 Signed-off-by: Bruce Hoult <bruce@hoult.org> Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com> Signed-off-by: Dave Wen <dave.wen@sifive.com>
the tool can parse the instruction name from spike debug log to help dsp kernel designer check what instructions have been used Signed-off-by: Jerry Shih <bignose1007@gmail.com>
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
a6071ab
to
92e0056
Compare
Changes:
|
I think this version of the patch is mergeable; any objections? |
LGTM
…On Wed, Jun 19, 2019, 12:48 AM Andrew Waterman ***@***.***> wrote:
I think this version of the patch is mergeable; any objections?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#303>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAKRUXTGVEWEWQKY5YXXXKDP3EGVRANCNFSM4HW326VQ>
.
|
Thanks @chihminchao! |
Based on 0.7.1
The implementation supports
by arch
by instruction category
sections: 12/13/15.1 ~ 15.2/16/17
element size: 8/16/32/64
support ediv: 1
section: 7
element size: 8/16/32/64
sections: 14/15.3 ~ 15.4
element size: 32