[Bug target/70566] [4.9/5/6 Regression] Bad ARM code generated for evaluating unsigned int bitfield value
ktkachov at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Apr 7 09:39:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70566
--- Comment #6 from ktkachov at gcc dot gnu.org ---
Ah, on second glance the peephole looks correct in itself, but the second
branch following the bmi uses an incorrect condition code.
So we have:
tst r3, #2
bne .L3
beq .L6
being transformed into:
ldrb r3, [r0] @ zero_extendqisi2
lsls r3, r3, #30
bmi .L3
beq .L6
The beq needs to be updated to be the opposite of bmi. That is, bpl
More information about the Gcc-bugs
mailing list