https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109167
Kewen Lin <linkw at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Target| |powerpc*-linux-gnu Last reconfirmed| |2023-03-17 Assignee|unassigned at gcc dot gnu.org |linkw at gcc dot gnu.org Status|UNCONFIRMED |ASSIGNED --- Comment #1 from Kewen Lin <linkw at gcc dot gnu.org> --- The pair _mm_srli_si128 and _mm_bsrli_si128 doesn't have this issue: extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_si128 (__m128i __A, const int __N) { return _mm_bsrli_si128 (__A, __N); } And _mm_bsrli_si128 adopts different shifting directions for LE and BE, so I think the current implementation of _mm_slli_si128 is what we want for _mm_bslli_si128.