[PATCH] D134859: [clang][Interp] Implement basic support for floating point values

Timm Bäder via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 7 01:13:20 PST 2022


tbaeder added inline comments.


================
Comment at: clang/lib/AST/Interp/Opcodes.td:502
+  let Types = [AluTypeClass];
+  let Args = [ArgFltSemantics];
+  let HasGroup = 1;
----------------
sepavloff wrote:
> tbaeder wrote:
> > jcranmer-intel wrote:
> > > Integer-to-floating point conversion is dependent on rounding mode--consider `(float)UINT_MAX`.
> > This test succeeds here, whether I use `-frounding-math` or not:
> > 
> > ```
> > constexpr float f = (float)4294967295;
> > static_assert(f == (float)4.2949673E+9);
> > ```
> > How can I test this behavior?
> You can use `#pragma STDC FENV_ROUND`. See `clang/test/AST/const-fpfeatures.c` as an example.
Why does it work here to compare both `f` and `f2` to the same value? https://godbolt.org/z/zdsf1sK7r


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134859/new/

https://reviews.llvm.org/D134859



More information about the cfe-commits mailing list