diff --git a/arbor/include/arbor/simd/sve.hpp b/arbor/include/arbor/simd/sve.hpp index 6d2bd34b3776d988be0c5339be455c6e5a4d20c8..c9f9cd7051fa7bd7c07061645c37d546c8c832c3 100644 --- a/arbor/include/arbor/simd/sve.hpp +++ b/arbor/include/arbor/simd/sve.hpp @@ -800,10 +800,12 @@ void compound_indexed_add( } } +[[maybe_unused]] static int width(const svfloat64_t& v) { return svlen_f64(v); }; +[[maybe_unused]] static int width(const svint64_t& v) { return svlen_s64(v); }; @@ -890,13 +892,13 @@ struct simd_cast_impl { return r; } }; +} // namespace detail template <typename T, typename Other> -void assign(T& a, const Other& b) { +void assign(T& a, const Other& b, typename std::enable_if_t<detail::is_sve<T>::value>* = 0) { a = detail::simd_cast_impl<T>::cast(b); } -} // namespace detail } // namespace simd } // namespace arb