On 6 December 2013 17:36, Tejas Belagod <tbela...@arm.com> wrote: > * gcc.target/aarch64/aes.c: New.
Add _1 on the test case file name (see http://gcc.gnu.org/wiki/TestCaseWriting) > diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h > index dc56170..9f35e09 100644 > --- a/gcc/config/aarch64/arm_neon.h > +++ b/gcc/config/aarch64/arm_neon.h > @@ -15793,6 +15793,42 @@ vaddvq_f64 (float64x2_t __a) > return vgetq_lane_f64 (__t, __LANE0 (2)); > } > > +#ifdef __ARM_FEATURE_CRYPTO > + > +/* vaes */ > + > +static __inline uint8x16_t > +vaeseq_u8 (uint8x16_t data, uint8x16_t key) > +{ > + return > + (uint8x16_t) __builtin_aarch64_crypto_aesev16qi ((int8x16_t) data, > + (int8x16_t) key); James G fixed the infrastructure to allow properly typed builtins, see: http://gcc.gnu.org/ml/gcc-patches/2013-11/msg02005.html and http://gcc.gnu.org/ml/gcc-patches/2013-11/msg02880.html > @@ -959,3 +966,7 @@ > (UNSPEC_UZP1 "1") (UNSPEC_UZP2 "2")]) > > (define_int_attr frecp_suffix [(UNSPEC_FRECPE "e") (UNSPEC_FRECPX "x")]) > + > +(define_int_attr aes_op [(UNSPEC_AESE "e") (UNSPEC_AESD "d")]) > +(define_int_attr aesmc_op [(UNSPEC_AESMC "mc") (UNSPEC_AESIMC "imc")]) > + Superflous trailing blank line. > diff --git a/gcc/testsuite/gcc.target/aarch64/aes.c > b/gcc/testsuite/gcc.target/aarch64/aes.c > new file mode 100644 > index 0000000..82665fa > --- /dev/null > +++ b/gcc/testsuite/gcc.target/aarch64/aes.c > @@ -0,0 +1,40 @@ > + > +/* { dg-do compile } */ > +/* { dg-options "-march=armv8-a+crypto" } */ > + > +#include "arm_neon.h" > + > +uint8x16_t > +test_vaeseq_u8 (uint8x16_t data, uint8x16_t key) > +{ > + return vaeseq_u8 (data, key); > +} > + > +/* { dg-final { scan-assembler "aese\\tv\[0-9\]+\.16b, v\[0-9\]+\.16b" } } Use scan-assembler-times 1 instead please. Thanks /Marcus