https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70894
Bug ID: 70894
Summary: ICE when using neon intrinsic with mabi=apcs-gnu
Product: gcc
Version: 5.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: g.hoogewerf at gmail dot com
Target Milestone: ---
The following test case triggers an ICE on several versions of GCC, including
5.3.0 and 4.9.3.
void crashFunction(unsigned char val)
{
__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) val);
}
To trigger the ICE, the source should be compiled with:
arm-none-eabi-gcc -c neon.c -mfpu=neon -mfloat-abi=softfp -mabi=apcs-gnu
When running with -v -save-temps, the output is:
Using built-in specs.
COLLECT_GCC=./GccBuild/build/arm-none-eabi-newlib/tools/i686-pc-linux-gnu/arm-none-eabi/bin/arm-none-eabi-gcc
Target: arm-none-eabi
Configured with: /home/ghoogewerf/GccBuild/src/gcc/configure
--prefix=/home/ghoogewerf/GccBuild/build/arm-none-eabi-newlib/tools/i686-pc-linux-gnu/arm-none-eabi
--build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-eabi
--enable-languages=c,c++ --disable-libssp --disable-multilib --disable-nls
--disable-fixed-point --disable-decimal-float --disable-lto --with-newlib
--with-headers=/home/ghoogewerf/GccBuild/src/newlib/newlib/libc/include
Thread model: single
gcc version 5.3.0 (GCC)
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-mfpu=neon' '-mfloat-abi=softfp'
'-mabi=apcs-gnu'
/home/ghoogewerf/GccBuild/build/arm-none-eabi-newlib/tools/i686-pc-linux-gnu/arm-none-eabi/libexec/gcc/arm-none-eabi/5.3.0/cc1
-E -quiet -v -D__USES_INITFINI__ neon.c -mfpu=neon -mfloat-abi=softfp
-mabi=apcs-gnu -fpch-preprocess -o neon.i
#include "..." search starts here:
#include <...> search starts here:
/home/ghoogewerf/GccBuild/build/arm-none-eabi-newlib/tools/i686-pc-linux-gnu/arm-none-eabi/lib/gcc/arm-none-eabi/5.3.0/include
/home/ghoogewerf/GccBuild/build/arm-none-eabi-newlib/tools/i686-pc-linux-gnu/arm-none-eabi/lib/gcc/arm-none-eabi/5.3.0/include-fixed
/home/ghoogewerf/GccBuild/build/arm-none-eabi-newlib/tools/i686-pc-linux-gnu/arm-none-eabi/lib/gcc/arm-none-eabi/5.3.0/../../../../arm-none-eabi/sys-include
/home/ghoogewerf/GccBuild/build/arm-none-eabi-newlib/tools/i686-pc-linux-gnu/arm-none-eabi/lib/gcc/arm-none-eabi/5.3.0/../../../../arm-none-eabi/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-mfpu=neon' '-mfloat-abi=softfp'
'-mabi=apcs-gnu'
/home/ghoogewerf/GccBuild/build/arm-none-eabi-newlib/tools/i686-pc-linux-gnu/arm-none-eabi/libexec/gcc/arm-none-eabi/5.3.0/cc1
-fpreprocessed neon.i -quiet -dumpbase neon.c -mfpu=neon -mfloat-abi=softfp
-mabi=apcs-gnu -auxbase neon -version -o neon.s
GNU C11 (GCC) version 5.3.0 (arm-none-eabi)
compiled by GNU C version 5.3.0, GMP version 6.1.0, MPFR version 3.1.3,
MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C11 (GCC) version 5.3.0 (arm-none-eabi)
compiled by GNU C version 5.3.0, GMP version 6.1.0, MPFR version 3.1.3,
MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 46d53ae1749a0f498e12cc1c3bd3e85f
neon.c: In function 'crashFunction':
neon.c:4:5: internal compiler error: in copy_to_mode_reg, at explow.c:617
__builtin_neon_vdup_nv16qi ((__builtin_neon_qi) val);
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
Thanks,
G. Hoogewerf