Open peabody-korg opened 2 months ago
clang doesn't define __builtin_shuffle(), but due to clang defining __GNUC__ 2 implementations of i_permute4() cause clang compilation to fail:
__GNUC__
[...] libsimdpp/simdpp/detail/insn/permute4.h:105:12 Use of undeclared identifier '__builtin_shuffle'
template<unsigned s0, unsigned s1, unsigned s2, unsigned s3> SIMDPP_INL uint32x4 i_permute4(const uint32x4& a) { static_assert(s0 < 4 && s1 < 4 && s2 < 4 && s3 < 4, "Selector out of range"); [...] #if __GNUC__ return __builtin_shuffle(a.native(), a.native(), (uint32x4_t){s0, s1, s2, s3}); #else return detail::neon_shuffle_int32x4::permute4<s0,s1,s2,s3>(a); #endif [...] }
Need to also include !clang in the #if predicate:
#if __GNUC__ && !__clang__
macos 12.7.6 xcode 14.2 apple silicon build commit 55860b50
clang doesn't define __builtin_shuffle(), but due to clang defining
__GNUC__
2 implementations of i_permute4() cause clang compilation to fail:[...] libsimdpp/simdpp/detail/insn/permute4.h:105:12 Use of undeclared identifier '__builtin_shuffle'
Need to also include !clang in the #if predicate:
macos 12.7.6 xcode 14.2 apple silicon build commit 55860b50