From 232a878877878bdee55ae3bb87f376f38a7b850a Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Tue, 30 Dec 2025 23:21:53 +0100 Subject: [PATCH] MSVC doesn't allow direct C-style casts between NEON vector types Replace (int8x16_t) with vreinterpretq intrinsics --- src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c b/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c index 8af0e479..c5a27e92 100644 --- a/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c +++ b/src/libsodium/crypto_ipcrypt/ipcrypt_armcrypto.c @@ -37,7 +37,7 @@ typedef uint64x2_t BlockVec; # define XOR128_3(a, b, c) veorq_u64(veorq_u64((a), (b)), (c)) # define SET64x2(a, b) vsetq_lane_u64((uint64_t) (a), vmovq_n_u64((uint64_t) (b)), 1) # define BYTESHL128(a, b) \ - vreinterpretq_u64_u8(vextq_s8(vdupq_n_s8(0), (int8x16_t) vreinterpretq_u8_u64(a), 16 - (b))) + vreinterpretq_u64_u8(vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_u64(a), 16 - (b))) # define AES_XENCRYPT(block_vec, rkey) \ vreinterpretq_u64_u8( \