gfni: replace vec_and and vec_xor with & and ^ on z/arch
@@ -800,16 +800,16 @@ simde__m128i simde_mm_gf2p8mul_epi8 (simde__m128i a, simde__m128i b) {
x = simde__m128i_to_altivec_u8(a);
y = simde__m128i_to_altivec_u8(b);
mask0x00FF = vec_splats(HEDLEY_STATIC_CAST(unsigned short, 0x00FF));
- lo = vec_and(y, HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), mask0x00FF));
- hi = vec_xor(y, lo);
+ lo = y & HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), mask0x00FF);
+ hi = y ^ lo;
even = vec_gfmsum(x, lo);
odd = vec_gfmsum(x, hi);
lo = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), vec_sel(vec_rli(odd, 8), even, mask0x00FF));
hi = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), vec_sel(odd, vec_rli(even, 8), mask0x00FF));
const SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) reduceLutHi = {0x00, 0xab, 0x4d, 0xe6, 0x9a, 0x31, 0xd7, 0x7c, 0x2f, 0x84, 0x62, 0xc9, 0xb5, 0x1e, 0xf8, 0x53};
const SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) reduceLutLo = {0x00, 0x1b, 0x36, 0x2d, 0x6c, 0x77, 0x5a, 0x41, 0xd8, 0xc3, 0xee, 0xf5, 0xb4, 0xaf, 0x82, 0x99};
- lo = vec_xor(lo, vec_perm(reduceLutHi, reduceLutHi, vec_rli(hi, 4)));
- lo = vec_xor(lo, vec_perm(reduceLutLo, reduceLutLo, hi));
+ lo = lo ^ vec_perm(reduceLutHi, reduceLutHi, vec_rli(hi, 4));
+ lo = lo ^ vec_perm(reduceLutLo, reduceLutLo, hi);
return simde__m128i_from_altivec_u8(lo);
#elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) x, y, r, t, m;
