From fd2fd0c19944add3cc16d244f69e8fb0a91cbd89 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 27 Apr 2019 23:09:30 -0400 Subject: [PATCH] Remove unneeded permutes Loading byte arrays does not suffer the endian swaps. --- simon128_simd.cpp | 10 ---------- simon64_simd.cpp | 10 ---------- speck128_simd.cpp | 10 ---------- speck64_simd.cpp | 10 ---------- 4 files changed, 40 deletions(-) diff --git a/simon128_simd.cpp b/simon128_simd.cpp index df59ffb2..5331c351 100644 --- a/simon128_simd.cpp +++ b/simon128_simd.cpp @@ -108,13 +108,8 @@ inline uint64x2_t RotateRight64(const uint64x2_t& val) template <> inline uint64x2_t RotateLeft64<8>(const uint64x2_t& val) { -#if (CRYPTOPP_BIG_ENDIAN) - const uint8_t maskb[16] = { 14,13,12,11, 10,9,8,15, 6,5,4,3, 2,1,0,7 }; - const uint8x16_t mask = vld1q_u8(maskb); -#else const uint8_t maskb[16] = { 7,0,1,2, 3,4,5,6, 15,8,9,10, 11,12,13,14 }; const uint8x16_t mask = vld1q_u8(maskb); -#endif return vreinterpretq_u64_u8( vqtbl1q_u8(vreinterpretq_u8_u64(val), mask)); @@ -124,13 +119,8 @@ inline uint64x2_t RotateLeft64<8>(const uint64x2_t& val) template <> inline uint64x2_t RotateRight64<8>(const uint64x2_t& val) { -#if (CRYPTOPP_BIG_ENDIAN) - const uint8_t maskb[16] = { 8,15,14,13, 12,11,10,9, 0,7,6,5, 4,3,2,1 }; - const uint8x16_t mask = vld1q_u8(maskb); -#else const uint8_t maskb[16] = { 1,2,3,4, 5,6,7,0, 9,10,11,12, 13,14,15,8 }; const uint8x16_t mask = vld1q_u8(maskb); -#endif return vreinterpretq_u64_u8( vqtbl1q_u8(vreinterpretq_u8_u64(val), mask)); diff --git a/simon64_simd.cpp b/simon64_simd.cpp index 3863e779..b14e1c6e 100644 --- a/simon64_simd.cpp +++ b/simon64_simd.cpp @@ -106,13 +106,8 @@ inline uint32x4_t RotateRight32(const uint32x4_t& val) template <> inline uint32x4_t RotateLeft32<8>(const uint32x4_t& val) { -#if (CRYPTOPP_BIG_ENDIAN) - const uint8_t maskb[16] = { 14,13,12,15, 10,9,8,11, 6,5,4,7, 2,1,0,3 }; - const uint8x16_t mask = vld1q_u8(maskb); -#else const uint8_t maskb[16] = { 3,0,1,2, 7,4,5,6, 11,8,9,10, 15,12,13,14 }; const uint8x16_t mask = vld1q_u8(maskb); -#endif return vreinterpretq_u32_u8( vqtbl1q_u8(vreinterpretq_u8_u32(val), mask)); @@ -122,13 +117,8 @@ inline uint32x4_t RotateLeft32<8>(const uint32x4_t& val) template <> inline uint32x4_t RotateRight32<8>(const uint32x4_t& val) { -#if (CRYPTOPP_BIG_ENDIAN) - const uint8_t maskb[16] = { 12,15,14,13, 8,11,10,9, 4,7,6,5, 0,3,2,1 }; - const uint8x16_t mask = vld1q_u8(maskb); -#else const uint8_t maskb[16] = { 1,2,3,0, 5,6,7,4, 9,10,11,8, 13,14,14,12 }; const uint8x16_t mask = vld1q_u8(maskb); -#endif return vreinterpretq_u32_u8( vqtbl1q_u8(vreinterpretq_u8_u32(val), mask)); diff --git a/speck128_simd.cpp b/speck128_simd.cpp index d5028fe6..2c356346 100644 --- a/speck128_simd.cpp +++ b/speck128_simd.cpp @@ -107,13 +107,8 @@ inline uint64x2_t RotateRight64(const uint64x2_t& val) template <> inline uint64x2_t RotateLeft64<8>(const uint64x2_t& val) { -#if (CRYPTOPP_BIG_ENDIAN) - const uint8_t maskb[16] = { 14,13,12,11, 10,9,8,15, 6,5,4,3, 2,1,0,7 }; - const uint8x16_t mask = vld1q_u8(maskb); -#else const uint8_t maskb[16] = { 7,0,1,2, 3,4,5,6, 15,8,9,10, 11,12,13,14 }; const uint8x16_t mask = vld1q_u8(maskb); -#endif return vreinterpretq_u64_u8( vqtbl1q_u8(vreinterpretq_u8_u64(val), mask)); @@ -123,13 +118,8 @@ inline uint64x2_t RotateLeft64<8>(const uint64x2_t& val) template <> inline uint64x2_t RotateRight64<8>(const uint64x2_t& val) { -#if (CRYPTOPP_BIG_ENDIAN) - const uint8_t maskb[16] = { 8,15,14,13, 12,11,10,9, 0,7,6,5, 4,3,2,1 }; - const uint8x16_t mask = vld1q_u8(maskb); -#else const uint8_t maskb[16] = { 1,2,3,4, 5,6,7,0, 9,10,11,12, 13,14,15,8 }; const uint8x16_t mask = vld1q_u8(maskb); -#endif return vreinterpretq_u64_u8( vqtbl1q_u8(vreinterpretq_u8_u64(val), mask)); diff --git a/speck64_simd.cpp b/speck64_simd.cpp index 08aaaa19..e6ab4336 100644 --- a/speck64_simd.cpp +++ b/speck64_simd.cpp @@ -105,13 +105,8 @@ inline uint32x4_t RotateRight32(const uint32x4_t& val) template <> inline uint32x4_t RotateLeft32<8>(const uint32x4_t& val) { -#if (CRYPTOPP_BIG_ENDIAN) - const uint8_t maskb[16] = { 14,13,12,15, 10,9,8,11, 6,5,4,7, 2,1,0,3 }; - const uint8x16_t mask = vld1q_u8(maskb); -#else const uint8_t maskb[16] = { 3,0,1,2, 7,4,5,6, 11,8,9,10, 15,12,13,14 }; const uint8x16_t mask = vld1q_u8(maskb); -#endif return vreinterpretq_u32_u8( vqtbl1q_u8(vreinterpretq_u8_u32(val), mask)); @@ -121,13 +116,8 @@ inline uint32x4_t RotateLeft32<8>(const uint32x4_t& val) template <> inline uint32x4_t RotateRight32<8>(const uint32x4_t& val) { -#if (CRYPTOPP_BIG_ENDIAN) - const uint8_t maskb[16] = { 12,15,14,13, 8,11,10,9, 4,7,6,5, 0,3,2,1 }; - const uint8x16_t mask = vld1q_u8(maskb); -#else const uint8_t maskb[16] = { 1,2,3,0, 5,6,7,4, 9,10,11,8, 13,14,15,12 }; const uint8x16_t mask = vld1q_u8(maskb); -#endif return vreinterpretq_u32_u8( vqtbl1q_u8(vreinterpretq_u8_u32(val), mask));