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 <cedric@osg.samsung.com>
This commit is contained in:
Cedric BAIL 2015-04-28 23:40:58 +02:00
parent ad1076525a
commit 45bba2439d
1 changed files with 3 additions and 1 deletions

View File

@ -39,6 +39,7 @@ 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)
{
@ -47,7 +48,8 @@ evas_common_convert_argb_premul(DATA32 *data, unsigned int len)
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)));
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]);