[Bug tree-optimization/63302] [4.9 Regression] Code with 64-bit long long constants is miscompiled on 32-bit host
zhenqiang.chen at arm dot com
gcc-bugzilla@gcc.gnu.org
Sun Sep 28 05:31:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63302
--- Comment #6 from Zhenqiang Chen <zhenqiang.chen at arm dot com> ---
I double checked the function optimize_range_tests_diff. Overall, I think it
does the right thing. X86 and ARM work correctly. The ldil.c.169t.optimized is
<bb 2>:
x_2 = ival_1(D) & -2147481601;
_8 = x_2 + 2147483648;
_9 = _8 & -2147483649;
_10 = _9 == 0;
_6 = (int) _10;
return _6;
If we can not fix the wide-int issue, I will create a patch to workaround it
for 4.9 since I never expected optimize_range_tests_diff can work between a
positive value and a negative value.
More information about the Gcc-bugs
mailing list