summaryrefslogtreecommitdiff
path: root/src/3rdparty/libwebp/src/dsp/enc_neon.c
diff options
context:
space:
mode:
authorEirik Aavitsland <eirik.aavitsland@qt.io>2023-01-13 10:33:09 +0100
committerEirik Aavitsland <eirik.aavitsland@qt.io>2023-01-16 14:01:04 +0100
commit3cba6d10543c508e2c2f8b942dad9147c0d1ea0d (patch)
treebd20f277152ce381f71d4c4c6be043773dc4fd8e /src/3rdparty/libwebp/src/dsp/enc_neon.c
parentcd92d76e9dcd98f4fc974c796453459779393bdc (diff)
downloadqtimageformats-3cba6d10543c508e2c2f8b942dad9147c0d1ea0d.tar.gz
Update bundled libwebp to version 1.3.0
[ChangeLog][Third-Party Code] Update bundled libwebp to version 1.3.0 Pick-to: 6.5 6.4 6.2 5.15 Change-Id: Ib7645b7348e950bfa27b902de6da879f8309408d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/3rdparty/libwebp/src/dsp/enc_neon.c')
-rw-r--r--src/3rdparty/libwebp/src/dsp/enc_neon.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/3rdparty/libwebp/src/dsp/enc_neon.c b/src/3rdparty/libwebp/src/dsp/enc_neon.c
index 601962b..3a04111 100644
--- a/src/3rdparty/libwebp/src/dsp/enc_neon.c
+++ b/src/3rdparty/libwebp/src/dsp/enc_neon.c
@@ -764,9 +764,14 @@ static WEBP_INLINE void AccumulateSSE16_NEON(const uint8_t* const a,
// Horizontal sum of all four uint32_t values in 'sum'.
static int SumToInt_NEON(uint32x4_t sum) {
+#if defined(__aarch64__)
+ return (int)vaddvq_u32(sum);
+#else
const uint64x2_t sum2 = vpaddlq_u32(sum);
- const uint64_t sum3 = vgetq_lane_u64(sum2, 0) + vgetq_lane_u64(sum2, 1);
- return (int)sum3;
+ const uint32x2_t sum3 = vadd_u32(vreinterpret_u32_u64(vget_low_u64(sum2)),
+ vreinterpret_u32_u64(vget_high_u64(sum2)));
+ return (int)vget_lane_u32(sum3, 0);
+#endif
}
static int SSE16x16_NEON(const uint8_t* a, const uint8_t* b) {