[Bug target/58424] New: [ARM]gcc.target/arm/pr42575.c failed on arm
amker.cheng at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sun Sep 15 08:04:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58424
Bug ID: 58424
Summary: [ARM]gcc.target/arm/pr42575.c failed on arm
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: amker.cheng at gmail dot com
gcc is at revision r202599 and is configured as:
../gcc/configure
build=i686-linux-gnu
host=i686-linux-gnu
target=arm-none-eabi
prefix=.../trunk-orig/target/
disable-decimal-float
disable-libffi
disable-libgomp
disable-libmudflap
disable-libquadmath
disable-libssp
disable-libstdcxx-pch
disable-nls
disable-shared
disable-threads
disable-tls
with-gnu-as
with-gnu-ld
with-newlib
with-headers=yes
with-sysroot=.../trunk-orig/target/arm-none-eabi
with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm'
with-mode=thumb
with-arch=armv7-m
disable-multilib
enable-lto
enable-languages=c,c++,lto
The source code is:
/* { dg-options "-O2" } */
/* Make sure RA does good job allocating registers and avoids
unnecessary moves. */
/* { dg-final { scan-assembler-not "mov" } } */
long long longfunc(long long x, long long y)
{
return x * y;
}
The generated assembly is:
longfunc:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mul r3, r0, r3
push {r4, r5}
mla r1, r2, r1, r3
umull r4, r5, r0, r2
add r5, r5, r1
mov r0, r4
mov r1, r5
pop {r4, r5}
bx lr
.size longfunc, .-longfunc
But I think the case would fail for other configurations too.
More information about the Gcc-bugs
mailing list