From: Segher Boessenkool <segher@kernel.crashing.org>
To: Michael Meissner <meissner@linux.ibm.com>,
gcc-patches@gcc.gnu.org, David Edelsohn <dje.gcc@gmail.com>,
Bill Schmidt <wschmidt@linux.ibm.com>,
Peter Bergner <bergner@linux.ibm.com>,
Will Schmidt <will_schmidt@vnet.ibm.com>
Subject: Re: [PATCH 2/2] Add IEEE 128-bit fp conditional move on PowerPC.
Date: Mon, 7 Jun 2021 17:31:50 -0500 [thread overview]
Message-ID: <20210607223150.GP18427@gate.crashing.org> (raw)
In-Reply-To: <20210518202827.GB14382@ibm-toto.the-meissners.org>
On Tue, May 18, 2021 at 04:28:27PM -0400, Michael Meissner wrote:
> In this patch, I simplified things compared to previous patches. Instead of
> allowing any four of the modes to be used for the conditional move comparison
> and the move itself could use different modes, I restricted the conditional
> move to just the same mode. I.e. you can do:
>
> _Float128 a, b, c, d, e, r;
>
> r = (a == b) ? c : d;
>
> But you can't do:
>
> _Float128 c, d, r;
> double a, b;
>
> r = (a == b) ? c : d;
>
> or:
>
> _Float128 a, b;
> double c, d, r;
>
> r = (a == b) ? c : d;
>
> This eliminates a lot of the complexity of the code, because you don't have to
> worry about the sizes being different, and the IEEE 128-bit types being
> restricted to Altivec registers, while the SF/DF modes can use any VSX
> register.
You do not have to worry about that anyway. You can just reuse the
existing rs6000_maybe_emit_fp_cmove. Or why not? The IF_THEN_ELSE we
generate there should work fine?
> +(define_expand "mov<mode>cc"
> + [(set (match_operand:IEEE128 0 "gpc_reg_operand")
> + (if_then_else:IEEE128 (match_operand 1 "comparison_operator")
> + (match_operand:IEEE128 2 "gpc_reg_operand")
> + (match_operand:IEEE128 3 "gpc_reg_operand")))]
> + "TARGET_POWER10 && TARGET_FLOAT128_HW && FLOAT128_IEEE_P (<MODE>mode)"
> +{
> + if (rs6000_emit_cmove (operands[0], operands[1], operands[2], operands[3]))
> + DONE;
> + else
> + FAIL;
> +})
Why is this a special pattern anyway? Why can you not do
d = cond ? x : y;
with cond any comparison, not even including any floating point
possibly?
Segher
next prev parent reply other threads:[~2021-06-07 22:32 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-18 20:22 [PATCH 0/2] Add power10 IEEE 128-bit min/max/conditional move support Michael Meissner
2021-05-18 20:26 ` [PATCH 1/2] Add IEEE 128-bit min/max support on PowerPC Michael Meissner
2021-05-20 19:25 ` will schmidt
2021-05-21 1:38 ` Michael Meissner
2021-06-07 20:08 ` Segher Boessenkool
2021-05-24 15:47 ` Ping " Michael Meissner
2021-06-01 23:38 ` Ping #2: " Michael Meissner
2021-06-07 20:25 ` Segher Boessenkool
2021-06-08 23:52 ` Michael Meissner
2021-05-18 20:28 ` [PATCH 2/2] Add IEEE 128-bit fp conditional move " Michael Meissner
2021-05-20 19:27 ` will schmidt
2021-05-21 1:45 ` Michael Meissner
2021-06-07 21:29 ` Segher Boessenkool
2021-05-24 15:49 ` Ping " Michael Meissner
2021-06-01 23:39 ` Ping #2: " Michael Meissner
2021-06-07 22:31 ` Segher Boessenkool [this message]
2021-06-09 0:05 ` Michael Meissner
-- strict thread matches above, loose matches on Subject: below --
2021-04-15 15:57 [PATCH 0/2] Add IEEE 128-bit min/max/conditional move Michael Meissner
2021-04-15 16:05 ` [PATCH 2/2] Add IEEE 128-bit fp conditional move on PowerPC Michael Meissner
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=20210607223150.GP18427@gate.crashing.org \
--to=segher@kernel.crashing.org \
--cc=bergner@linux.ibm.com \
--cc=dje.gcc@gmail.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=meissner@linux.ibm.com \
--cc=will_schmidt@vnet.ibm.com \
--cc=wschmidt@linux.ibm.com \
/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).