Skip to content
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

Vector extension simx without testcases #201

Closed
wants to merge 138 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
ac1f8c3
Introduce gitignores
troibe Jan 11, 2024
85dc5cd
Add riscv-vector-tests
troibe Jan 11, 2024
7142223
Add riscv-vector-tests to regression
troibe Jan 11, 2024
cd7a6a7
Allow execution of single vector tests
troibe Jan 12, 2024
95d41e7
Adjust gitignore to only cover simx binary
troibe Jan 12, 2024
e3ea627
Add support for vector registers
troibe Jan 12, 2024
a8fd566
Separate out vector execution
troibe Jan 12, 2024
ef17a76
Add support for vset(i)vl(i)
troibe Jan 12, 2024
35e1930
Add support for vle and vse
troibe Jan 12, 2024
7739e09
Fix vadd.vi
troibe Jan 13, 2024
a33a3ff
Add more vector immidiate instructions
troibe Jan 13, 2024
152c5cd
Add support for vadd.vx
troibe Jan 13, 2024
ddbae52
Add unrecognised vector instruction warnings
troibe Jan 13, 2024
fb7f2cd
Add more vector scalar instructions
troibe Jan 13, 2024
4be8adb
Add initial vector vector instructions
troibe Jan 14, 2024
6b897ee
Add float vector vector instructions
troibe Jan 14, 2024
548c896
Add support for vmul, vmulh, vmulhu
troibe Jan 14, 2024
74d294e
Add support for vwmul.vv
troibe Jan 14, 2024
583f2b5
Refactor common functions
troibe Jan 14, 2024
7288da4
Add initial reduction instructions
troibe Jan 14, 2024
a4045da
Add integer compare mask instructions
troibe Jan 14, 2024
1faabb1
Add mask bits comparison instructions
troibe Jan 14, 2024
e922917
Add precompiled vector tests
troibe Jan 14, 2024
77fb22c
Switch to https for riscv-vector-tests submodule's submodules
troibe Jan 15, 2024
388b932
Fix test mode calling convenction for riscv-vector-tests
troibe Jan 15, 2024
26e914d
Add support for X64
troibe Jan 15, 2024
0f79234
Only run supported test cases by default
troibe Jan 16, 2024
bcfdee9
Use upstream riscv-vector-tests as https is merged
troibe Jan 16, 2024
1dd2c47
Add vector test case documentation
troibe Jan 16, 2024
22f03a9
Fix CSR issue for vset with X64
troibe Jan 16, 2024
90f873d
Fix fcvt on X64
troibe Jan 16, 2024
ac3e6a1
Add support for vcompress.vm
troibe Jan 16, 2024
8277e00
Add support for vnclip
troibe Jan 17, 2024
365a18f
Add support for vfmin.vf and vfmax.vf
troibe Jan 21, 2024
389b68a
Implement more mask compare vi and vx instructions
troibe Jan 22, 2024
faca172
Add more vector reduction instructions
troibe Jan 23, 2024
41724f3
Add support for more vector float instructions
troibe Jan 25, 2024
69e5e4a
Add float mask vector operations
troibe Jan 25, 2024
f64728e
Add support for vfsqrt.v and vfclass.v
troibe Jan 25, 2024
f16e105
Add support for more integer widening operations
troibe Jan 25, 2024
0b4c3d3
Add integer div, rem and float div, mul and rsub
troibe Jan 26, 2024
44eb356
Add vid.v and fix vset(i)vl(i)
troibe Jan 28, 2024
ecfdb83
Add move instructions
troibe Jan 28, 2024
f7970e4
Implement missing type conversion instructions
troibe Jan 29, 2024
8d2f1c6
Add slide instructions
troibe Jan 30, 2024
d46c151
Add merge instructions
troibe Jan 30, 2024
6fe47f5
Add vfmerge.vfm
troibe Jan 30, 2024
2db3d10
Update test cases
troibe Jan 31, 2024
2408de1
Add support for register gather instructions
troibe Jan 31, 2024
a75897a
Move loadVector and storeVector to Warp
troibe Jan 31, 2024
2b2b9b5
Add support for whole register load/store
troibe Feb 1, 2024
2645d33
Fix failing 32bit build because of vfmv.f.s
troibe Feb 1, 2024
427de12
Add strided loads
troibe Feb 1, 2024
657b1e4
Fix writeback for vmv.x.s and vfmv.f.s
troibe Feb 1, 2024
d1205b5
Add indexed loads/stores
troibe Feb 2, 2024
c8c9443
Fix whole register load
troibe Feb 2, 2024
6d2edc3
Remove vfwcvt (32bit), vfncvt (32bit), vleXff.v from tests
troibe Feb 2, 2024
152f4fd
Add vsext and vzext
troibe Feb 4, 2024
8f0dcec
Fix vsext and vzext lmul*vf legal check
troibe Feb 4, 2024
b2a703e
Add vwmacc.vv, vwmacc.vx, vwmaccu.vv, vwmaccu.vx
troibe Feb 4, 2024
1a8139b
Add vfmacc.vv, vfmacc.vf, vfnmsac.vv, vfnmsac.vf
troibe Feb 5, 2024
9b682c8
Update vector testcases
troibe Feb 5, 2024
30f96a2
Add remaining float multiply-add instructions
troibe Feb 6, 2024
9a345dd
Add vssub and vsadd
troibe Feb 11, 2024
af1bb33
Add vnsrl.wi, vnsrl.wx, vnsrl.wi and vnsra.wi, vnsra.wx, vnsra.wi
troibe Feb 12, 2024
1b885e7
Fix vmv.s.x and vfmv.s.f
troibe Feb 12, 2024
1b12121
Remove RFxunary0 operation class
troibe Feb 12, 2024
034aa0d
Add support for vssra.vi, vssra.vx, vssra.vv, vssrl.vi, vssrl.vx, vss…
troibe Feb 26, 2024
2fc36ac
Fix vnsra and vnsrl
troibe Feb 26, 2024
cfe9b1c
Add support for vaadd.vx, vaadd.vv, vaaddu.vx, vaaddu.vv, vasub.vx, v…
troibe Feb 27, 2024
07f3f8b
Add vmulhsu.vx and vmulhsu.vv
troibe Mar 20, 2024
0292905
Add vsmul.vv and vsmul.vx
troibe Mar 21, 2024
9797175
Add support for single-width integer multiply-add instructions
troibe Mar 21, 2024
2696367
Add support for vwmulsu.vv and vwmulsu.vx
troibe Mar 21, 2024
c5a3f45
Add vwadd(u).wx, vwadd(u).wv, vwsub(u).wx, vwsub(u).wv
troibe Mar 21, 2024
e1b1a0c
Add vwmaccsu.vv, vwmaccsu.vx and vmaccus.vx
troibe Mar 21, 2024
20c21c9
Add integer add with carry and subtract with borrow
troibe Mar 21, 2024
04c2c84
Add vle8ff.v, vle16ff.v, vle32ff.v, vle64ff.v
troibe Mar 26, 2024
8a1e639
Add vlm.v, vsm.v
troibe Mar 26, 2024
7402842
Add support for segmented load and store instructions
troibe Mar 28, 2024
3376ccd
Add vfwadd and vfwsub
troibe Mar 30, 2024
afe672e
Add vfwmul.vf and vfwmul.vv
troibe Mar 30, 2024
92da172
Add widening mac operations
troibe Mar 31, 2024
3003349
Resolve floating point widening issues for XLEN=32
troibe Apr 1, 2024
85559d6
Update vector test suite
troibe Apr 2, 2024
2580aa3
Add widening reduction instructions
troibe Apr 5, 2024
8708c48
Merge remote-tracking branch 'prev/simx-v2-vector' into vector-isa-v2
MichaelJSr May 20, 2024
19ea8fe
merge and update codebase of simx-v2-vector into fork
MichaelJSr May 20, 2024
545a6aa
Update simx riscv vector isa
MichaelJSr May 20, 2024
f1bc973
Begin working on rtlsim vector isa
MichaelJSr May 21, 2024
4b29460
Revert "Begin working on rtlsim vector isa"
MichaelJSr Jun 6, 2024
4ec9fc9
Merge remote-tracking branch 'upstream' into vector-isa-v2
MichaelJSr Jun 6, 2024
db00815
Started working on more accurate debugging for the riscv vector exten…
MichaelJSr Jun 6, 2024
2d60bab
Finished the vector ISA debug logging for simx
MichaelJSr Jun 8, 2024
f6bb063
Update .gitmodules
MichaelJSr Jun 8, 2024
d53f658
implemented some of the riscv vector ISA for rtlsim and created a op_…
MichaelJSr Jun 9, 2024
b1f62f6
Make Rtlsim Vector ISA logging closer match SimX Vector ISA logging
MichaelJSr Jun 11, 2024
6e6baba
Changed toolchain install to older version for compatibility reasons
MichaelJSr Jun 12, 2024
c5d7b7a
Merge remote-tracking branch 'origin/HEAD' into riscv-vector-isa
MichaelJSr Oct 2, 2024
98ce863
Update Makefile
MichaelJSr Oct 2, 2024
2598c8a
change vpu_mod_t to vpu_args_t
MichaelJSr Oct 2, 2024
40ffa63
Update VX_gpu_pkg.sv
MichaelJSr Oct 2, 2024
9dd4ad8
changed op_mod to op_args for vpu
MichaelJSr Oct 2, 2024
3fd90f5
Update arch.h
MichaelJSr Oct 2, 2024
3ae0f36
arch update for riscv vector isa to not use num_regs or num_csrs
MichaelJSr Oct 2, 2024
cbd922c
Merge remote-tracking branch 'origin/HEAD' into riscv-vector-isa
MichaelJSr Oct 7, 2024
b1d156d
Update VX_csr_data.sv
MichaelJSr Oct 7, 2024
d497c95
update riscv-vector-isa to match origin
MichaelJSr Oct 7, 2024
c3ae793
re-added riscv-vector-tests option to simx
MichaelJSr Oct 7, 2024
46d25d9
Revert "re-added riscv-vector-tests option to simx"
MichaelJSr Oct 7, 2024
60ed4ca
readded riscv-vector-tests option to simx main
MichaelJSr Oct 7, 2024
ba980a3
Added some new riscv vector isa CSR's
MichaelJSr Oct 8, 2024
c1df48e
added -r riscv test option to rtlsim and added write csr's for vector…
MichaelJSr Oct 9, 2024
45c0121
re-added ecall and ebreak for vector tests
MichaelJSr Oct 9, 2024
0b3f423
temporary simx fix for riscv vector tests
MichaelJSr Oct 9, 2024
3334f53
updated riscv_test case for simx and rtlsim drivers
MichaelJSr Oct 9, 2024
df2ce0d
attempt to manually add recip7 and rsqrte7 for riscv-vector isa
MichaelJSr Oct 14, 2024
4cbed8e
modified includes
MichaelJSr Oct 14, 2024
215623a
Update softfloat_ext.cpp
MichaelJSr Oct 14, 2024
3db056d
Added explicit fallthrough statements to remove warning
MichaelJSr Oct 14, 2024
399fc6d
Added f16_classify, f32_classify, f64_classify
MichaelJSr Oct 14, 2024
81b80b9
Update rvfloats.cpp
MichaelJSr Oct 16, 2024
98f7a10
Added riscv-vector-tests to configure
MichaelJSr Oct 16, 2024
0e53e81
riscv-vector softfloat_ext modification
MichaelJSr Oct 16, 2024
1108e9c
Merge remote-tracking branch 'upstream/master' into riscv-vector-isa
MichaelJSr Oct 16, 2024
48b04f8
riscv-vector regression test changes
MichaelJSr Oct 16, 2024
f8670a0
riscv-vector regression test changes
MichaelJSr Oct 19, 2024
18be708
vector test regression changes
MichaelJSr Oct 20, 2024
3406d74
riscv vector regression test edits
MichaelJSr Oct 20, 2024
8b2dea0
riscv vector test edits
MichaelJSr Oct 21, 2024
b47cbaa
Merge remote-tracking branch 'origin/HEAD' into riscv-vector-isa
MichaelJSr Oct 30, 2024
4b3da9b
Removed vector extension testcases
MichaelJSr Oct 30, 2024
33f6110
Uncomment out run-test line for copying over vector testcases
MichaelJSr Nov 3, 2024
0ffe41e
Merge branch 'master' into riscv-vector-isa-simx
tinebp Nov 14, 2024
33074aa
Merge remote-tracking branch 'origin/master' into riscv-vector-isa-simx
MichaelJSr Nov 16, 2024
023148a
Update run-test.sh.in
MichaelJSr Nov 25, 2024
6c899cd
update vector run-test to download vector testcases
MichaelJSr Nov 26, 2024
8118544
Update run-test.sh.in
MichaelJSr Nov 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ jobs:
strategy:
fail-fast: false
matrix:
name: [regression, opencl, cache, config1, config2, debug, scope, stress, synthesis, vm]
name: [regression, opencl, cache, config1, config2, debug, scope, stress, synthesis, vm, vector]
xlen: [32, 64]

