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

--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The problem is here:
```
  /* Canonicalize.  */
  if ((e2->flags & EDGE_TRUE_VALUE
       && gimple_cond_code (cond) == NE_EXPR)
      || (e1->flags & EDGE_TRUE_VALUE
          && gimple_cond_code (cond) == EQ_EXPR))
    {
      std::swap (arg0, arg1);
      std::swap (e1, e2);
    }
```

e0/e1 corresponds to edges comming into the join block and not the edges from
the conditional block. So EDGE_TRUE_VALUE will not be on the edge here ...

Reply via email to