* [PATCH] middle-end/103193 - avoid canonicalizing <= and >= to == for floats
@ 2021-11-15 11:16 Richard Biener
2021-11-24 9:00 ` Richard Biener
0 siblings, 1 reply; 3+ messages in thread
From: Richard Biener @ 2021-11-15 11:16 UTC (permalink / raw)
To: gcc-patches; +Cc: joseph
This avoids doing aforementioned canoncalization when -ftrapping-math
is in effect and we honor NaNs.
Bootstrapped and tested on x86_64-unknown-linux-gnu.
OK?
Thanks,
Richard.
2021-11-15 Richard Biener <rguenther@suse.de>
PR middle-end/103193
* match.pd: Avoid canonicalizing (le/ge @0 @0) to (eq @0 @0)
with NaNs and -ftrapping-math.
---
gcc/match.pd | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/gcc/match.pd b/gcc/match.pd
index a319aefa808..a7f1e56fe2f 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -4629,7 +4629,10 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
(if (! FLOAT_TYPE_P (TREE_TYPE (@0))
|| ! HONOR_NANS (@0))
{ constant_boolean_node (true, type); }
- (if (cmp != EQ_EXPR)
+ (if (cmp != EQ_EXPR
+ /* With -ftrapping-math conversion to EQ loses an exception. */
+ && (! FLOAT_TYPE_P (TREE_TYPE (@0))
+ || ! flag_trapping_math))
(eq @0 @0)))))
(for cmp (ne gt lt)
(simplify
--
2.31.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] middle-end/103193 - avoid canonicalizing <= and >= to == for floats
2021-11-15 11:16 [PATCH] middle-end/103193 - avoid canonicalizing <= and >= to == for floats Richard Biener
@ 2021-11-24 9:00 ` Richard Biener
2021-11-24 9:03 ` Jakub Jelinek
0 siblings, 1 reply; 3+ messages in thread
From: Richard Biener @ 2021-11-24 9:00 UTC (permalink / raw)
To: Richard Biener; +Cc: GCC Patches, Joseph S. Myers
On Mon, Nov 15, 2021 at 12:16 PM Richard Biener via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> This avoids doing aforementioned canoncalization when -ftrapping-math
> is in effect and we honor NaNs.
>
> Bootstrapped and tested on x86_64-unknown-linux-gnu.
>
> OK?
Ping.
>
> Thanks,
> Richard.
>
> 2021-11-15 Richard Biener <rguenther@suse.de>
>
> PR middle-end/103193
> * match.pd: Avoid canonicalizing (le/ge @0 @0) to (eq @0 @0)
> with NaNs and -ftrapping-math.
> ---
> gcc/match.pd | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/gcc/match.pd b/gcc/match.pd
> index a319aefa808..a7f1e56fe2f 100644
> --- a/gcc/match.pd
> +++ b/gcc/match.pd
> @@ -4629,7 +4629,10 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
> (if (! FLOAT_TYPE_P (TREE_TYPE (@0))
> || ! HONOR_NANS (@0))
> { constant_boolean_node (true, type); }
> - (if (cmp != EQ_EXPR)
> + (if (cmp != EQ_EXPR
> + /* With -ftrapping-math conversion to EQ loses an exception. */
> + && (! FLOAT_TYPE_P (TREE_TYPE (@0))
> + || ! flag_trapping_math))
> (eq @0 @0)))))
> (for cmp (ne gt lt)
> (simplify
> --
> 2.31.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] middle-end/103193 - avoid canonicalizing <= and >= to == for floats
2021-11-24 9:00 ` Richard Biener
@ 2021-11-24 9:03 ` Jakub Jelinek
0 siblings, 0 replies; 3+ messages in thread
From: Jakub Jelinek @ 2021-11-24 9:03 UTC (permalink / raw)
To: Richard Biener; +Cc: Richard Biener, GCC Patches, Joseph S. Myers
On Wed, Nov 24, 2021 at 10:00:56AM +0100, Richard Biener via Gcc-patches wrote:
> On Mon, Nov 15, 2021 at 12:16 PM Richard Biener via Gcc-patches
> <gcc-patches@gcc.gnu.org> wrote:
> >
> > This avoids doing aforementioned canoncalization when -ftrapping-math
> > is in effect and we honor NaNs.
> >
> > Bootstrapped and tested on x86_64-unknown-linux-gnu.
> >
> > OK?
>
> Ping.
>
> >
> > Thanks,
> > Richard.
> >
> > 2021-11-15 Richard Biener <rguenther@suse.de>
> >
> > PR middle-end/103193
> > * match.pd: Avoid canonicalizing (le/ge @0 @0) to (eq @0 @0)
> > with NaNs and -ftrapping-math.
Ok, thanks.
> > gcc/match.pd | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/gcc/match.pd b/gcc/match.pd
> > index a319aefa808..a7f1e56fe2f 100644
> > --- a/gcc/match.pd
> > +++ b/gcc/match.pd
> > @@ -4629,7 +4629,10 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
> > (if (! FLOAT_TYPE_P (TREE_TYPE (@0))
> > || ! HONOR_NANS (@0))
> > { constant_boolean_node (true, type); }
> > - (if (cmp != EQ_EXPR)
> > + (if (cmp != EQ_EXPR
> > + /* With -ftrapping-math conversion to EQ loses an exception. */
> > + && (! FLOAT_TYPE_P (TREE_TYPE (@0))
> > + || ! flag_trapping_math))
> > (eq @0 @0)))))
> > (for cmp (ne gt lt)
> > (simplify
> > --
> > 2.31.1
Jakub
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-11-24 9:04 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-15 11:16 [PATCH] middle-end/103193 - avoid canonicalizing <= and >= to == for floats Richard Biener
2021-11-24 9:00 ` Richard Biener
2021-11-24 9:03 ` Jakub Jelinek
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).