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

--- Comment #7 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
(In reply to Hu Lin from comment #5)
> Seems that commit (d2f9159cfe7ea904e6476cabefea0c6ac9532e29) fixed this
> issue. The wrong pattern is no longer generated, although I don't understand
> why for the moment.

That said... given:

 <bb 23> [local count: 761014530]:
  _63 = _29 >> 2;
  _64 = ~_63;
  _65 = (_Bool) _64;
  if (_65 != 0)
    goto <bb 18>; [5.50%]
  else
    goto <bb 3>; [94.50%]

  <bb 18> [local count: 223857727]:
  # vect_vec_iv_.29_45 = PHI <{ 5, 6 }(3), { 1, 2 }(7), { 3, 4 }(23)>
  # vect_vec_iv_.31_50 = PHI <{ 3, 2 }(3), { 7, 6 }(7), { 5, 4 }(23)>
  _51 = BIT_FIELD_REF <vect_vec_iv_.31_50, 32, 0>;
  _46 = BIT_FIELD_REF <vect_vec_iv_.29_45, 32, 0>;
  goto <bb 17>; [100.00%]

Are you sure it's not g:51291ad0f1f89a81de917110af96e019dcd5690c that fixed it?

That would make more sense.

The code doesn't have a vector comparison there. so it feels more like PR117140

Reply via email to