Skip to content

Commit d18ae2b

Browse files
Fix c++17 related warnings
1 parent 0c11271 commit d18ae2b

File tree

2 files changed

+38
-37
lines changed

2 files changed

+38
-37
lines changed

include/xsimd/arch/xsimd_avx.hpp

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -633,44 +633,26 @@ namespace xsimd
633633
template <class T, class A, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
634634
XSIMD_INLINE batch_bool<T, A> from_mask(batch_bool<T, A> const&, uint64_t mask, requires_arch<avx>) noexcept
635635
{
636-
alignas(A::alignment()) static const uint32_t lut32[] = {
637-
0x00000000,
638-
0x000000FF,
639-
0x0000FF00,
640-
0x0000FFFF,
641-
0x00FF0000,
642-
0x00FF00FF,
643-
0x00FFFF00,
644-
0x00FFFFFF,
645-
0xFF000000,
646-
0xFF0000FF,
647-
0xFF00FF00,
648-
0xFF00FFFF,
649-
0xFFFF0000,
650-
0xFFFF00FF,
651-
0xFFFFFF00,
652-
0xFFFFFFFF,
653-
};
654-
alignas(A::alignment()) static const uint64_t lut64[] = {
655-
0x0000000000000000ul,
656-
0x000000000000FFFFul,
657-
0x00000000FFFF0000ul,
658-
0x00000000FFFFFFFFul,
659-
0x0000FFFF00000000ul,
660-
0x0000FFFF0000FFFFul,
661-
0x0000FFFFFFFF0000ul,
662-
0x0000FFFFFFFFFFFFul,
663-
0xFFFF000000000000ul,
664-
0xFFFF00000000FFFFul,
665-
0xFFFF0000FFFF0000ul,
666-
0xFFFF0000FFFFFFFFul,
667-
0xFFFFFFFF00000000ul,
668-
0xFFFFFFFF0000FFFFul,
669-
0xFFFFFFFFFFFF0000ul,
670-
0xFFFFFFFFFFFFFFFFul,
671-
};
672636
XSIMD_IF_CONSTEXPR(sizeof(T) == 1)
673637
{
638+
alignas(A::alignment()) static const uint32_t lut32[] = {
639+
0x00000000,
640+
0x000000FF,
641+
0x0000FF00,
642+
0x0000FFFF,
643+
0x00FF0000,
644+
0x00FF00FF,
645+
0x00FFFF00,
646+
0x00FFFFFF,
647+
0xFF000000,
648+
0xFF0000FF,
649+
0xFF00FF00,
650+
0xFF00FFFF,
651+
0xFFFF0000,
652+
0xFFFF00FF,
653+
0xFFFFFF00,
654+
0xFFFFFFFF,
655+
};
674656
assert(!(mask & ~0xFFFFFFFFul) && "inbound mask");
675657
return _mm256_setr_epi32(lut32[mask & 0xF], lut32[(mask >> 4) & 0xF],
676658
lut32[(mask >> 8) & 0xF], lut32[(mask >> 12) & 0xF],
@@ -679,6 +661,24 @@ namespace xsimd
679661
}
680662
else XSIMD_IF_CONSTEXPR(sizeof(T) == 2)
681663
{
664+
alignas(A::alignment()) static const uint64_t lut64[] = {
665+
0x0000000000000000ul,
666+
0x000000000000FFFFul,
667+
0x00000000FFFF0000ul,
668+
0x00000000FFFFFFFFul,
669+
0x0000FFFF00000000ul,
670+
0x0000FFFF0000FFFFul,
671+
0x0000FFFFFFFF0000ul,
672+
0x0000FFFFFFFFFFFFul,
673+
0xFFFF000000000000ul,
674+
0xFFFF00000000FFFFul,
675+
0xFFFF0000FFFF0000ul,
676+
0xFFFF0000FFFFFFFFul,
677+
0xFFFFFFFF00000000ul,
678+
0xFFFFFFFF0000FFFFul,
679+
0xFFFFFFFFFFFF0000ul,
680+
0xFFFFFFFFFFFFFFFFul,
681+
};
682682
assert(!(mask & ~0xFFFFul) && "inbound mask");
683683
return _mm256_setr_epi64x(lut64[mask & 0xF], lut64[(mask >> 4) & 0xF], lut64[(mask >> 8) & 0xF], lut64[(mask >> 12) & 0xF]);
684684
}

include/xsimd/arch/xsimd_avx2.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -731,16 +731,17 @@ namespace xsimd
731731
template <class A, class T, bool... Values, class = typename std::enable_if<std::is_integral<T>::value, void>::type>
732732
XSIMD_INLINE batch<T, A> select(batch_bool_constant<T, A, Values...> const&, batch<T, A> const& true_br, batch<T, A> const& false_br, requires_arch<avx2>) noexcept
733733
{
734-
constexpr int mask = batch_bool_constant<T, A, Values...>::mask();
735734
// FIXME: for some reason mask here is not considered as an immediate,
736735
// but it's okay for _mm256_blend_epi32
737736
// case 2: return _mm256_blend_epi16(false_br, true_br, mask);
738737
XSIMD_IF_CONSTEXPR(sizeof(T) == 4)
739738
{
739+
constexpr int mask = batch_bool_constant<T, A, Values...>::mask();
740740
return _mm256_blend_epi32(false_br, true_br, mask);
741741
}
742742
else XSIMD_IF_CONSTEXPR(sizeof(T) == 8)
743743
{
744+
constexpr int mask = batch_bool_constant<T, A, Values...>::mask();
744745
constexpr int imask = detail::interleave(mask);
745746
return _mm256_blend_epi32(false_br, true_br, imask);
746747
}

0 commit comments

Comments
 (0)