diff options
author | Jeffrey Walton <noloader@gmail.com> | 2019-01-03 21:25:19 -0500 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2019-01-03 21:25:19 -0500 |
commit | 7ab07dde06b054e9f601bfda1b86dc858f4b53da (patch) | |
tree | 3f7b5c83170c9e27684c5703644e946fd8261eff /adv_simd.h | |
parent | 925574028575293e475a74f96e5cff0be117f24a (diff) | |
download | cryptopp-git-7ab07dde06b054e9f601bfda1b86dc858f4b53da.tar.gz |
Use 64-bit add for AdvancedProcessBlocks128_4x1_NEON
Diffstat (limited to 'adv_simd.h')
-rw-r--r-- | adv_simd.h | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -567,11 +567,11 @@ inline size_t AdvancedProcessBlocks128_4x1_NEON(F1 func1, F4 func4, {
const uint32x4_t one = s_one;
block0 = vreinterpretq_u32_u8(vld1q_u8(inBlocks));
- block1 = vaddq_u32(block0, one);
- block2 = vaddq_u32(block1, one);
- block3 = vaddq_u32(block2, one);
- vst1q_u8(const_cast<byte*>(inBlocks),
- vreinterpretq_u8_u32(vaddq_u32(block3, one)));
+ block1 = vreinterpretq_u32_u64(vaddq_u64(vreinterpretq_u64_u32(block0), vreinterpretq_u64_u32(one)));
+ block2 = vreinterpretq_u32_u64(vaddq_u64(vreinterpretq_u64_u32(block1), vreinterpretq_u64_u32(one)));
+ block3 = vreinterpretq_u32_u64(vaddq_u64(vreinterpretq_u64_u32(block2), vreinterpretq_u64_u32(one)));
+ vst1q_u8(const_cast<byte*>(inBlocks), vreinterpretq_u8_u64(vaddq_u64(
+ vreinterpretq_u64_u32(block3), vreinterpretq_u64_u32(one))));
}
else
{
|