arm: Implement vceqq_p64, vceqz_p64 and vceqzq_p64 intrinsics
authorChristophe Lyon <christophe.lyon@linaro.org>
Thu, 15 Oct 2020 17:13:59 +0000 (17:13 +0000)
committerChristophe Lyon <christophe.lyon@linaro.org>
Fri, 15 Jan 2021 12:39:19 +0000 (12:39 +0000)
commit1a6306420090409cb397e2e042256eb1905f415f
tree045d890fa28e03497b04e23d61d9fb1a130ba783
parentcb60334b7162ec5ae560be482cd7a33402470bb4
arm: Implement vceqq_p64, vceqz_p64 and vceqzq_p64 intrinsics

This patch adds implementations for vceqq_p64, vceqz_p64 and
vceqzq_p64 intrinsics.

vceqq_p64 uses the existing vceq_p64 after splitting the input vectors
into their high and low halves.

vceqz[q] simply call the vceq and vceqq with a second argument equal
to zero.

The added (executable) testcases make sure that the poly64x2_t
variants have results with one element of all zeroes (false) and the
other element with all bits set to one (true).

2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/
PR target/71233
* config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.

gcc/testsuite/
PR target/71233
* gcc.target/aarch64/advsimd-intrinsics/p64_p128.c: Add tests for
vceqz_p64, vceqq_p64 and vceqzq_p64.
gcc/config/arm/arm_neon.h
gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/p64_p128.c