public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "cvs-commit at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug target/100182] [8/9/10/11/12 Regression] Miscompilation of atomic_float/1.cc and atomic_float/wait_notify.cc on i686 Date: Wed, 28 Apr 2021 18:02:28 +0000 [thread overview] Message-ID: <bug-100182-4-blkyG1EqVS@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-100182-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100182 --- Comment #25 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-9 branch has been updated by Uros Bizjak <uros@gcc.gnu.org>: https://gcc.gnu.org/g:be20ca1d4ff79baf7425a48bb887495e1ea8f788 commit r9-9472-gbe20ca1d4ff79baf7425a48bb887495e1ea8f788 Author: Uros Bizjak <ubizjak@gmail.com> Date: Fri Apr 23 17:29:29 2021 +0200 i386: Fix atomic FP peepholes [PR100182] 64bit loads to/stores from x87 and SSE registers are atomic also on 32-bit targets, so there is no need for additional atomic moves to a temporary register. Introduced load peephole2 patterns assume that there won't be any additional loads from the load location outside the peepholed sequence and wrongly removed the source location initialization. OTOH, introduced store peephole2 patterns assume there won't be any additional loads from the stored location outside the peepholed sequence and wrongly removed the destination location initialization. Note that we can't use plain x87 FST instruction to initialize destination location because FST converts the value to the double-precision format, changing bits during move. The patch restores removed initializations in load and store patterns. Additionally, plain x87 FST in store peephole2 patterns is prevented by limiting the store operand source to SSE registers. 2021-04-23 Uroš Bizjak <ubizjak@gmail.com> gcc/ PR target/100182 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): Copy operand 3 to operand 4. Use sse_reg_operand as operand 3 predicate. (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto. (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto. (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto. (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Copy operand 1 to operand 0. (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto. (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto. (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto. gcc/testsuite/ PR target/100182 * gcc.target/i386/pr100182.c: New test. * gcc.target/i386/pr71245-1.c (dg-final): Xfail scan-assembler-not. * gcc.target/i386/pr71245-2.c (dg-final): Ditto. (cherry picked from commit d2324a5ab3ff097864ae6828cb1db4dd013c70d1)
next prev parent reply other threads:[~2021-04-28 18:02 UTC|newest] Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-04-21 12:35 [Bug target/100182] New: [8/9/10/11/12 Regression] Miscompilation of atomic_float/1.cc " jakub at gcc dot gnu.org 2021-04-21 12:35 ` [Bug target/100182] " jakub at gcc dot gnu.org 2021-04-21 14:23 ` jakub at gcc dot gnu.org 2021-04-21 15:35 ` jakub at gcc dot gnu.org 2021-04-21 15:41 ` jakub at gcc dot gnu.org 2021-04-21 15:42 ` jakub at gcc dot gnu.org 2021-04-22 8:28 ` jakub at gcc dot gnu.org 2021-04-22 13:10 ` [Bug target/100182] [8/9/10/11/12 Regression] Miscompilation of atomic_float/1.cc and atomic_float/wait_notify.cc " cvs-commit at gcc dot gnu.org 2021-04-22 13:10 ` cvs-commit at gcc dot gnu.org 2021-04-22 17:53 ` ubizjak at gmail dot com 2021-04-22 17:58 ` jakub at gcc dot gnu.org 2021-04-22 18:09 ` ubizjak at gmail dot com 2021-04-22 18:41 ` ubizjak at gmail dot com 2021-04-23 6:13 ` ubizjak at gmail dot com 2021-04-23 7:40 ` jakub at gcc dot gnu.org 2021-04-23 7:52 ` ubizjak at gmail dot com 2021-04-23 7:54 ` ubizjak at gmail dot com 2021-04-23 7:56 ` jakub at gcc dot gnu.org 2021-04-23 8:02 ` ubizjak at gmail dot com 2021-04-23 8:13 ` ubizjak at gmail dot com 2021-04-23 8:25 ` jakub at gcc dot gnu.org 2021-04-23 8:36 ` jakub at gcc dot gnu.org 2021-04-23 8:41 ` jakub at gcc dot gnu.org 2021-04-23 9:20 ` ubizjak at gmail dot com 2021-04-23 15:30 ` cvs-commit at gcc dot gnu.org 2021-04-28 10:44 ` cvs-commit at gcc dot gnu.org 2021-04-28 13:33 ` cvs-commit at gcc dot gnu.org 2021-04-28 18:02 ` cvs-commit at gcc dot gnu.org [this message] 2021-04-28 18:02 ` cvs-commit at gcc dot gnu.org 2021-04-28 18:09 ` ubizjak at gmail dot com 2021-07-19 13:08 ` hjl.tools at gmail dot com 2021-07-19 14:40 ` ubizjak at gmail dot com 2021-07-19 22:06 ` hjl.tools at gmail dot com 2021-07-19 22:18 ` ubizjak at gmail dot com 2021-07-20 4:23 ` cvs-commit at gcc dot gnu.org 2021-07-20 4:30 ` cvs-commit at gcc dot gnu.org 2021-07-20 4:36 ` cvs-commit at gcc dot gnu.org 2021-07-20 4:39 ` cvs-commit at gcc dot gnu.org 2021-07-20 4:41 ` ubizjak at gmail dot com 2021-07-31 19:24 ` hjl.tools at gmail dot com 2021-08-03 18:14 ` hjl.tools at gmail dot com 2021-08-03 18:24 ` ubizjak at gmail dot com 2021-08-03 18:30 ` hjl.tools at gmail dot com
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-100182-4-blkyG1EqVS@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: linkBe 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).