On 06/12/13 17:19, Kyrill Tkachov wrote:
Hi all,

Following the implementation of the Crypto intrinsics I posted earlier this
week, this patch implements the vceq_p64 and vtst_p64 intrinsics that operate on
the new poly64_t type. They do not have a regular form and can thus not be
autogenerated from our beloved ML scripts and are therefore synthesised as a
vceq_u32 or vtst_u32 operation, followed by a pairwise reduce with min or max
respectively.

These intrinsics are only available when the crypto intrinsics are available
(i.e. -mfpu=crypto-neon-fp-armv8 and -mfloat-abi=(hard|softfp)).

I've added two runtime tests to make sure they generate correct results.

Ok for trunk?

Can you add a comment as a follow-up describing how this works. FTR this works nicely because of the properties with vceq_u32 and vtst_u32 setting bits appropriately and then pmax and pmin doing the right thing. Also shouldn't there also be a vcne_p64 as well ?

Also, please add a big bold comment that says that this file is no longer fully autogenerated and adjust the file such that there is a clear delineation between the auto-generated and non-autogenerated parts.

Such a rearrangement is pre-approved.

This patch is OK with that change.

regards
Ramana


Thanks,
Kyrill

2013-12-06  Kyrylo Tkachov  <kyrylo.tkac...@arm.com>

      * config/arm/neon.ml (crypto_intrinsics): Add vceq_64 and vtst_p64.
      * config/arm/arm_neon.h: Regenerate.
      * config/arm/neon-docgen.ml: Add vceq_p64 and vtst_p64.
      * doc/arm-neon-intrinsics.texi: Regenerate.

2013-12-06  Kyrylo Tkachov  <kyrylo.tkac...@arm.com>

      * gcc.target/arm/neon-vceq_p64.c: New test.
      * gcc.target/arm/neon-vtst_p64.c: Likewise.



Reply via email to