Created attachment 23755 [details] Reduced testcase. Using a trunk (svn 171251) compiler, configured for ARMv7-a, I get the following ICE: gcc -marm -mfpu=neon -O2 -c lp723185.i lp723185.i: In function 'foo': lp723185.i:29:1: error: insn does not satisfy its constraints: (insn 30 79 31 5 (set (mem/s:DI (plus:SI (reg:SI 3 r3) (const_int -3 [0xfffffffffffffffd])) [4 unaligned_S_6->u64+0 S8 A64]) (reg:DI 4 r4 [146])) lp723185.i:25 626 {*arm_movdi_vfp} (nil)) lp723185.i:29:1: internal compiler error: in reload_cse_simplify_operands, at postreload.c:403 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. It's possible that this is the same as bug #42949, but I'm not qualified to judge.
Confirmed on trunk, r171212. Works on latest 4.5 (r171282). I don't think this is the same bug as PR42949 because that one has now ceased to occur - for me at least.
Author: cltang Date: Tue Apr 12 04:42:55 2011 New Revision: 172297 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=172297 Log: 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com> Richard Earnshaw <rearnsha@arm.com> PR target/48250 * config/arm/arm.c (arm_legitimize_reload_address): Update cases to use sign-magnitude offsets. Reject unsupported unaligned cases. Add detailed description in comments. * config/arm/arm.md (reload_outdf): Disable for ARM mode; change condition from TARGET_32BIT to TARGET_ARM. Modified: trunk/gcc/ChangeLog trunk/gcc/config/arm/arm.c trunk/gcc/config/arm/arm.md
Fixed on trunk . Needs backporting to 4.6 branch. Ramana
A backport to 4.6 shows the following failures - arm-sim: gcc.c-torture/execute/loop-ivopts-2.c compilation, -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions (internal compiler error) arm-sim: gcc.c-torture/execute/loop-ivopts-2.c compilation, -O3 -fomit-frame-pointer -funroll-loops (internal compiler error) arm-sim: gcc.c-torture/execute/loop-ivopts-2.c compilation, -O3 -fomit-frame-pointer (internal compiler error) arm-sim: gcc.c-torture/execute/loop-ivopts-2.c compilation, -O3 -g (internal compiler error) arm-sim: gcc.c-torture/execute/pr23135.c compilation, -O1 (internal compiler error) I'll dig further when I have a little more time ackport-test-armv7aneon/gcc3/gcc/ /home/ramana/cross-build/src/gcc-workarea-2/gcc.c-torture/execute/loop-ivopts-2.c gcc_tg.o -w -O3 -fomit-frame-pointer -DSTACK_SIZE=16384 -Wl,-wrap,exit -Wl,-wrap,_exit -Wl,-wrap,main -Wl,-wrap,abort -lm -o /home/ramana/cross-build/arm-none-linux-gnueabi/obj-gcc46-backport-test-armv7aneon/gcc3/gcc/testsuite/gcc2/loop-ivopts-2.x3 (timeout = 800) /home/ramana/cross-build/src/gcc-workarea-2/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c: In function ‘main’: /home/ramana/cross-build/src/gcc-workarea-2/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c:49:1: error: insn does not satisfy its constraints: (insn 123 122 67 6 (set (mem/s/c:V2SI (plus:SI (reg:SI 1 r1) (const_int -1016 [0xfffffffffffffc08])) [2 MEM[(unsigned int[288] *)&l + 1032B]+0 S8 A64]) (reg:V2SI 2 r2)) /home/ramana/cross-build/src/gcc-workarea-2/gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c:44 742 {*neon_movv2si} (nil))
I was not able to reproduce these ICEs, tried backporting to both mainline gcc-4_6-branch and a latest Linaro 4.6 pull.
Author: jye2 Date: Mon Sep 19 06:17:45 2011 New Revision: 178953 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=178953 Log: 2011-09-19 chengbin <bin.cheng@arm.com> Backport r174035 from mainline 2011-05-22 Tom de Vries <tom@codesourcery.com> PR middle-end/48689 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with CODE_CONTAINS_STRUCT (TS_COMMON). Backport r172297 from mainline 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com> Richard Earnshaw <rearnsha@arm.com> PR target/48250 * config/arm/arm.c (arm_legitimize_reload_address): Update cases to use sign-magnitude offsets. Reject unsupported unaligned cases. Add detailed description in comments. * config/arm/arm.md (reload_outdf): Disable for ARM mode; change condition from TARGET_32BIT to TARGET_ARM. Backport r171978 from mainline 2011-04-05 Tom de Vries <tom@codesourcery.com> PR target/43920 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing for size. Backport r171632 from mainline 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org> * builtins.c (expand_builtin_memset_args): Use gen_int_mode instead of GEN_INT. Backport r171379 from mainline 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com> PR target/46934 * config/arm/arm.md (casesi): Use the gen_int_mode() function to subtract lower bound instead of GEN_INT(). Backport r171251 from mainline 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com> * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test for barrier handlers. Backport r171096 from mainline 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com> PR target/43872 * config/arm/arm.c (arm_get_frame_offsets): Adjust early return condition with !cfun->calls_alloca. Modified: branches/ARM/embedded-4_6-branch/gcc/ChangeLog.arm branches/ARM/embedded-4_6-branch/gcc/builtins.c branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.c branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.h branches/ARM/embedded-4_6-branch/gcc/config/arm/arm.md branches/ARM/embedded-4_6-branch/gcc/config/arm/unwind-arm.c branches/ARM/embedded-4_6-branch/gcc/fold-const.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr40887.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr42575.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr43698.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/pr44788.c branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.target/arm/sync-1.c
Fixed on 4.7.0 - wont fix on 4.6.x