[Bug target/113978] Misoptimize for long vector load operation

2024-02-19 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113978 Richard Biener changed: What|Removed |Added Keywords|ABI |missed-optimization Target

[Bug target/113978] Misoptimize for long vector load operation

2024-02-18 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113978 --- Comment #8 from Jakub Jelinek --- (In reply to Jakub Jelinek from comment #7) > The psABI doesn't cover that. It only talks about __m128, __m256 and __m512 > types, and > as both compilers use the GNU vector_size attribute extension under t

[Bug target/113978] Misoptimize for long vector load operation

2024-02-17 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113978 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #7

[Bug target/113978] Misoptimize for long vector load operation

2024-02-17 Thread xjkp2283572185 at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113978 --- Comment #6 from 严 逍宇 --- (In reply to Andrew Pinski from comment #5) > As I mentioned, that works on linux just fine: Thank you for your time. And when can I use this feature on mingw? I think the behavior of swap two long vectors should b

[Bug target/113978] Misoptimize for long vector load operation

2024-02-17 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113978 --- Comment #5 from Andrew Pinski --- (In reply to 严 逍宇 from comment #4) > I find an example without abi problem: As I mentioned, that works on linux just fine: ``` vmovdqa64 (%rdi), %zmm1 vmovdqa64 64(%rdi), %zmm0

[Bug target/113978] Misoptimize for long vector load operation

2024-02-17 Thread xjkp2283572185 at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113978 --- Comment #4 from 严 逍宇 --- I find an example without abi problem: === Source Code === using v [[using gnu: vector_size(128)]] = char; void f(v *pa, v *pb) noexcept { v a{*pa}, b{*pb}; *pa = b; *pb = a; } === Command === g++ test.c

[Bug target/113978] Misoptimize for long vector load operation

2024-02-17 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113978 --- Comment #3 from Andrew Pinski --- >GCC generates extra stack operation That is basically to realign the stack just in case there was a spill, this happens more on mingw compiling than linux really.

[Bug target/113978] Misoptimize for long vector load operation

2024-02-17 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113978 Andrew Pinski changed: What|Removed |Added See Also||https://github.com/llvm/llv

[Bug target/113978] Misoptimize for long vector load operation

2024-02-17 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113978 Andrew Pinski changed: What|Removed |Added Keywords||ABI Component|c++