Hi Ian, >You need to find out what is generating that insn. It looks like it can >not work on your hardware. You need to fix whatever is generating it to >do something different. Thanks for the pointer. If I compile the test case with "-O2 -fno-inline", there was no ICE related to subreg. Is "cse_local" phase related to -finline optimization. My initial patch has a hack for this at backend files by modifying the standard predicate definitions. (define_predicate "reg_operand" (match_operand 0 "register_operand") { if(GET_CODE(op) == SUBREG && (REGNO(SUBREG_REG(op)) > 11 && REGNO(SUBREG_REG(op)) < FIRST_PSEUDO_REGISTER) && SUBREG_BYTE(op) != 0) return 0; return 1; } ) Though this hack removes the ICEs related to subregs , it effects the output of applications compiled with the tool chain in 1 out of 100 test cases. Thanks and Regards, Sumanth G