https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #13 from Oleg Endo ---
attachment 36309 of PR 67506 is another example. It contains the following
code sequence:
mov.b @r2,r0 <<
extu.b r0,r0<<
tst #128,r0
bt/s.L11
extu.w
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #12 from Oleg Endo olegendo at gcc dot gnu.org ---
The following case:
int
fun_01 (char* x, char* y, int z)
{
return ((x[1] x[2] x[3]) == 0) + z;
}
results in:
add #1,r4
mov.b @r4+,r2
mov #0,r0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #11 from Oleg Endo olegendo at gcc dot gnu.org ---
(In reply to Oleg Endo from comment #9)
Another related issue is this example function:
unsigned char h (unsigned char a, int b)
{
return (unsigned char)(a + b);
}
It
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #10 from Oleg Endo olegendo at gcc dot gnu.org ---
Author: olegendo
Date: Sat Jan 24 13:04:53 2015
New Revision: 220081
URL: https://gcc.gnu.org/viewcvs?rev=220081root=gccview=rev
Log:
gcc/
PR target/49263
PR target/53987
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #9 from Oleg Endo olegendo at gcc dot gnu.org ---
Another related issue is this example function:
unsigned char h (unsigned char a, int b)
{
return (unsigned char)(a + b);
}
compiling with -O2 -mrenesas (which allows undefined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #8 from Oleg Endo olegendo at gcc dot gnu.org ---
Author: olegendo
Date: Tue Dec 30 17:26:18 2014
New Revision: 219110
URL: https://gcc.gnu.org/viewcvs?rev=219110root=gccview=rev
Log:
gcc/testsuite/
PR target/53987
*
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #7 from Oleg Endo olegendo at gcc dot gnu.org ---
In bzip2-1.0.2/blocksort.s there is code such as:
.L294:
mov.b @(4,r11),r0
extu.b r0,r11
mov.b @(4,r3),r0
extu.b r0,r3
cmp/eq r3,r11
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #6 from Oleg Endo olegendo at gcc dot gnu.org ---
In the following example function
bool stack_is_background_free( unsigned short* _data, const size_t _size){
size_t num_pixels_above_128 = 0;
for(size_t index = 0;index
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #5 from Oleg Endo olegendo at gcc dot gnu.org ---
(In reply to Oleg Endo from comment #4)
It seems that converting unsigned values to signed values, i.e. replacing
zero-extensions with sign-extensions and recombining sign-extensions