This is caused by subregs not being allowed in addresses. The splitter generates something that is not recognized as a *lea_1_rex64 pattern. More on this at
http://gcc.gnu.org/ml/gcc-patches/2005-03/msg02072.html Paolo -- Summary: failure for pass.c on x86_64-pc-linux-gnu Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, patch Severity: normal Priority: P2 Component: rtl-optimization AssignedTo: bonzini at gcc dot gnu dot org ReportedBy: bonzini at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: x86_64-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20600