public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "fabio at cannizzo dot net" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/110202] New: _mm512_ternarylogic_epi64 generates unnecessary operations Date: Sat, 10 Jun 2023 10:37:34 +0000 [thread overview] Message-ID: <bug-110202-4@http.gcc.gnu.org/bugzilla/> (raw) https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110202 Bug ID: 110202 Summary: _mm512_ternarylogic_epi64 generates unnecessary operations Product: gcc Version: 13.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: fabio at cannizzo dot net Target Milestone: --- Consider the following two alternative implementations of a bitwise complement of an avx512 register. #include <immintrin.h> __m512i negate1(const __m512i *a) { __m512i res; res = c(res, res, *a, 0x55); return res; } __m512i negate2(const __m512i *a) { __m512i res; res = _mm512_xor_si512(*a, _mm512_set1_epi32(-1)); return res; } which compiled with "-O3 -mavx512f" generates the asm listings (see godbolt: https://godbolt.org/z/jvrxEjW65) negate1(long long __vector(8) const*): vpxor xmm0, xmm0, xmm0 vpternlogq zmm0, zmm0, ZMMWORD PTR [rdi], 85 ret negate2(long long __vector(8) const*): vpternlogd zmm0, zmm0, ZMMWORD PTR [rdi], 0x55 ret negate1 introduces an unnecessary xor operation. Probably this is because it does not recognize that, when vpternlogd is used with code 0x55, it only uses the third zmm argument.
next reply other threads:[~2023-06-10 10:37 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-06-10 10:37 fabio at cannizzo dot net [this message] 2023-06-10 16:07 ` [Bug target/110202] " pinskia at gcc dot gnu.org 2023-06-10 16:14 ` [Bug rtl-optimization/110202] " pinskia at gcc dot gnu.org 2023-06-10 18:36 ` jakub at gcc dot gnu.org 2023-06-10 21:10 ` pinskia at gcc dot gnu.org 2023-06-12 17:14 ` fabio at cannizzo dot net 2023-06-12 19:04 ` amonakov at gcc dot gnu.org 2023-06-27 17:59 ` amonakov at gcc dot gnu.org 2023-06-28 0:47 ` crazylht at gmail dot com 2023-06-28 5:07 ` amonakov at gcc dot gnu.org 2023-07-12 7:51 ` cvs-commit at gcc dot gnu.org 2023-08-04 16:44 ` [Bug target/110202] " cvs-commit at gcc dot gnu.org 2023-08-05 15:32 ` amonakov 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-110202-4@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).