summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--adv_simd.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/adv_simd.h b/adv_simd.h
index 1f63cd6b..effb48f9 100644
--- a/adv_simd.h
+++ b/adv_simd.h
@@ -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
{