public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/60203] New: Support long double/_Decimal128 direct move on power8
@ 2014-02-14 18:37 meissner at gcc dot gnu.org
  2014-02-14 18:39 ` [Bug target/60203] " meissner at gcc dot gnu.org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: meissner at gcc dot gnu.org @ 2014-02-14 18:37 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 60203
           Summary: Support long double/_Decimal128 direct move on power8
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: meissner at gcc dot gnu.org

Created attachment 32139
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32139&action=edit
Bug to show the problem.

The direct move support did not include support for moving long double (TFmode)
and _Decimal128 (TDmode) between GPRs and VSX registers.  The testcase for PR
25972 when compiled for power8 should not move registers to the stack and to
the GPRs.


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

* [Bug target/60203] Support long double/_Decimal128 direct move on power8
  2014-02-14 18:37 [Bug target/60203] New: Support long double/_Decimal128 direct move on power8 meissner at gcc dot gnu.org
@ 2014-02-14 18:39 ` meissner at gcc dot gnu.org
  2014-02-14 23:03 ` meissner at gcc dot gnu.org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: meissner at gcc dot gnu.org @ 2014-02-14 18:39 UTC (permalink / raw)
  To: gcc-bugs

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

Michael Meissner <meissner at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2014-02-14
           Assignee|unassigned at gcc dot gnu.org      |meissner at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Michael Meissner <meissner at gcc dot gnu.org> ---
Note, 64-bit direct moves are fairly simple and should be implemented.


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

* [Bug target/60203] Support long double/_Decimal128 direct move on power8
  2014-02-14 18:37 [Bug target/60203] New: Support long double/_Decimal128 direct move on power8 meissner at gcc dot gnu.org
  2014-02-14 18:39 ` [Bug target/60203] " meissner at gcc dot gnu.org
@ 2014-02-14 23:03 ` meissner at gcc dot gnu.org
  2014-02-16  3:08 ` meissner at gcc dot gnu.org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: meissner at gcc dot gnu.org @ 2014-02-14 23:03 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Michael Meissner <meissner at gcc dot gnu.org> ---
Created attachment 32142
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32142&action=edit
Proposed patch to fix the problem

This patch adds direct move support for long double and _Decimal128 on ISA 2.07
64-bit machines.


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

* [Bug target/60203] Support long double/_Decimal128 direct move on power8
  2014-02-14 18:37 [Bug target/60203] New: Support long double/_Decimal128 direct move on power8 meissner at gcc dot gnu.org
  2014-02-14 18:39 ` [Bug target/60203] " meissner at gcc dot gnu.org
  2014-02-14 23:03 ` meissner at gcc dot gnu.org
@ 2014-02-16  3:08 ` meissner at gcc dot gnu.org
  2014-02-16  3:10 ` meissner at gcc dot gnu.org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: meissner at gcc dot gnu.org @ 2014-02-16  3:08 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Michael Meissner <meissner at gcc dot gnu.org> ---
Author: meissner
Date: Sun Feb 16 03:08:03 2014
New Revision: 207808

