[Bug tree-optimization/78335] New: Fold ~(1 << x) -> (~1 lrotate_expr x) on GIMPLE
prathamesh3492 at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Nov 13 11:45:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78335
Bug ID: 78335
Summary: Fold ~(1 << x) -> (~1 lrotate_expr x) on GIMPLE
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: prathamesh3492 at gcc dot gnu.org
Target Milestone: ---
Hi,
It appears the following transform
~(1 << x) -> (~1 lrotate_expr x)
is done on RTL but not on GIMPLE.
Test-case:
int f(int x)
{
int t1 = 1 << x;
int t2 = ~t1;
return t2;
}
optimized dump shows:
f (int x)
{
int t2;
int t1;
<bb 2>:
t1_2 = 1 << x_1(D);
t2_3 = ~t1_2;
return t2_3;
}
I suppose we want to do the transform on GENERIC/GIMPLE too (in match.pd) ?
Working on a patch.
More information about the Gcc-bugs
mailing list