>> +/* Integer constants representing which else value is supported for masked 
>> load
>> +   functions.  */
>> +#define MASK_LOAD_ELSE_ZERO -1
>> +#define MASK_LOAD_ELSE_M1 -2
>> +#define MASK_LOAD_ELSE_UNDEFINED -3
>> +
>> +#define MASK_LOAD_GATHER_ELSE_IDX 6
>
> Why this define?

I initially wanted to use internal_fn_else_index to query the optab's else
operand.  IFN and optab else indices match for maskload and mask_load_lanes
but not for mask_gather_load because the latter implicitly has the sign/zero
extension operand.  I documented this and replaced MASK_LOAD_GATHER_ELSE_IDX
with internal_fn_else_index (...) + 1 now.

In addition, I figured we don't need to query the else operand in pattern recog
but can use ZERO there as well.  It should be sufficient to "overwrite" it in
vectorizable_load.  That way vect_get_else_val_from_tree becomes unnecessary.

Most of the other reviewer comments are incorporated now.  Just still fighting
with an SLP ICE on aarch64 where a swapped
 oprnd_info->ops[j] seems to be NULL.

-- 
Regards
 Robin

Reply via email to