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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2021-11-22

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed. This is partly fixed on the trunk:
        mov     eax, edi
        mov     edx, 1
        and     eax, 1
        .p2align 4,,10
        .p2align 3
.L2:
        add     edx, 1
        cmp     edx, 32
        jne     .L2
        ret

  <bb 2> [local count: 32534376]:
  _6 = val_12(D) & 1;

  <bb 3> [local count: 1009658865]:
  # res_11 = PHI <res_11(3), _6(2)>
  # I_3 = PHI <I_29(3), 1(2)>
  I_29 = I_3 + 1;
  if (I_29 != 32)
    goto <bb 3>; [93.07%]
  else
    goto <bb 4>; [6.93%]

  <bb 4> [local count: 32534376]:
  return res_11;

I do find the induction variable PHI node kinda of funny:
  # res_11 = PHI <res_11(3), _6(2)>

Reply via email to