From b1e82223ee8dc2d79cc1f1026b4620426dec7fc4 Mon Sep 17 00:00:00 2001 From: Santosh Srivatsan Date: Mon, 13 Dec 2021 20:37:29 -0500 Subject: [PATCH] Renamed rv_f* functions to rvf*_s to follow the naming convention between single and double precision floating point --- sim/common/rvfloats.cpp | 90 ++++++++++++----------------------------- sim/common/rvfloats.h | 58 ++++++++++++-------------- 2 files changed, 52 insertions(+), 96 deletions(-) diff --git a/sim/common/rvfloats.cpp b/sim/common/rvfloats.cpp index 87ba5e80..13b7c149 100644 --- a/sim/common/rvfloats.cpp +++ b/sim/common/rvfloats.cpp @@ -8,17 +8,12 @@ extern "C" { } #define F32_SIGN 0x80000000 -// simx64 #define F64_SIGN 0x8000000000000000 inline float32_t to_float32_t(uint32_t x) { return float32_t{x}; } - -// simx64 inline float64_t to_float64_t(uint64_t x) { return float64_t{x}; } inline uint32_t from_float32_t(float32_t x) { return uint32_t(x.v); } - -// simx64 inline uint64_t from_float64_t(float64_t x) { return uint64_t(x.v); } inline uint32_t get_fflags() { @@ -33,14 +28,13 @@ inline uint32_t get_fflags() { extern "C" { #endif -uint64_t rv_fadd(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { +uint32_t rv_fadd_s(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_add(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -// simx64 uint64_t rv_fadd_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f64_add(to_float64_t(a), to_float64_t(b)); @@ -48,14 +42,13 @@ uint64_t rv_fadd_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) { return from_float64_t(r); } -uint64_t rv_fsub(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { +uint32_t rv_fsub_s(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_sub(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -// simx64 uint64_t rv_fsub_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f64_sub(to_float64_t(a), to_float64_t(b)); @@ -63,14 +56,13 @@ uint64_t rv_fsub_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) { return from_float64_t(r); } -uint64_t rv_fmul(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { +uint32_t rv_fmul_s(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_mul(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -// simx64 uint64_t rv_fmul_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f64_mul(to_float64_t(a), to_float64_t(b)); @@ -78,14 +70,13 @@ uint64_t rv_fmul_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) { return from_float64_t(r); } -uint64_t rv_fmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { +uint32_t rv_fmadd_s(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_mulAdd(to_float32_t(a), to_float32_t(b), to_float32_t(c)); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -// simx64 uint64_t rv_fmadd_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f64_mulAdd(to_float64_t(a), to_float64_t(b), to_float64_t(c)); @@ -93,7 +84,7 @@ uint64_t rv_fmadd_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* return from_float64_t(r); } -uint64_t rv_fmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { +uint32_t rv_fmsub_s(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; int c_neg = c ^ F32_SIGN; auto r = f32_mulAdd(to_float32_t(a), to_float32_t(b), to_float32_t(c_neg)); @@ -101,7 +92,6 @@ uint64_t rv_fmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* ff return from_float32_t(r); } -// simx64 uint64_t rv_fmsub_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; long c_neg = c ^ F64_SIGN; @@ -110,7 +100,7 @@ uint64_t rv_fmsub_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* return from_float64_t(r); } -uint64_t rv_fnmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { +uint32_t rv_fnmadd_s(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; int a_neg = a ^ F32_SIGN; int c_neg = c ^ F32_SIGN; @@ -119,7 +109,6 @@ uint64_t rv_fnmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* f return from_float32_t(r); } -// simx64 uint64_t rv_fnmadd_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; long a_neg = a ^ F64_SIGN; @@ -129,7 +118,7 @@ uint64_t rv_fnmadd_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* return from_float64_t(r); } -uint64_t rv_fnmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { +uint32_t rv_fnmsub_s(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; int a_neg = a ^ F32_SIGN; auto r = f32_mulAdd(to_float32_t(a_neg), to_float32_t(b), to_float32_t(c)); @@ -137,7 +126,6 @@ uint64_t rv_fnmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* f return from_float32_t(r); } -// simx64 uint64_t rv_fnmsub_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; long a_neg = a ^ F64_SIGN; @@ -146,14 +134,13 @@ uint64_t rv_fnmsub_d(uint64_t a, uint64_t b, uint64_t c, uint32_t frm, uint32_t* return from_float64_t(r); } -uint64_t rv_fdiv(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { +uint32_t rv_fdiv_s(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_div(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -// simx64 uint64_t rv_fdiv_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f64_div(to_float64_t(a), to_float64_t(b)); @@ -161,14 +148,13 @@ uint64_t rv_fdiv_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags) { return from_float64_t(r); } -uint64_t rv_fsqrt(uint32_t a, uint32_t frm, uint32_t* fflags) { +uint32_t rv_fsqrt_s(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_sqrt(to_float32_t(a)); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -// simx64x uint64_t rv_fsqrt_d(uint64_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f64_sqrt(to_float64_t(a)); @@ -176,15 +162,13 @@ uint64_t rv_fsqrt_d(uint64_t a, uint32_t frm, uint32_t* fflags) { return from_float64_t(r); } - -uint64_t rv_ftoi(uint32_t a, uint32_t frm, uint32_t* fflags) { +uint32_t rv_ftoi_s(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_to_i32(to_float32_t(a), frm, true); if (fflags) { *fflags = get_fflags(); } return r; } -// simx64 uint64_t rv_ftoi_d(uint64_t a, uint64_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f64_to_i32(to_float64_t(a), frm, true); @@ -192,14 +176,13 @@ uint64_t rv_ftoi_d(uint64_t a, uint64_t frm, uint32_t* fflags) { return r; } -uint64_t rv_ftou(uint32_t a, uint32_t frm, uint32_t* fflags) { +uint32_t rv_ftou_s(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_to_ui32(to_float32_t(a), frm, true); if (fflags) { *fflags = get_fflags(); } return r; } -// simx64 uint64_t rv_ftou_d(uint64_t a, uint64_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f64_to_ui32(to_float64_t(a), frm, true); @@ -207,15 +190,13 @@ uint64_t rv_ftou_d(uint64_t a, uint64_t frm, uint32_t* fflags) { return r; } -// simx64 -uint64_t rv_ftol(uint32_t a, uint32_t frm, uint32_t* fflags) { +uint64_t rv_ftol_s(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_to_i64(to_float32_t(a), frm, true); if (fflags) { *fflags = get_fflags(); } return r; } -// simx64 uint64_t rv_ftol_d(uint64_t a, uint64_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f64_to_i64(to_float64_t(a), frm, true); @@ -223,15 +204,13 @@ uint64_t rv_ftol_d(uint64_t a, uint64_t frm, uint32_t* fflags) { return r; } -// simx64 -uint64_t rv_ftolu(uint32_t a, uint32_t frm, uint32_t* fflags) { +uint64_t rv_ftolu_s(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f32_to_ui64(to_float32_t(a), frm, true); if (fflags) { *fflags = get_fflags(); } return r; } -// simx64 uint64_t rv_ftolu_d(uint64_t a, uint64_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = f64_to_ui64(to_float64_t(a), frm, true); @@ -239,14 +218,13 @@ uint64_t rv_ftolu_d(uint64_t a, uint64_t frm, uint32_t* fflags) { return r; } -uint64_t rv_itof(uint32_t a, uint32_t frm, uint32_t* fflags) { +uint32_t rv_itof_s(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = i32_to_f32(a); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -// simx64 uint64_t rv_itof_d(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = i32_to_f64(a); @@ -254,14 +232,13 @@ uint64_t rv_itof_d(uint32_t a, uint32_t frm, uint32_t* fflags) { return from_float64_t(r); } -uint64_t rv_utof(uint32_t a, uint32_t frm, uint32_t* fflags) { +uint32_t rv_utof_s(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = ui32_to_f32(a); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -// simx64 uint64_t rv_utof_d(uint32_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = ui32_to_f64(a); @@ -269,15 +246,13 @@ uint64_t rv_utof_d(uint32_t a, uint32_t frm, uint32_t* fflags) { return from_float64_t(r); } -// simx64 -uint64_t rv_ltof(uint64_t a, uint32_t frm, uint32_t* fflags) { +uint32_t rv_ltof_s(uint64_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = i64_to_f32(a); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -// simx64 uint64_t rv_ltof_d(uint64_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = i64_to_f64(a); @@ -285,15 +260,13 @@ uint64_t rv_ltof_d(uint64_t a, uint32_t frm, uint32_t* fflags) { return from_float64_t(r); } -// simx64 -uint64_t rv_lutof(uint64_t a, uint32_t frm, uint32_t* fflags) { +uint32_t rv_lutof_s(uint64_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = ui64_to_f32(a); if (fflags) { *fflags = get_fflags(); } return from_float32_t(r); } -// simx64 uint64_t rv_lutof_d(uint64_t a, uint32_t frm, uint32_t* fflags) { softfloat_roundingMode = frm; auto r = ui64_to_f64(a); @@ -301,46 +274,43 @@ uint64_t rv_lutof_d(uint64_t a, uint32_t frm, uint32_t* fflags) { return from_float64_t(r); } -uint64_t rv_flt(uint32_t a, uint32_t b, uint32_t* fflags) { +uint32_t rv_flt_s(uint32_t a, uint32_t b, uint32_t* fflags) { auto r = f32_lt(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return r; } -// simx64 uint64_t rv_flt_d(uint64_t a, uint64_t b, uint32_t* fflags) { auto r = f64_lt(to_float64_t(a), to_float64_t(b)); if (fflags) { *fflags = get_fflags(); } return r; } -uint64_t rv_fle(uint32_t a, uint32_t b, uint32_t* fflags) { +uint32_t rv_fle_s(uint32_t a, uint32_t b, uint32_t* fflags) { auto r = f32_le(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return r; } -// simx64 uint64_t rv_fle_d(uint64_t a, uint64_t b, uint32_t* fflags) { auto r = f64_le(to_float64_t(a), to_float64_t(b)); if (fflags) { *fflags = get_fflags(); } return r; } -uint64_t rv_feq(uint32_t a, uint32_t b, uint32_t* fflags) { +uint32_t rv_feq_s(uint32_t a, uint32_t b, uint32_t* fflags) { auto r = f32_eq(to_float32_t(a), to_float32_t(b)); if (fflags) { *fflags = get_fflags(); } return r; } -// simx64 uint64_t rv_feq_d(uint64_t a, uint64_t b, uint32_t* fflags) { auto r = f64_eq(to_float64_t(a), to_float64_t(b)); if (fflags) { *fflags = get_fflags(); } return r; } -uint64_t rv_fmin(uint32_t a, uint32_t b, uint32_t* fflags) { +uint32_t rv_fmin_s(uint32_t a, uint32_t b, uint32_t* fflags) { long r; if (isNaNF32UI(a) && isNaNF32UI(b)) { r = defaultNaNF32UI; @@ -358,7 +328,6 @@ uint64_t rv_fmin(uint32_t a, uint32_t b, uint32_t* fflags) { return r; } -// simx64 uint64_t rv_fmin_d(uint64_t a, uint64_t b, uint32_t* fflags) { long r; if (isNaNF64UI(a) && isNaNF64UI(b)) { @@ -377,7 +346,7 @@ uint64_t rv_fmin_d(uint64_t a, uint64_t b, uint32_t* fflags) { return r; } -uint64_t rv_fmax(uint32_t a, uint32_t b, uint32_t* fflags) { +uint32_t rv_fmax_s(uint32_t a, uint32_t b, uint32_t* fflags) { long r; if (isNaNF32UI(a) && isNaNF32UI(b)) { r = defaultNaNF32UI; @@ -395,7 +364,6 @@ uint64_t rv_fmax(uint32_t a, uint32_t b, uint32_t* fflags) { return r; } -// simx64 uint64_t rv_fmax_d(uint64_t a, uint64_t b, uint32_t* fflags) { long r; if (isNaNF64UI(a) && isNaNF64UI(b)) { @@ -414,7 +382,7 @@ uint64_t rv_fmax_d(uint64_t a, uint64_t b, uint32_t* fflags) { return r; } -uint64_t rv_fclss(uint32_t a) { +uint32_t rv_fclss_s(uint32_t a) { auto infOrNaN = (0xff == expF32UI(a)); auto subnormOrZero = (0 == expF32UI(a)); bool sign = signF32UI(a); @@ -437,7 +405,6 @@ uint64_t rv_fclss(uint32_t a) { return r; } -// simx64 uint64_t rv_fclss_d(uint64_t a) { auto infOrNaN = (0x7ff == expF64UI(a)); auto subnormOrZero = (0 == expF64UI(a)); @@ -461,7 +428,7 @@ uint64_t rv_fclss_d(uint64_t a) { return r; } -uint64_t rv_fsgnj(uint32_t a, uint32_t b) { +uint32_t rv_fsgnj_s(uint32_t a, uint32_t b) { int sign = b & F32_SIGN; int r = sign | (a & ~F32_SIGN); @@ -469,7 +436,6 @@ uint64_t rv_fsgnj(uint32_t a, uint32_t b) { return r; } -// simx64 uint64_t rv_fsgnj_d(uint64_t a, uint64_t b) { long sign = b & F64_SIGN; @@ -478,7 +444,7 @@ uint64_t rv_fsgnj_d(uint64_t a, uint64_t b) { return r; } -uint64_t rv_fsgnjn(uint32_t a, uint32_t b) { +uint32_t rv_fsgnjn_s(uint32_t a, uint32_t b) { int sign = ~b & F32_SIGN; int r = sign | (a & ~F32_SIGN); @@ -486,7 +452,6 @@ uint64_t rv_fsgnjn(uint32_t a, uint32_t b) { return r; } -// simx64 uint64_t rv_fsgnjn_d(uint64_t a, uint64_t b) { long sign = ~b & F64_SIGN; @@ -495,7 +460,7 @@ uint64_t rv_fsgnjn_d(uint64_t a, uint64_t b) { return r; } -uint64_t rv_fsgnjx(uint32_t a, uint32_t b) { +uint32_t rv_fsgnjx_s(uint32_t a, uint32_t b) { int sign1 = a & F32_SIGN; int sign2 = b & F32_SIGN; @@ -504,7 +469,6 @@ uint64_t rv_fsgnjx(uint32_t a, uint32_t b) { return r; } -// simx64 uint64_t rv_fsgnjx_d(uint64_t a, uint64_t b) { long sign1 = a & F64_SIGN; @@ -514,14 +478,12 @@ uint64_t rv_fsgnjx_d(uint64_t a, uint64_t b) { return r; } -// simx64 uint64_t rv_dtof(uint64_t a) { auto r = f64_to_f32(to_float64_t(a)); return from_float32_t(r); } -// simx64 uint64_t rv_ftod(uint32_t a) { auto r = f32_to_f64(to_float32_t(a)); diff --git a/sim/common/rvfloats.h b/sim/common/rvfloats.h index 2e36e16a..9193d7bf 100644 --- a/sim/common/rvfloats.h +++ b/sim/common/rvfloats.h @@ -7,43 +7,37 @@ extern "C" { #endif -uint64_t rv_fadd(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); -uint64_t rv_fsub(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); -uint64_t rv_fmul(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); -uint64_t rv_fmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); -uint64_t rv_fmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); -uint64_t rv_fnmadd(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); -uint64_t rv_fnmsub(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); -uint64_t rv_fdiv(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); -uint64_t rv_fsqrt(uint32_t a, uint32_t frm, uint32_t* fflags); +uint32_t rv_fadd_s(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); +uint32_t rv_fsub_s(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); +uint32_t rv_fmul_s(uint32_t a, uint32_t b, uint32_t frm, uint32_t* fflags); +uint32_t rv_fmadd_s(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); +uint32_t rv_fmsub_s(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); +uint32_t rv_fnmadd_s(uint32_t a, uint32_t b, uint32_t c, uint32_t frm, uint32_t* fflags); +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); -uint64_t rv_ftoi(uint32_t a, uint32_t frm, uint32_t* fflags); -uint64_t rv_ftou(uint32_t a, uint32_t frm, uint32_t* fflags); -// simx64 -uint64_t rv_ftol(uint32_t a, uint32_t frm, uint32_t* fflags); -// simx64 -uint64_t rv_ftolu(uint32_t a, uint32_t frm, uint32_t* fflags); -uint64_t rv_itof(uint32_t a, uint32_t frm, uint32_t* fflags); -uint64_t rv_utof(uint32_t a, uint32_t frm, uint32_t* fflags); -// simx64 -uint64_t rv_ltof(uint64_t a, uint32_t frm, uint32_t* fflags); -// simx64 -uint64_t rv_lutof(uint64_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); +uint64_t rv_ftol_s(uint32_t a, uint32_t frm, uint32_t* fflags); +uint64_t rv_ftolu_s(uint32_t a, uint32_t frm, uint32_t* fflags); +uint32_t rv_itof_s(uint32_t a, uint32_t frm, uint32_t* fflags); +uint32_t rv_utof_s(uint32_t a, uint32_t frm, uint32_t* fflags); +uint32_t rv_ltof_s(uint64_t a, uint32_t frm, uint32_t* fflags); +uint32_t rv_lutof_s(uint64_t a, uint32_t frm, uint32_t* fflags); -uint64_t rv_fclss(uint32_t a); -uint64_t rv_fsgnj(uint32_t a, uint32_t b); -uint64_t rv_fsgnjn(uint32_t a, uint32_t b); -uint64_t rv_fsgnjx(uint32_t a, uint32_t b); +uint32_t rv_fclss_s(uint32_t a); +uint32_t rv_fsgnj_s(uint32_t a, uint32_t b); +uint32_t rv_fsgnjn_s(uint32_t a, uint32_t b); +uint32_t rv_fsgnjx_s(uint32_t a, uint32_t b); -uint64_t rv_flt(uint32_t a, uint32_t b, uint32_t* fflags); -uint64_t rv_fle(uint32_t a, uint32_t b, uint32_t* fflags); -uint64_t rv_feq(uint32_t a, uint32_t b, uint32_t* fflags); -uint64_t rv_fmin(uint32_t a, uint32_t b, uint32_t* fflags); -uint64_t rv_fmax(uint32_t a, uint32_t b, uint32_t* fflags); +uint32_t rv_flt_s(uint32_t a, uint32_t b, uint32_t* fflags); +uint32_t rv_fle_s(uint32_t a, uint32_t b, uint32_t* fflags); +uint32_t rv_feq_s(uint32_t a, uint32_t b, uint32_t* fflags); +uint32_t rv_fmin_s(uint32_t a, uint32_t b, uint32_t* fflags); +uint32_t rv_fmax_s(uint32_t a, uint32_t b, uint32_t* fflags); - -// simx64 uint64_t rv_fadd_d(uint64_t a, uint64_t b, uint32_t frm, uint32_t* fflags); 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);