arc: Use accl_operand predicate for fma instructions.
authorClaudiu Zissulescu <claziss@gmail.com>
Tue, 3 Mar 2020 08:34:50 +0000 (10:34 +0200)
committerClaudiu Zissulescu <claziss@gmail.com>
Tue, 3 Mar 2020 08:34:50 +0000 (10:34 +0200)
With the refurbish of ARC600' accumulator support, the mlo_operand
doesn't reflect the proper low accumulator register for the newer
ARCv2 accumulator register used by the fma instructions.  Hence,
replace it with accl_operand predicate.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (fmasf4_fpu): Use accl_operand predicate.
(fnmasf4_fpu): Likewise.

gcc/ChangeLog
gcc/config/arc/fpu.md

index 383aa3811294ed3b9077dc46f1229f36fe6321dd..25e90e9b5f4aebb7f7f3ba3e557969218077fa18 100644 (file)
@@ -1,3 +1,8 @@
+2020-03-03  Claudiu Zissulescu  <claziss@synopsys.com>
+
+       * config/arc/arc.md (fmasf4_fpu): Use accl_operand predicate.
+       (fnmasf4_fpu): Likewise.
+
 2020-03-03  Claudiu Zissulescu  <claziss@synopsys.com>
 
        * config/arc/arc.md (adddi3): Early expand the 64bit operation into
index 6729795de542bf720c6b2ae7d3883b462791d77b..14ebd865206e1b8ad42d16c3d541dd07dc74741a 100644 (file)
@@ -89,7 +89,7 @@
   [(set (match_operand:SF 0 "register_operand"          "=r,r,r,r,r")
        (fma:SF (match_operand:SF 1 "nonmemory_operand" "%0,r,0,r,F")
                (match_operand:SF 2 "nonmemory_operand"  "r,r,F,F,r")
-               (match_operand:SF 3 "mlo_operand" "")))]
+               (match_operand:SF 3 "accl_operand" "")))]
   "TARGET_FP_SP_FUSED
    && (register_operand (operands[1], SFmode)
        || register_operand (operands[2], SFmode))"
   [(set (match_operand:SF 0 "register_operand"                  "=r,r,r,r,r")
        (fma:SF (neg:SF (match_operand:SF 1 "nonmemory_operand" "%0,r,0,r,F"))
                (match_operand:SF 2 "nonmemory_operand"          "r,r,F,F,r")
-               (match_operand:SF 3 "mlo_operand" "")))]
+               (match_operand:SF 3 "accl_operand" "")))]
   "TARGET_FP_SP_FUSED
    && (register_operand (operands[1], SFmode)
        || register_operand (operands[2], SFmode))"