From: Peter Bergner <bergner@linux.ibm.com>
To: Carl Love <cel@us.ibm.com>, "Kewen.Lin" <linkw@linux.ibm.com>
Cc: Segher Boessenkool <segher@kernel.crashing.org>, gcc-patches@gcc.gnu.org
Subject: Re: [PATCH v2] rs6000: Add buildin for mffscrn instructions
Date: Wed, 24 May 2023 11:32:24 -0500 [thread overview]
Message-ID: <c32ae6c1-18db-0831-ee6f-a212acc03446@linux.ibm.com> (raw)
In-Reply-To: <cc1bd92becd262766a190dc7a464e61071eef062.camel@us.ibm.com>
On 5/24/23 10:20 AM, Carl Love wrote:
> Extending the builtin to pre Power 9 is straight forward and I agree
> would make good sense to do.
>
> I am a bit concerned on how to extend __builtin_set_fpscr_rn to add the
> new functionality. Peter suggests overloading the builtin to either
> return void or returns FPSCR bits. It is my understanding that the
> return value for a given builtin had to be the same, i.e. you can't
> overload the return value. Maybe you can with Bill's new
> infrastructure? I recall having problems trying to overload the return
> value in the past and Bill said you couldn't do it. I play with this
> and see if I can overload the return value.
In this case, I don't think we need a built-in overload, but just change
the current built-in to return a double rather than void. All of the
old code should still work, since they'll just ignore the return
value. As I said, the built-in machinery can see whether we're assigning
the built-in return value to a variable or not, ie, the difference between
__builtin_set_fpscr_rn ();
versus:
foo = __builtin_set_fpscr_rn ();
In the former case, the built-in can expand exactly as how it does now.
In the later case, we'll use the target rtx we're passed in as the
destination of the mffscrn[i] insn for P9/10 and for pre-P9, we'll
use the target for an additional mffs instruction which we don't
generate now. Note we'd only generate the mffs when we're passed in
a target rtx as in the second case. The first case we won't.
This is all assuming Segher is fine with the change this way. If we do
go this way, I would recommend adding a predefined macro that users can
test for to know whether the built-in returns a value or not.
If Segher doesn't like this idea, then it's all moot! :-)
Peter
next prev parent reply other threads:[~2023-05-24 16:32 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-13 20:47 [PATCH] " Carl Love
2023-05-18 21:12 ` [PATCH v2] " Carl Love
2023-05-22 6:36 ` Kewen.Lin
2023-05-22 17:31 ` Carl Love
2023-05-23 5:24 ` Kewen.Lin
2023-05-23 22:30 ` Peter Bergner
2023-05-24 5:32 ` Kewen.Lin
2023-05-24 15:20 ` Carl Love
2023-05-24 16:32 ` Peter Bergner [this message]
2023-05-25 5:28 ` Kewen.Lin
2023-05-25 15:59 ` Carl Love
2023-05-31 9:11 ` Kewen.Lin
2023-05-31 15:36 ` Carl Love
2023-05-22 17:36 ` [PATCH v3] " Carl Love
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c32ae6c1-18db-0831-ee6f-a212acc03446@linux.ibm.com \
--to=bergner@linux.ibm.com \
--cc=cel@us.ibm.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=linkw@linux.ibm.com \
--cc=segher@kernel.crashing.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).