===================================================================
@@ -2938,12 +2938,6 @@ visium_select_cc_mode (enum rtx_code cod
/* This is a btst, the result is in C instead of Z. */
return CCCmode;
- case CONST_INT:
- /* This is a degenerate case, typically an uninitialized variable. */
- gcc_assert (op0 == constm1_rtx);
-
- /* ... fall through ... */
-
case REG:
case AND:
case IOR:
@@ -2960,6 +2954,17 @@ visium_select_cc_mode (enum rtx_code cod
when applied to a comparison with zero. */
return CCmode;
+ /* ??? Cater to the junk RTXes sent by try_merge_compare. */
+ case ASM_OPERANDS:
+ case CALL:
+ case CONST_INT:
+ case LO_SUM:
+ case HIGH:
+ case MEM:
+ case UNSPEC:
+ case ZERO_EXTEND:
+ return CCmode;
+
default:
gcc_unreachable ();
}
===================================================================
@@ -729,6 +729,7 @@ try_eliminate_compare (struct comparison
if (try_merge_compare (cmp))
return true;
+ /* We must have found an interesting "clobber" preceding the compare. */
if (cmp->prev_clobber == NULL)
return false;