vect: Remove always-true condition
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 8 Jul 2021 11:58:13 +0000 (12:58 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 8 Jul 2021 11:58:13 +0000 (12:58 +0100)
commit2e9ef3929b0305235b968c431c8d7fec92885101
tree38caf57f97ef9a0ec0d60fb4795d1ab0e4aec298
parent298b0db76dfcc82427d987fbbd239afcb0c3dbfd
vect: Remove always-true condition

vectorizable_reduction had code guarded by:

  if (STMT_VINFO_DEF_TYPE (stmt_info) == vect_reduction_def
      || STMT_VINFO_DEF_TYPE (stmt_info) == vect_double_reduction_def)

But that's always true after:

  if (STMT_VINFO_DEF_TYPE (stmt_info) != vect_reduction_def
      && STMT_VINFO_DEF_TYPE (stmt_info) != vect_double_reduction_def
      && STMT_VINFO_DEF_TYPE (stmt_info) != vect_nested_cycle)
    return false;

  if (STMT_VINFO_DEF_TYPE (stmt_info) == vect_nested_cycle)
    {
      …
      return true;
    }

(I wasn't sure at first how the empty “else” for the first “if” above
was supposed to work.)

gcc/
* tree-vect-loop.c (vectorizable_reduction): Remove always-true
if condition.
gcc/tree-vect-loop.c