-
Notifications
You must be signed in to change notification settings - Fork 131
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_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 55860b5
nolankramer
Metadata
Metadata
Assignees
Labels
No labels