@@ -9094,16 +9094,6 @@ aarch64_select_cc_mode (RTX_CODE code, rtx x, rtx y)
&& rtx_equal_p (XEXP (x, 0), y))
return CC_Cmode;
- /* A test for unsigned overflow from an add with carry. */
- if ((mode_x == DImode || mode_x == TImode)
- && (code == LTU || code == GEU)
- && code_x == PLUS
- && CONST_SCALAR_INT_P (y)
- && (rtx_mode_t (y, mode_x)
- == (wi::shwi (1, mode_x)
- << (GET_MODE_BITSIZE (mode_x).to_constant () / 2))))
- return CC_ADCmode;
-
/* A test for signed overflow. */
if ((mode_x == DImode || mode_x == TImode)
&& code == NE
@@ -9232,15 +9222,6 @@ aarch64_get_condition_code_1 (machine_mode mode, enum rtx_code comp_code)
}
break;
- case E_CC_ADCmode:
- switch (comp_code)
- {
- case GEU: return AARCH64_CS;
- case LTU: return AARCH64_CC;
- default: return -1;
- }
- break;
-
case E_CC_Vmode:
switch (comp_code)
{
@@ -38,7 +38,6 @@ CC_MODE (CC_NZC); /* Only N, Z and C bits of condition flags are valid.
CC_MODE (CC_NZ); /* Only N and Z bits of condition flags are valid. */
CC_MODE (CC_Z); /* Only Z bit of condition flags is valid. */
CC_MODE (CC_C); /* C represents unsigned overflow of a simple addition. */
-CC_MODE (CC_ADC); /* Unsigned overflow from an ADC (add with carry). */
CC_MODE (CC_V); /* Only V bit of condition flags is valid. */
/* Half-precision floating point for __fp16. */
@@ -2079,7 +2079,7 @@
CODE_FOR_adddi3_compareC,
CODE_FOR_adddi3_compareC,
CODE_FOR_adddi3_carryin_cmp);
- aarch64_gen_unlikely_cbranch (GEU, CC_ADCmode, operands[3]);
+ aarch64_gen_unlikely_cbranch (LTU, CC_Cmode, operands[3]);
DONE;
})
@@ -388,7 +388,7 @@
machine_mode ccmode = GET_MODE (op0);
if (ccmode == CC_Cmode)
return GET_CODE (op) == LTU;
- if (ccmode == CC_ADCmode || ccmode == CCmode)
+ if (ccmode == CCmode)
return GET_CODE (op) == GEU;
return false;
})
@@ -406,7 +406,7 @@
machine_mode ccmode = GET_MODE (op0);
if (ccmode == CC_Cmode)
return GET_CODE (op) == GEU;
- if (ccmode == CC_ADCmode || ccmode == CCmode)
+ if (ccmode == CCmode)
return GET_CODE (op) == LTU;
return false;
})