minNum -> minimumNumber
authorAndrew Waterman <andrew@sifive.com>
Thu, 25 May 2017 09:19:46 +0000 (02:19 -0700)
committerAndrew Waterman <andrew@sifive.com>
Thu, 25 May 2017 09:25:11 +0000 (02:25 -0700)
riscv/insns/fmax_d.h
riscv/insns/fmax_s.h
riscv/insns/fmin_d.h
riscv/insns/fmin_s.h

index 9c8e5b3983b470e5b85cce1f26b8e773bd8ee6e7..3d2c6e6843b921457581b208ad5d4c4317a81517 100644 (file)
@@ -1,6 +1,8 @@
 require_extension('D');
 require_fp;
-WRITE_FRD(f64_le_quiet(f64(FRS2), f64(FRS1)) || isNaNF64UI(f64(FRS2).v) ? FRS1 : FRS2);
-if ((isNaNF64UI(f64(FRS1).v) && isNaNF64UI(f64(FRS2).v)) || softfloat_exceptionFlags)
+bool greater = f64_lt_quiet(f64(FRS2), f64(FRS1)) ||
+               (f64_eq(f64(FRS2), f64(FRS1)) && (f64(FRS2).v & F64_SIGN));
+WRITE_FRD(greater || isNaNF64UI(f64(FRS2).v) ? FRS1 : FRS2);
+if (isNaNF64UI(f64(FRS1).v) && isNaNF64UI(f64(FRS2).v))
   WRITE_FRD(f64(defaultNaNF64UI));
 set_fp_exceptions;
index 2f570ead5432c040bb29459c8f84efbd4ea00e60..33e535b5106ea986fdc4e6a79353d45e816c8439 100644 (file)
@@ -1,6 +1,8 @@
 require_extension('F');
 require_fp;
-WRITE_FRD(f32_le_quiet(f32(FRS2), f32(FRS1)) || isNaNF32UI(f32(FRS2).v) ? FRS1 : FRS2);
-if ((isNaNF32UI(f32(FRS1).v) && isNaNF32UI(f32(FRS2).v)) || softfloat_exceptionFlags)
+bool greater = f32_lt_quiet(f32(FRS2), f32(FRS1)) ||
+               (f32_eq(f32(FRS2), f32(FRS1)) && (f32(FRS2).v & F32_SIGN));
+WRITE_FRD(greater || isNaNF32UI(f32(FRS2).v) ? FRS1 : FRS2);
+if (isNaNF32UI(f32(FRS1).v) && isNaNF32UI(f32(FRS2).v))
   WRITE_FRD(f32(defaultNaNF32UI));
 set_fp_exceptions;
index cd40e159984ab7c7953bf82aeaf213bad47b06bf..486faa5622f952d81618495f48ae42245eeff39f 100644 (file)
@@ -1,6 +1,8 @@
 require_extension('D');
 require_fp;
-WRITE_FRD(f64_lt_quiet(f64(FRS1), f64(FRS2)) || isNaNF64UI(f64(FRS2).v) ? FRS1 : FRS2);
-if ((isNaNF64UI(f64(FRS1).v) && isNaNF64UI(f64(FRS2).v)) || softfloat_exceptionFlags)
+bool less = f64_lt_quiet(f64(FRS1), f64(FRS2)) ||
+            (f64_eq(f64(FRS1), f64(FRS2)) && (f64(FRS1).v & F64_SIGN));
+WRITE_FRD(less || isNaNF64UI(f64(FRS2).v) ? FRS1 : FRS2);
+if (isNaNF64UI(f64(FRS1).v) && isNaNF64UI(f64(FRS2).v))
   WRITE_FRD(f64(defaultNaNF64UI));
 set_fp_exceptions;
index b813f45d7440cb638470e7b0f3a2e970156597bb..80990035a6004a721261d57eabda019589fc95d2 100644 (file)
@@ -1,6 +1,8 @@
 require_extension('F');
 require_fp;
-WRITE_FRD(f32_lt_quiet(f32(FRS1), f32(FRS2)) || isNaNF32UI(f32(FRS2).v) ? FRS1 : FRS2);
-if ((isNaNF32UI(f32(FRS1).v) && isNaNF32UI(f32(FRS2).v)) || softfloat_exceptionFlags)
+bool less = f32_lt_quiet(f32(FRS1), f32(FRS2)) ||
+            (f32_eq(f32(FRS1), f32(FRS2)) && (f32(FRS1).v & F32_SIGN));
+WRITE_FRD(less || isNaNF32UI(f32(FRS2).v) ? FRS1 : FRS2);
+if (isNaNF32UI(f32(FRS1).v) && isNaNF32UI(f32(FRS2).v))
   WRITE_FRD(f32(defaultNaNF32UI));
 set_fp_exceptions;