This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/70527] New: Missed fold for "(long int) x * 12 - (long int)(x + 1) * 12"
- From: "amker at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 04 Apr 2016 11:50:47 +0000
- Subject: [Bug tree-optimization/70527] New: Missed fold for "(long int) x * 12 - (long int)(x + 1) * 12"
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70527
Bug ID: 70527
Summary: Missed fold for "(long int) x * 12 - (long int)(x + 1)
* 12"
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: amker at gcc dot gnu.org
Target Milestone: ---
Given below test:
long unsigned int foo (int x)
{
return (long unsigned int) x * 12 - (long unsigned int)(x + 1) * 12;
}
long int bar (int x)
{
return (long int) x * 12 - (long int)(x + 1) * 12;
}
The 004t.gimple dump is like:
foo (int x)
{
long unsigned int D.1762;
D.1762 = 18446744073709551604;
return D.1762;
}
bar (int x)
{
long int D.1764;
long int D.1765;
long int D.1766;
int D.1767;
long int D.1768;
long int D.1769;
D.1765 = (long int) x;
D.1766 = D.1765 * 12;
D.1767 = x + 1;
D.1768 = (long int) D.1767;
D.1769 = D.1768 * -12;
D.1764 = D.1766 + D.1769;
return D.1764;
}
Seems "(long int) x * 12 - (long int)(x + 1) * 12" is missed in
generic-simplify.