[Libre-soc-isa] [Bug 923] New: we missed some important fp ops

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Thu Sep 8 08:50:21 BST 2022


https://bugs.libre-soc.org/show_bug.cgi?id=923

            Bug ID: 923
           Summary: we missed some important fp ops
           Product: Libre-SOC's first SoC
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: CONFIRMED
          Severity: major
          Priority: ---
         Component: Specification
          Assignee: programmerjake at gmail.com
          Reporter: programmerjake at gmail.com
                CC: libre-soc-isa at lists.libre-soc.org
            Blocks: 899
   NLnet milestone: ---

reading through the opencl list of ops, I realized we forgot to add some fp
ops:
fmax
fmin
fmod
maxmag
minmag
remainder

out of those, imho we need fmin/fmax (all of the several variants), it would be
quite nice to have fmod/remainder and minmag/maxmag (all of the several
variants).

we also forgot erf/erfc/lgamma but they are uncommon enough that they should
just be left to software implementations.

the min/max/minmag/maxmag variants:
* the minNum/maxNum functions from ieee 754-2008 match the behavior of the VSX
xsmindp operation and avx512 vragess (maybe removed?) and armv8.2 fminnm. They
are used in risc-v fmin.s for <= v2.1 of the f extension. They are unspecified
for comparing signed zeros, we will want to treat +0 as greater than -0 to
match a lot of other implementations.

* the minimumNumber/maximumNumber functions from ieee 754-2019 match the
behavior of java and the VMX vminfp operation. They are used in risc-v fmin.s
for >= v2.2 of the f extension.

* the minimum/maximum functions from ieee 754-2019 are basically the
recommended default going forward, but a lot of programming languages don't use
them yet for backward compatibility reasons.

An explanation of why ieee 754 replaced minNum/maxNum with
minimum/maximum/minimumNumber/maximumNumber:
https://grouper.ieee.org/groups/msc/ANSI_IEEE-Std-754-2019/background/minNum_maxNum_Removal_Demotion_v3.pdf


Referenced Bugs:

https://bugs.libre-soc.org/show_bug.cgi?id=899
[Bug 899] implement additional Transcendentals in simulator
-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Libre-SOC-ISA mailing list