Just one very small point...

On 19/10/15 09:17, Alan Hayward wrote:

> -  if (check_reduction
> -      && (!commutative_tree_code (code) || !associative_tree_code (code)))
> +  if (check_reduction)
>      {
> -      if (dump_enabled_p ())
> -        report_vect_op (MSG_MISSED_OPTIMIZATION, def_stmt,
> -                  "reduction: not commutative/associative: ");
> -      return NULL;
> +      if (code != COND_EXPR
> +    && (!commutative_tree_code (code) || !associative_tree_code (code)))
> +  {
> +    if (dump_enabled_p ())
> +      report_vect_op (MSG_MISSED_OPTIMIZATION, def_stmt,
> +                      "reduction: not commutative/associative: ");
> +    return NULL;
> +  }
> +
> +      if (code == COND_EXPR)
> +  *v_reduc_type = COND_REDUCTION;

Wouldn't this be easier written as

if (code == COND_EXPR)
  *v_reduc_type = COND_REDUCTION;
else if (!commutative_tree_code (code) || !associative_tree_code (code))
  {...}

? Your call!

Cheers, Alan

Reply via email to