Commit d98724ba authored by Jian Cai's avatar Jian Cai Committed by Commit Bot

dec_neon: Fix build failure under some toolchains

some toolchains may implement vcreate_u64 as an assignment to a vector
causing a type mismatch:
 invalid conversion between vector type 'uint64x1_t' (vector of 1
'uint64_t' value) and integer type 'unsigned int' of different size
  const uint64x1_t LKJI____ = vcreate_u64(L | (K << 8) | (J << 16) | (I << 24));

(cherry-pick from commit b0e09e34)

BUG=chromium:1036713

Change-Id: Id0559385826152df228efb4329cdaefb191de01e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1980129
Commit-Queue: Jian Cai <jiancai@google.com>
Reviewed-by: default avatarJames Zern <jzern@google.com>
Cr-Commit-Position: refs/heads/master@{#727241}
parent b3385301
...@@ -25,3 +25,4 @@ Local changes: ...@@ -25,3 +25,4 @@ Local changes:
https://github.com/google/oss-fuzz/tree/master/projects/libwebp https://github.com/google/oss-fuzz/tree/master/projects/libwebp
* cherry-pick af650c0b Fix a Wxor-used-as-pow false positive * cherry-pick af650c0b Fix a Wxor-used-as-pow false positive
* cherry-pick 0e48d889 bugfix: last alpha rows were incorrectly decoded * cherry-pick 0e48d889 bugfix: last alpha rows were incorrectly decoded
* cherry-pick b0e09e34 dec_neon: Fix build failure under some toolchains
...@@ -1361,7 +1361,8 @@ static void RD4_NEON(uint8_t* dst) { // Down-right ...@@ -1361,7 +1361,8 @@ static void RD4_NEON(uint8_t* dst) { // Down-right
const uint32_t J = dst[-1 + 1 * BPS]; const uint32_t J = dst[-1 + 1 * BPS];
const uint32_t K = dst[-1 + 2 * BPS]; const uint32_t K = dst[-1 + 2 * BPS];
const uint32_t L = dst[-1 + 3 * BPS]; const uint32_t L = dst[-1 + 3 * BPS];
const uint64x1_t LKJI____ = vcreate_u64(L | (K << 8) | (J << 16) | (I << 24)); const uint64x1_t LKJI____ =
vcreate_u64((uint64_t)L | (K << 8) | (J << 16) | (I << 24));
const uint64x1_t LKJIXABC = vorr_u64(LKJI____, ____XABC); const uint64x1_t LKJIXABC = vorr_u64(LKJI____, ____XABC);
const uint8x8_t KJIXABC_ = vreinterpret_u8_u64(vshr_n_u64(LKJIXABC, 8)); const uint8x8_t KJIXABC_ = vreinterpret_u8_u64(vshr_n_u64(LKJIXABC, 8));
const uint8x8_t JIXABC__ = vreinterpret_u8_u64(vshr_n_u64(LKJIXABC, 16)); const uint8x8_t JIXABC__ = vreinterpret_u8_u64(vshr_n_u64(LKJIXABC, 16));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment