https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85957
--- Comment #10 from Alexander Monakov <amonakov at gcc dot gnu.org> --- Also note that both the original and the reduced testcase can be tweaked to exhibit the surprising transformation even when -fexcess-precision=standard is enabled. A "lazy" way is via -mpc64, but I think it's possible even without the additional option (by making the code more convoluted to enforce rounding to double). Here's what happens on the reduced testcase: $ gcc -m32 d.c -O -fdisable-tree-dom3 && ./a.out cc1: note: disable pass tree-dom3 for functions in the range of [0, 4294967295] 1 == 0 $ gcc -m32 d.c -O -fdisable-tree-dom3 -fexcess-precision=standard -mpc64 && ./a.out cc1: note: disable pass tree-dom3 for functions in the range of [0, 4294967295] 0 == 1