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



             Bug #: 56902

           Summary: Fails to SLP with mismatched +/- and negatable

                    constants

    Classification: Unclassified

           Product: gcc

           Version: 4.9.0

            Status: UNCONFIRMED

          Keywords: missed-optimization

          Severity: enhancement

          Priority: P3

         Component: tree-optimization

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: rgue...@gcc.gnu.org

            Blocks: 53947





double x[1024], y[1024], z[1024];

void foo (double w)

{

  int i;

  for (i = 0; i < 1023; i+=2)

    {

      z[i] = x[i] + 3.;

      z[i+1] = x[i+1] + -3.;

    }

}

void bar (double w)

{

  int i;

  for (i = 0; i < 1023; i+=2)

    {

      z[i] = x[i] + w;

      z[i+1] = x[i+1] + -3.;

    }

}

void baz (double w)

{

  int i;

  for (i = 0; i < 1023; i+=2)

    {

      z[i] = x[i] - w;

      z[i+1] = x[i+1] + 3.;

    }

}

Reply via email to