This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/79038] Improve PowerPC ISA 3.0 conversion between integers and hardware _Float128
- From: "meissner at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 26 Apr 2017 18:20:13 +0000
- Subject: [Bug target/79038] Improve PowerPC ISA 3.0 conversion between integers and hardware _Float128
- Auto-submitted: auto-generated
- References: <bug-79038-4@http.gcc.gnu.org/bugzilla/>
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.