Created attachment 23794 preprocessed file
I have following error while building neon optimized code.
$ cat insn-unsat-constr.c #include <arm_neon.h>
void test(signed int *output) { int16_t * out = (int16_t *) output; { int16x4_t a = {0, }; int16x4_t b = {1, }; int16x4x4_t z; z.val[0] = vadd_s16(a, b); z.val[1] = vadd_s16(a, b); z.val[2] = vsub_s16(a, b); z.val[3] = vadd_s16(a, b);
vst4_lane_s16(&out[0]+0*4, z, 0); vst4_lane_s16(&out[8]+0*4, z, 1);
} }
$ arm-none-linux-gnueabi-gcc -mfloat-abi=softfp -mfpu=neon -O1 -o insn-unsat-constr.o -c insn-unsat-constr.c insn-unsat-constr.c: In function 'test': insn-unsat-constr.c:19:1: error: insn does not satisfy its constraints: (insn 40 38 26 2 /scratchbox/compilers/arm-linux-gnueabi-gcc4.5.1-2010.09-50/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/include/arm_neon.h:10277 (set (reg:OI 95 d16 [orig:152 __b ] [152]) (mem/s/c:OI (pre_dec:SI (reg/f:SI 3 r3 [151])) [0 __b+0 S32 A64])) 740 {*neon_movoi} (expr_list:REG_INC (reg/f:SI 3 r3 [151]) (nil))) insn-unsat-constr.c:19:1: internal compiler error: in reload_cse_simplify_operands, at postreload.c:403 Please submit a full bug report, with preprocessed source if appropriate.
$ arm-none-linux-gnueabi-gcc -v Using built-in specs. COLLECT_GCC=/scratchbox/compilers/arm-linux-gnueabi-gcc4.5.1-2010.09-50/bin/arm-none-linux-gnueabi-gcc COLLECT_LTO_WRAPPER=/scratchbox/compilers/arm-linux-gnueabi-gcc4.5.1-2010.09-50/bin/../libexec/gcc/arm-none-linux-gnueabi/4.5.1/lto-wrapper Target: arm-none-linux-gnueabi Configured with: /scratch/nathan/arm-lite/src/gcc-4.5-2010.09/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} -D__CS_SOURCERYGXX_MAJ__=2010 -D__CS_SOURCERYGXX_MIN__=9 -D__CS_SOURCERYGXX_REV__=50 %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2010.09-50' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/nathan/arm-lite/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/nathan/arm-lite/obj/host-libs-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/nathan/arm-lite/obj/host-libs-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpc=/scratch/nathan/arm-lite/obj/host-libs-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-ppl=/scratch/nathan/arm-lite/obj/host-libs-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/nathan/arm-lite/obj/host-libs-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-libelf=/scratch/nathan/arm-lite/obj/host-libs-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/nathan/arm-lite/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/nathan/arm-lite/install/arm-none-linux-gnueabi/bin Thread model: posix gcc version 4.5.1 (Sourcery G++ Lite 2010.09-50)
Created attachment 23794
preprocessed file
I have following error while building neon optimized code.
$ cat insn-unsat-constr.c
#include <arm_neon.h>
void test(signed int *output)
{
int16_t * out = (int16_t *) output;
{
int16x4_t a = {0, };
int16x4_t b = {1, };
int16x4x4_t z;
z.val[0] = vadd_s16(a, b);
z.val[1] = vadd_s16(a, b);
z.val[2] = vsub_s16(a, b);
z.val[3] = vadd_s16(a, b);
vst4_ lane_s16( &out[0] +0*4, z, 0); lane_s16( &out[8] +0*4, z, 1);
vst4_
}
}
$ arm-none- linux-gnueabi- gcc -mfloat-abi=softfp -mfpu=neon -O1 -o insn-unsat-constr.o -c insn-unsat-constr.c constr. c: In function 'test': constr. c:19:1: error: insn does not satisfy its constraints: compilers/ arm-linux- gnueabi- gcc4.5. 1-2010. 09-50/bin/ ../lib/ gcc/arm- none-linux- gnueabi/ 4.5.1/include/ arm_neon. h:10277 (set (reg:OI 95 d16 [orig:152 __b ] [152]) constr. c:19:1: internal compiler error: in reload_ cse_simplify_ operands, at postreload.c:403
insn-unsat-
insn-unsat-
(insn 40 38 26 2 /scratchbox/
(mem/s/c:OI (pre_dec:SI (reg/f:SI 3 r3 [151])) [0 __b+0 S32 A64])) 740 {*neon_movoi} (expr_list:REG_INC (reg/f:SI 3 r3 [151])
(nil)))
insn-unsat-
Please submit a full bug report,
with preprocessed source if appropriate.
$ arm-none- linux-gnueabi- gcc -v GCC=/scratchbox /compilers/ arm-linux- gnueabi- gcc4.5. 1-2010. 09-50/bin/ arm-none- linux-gnueabi- gcc LTO_WRAPPER= /scratchbox/ compilers/ arm-linux- gnueabi- gcc4.5. 1-2010. 09-50/bin/ ../libexec/ gcc/arm- none-linux- gnueabi/ 4.5.1/lto- wrapper linux-gnueabi nathan/ arm-lite/ src/gcc- 4.5-2010. 09/configure --build= i686-pc- linux-gnu --host= i686-pc- linux-gnu --target= arm-none- linux-gnueabi --enable-threads --disable- libmudflap --disable-libssp --disable- libstdcxx- pch --enable- extra-sgxxlite- multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with- specs=' %{save- temps: -fverbose-asm} %{funwind- tables| fno-unwind- tables| mabi=*| ffreestanding| nostdlib: ;:-funwind- tables} -D__CS_ SOURCERYGXX_ MAJ__=2010 -D__CS_ SOURCERYGXX_ MIN__=9 -D__CS_ SOURCERYGXX_ REV__=50 %{O2:%{ !fno-remove- local-statics: -fremove- local-statics} } %{O*:%{ O|O0|O1| O2|Os:; :%{!fno- remove- local-statics: -fremove- local-statics} }}' --enable- languages= c,c++ --enable-shared --enable-lto --enable- symvers= gnu --enable- __cxa_atexit --with- pkgversion= 'Sourcery G++ Lite 2010.09-50' --with-bugurl=https:/ /support. codesourcery. com/GNUToolchai n/ --disable-nls --prefix= /opt/codesource ry --with- sysroot= /opt/codesource ry/arm- none-linux- gnueabi/ libc --with- build-sysroot= /scratch/ nathan/ arm-lite/ install/ arm-none- linux-gnueabi/ libc --with- gmp=/scratch/ nathan/ arm-lite/ obj/host- libs-2010. 09-50-arm- none-linux- gnueabi- i686-pc- linux-gnu/ usr --with- mpfr=/scratch/ nathan/ arm-lite/ obj/host- libs-2010. 09-50-arm- none-linux- gnueabi- i686-pc- linux-gnu/ usr --with- mpc=/scratch/ nathan/ arm-lite/ obj/host- libs-2010. 09-50-arm- none-linux- gnueabi- i686-pc- linux-gnu/ usr --with- ppl=/scratch/ nathan/ arm-lite/ obj/host- libs-2010. 09-50-arm- none-linux- gnueabi- i686-pc- linux-gnu/ usr --with- host-libstdcxx= '-static- libgcc -Wl,-Bstatic, -lstdc+ +,-Bdynamic -lm' --with- cloog=/ scratch/ nathan/ arm-lite/ obj/host- libs-2010. 09-50-arm- none-linux- gnueabi- i686-pc- linux-gnu/ usr --with- libelf= /scratch/ nathan/ arm-lite/ obj/host- libs-2010. 09-50-arm- none-linux- gnueabi- i686-pc- linux-gnu/ usr --disable-libgomp --enable- poison- system- directories --with- build-time- tools=/ scratch/ nathan/ arm-lite/ install/ arm-none- linux-gnueabi/ bin --with- build-time- tools=/ scratch/ nathan/ arm-lite/ install/ arm-none- linux-gnueabi/ bin
Using built-in specs.
COLLECT_
COLLECT_
Target: arm-none-
Configured with: /scratch/
Thread model: posix
gcc version 4.5.1 (Sourcery G++ Lite 2010.09-50)