https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119310
Bug ID: 119310
Summary: Unnecessary instructions on std::bit_cast of an array
of 3 strongly-typed floats
Product: gcc
Version: 14.2.0
Status: UNCONFIRMED
Sever
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116574
--- Comment #11 from Bernardo Sulzbach
---
(In reply to Andrew Pinski from comment #2)
> -Os does not vectorize the code.
> But that might be on purpose ...
Then one last question: is that because -Os makes GCC not even consider it,
even if in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116574
--- Comment #8 from Bernardo Sulzbach ---
(In reply to Andrew Pinski from comment #7)
> >with -O2/-O3. Is there a reason for `addps xmm1, xmm0` and moving instead of
> >`addps xmm0, xmm1`?
>
> Register allocation is not always the best when it
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116574
--- Comment #6 from Bernardo Sulzbach ---
(In reply to Bernardo Sulzbach from comment #5)
> (In reply to Andrew Pinski from comment #1)
> > -fno-trapping-math removes the zeroing of the top half of the registers.
>
> I see. I tried passing that
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116574
--- Comment #5 from Bernardo Sulzbach ---
(In reply to Andrew Pinski from comment #1)
> -fno-trapping-math removes the zeroing of the top half of the registers.
I see. I tried passing that and got
add(std::array, std::array):
movap
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116574
Bug ID: 116574
Summary: GCC generates redundant moves in simple vector
addition
Product: gcc
Version: 14.2.0
Status: UNCONFIRMED
Severity: normal
Pri