[Bug target/97252] [10/11 Regression] arm: ICE compiling pure-code/pr94538-2.c with MVE since r10-7293-g3eff57aa
acoplan at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Mar 16 10:45:34 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97252
--- Comment #3 from Alex Coplan <acoplan at gcc dot gnu.org> ---
FWIW, for the related testcase (which we also ICE on):
typedef int __attribute((vector_size(16))) V;
V v;
void f() { v = (V){4095}; }
clang pushes the constant out to the constant pool:
$ clang -target arm ice.c -c -S -o - -O2 -march=armv8.1-m.main+mve -mpure-code
-mfloat-abi=hard
[...]
f:
.fnstart
@ %bb.0:
movw r0, :lower16:.LCP0_0
movw r1, :lower16:v
movt r0, :upper16:.LCP0_0
movt r1, :upper16:v
vldrw.u32 q0, [r0]
vstrw.32 q0, [r1]
bx lr
.Lfunc_end0:
.size f, .Lfunc_end0-f
.cantunwind
.fnend
@ -- End function
.type v,%object @ @v
.comm v,16,8
.type .LCP0_0,%object @ @.LCP0_0
.section .rodata,"a",%progbits
.p2align 4
.LCP0_0:
.long 4095 @ 0xfff
.long 0 @ 0x0
.long 0 @ 0x0
.long 0 @ 0x0
.size .LCP0_0, 16
I think we should do the same.
More information about the Gcc-bugs
mailing list