diff options
author | tnfchris <tnfchris@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-06-07 10:06:29 +0000 |
---|---|---|
committer | tnfchris <tnfchris@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-06-07 10:06:29 +0000 |
commit | 5c0b6f02e569c75eee631a0c7f1e04e739ec5ca9 (patch) | |
tree | f8e452b5601df1b8cd2a0216f7fd13699821ab75 /gcc/config/aarch64/aarch64.c | |
parent | 9603aab1e443e0f789c250093e4152db3fa7e801 (diff) | |
download | gcc-5c0b6f02e569c75eee631a0c7f1e04e739ec5ca9.tar.gz |
2017-06-07 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more expensive than udiv.
Remove floating point cases from mod.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248953 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/aarch64/aarch64.c')
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 5707e5317e2..bce490ff555 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -7544,17 +7544,13 @@ cost_plus: case UMOD: if (speed) { + /* Slighly prefer UMOD over SMOD. */ if (VECTOR_MODE_P (mode)) *cost += extra_cost->vect.alu; else if (GET_MODE_CLASS (mode) == MODE_INT) *cost += (extra_cost->mult[mode == DImode].add - + extra_cost->mult[mode == DImode].idiv); - else if (mode == DFmode) - *cost += (extra_cost->fp[1].mult - + extra_cost->fp[1].div); - else if (mode == SFmode) - *cost += (extra_cost->fp[0].mult - + extra_cost->fp[0].div); + + extra_cost->mult[mode == DImode].idiv + + (code == MOD ? 1 : 0)); } return false; /* All arguments need to be in registers. */ @@ -7568,7 +7564,9 @@ cost_plus: else if (GET_MODE_CLASS (mode) == MODE_INT) /* There is no integer SQRT, so only DIV and UDIV can get here. */ - *cost += extra_cost->mult[mode == DImode].idiv; + *cost += (extra_cost->mult[mode == DImode].idiv + /* Slighly prefer UDIV over SDIV. */ + + (code == DIV ? 1 : 0)); else *cost += extra_cost->fp[mode == DFmode].div; } |