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

Roger Sayle <roger at nextmovesoftware dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |roger at nextmovesoftware dot 
com
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED

--- Comment #27 from Roger Sayle <roger at nextmovesoftware dot com> ---
I believe that this issue has been fixed (for a long time).  For Andi's
testcases in comment #3, -fdump-tree-optimized reveals all these cases are
perceived as rotations by the early middle-end. 

long long unsigned int f (long long unsigned int x, int y)
{
  return x_1(D) r<< y_2(D);
}

unsigned int f2 (unsigned int x, int y)
{
  return x_1(D) r<< y_2(D);
}

long long unsigned int f3 (long long unsigned int x)
{
  return x_1(D) r>> 55;
}

long unsigned int f4 (unsigned int x)
{
  return x_1(D) r>> 22;
}

Reply via email to