[Bug middle-end/50569] Wrong code error: memcpy eliminated when it is needed
mikpe at it dot uu.se
gcc-bugzilla@gcc.gnu.org
Fri Nov 4 20:58:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50569
Mikael Pettersson <mikpe at it dot uu.se> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jamborm at gcc dot gnu.org
--- Comment #8 from Mikael Pettersson <mikpe at it dot uu.se> 2011-11-04 20:57:51 UTC ---
The regression started with r164136:
http://gcc.gnu.org/ml/gcc-cvs/2010-09/msg00428.html
Comparing the ARM assembly code from r164135 and r164136 on the reduced test
case clearly shows the error:
--- pr50569.s-r164135 2011-11-04 21:06:58.000000000 +0100
+++ pr50569.s-r164136 2011-11-04 21:10:48.000000000 +0100
@@ -17,19 +17,10 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldrb r2, [r0, #1] @ zero_extendqisi2
- ldrb r3, [r0, #0] @ zero_extendqisi2
- ldrb r1, [r0, #2] @ zero_extendqisi2
- orr r3, r3, r2, asl #8
- ldrb r2, [r0, #3] @ zero_extendqisi2
- orr r3, r3, r1, asl #16
- orr r3, r3, r2, asl #24
+ ldr r3, [r0, #0]
cmp r3, #63
mvnls r3, #0
- strlsb r3, [r0, #0]
- strlsb r3, [r0, #1]
- strlsb r3, [r0, #2]
- strlsb r3, [r0, #3]
+ strls r3, [r0, #0]
bx lr
.size frob_entry, .-frob_entry
.align 2
More information about the Gcc-bugs
mailing list