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 tree-optimization/52005] New: tree-ssa-combineif does not work with some cfgs


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

             Bug #: 52005
           Summary: tree-ssa-combineif does not work with some cfgs
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: pinskia@gcc.gnu.org


Take:
int f(int x, int a, int b)
{
  int t = 0;
  int c = 1 << a;
  if (!(x & 1))
    t = 0;
  else
    if (x & (1 << 2))
      t = 1;
    else
      t = 0;
  return t;
}

int f1(int x, int a, int b)
{
  int t = 0;
  int c = 1 << a;
  if (x & 1)
    if (x & (1 << 2))
      t = 1;
  return t;
}
--- CUT ---
Both codes are the same.  The first case is not optimized while the second is.
The reason is we have code in ifcombine which only looks for the second case. 
While the first is not caught.


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