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

           Summary: [4.6 Regression] PRE opportunity no longer found
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: rgue...@gcc.gnu.org


struct A
{
  int i;
};

struct B
{
  struct A a[2];
};

int i = 1;
struct B b = { 0, 3 };

static void
test ()
{
  if (b.a[0].i != i)            // <- with this
    {
      int t = b.a[0].i;
      b.a[0] = b.a[1];
      b.a[1].i = t;
    }

  if (b.a[1].i == i)
    __builtin_abort ();

  if (b.a[0].i == 0)            // <- partially redundant
    __builtin_abort ();
}

int
main ()
{
  test ();
  return 0;
}

no longer finds the PRE b.a[0].i

Reply via email to