Although the FDCMP (the double precision floating point compare instruction) is 
added to the compiler, it is not properly used via cstoredi pattern. Fix it.

OK to apply?
Claudidu

xxxx-xx-xx  Claudiu Zissulescu  <claz...@synopsys.com>

        * config/arc/arc.md (iterator SDF): Check TARGET_FP_DP_BASE.
        (cstoredi4): Use TARGET_HARD_FLOAT.
---
 gcc/config/arc/arc.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
index b592f25afce..bd44030b409 100644
--- a/gcc/config/arc/arc.md
+++ b/gcc/config/arc/arc.md
@@ -3749,7 +3749,7 @@ archs4x, archs4xd"
 })
 
 (define_mode_iterator SDF [(SF "TARGET_FP_SP_BASE || TARGET_OPTFPE")
-                          (DF "TARGET_OPTFPE")])
+                          (DF "TARGET_FP_DP_BASE || TARGET_OPTFPE")])
 
 (define_expand "cstore<mode>4"
   [(set (reg:CC CC_REG)
@@ -3759,7 +3759,7 @@ archs4x, archs4xd"
        (match_operator:SI 1 "comparison_operator" [(reg CC_REG)
                                                    (const_int 0)]))]
 
-  "TARGET_FP_SP_BASE || TARGET_OPTFPE"
+  "TARGET_HARD_FLOAT || TARGET_OPTFPE"
 {
   gcc_assert (XEXP (operands[1], 0) == operands[2]);
   gcc_assert (XEXP (operands[1], 1) == operands[3]);
-- 
2.23.0

Reply via email to