在 2024/1/16 下午2:20, Xi Ruoyao 写道:
On Tue, 2024-01-16 at 14:16 +0800, chenglulu wrote:

在 2024/1/16 下午1:34, Xi Ruoyao 写道:
Ping.

On Fri, 2023-12-15 at 20:56 +0800, Xi Ruoyao wrote:
We don't allow SImode in FCC, so constraint z is never really used
here.

gcc/ChangeLog:

        * config/loongarch/loongarch.md (movsi_internal): Remove
        constraint z.
---

Bootstrapped and regtested on loongarch64-linux-gnu.  Ok for trunk?

   gcc/config/loongarch/loongarch.md | 6 +++---
   1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/config/loongarch/loongarch.md 
b/gcc/config/loongarch/loongarch.md
index a5d0dcd65fe..404a663c1a6 100644
--- a/gcc/config/loongarch/loongarch.md
+++ b/gcc/config/loongarch/loongarch.md
@@ -2108,8 +2108,8 @@ (define_expand "movsi"
   })
  (define_insn_and_split "*movsi_internal"
-  [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,w,*f,f,*r,*m,*r,*z")
-       (match_operand:SI 1 "move_operand" "r,Yd,w,rJ,*r*J,m,*f,*f,*z,*r"))]
+  [(set (match_operand:SI 0 "nonimmediate_operand" "=r,r,r,w,*f,f,*r,*m")
+       (match_operand:SI 1 "move_operand" "r,Yd,w,rJ,*r*J,m,*f,*f"))]
     "(register_operand (operands[0], SImode)
       || reg_or_0_operand (operands[1], SImode))"
     { return loongarch_output_move (operands[0], operands[1]); }
@@ -2122,7 +2122,7 @@ (define_insn_and_split "*movsi_internal"
     DONE;
   }
     "
-  [(set_attr "move_type" 
"move,const,load,store,mgtf,fpload,mftg,fpstore,mftg,mgtf")
+  [(set_attr "move_type" "move,const,load,store,mgtf,fpload,mftg,fpstore")
      (set_attr "mode" "SI")])
Sorry, I have a question. If this place is removed, is movgr2fr in the
loongarch_output_move function no longer needed?
It's needed for moving SImode into FPR.  "z" is FCC_REGS, not FP_REGS.
I cannot see movgr2cf or movfr2cf in loongarch_output_move.

Well, I saw it wrong, I have no other questions.

Thanks!

Reply via email to