https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61301
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |10.0
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Been fixed since GCC 10.
shuffle1(float vector[4]):
shufps xmm0, xmm0, 177
ret
shuffle2(float vector[4] const&):
movaps xmm0, XMMWORD PTR [rdi]
shufps xmm0, xmm0, 177
ret
shuffle3(float vector[4] const&):
movaps xmm0, XMMWORD PTR [rdi]
shufps xmm0, xmm0, 177
ret
foo::shuffle2() const:
movaps xmm0, XMMWORD PTR [rdi]
shufps xmm0, xmm0, 177
ret
foo::shuffle3() const:
movaps xmm0, XMMWORD PTR [rdi]
shufps xmm0, xmm0, 177
ret
SLP is able to handle it.