URL: http://gcc.gnu.org/viewcvs?rev=207808&root=gcc&view=rev
Log:
[gcc]
2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

    PR target/60203
    * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
    (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
    into 64-bit and 32-bit moves.  On 64-bit moves, add support for
    using direct move instructions on ISA 2.07.  Also adjust
    instruction length for 64-bit.
    (mov<mode>_64bit, TFmode/TDmode): Likewise.
    (mov<mode>_32bit, TFmode/TDmode): Likewise.

[gcc/testsuite]
2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

    PR target/60203
    * gcc.target/powerpc/pr60203.c: New testsuite.


Added:
    trunk/gcc/testsuite/gcc.target/powerpc/pr60203.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/rs6000.md
    trunk/gcc/testsuite/ChangeLog


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

* [Bug target/60203] Support long double/_Decimal128 direct move on power8
  2014-02-14 18:37 [Bug target/60203] New: Support long double/_Decimal128 direct move on power8 meissner at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2014-02-16  3:08 ` meissner at gcc dot gnu.org
@ 2014-02-16  3:10 ` meissner at gcc dot gnu.org
  2014-02-16  3:19 ` meissner at gcc dot gnu.org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: meissner at gcc dot gnu.org @ 2014-02-16  3:10 UTC (permalink / raw)
  To: gcc-bugs

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

Michael Meissner <meissner at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #4 from Michael Meissner <meissner at gcc dot gnu.org> ---
Fixed in subversion id 207808.


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

* [Bug target/60203] Support long double/_Decimal128 direct move on power8
  2014-02-14 18:37 [Bug target/60203] New: Support long double/_Decimal128 direct move on power8 meissner at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2014-02-16  3:10 ` meissner at gcc dot gnu.org
@ 2014-02-16  3:19 ` meissner at gcc dot gnu.org
  2014-02-19  2:14 ` meissner at gcc dot gnu.org
  2014-02-19  2:23 ` meissner at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: meissner at gcc dot gnu.org @ 2014-02-16  3:19 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Michael Meissner <meissner at gcc dot gnu.org> ---
Author: meissner
Date: Sun Feb 16 03:19:11 2014
New Revision: 207809

URL: http://gcc.gnu.org/viewcvs?rev=207809&root=gcc&view=rev
Log:
[gcc]
2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

    PR target/60203
    * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
    (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
    into 64-bit and 32-bit moves.  On 64-bit moves, add support for
    using direct move instructions on ISA 2.07.  Also adjust
    instruction length for 64-bit.
    (mov<mode>_64bit, TFmode/TDmode): Likewise.
    (mov<mode>_32bit, TFmode/TDmode): Likewise.

[gcc/testsuite]
2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

    PR target/60203
    * gcc.target/powerpc/pr60203.c: New testsuite.


Added:
    branches/ibm/gcc-4_8-branch/gcc/testsuite/gcc.target/powerpc/pr60203.c
      - copied unchanged from r207808,
trunk/gcc/testsuite/gcc.target/powerpc/pr60203.c
Modified:
    branches/ibm/gcc-4_8-branch/gcc/ChangeLog.ibm
    branches/ibm/gcc-4_8-branch/gcc/config/rs6000/rs6000.md
    branches/ibm/gcc-4_8-branch/gcc/testsuite/ChangeLog.ibm


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

* [Bug target/60203] Support long double/_Decimal128 direct move on power8
  2014-02-14 18:37 [Bug target/60203] New: Support long double/_Decimal128 direct move on power8 meissner at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2014-02-16  3:19 ` meissner at gcc dot gnu.org
@ 2014-02-19  2:14 ` meissner at gcc dot gnu.org
  2014-02-19  2:23 ` meissner at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: meissner at gcc dot gnu.org @ 2014-02-19  2:14 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Michael Meissner <meissner at gcc dot gnu.org> ---
Author: meissner
Date: Wed Feb 19 02:14:17 2014
New Revision: 207868

URL: http://gcc.gnu.org/viewcvs?rev=207868&root=gcc&view=rev
Log:
2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

    PR target/60203
    * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
    Split 64-bit moves into 2 patterns.  Do not allow the use of
    direct move for TDmode in little endian, since the decimal value
    has little endian bytes within a word, but the 64-bit pieces are
    ordered in a big endian fashion, and normal subreg's of TDmode are
    not allowed.
    (mov<mode>_64bit_dm): Likewise.
    (movtd_64bit_nodm): Likewise.


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


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

* [Bug target/60203] Support long double/_Decimal128 direct move on power8
  2014-02-14 18:37 [Bug target/60203] New: Support long double/_Decimal128 direct move on power8 meissner at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2014-02-19  2:14 ` meissner at gcc dot gnu.org
@ 2014-02-19  2:23 ` meissner at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: meissner at gcc dot gnu.org @ 2014-02-19  2:23 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Michael Meissner <meissner at gcc dot gnu.org> ---
Author: meissner
Date: Wed Feb 19 02:23:10 2014
New Revision: 207869

URL: http://gcc.gnu.org/viewcvs?rev=207869&root=gcc&view=rev
Log:
2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

    PR target/60203
    * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
    Split 64-bit moves into 2 patterns.  Do not allow the use of
    direct move for TDmode in little endian, since the decimal value
    has little endian bytes within a word, but the 64-bit pieces are
    ordered in a big endian fashion, and normal subreg's of TDmode are
    not allowed.
    (mov<mode>_64bit_dm): Likewise.
    (movtd_64bit_nodm): Likewise.


Modified:
    branches/ibm/gcc-4_8-branch/gcc/ChangeLog.ibm
    branches/ibm/gcc-4_8-branch/gcc/config/rs6000/rs6000.md


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

end of thread, other threads:[~2014-02-19  2:23 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-14 18:37 [Bug target/60203] New: Support long double/_Decimal128 direct move on power8 meissner at gcc dot gnu.org
2014-02-14 18:39 ` [Bug target/60203] " meissner at gcc dot gnu.org
2014-02-14 23:03 ` meissner at gcc dot gnu.org
2014-02-16  3:08 ` meissner at gcc dot gnu.org
2014-02-16  3:10 ` meissner at gcc dot gnu.org
2014-02-16  3:19 ` meissner at gcc dot gnu.org
2014-02-19  2:14 ` meissner at gcc dot gnu.org
2014-02-19  2:23 ` meissner 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).