[llvm] [AsmParser] Revamp how floating-point literals work in LLVM IR. (PR #190641)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 10 03:46:57 PDT 2026


================
@@ -0,0 +1,44 @@
+; RUN: llvm-as < %s | llvm-dis | FileCheck %s
+
+; CHECK: @a = global float -0.000000e+00
+ at a = global float -0.0
+; CHECK: @b = global float 0.000000e+00
+ at b = global float +0.0
+; CHECK: @c = global float 0.000000e+00
+ at c = global float 0.0
+; CHECK: @d = global float 0.000000e+00
+ at d = global float 0.e1
+; CHECK: @e = global float 0.000000e+00
+ at e = global float 0.e-1
+; CHECK: @f = global float 0.000000e+00
+ at f = global float 0.e+1
+; CHECK: @g = global float 0x3DF0000000000000
+ at g = global float 0x1.0p-32
+; CHECK: @h = global float 0x41F0000000000000
+ at h = global float 0x1.0p+32
+; CHECK: @i = global float 0x41FC300000000000
+ at i = global float 0x1.c3p32
+; CHECK: @j = global float 0x3FFFF00000000000
+ at j = global float 0x1.ffp0
+; CHECK: @k = global float 0xC0FFFFFFE0000000
+ at k = global float -0xfff.fffp5
+; CHECK: @l = global float 0x4080FDE000000000
+ at l = global float +0x10.fdep5
+
+; CHECK: @0 = global double 0x7FF0000000000000
+ at 0 = global double +inf
+; CHECK: @1 = global ppc_fp128 0xMFFF00000000000000000000000000000
+ at 1 = global ppc_fp128 -inf
+; CHECK: @2 = global half 0xHFE00
+ at 2 = global half -qnan
+; CHECK: @3 = global bfloat 0xR7FC0
+ at 3 = global bfloat +qnan
+; CHECK: @4 = global fp128 0xL00000000DEADBEEF7FFF800000000000
+ at 4 = global fp128 +nan(0xdeadbeef)
+; CHECK: @5 = global float 0x7FF000002000000
+ at 5 = global float +snan(0x1)
+; CHECK: @6 = global x86_fp80 0xK0001FFFF000000000000
+ at 6 = global x86_fp80 f0x0000ffff000000000000
+
----------------
arsenm wrote:

Missing denormal tests? And min/max values? 

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


More information about the llvm-commits mailing list