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: [email protected]
ReportedBy: [email protected]
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