public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "s_gccbugzilla at nedprod dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/108659] Suboptimal 128 bit atomics codegen on AArch64 and x64
Date: Fri, 03 Feb 2023 17:14:59 +0000	[thread overview]
Message-ID: <bug-108659-4-wiMWCUsDbN@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-108659-4@http.gcc.gnu.org/bugzilla/>

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

--- Comment #3 from Niall Douglas <s_gccbugzilla at nedprod dot com> ---
> AMD has guaranteed it, but there is still VIA and Zhaoxin and while we have some statement from the latter, I'm not sure it is enough and we don't have anything from VIA.  See PR104688 for details.

I'm wondering if a compiler opt out flag like -no-msseatomic16 to turn off use
of SSE for 128 bit atomics wouldn't be an idea? Given the small market share of
those CPU vendors, seems a shame to hold up implementation.

(Also, if you do turn it on by default and advertise that widely, I suspect
those vendors will hurry up with their documentation)

> FWIW, the GCC codegen for aarch64 is at https://godbolt.org/z/qvx9484nY (arm and aarch64 are different targets). It emits a call to libatomic, which for GCC 13 will use a lockless implementation when possible at runtime, see g:d1288d850944f69a795e4ff444a427eba3fec11b

Thanks for the catch, my mistake. It would seem the codegen is similarly
inferior to the codegen from clang for both aarch64 and x64.

You may be interested in reading https://reviews.llvm.org/D110069. It wanted to
have LLVM generate a 128 bit AArch64 CAS for atomics. LLVM merged that change,
it'll be in the next release.

  parent reply	other threads:[~2023-02-03 17:14 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-03 15:42 [Bug c++/108659] New: " s_gccbugzilla at nedprod dot com
2023-02-03 16:02 ` [Bug target/108659] " jakub at gcc dot gnu.org
2023-02-03 16:14 ` ktkachov at gcc dot gnu.org
2023-02-03 17:14 ` s_gccbugzilla at nedprod dot com [this message]
2023-02-03 17:20 ` pinskia at gcc dot gnu.org
2023-02-03 21:04 ` wilco at gcc dot gnu.org
2023-02-03 21:08 ` pinskia at gcc dot gnu.org
2023-02-03 21:22 ` s_gccbugzilla at nedprod dot com
2023-02-03 21:51 ` wilco at gcc dot gnu.org
2023-02-03 21:58 ` jakub at gcc dot gnu.org
2023-02-03 22:34 ` s_gccbugzilla at nedprod dot com
2023-02-03 22:45 ` wilco at gcc dot gnu.org
2023-05-31 13:25 ` [Bug target/108659] Suboptimal 128 bit atomics codegen x64 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-108659-4-wiMWCUsDbN@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).