https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116238
ktkachov at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[15 Regression] ICE |[12/13/14/15 Regression]
|building 526.blender_r on |ICE building 526.blender_r
|aarch64 SVE after |on aarch64 SVE after
|r15-1619-g3b9b8d6cfdf593 |r15-1619-g3b9b8d6cfdf593
Known to work| |9.5.0
Known to fail| |10.5.0
--- Comment #6 from ktkachov at gcc dot gnu.org ---
(In reply to Richard Sandiford from comment #5)
> Yeah, seems to be a latent bug in aarch64_hard_regno_caller_save_mode. A
> brute-force reproducer is:
>
> void foo();
> typedef unsigned char v2qi __attribute__((vector_size(2)));
> void f(v2qi *ptr)
> {
> v2qi x = *ptr;
> asm volatile ("" :: "w" (x));
> asm volatile ("" ::: "d8", "d9", "d10", "d11", "d12", "d13", "d14", "d15");
> foo();
> asm volatile ("" :: "w" (x));
> *ptr = x;
> }
Interesting. With this reproducer we get the ICE from GCC 10 onwards when
compiled with -O3 -march=armv8.2-a+sve -msve-vector-bits=128