hi,
i spend again fews hours on neon and checking vminvq_u32 and vmaxvq_u32 i remark that i cannot find any information about those two functions.
if i got uint32x4_t mask1 = vcltq_s32(uint32x4_t,const) and mask1 return [0]4294967295 [1]4294967295 [2]4294967295 [3]4294967295, so all bits to 1. and all compute diff are OK.
doing "if ( vminvq_u32(mask1) > 0 )" is like if (data1 OK AND data2 OK AND data3 OK AND data4 OK) and "if ( vminvq_u32(mask1) > 0 )" would be OK too. So it is and AND check
and "if ( vmaxvq_u32(mask1) > 0 )" would also be OK.
if the result of mask1 return [0]4294967295 [1]0 [2]4294967295 [3]4294967295
"if ( vminvq_u32(mask1) > 0 )" would not be OK but "if ( vmaxvq_u32(mask1) > 0 )" will be OK. So it is like if (data1 OK OR data2 OK OR data3 OK OR data4 OK)
if the result of mask1 return [0]0 [1]0 [2]0 [3]0, "if ( vminvq_u32(mask1) > 0 )" and "if ( vmaxvq_u32(mask1) > 0 )" will not be OK.
so vminvq is like an AND and vmaxvq an OR.
So what is the use of VAND, VBIC, VEOR, VORN, VORR function.
VAND
VBIC
VEOR
VORN
VORR
PS: but using vminvq_s32 and vmaxvq_s32 it does not work.
thanks again for your time ;))