55 lines
2.2 KiB
Diff
55 lines
2.2 KiB
Diff
|
Upstream-Status: Submitted
|
||
|
|
||
|
GCC aarch64 build fix [this is actually a libvpx patch, not a Chromium one]
|
||
|
|
||
|
Sent to: https://chromium-review.googlesource.com/c/webm/libvpx/+/1136449
|
||
|
|
||
|
Signed-off-by: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
||
|
---
|
||
|
From c20bd394f18c47bf133b51d6a40399273c3f24e0 Mon Sep 17 00:00:00 2001
|
||
|
From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
||
|
Date: Fri, 13 Jul 2018 14:29:09 +0200
|
||
|
Subject: [PATCH] vpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t.
|
||
|
|
||
|
This fixes the build with at least GCC 7.3, where it was previously failing
|
||
|
with:
|
||
|
|
||
|
../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c: In function 'vpx_sum_squares_2d_i16_neon':
|
||
|
../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:34:5: note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts
|
||
|
s2 = vpaddl_u32(s1);
|
||
|
^~
|
||
|
../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:34:8: error: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
|
||
|
s2 = vpaddl_u32(s1);
|
||
|
^
|
||
|
../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:81:8: error: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
|
||
|
s2 = vadd_u64(vget_low_u64(s1), vget_high_u64(s1));
|
||
|
^
|
||
|
../../third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c:84:24: error: incompatible type for argument 1 of 'vget_lane_u64'
|
||
|
return vget_lane_u64(s2, 0);
|
||
|
^~
|
||
|
|
||
|
The generated assembly was verified to remain identical with both GCC and
|
||
|
LLVM.
|
||
|
|
||
|
Change-Id: I2778428ee1fee0a674d0d4910347c2a717de21ac
|
||
|
---
|
||
|
vpx_dsp/arm/sum_squares_neon.c | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/vpx_dsp/arm/sum_squares_neon.c b/vpx_dsp/arm/sum_squares_neon.c
|
||
|
index 8942ba83b..cfefad993 100644
|
||
|
--- a/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c
|
||
|
+++ b/third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_squares_neon.c
|
||
|
@@ -14,7 +14,7 @@
|
||
|
#include "./vpx_dsp_rtcd.h"
|
||
|
|
||
|
uint64_t vpx_sum_squares_2d_i16_neon(const int16_t *src, int stride, int size) {
|
||
|
- int64x1_t s2;
|
||
|
+ uint64x1_t s2;
|
||
|
|
||
|
if (size == 4) {
|
||
|
int16x4_t s[4];
|
||
|
--
|
||
|
2.14.4
|
||
|
|