- Notifications
You must be signed in to change notification settings - Fork130
Open
Description
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'
template<unsigned s0, unsigned s1, unsigned s2, unsigned s3> SIMDPP_INLuint32x4 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
commit55860b5
Metadata
Metadata
Assignees
Labels
No labels