libstdc++: Fix NEON intrinsic types usage
authorMatthias Kretz <kretz@kde.org>
Wed, 3 Feb 2021 15:49:29 +0000 (15:49 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Wed, 3 Feb 2021 15:49:29 +0000 (15:49 +0000)
commit4f22942841edabbdda8a15b172a5c143da7bdafe
treeb3d363978810514694acbe3b7e396acb8f13575c
parentaa89c53c7370128ed8d8ce348cd0ef97c26af59b
libstdc++: Fix NEON intrinsic types usage

Intrinsics types for NEON differ from gnu::vector_size types now. This
requires explicit specializations for __intrinsic_type and a new
__is_intrinsic_type trait.

libstdc++-v3/ChangeLog:

* include/experimental/bits/simd.h (__is_intrinsic_type): New
internal type trait. Alias for __is_vector_type on x86.
(_VectorTraitsImpl): Enable for __intrinsic_type in addition for
__vector_type.
(__intrin_bitcast): Allow casting to & from vector & intrinsic
types.
(__intrinsic_type): Explicitly specialize for NEON intrinsic
vector types.
libstdc++-v3/include/experimental/bits/simd.h