From 9c81ff263aa3f38252bdfe704e5051431e30aefa Mon Sep 17 00:00:00 2001 From: divVerent Date: Mon, 4 Feb 2019 06:14:58 -0800 Subject: [PATCH 1/1] Fix printing of floating poing values in -dumpfin. %g is not lossless for single precision floats - %.9g is (other than distinguishing NaNs, who cares). --- ir.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ir.cpp b/ir.cpp index facbc33..8388aab 100644 --- a/ir.cpp +++ b/ir.cpp @@ -4054,10 +4054,11 @@ void ir_value::dump(int (*oprintf)(const char*, ...)) const oprintf("fn:%s", m_name.c_str()); break; case TYPE_FLOAT: - oprintf("%g", m_constval.vfloat); + // %.9g is lossless for IEEE single precision. + oprintf("%.9g", m_constval.vfloat); break; case TYPE_VECTOR: - oprintf("'%g %g %g'", + oprintf("'%.9g %.9g %.9g'", m_constval.vvec.x, m_constval.vvec.y, m_constval.vvec.z); -- 2.39.2