https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57009
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Marc Glisse from comment #1) > union A { double d; unsigned long long i; }; > bool f(double x){ > A a; a.d = x; > unsigned long long inf = 0x7ff0000000000000; > return (a.i & inf) != inf; > } > > (I use != and not < in the example above because gcc insists on creating a > new constant inf-1 and replacing <inf with <=inf-1) I think the above issue is the same issue as mentioned in PR 95740. I have not looked into the original comments yet but I think there might be a dup of it somewhere too.