Browse Source
change the extention check for F/D/Zfh instructions modify the F/D/Zfh instructions to read X regs when enable Zfinx Co-authored-by: wangmeng <shusheng8495@hotmail.com>pull/831/head
committed by
Weiwei Li
89 changed files with 239 additions and 197 deletions
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f64_add(f64(FRS1), f64(FRS2))); |
|||
WRITE_FRD_D(f64_add(FRS1_D, FRS2_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f16_add(f16(FRS1), f16(FRS2))); |
|||
WRITE_FRD_H(f16_add(FRS1_H, FRS2_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f32_add(f32(FRS1), f32(FRS2))); |
|||
WRITE_FRD_F(f32_add(FRS1_F, FRS2_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
WRITE_RD(f64_classify(f64(FRS1))); |
|||
WRITE_RD(f64_classify(FRS1_D)); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
WRITE_RD(f16_classify(f16(FRS1))); |
|||
WRITE_RD(f16_classify(FRS1_H)); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
WRITE_RD(f32_classify(f32(FRS1))); |
|||
WRITE_RD(f32_classify(FRS1_F)); |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension(EXT_ZFHMIN); |
|||
require_extension('D'); |
|||
require_either_extension(EXT_ZFHMIN, EXT_ZHINXMIN); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f16_to_f64(f16(FRS1))); |
|||
WRITE_FRD_D(f16_to_f64(FRS1_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_rv64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(i64_to_f64(RS1)); |
|||
WRITE_FRD_D(i64_to_f64(RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_rv64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(ui64_to_f64(RS1)); |
|||
WRITE_FRD_D(ui64_to_f64(RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f32_to_f64(f32(FRS1))); |
|||
WRITE_FRD_D(f32_to_f64(FRS1_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(i32_to_f64((int32_t)RS1)); |
|||
WRITE_FRD_D(i32_to_f64((int32_t)RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(ui32_to_f64((uint32_t)RS1)); |
|||
WRITE_FRD_D(ui32_to_f64((uint32_t)RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension(EXT_ZFHMIN); |
|||
require_extension('D'); |
|||
require_either_extension(EXT_ZFHMIN, EXT_ZHINXMIN); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f64_to_f16(f64(FRS1))); |
|||
WRITE_FRD_H(f64_to_f16(FRS1_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_rv64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(i64_to_f16(RS1)); |
|||
WRITE_FRD_H(i64_to_f16(RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_rv64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(ui64_to_f16(RS1)); |
|||
WRITE_FRD_H(ui64_to_f16(RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFHMIN); |
|||
require_either_extension(EXT_ZFHMIN, EXT_ZHINXMIN); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f32_to_f16(f32(FRS1))); |
|||
WRITE_FRD_H(f32_to_f16(FRS1_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(i32_to_f16((int32_t)RS1)); |
|||
WRITE_FRD_H(i32_to_f16((int32_t)RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(ui32_to_f16((uint32_t)RS1)); |
|||
WRITE_FRD_H(ui32_to_f16((uint32_t)RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_rv64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_RD(f64_to_i64(f64(FRS1), RM, true)); |
|||
WRITE_RD(f64_to_i64(FRS1_D, RM, true)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_rv64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_RD(f16_to_i64(f16(FRS1), RM, true)); |
|||
WRITE_RD(f16_to_i64(FRS1_H, RM, true)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_rv64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_RD(f32_to_i64(f32(FRS1), RM, true)); |
|||
WRITE_RD(f32_to_i64(FRS1_F, RM, true)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_rv64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_RD(f64_to_ui64(f64(FRS1), RM, true)); |
|||
WRITE_RD(f64_to_ui64(FRS1_D, RM, true)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_rv64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_RD(f16_to_ui64(f16(FRS1), RM, true)); |
|||
WRITE_RD(f16_to_ui64(FRS1_H, RM, true)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_rv64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_RD(f32_to_ui64(f32(FRS1), RM, true)); |
|||
WRITE_RD(f32_to_ui64(FRS1_F, RM, true)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f64_to_f32(f64(FRS1))); |
|||
WRITE_FRD_F(f64_to_f32(FRS1_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFHMIN); |
|||
require_either_extension(EXT_ZFHMIN, EXT_ZHINXMIN); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f16_to_f32(f16(FRS1))); |
|||
WRITE_FRD_F(f16_to_f32(FRS1_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_rv64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(i64_to_f32(RS1)); |
|||
WRITE_FRD_F(i64_to_f32(RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,6 +1,6 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_rv64; |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(ui64_to_f32(RS1)); |
|||
WRITE_FRD_F(ui64_to_f32(RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(i32_to_f32((int32_t)RS1)); |
|||
WRITE_FRD_F(i32_to_f32((int32_t)RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(ui32_to_f32((uint32_t)RS1)); |
|||
WRITE_FRD_F(ui32_to_f32((uint32_t)RS1)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_RD(sext32(f64_to_i32(f64(FRS1), RM, true))); |
|||
WRITE_RD(sext32(f64_to_i32(FRS1_D, RM, true))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_RD(sext32(f16_to_i32(f16(FRS1), RM, true))); |
|||
WRITE_RD(sext32(f16_to_i32(FRS1_H, RM, true))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_RD(sext32(f32_to_i32(f32(FRS1), RM, true))); |
|||
WRITE_RD(sext32(f32_to_i32(FRS1_F, RM, true))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_RD(sext32(f64_to_ui32(f64(FRS1), RM, true))); |
|||
WRITE_RD(sext32(f64_to_ui32(FRS1_D, RM, true))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_RD(sext32(f16_to_ui32(f16(FRS1), RM, true))); |
|||
WRITE_RD(sext32(f16_to_ui32(FRS1_H, RM, true))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_RD(sext32(f32_to_ui32(f32(FRS1), RM, true))); |
|||
WRITE_RD(sext32(f32_to_ui32(FRS1_F, RM, true))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f64_div(f64(FRS1), f64(FRS2))); |
|||
WRITE_FRD_D(f64_div(FRS1_D, FRS2_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f16_div(f16(FRS1), f16(FRS2))); |
|||
WRITE_FRD_H(f16_div(FRS1_H, FRS2_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f32_div(f32(FRS1), f32(FRS2))); |
|||
WRITE_FRD_F(f32_div(FRS1_F, FRS2_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
WRITE_RD(f64_eq(f64(FRS1), f64(FRS2))); |
|||
WRITE_RD(f64_eq(FRS1_D, FRS2_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
WRITE_RD(f16_eq(f16(FRS1), f16(FRS2))); |
|||
WRITE_RD(f16_eq(FRS1_H, FRS2_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
WRITE_RD(f32_eq(f32(FRS1), f32(FRS2))); |
|||
WRITE_RD(f32_eq(FRS1_F, FRS2_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
WRITE_RD(f64_le(f64(FRS1), f64(FRS2))); |
|||
WRITE_RD(f64_le(FRS1_D, FRS2_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
WRITE_RD(f16_le(f16(FRS1), f16(FRS2))); |
|||
WRITE_RD(f16_le(FRS1_H, FRS2_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
WRITE_RD(f32_le(f32(FRS1), f32(FRS2))); |
|||
WRITE_RD(f32_le(FRS1_F, FRS2_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
WRITE_RD(f64_lt(f64(FRS1), f64(FRS2))); |
|||
WRITE_RD(f64_lt(FRS1_D, FRS2_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
WRITE_RD(f16_lt(f16(FRS1), f16(FRS2))); |
|||
WRITE_RD(f16_lt(FRS1_H, FRS2_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
WRITE_RD(f32_lt(f32(FRS1), f32(FRS2))); |
|||
WRITE_RD(f32_lt(FRS1_F, FRS2_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f64_mulAdd(f64(FRS1), f64(FRS2), f64(FRS3))); |
|||
WRITE_FRD_D(f64_mulAdd(FRS1_D, FRS2_D, FRS3_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f16_mulAdd(f16(FRS1), f16(FRS2), f16(FRS3))); |
|||
WRITE_FRD_H(f16_mulAdd(FRS1_H, FRS2_H, FRS3_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f32_mulAdd(f32(FRS1), f32(FRS2), f32(FRS3))); |
|||
WRITE_FRD_F(f32_mulAdd(FRS1_F, FRS2_F, FRS3_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,9 +1,9 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
bool greater = f64_lt_quiet(f64(FRS2), f64(FRS1)) || |
|||
(f64_eq(f64(FRS2), f64(FRS1)) && (f64(FRS2).v & F64_SIGN)); |
|||
if (isNaNF64UI(f64(FRS1).v) && isNaNF64UI(f64(FRS2).v)) |
|||
WRITE_FRD(f64(defaultNaNF64UI)); |
|||
bool greater = f64_lt_quiet(FRS2_D, FRS1_D) || |
|||
(f64_eq(FRS2_D, FRS1_D) && (FRS2_D.v & F64_SIGN)); |
|||
if (isNaNF64UI(FRS1_D.v) && isNaNF64UI(FRS2_D.v)) |
|||
WRITE_FRD_D(f64(defaultNaNF64UI)); |
|||
else |
|||
WRITE_FRD(greater || isNaNF64UI(f64(FRS2).v) ? FRS1 : FRS2); |
|||
WRITE_FRD_D((greater || isNaNF64UI(FRS2_D.v) ? FRS1_D : FRS2_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
WRITE_FRD(f16_max(f16(FRS1), f16(FRS2))); |
|||
WRITE_FRD_H(f16_max(FRS1_H, FRS2_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,9 +1,9 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
bool greater = f32_lt_quiet(f32(FRS2), f32(FRS1)) || |
|||
(f32_eq(f32(FRS2), f32(FRS1)) && (f32(FRS2).v & F32_SIGN)); |
|||
if (isNaNF32UI(f32(FRS1).v) && isNaNF32UI(f32(FRS2).v)) |
|||
WRITE_FRD(f32(defaultNaNF32UI)); |
|||
bool greater = f32_lt_quiet(FRS2_F, FRS1_F) || |
|||
(f32_eq(FRS2_F, FRS1_F) && (FRS2_F.v & F32_SIGN)); |
|||
if (isNaNF32UI(FRS1_F.v) && isNaNF32UI(FRS2_F.v)) |
|||
WRITE_FRD_F(f32(defaultNaNF32UI)); |
|||
else |
|||
WRITE_FRD(greater || isNaNF32UI(f32(FRS2).v) ? FRS1 : FRS2); |
|||
WRITE_FRD_F((greater || isNaNF32UI(FRS2_F.v) ? FRS1_F : FRS2_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,9 +1,9 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
bool less = f64_lt_quiet(f64(FRS1), f64(FRS2)) || |
|||
(f64_eq(f64(FRS1), f64(FRS2)) && (f64(FRS1).v & F64_SIGN)); |
|||
if (isNaNF64UI(f64(FRS1).v) && isNaNF64UI(f64(FRS2).v)) |
|||
WRITE_FRD(f64(defaultNaNF64UI)); |
|||
bool less = f64_lt_quiet(FRS1_D, FRS2_D) || |
|||
(f64_eq(FRS1_D, FRS2_D) && (FRS1_D.v & F64_SIGN)); |
|||
if (isNaNF64UI(FRS1_D.v) && isNaNF64UI(FRS2_D.v)) |
|||
WRITE_FRD_D(f64(defaultNaNF64UI)); |
|||
else |
|||
WRITE_FRD(less || isNaNF64UI(f64(FRS2).v) ? FRS1 : FRS2); |
|||
WRITE_FRD_D((less || isNaNF64UI(FRS2_D.v) ? FRS1_D : FRS2_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,4 +1,4 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
WRITE_FRD(f16_min(f16(FRS1), f16(FRS2))); |
|||
WRITE_FRD_H(f16_min(FRS1_H, FRS2_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,9 +1,9 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
bool less = f32_lt_quiet(f32(FRS1), f32(FRS2)) || |
|||
(f32_eq(f32(FRS1), f32(FRS2)) && (f32(FRS1).v & F32_SIGN)); |
|||
if (isNaNF32UI(f32(FRS1).v) && isNaNF32UI(f32(FRS2).v)) |
|||
WRITE_FRD(f32(defaultNaNF32UI)); |
|||
bool less = f32_lt_quiet(FRS1_F, FRS2_F) || |
|||
(f32_eq(FRS1_F, FRS2_F) && (FRS1_F.v & F32_SIGN)); |
|||
if (isNaNF32UI(FRS1_F.v) && isNaNF32UI(FRS2_F.v)) |
|||
WRITE_FRD_F(f32(defaultNaNF32UI)); |
|||
else |
|||
WRITE_FRD(less || isNaNF32UI(f32(FRS2).v) ? FRS1 : FRS2); |
|||
WRITE_FRD_F((less || isNaNF32UI(FRS2_F.v) ? FRS1_F : FRS2_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f64_mulAdd(f64(FRS1), f64(FRS2), f64(f64(FRS3).v ^ F64_SIGN))); |
|||
WRITE_FRD_D(f64_mulAdd(FRS1_D, FRS2_D, f64(FRS3_D.v ^ F64_SIGN))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f16_mulAdd(f16(FRS1), f16(FRS2), f16(f16(FRS3).v ^ F16_SIGN))); |
|||
WRITE_FRD_H(f16_mulAdd(FRS1_H, FRS2_H, f16(FRS3_H.v ^ F16_SIGN))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f32_mulAdd(f32(FRS1), f32(FRS2), f32(f32(FRS3).v ^ F32_SIGN))); |
|||
WRITE_FRD_F(f32_mulAdd(FRS1_F, FRS2_F, f32(FRS3_F.v ^ F32_SIGN))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f64_mul(f64(FRS1), f64(FRS2))); |
|||
WRITE_FRD_D(f64_mul(FRS1_D, FRS2_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f16_mul(f16(FRS1), f16(FRS2))); |
|||
WRITE_FRD_H(f16_mul(FRS1_H, FRS2_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f32_mul(f32(FRS1), f32(FRS2))); |
|||
WRITE_FRD_F(f32_mul(FRS1_F, FRS2_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f64_mulAdd(f64(f64(FRS1).v ^ F64_SIGN), f64(FRS2), f64(f64(FRS3).v ^ F64_SIGN))); |
|||
WRITE_FRD_D(f64_mulAdd(f64(FRS1_D.v ^ F64_SIGN), FRS2_D, f64(FRS3_D.v ^ F64_SIGN))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f16_mulAdd(f16(f16(FRS1).v ^ F16_SIGN), f16(FRS2), f16(f16(FRS3).v ^ F16_SIGN))); |
|||
WRITE_FRD_H(f16_mulAdd(f16(FRS1_H.v ^ F16_SIGN), FRS2_H, f16(FRS3_H.v ^ F16_SIGN))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f32_mulAdd(f32(f32(FRS1).v ^ F32_SIGN), f32(FRS2), f32(f32(FRS3).v ^ F32_SIGN))); |
|||
WRITE_FRD_F(f32_mulAdd(f32(FRS1_F.v ^ F32_SIGN), FRS2_F, f32(FRS3_F.v ^ F32_SIGN))); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f64_mulAdd(f64(f64(FRS1).v ^ F64_SIGN), f64(FRS2), f64(FRS3))); |
|||
WRITE_FRD_D(f64_mulAdd(f64(FRS1_D.v ^ F64_SIGN), FRS2_D, FRS3_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f16_mulAdd(f16(f16(FRS1).v ^ F16_SIGN), f16(FRS2), f16(FRS3))); |
|||
WRITE_FRD_H(f16_mulAdd(f16(FRS1_H.v ^ F16_SIGN), FRS2_H, FRS3_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f32_mulAdd(f32(f32(FRS1).v ^ F32_SIGN), f32(FRS2), f32(FRS3))); |
|||
WRITE_FRD_F(f32_mulAdd(f32(FRS1_F.v ^ F32_SIGN), FRS2_F, FRS3_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
WRITE_FRD(fsgnj64(FRS1, FRS2, false, false)); |
|||
WRITE_FRD_D(fsgnj64(freg(FRS1_D), freg(FRS2_D), false, false)); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
WRITE_FRD(fsgnj16(FRS1, FRS2, false, false)); |
|||
WRITE_FRD_H(fsgnj16(freg(FRS1_H), freg(FRS2_H), false, false)); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
WRITE_FRD(fsgnj32(FRS1, FRS2, false, false)); |
|||
WRITE_FRD_F(fsgnj32(freg(FRS1_F), freg(FRS2_F), false, false)); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
WRITE_FRD(fsgnj64(FRS1, FRS2, true, false)); |
|||
WRITE_FRD_D(fsgnj64(freg(FRS1_D), freg(FRS2_D), true, false)); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
WRITE_FRD(fsgnj16(FRS1, FRS2, true, false)); |
|||
WRITE_FRD_H(fsgnj16(freg(FRS1_H), freg(FRS2_H), true, false)); |
|||
@ -1,3 +1,3 @@ |
|||
require_extension('Q'); |
|||
require_fp; |
|||
WRITE_FRD(fsgnj128(FRS1, FRS2, true, false)); |
|||
WRITE_FRD(fsgnj128(FRS1, FRS2, true, false)); |
|||
@ -1,3 +1,3 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
WRITE_FRD(fsgnj32(FRS1, FRS2, true, false)); |
|||
WRITE_FRD_F(fsgnj32(freg(FRS1_F), freg(FRS2_F), true, false)); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
WRITE_FRD(fsgnj64(FRS1, FRS2, false, true)); |
|||
WRITE_FRD_D(fsgnj64(freg(FRS1_D), freg(FRS2_D), false, true)); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
WRITE_FRD(fsgnj16(FRS1, FRS2, false, true)); |
|||
WRITE_FRD_H(fsgnj16(freg(FRS1_H), freg(FRS2_H), false, true)); |
|||
|
|||
@ -1,3 +1,3 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
WRITE_FRD(fsgnj32(FRS1, FRS2, false, true)); |
|||
WRITE_FRD_F(fsgnj32(freg(FRS1_F), freg(FRS2_F), false, true)); |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f64_sqrt(f64(FRS1))); |
|||
WRITE_FRD_D(f64_sqrt(FRS1_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f16_sqrt(f16(FRS1))); |
|||
WRITE_FRD_H(f16_sqrt(FRS1_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f32_sqrt(f32(FRS1))); |
|||
WRITE_FRD_F(f32_sqrt(FRS1_F)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('D'); |
|||
require_either_extension('D', EXT_ZDINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f64_sub(f64(FRS1), f64(FRS2))); |
|||
WRITE_FRD_D(f64_sub(FRS1_D, FRS2_D)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension(EXT_ZFH); |
|||
require_either_extension(EXT_ZFH, EXT_ZHINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f16_sub(f16(FRS1), f16(FRS2))); |
|||
WRITE_FRD_H(f16_sub(FRS1_H, FRS2_H)); |
|||
set_fp_exceptions; |
|||
|
|||
@ -1,5 +1,5 @@ |
|||
require_extension('F'); |
|||
require_either_extension('F', EXT_ZFINX); |
|||
require_fp; |
|||
softfloat_roundingMode = RM; |
|||
WRITE_FRD(f32_sub(f32(FRS1), f32(FRS2))); |
|||
WRITE_FRD_F(f32_sub(FRS1_F, FRS2_F)); |
|||
set_fp_exceptions; |
|||
|
|||
Loading…
Reference in new issue