]> granicus.if.org Git - libvpx/commit
vpx_sum_squares_2d_i16_neon(): Make |s2| a uint64x1_t.
authorRaphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Fri, 13 Jul 2018 12:29:09 +0000 (14:29 +0200)
committerJames Zern <jzern@google.com>
Tue, 17 Jul 2018 03:52:11 +0000 (03:52 +0000)
commitbc30e6e39c8bde9a31e1c314e6d1003ff47f2f7f
treec0dd85e7c34fb02c08099fe70b4c356947c6d801
parentbc7c99e7eca8d30d005e7d5db8b0aada2459fb15
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:

sum_squares_neon.c: In function 'vpx_sum_squares_2d_i16_neon':
sum_squares_neon.c: note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts
     s2 = vpaddl_u32(s1);
     ^~
sum_squares_neon.c: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
     s2 = vpaddl_u32(s1);
        ^
sum_squares_neon.c: incompatible types when assigning to type 'int64x1_t' from type 'uint64x1_t'
     s2 = vadd_u64(vget_low_u64(s1), vget_high_u64(s1));
        ^
sum_squares_neon.c: 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.

Bug: chromium:819249
Change-Id: I2778428ee1fee0a674d0d4910347c2a717de21ac
vpx_dsp/arm/sum_squares_neon.c