https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99728
--- Comment #8 from Jonathan Wakely ---
It's landed r11-6935 aka g:2bcceb6fc59fcdaf51006d4fcfc71c2d26761396
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99728
--- Comment #7 from Martin Reinecke ---
Thanks!
(BTW, I'm aware your code and will immediately switch to it once it lands in
gcc! But for the time being I try to make do with my poor man's version to
avoid the external dependency.)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99728
--- Comment #6 from Matthias Kretz (Vir) ---
> I guess I need it for unaligned loads/stores, correct? Otherwise __v4df
> should work everywhere.
1. You can freely reinterpret_cast by value between all the different
[[gnu::vector_size(N)]]
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99728
--- Comment #5 from Martin Reinecke ---
(In reply to Matthias Kretz (Vir) from comment #4)
> FWIW, using std::experimental::native_simd also does not hoist the
> stores out of the loop. However, if you pass d by value and return d, the
> issue
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99728
--- Comment #4 from Matthias Kretz (Vir) ---
FWIW, using std::experimental::native_simd also does not hoist the
stores out of the loop. However, if you pass d by value and return d, the issue
goes away. So I guess this is an aliasing
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99728
Alexander Monakov changed:
What|Removed |Added
CC||amonakov at gcc dot gnu.org
---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99728
--- Comment #2 from Martin Reinecke ---
Created attachment 50458
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50458=edit
additional test case by Alexander Monakov
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99728
--- Comment #1 from Martin Reinecke ---
Created attachment 50457
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50457=edit
generated assembler