This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/39715] [4.5 Regression][cond-optab] extra sign extensions on Thumb
- From: "rearnsha at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 May 2009 10:49:13 -0000
- Subject: [Bug target/39715] [4.5 Regression][cond-optab] extra sign extensions on Thumb
- References: <bug-39715-7849@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from rearnsha at gcc dot gnu dot org 2009-05-21 10:49 -------
Another case, compile with -mcpu=arm1136jf-s -mthumb -O2
void f(unsigned a, unsigned b, unsigned c, unsigned d)
{
if (a <= b || c > d)
foo();
else
bar();
}
f:
push {r4, lr}
cmp r3, r2
sbc r2, r2, r2 @ r2 = 0 or -1
neg r2, r2 @ r2 = 0 or 1
cmp r2, #0
beq .L7
.L5:
bl foo
.L1:
@ sp needed for prologue
pop {r4, pc}
.L7:
cmp r1, r0 @ r2 = 0 (by flow control)
adc r2, r2, r2 @ r2 = 0 / 1
uxtb r2, r2 @ so this is redundant
cmp r2, #0
bne .L5
bl bar
b .L1
--
rearnsha at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2009-05-21 10:49:12
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39715