mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-09-29 11:16:29 +03:00
prefix assume_aligned to avoid clash with std::assume_aligned in c++20
This commit is contained in:
@@ -518,7 +518,7 @@ template <>
|
||||
really_inline SuperVector<16> SuperVector<16>::load(void const *ptr)
|
||||
{
|
||||
assert(ISALIGNED_N(ptr, alignof(SuperVector::size)));
|
||||
ptr = assume_aligned(ptr, SuperVector::size);
|
||||
ptr = vectorscan_assume_aligned(ptr, SuperVector::size);
|
||||
return {vld1q_s32((const int32_t *)ptr)};
|
||||
}
|
||||
|
||||
|
@@ -515,7 +515,7 @@ template <>
|
||||
really_inline SuperVector<16> SuperVector<16>::load(void const *ptr)
|
||||
{
|
||||
assert(ISALIGNED_N(ptr, alignof(SuperVector::size)));
|
||||
ptr = assume_aligned(ptr, SuperVector::size);
|
||||
ptr = vectorscan_assume_aligned(ptr, SuperVector::size);
|
||||
return _mm_load_si128((const m128 *)ptr);
|
||||
}
|
||||
|
||||
@@ -1119,7 +1119,7 @@ template <>
|
||||
really_inline SuperVector<32> SuperVector<32>::load(void const *ptr)
|
||||
{
|
||||
assert(ISALIGNED_N(ptr, alignof(SuperVector::size)));
|
||||
ptr = assume_aligned(ptr, SuperVector::size);
|
||||
ptr = vectorscan_assume_aligned(ptr, SuperVector::size);
|
||||
return {_mm256_load_si256((const m256 *)ptr)};
|
||||
}
|
||||
|
||||
@@ -1769,7 +1769,7 @@ template <>
|
||||
really_inline SuperVector<64> SuperVector<64>::load(void const *ptr)
|
||||
{
|
||||
assert(ISALIGNED_N(ptr, alignof(SuperVector::size)));
|
||||
ptr = assume_aligned(ptr, SuperVector::size);
|
||||
ptr = vectorscan_assume_aligned(ptr, SuperVector::size);
|
||||
return {_mm512_load_si512((const m512 *)ptr)};
|
||||
}
|
||||
|
||||
|
@@ -76,17 +76,17 @@ using Z_TYPE = u32;
|
||||
// it's available. Note that we need to handle C or C++ compilation.
|
||||
#ifdef __cplusplus
|
||||
# ifdef HAVE_CXX_BUILTIN_ASSUME_ALIGNED
|
||||
# define assume_aligned(x, y) __builtin_assume_aligned((x), (y))
|
||||
# define vectorscan_assume_aligned(x, y) __builtin_assume_aligned((x), (y))
|
||||
# endif
|
||||
#else
|
||||
# ifdef HAVE_CC_BUILTIN_ASSUME_ALIGNED
|
||||
# define assume_aligned(x, y) __builtin_assume_aligned((x), (y))
|
||||
# define vectorscan_assume_aligned(x, y) __builtin_assume_aligned((x), (y))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Fallback to identity case.
|
||||
#ifndef assume_aligned
|
||||
#define assume_aligned(x, y) (x)
|
||||
#ifndef vectorscan_assume_aligned
|
||||
#define vectorscan_assume_aligned(x, y) (x)
|
||||
#endif
|
||||
|
||||
template <uint16_t SIZE>
|
||||
|
Reference in New Issue
Block a user