public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/58424] New: [ARM]gcc.target/arm/pr42575.c failed on arm
@ 2013-09-15  8:04 amker.cheng at gmail dot com
  2014-03-11 15:40 ` [Bug target/58424] " ramana at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: amker.cheng at gmail dot com @ 2013-09-15  8:04 UTC (permalink / raw)
  To: gcc-bugs

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.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug target/58424] [ARM]gcc.target/arm/pr42575.c failed on arm
  2013-09-15  8:04 [Bug target/58424] New: [ARM]gcc.target/arm/pr42575.c failed on arm amker.cheng at gmail dot com
@ 2014-03-11 15:40 ` ramana at gcc dot gnu.org
  2014-03-12 10:38 ` amker.cheng at gmail dot com
  2014-03-13  9:28 ` ramana at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: ramana at gcc dot gnu.org @ 2014-03-11 15:40 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58424

Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
   Last reconfirmed|                            |2014-03-11
                 CC|                            |ramana at gcc dot gnu.org
      Known to work|                            |4.9.0
     Ever confirmed|0                           |1
      Known to fail|                            |4.8.0, 4.8.1

--- Comment #1 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> ---
Appears to be fixed on trunk with and without LRA with -O2 -mthumb / -marm
-mcpu=cortex-m4 / -march=armv7-a  

longfunc:
        @ args = 0, pretend = 0, frame = 0
        @ frame_needed = 0, uses_anonymous_args = 0
        @ link register save eliminated.
        mul     r3, r0, r3
        mla     r3, r2, r1, r3
        umull   r0, r1, r0, r2
        add     r1, r1, r3
        bx      lr

This is with a build from around 20140307 .

while 4.8 still appears to have this problem.

Bin : can you please check ?


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug target/58424] [ARM]gcc.target/arm/pr42575.c failed on arm
  2013-09-15  8:04 [Bug target/58424] New: [ARM]gcc.target/arm/pr42575.c failed on arm amker.cheng at gmail dot com
  2014-03-11 15:40 ` [Bug target/58424] " ramana at gcc dot gnu.org
@ 2014-03-12 10:38 ` amker.cheng at gmail dot com
  2014-03-13  9:28 ` ramana at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: amker.cheng at gmail dot com @ 2014-03-12 10:38 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58424

--- Comment #2 from bin.cheng <amker.cheng at gmail dot com> ---
Yes, It works for below combination of options:
  -mthumb -mcpu=cortex-m4
  -mthumb/-marm -march=armv7-a/-mcpu=cortex-a7
But still happens for:
  -mthumb -mcpu=cortex-m3
  -mthumb/-marm
-mcpu=cortex-a7/-mcpu=cortex-a12/-mcpu=cortex-a9/-mcpu=cortex-a15

Maybe it has something to do with the rtx cost.  I will look into it later.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug target/58424] [ARM]gcc.target/arm/pr42575.c failed on arm
  2013-09-15  8:04 [Bug target/58424] New: [ARM]gcc.target/arm/pr42575.c failed on arm amker.cheng at gmail dot com
  2014-03-11 15:40 ` [Bug target/58424] " ramana at gcc dot gnu.org
  2014-03-12 10:38 ` amker.cheng at gmail dot com
@ 2014-03-13  9:28 ` ramana at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: ramana at gcc dot gnu.org @ 2014-03-13  9:28 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58424

Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-03-13  9:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-15  8:04 [Bug target/58424] New: [ARM]gcc.target/arm/pr42575.c failed on arm amker.cheng at gmail dot com
2014-03-11 15:40 ` [Bug target/58424] " ramana at gcc dot gnu.org
2014-03-12 10:38 ` amker.cheng at gmail dot com
2014-03-13  9:28 ` ramana at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).