This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/46329] New: ICE on ARM for __attribute__ ((vector_size (8 * sizeof(int)))) operations
- From: "poenitz at htwm dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 6 Nov 2010 14:29:03 +0000
- Subject: [Bug target/46329] New: ICE on ARM for __attribute__ ((vector_size (8 * sizeof(int)))) operations
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46329
Summary: ICE on ARM for __attribute__ ((vector_size (8 *
sizeof(int)))) operations
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: poenitz@htwm.de
Running
/opt/arm-toolchain/bin/arm-none-linux-gnueabi-gcc -mfloat-abi=softfp -mfpu=neon
-mcpu=cortex-a8 -march=armv7-a -mtune=cortex-a8 -ffast-math
-ftree-vectorize -ftree-vectorizer-verbose=6 -fexpensive-optimizations
-fstrict-aliasing -Wstrict-aliasing -Wunsafe-loop-optimizations
-funsafe-loop-optimizations -funsafe-math-optimizations -save-temps
-fno-unroll-loops -fno-unroll-all-loops -fno-peel-loops -O3 -c testomap.c -o
testomap.o
on
void add_i_up(int n, int *aa, int *bb)
{
typedef int intN __attribute__ ((vector_size (8 * sizeof(int))));
intN *a = (intN *) aa;
intN *b = (intN *) bb;
do {
*a++ *= *b++;
n -= sizeof(intN) / sizeof(int);
} while (n);
}
yields
testomap.c:28:1: error: unable to find a register to spill in class
âGENERAL_REGSâ
testomap.c:28:1: error: this is the insn:
(insn 97 87 79 3 (set (reg:OI 248)
(const_int 0 [0])) testomap.c:25 751 {*neon_movoi}
(expr_list:REG_EQUAL (const_int 0 [0])
(nil)))
testomap.c:28:1: internal compiler error: in spill_failure, at reload1.c:2105
with r166390 | gccadmin | 2010-11-06 01:17:56 +0100 (Sat, 06 Nov 2010) | 1
line