When trying to cast from a target supported vector type to a generic vector type of the same size - as happens in gcc.sg/simd-2.c for sh-elf -m4 - or vice versa, the compiler tries to emit a move between a register and a BLKmode value, and hence hits an ICE. The gcc.dg/simd-2.c failure for sh-elf -m4 is a regression introduced between 2004-07-21 and 2004-07-22; before, we used to use vector modes for generic SIMD support,whereas no we use BLKmode.
-- Summary: can't cast between generic vector types and target supported vector types Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P2 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: amylaar at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: targets with vector mode support for selected modes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23517