]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
arc: Remove mpy_dest_reg_operand predicate
authorClaudiu Zissulescu <claziss@gmail.com>
Tue, 17 Oct 2023 09:23:19 +0000 (12:23 +0300)
committerClaudiu Zissulescu <claziss@gmail.com>
Tue, 24 Oct 2023 12:47:31 +0000 (15:47 +0300)
The mpy_dest_reg_operand is just a wrapper for
register_operand. Remove it.

gcc/

* config/arc/arc.md (mulsi3_700): Update pattern.
(mulsi3_v2): Likewise.
* config/arc/predicates.md (mpy_dest_reg_operand): Remove it.

Signed-off-by: Claudiu Zissulescu <claziss@gmail.com>
gcc/config/arc/arc.md
gcc/config/arc/predicates.md

index 22af0bf47ddb6e151d19fd18d74dfe5c8faa7247..325e4f56b9bca61f4f36edcb7923a2a7628b203c 100644 (file)
@@ -2293,7 +2293,7 @@ archs4x, archs4xd"
 ; registers, since it cannot be the destination of a multi-cycle insn
 ; like MPY or MPYU.
 (define_insn "mulsi3_700"
- [(set (match_operand:SI 0 "mpy_dest_reg_operand"        "=r, r,r,  r,r")
+ [(set (match_operand:SI 0 "register_operand"            "=r, r,r,  r,r")
        (mult:SI (match_operand:SI 1 "register_operand"  "%0, r,0,  0,r")
                 (match_operand:SI 2 "nonmemory_operand" "rL,rL,I,Cal,Cal")))]
  "TARGET_ARC700_MPY"
@@ -2306,8 +2306,8 @@ archs4x, archs4xd"
 ; ARCv2 has no penalties between mpy and mpyu. So, we use mpy because of its
 ; short variant. LP_COUNT constraints are still valid.
 (define_insn "mulsi3_v2"
- [(set (match_operand:SI 0 "mpy_dest_reg_operand"        "=q,q, r, r,r,  r,  r")
-       (mult:SI (match_operand:SI 1 "register_operand"  "%0,q, 0, r,0,  0,  c")
+ [(set (match_operand:SI 0 "register_operand"            "=q,q, r, r,r,  r,  r")
+       (mult:SI (match_operand:SI 1 "register_operand"  "%0,q, 0, r,0,  0,  r")
                 (match_operand:SI 2 "nonmemory_operand"  "q,0,rL,rL,I,Cal,Cal")))]
  "TARGET_MULTI"
  "@
index e37d8844979a537610c1647d3381549cd107d059..e0aef86fd247a8c1ea514a84298e51f25f12f9ab 100644 (file)
   return register_operand (op, mode);
 })
 
-(define_predicate "mpy_dest_reg_operand"
-  (match_code "reg,subreg")
-{
-  return register_operand (op, mode);
-})
-
-
 ;; Returns 1 if OP is a symbol reference.
 (define_predicate "symbolic_operand"
   (match_code "symbol_ref, label_ref, const")