public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/101017] New: ICE: Segmentation fault, convert_memory_address_addr_space_1(scalar_int_mode, rtx_def*, unsigned char,  bool, bool)
@ 2021-06-10 14:23 cnsun at uwaterloo dot ca
  2021-06-11 11:41 ` [Bug target/101017] ICE: Segmentation fault, convert_memory_address_addr_space_1 with vector_size(32) and target_clone arch=core-avx2/default marxin at gcc dot gnu.org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: cnsun at uwaterloo dot ca @ 2021-06-10 14:23 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 101017
           Summary: ICE: Segmentation fault,
                    convert_memory_address_addr_space_1(scalar_int_mode,
                    rtx_def*, unsigned char, bool, bool)
           Product: gcc
           Version: tree-ssa
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: cnsun at uwaterloo dot ca
  Target Milestone: ---

$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/scratch/software/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /tmp/tmp.MAuXx9TiBr-gcc-builder/gcc/configure
--enable-languages=c,c++,lto --enable-checking-yes --enable-multiarch
--prefix=/scratch/software/gcc-trunk --disable-bootstrap
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20210610 (experimental) [master revision
:71aa05def:4f625f47b4456e5c05a025fca4d072831e59126c] (GCC)

$ cat mutant.c
typedef v32qi __attribute__((vector_size(32)));
__attribute__((target_clones("arch=core-avx2", "default"))) v32qi
foo_ashift_256() {}

$ gcc-trunk  mutant.c
mutant.c:1:9: warning: type defaults to ‘int’ in declaration of ‘v32qi’
[-Wimplicit-int]
    1 | typedef v32qi __attribute__((vector_size(32)));
      |         ^~~~~
mutant.c: In function ‘foo_ashift_256’:
mutant.c:3:1: warning: AVX vector return without AVX enabled changes the ABI
[-Wpsabi]
    3 | foo_ashift_256() {}
      | ^~~~~~~~~~~~~~
during RTL pass: expand
mutant.c: In function ‘foo_ashift_256.arch_core_avx2.0’:
mutant.c:3:19: internal compiler error: Segmentation fault
    3 | foo_ashift_256() {}
      |                   ^
0xf0a1a3 crash_signal
        /tmp/tmp.MAuXx9TiBr-gcc-builder/gcc/gcc/toplev.c:327
0xb53029 convert_memory_address_addr_space_1(scalar_int_mode, rtx_def*,
unsigned char, bool, bool)
        /tmp/tmp.MAuXx9TiBr-gcc-builder/gcc/gcc/explow.c:309
0xbdf25b expand_function_end()
        /tmp/tmp.MAuXx9TiBr-gcc-builder/gcc/gcc/function.c:5517
0xa50992 construct_exit_block
        /tmp/tmp.MAuXx9TiBr-gcc-builder/gcc/gcc/cfgexpand.c:6194
0xa50992 execute
        /tmp/tmp.MAuXx9TiBr-gcc-builder/gcc/gcc/cfgexpand.c:6812
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

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

* [Bug target/101017] ICE: Segmentation fault, convert_memory_address_addr_space_1 with vector_size(32) and target_clone arch=core-avx2/default
  2021-06-10 14:23 [Bug c/101017] New: ICE: Segmentation fault, convert_memory_address_addr_space_1(scalar_int_mode, rtx_def*, unsigned char, bool, bool) cnsun at uwaterloo dot ca
@ 2021-06-11 11:41 ` marxin at gcc dot gnu.org
  2021-12-20  2:35 ` pinskia at gcc dot gnu.org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-06-11 11:41 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2021-06-11
                 CC|                            |marxin at gcc dot gnu.org

--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Confirmed.

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

* [Bug target/101017] ICE: Segmentation fault, convert_memory_address_addr_space_1 with vector_size(32) and target_clone arch=core-avx2/default
  2021-06-10 14:23 [Bug c/101017] New: ICE: Segmentation fault, convert_memory_address_addr_space_1(scalar_int_mode, rtx_def*, unsigned char, bool, bool) cnsun at uwaterloo dot ca
  2021-06-11 11:41 ` [Bug target/101017] ICE: Segmentation fault, convert_memory_address_addr_space_1 with vector_size(32) and target_clone arch=core-avx2/default marxin at gcc dot gnu.org
@ 2021-12-20  2:35 ` pinskia at gcc dot gnu.org
  2021-12-20  8:50 ` marxin at gcc dot gnu.org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-12-20  2:35 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |6.1.0, 7.1.0, 8.1.0, 9.1.0
   Last reconfirmed|2021-06-11 00:00:00         |2021-12-19

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
GCC 5 did not recognize target_clones

<source>:4:16: warning: 'target_clones' attribute directive ignored
[-Wattributes]
 foo_ashift_256() {}
                ^

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

* [Bug target/101017] ICE: Segmentation fault, convert_memory_address_addr_space_1 with vector_size(32) and target_clone arch=core-avx2/default
  2021-06-10 14:23 [Bug c/101017] New: ICE: Segmentation fault, convert_memory_address_addr_space_1(scalar_int_mode, rtx_def*, unsigned char, bool, bool) cnsun at uwaterloo dot ca
  2021-06-11 11:41 ` [Bug target/101017] ICE: Segmentation fault, convert_memory_address_addr_space_1 with vector_size(32) and target_clone arch=core-avx2/default marxin at gcc dot gnu.org
  2021-12-20  2:35 ` pinskia at gcc dot gnu.org
@ 2021-12-20  8:50 ` marxin at gcc dot gnu.org
  2023-12-03 22:07 ` pinskia at gcc dot gnu.org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-12-20  8:50 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> ---
