This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RS6000] reload_vsx_from_gprsf splitter
- From: Michael Meissner <meissner at linux dot vnet dot ibm dot com>
- To: Alan Modra <amodra at gmail dot com>
- Cc: Michael Meissner <meissner at linux dot vnet dot ibm dot com>, Ulrich Weigand <uweigand at de dot ibm dot com>, David Edelsohn <dje dot gcc at gmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Michael R Meissner <mrmeissn at us dot ibm dot com>
- Date: Thu, 11 Feb 2016 17:42:14 -0500
- Subject: Re: [RS6000] reload_vsx_from_gprsf splitter
- Authentication-results: sourceware.org; auth=none
- References: <CAGWvnykKLpmVCHmNWn=JFtGg1UdsXPr1T+nCT_u7C1qDk6JpoA at mail dot gmail dot com> <20160211183816 dot 1A2886BEA at oc7340732750 dot ibm dot com> <20160211215558 dot GC22837 at ibm-tiger dot the-meissners dot org> <20160211222419 dot GD10888 at bubble dot grove dot modra dot org>
On Fri, Feb 12, 2016 at 08:54:19AM +1030, Alan Modra wrote:
> On Thu, Feb 11, 2016 at 04:55:58PM -0500, Michael Meissner wrote:
> > This is one of the cases I wished the reload support had the ability to
> > allocate 2 scratch temporaries instead of 1. As I said in my other message,
> > TFmode was a hack to get two registers to use.
>
> Another concern I had about this, besides using %L in asm output (what
> forces TFmode to use just fprs?), is what happens when we're using
> IEEE 128-bit floats? In that case it looks like we'd get just one reg.
The code in rs6000_hard_regno_mode_ok only allows TFmode (IBM extended double)
in GPRs and FPRs. In theory, TFmode could go in VSX registers, just it hasn't
been done.
Good point that it breaks if the default long double (TFmode) type is IEEE
128-bit floating point. We would need to have two patterns, one that uses
TFmode and one that uses IFmode. I wrote the power8 direct move stuff before
going down the road of IEEE 128-bit floating point.
--
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meissner@linux.vnet.ibm.com, phone: +1 (978) 899-4797