[Bug tree-optimization/108215] Does not optimize trivial case with bit operations

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jan 9 13:41:18 GMT 2023


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

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
It's something for if-conversion / if-combine.  We have

  <bb 2> [local count: 1073741824]:
  src_6 = MEM[(const uint32_t *)data_5(D)];
  _1 = src_6 & 4294967040;
  if (_1 == 287453952)
    goto <bb 5>; [20.97%]
  else
    goto <bb 3>; [79.03%]

  <bb 3> [local count: 848578161]:
  _2 = src_6 & 4294901760;
  if (_2 == 287440896)
    goto <bb 4>; [20.97%]
  else
    goto <bb 5>; [79.03%]

  <bb 4> [local count: 177946843]:

  <bb 5> [local count: 1073741824]:
  # _3 = PHI <1(4), 0(3), 1(2)>

so an effective if-or-if where we fail to handle combining the conditions
(we're going the if-and-if way to the zero return).


More information about the Gcc-bugs mailing list