Fixes some ICEs, and more importantly a miscompilation refered to in bugzilla #148558 . Index: gcc/ifcvt.c =================================================================== --- gcc/ifcvt.c 2006-02-27 14:48:30.475954001 +0100 +++ gcc/ifcvt.c 2006-02-27 14:48:40.881875685 +0100 @@ -1842,7 +1842,7 @@ || (SMALL_REGISTER_CLASSES && REGNO (x) < FIRST_PSEUDO_REGISTER)) { - if (no_new_pseudos) + if (no_new_pseudos || GET_MODE (x) == BLKmode) return FALSE; x = gen_reg_rtx (GET_MODE (GET_CODE (x) == STRICT_LOW_PART ? XEXP (x, 0) : x));