long long
foo (long long x, int y)
{
  unsigned long long x0 = (unsigned long long) x, x1;
  long long a = x0 >> ((y - 4) & 63);
  if ((a & 8) == 0)
    y--;
  x1 = x << ((24 - y) & 63);
  return (x1 >> 1);
}

ICEs at -m31 {-O1,-O2,-O3} on s390-linux.


-- 
           Summary: ICE on lshrdi3_31 pattern
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jakub at gcc dot gnu dot org
GCC target triplet: s390-linux


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

Reply via email to