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

Drea Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=121029

--- Comment #4 from Drea Pinski <pinskia at gcc dot gnu.org> ---
This is a VRP/vectorizer all combined together.

```
  if (lo_5 > x_19)
    goto <bb 5>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 4> :
  _21 = MAX_EXPR <hi_7, x_19>;

  <bb 5> :
  # lo_4 = PHI <x_19(3), lo_5(4)>
  # hi_6 = PHI <hi_7(3), _21(4)>
```

What we need to prove here is that when `lo_5 <= x_19` is true, then hi_7 is
the same as _21.

VRP does not handle reductions inside the loop but that seemly does not help
either. Because LLVM does not vectorize the code either.

rtl ifcvt does not even handle with aarch64 cssc either.

Reply via email to