[gcc(refs/vendors/ibm/heads/perf)] arc: Use accl_operand predicate for fma instructions.

Jiu Fu Guo guojiufu@gcc.gnu.org
Thu Mar 19 06:04:00 GMT 2020


https://gcc.gnu.org/g:9c3044a210d69d475f76e4e269752e21ca4d3ac0

commit 9c3044a210d69d475f76e4e269752e21ca4d3ac0
Author: Claudiu Zissulescu <claziss@gmail.com>
Date:   Tue Mar 3 10:34:50 2020 +0200

    arc: Use accl_operand predicate for fma instructions.
    
    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.

Diff:
---
 gcc/ChangeLog         | 5 +++++
 gcc/config/arc/fpu.md | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 383aa381129..25e90e9b5f4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/arc/fpu.md b/gcc/config/arc/fpu.md
index 6729795de54..14ebd865206 100644
--- a/gcc/config/arc/fpu.md
+++ b/gcc/config/arc/fpu.md
@@ -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))"
@@ -104,7 +104,7 @@
   [(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))"


More information about the Gcc-cvs mailing list