**Describe the bug** The following code: ```erlang f(_V0, _V0) -> -0.0; f(_, _) -> 0.0. wrapper() -> io:write(f(ok, [])). ``` prints `-0.0` whereas I would expect `0.0` **Affected versions** - master - master + #7143 + #7157 + #7163 **Additional context** Compiling the code with `+no_fold +no_ssa_opt` makes it print `0.0` as expected.