The following patch fixes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56184 The problem was in that reg equiv was not corrected for a split pseudo because of incorrect code for recognition of situation when a split pseudo was created. The patch was successfully bootstrapped and tested on x86/x86-64. Committed as rev. 196019. 2013-02-13 Vladimir Makarov PR target/56184 * ira.c (max_regno_before_ira): Move from ... (ira): ... here. (fix_reg_equiv_init): Use max_regno_before_ira instead of vec_safe_length. 2013-02-13 Vladimir Makarov PR target/56184 * gcc.target/arm/pr56184.C: New test.