Tested on hppa-unknown-linux-gnu and hppa64-hp-hpux11.11.  Committed
to all active branches.

Dave
---

hppa: Remove inner `fix:SF/DF` from fixed-point patterns

2024-11-13  John David Anglin  <dang...@gcc.gnu.org>

gcc/ChangeLog:

        PR target/117525
        * config/pa/pa.md (fix_truncsfsi2): Remove inner `fix:SF`.
        (fix_truncdfsi2, fix_truncsfdi2, fix_truncdfdi2,
        fixuns_truncsfsi2, fixuns_truncdfsi2, fixuns_truncsfdi2,
        fixuns_truncdfdi2): Likewise.

diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index bf59b7f601e..f3c6262230d 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -5026,7 +5026,7 @@
 
 (define_insn "fix_truncsfsi2"
   [(set (match_operand:SI 0 "register_operand" "=f")
-       (fix:SI (fix:SF (match_operand:SF 1 "register_operand" "f"))))]
+       (fix:SI (match_operand:SF 1 "register_operand" "f")))]
   "! TARGET_SOFT_FLOAT"
   "{fcnvfxt,sgl,sgl|fcnv,t,sgl,w} %1,%0"
   [(set_attr "type" "fpalu")
@@ -5034,7 +5034,7 @@
 
 (define_insn "fix_truncdfsi2"
   [(set (match_operand:SI 0 "register_operand" "=f")
-       (fix:SI (fix:DF (match_operand:DF 1 "register_operand" "f"))))]
+       (fix:SI (match_operand:DF 1 "register_operand" "f")))]
   "! TARGET_SOFT_FLOAT"
   "{fcnvfxt,dbl,sgl|fcnv,t,dbl,w} %1,%0"
   [(set_attr "type" "fpalu")
@@ -5042,7 +5042,7 @@
 
 (define_insn "fix_truncsfdi2"
   [(set (match_operand:DI 0 "register_operand" "=f")
-       (fix:DI (fix:SF (match_operand:SF 1 "register_operand" "f"))))]
+       (fix:DI (match_operand:SF 1 "register_operand" "f")))]
   "TARGET_PA_11 && ! TARGET_SOFT_FLOAT"
   "{fcnvfxt,sgl,dbl|fcnv,t,sgl,dw} %1,%0"
   [(set_attr "type" "fpalu")
@@ -5050,7 +5050,7 @@
 
 (define_insn "fix_truncdfdi2"
   [(set (match_operand:DI 0 "register_operand" "=f")
-       (fix:DI (fix:DF (match_operand:DF 1 "register_operand" "f"))))]
+       (fix:DI (match_operand:DF 1 "register_operand" "f")))]
   "TARGET_PA_11 && ! TARGET_SOFT_FLOAT"
   "{fcnvfxt,dbl,dbl|fcnv,t,dbl,dw} %1,%0"
   [(set_attr "type" "fpalu")
@@ -5090,7 +5090,7 @@
 
 (define_insn "fixuns_truncsfsi2"
   [(set (match_operand:SI 0 "register_operand" "=f")
-       (unsigned_fix:SI (fix:SF (match_operand:SF 1 "register_operand" "f"))))]
+       (unsigned_fix:SI (match_operand:SF 1 "register_operand" "f")))]
   "! TARGET_SOFT_FLOAT && TARGET_PA_20"
   "fcnv,t,sgl,uw %1,%0"
   [(set_attr "type" "fpalu")
@@ -5098,7 +5098,7 @@
 
 (define_insn "fixuns_truncdfsi2"
   [(set (match_operand:SI 0 "register_operand" "=f")
-       (unsigned_fix:SI (fix:DF (match_operand:DF 1 "register_operand" "f"))))]
+       (unsigned_fix:SI (match_operand:DF 1 "register_operand" "f")))]
   "! TARGET_SOFT_FLOAT && TARGET_PA_20"
   "fcnv,t,dbl,uw %1,%0"
   [(set_attr "type" "fpalu")
@@ -5106,7 +5106,7 @@
 
 (define_insn "fixuns_truncsfdi2"
   [(set (match_operand:DI 0 "register_operand" "=f")
-       (unsigned_fix:DI (fix:SF (match_operand:SF 1 "register_operand" "f"))))]
+       (unsigned_fix:DI (match_operand:SF 1 "register_operand" "f")))]
   "! TARGET_SOFT_FLOAT && TARGET_PA_20"
   "fcnv,t,sgl,udw %1,%0"
   [(set_attr "type" "fpalu")
@@ -5114,7 +5114,7 @@
 
 (define_insn "fixuns_truncdfdi2"
   [(set (match_operand:DI 0 "register_operand" "=f")
-       (unsigned_fix:DI (fix:DF (match_operand:DF 1 "register_operand" "f"))))]
+       (unsigned_fix:DI (match_operand:DF 1 "register_operand" "f")))]
   "! TARGET_SOFT_FLOAT && TARGET_PA_20"
   "fcnv,t,dbl,udw %1,%0"
   [(set_attr "type" "fpalu")

Attachment: signature.asc
Description: PGP signature

Reply via email to