Hi all,

Similar to the BCAX patch, we can also use EOR3 for 64-bit modes,
just by adjusting the mode iterator used.
Thus for input:

uint32x2_t
bcax_s (uint32x2_t a, uint32x2_t b, uint32x2_t c)
{
 return EOR3 (a, b, c);
}

we now generate:
bcax_s:
eor3 v0.16b, v0.16b, v1.16b, v2.16b
ret

instead of:
bcax_s:
eor v1.8b, v1.8b, v2.8b
eor v0.8b, v1.8b, v0.8b
ret

Bootstrapped and tested on aarch64-none-linux-gnu.
Ok for trunk?
Thanks,
Kyrill

Signed-off-by: Kyrylo Tkachov <ktkac...@nvidia.com>

gcc/

        * config/aarch64/aarch64-simd.md (eor3q<mode>4): Use VDQ_I mode
        iterator.

gcc/testsuite/

        * gcc.target/aarch64/simd/eor3_d.c: New test.

Attachment: 0002-aarch64-Use-EOR3-for-64-bit-vector-modes.patch
Description: 0002-aarch64-Use-EOR3-for-64-bit-vector-modes.patch

Reply via email to