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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aldyh at gcc dot gnu.org

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
So the important part is to eliminate the store to 'c' which GCC11 manages to
do
from EVRP while trunk fails at this task.  The IL into EVRP is absoultely
identical:

  <bb 2> :
  goto <bb 8>; [INV]

  <bb 8> :
  # h_10 = PHI <4(2), h_10(3), h_10(4), 1(7)>
  d.2_8 = d;
  if (d.2_8 != 0)
    goto <bb 3>; [INV]

  <bb 3> :
  if (h_10 != 0)
    goto <bb 4>; [INV]

  <bb 4> :
  e.0_1 = e;
  if (e.0_1 != 0)
    goto <bb 5>; [INV]

  <bb 5> :
  a.1_2 = a;
  _3 = (short int) a.1_2;
  _14 = a.1_2 & 1;
  _4 = (short int) _14;
  _5 = _4 | h_10;
  _6 = (int) _5;
  f.4_21 = (unsigned short) _5;
  _23 = f.4_21 * 3;
  _24 = (short int) _23;
  if (_5 == 0)
    goto <bb 6>; [INV]
  else
    goto <bb 7>; [INV]

  <bb 6> :
  c = 0;

Reply via email to