[Bug target/39717] New: [cond-optab] CSE does not put subregs into COMPAREs on many CC0 machines

bonzini at gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Apr 10 12:46:00 GMT 2009


/* cris and mn10300 -O2 */
foo (float *c)
{
  union
  {
    float r;
    unsigned int i;
  }
  e;
  e.r = c[0];
  if (e.i < 0x3f7f0000) return (e.r = e.r / 2.0f, e.i);
  return ((int) e.i < 0) ? 0 : 255;
}



Probably this is a duplicate too for vax:

int a, b;
int baz (short x) {  return x; }
int bar (int x) {
  if (baz (a ^ x ^ a)) return b;
  return 0;
}
int foo (void) {
  return bar (a == 0 || 1 == 1 - a) ? 1 : bar (1 && a);
}


-- 
           Summary: [cond-optab] CSE does not put subregs into COMPAREs on
                    many CC0 machines
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: bonzini at gnu dot org
OtherBugsDependingO 39714
             nThis:


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



More information about the Gcc-bugs mailing list