The ref_vldX.c test from: http://gitorious.org/arm-neon-tests/arm-neon-tests fails when compiled with -O0 -marm: (insn 1817 1816 1818 2 /home/export/usr/gcc-linaro/H-x86_64-unknown-linux-gnu/bin/../lib/gcc/arm-linux-gnueabi/4.5.2/include/arm_neon.h:921 5 (parallel [ (set (reg:CI 303 [ D.14795 ]) (unspec:CI [ (mem:CI (reg:SI 3 r3 [1023]) [0 S48 A64]) (reg:CI 303 [ D.14795 ]) (unspec:V8HI [ (const_int 0 [0x0]) ] 191) ] 106)) (set (reg:SI 3 r3 [1023]) (plus:SI (reg:SI 3 r3 [1023]) (const_int 24 [0x18]))) ]) 1614 {neon_vld3qav8hi} (nil)) ref_vldX.c:157: confused by earlier errors, bailing out This is due to a bug in the ARM secondary_reload code.
Author: rsandifo Date: Wed Mar 30 15:00:44 2011 New Revision: 171730 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=171730 Log: gcc/ PR target/47551 * config/arm/arm.c (coproc_secondary_reload_class): Handle structure modes. Don't check neon_vector_mem_operand for vector or structure modes. gcc/testsuite/ PR target/47551 * gcc.target/arm/neon-modes-2.c: New test. Added: trunk/gcc/testsuite/gcc.target/arm/neon-modes-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/arm/arm.c trunk/gcc/testsuite/ChangeLog
Fixed on trunk.