aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/aarch64/aarch64.c3
-rw-r--r--gcc/config/aarch64/aarch64.md2
3 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 021035c..641dc07 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+
+ * config/aarch64/aarch64.md (div<mode>3): Change check to TARGET_FLOAT.
+ * config/aarch64/aarch64.c (aarch64_emit_approx_div): Add early exit
+ for vector mode and !TARGET_SIMD.
+
2017-11-28 Jakub Jelinek <jakub@redhat.com>
* tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 5bd99f8..98221bb 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -8442,6 +8442,9 @@ aarch64_emit_approx_div (rtx quo, rtx num, rtx den)
|| !use_approx_division_p)
return false;
+ if (!TARGET_SIMD && VECTOR_MODE_P (mode))
+ return false;
+
/* Estimate the approximate reciprocal. */
rtx xrcp = gen_reg_rtx (mode);
emit_insn ((*get_recpe_type (mode)) (xrcp, den));
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index 423a335..83e4942 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -5093,7 +5093,7 @@
[(set (match_operand:GPF_F16 0 "register_operand")
(div:GPF_F16 (match_operand:GPF_F16 1 "general_operand")
(match_operand:GPF_F16 2 "register_operand")))]
- "TARGET_SIMD"
+ "TARGET_FLOAT"
{
if (aarch64_emit_approx_div (operands[0], operands[1], operands[2]))
DONE;