diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 3 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.md | 2 |
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; |