Intra16Preds_NEON: fix truemotion saturation

This needs to be done with signed saturation as the sum may be negative.

fixes mismatch with C code after:
3bfb05e3 Add AArch64 Neon implementation of Intra16Preds

Change-Id: I017e939d7155cc3489ceb76fc8ad50ac9917f23d
This commit is contained in:
James Zern 2024-07-11 13:35:37 -07:00
parent c7bb4cb585
commit d742b24a88

View File

@ -1115,10 +1115,10 @@ static WEBP_INLINE void TrueMotionHelper_NEON(uint8_t* dst,
r1 = vaddl_u8(outer, inner.val[0]);
r1 = vqsubq_u16(r1, a);
d1 = vqmovn_u16(r1);
d1 = vqmovun_s16(vreinterpretq_s16_u16(r1));
r2 = vaddl_u8(outer, inner.val[1]);
r2 = vqsubq_u16(r2, a);
d2 = vqmovn_u16(r2);
d2 = vqmovun_s16(vreinterpretq_s16_u16(r2));
vst1_u8(dst + BPS * (i * 4 + n), d1);
vst1_u8(dst + BPS * (i * 4 + n) + 8, d2);
}