https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95272

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
static void
vect_slp_rearrange_stmts (slp_tree node, unsigned int group_size,
                          vec<unsigned> permutation,
                          hash_set<slp_tree> &visited)
{     
...
      /* ???  Computation nodes are isomorphic and need no rearrangement.
         This is a quick hack to cover those where rearrangement breaks
         semantics because only the first stmt is guaranteed to have the
         correct operation code due to others being swapped or inverted.  */
      stmt_vec_info first = SLP_TREE_SCALAR_STMTS (node)[0];
      if (is_gimple_assign (first->stmt)
          && gimple_assign_rhs_code (first->stmt) == COND_EXPR)
        return;

bites back.  This leaves us with an inconsistent SLP tree (harmless before
the change exposing the ICE).

Reply via email to