steps:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
/.vscode
*.cache
*.code-workspace
*.DS_store
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@
[submodule "third_party/cvfpu"]
path = third_party/cvfpu
url = https://github.com/openhwgroup/cvfpu.git
[submodule "third_party/riscv-vector-tests"]
path = third_party/riscv-vector-tests
url = https://github.com/ksco/riscv-vector-tests.git
16 changes: 15 additions & 1 deletion ci/regression.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -386,10 +386,20 @@ synthesis()
echo "synthesis tests done!"
}

vector()
{
echo "begin vector tests..."

make -C sim/simx
TOOLDIR=@TOOLDIR@ XLEN=@XLEN@ VLEN=256 REG_TESTS=1 ./tests/riscv/riscv-vector-tests/run-test.sh

echo "vector tests done!"
}

show_usage()
{
echo "Vortex Regression Test"
echo "Usage: $0 [--clean] [--unittest] [--isa] [--kernel] [--regression] [--opencl] [--cache] [--config1] [--config2] [--debug] [--scope] [--stress] [--synthesis] [--all] [--h|--help]"
echo "Usage: $0 [--clean] [--unittest] [--isa] [--kernel] [--regression] [--opencl] [--cache] [--config1] [--config2] [--debug] [--scope] [--stress] [--synthesis] [--vector] [--all] [--h|--help]"
}

