diff --git a/simon128_simd.cpp b/simon128_simd.cpp index a6cdf0d8..29a9b1bc 100644 --- a/simon128_simd.cpp +++ b/simon128_simd.cpp @@ -62,6 +62,14 @@ using CryptoPP::vec_swap; // SunCC #if (CRYPTOPP_ARM_NEON_AVAILABLE) +// Missing from Microsoft's implementation??? +#if defined(_MSC_VER) +inline uint64x2_t vld1q_dup_u64(const uint64_t* ptr) +{ + return vmovq_n_u64(*ptr); +} +#endif + template inline T UnpackHigh64(const T& a, const T& b) { diff --git a/speck128_simd.cpp b/speck128_simd.cpp index 60ffaf26..2db2a1bb 100644 --- a/speck128_simd.cpp +++ b/speck128_simd.cpp @@ -61,6 +61,14 @@ using CryptoPP::word64; #if (CRYPTOPP_ARM_NEON_AVAILABLE) +// Missing from Microsoft's implementation??? +#if defined(_MSC_VER) +inline uint64x2_t vld1q_dup_u64(const uint64_t* ptr) +{ + return vmovq_n_u64(*ptr); +} +#endif + template inline T UnpackHigh64(const T& a, const T& b) {