On Wed, Jan 03, 2018 at 05:30:33PM +0000, Michael Collison wrote:
> Hi All,
> 
> This patch adds support for the SHA-512 and SHA-3 instructions added in
> Armv8.4-a. Support for the new instructions is in the form of new ACLE
> intrinsics. A new command line feature modifier, +sha3, is added to enable
> the support.
> 
> Test cases were added to verify that the ACLE Intrinsics generate the
> appropriate SHA-512/SHA-3 assembly instructions.
> 
> Bootstrapped on aarch64-none-elf. Tested with new binutils and verified all
> instructions assembly correctly.
> 
> Okay for trunk?

OK.

Thanks,
James

> 
> 2017-11-10  Michael Collison  <michael.colli...@arm.com>
> 
>       * config/aarch64/aarch64-builtins.c:
>       (aarch64_types_ternopu_imm_qualifiers, TYPES_TERNOPUI): New.
>       * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
>       (__ARM_FEATURE_SHA3): Define if TARGET_SHA3 is true.
>       * config/aarch64/aarch64.h (AARCH64_FL_SHA3): New flags.
>       (AARCH64_ISA_SHA3): New ISA flag.
>       (TARGET_SHA3): New feature flag for sha3.
>       * config/aarch64/iterators.md (sha512_op): New int attribute.
>       (CRYPTO_SHA512): New int iterator.
>       (UNSPEC_SHA512H): New unspec.
>       (UNSPEC_SHA512H2): Ditto.
>       (UNSPEC_SHA512SU0): Ditto.
>       (UNSPEC_SHA512SU1): Ditto.
>       * config/aarch64/aarch64-simd-builtins.def
>       (aarch64_crypto_sha512hqv2di): New builtin.
>       (aarch64_crypto_sha512h2qv2di): Ditto.
>       (aarch64_crypto_sha512su0qv2di): Ditto.
>       (aarch64_crypto_sha512su1qv2di): Ditto.
>       (aarch64_eor3qv8hi): Ditto.
>       (aarch64_rax1qv2di): Ditto.
>       (aarch64_xarqv2di): Ditto.
>       (aarch64_bcaxqv8hi): Ditto.
>       * config/aarch64/aarch64-simd.md:
>       (aarch64_crypto_sha512h<sha512_op>qv2di): New pattern.
>       (aarch64_crypto_sha512su0qv2di): Ditto.
>       (aarch64_crypto_sha512su1qv2di): Ditto.
>       (aarch64_eor3qv8hi): Ditto.
>       (aarch64_rax1qv2di): Ditto.
>       (aarch64_xarqv2di): Ditto.
>       (aarch64_bcaxqv8hi): Ditto.
>       * config/aarch64/arm_neon.h (vsha512hq_u64): New intrinsic.
>       (vsha512h2q_u64): Ditto.
>       (vsha512su0q_u64): Ditto.
>       (vsha512su1q_u64): Ditto.
>       (veor3q_u16): Ditto.
>       (vrax1q_u64): Ditto.
>       (vxarq_u64): Ditto.
>       (vbcaxq_u16): Ditto.
>       * config/arm/types.md (crypto_sha512): New type attribute.
>       (crypto_sha3): Ditto.
>       (doc/invoke.texi): Document new sha3 option.
>       gcc.target/aarch64/sha2.h: New shared testcase.
>       gcc.target/aarch64/sha2_1.c: New testcase.
>       gcc.target/aarch64/sha2_2.c: New testcase.
>       gcc.target/aarch64/sha2_3.c: New testcase.
>       gcc.target/aarch64/sha3.h: New shared testcase.
>       gcc.target/aarch64/sha3_1.c: New testcase.
>       gcc.target/aarch64/sha3_2.c: New testcase.
>       gcc.target/aarch64/sha3_3.c: New testcase.


Reply via email to