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 r
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #12 from Oleg Endo ---
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
mov.b @r4+,r1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #11 from Oleg Endo ---
(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 seems that the fwprop1 p
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #10 from Oleg Endo ---
Author: olegendo
Date: Sat Jan 24 13:04:53 2015
New Revision: 220081
URL: https://gcc.gnu.org/viewcvs?rev=220081&root=gcc&view=rev
Log:
gcc/
PR target/49263
PR target/53987
PR target/64345
PR ta
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #9 from Oleg Endo ---
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 high bits in the return
value):
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #8 from Oleg Endo ---
Author: olegendo
Date: Tue Dec 30 17:26:18 2014
New Revision: 219110
URL: https://gcc.gnu.org/viewcvs?rev=219110&root=gcc&view=rev
Log:
gcc/testsuite/
PR target/53987
* gcc.target/sh/pr53987-1.c: New.
A
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #7 from Oleg Endo ---
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
bf .L314
m
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #6 from Oleg Endo ---
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< _size;++index){
if(_data[index]
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53987
--- Comment #5 from Oleg Endo ---
(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 with
> loads could make s