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



             Bug #: 55157

           Summary: Missing VRP

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: enhancement

          Priority: P3

         Component: tree-optimization

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

        ReportedBy: pins...@gcc.gnu.org

            Blocks: 55155





Testcase:

void gg(void);

int f(unsigned t)

{

  unsigned g = t*16;

  if (g==0)  return 1;

  gg();

  gg();

  gg();

  gg();

  gg();

  gg();

  if (g<=4)  return 1;

  return 0;

}



In the end there should only be one check for t == 0.

Yes this shows up in real code (well with the autovectorizer); See PR 55155

Reply via email to