From 1253bccf060d4c9356b087084d85d7ab9584a91e Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Wed, 15 Aug 2018 02:12:27 -0400 Subject: [PATCH] Add VectorLoad(word32 arr[4]) overloads --- ppc-simd.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/ppc-simd.h b/ppc-simd.h index 99d2e5f4..f6d133b9 100644 --- a/ppc-simd.h +++ b/ppc-simd.h @@ -459,6 +459,29 @@ inline uint32x4_p VectorLoad(int off, const byte src[16]) #endif } +/// \brief Loads a vector from a word array +/// \param src the word array +/// \details Loads a vector in native endian format from a word array. +/// \note VectorLoad does not require an aligned array. +/// \sa Reverse(), VectorLoadBE(), VectorLoad() +/// \since Crypto++ 6.0 +inline uint32x4_p VectorLoad(const word32 src[4]) +{ + return VectorLoad((const byte*)src); +} + +/// \brief Loads a vector from a word array +/// \param src the word array +/// \param off offset into the src word array +/// \details Loads a vector in native endian format from a word array. +/// \note VectorLoad does not require an aligned array. +/// \sa Reverse(), VectorLoadBE(), VectorLoad() +/// \since Crypto++ 6.0 +inline uint32x4_p VectorLoad(int off, const word32 src[4]) +{ + return VectorLoad(off, (const byte*)src); +} + /// \brief Stores a vector to a byte array /// \tparam T vector type /// \param src the vector @@ -588,6 +611,29 @@ inline uint32x4_p VectorLoad(int off, const byte src[16]) } } +/// \brief Loads a vector from a word array +/// \param src the word array +/// \details Loads a vector in native endian format from a word array. +/// \note VectorLoad does not require an aligned array. +/// \sa Reverse(), VectorLoadBE(), VectorLoad() +/// \since Crypto++ 6.0 +inline uint32x4_p VectorLoad(const word32 src[4]) +{ + return VectorLoad((const byte*)src); +} + +/// \brief Loads a vector from a word array +/// \param src the word array +/// \param off offset into the src word array +/// \details Loads a vector in native endian format from a word array. +/// \note VectorLoad does not require an aligned array. +/// \sa Reverse(), VectorLoadBE(), VectorLoad() +/// \since Crypto++ 6.0 +inline uint32x4_p VectorLoad(int off, const word32 src[4]) +{ + return VectorLoad(off, (const byte*)src); +} + /// \brief Loads a vector from a byte array /// \param src the byte array /// \details Loads a vector in big endian format from a byte array.