declare -a tests=()
Expand Down Expand Up @@ -439,6 +449,9 @@ while [ "$1" != "" ]; do
--synthesis )
tests+=("synthesis")
;;
--vector )
tests+=("vector")
;;
--all )
tests=()
tests+=("unittest")
Expand All @@ -454,6 +467,7 @@ while [ "$1" != "" ]; do
tests+=("scope")
tests+=("stress")
tests+=("synthesis")
tests+=("vector")
;;
-h | --help )
show_usage
Expand Down
4 changes: 4 additions & 0 deletions hw/rtl/VX_config.vh
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@
`endif
`endif

`ifndef VLEN
`define VLEN 256
`endif

`ifndef NUM_CLUSTERS
`define NUM_CLUSTERS 1
`endif
Expand Down
13 changes: 13 additions & 0 deletions hw/rtl/VX_types.vh
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,19 @@
`define VX_CSR_MIMPID 12'hF13
`define VX_CSR_MHARTID 12'hF14

// Vector CSRs

`define VX_CSR_VSTART 12'h008
`define VX_CSR_VXSAT 12'h009
`define VX_CSR_VXRM 12'h00A
`define VX_CSR_VCSR 12'h00F
`define VX_CSR_VL 12'hC20
`define VX_CSR_VTYPE 12'hC21
`define VX_CSR_VLENB 12'hC22
`define VX_CSR_VCYCLE 12'hC00
`define VX_CSR_VTIME 12'hC01
`define VX_CSR_VINSTRET 12'hC02

