http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58349
Bug ID: 58349 Summary: ARMv7: ICE in vect_determine_vectorization_factor, at tree-vect-loop.c:349 Product: gcc Version: 4.6.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: pascal.massimino at gmail dot com Created attachment 30759 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30759&action=edit preprocessed source to repro the ICE [Got an ICE on ARMv7, and a suggestion to file a bug for it. Here it goes.] The ICE disappeared when i changed the 'uint8_t' types to just 'int' in the offending code. The code is from the 'libwebp' open-source project: http://git.chromium.org/webm/libwebp.git Diagnostic: gcc -v -save-temps -O3 -DNDEBUG -DWEBP_HAVE_PNG -DWEBP_HAVE_JPEG -DWEBP_HAVE_TIFF -DWEBP_USE_THREAD -Wextra -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wdeclaration-after-statement -Wshadow -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 -Isrc/ -Wall -c src/dsp/upsampling.c -o src/dsp/upsampling.o Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.6/lto-wrapper Target: arm-linux-gnueabihf Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16 --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf Thread model: posix gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-O3' '-D' 'NDEBUG' '-D' 'WEBP_HAVE_PNG' '-D' 'WEBP_HAVE_JPEG' '-D' 'WEBP_HAVE_TIFF' '-D' 'WEBP_USE_THREAD' '-Wextra' '-Wold-style-definition' '-Wmissing-prototypes' '-Wmissing-declarations' '-Wdeclaration-after-statement' '-Wshadow' '-march=armv7-a' '-mfloat-abi=hard' '-mfpu=neon' '-mtune=cortex-a8' '-I' 'src/' '-Wall' '-c' '-o' 'src/dsp/upsampling.o' '-mthumb' /usr/lib/gcc/arm-linux-gnueabihf/4.6/cc1 -E -quiet -v -I src/ -imultilib . -imultiarch arm-linux-gnueabihf -D NDEBUG -D WEBP_HAVE_PNG -D WEBP_HAVE_JPEG -D WEBP_HAVE_TIFF -D WEBP_USE_THREAD src/dsp/upsampling.c -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 -mthumb -Wextra -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wdeclaration-after-statement -Wshadow -Wall -O3 -fpch-preprocess -fstack-protector -o upsampling.i ignoring nonexistent directory "/usr/local/include/arm-linux-gnueabihf" ignoring nonexistent directory "/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../../arm-linux-gnueabihf/include" #include "..." search starts here: #include <...> search starts here: src/ /usr/lib/gcc/arm-linux-gnueabihf/4.6/include /usr/local/include /usr/lib/gcc/arm-linux-gnueabihf/4.6/include-fixed /usr/include/arm-linux-gnueabihf /usr/include End of search list. COLLECT_GCC_OPTIONS='-v' '-save-temps' '-O3' '-D' 'NDEBUG' '-D' 'WEBP_HAVE_PNG' '-D' 'WEBP_HAVE_JPEG' '-D' 'WEBP_HAVE_TIFF' '-D' 'WEBP_USE_THREAD' '-Wextra' '-Wold-style-definition' '-Wmissing-prototypes' '-Wmissing-declarations' '-Wdeclaration-after-statement' '-Wshadow' '-march=armv7-a' '-mfloat-abi=hard' '-mfpu=neon' '-mtune=cortex-a8' '-I' 'src/' '-Wall' '-c' '-o' 'src/dsp/upsampling.o' '-mthumb' /usr/lib/gcc/arm-linux-gnueabihf/4.6/cc1 -fpreprocessed upsampling.i -quiet -dumpbase upsampling.c -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 -mthumb -auxbase-strip src/dsp/upsampling.o -O3 -Wextra -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wdeclaration-after-statement -Wshadow -Wall -version -fstack-protector -o upsampling.s GNU C (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (arm-linux-gnueabihf) compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=91 --param ggc-min-heapsize=115799 GNU C (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (arm-linux-gnueabihf) compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=91 --param ggc-min-heapsize=115799 Compiler executable checksum: ffcbc490dd19d9f3c1e5842c6cc7a10d src/dsp/upsampling.c: In function ‘Yuv444ToRgb565’: src/dsp/upsampling.c:223:13: internal compiler error: in vect_determine_vectorization_factor, at tree-vect-loop.c:349 Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.6/README.Bugs> for instructions. Preprocessed source stored into /tmp/ccGBzfRC.out file, please attach this to your bugreport.