Fix ix86 rtx costs for the pr30315 testcase (PR target/30315)
* config/i386/i386.c (ix86_rtx_costs): Handle care of a PLUS in a COMPARE, representing an overflow detection. From-SVN: r278654
This commit is contained in:
parent
74bc2a43ce
commit
cc2ccbcedd
@ -1,3 +1,8 @@
|
||||
2019-11-24 Bernd Schmidt <bernds_cb1@t-online.de>
|
||||
|
||||
* config/i386/i386.c (ix86_rtx_costs): Handle care of a PLUS in a
|
||||
COMPARE, representing an overflow detection.
|
||||
|
||||
2019-11-23 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
* cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT): Remove.
|
||||
|
@ -19501,6 +19501,15 @@ ix86_rtx_costs (rtx x, machine_mode mode, int outer_code_i, int opno,
|
||||
return true;
|
||||
}
|
||||
|
||||
if (GET_CODE (XEXP (x, 0)) == PLUS
|
||||
&& rtx_equal_p (XEXP (XEXP (x, 0), 0), XEXP (x, 1)))
|
||||
{
|
||||
/* This is an overflow detection, count it as a normal compare. */
|
||||
*total = rtx_cost (XEXP (x, 0), GET_MODE (XEXP (x, 0)),
|
||||
COMPARE, 0, speed);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* The embedded comparison operand is completely free. */
|
||||
if (!general_operand (XEXP (x, 0), GET_MODE (XEXP (x, 0)))
|
||||
&& XEXP (x, 1) == const0_rtx)
|
||||
|
Loading…
Reference in New Issue
Block a user