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

Reply via email to