------- Comment #3 from ubizjak at gmail dot com  2009-09-29 20:45 -------
This is not alpha specific, but generic tree issue.

The _.optimized dump:

<bb 2>:
  if (x_2(D) == 0)
    goto <bb 4>;
  else
    goto <bb 3>;

<bb 3>:
  D.2022_3 = x_2(D) + -1;
  D.2023_4 = D.2022_3 & x_2(D);
  D.2016_9 = D.2023_4 == 0;

<bb 4>:
  # D.2016_1 = PHI <D.2016_9(3), 1(2)>
  return D.2016_1;

However, by changing boolean "or" to integer "or":

<bb 2>:
  D.2017_2 = x_1(D) == 0;
  D.2018_3 = x_1(D) + -1;
  D.2019_4 = D.2018_3 & x_1(D);
  D.2020_5 = D.2019_4 == 0;
  D.2021_6 = D.2020_5 | D.2017_2;
  D.2016_7 = (int) D.2021_6;
  return D.2016_7;


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 GCC target triplet|alphaev68-*-linux-gnu       |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19778

Reply via email to