public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "rsandifo at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/96373] SVE miscompilation on vectorized division loop, leading to FP exception
Date: Tue, 04 Aug 2020 14:59:24 +0000	[thread overview]
Message-ID: <bug-96373-4-cVAMg03xG2@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-96373-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96373

--- Comment #4 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #2)
> (In reply to rsandifo@gcc.gnu.org from comment #1)
> > I could have sworn there was a reason why we didn't do this,
> > on the basis that we already failed to take FP exceptions into
> > account when vectorising normal gassigns.  But I can't remember
> > what the reason was now, or find any notes about it. :-(
> 
> Well, we refuse to if-convert a stmt that can possibly trap.
> whilelo is like "if-conversion" here.  Not sure what's the reason
> to ever excempt stmts from the while mask.
Exempting them is mostly an optimisation.  After vectorisation
we lose the information about whether the predication is optional
or required for correctness, so we have to assume that it's
required for correctness.

> > Anyway, we have all the infrastructure to do it, so it should
> > be easy to fix.
> 
> So for if-conversion it is
> 
>   if ((! gimple_vuse (stmt)
>        || gimple_could_trap_p_1 (stmt, false, false)
>        || ! ifcvt_memrefs_wont_trap (stmt, refs))
>       && gimple_could_trap_p (stmt))
>     {
>       if (ifcvt_can_predicate (stmt))
>         {
>           gimple_set_plf (stmt, GF_PLF_2, true);
>           need_to_predicate = true;
>           return true;
> 
> which means for non-memory gimple_could_trap_p (stmt) - sth you can
> easily check I guess.
Yeah.

  parent reply	other threads:[~2020-08-04 14:59 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-29 15:27 [Bug target/96373] New: " matz at gcc dot gnu.org
2020-08-04 13:41 ` [Bug target/96373] " rsandifo at gcc dot gnu.org
2020-08-04 13:49 ` rguenth at gcc dot gnu.org
2020-08-04 14:38 ` matz at gcc dot gnu.org
2020-08-04 14:59 ` rsandifo at gcc dot gnu.org [this message]
2020-08-04 15:46 ` schwab@linux-m68k.org
2020-08-05 10:08 ` rsandifo at gcc dot gnu.org
2020-08-05 10:15 ` rguenther at suse dot de
2020-08-05 10:28 ` rsandifo at gcc dot gnu.org
2020-08-05 11:09 ` rguenther at suse dot de
2020-08-05 12:24 ` matz at gcc dot gnu.org
2020-08-05 13:02 ` matz at gcc dot gnu.org
2023-01-11 23:50 ` pinskia at gcc dot gnu.org
2023-01-11 23:54 ` pinskia at gcc dot gnu.org
2023-01-27 17:04 ` cvs-commit at gcc dot gnu.org
2023-02-14  2:05 ` cvs-commit at gcc dot gnu.org
2023-02-14  9:18 ` cvs-commit at gcc dot gnu.org
2023-02-27  2:50 ` cvs-commit at gcc dot gnu.org
2023-02-27  2:57 ` cvs-commit at gcc dot gnu.org
2023-04-03  8:58 ` cvs-commit at gcc dot gnu.org
2023-04-14  8:19 ` [Bug target/96373] [10/11 Regression] " rguenth at gcc dot gnu.org
2023-05-29 10:03 ` jakub at gcc dot gnu.org
2024-02-29  5:33 ` [Bug target/96373] [11 " pinskia at gcc dot gnu.org

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=bug-96373-4-cVAMg03xG2@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.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).