(no commit message)
authorlkcl <lkcl@web>
Wed, 14 Aug 2019 21:06:17 +0000 (22:06 +0100)
committerIkiWiki <ikiwiki.info>
Wed, 14 Aug 2019 21:06:17 +0000 (22:06 +0100)
ztrans_proposal.mdwn

index f3ae0c35725a55e7b68a501d01d46088a51e857f..615d0eab43434243255808021fde252f3f6ff1a9 100644 (file)
@@ -97,13 +97,11 @@ FATAN2PI        | atan2pi     | NONE        | NONE          | NONE        |
 FPOW            | pow         | NONE        | NONE          | NONE        |
 FROOT           | rootn       | NONE        | NONE          | NONE        |
 FHYPOT          | hypot       | NONE        | NONE          | NONE        |
-NONE (4)        | NONE        | half\_recip | native\_recip | NONE        |
+FRECIP          | NONE        | half\_recip | native\_recip | NONE        |
 """]]
 
 Note (1) FSINCOS is macro-op fused (see below).
 
-Note (4) FCRECIP is a sythesised alias, below.
-
 # List of 2-arg opcodes
 
 [[!table  data="""
@@ -121,6 +119,7 @@ FHYPOT    | hypotenuse             | rd = sqrt(rs1^2 + rs2^2)   | Zftrans     |
 opcode   | Description              | pseudo-code             | Extension  |
 FRSQRT   | Reciprocal Square-root   | rd = sqrt(rs1)          | Zfrsqrt    |
 FCBRT    | Cube Root                | rd = pow(rs1, 3)        | Zftrans    |
+FRECIP   | Reciprocal               | rd = 1.0 /   rs1        | Zftrans    |
 FEXP2    | power-of-2               | rd = pow(2, rs1)        | Zftrans    |
 FLOG2    | log2                     | rd = log2(rs1)          | Zftrans    |
 FEXPM1   | exponential minus 1      | rd = pow(e, rs1) - 1.0  | Zftrans    |
@@ -162,7 +161,6 @@ pseudo-ops, by allocating one scalar FP register for use as a constant
 (loop invariant) set to "1.0" at the beginning of a function or other
 suitable code block.
 
-* FRCP rd, rs1 - pseudo-code alias for rd = 1.0 / rs1
 * FSINCOS - fused macro-op between FSIN and FCOS (issued in that order).
 * FSINCOSPI - fused macro-op between FSINPI and FCOSPI (issued in that order).
 
@@ -177,6 +175,10 @@ high-performance or correctly-rounding):
 
     ASINH( x ) = ln( x + SQRT(x**2+1))
 
+# Reciprocal
+
+Used to be an alias. Some imolementors may wish to implement divide as y times recip(x)
+
 # To evaluate: should LOG be replaced with LOG1P (and EXP with EXPM1)?
 
 RISC principle says "exclude LOG because it's covered by LOGP1 plus an ADD".