On Tue, 6 Jun 2023 at 13:26, Matthias Kretz via Libstdc++ < libstdc++@gcc.gnu.org> wrote: > OK for master and backports? > OK for trunk and branches > Tested on x86_64-pc-linux-gnu > > ----- >8 ----- > > The call to the base implementation sometimes didn't find a matching > signature because the _Abi parameter of _SimdImpl* was "wrong" after > conversion. It has to call into ::_SimdImpl instead of the > current ABI tag's _SimdImpl. This also reduces the number of possible > template instantiations. > > Signed-off-by: Matthias Kretz > > libstdc++-v3/ChangeLog: > > PR libstdc++/110054 > * include/experimental/bits/simd_builtin.h (_S_masked_store): > Call into deduced ABI's SimdImpl after conversion. > * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt): > Don't use _mm_maskmoveu_si128. Use the generic fall-back > implementation. Also fix masked stores without SSE2, which > were not doing anything before. > --- > .../include/experimental/bits/simd_builtin.h | 6 +-- > .../include/experimental/bits/simd_x86.h | 38 ++----------------- > 2 files changed, 7 insertions(+), 37 deletions(-) > > > -- > ────────────────────────────────────────────────────────────────────────── > Dr. Matthias Kretz https://mattkretz.github.io > GSI Helmholtz Centre for Heavy Ion Research https://gsi.de > stdₓ::simd > ──────────────────────────────────────────────────────────────────────────