The problem shows up with this optimization:
in localize():
Moved equation x(3) = (r(1) ^ -9223372036854775808LL );
el:0x2ade880 cnt=0 = TYdouble 0x2ade6c0 0x2ade810
el:0x2ade6c0 cnt=0 var TYlong x
el:0x2ade810 cnt=0 ^ TYlong 0x2ade7a0 0x2ade000
el:0x2ade7a0 cnt=0 var TYlong r
el:0x2ade000 cnt=0 const TYlong -9223372036854775808LL
replacing:
el:0x2ade9d0 cnt=0 var TYdouble x
which fouls up the x87 code generation.
Comment #3 by dlang-bot — 2024-10-24T04:45:56Z
@WalterBright created dlang/dmd pull request #17023 "fix bugzilla Issue 24819 - Optimizer changes result of float calculat…" fixing this issue:
- fix bugzilla Issue 24819 - Optimizer changes result of float calculations on 32-bit
https://github.com/dlang/dmd/pull/17023
Comment #4 by dlang-bot — 2024-10-24T11:01:27Z
dlang/dmd pull request #17023 "fix bugzilla Issue 24819 - Optimizer changes result of float calculat…" was merged into master:
- 06a4bff4640e7ffaf329288ec253d2cd961e0a64 by Walter Bright:
fix bugzilla Issue 24819 - Optimizer changes result of float calculations on 32-bit
https://github.com/dlang/dmd/pull/17023
Comment #5 by dlang-bot — 2024-10-24T23:47:47Z
dlang/dmd pull request #17028 "fix bugzilla Issue 24819 - Optimizer changes result of float calculat…" was merged into stable:
- 6a53ff6520c1904134572d39ebceb1cdcd2dd662 by Walter Bright:
fix bugzilla Issue 24819 - Optimizer changes result of float calculations on 32-bit (#17023)
(cherry picked from commit 88d1e8fc37428b873f59d87f8dff1f40fbd3e7a3)
https://github.com/dlang/dmd/pull/17028
Comment #6 by dlang-bot — 2024-11-16T23:27:16Z
dlang/dmd pull request #17069 "Merge stable" was merged into master:
- 735193cc36db6b2fa2c50270fae3414316323d9b by Walter Bright:
fix bugzilla Issue 24819 - Optimizer changes result of float calculations on 32-bit (#17023)
(cherry picked from commit 88d1e8fc37428b873f59d87f8dff1f40fbd3e7a3)
https://github.com/dlang/dmd/pull/17069