public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug target/109302] [12/13 Regression] ICE in emit_move_insn, at expr.cc:4225
Date: Tue, 28 Mar 2023 11:08:15 +0000	[thread overview]
Message-ID: <bug-109302-4-8eeHdx2p73@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-109302-4@http.gcc.gnu.org/bugzilla/>

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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I think the problem is that ccp1 decides to fold
  _4 = 0;
...
  VIEW_CONVERT_EXPR<__int128 unsigned[4]>(v)[_4] = _8;
into
  v_18 = BIT_INSERT_EXPR <v_13, _8, 0 (128 bits)>;
while the function is still TARGET_AVX512F and so has V4TImode support.
Later on during IPA the function is multi-versioned and one version has smaller
ISA support than before, nothing (e.g. generic vector lowering) lowers that
BIT_INSERT_EXPR
and expansion can't handle BLKmode BIT_INSERT_EXPR either.

Now, do we want to really support this loophole for lowering ISA capabilities?

I mean, say
#include <x86intrin.h>

__attribute__((target_clones("arch=x86-64", "default"))) __m512i
foo (__m512i a, __m512i b, __m512i c, __mmask8 d)
{
  return _mm512_mask_ternarylogic_epi64 (a, d, b, c, 3);
}
when compiled with -O2 -mno-sse3 it is rejected with
error: inlining failed in call to ‘always_inline’
‘_mm512_mask_ternarylogic_epi64’: target specific option mismatch
while with -O2 -mavx512f in this case it is caught during expansion:
error: ‘__builtin_ia32_pternlogq512_mask’ needs isa option -mavx512f
(which is still needed if one would use the builtins by hand), but generally,
we could
e.g. gimple_fold etc. something that we couldn't handle properly later on.

If we want to support this mess, should we handle it in generic vector lowering
or expansion?

  parent reply	other threads:[~2023-03-28 11:08 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-27 18:39 [Bug c/109302] New: " gscfq@t-online.de
2023-03-28  7:22 ` [Bug target/109302] " rguenth at gcc dot gnu.org
2023-03-28 10:34 ` jakub at gcc dot gnu.org
2023-03-28 11:08 ` jakub at gcc dot gnu.org [this message]
2023-05-08 12:26 ` [Bug target/109302] [12/13/14 " rguenth at gcc dot gnu.org
2024-01-12 10:21 ` rguenth at gcc dot gnu.org
2024-01-12 10:22 ` rguenth 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-109302-4-8eeHdx2p73@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).