[clang] [llvm] [AsmWriter] Print `nan`, `pinf`, and `ninf` when applicable (PR #105618)

Joshua Cranmer via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 22 11:43:30 PDT 2024


================
@@ -4387,12 +4387,12 @@ Simple Constants
     zeros. So '``s0x0001``' of type '``i16``' will be -1, not 1.
 **Floating-point constants**
     Floating-point constants use standard decimal notation (e.g.
-    123.421), exponential notation (e.g. 1.23421e+2), or a more precise
-    hexadecimal notation (see below). The assembler requires the exact
-    decimal value of a floating-point constant. For example, the
-    assembler accepts 1.25 but rejects 1.3 because 1.3 is a repeating
-    decimal in binary. Floating-point constants must have a
-    :ref:`floating-point <t_floating>` type.
+    123.421), exponential notation (e.g. 1.23421e+2), identifiers for special
----------------
jcranmer-intel wrote:

There is work ongoing to add decimal FP types, which means we really do want decimal notation to be available for those constants.

I'm worried that `ppc_fp128` may not work well with C99 hex float format, given that the size of the mantissa isn't fixed (if you represent it as a single `(-1 ^ sign) * mantissa * (base ^ exponent)` format), so that probably should prefer to use the existing hexadecimal notation. For the other binary floating-point types, I'd much rather see the hex float notation than the current hexadecimal notation.

https://github.com/llvm/llvm-project/pull/105618


More information about the cfe-commits mailing list