diff --git a/include/xsimd/arch/xsimd_neon.hpp b/include/xsimd/arch/xsimd_neon.hpp index 717bb3ff1..936126f25 100644 --- a/include/xsimd/arch/xsimd_neon.hpp +++ b/include/xsimd/arch/xsimd_neon.hpp @@ -238,7 +238,7 @@ namespace xsimd XSIMD_INLINE batch bitwise_cast(batch const& arg, batch const&, requires_arch) noexcept { using src_register_type = typename batch::register_type; - return wrap::x_vreinterpretq, project_num_t>(src_register_type(arg)); + return wrap::x_vreinterpretq, map_to_sized_type_t>(src_register_type(arg)); } /************* @@ -826,7 +826,7 @@ namespace xsimd XSIMD_INLINE batch add(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vaddq>(register_type(lhs), register_type(rhs)); + return wrap::x_vaddq>(register_type(lhs), register_type(rhs)); } /******* @@ -848,7 +848,7 @@ namespace xsimd XSIMD_INLINE batch avg(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vhaddq>(register_type(lhs), register_type(rhs)); + return wrap::x_vhaddq>(register_type(lhs), register_type(rhs)); } /******** @@ -870,7 +870,7 @@ namespace xsimd XSIMD_INLINE batch avgr(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vrhaddq>(register_type(lhs), register_type(rhs)); + return wrap::x_vrhaddq>(register_type(lhs), register_type(rhs)); } /******** @@ -904,7 +904,7 @@ namespace xsimd XSIMD_INLINE batch sadd(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vqaddq>(register_type(lhs), register_type(rhs)); + return wrap::x_vqaddq>(register_type(lhs), register_type(rhs)); } /******* @@ -938,7 +938,7 @@ namespace xsimd XSIMD_INLINE batch sub(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vsubq>(register_type(lhs), register_type(rhs)); + return wrap::x_vsubq>(register_type(lhs), register_type(rhs)); } /******** @@ -972,7 +972,7 @@ namespace xsimd XSIMD_INLINE batch ssub(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vqsubq>(register_type(lhs), register_type(rhs)); + return wrap::x_vqsubq>(register_type(lhs), register_type(rhs)); } /******* @@ -1002,7 +1002,7 @@ namespace xsimd XSIMD_INLINE batch mul(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vmulq>(register_type(lhs), register_type(rhs)); + return wrap::x_vmulq>(register_type(lhs), register_type(rhs)); } /******* @@ -1067,7 +1067,7 @@ namespace xsimd XSIMD_INLINE batch_bool eq(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vceqq>(register_type(lhs), register_type(rhs)); + return wrap::x_vceqq>(register_type(lhs), register_type(rhs)); } template = 0> @@ -1160,7 +1160,7 @@ namespace xsimd XSIMD_INLINE batch_bool lt(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vcltq>(register_type(lhs), register_type(rhs)); + return wrap::x_vcltq>(register_type(lhs), register_type(rhs)); } template = 0> @@ -1205,7 +1205,7 @@ namespace xsimd XSIMD_INLINE batch_bool le(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vcleq>(register_type(lhs), register_type(rhs)); + return wrap::x_vcleq>(register_type(lhs), register_type(rhs)); } template = 0> @@ -1241,7 +1241,7 @@ namespace xsimd XSIMD_INLINE batch_bool gt(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vcgtq>(register_type(lhs), register_type(rhs)); + return wrap::x_vcgtq>(register_type(lhs), register_type(rhs)); } template = 0> @@ -1286,7 +1286,7 @@ namespace xsimd XSIMD_INLINE batch_bool ge(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vcgeq>(register_type(lhs), register_type(rhs)); + return wrap::x_vcgeq>(register_type(lhs), register_type(rhs)); } template = 0> @@ -1341,7 +1341,7 @@ namespace xsimd XSIMD_INLINE batch bitwise_and(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vandq>(register_type(lhs), register_type(rhs)); + return wrap::x_vandq>(register_type(lhs), register_type(rhs)); } template = 0> @@ -1386,7 +1386,7 @@ namespace xsimd XSIMD_INLINE batch bitwise_or(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vorrq>(register_type(lhs), register_type(rhs)); + return wrap::x_vorrq>(register_type(lhs), register_type(rhs)); } template = 0> @@ -1431,7 +1431,7 @@ namespace xsimd XSIMD_INLINE batch bitwise_xor(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_veorq>(register_type(lhs), register_type(rhs)); + return wrap::x_veorq>(register_type(lhs), register_type(rhs)); } template = 0> @@ -1491,7 +1491,7 @@ namespace xsimd XSIMD_INLINE batch bitwise_not(batch const& arg, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vmvnq>(register_type(arg)); + return wrap::x_vmvnq>(register_type(arg)); } template = 0> @@ -1535,7 +1535,7 @@ namespace xsimd XSIMD_INLINE batch bitwise_andnot(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vbicq>(register_type(lhs), register_type(rhs)); + return wrap::x_vbicq>(register_type(lhs), register_type(rhs)); } template = 0> @@ -1572,7 +1572,7 @@ namespace xsimd XSIMD_INLINE batch min(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vminq>(register_type(lhs), register_type(rhs)); + return wrap::x_vminq>(register_type(lhs), register_type(rhs)); } template = 0> @@ -1608,7 +1608,7 @@ namespace xsimd XSIMD_INLINE batch max(batch const& lhs, batch const& rhs, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vmaxq>(register_type(lhs), register_type(rhs)); + return wrap::x_vmaxq>(register_type(lhs), register_type(rhs)); } template = 0> @@ -1644,7 +1644,7 @@ namespace xsimd XSIMD_INLINE batch abs(batch const& arg, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vabsq>(register_type(arg)); + return wrap::x_vabsq>(register_type(arg)); } /******** @@ -1992,7 +1992,7 @@ namespace xsimd { using bool_register_type = typename batch_bool::register_type; using register_type = typename batch::register_type; - return wrap::x_vbslq>(bool_register_type(cond), register_type(a), register_type(b)); + return wrap::x_vbslq>(bool_register_type(cond), register_type(a), register_type(b)); } template = 0> @@ -3120,7 +3120,7 @@ namespace xsimd XSIMD_INLINE batch rotate_left(batch const& a, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_rotate_left>(register_type(a), register_type(a)); + return wrap::x_rotate_left>(register_type(a), register_type(a)); } } diff --git a/include/xsimd/arch/xsimd_neon64.hpp b/include/xsimd/arch/xsimd_neon64.hpp index 5144780f9..05be6bebf 100644 --- a/include/xsimd/arch/xsimd_neon64.hpp +++ b/include/xsimd/arch/xsimd_neon64.hpp @@ -1299,14 +1299,14 @@ namespace xsimd XSIMD_INLINE batch bitwise_cast(batch const& arg, batch const&, requires_arch) noexcept { using register_type = typename batch::register_type; - return wrap::x_vreinterpretq>(register_type(arg)); + return wrap::x_vreinterpretq>(register_type(arg)); } template XSIMD_INLINE batch bitwise_cast(batch const& arg, batch const&, requires_arch) noexcept { using src_register_type = typename batch::register_type; - return wrap::x_vreinterpretq, double>(src_register_type(arg)); + return wrap::x_vreinterpretq, double>(src_register_type(arg)); } template diff --git a/include/xsimd/arch/xsimd_rvv.hpp b/include/xsimd/arch/xsimd_rvv.hpp index 69143bd88..3ae649fdb 100644 --- a/include/xsimd/arch/xsimd_rvv.hpp +++ b/include/xsimd/arch/xsimd_rvv.hpp @@ -388,7 +388,7 @@ namespace xsimd // A bit of a dance, here, because rvvmv_splat has no other // argument from which to deduce type, and T=char is not // supported. - project_num_t arg_not_char(arg); + map_to_sized_type_t arg_not_char(arg); const auto splat = rvvmv_splat(arg_not_char); return rvv_reg_t(splat.get_bytes(), types::detail::XSIMD_RVV_BITCAST); } @@ -414,7 +414,7 @@ namespace xsimd template = 0> XSIMD_INLINE batch load_aligned(T const* src, convert, requires_arch) noexcept { - return detail_rvv::rvvle(reinterpret_cast const*>(src)); + return detail_rvv::rvvle(reinterpret_cast const*>(src)); } template = 0> @@ -491,7 +491,7 @@ namespace xsimd template = 0> XSIMD_INLINE void store_aligned(T* dst, batch const& src, requires_arch) noexcept { - detail_rvv::rvvse(reinterpret_cast*>(dst), src); + detail_rvv::rvvse(reinterpret_cast*>(dst), src); } template = 0> @@ -522,7 +522,7 @@ namespace xsimd { using UU = as_unsigned_integer_t; const auto uindex = detail_rvv::rvv_to_unsigned_batch(index); - auto* base = reinterpret_cast*>(dst); + auto* base = reinterpret_cast*>(dst); // or rvvsuxei const auto bi = detail_rvv::rvvmul_splat(uindex, sizeof(T)); detail_rvv::rvvsoxei(base, bi, vals); @@ -534,7 +534,7 @@ namespace xsimd { using UU = as_unsigned_integer_t; const auto uindex = detail_rvv::rvv_to_unsigned_batch(index); - auto const* base = reinterpret_cast const*>(src); + auto const* base = reinterpret_cast const*>(src); // or rvvluxei const auto bi = detail_rvv::rvvmul_splat(uindex, sizeof(T)); return detail_rvv::rvvloxei(base, bi); diff --git a/include/xsimd/arch/xsimd_sve.hpp b/include/xsimd/arch/xsimd_sve.hpp index 841ed35f6..c15404dd9 100644 --- a/include/xsimd/arch/xsimd_sve.hpp +++ b/include/xsimd/arch/xsimd_sve.hpp @@ -92,7 +92,7 @@ namespace xsimd template = 0> XSIMD_INLINE batch load_aligned(T const* src, convert, requires_arch) noexcept { - return svld1(detail_sve::ptrue(), reinterpret_cast const*>(src)); + return svld1(detail_sve::ptrue(), reinterpret_cast const*>(src)); } template = 0> @@ -105,7 +105,7 @@ namespace xsimd template = 0> XSIMD_INLINE batch load_masked(T const* mem, batch_bool_constant, Mode, requires_arch) noexcept { - return svld1(detail_sve::pmask(), reinterpret_cast const*>(mem)); + return svld1(detail_sve::pmask(), reinterpret_cast const*>(mem)); } // load_complex @@ -132,7 +132,7 @@ namespace xsimd template = 0> XSIMD_INLINE void store_aligned(T* dst, batch const& src, requires_arch) noexcept { - svst1(detail_sve::ptrue(), reinterpret_cast*>(dst), src); + svst1(detail_sve::ptrue(), reinterpret_cast*>(dst), src); } template = 0> diff --git a/include/xsimd/types/xsimd_rvv_register.hpp b/include/xsimd/types/xsimd_rvv_register.hpp index cd9e84ba0..85f786b91 100644 --- a/include/xsimd/types/xsimd_rvv_register.hpp +++ b/include/xsimd/types/xsimd_rvv_register.hpp @@ -326,7 +326,7 @@ namespace xsimd operator register_type() const noexcept { return value.get(); } }; template - using rvv_reg_t = std::conditional_t::value, rvv_reg, Width>, void>; + using rvv_reg_t = std::conditional_t::value, rvv_reg, Width>, void>; // And some more of the same stuff for bool types, which have // similar problems and similar workarounds. @@ -388,7 +388,7 @@ namespace xsimd template using rvv_bool_t = std::enable_if_t < !std::is_void::value, - rvv_bool, Width>; + rvv_bool, Width>; template struct rvv_vector_type_impl; diff --git a/include/xsimd/utils/xsimd_type_traits.hpp b/include/xsimd/utils/xsimd_type_traits.hpp index 20fc90ed8..f6fea5d55 100644 --- a/include/xsimd/utils/xsimd_type_traits.hpp +++ b/include/xsimd/utils/xsimd_type_traits.hpp @@ -127,7 +127,7 @@ namespace xsimd * @tparam T arithmetic type to project from. */ template - using project_num_t = typename detail::remap_num::type; + using map_to_sized_type_t = typename detail::remap_num::type; /** * @ingroup type_traits