This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/79038] Improve PowerPC ISA 3.0 conversion between integers and hardware _Float128


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #40827|0                           |1
        is obsolete|                            |

--- Comment #6 from Michael Meissner <meissner at gcc dot gnu.org> ---
Created attachment 41273
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41273&action=edit
Updated patch

This patch, addresses the remaining issues on 3 PRs (79038, 79202, and 79203).

It allows the register allocator to chose to do sign extension of a 32-bit
integer in a vector register if the value happens to be in the vector register,
rather than doing a direct move to a GPR to do the sign extension.

It also rewrites the floating point -> 32-bit integer and 32-bit integer ->
floating point conversions to be more natural on power8, since we now allow
32-bit integers in the vector registers on power8.  Previously, we had to use a
technique (UNSPEC) to hide the fact that we were dealing with 32-bit integers
in the vector registers.  We still need to use the UNSPECs for 8/16-bit integer
types on power8, but the same code will allow the more natural use on power9
(where 8/16-bit integers can also go in vector registers).

On Spec 2006, it gives minor (1%) gains on astar, povray, and sphinx3.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]