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.