pan/va: Rename RSCALE to LDEXP
authorAlyssa Rosenzweig <alyssa@collabora.com>
Fri, 17 Jun 2022 15:34:51 +0000 (11:34 -0400)
committerMarge Bot <emma+marge@anholt.net>
Tue, 21 Jun 2022 22:42:34 +0000 (22:42 +0000)
This avoids needless variation from Bifrost. While at it, fix the opcode
definition: there are no abs/neg/swizzle modifiers on the signed integer source,
and there's no clamp. However, there are round and infinity modes, like on
Bifrost.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17101>

src/panfrost/bifrost/valhall/ISA.xml

index 71677fe..a5e35f9 100644 (file)
     <src absneg="true">B</src>
   </group>
 
-  <group name="FRSCALE" title="Floating-point rescaling" dests="1" opcode2="6" unit="FMA">
-    <ins name="FRSCALE.f32" opcode="0xA4"/>
-    <ins name="FRSCALE.v2f16" opcode="0xA5"/>
+  <group name="LDEXP" title="Floating-point rescaling" dests="1" opcode2="6" unit="FMA">
+    <ins name="LDEXP.f32" opcode="0xA4"/>
+    <ins name="LDEXP.v2f16" opcode="0xA5"/>
     <desc>
       Computes $A \cdot 2^B$ by adding B to the exponent of A. Used to calculate
       various special functions, particularly base-2 exponents. Special case
       handling differs from an actual floating-point multiply, so this should
       not be used outside fixed instruction sequences.
     </desc>
-    <clamp/>
     <src absneg="true" swizzle="true">A</src>
-    <src absneg="true" swizzle="true">B</src>
+    <src/>
+    <roundmode/> <!-- Also has rtna -->
+    <!-- Also has infinity handling for arctan -->
   </group>
 
   <ins name="FEXP.f32" title="Floating-point exponent" dests="1" opcode="0xA4" opcode2="8" unit="SFU">
       special transcendental function sequences. It should not be used for
       general code as its special case handling differs from two back-to-back
       `FMA.f32` operations. Equivalent to `FMA.f32` back-to-back with
-      `RSCALE.f32`
+      `LDEXP.f32`
     </desc>
     <clamp/>
     <src absneg="true">A</src>
       ordinary multiply would return NaN. Used in special transcendental
       function sequences. It should not be used for general code as its special
       case handling differs from two back-to-back `FMA.f32` operations.
-      Equivalent to `FMA.f32` back-to-back with `RSCALE.f32`
+      Equivalent to `FMA.f32` back-to-back with `LDEXP.f32`
     </desc>
     <clamp/>
     <src absneg="true">A</src>
       ordinary multiply would return NaN. Used in special transcendental
       function sequences. It should not be used for general code as its special
       case handling differs from two back-to-back `FMA.f32` operations.
-      Equivalent to `FMA.f32` back-to-back with `RSCALE.f32`
+      Equivalent to `FMA.f32` back-to-back with `LDEXP.f32`
     </desc>
     <clamp/>
     <src absneg="true">A</src>
       interpreted as a 16-bit value. Used in special transcendental function
       sequences. It should not be used for general code as its special case
       handling differs from two back-to-back `FMA.f32` operations.  Equivalent
-      to `FMA.f32` back-to-back with `RSCALE.f32`
+      to `FMA.f32` back-to-back with `LDEXP.f32`
     </desc>
     <clamp/>
     <src absneg="true">A</src>