If gcc runs out of volatile VMX registers, he is going to save the non volatile registers. This fails if one of them is defined in -fcall-used-vXX (test case attaced)
-- Summary: -fcall-used-vXX turns into ICE Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc at breakpoint dot cc GCC build triplet: powerpc-unknown-linux-gnu GCC host triplet: powerpc-unknown-linux-gnu GCC target triplet: powerpc-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31552