// GPGU CSRs

`define VX_CSR_THREAD_ID 12'hCC0
Expand Down
2 changes: 1 addition & 1 deletion perf/cache/cache_perf.log
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
CONFIGS=-DNUM_CLUSTERS=1 -DNUM_CORES=1 -DNUM_WARPS=2 -DNUM_THREADS=2 -DPERF_ENABLE -DICACHE_NUM_WAYS=1
running: CONFIGS=-DNUM_CLUSTERS=1 -DNUM_CORES=1 -DNUM_WARPS=2 -DNUM_THREADS=2 -DPERF_ENABLE -DICACHE_NUM_WAYS=1 make -C ./ci/../driver/rtlsim
verilator --build --exe --cc Vortex --top-module Vortex --language 1800-2009 --assert -Wall -Wpedantic -Wno-DECLFILENAME -Wno-REDEFMACRO --x-initial unique --x-assign unique verilator.vlt -I../../hw/rtl -I../../hw/dpi -I../../hw/rtl/libs -I../../hw/rtl/interfaces -I../../hw/rtl/cache -I../../hw/rtl/simulate -I../../hw/rtl/fp_cores -I../../third_party/fpnew/src/common_cells/include -I../../third_party/fpnew/src/common_cells/src -I../../third_party/fpnew/src/fpu_div_sqrt_mvp/hdl -I../../third_party/fpnew/src -I../../hw/rtl/tex_unit -I../../hw/rtl/raster_unit -I../../hw/rtl/rop_unit -DNUM_CLUSTERS=1 -DNUM_CORES=1 -DNUM_WARPS=2 -DNUM_THREADS=2 -DPERF_ENABLE -DICACHE_NUM_WAYS=1 -j 64 -DNDEBUG -DIMUL_DPI -DIDIV_DPI -DFPU_DPI ../common/util.cpp ../common/mem.cpp ../common/rvfloats.cpp ../../hw/dpi/util_dpi.cpp ../../hw/dpi/float_dpi.cpp processor.cpp -CFLAGS '-std=c++11 -Wall -Wextra -Wfatal-errors -Wno-array-bounds -fPIC -Wno-maybe-uninitialized -I../../../hw -I../../common -I../../../third_party/softfloat/source/include -I../../../third_party -DNUM_CLUSTERS=1 -DNUM_CORES=1 -DNUM_WARPS=2 -DNUM_THREADS=2 -DPERF_ENABLE -DICACHE_NUM_WAYS=1 -O2 -DNDEBUG' -LDFLAGS '-shared ../../../third_party/softfloat/build/Linux-x86_64-GCC/softfloat.a -L../../../third_party/ramulator -lramulator' -o ../../../driver/rtlsim/librtlsim.so
verilator --build --exe --cc Vortex --top-module Vortex --language 1800-2009 --assert -Wall -Wpedantic -Wno-DECLFILENAME -Wno-REDEFMACRO --x-initial unique --x-assign unique verilator.vlt -I../../hw/rtl -I../../hw/dpi -I../../hw/rtl/libs -I../../hw/rtl/interfaces -I../../hw/rtl/cache -I../../hw/rtl/simulate -I../../hw/rtl/fp_cores -I../../third_party/fpnew/src/common_cells/include -I../../third_party/fpnew/src/common_cells/src -I../../third_party/fpnew/src/fpu_div_sqrt_mvp/hdl -I../../third_party/fpnew/src -I../../hw/rtl/tex_unit -I../../hw/rtl/raster_unit -I../../hw/rtl/rop_unit -DNUM_CLUSTERS=1 -DNUM_CORES=1 -DNUM_WARPS=2 -DNUM_THREADS=2 -DPERF_ENABLE -DICACHE_NUM_WAYS=1 -j 64 -DNDEBUG -DIMUL_DPI -DIDIV_DPI -DFPU_DPI ../common/util.cpp ../common/mem.cpp ../common/softfloat_ext.cpp ../common/rvfloats.cpp ../../hw/dpi/util_dpi.cpp ../../hw/dpi/float_dpi.cpp processor.cpp -CFLAGS '-std=c++11 -Wall -Wextra -Wfatal-errors -Wno-array-bounds -fPIC -Wno-maybe-uninitialized -I../../../hw -I../../common -I../../../third_party/softfloat/source/include -I../../../third_party -DNUM_CLUSTERS=1 -DNUM_CORES=1 -DNUM_WARPS=2 -DNUM_THREADS=2 -DPERF_ENABLE -DICACHE_NUM_WAYS=1 -O2 -DNDEBUG' -LDFLAGS '-shared ../../../third_party/softfloat/build/Linux-x86_64-GCC/softfloat.a -L../../../third_party/ramulator -lramulator' -o ../../../driver/rtlsim/librtlsim.so
34 changes: 34 additions & 0 deletions sim/common/rvfloats.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
// limitations under the License.

#include "rvfloats.h"
#include "softfloat_ext.h"
#include <stdio.h>

extern "C" {
Expand Down Expand Up @@ -158,6 +159,34 @@ uint64_t rv_fdiv_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) {
return from_float64_t(r);
}

uint32_t rv_frecip7_s(uint32_t a, uint32_t frm, uint32_t* fflags) {
softfloat_roundingMode = frm;
auto r = f32_recip7(to_float32_t(a));
if (fflags) { *fflags = softfloat_exceptionFlags; }
return from_float32_t(r);
}

uint64_t rv_frecip7_d(uint64_t a, uint32_t frm, uint32_t* fflags) {
softfloat_roundingMode = frm;
auto r = f64_recip7(to_float64_t(a));
if (fflags) { *fflags = softfloat_exceptionFlags; }
return from_float64_t(r);
}

uint32_t rv_frsqrt7_s(uint32_t a, uint32_t frm, uint32_t* fflags) {
softfloat_roundingMode = frm;
auto r = f32_rsqrte7(to_float32_t(a));
if (fflags) { *fflags =softfloat_exceptionFlags; }
return from_float32_t(r);
}

uint64_t rv_frsqrt7_d(uint64_t a, uint32_t frm, uint32_t* fflags) {
softfloat_roundingMode = frm;
auto r = f64_rsqrte7(to_float64_t(a));
if (fflags) { *fflags = softfloat_exceptionFlags; }
return from_float64_t(r);
}

uint32_t rv_fsqrt_s(uint32_t a, uint32_t frm, uint32_t* fflags) {
rv_init(frm);
auto r = f32_sqrt(to_float32_t(a));
Expand Down Expand Up @@ -486,6 +515,11 @@ uint64_t rv_fsgnjx_d(uint64_t a, uint64_t b) {
return r;
}

uint32_t rv_dtof_r(uint64_t a, uint32_t frm) {
rv_init(frm);
return rv_dtof(a);
}

uint32_t rv_dtof(uint64_t a) {
auto r = f64_to_f32(to_float64_t(a));
return from_float32_t(r);
Expand Down
5 changes: 5 additions & 0 deletions sim/common/rvfloats.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ uint32_t rv_fnmadd_s(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t*
uint32_t rv_fnmsub_s(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags);
uint32_t rv_fdiv_s(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags);
uint32_t rv_fsqrt_s(uint32_t a, uint32_t frm, uint32_t* fflags);
uint32_t rv_frecip7_s(uint32_t a, uint32_t frm, uint32_t* fflags);
uint32_t rv_frsqrt7_s(uint32_t a, uint32_t frm, uint32_t* fflags);

uint32_t rv_ftoi_s(uint32_t a, uint32_t frm, uint32_t* fflags);
uint32_t rv_ftou_s(uint32_t a, uint32_t frm, uint32_t* fflags);
Expand Down Expand Up @@ -58,6 +60,8 @@ uint64_t rv_fsub_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags);
uint64_t rv_fmul_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags);
uint64_t rv_fdiv_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags);
uint64_t rv_fsqrt_d(uint64_t a, uint32_t frm, uint32_t* fflags);
uint64_t rv_frecip7_d(uint64_t a, uint32_t frm, uint32_t* fflags);
uint64_t rv_frsqrt7_d(uint64_t a, uint32_t frm, uint32_t* fflags);

uint64_t rv_fmadd_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags);
uint64_t rv_fmsub_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags);
Expand Down Expand Up @@ -85,6 +89,7 @@ uint64_t rv_fmin_d(uint64_t a, uint64_t b, uint32_t* fflags);
uint64_t rv_fmax_d(uint64_t a, uint64_t b, uint32_t* fflags);

uint32_t rv_dtof(uint64_t a);
uint32_t rv_dtof_r(uint64_t a, uint32_t frm);
uint64_t rv_ftod(uint32_t a);

#ifdef __cplusplus
Expand Down
Loading
Loading