From a1477b72501186b092e9b039d004ba9fe55d4c65 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Tue, 28 Apr 2015 23:40:58 +0200 Subject: [PATCH] evas: do not cast uint64x1_t to int in evas_common_convert_argb_premul Summary: In GCC 5.1 arm_neon header for aarch64 was changed. It is not possible anymore to silently cast uint64x1_t to int. So replace cast with proper getter function to avoid following error: lib/evas/common/evas_convert_color.c:50:18: error: incompatible types when assigning to type 'DATA32 {aka unsigned int}' from type 'uint64x1_t' nas += vpaddl_u32(vpaddl_u16(vpaddl_u8(cmp))); Reviewers: raster, cedric, devilhorns Subscribers: cedric Projects: #efl Differential Revision: https://phab.enlightenment.org/D2443 Signed-off-by: Cedric BAIL Conflicts: src/lib/evas/common/evas_convert_color.c Change-Id: I068c77c387e396120fa34cce87cbda2d3dbfd7af --- src/lib/evas/common/evas_convert_color.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/lib/evas/common/evas_convert_color.c b/src/lib/evas/common/evas_convert_color.c index 3e68cdb..5648d31 100644 --- a/src/lib/evas/common/evas_convert_color.c +++ b/src/lib/evas/common/evas_convert_color.c @@ -39,16 +39,17 @@ evas_common_convert_argb_premul(DATA32 *data, unsigned int len) uint8x8_t mask_0x01 = vdup_n_u8(1); uint8x8_t mask_0xff = vdup_n_u8(255); uint8x8_t cmp; + uint64x1_t tmp; while (data <= de - 8) { uint8x8x4_t rgba = vld4_u8(data); - cmp = vand_u8(vorr_u8( - vceq_u8(rgba.val[3], mask_0xff), - vceq_u8(rgba.val[3], mask_0x00) - ), mask_0x01); - nas += vpaddl_u32(vpaddl_u16(vpaddl_u8(cmp))); + cmp = vand_u8(vorr_u8(vceq_u8(rgba.val[3], mask_0xff), + vceq_u8(rgba.val[3], mask_0x00)), + mask_0x01); + tmp = vpaddl_u32(vpaddl_u16(vpaddl_u8(cmp))); + nas += vget_lane_u32(vreinterpret_u32_u64(tmp), 0); uint16x8x4_t lrgba; lrgba.val[0] = vmovl_u8(rgba.val[0]); -- 2.7.4