diff options
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index 9ba13694842..9880faa0454 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -5001,11 +5001,9 @@ simplify_set (x) /* If we are setting CC0 or if the source is a COMPARE, look for the use of the comparison result and try to simplify it unless we already have used undobuf.other_insn. */ - if ((GET_CODE (src) == COMPARE -#ifdef HAVE_cc0 - || dest == cc0_rtx -#endif - ) + if ((GET_MODE_CLASS (mode) == MODE_CC + || GET_CODE (src) == COMPARE + || CC0_P (dest)) && (cc_use = find_single_use (dest, subst_insn, &other_insn)) != 0 && (undobuf.other_insn == 0 || other_insn == undobuf.other_insn) && GET_RTX_CLASS (GET_CODE (*cc_use)) == '<' |