public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/61633] New: AArch64 SISD ASHR instruction split clobbers input register.
@ 2014-06-27 15:46 mshawcroft at gcc dot gnu.org
  2014-06-30  7:55 ` [Bug target/61633] " mshawcroft at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: mshawcroft at gcc dot gnu.org @ 2014-06-27 15:46 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61633

            Bug ID: 61633
           Summary: AArch64 SISD ASHR instruction split clobbers input
                    register.
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mshawcroft at gcc dot gnu.org

The FFT code in Android AAC codec at -O2 is incorrectly compiled resulting in
an infinite loop. I've failed to reduce the test case to something usable but
the problem in the back end is clearly the define_splits associated with
*aarch64_ashr_sisd_or_int_<mode>3.  Both of the splits inappropriately use one
of the input operand register as a scratch pad for the negated shift operand.


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

* [Bug target/61633] AArch64 SISD ASHR instruction split clobbers input register.
  2014-06-27 15:46 [Bug target/61633] New: AArch64 SISD ASHR instruction split clobbers input register mshawcroft at gcc dot gnu.org
@ 2014-06-30  7:55 ` mshawcroft at gcc dot gnu.org
  2014-06-30 11:59 ` mshawcroft at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: mshawcroft at gcc dot gnu.org @ 2014-06-30  7:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61633

--- Comment #1 from mshawcroft at gcc dot gnu.org ---
Author: mshawcroft
Date: Mon Jun 30 07:54:59 2014
New Revision: 212137

URL: https://gcc.gnu.org/viewcvs?rev=212137&root=gcc&view=rev
Log:
[AArch64] Fix register clobber in, aarch64_ashr_sisd_or_int_<mode>3 split.

PR target/61633

The two split patterns associated with
aarch64_ashr_sisd_or_int_<mode>3 split the instruction into a NEG
followed by an SHL.  The split uses one of the input operands as a
scratch register to hold the output of the NEG resulting in register
corruption.

This patch adjusts the splits to use the output operand as the scratch
register.

2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>

       PR target/61633
       * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
       Add alternative; make early clobber.  Adjust both split patterns
       to use operand 0 as the working register.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/aarch64/aarch64.md


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

* [Bug target/61633] AArch64 SISD ASHR instruction split clobbers input register.
  2014-06-27 15:46 [Bug target/61633] New: AArch64 SISD ASHR instruction split clobbers input register mshawcroft at gcc dot gnu.org
  2014-06-30  7:55 ` [Bug target/61633] " mshawcroft at gcc dot gnu.org
@ 2014-06-30 11:59 ` mshawcroft at gcc dot gnu.org
  2014-06-30 12:00 ` mshawcroft at gcc dot gnu.org
  2014-07-01 21:18 ` pinskia at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: mshawcroft at gcc dot gnu.org @ 2014-06-30 11:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61633

--- Comment #2 from mshawcroft at gcc dot gnu.org ---
Author: mshawcroft
Date: Mon Jun 30 11:58:18 2014
New Revision: 212143

URL: https://gcc.gnu.org/viewcvs?rev=212143&root=gcc&view=rev
Log:
[AArch64] Fix register clobber in, aarch64_ashr_sisd_or_int_<mode>3 split.

        Backport from Mainline
        2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>

        PR target/61633
        * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
        Add alternative; make early clobber.  Adjust both split patterns
        to use operand 0 as the working register.


Modified:
    branches/gcc-4_9-branch/gcc/ChangeLog
    branches/gcc-4_9-branch/gcc/config/aarch64/aarch64.md


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

* [Bug target/61633] AArch64 SISD ASHR instruction split clobbers input register.
  2014-06-27 15:46 [Bug target/61633] New: AArch64 SISD ASHR instruction split clobbers input register mshawcroft at gcc dot gnu.org
  2014-06-30  7:55 ` [Bug target/61633] " mshawcroft at gcc dot gnu.org
  2014-06-30 11:59 ` mshawcroft at gcc dot gnu.org
@ 2014-06-30 12:00 ` mshawcroft at gcc dot gnu.org
  2014-07-01 21:18 ` pinskia at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: mshawcroft at gcc dot gnu.org @ 2014-06-30 12:00 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61633

mshawcroft at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|---                         |4.9.1

--- Comment #3 from mshawcroft at gcc dot gnu.org ---
Fixed in trunk, back ported to 4.9 branch.


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

* [Bug target/61633] AArch64 SISD ASHR instruction split clobbers input register.
  2014-06-27 15:46 [Bug target/61633] New: AArch64 SISD ASHR instruction split clobbers input register mshawcroft at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2014-06-30 12:00 ` mshawcroft at gcc dot gnu.org
@ 2014-07-01 21:18 ` pinskia at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu.org @ 2014-07-01 21:18 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61633

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |janne-gcc at jannau dot net

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
*** Bug 61665 has been marked as a duplicate of this bug. ***


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

end of thread, other threads:[~2014-07-01 21:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-27 15:46 [Bug target/61633] New: AArch64 SISD ASHR instruction split clobbers input register mshawcroft at gcc dot gnu.org
2014-06-30  7:55 ` [Bug target/61633] " mshawcroft at gcc dot gnu.org
2014-06-30 11:59 ` mshawcroft at gcc dot gnu.org
2014-06-30 12:00 ` mshawcroft at gcc dot gnu.org
2014-07-01 21:18 ` pinskia 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).