https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86999

--- Comment #2 from asd_ <asd0025 at gmail dot com> ---
(In reply to Alexander Monakov from comment #1)
> For the first problem -fno-signed-zeros is a bit of a red herring, the real
> reason is enabling -fassociative-math makes GCC turn
> 
>   return n * p + p;
> 
> to 'return (n + 1) * p;' and while we slightly optimize it on RTL we don't
> recover fma from it.
> 
> For the second problem, the expression '(v4f)v' is {0.0f, 0.0f, -0.0f,
> -0.0f} and by specifying -fno-signed-zeros you're allowing the compiler to
> change it to all-positive-zeros, making the function a no-op. So that is not
> a bug.

Thanks for the explanation!
I hope there will be one more FMA pass in the RTL stages in the future.:)

Reply via email to