diff --git a/simon128_simd.cpp b/simon128_simd.cpp index 99a03e1d..7b3f8518 100644 --- a/simon128_simd.cpp +++ b/simon128_simd.cpp @@ -63,8 +63,8 @@ using CryptoPP::vec_swap; // SunCC #if (CRYPTOPP_ARM_NEON_AVAILABLE) -// Missing from Microsoft's implementation??? -#if defined(_MSC_VER) +// Missing from Microsoft's ARM A-32 implementation +#if defined(_MSC_VER) && !defined(_M_ARM64) inline uint64x2_t vld1q_dup_u64(const uint64_t* ptr) { return vmovq_n_u64(*ptr); diff --git a/speck128_simd.cpp b/speck128_simd.cpp index 8506c3e1..d5028fe6 100644 --- a/speck128_simd.cpp +++ b/speck128_simd.cpp @@ -62,8 +62,8 @@ using CryptoPP::word64; #if (CRYPTOPP_ARM_NEON_AVAILABLE) -// Missing from Microsoft's implementation??? -#if defined(_MSC_VER) +// Missing from Microsoft's ARM A-32 implementation +#if defined(_MSC_VER) && !defined(_M_ARM64) inline uint64x2_t vld1q_dup_u64(const uint64_t* ptr) { return vmovq_n_u64(*ptr);