Started with introduction of target_clone attribute:
r6-4443-g3b1661a9b93fe800

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

* [Bug target/101017] ICE: Segmentation fault, convert_memory_address_addr_space_1 with vector_size(32) and target_clone arch=core-avx2/default
  2021-06-10 14:23 [Bug c/101017] New: ICE: Segmentation fault, convert_memory_address_addr_space_1(scalar_int_mode, rtx_def*, unsigned char, bool, bool) cnsun at uwaterloo dot ca
                   ` (2 preceding siblings ...)
  2021-12-20  8:50 ` marxin at gcc dot gnu.org
@ 2023-12-03 22:07 ` pinskia at gcc dot gnu.org
  2023-12-04  4:03 ` liuhongt at gcc dot gnu.org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-12-03 22:07 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|2021-12-19 00:00:00         |2023-12-3

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note the testcase which ICEs is now:
```
typedef int v32qi __attribute__((vector_size(32)));
__attribute__((target_clones("arch=core-avx2", "default"))) v32qi
foo_ashift_256() {}
```

Note the `int` there. Otherwise you get an error.

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

* [Bug target/101017] ICE: Segmentation fault, convert_memory_address_addr_space_1 with vector_size(32) and target_clone arch=core-avx2/default
  2021-06-10 14:23 [Bug c/101017] New: ICE: Segmentation fault, convert_memory_address_addr_space_1(scalar_int_mode, rtx_def*, unsigned char, bool, bool) cnsun at uwaterloo dot ca
                   ` (3 preceding siblings ...)
  2023-12-03 22:07 ` pinskia at gcc dot gnu.org
@ 2023-12-04  4:03 ` liuhongt at gcc dot gnu.org
  2023-12-05  5:38 ` liuhongt at gcc dot gnu.org
  2024-05-13  6:09 ` liuhongt at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: liuhongt at gcc dot gnu.org @ 2023-12-04  4:03 UTC (permalink / raw)
  To: gcc-bugs

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

liuhongt at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |liuhongt at gcc dot gnu.org

--- Comment #5 from liuhongt at gcc dot gnu.org ---
Let me take a look.

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

* [Bug target/101017] ICE: Segmentation fault, convert_memory_address_addr_space_1 with vector_size(32) and target_clone arch=core-avx2/default
  2021-06-10 14:23 [Bug c/101017] New: ICE: Segmentation fault, convert_memory_address_addr_space_1(scalar_int_mode, rtx_def*, unsigned char, bool, bool) cnsun at uwaterloo dot ca
                   ` (4 preceding siblings ...)
  2023-12-04  4:03 ` liuhongt at gcc dot gnu.org
@ 2023-12-05  5:38 ` liuhongt at gcc dot gnu.org
  2024-05-13  6:09 ` liuhongt at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: liuhongt at gcc dot gnu.org @ 2023-12-05  5:38 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #4)
> Note the testcase which ICEs is now:
> ```
> typedef int v32qi __attribute__((vector_size(32)));
> __attribute__((target_clones("arch=core-avx2", "default"))) v32qi
> foo_ashift_256() {}
> ```
> 
> Note the `int` there. Otherwise you get an error.

For arch=core-avx2, function returns in reg(cfun->returns_struct), but for
"default" and resolver function, it returns in memory(cfun->returns_struct ==
1)

The mismatch between resolver and dispatched function caused the ICE.

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

* [Bug target/101017] ICE: Segmentation fault, convert_memory_address_addr_space_1 with vector_size(32) and target_clone arch=core-avx2/default
  2021-06-10 14:23 [Bug c/101017] New: ICE: Segmentation fault, convert_memory_address_addr_space_1(scalar_int_mode, rtx_def*, unsigned char, bool, bool) cnsun at uwaterloo dot ca
                   ` (5 preceding siblings ...)
  2023-12-05  5:38 ` liuhongt at gcc dot gnu.org
@ 2024-05-13  6:09 ` liuhongt at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: liuhongt at gcc dot gnu.org @ 2024-05-13  6:09 UTC (permalink / raw)
  To: gcc-bugs

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

Hongtao Liu <liuhongt at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |haochen.jiang at intel dot com

--- Comment #7 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---

> For arch=core-avx2, function returns in reg(cfun->returns_struct), but for
> "default" and resolver function, it returns in memory(cfun->returns_struct
> == 1)
> 
> The mismatch between resolver and dispatched function caused the ICE.

similar issue for

#include <immintrin.h>
__attribute__((target_clones ("avx512f", "default")))
__m512d foo(__m512d a, __m512d b)
{
      c = a + b;
}

with -O2, under avx512f, it returns in reg, by default it returns in memory.

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

end of thread, other threads:[~2024-05-13  6:09 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-10 14:23 [Bug c/101017] New: ICE: Segmentation fault, convert_memory_address_addr_space_1(scalar_int_mode, rtx_def*, unsigned char, bool, bool) cnsun at uwaterloo dot ca
2021-06-11 11:41 ` [Bug target/101017] ICE: Segmentation fault, convert_memory_address_addr_space_1 with vector_size(32) and target_clone arch=core-avx2/default marxin at gcc dot gnu.org
2021-12-20  2:35 ` pinskia at gcc dot gnu.org
2021-12-20  8:50 ` marxin at gcc dot gnu.org
2023-12-03 22:07 ` pinskia at gcc dot gnu.org
2023-12-04  4:03 ` liuhongt at gcc dot gnu.org
2023-12-05  5:38 ` liuhongt at gcc dot gnu.org
2024-05-13  6:09 ` liuhongt 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).