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