[Bug target/53976] [SH] Unnecessary clrt after bt
olegendo at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Sep 23 21:27:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53976
--- Comment #2 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-09-23 21:26:54 UTC ---
Interestingly, the following function shows some improved behavior (notice the
removed volatile mem store):
int test_2_1 (int* a, int b, int c)
{
a[1] = b != 0;
if (b == 0)
a[10] = c;
return b == 0;
}
-O2 -m2a:
tst r5,r5
movrt r1
mov.l r1,@(4,r4)
bf .L4
mov.l r6,@(40,r4)
.L4:
rts
movt r0
This is already minimal.
However, for non-SH2A it's still the same:
tst r5,r5
mov #-1,r1
negc r1,r1
tst r5,r5
bf/s .L4
mov.l r1,@(4,r4)
mov.l r6,@(40,r4)
tst r5,r5
.L4:
rts
movt r0
More information about the Gcc-bugs
mailing list