add FATAN and FATANPI back in, because they can be implemented with higher
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 14 Aug 2019 14:35:48 +0000 (15:35 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 14 Aug 2019 14:35:48 +0000 (15:35 +0100)
accuracy on UNIX platforms

rv_major_opcode_1010011.mdwn
ztrans_proposal.mdwn

index 5e2f48d8890b8055b13908a75812bb4e9c38956b..5d228175093dcc16e40960c1b63ea8a9df868807 100644 (file)
@@ -11,8 +11,10 @@ Publicly-known FP proposals:
 
 * Zfrsqrt - Reciprocal SQRT <http://bugs.libre-riscv.org/show_bug.cgi?id=110>
 * Zftrans - see [[ztrans_proposal]]: Transcendentals
-  (FSIN, FCOS, FATAN, FPOW, FEXP, FLOG, FRCP)
+  (FPOW, FEXP, FLOG, FCBRT)
   <http://bugs.libre-riscv.org/show_bug.cgi?id=127>
+* Ztrig\* - see [[ztrans_proposal]]: Trigonometriics
+  (FSIN, FCOS, FTAN, arc-variants, hypotenuse-variants)
 * Extension of formats to cover FP16 (RISC-V ISA Manual Table 11.3 "fmt field")
 * HI-half FP MV - <https://github.com/riscv/riscv-isa-manual/pull/301>
   <https://groups.google.com/a/groups.riscv.org/forum/m/#!topic/isa-dev/kXgfFqgBv-c>
@@ -230,8 +232,8 @@ funct5  | SDHQ    | rs2    | rs1  | funct3 | rd    | opcode  | name          |
 01011   | xx      | 10111  | rs1  | rm     | rd    | 1010011 | **FACOSPI.xx**|
 01011   | xx      | 11000  | rs1  | rm     | rd    | 1010011 | **FTAN.xx**   |
 01011   | xx      | 11001  | rs1  | rm     | rd    | 1010011 | **FTANPI.xx** |
-01011   | xx      | 11010  | rs1  | rm     | rd    | 1010011 | ?             |
-01011   | xx      | 11011  | rs1  | rm     | rd    | 1010011 | ?             |
+01011   | xx      | 11010  | rs1  | rm     | rd    | 1010011 | **FATAN.xx**  |
+01011   | xx      | 11011  | rs1  | rm     | rd    | 1010011 | **FATANPI.xx**|
 01011   | xx      | 11100  | rs1  | rm     | rd    | 1010011 | **FSINH.xx**  |
 01011   | xx      | 11101  | rs1  | rm     | rd    | 1010011 | **FCOSH.xx**  |
 01011   | xx      | 11110  | rs1  | rm     | rd    | 1010011 | **FTANH.xx**  |
index 0e192a0d9777431e773a0bd413ade7271841bcd0..f3ae0c35725a55e7b68a501d01d46088a51e857f 100644 (file)
@@ -69,13 +69,13 @@ FTAN            | tan         | half\_tan   | native\_tan   | NONE        |
 NONE (1)        | sincos      | NONE        | NONE          | NONE        |
 FASIN           | asin        | NONE        | NONE          | NONE        |
 FACOS           | acos        | NONE        | NONE          | NONE        |
-NONE (3)        | atan        | NONE        | NONE          | NONE        |
+FATAN           | atan        | NONE        | NONE          | NONE        |
 FSINPI          | sinpi       | NONE        | NONE          | NONE        |
 FCOSPI          | cospi       | NONE        | NONE          | NONE        |
 FTANPI          | tanpi       | NONE        | NONE          | NONE        |
 FASINPI         | asinpi      | NONE        | NONE          | NONE        |
 FACOSPI         | acospi      | NONE        | NONE          | NONE        |
-NONE (2)        | atanpi      | NONE        | NONE          | NONE        |
+FATANPI         | atanpi      | NONE        | NONE          | NONE        |
 FSINH           | sinh        | NONE        | NONE          | NONE        |
 FCOSH           | cosh        | NONE        | NONE          | NONE        |
 FTANH           | tanh        | NONE        | NONE          | NONE        |
@@ -102,10 +102,6 @@ NONE (4)        | NONE        | half\_recip | native\_recip | NONE        |
 
 Note (1) FSINCOS is macro-op fused (see below).
 
-Note (2) FATANPI is a synthesised alias, below.
-
-Note (3) FATAN2 is a sythesised alias, below.
-
 Note (4) FCRECIP is a sythesised alias, below.
 
 # List of 2-arg opcodes
@@ -144,6 +140,7 @@ FCOS     | cos (radians)            | rd = cos(rs1)           | Ztrignpi    |
 FTAN     | tan (radians)            | rd = tan(rs1)           | Ztrignpi    |
 FASIN    | arcsin (radians)         | rd = asin(rs1)          | Zarctrignpi |
 FACOS    | arccos (radians)         | rd = acos(rs1)          | Zarctrignpi |
+FATAN    | arctan (radians)         | rd = atan(rs1)          | Zarctrignpi |
 FSINPI   | sin times pi             | rd = sin(pi * rs1)      | Ztrigpi |
 FCOSPI   | cos times pi             | rd = cos(pi * rs1)      | Ztrigpi |
 FTANPI   | tan times pi             | rd = tan(pi * rs1)      | Ztrigpi |
@@ -166,8 +163,6 @@ pseudo-ops, by allocating one scalar FP register for use as a constant
 suitable code block.
 
 * FRCP rd, rs1 - pseudo-code alias for rd = 1.0 / rs1
-* FATAN - pseudo-code alias for rd = atan2(rs1, 1.0) - FATAN2
-* FATANPI - pseudo alias for rd = atan2pi(rs1, 1.0) - FATAN2PI
 * 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,7 +172,8 @@ FATANPI example pseudo-code:
     fmv.x.s ft0, t0
     fatan2pi.s rd, rs1, ft0
 
-Hyperbolic function example (obviates need for Zfhyp except for high-performance or correctly-rounding):
+Hyperbolic function example (obviates need for Zfhyp except for
+high-performance or correctly-rounding):
 
     ASINH( x ) = ln( x + SQRT(x**2+1))