This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/63302] [4.9 Regression] Code with 64-bit long long constants is miscompiled on 32-bit host


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63302

--- Comment #7 from dave.anglin at bell dot net ---
On 28-Sep-14, at 1:30 AM, zhenqiang.chen at arm dot com wrote:

> 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;


This is what I see on the trunk, but 4.9 is wrong.  Possibly, there is  
a transformation
after optimize_range_tests_diff where things go wrong on 4.9.

Dave
--
John David Anglin    dave.anglin@bell.net


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]