We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 92afec4 commit 753daffCopy full SHA for 753daff
3 files changed
include/xsimd/arch/utils/shifts.hpp
@@ -27,11 +27,10 @@ namespace xsimd
27
template <typename I, I offset, I length, I... Vs>
28
struct select_stride
29
{
30
- static constexpr I values_array[] = { Vs... };
31
-
32
template <typename K>
33
static constexpr K get(K i, K)
34
+ constexpr I values_array[] = { Vs... };
35
return static_cast<K>(values_array[length * i + offset]);
36
}
37
};
include/xsimd/arch/xsimd_avx2.hpp
@@ -337,7 +337,7 @@ namespace xsimd
337
// Missing implementations are dispatched to the `batch` overload in xsimd_api.
338
// The 1 byte constant implementation calls the 2 bytes constant version, the 2 bytes
339
// constant version calls into the 4 bytes version which resolves to the dynamic one above.
340
- template <class T, class A, T... Vs,
+ template <class A, class T, T... Vs,
341
std::enable_if_t<std::is_integral<T>::value && (sizeof(T) <= 2), int> = 0>
342
XSIMD_INLINE batch<T, A> bitwise_lshift(
343
batch<T, A> const& self, batch_constant<T, A, Vs...> shifts, requires_arch<avx2> req) noexcept
include/xsimd/arch/xsimd_sse2.hpp
@@ -329,7 +329,7 @@ namespace xsimd
329
330
// bitwise_lshift multiple (constant)
331
// Missing implementations are dispacthed to the `batch` overload in xsimd_api.
332
- template <class T, class A, T... Vs, detail::enable_sized_integral_t<T, 2> = 0>
+ template <class A, class T, T... Vs, detail::enable_sized_integral_t<T, 2> = 0>
333
334
batch<T, A> const& self, batch_constant<T, A, Vs...> shifts, requires_arch<sse2> req) noexcept
335
@@ -341,7 +341,7 @@ namespace xsimd
return _mm_mullo_epi16(self, mults.as_batch());
344
- template <class T, class A, T... Vs, detail::enable_sized_integral_t<T, 1> = 0>
+ template <class A, class T, T... Vs, detail::enable_sized_integral_t<T, 1> = 0>
345
346
347
0 commit comments