add 'is_all_zero(x)' for NEON

Change-Id: I5045e0f3ac4698e820b69ad46b96763e404e6fe4
Signed-off-by: Adrian Oanca <adrian.oanca@enea.com>
This commit is contained in:
Adrian Oanca
2018-02-20 17:14:58 +01:00
committed by Damjan Marion
parent 76447a740a
commit 2b53e4e525

View File

@ -21,6 +21,30 @@
#define u16x8_sub_saturate(a,b) vsubq_u16(a,b)
#define i16x8_sub_saturate(a,b) vsubq_s16(a,b)
always_inline int
u8x16_is_all_zero (u8x16 x)
{
return !(vaddvq_u8 (x));
}
always_inline int
u16x8_is_all_zero (u16x8 x)
{
return !(vaddvq_u16 (x));
}
always_inline int
u32x4_is_all_zero (u32x4 x)
{
return !(vaddvq_u32 (x));
}
always_inline int
u64x2_is_all_zero (u64x2 x)
{
return !(vaddvq_u64 (x));
}
/* Converts all ones/zeros compare mask to bitmap. */
always_inline u32
u8x16_compare_byte_mask (u8x16 x)