diff --git a/Vc/common/detail.h b/Vc/common/detail.h index 305a6dfcb..d0a5bb17c 100644 --- a/Vc/common/detail.h +++ b/Vc/common/detail.h @@ -52,34 +52,37 @@ convertIndexVector(const IV &indexVector) template Vc_INTRINSIC enable_if<(Traits::is_simd_vector::value && sizeof(typename IV::EntryType) < sizeof(int)), - SimdArray> + fixed_size_simd> convertIndexVector(const IV &indexVector) { - return static_cast>(indexVector); + return static_cast>(indexVector); } // helper for promoting int types to int or higher template using promoted_type = decltype(std::declval() + 1); // std::array, Vc::array, and C-array are fixed size and can therefore be converted to a -// SimdArray of the same size +// fixed_size_simd of the same size template -Vc_INTRINSIC enable_if::value, SimdArray, N>> +Vc_INTRINSIC enable_if::value, fixed_size_simd, N>> convertIndexVector(const std::array &indexVector) { - return SimdArray, N>{std::addressof(indexVector[0]), Vc::Unaligned}; + return fixed_size_simd, N>{std::addressof(indexVector[0]), + Vc::Unaligned}; } template -Vc_INTRINSIC enable_if::value, SimdArray, N>> +Vc_INTRINSIC enable_if::value, fixed_size_simd, N>> convertIndexVector(const Vc::array &indexVector) { - return SimdArray, N>{std::addressof(indexVector[0]), Vc::Unaligned}; + return fixed_size_simd, N>{std::addressof(indexVector[0]), + Vc::Unaligned}; } template -Vc_INTRINSIC enable_if::value, SimdArray, N>> +Vc_INTRINSIC enable_if::value, fixed_size_simd, N>> convertIndexVector(const T (&indexVector)[N]) { - return SimdArray, N>{std::addressof(indexVector[0]), Vc::Unaligned}; + return fixed_size_simd, N>{std::addressof(indexVector[0]), + Vc::Unaligned}; } // a plain pointer won't work. Because we need some information on the number of values in @@ -87,7 +90,7 @@ convertIndexVector(const T (&indexVector)[N]) #ifndef Vc_MSVC // MSVC treats the function as usable in SFINAE context if it is deleted. If it's not declared we // seem to get what we wanted (except for bad diagnostics) -template +template enable_if::value, void> convertIndexVector(T indexVector) = delete; #endif