gfni: work around error with vec_bperm on clang-10 on POWER
I'm not really sure why this wasn't working on clang-10; I don't see
anything in the git blame that could explain the difference, but on
10 clang was attempting to use the __int128 signature even though we
were passings bytes.
@@ -260,7 +260,12 @@ simde_x_mm_gf2p8matrix_multiply_epi64_epi8 (simde__m128i x, simde__m128i A) {
SIMDE_VECTORIZE
#endif
for (int i = 0 ; i < 8 ; i++) {
+ #if defined(__clang__) && !SIMDE_DETECT_CLANG_VERSION_CHECK(11,0,0)
+ p = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char),
+ vec_bperm(HEDLEY_STATIC_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned __int128), a), bit_select));
+ #else
p = vec_bperm(a, bit_select);
+ #endif
p = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char),
vec_splat(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned short), p), 4));
p = vec_and(p, vec_cmplt(X, zero));
