[Bug rtl-optimization/119310] New: Unnecessary instructions on std::bit_cast of an array of 3 strongly-typed floats

2025-03-16 Thread bernardo at bernardosulzbach dot com via Gcc-bugs
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

[Bug target/116574] GCC generates redundant moves in simple vector addition

2024-09-02 Thread bernardo at bernardosulzbach dot com via Gcc-bugs
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

[Bug target/116574] GCC generates redundant moves in simple vector addition

2024-09-02 Thread bernardo at bernardosulzbach dot com via Gcc-bugs
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

[Bug target/116574] GCC generates redundant moves in simple vector addition

2024-09-02 Thread bernardo at bernardosulzbach dot com via Gcc-bugs
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

[Bug target/116574] GCC generates redundant moves in simple vector addition

2024-09-02 Thread bernardo at bernardosulzbach dot com via Gcc-bugs
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

[Bug c++/116574] New: GCC generates redundant moves in simple vector addition

2024-09-02 Thread bernardo at bernardosulzbach dot com via Gcc-bugs
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