diff options
| author | Trevor Gross <tmgross@umich.edu> | 2025-02-06 00:34:56 +0000 |
|---|---|---|
| committer | Trevor Gross <tmgross@umich.edu> | 2025-02-06 02:03:19 +0000 |
| commit | 23989245ce549411b9d80323b89c9eb48fff53ec (patch) | |
| tree | 38b2a95a7ef6e44ca51f848d1f68829a0669f345 /tests/codegen/patchable-function-entry/patchable-function-entry-no-flag.rs | |
| parent | 3fbe59f8503fb5eb151bc995ba2c1ebad80dcbb5 (diff) | |
| download | rust-23989245ce549411b9d80323b89c9eb48fff53ec.tar.gz rust-23989245ce549411b9d80323b89c9eb48fff53ec.zip | |
fma: Ensure zero has the correct sign
Currently, `fma(tiny, -tiny, 0.0)` returns 0.0 while the answer should
be -0.0. This is because `-0.0 + 0.0 = +0.0` in the default rounding
mode; however, the result should be negative. Musl has the same pattern
but that version worked because the C compiler was contracting `x*y + z`
to (ironically) `fmadd`.
Musl was fixed in 9683bd6241 ("math: fix fma(x,y,0) when x*y rounds to
-0"). Add the same fix here, which allows dropping the xfails.
Diffstat (limited to 'tests/codegen/patchable-function-entry/patchable-function-entry-no-flag.rs')
0 files changed, 0 insertions, 0 deletions
