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

--- Comment #13 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---
(In reply to David Binderman from comment #12)
> (In reply to Hongtao Liu from comment #11)
> > (In reply to David Binderman from comment #10)
> > > Did this ever happen ?
> > > 
> > > Similar test case gcc/testsuite/gcc.target/i386/avx10_1-26.c
> > > still seems to cause a crash:
> > > 
> > > testsuite $ ~/gcc/results/bin/gcc -c -w ./gcc.target/i386/avx10_1-26.c
> > > ./gcc.target/i386/avx10_1-26.c: In function ‘foo’:
> > > ./gcc.target/i386/avx10_1-26.c:7:9: note: the ABI for passing parameters
> > > with 64-byte alignment has changed in GCC 4.6
> > >     7 | __m512d foo(__m512d a, __m512d b)
> > >       |         ^~~
> > 
> > Looks like the same error.
> 
> Still going wrong, but now badly wrong:
> 
> testsuite $ /home/dcb40b/gcc/results.20250321.ubsan/bin/gcc -c -w
> ./gcc.target/i386/avx10_1-26.c
> ./gcc.target/i386/avx10_1-26.c: In function ‘foo’:
> ./gcc.target/i386/avx10_1-26.c:7:9: note: the ABI for passing parameters
> with 64-byte alignment has changed in GCC 4.6
>     7 | __m512d foo(__m512d a, __m512d b)
>       |         ^~~
> ./gcc.target/i386/avx10_1-26.c: At top level:
> ./gcc.target/i386/avx10_1-26.c:7:9: error: attribute ‘target_clone’ argument
> ‘avx10.1’ is unknown
> testsuite $ /home/dcb40b/gcc/results.20250325.ubsan/bin/gcc -c -w
> ./gcc.target/i386/avx10_1-26.c
> ./gcc.target/i386/avx10_1-26.c: In function ‘foo’:
> ./gcc.target/i386/avx10_1-26.c:7:9: note: the ABI for passing parameters
> with 64-byte alignment has changed in GCC 4.6
>     7 | __m512d foo(__m512d a, __m512d b)
>       |         ^~~
> during RTL pass: expand
> ./gcc.target/i386/avx10_1-26.c: In function ‘foo.avx10_1’:
> ./gcc.target/i386/avx10_1-26.c:10:1: internal compiler error: Segmentation
We recently tweaked the definition of avx10 and some options were deprecated,
which issueed additional errors. But the ICE is still the same as mentioned in
#c7.

One solution is GCC issue an error when there's ABI change in return
value.(originally it's gcc assert).

Reply via email to