public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/108316] New: [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE
@ 2023-01-06 11:42 acoplan at gcc dot gnu.org
  2023-01-06 12:18 ` [Bug target/108316] [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656 marxin at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: acoplan at gcc dot gnu.org @ 2023-01-06 11:42 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 108316
           Summary: [13 Regression] ICE in maybe_gen_insn via
                    expand_SCATTER_STORE when vectorizing for SVE
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: acoplan at gcc dot gnu.org
  Target Milestone: ---

The following appears to be a regression on the trunk:

$ cat t.cc
extern bool a[];
short i;
void f(int b[][3][2]) {
  for (; i; i += 4)
    a[i] = b[0][i] != 0;
}
$ aarch64-none-elf-gcc -c t.cc -march=armv9-a -O2 -fvect-cost-model=unlimited
during RTL pass: expand
t.cc: In function 'void f(int (*)[3][2])':
t.cc:3:6: internal compiler error: in maybe_gen_insn, at optabs.cc:8059
    3 | void f(int b[][3][2]) {
      |      ^
0x105f613 maybe_gen_insn(insn_code, unsigned int, expand_operand*)
        /home/alecop01/toolchain/src/gcc/gcc/optabs.cc:8059
0x105f80e maybe_expand_insn(insn_code, unsigned int, expand_operand*)
        /home/alecop01/toolchain/src/gcc/gcc/optabs.cc:8105
0x105ed93 expand_insn(insn_code, unsigned int, expand_operand*)
        /home/alecop01/toolchain/src/gcc/gcc/optabs.cc:8136
0xead67a expand_scatter_store_optab_fn
        /home/alecop01/toolchain/src/gcc/gcc/internal-fn.cc:3430
0xead8dd expand_SCATTER_STORE
        /home/alecop01/toolchain/src/gcc/gcc/internal-fn.def:137
0xeaddd2 expand_internal_call(internal_fn, gcall*)
        /home/alecop01/toolchain/src/gcc/gcc/internal-fn.cc:4436
0xeaddec expand_internal_call(gcall*)
        /home/alecop01/toolchain/src/gcc/gcc/internal-fn.cc:4444
0xbffbdc expand_call_stmt
        /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.cc:2737
0xbffbdc expand_gimple_stmt_1
        /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.cc:3880
0xbffbdc expand_gimple_stmt
        /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.cc:4044
0xc0916f expand_gimple_basic_block
        /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.cc:6096
0xc0a9b9 execute
        /home/alecop01/toolchain/src/gcc/gcc/cfgexpand.cc:6822
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/108316] [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656
  2023-01-06 11:42 [Bug target/108316] New: [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE acoplan at gcc dot gnu.org
@ 2023-01-06 12:18 ` marxin at gcc dot gnu.org
  2023-01-10  7:09 ` rguenth at gcc dot gnu.org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: marxin at gcc dot gnu.org @ 2023-01-06 12:18 UTC (permalink / raw)
  To: gcc-bugs

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

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
            Summary|[13 Regression] ICE in      |[13 Regression] ICE in
                   |maybe_gen_insn via          |maybe_gen_insn via
                   |expand_SCATTER_STORE when   |expand_SCATTER_STORE when
                   |vectorizing for SVE         |vectorizing for SVE since
                   |                            |r13-2737-g4a773bf2f08656
   Last reconfirmed|                            |2023-01-06
   Target Milestone|---                         |13.0
                 CC|                            |marxin at gcc dot gnu.org,
                   |                            |richard.sandiford at arm dot com
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Started with r13-2737-g4a773bf2f08656.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/108316] [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656
  2023-01-06 11:42 [Bug target/108316] New: [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE acoplan at gcc dot gnu.org
  2023-01-06 12:18 ` [Bug target/108316] [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656 marxin at gcc dot gnu.org
@ 2023-01-10  7:09 ` rguenth at gcc dot gnu.org
  2023-02-06 13:49 ` jakub at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-01-10  7:09 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/108316] [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656
  2023-01-06 11:42 [Bug target/108316] New: [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE acoplan at gcc dot gnu.org
  2023-01-06 12:18 ` [Bug target/108316] [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656 marxin at gcc dot gnu.org
  2023-01-10  7:09 ` rguenth at gcc dot gnu.org
@ 2023-02-06 13:49 ` jakub at gcc dot gnu.org
  2023-02-06 15:06 ` jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-06 13:49 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Small tweak to the testcase (C, no UB):
extern _Bool a[];

void
foo (short i, int b[][64][1])
{
  for (; i < 64; i += 4)
    a[i] = b[0][i] != 0;
}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/108316] [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656
  2023-01-06 11:42 [Bug target/108316] New: [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE acoplan at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2023-02-06 13:49 ` jakub at gcc dot gnu.org
@ 2023-02-06 15:06 ` jakub at gcc dot gnu.org
  2023-02-07 15:31 ` rsandifo at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-06 15:06 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Seems vect_check_gather_scatter sees that there is no scatter_storevnx2qivnx2si
nor
mask_scatter_storevnx2qivnx2si and loops (in vect_gather_scatter_fn_p) to try
scatter_storevnx2qivnx2di instead which does exist.
But in the expand during expansion we see one with rhs mode E_VNx2QImode and
offset
mode E_VNx2SImode rather than E_VNx2DImode that actually was supported.
I'm afraid I don't know much about scatters/gathers using ifns rather than
builtins though, especially for SVE.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/108316] [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656
  2023-01-06 11:42 [Bug target/108316] New: [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE acoplan at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2023-02-06 15:06 ` jakub at gcc dot gnu.org
@ 2023-02-07 15:31 ` rsandifo at gcc dot gnu.org
  2023-02-08 13:40 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rsandifo at gcc dot gnu.org @ 2023-02-07 15:31 UTC (permalink / raw)
  To: gcc-bugs

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

rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rsandifo at gcc dot gnu.org
                 CC|                            |rsandifo at gcc dot gnu.org

--- Comment #4 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> ---
Mine.  We rely on pattern recognition to make the types match,
but in this case an earlier pattern takes priority.  Fixing that
properly is stage 1 material, so I think we'll have to prevent the
optimisation for GCC 13.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/108316] [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656
  2023-01-06 11:42 [Bug target/108316] New: [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE acoplan at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2023-02-07 15:31 ` rsandifo at gcc dot gnu.org
@ 2023-02-08 13:40 ` cvs-commit at gcc dot gnu.org
  2023-02-11 15:00 ` [Bug target/108316] " jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-02-08 13:40 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Richard Sandiford <rsandifo@gcc.gnu.org>:

https://gcc.gnu.org/g:740a3be7df29b280f39a04c441fd4917af4eef5e

commit r13-5739-g740a3be7df29b280f39a04c441fd4917af4eef5e
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Wed Feb 8 13:40:29 2023 +0000

    vect: Check gather/scatter offset types [PR108316]

    The gather/scatter support can over-widen an offset if the target
    requires it, but this relies on using a pattern sequence to add
    the widening conversion.  That failed in the testcase because an
    earlier pattern (bool) took priority.

    I think we should allow patterns to be applied to other patterns,
    but that's quite an invasive change and isn't suitable for stage 4.
    This patch instead punts if the offset type doesn't match the
    expected one.

    If we switched to using the SLP representation for everything,
    we would probably handle both patterns by rewriting the graph,
    which should be much easier.

    gcc/
            PR tree-optimization/108316
            * tree-vect-stmts.cc (get_load_store_type): When using
            internal functions for gather/scatter, make sure that the type
            of the offset argument is consistent with the offset vector type.

    gcc/testsuite/
            PR tree-optimization/108316
            * gcc.dg/vect/pr108316.c: New test.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/108316] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656
  2023-01-06 11:42 [Bug target/108316] New: [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE acoplan at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2023-02-08 13:40 ` cvs-commit at gcc dot gnu.org
@ 2023-02-11 15:00 ` jakub at gcc dot gnu.org
  2023-04-26  6:57 ` rguenth at gcc dot gnu.org
  2023-07-27  9:25 ` rguenth at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-11 15:00 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[13 Regression] ICE in      |ICE in maybe_gen_insn via
                   |maybe_gen_insn via          |expand_SCATTER_STORE when
                   |expand_SCATTER_STORE when   |vectorizing for SVE since
                   |vectorizing for SVE since   |r13-2737-g4a773bf2f08656
                   |r13-2737-g4a773bf2f08656    |
           Priority|P1                          |P3

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Removing regression tag, keeping open for above mentioned improvements.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/108316] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656
  2023-01-06 11:42 [Bug target/108316] New: [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE acoplan at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2023-02-11 15:00 ` [Bug target/108316] " jakub at gcc dot gnu.org
@ 2023-04-26  6:57 ` rguenth at gcc dot gnu.org
  2023-07-27  9:25 ` rguenth at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-04-26  6:57 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|13.0                        |13.2

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 13.1 is being released, retargeting bugs to GCC 13.2.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug target/108316] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656
  2023-01-06 11:42 [Bug target/108316] New: [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE acoplan at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2023-04-26  6:57 ` rguenth at gcc dot gnu.org
@ 2023-07-27  9:25 ` rguenth at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-27  9:25 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|13.2                        |13.3

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 13.2 is being released, retargeting bugs to GCC 13.3.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-07-27  9:25 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-06 11:42 [Bug target/108316] New: [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE acoplan at gcc dot gnu.org
2023-01-06 12:18 ` [Bug target/108316] [13 Regression] ICE in maybe_gen_insn via expand_SCATTER_STORE when vectorizing for SVE since r13-2737-g4a773bf2f08656 marxin at gcc dot gnu.org
2023-01-10  7:09 ` rguenth at gcc dot gnu.org
2023-02-06 13:49 ` jakub at gcc dot gnu.org
2023-02-06 15:06 ` jakub at gcc dot gnu.org
2023-02-07 15:31 ` rsandifo at gcc dot gnu.org
2023-02-08 13:40 ` cvs-commit at gcc dot gnu.org
2023-02-11 15:00 ` [Bug target/108316] " jakub at gcc dot gnu.org
2023-04-26  6:57 ` rguenth at gcc dot gnu.org
2023-07-27  9:25 ` rguenth at gcc dot gnu.org

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).