[Bug c++/115897] [14/15 Regression] __is_same fails for vector builtin
mkretz at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jul 12 15:46:41 GMT 2024
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115897
--- Comment #1 from Matthias Kretz (Vir) <mkretz at gcc dot gnu.org> ---
It seems '__is_same' is not the problem here. New test case
(https://compiler-explorer.com/z/fsoc3hzMK):
---------------------------------------------------
template <typename _Tp, typename _Up>
constexpr bool same_size_v = sizeof(_Tp) == sizeof(_Up);
template <typename _Tp>
using _Vp [[gnu::vector_size(16)]] = _Tp;
static_assert(sizeof(_Vp<float>) == 16);
static_assert(not same_size_v<float, _Vp<float>>);
template <typename _Tp>
struct Test
{
static_assert(sizeof(_Vp<_Tp>) == 16);
static_assert(not same_size_v<_Vp<float>, float>);
static_assert(not same_size_v<_Vp<float>, _Tp>);
static_assert(not same_size_v<_Vp<_Tp>, _Tp>); // <- this fails
};
Test<float> x;
---------------------------------------------------
So something strange is happening with _Vp<_Tp> inside Test<float>.
More information about the Gcc-bugs
mailing list