A recent change added UNSPEC to the CCMP patterns to stop combine optimizing the immediate in a rare case.
A recent change added UNSPEC to the CCMP patterns to stop combine optimizing the immediate in a rare case. This requires a fix to the CCMP cost calculation as the CCMP instruction with unspec is no longer recognized. Fix the ccmp_1.c test by adding -ffinite-math-only so FCCMPE is emitted on relational compares. 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com> gcc/ * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Remove CONST_INT_P check in CCMP cost calculation. gcc/testsuite/ * gcc.target/aarch64/ccmp_1.c: Fix test issue. From-SVN: r232930
This commit is contained in:
parent
e448880c20
commit
6dfeb7ceac
@ -1,3 +1,8 @@
|
||||
2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.c (aarch64_if_then_else_costs):
|
||||
Remove CONST_INT_P check in CCMP cost calculation.
|
||||
|
||||
2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.c (generic_vector_cost):
|
||||
|
@ -6010,7 +6010,7 @@ aarch64_if_then_else_costs (rtx op0, rtx op1, rtx op2, int *cost, bool speed)
|
||||
else if (GET_MODE_CLASS (GET_MODE (inner)) == MODE_CC)
|
||||
{
|
||||
/* CCMP. */
|
||||
if ((GET_CODE (op1) == COMPARE) && CONST_INT_P (op2))
|
||||
if (GET_CODE (op1) == COMPARE)
|
||||
{
|
||||
/* Increase cost of CCMP reg, 0, imm, CC to prefer CMP reg, 0. */
|
||||
if (XEXP (op1, 1) == const0_rtx)
|
||||
|
@ -1,3 +1,7 @@
|
||||
2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
|
||||
|
||||
* gcc.target/aarch64/ccmp_1.c: Fix test issue.
|
||||
|
||||
2016-01-28 David Edelsohn <dje.gcc@gmail.com>
|
||||
|
||||
* gcc.dg/pr65980.c: Skip on AIX.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2" } */
|
||||
/* { dg-options "-O2 -ffinite-math-only" } */
|
||||
|
||||
int
|
||||
f1 (int a)
|
||||
|
Loading…
Reference in New Issue
Block a user