This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/39762] New: [4.4/4.5 Regression] IRA ICE with -msoft-float


/* { dg-do compile } */
/* { dg-options "-Os" } */
/* { dg-options "-Os -msoft-float" { target { { i?86-* x86_64-* } && ilp32 } }
} */

extern void bar (void);

void
foo (unsigned int x, unsigned int y, unsigned int z)
{
  unsigned int a, b, d, e;
  unsigned int f = (8 << 12) + 0.000122 * 4096;
  b = (x << 12) + 0.000122 * 4096;
  e = (100 << 12) + 0.000122 * 4096;
  b = (unsigned long long) (((b << 13) / e) + 1) / 2;
  a = (y / 8);
  e = (a << 12) + 0.000122 * 4096;
  d = (unsigned long long) (b * e + 2048) >> 12;
  d = (unsigned long long) (d * f + 2048) >> 12;
  if (z >= d)
    bar ();
}

ICEs on i?86-linux (and x86_64-linux -m32) with -Os -msoft-float since r142892,
with -fno-ira it worked until that option has been removed.


-- 
           Summary: [4.4/4.5 Regression] IRA ICE with -msoft-float
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jakub at gcc dot gnu dot org
GCC target triplet: i?86-linux


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]