Fixes mismatched predicate and constraint in xmpyu patterns.

The xmpyu instruction doesn't support multiplying a 32-bit const_int
with a floating-point register. So, I just removed these patterns.

Tested on hppa-unknown-linux-gnu. Committed to trunk.

Dave
---

hppa: Fix ICE caused by mismatched predicate and constraint in xmpyu patterns

2024-06-30  John David Anglin  <dang...@gcc.gnu.org>

gcc/ChangeLog:

        PR target/115691
        * config/pa/pa.md: Remove incorrect xmpyu patterns.

diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index b0f29a44bae..9e410f43052 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -5503,24 +5503,6 @@
   [(set_attr "type" "fpmuldbl")
    (set_attr "length" "4")])
 
-(define_insn ""
-  [(set (match_operand:DI 0 "register_operand" "=f")
-       (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f"))
-                (match_operand:DI 2 "uint32_operand" "f")))]
-  "TARGET_PA_11 && ! TARGET_SOFT_FLOAT && ! TARGET_SOFT_MULT && !TARGET_64BIT"
-  "xmpyu %1,%R2,%0"
-  [(set_attr "type" "fpmuldbl")
-   (set_attr "length" "4")])
-
-(define_insn ""
-  [(set (match_operand:DI 0 "register_operand" "=f")
-       (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f"))
-                (match_operand:DI 2 "uint32_operand" "f")))]
-  "TARGET_PA_11 && ! TARGET_SOFT_FLOAT && ! TARGET_SOFT_MULT && TARGET_64BIT"
-  "xmpyu %1,%2R,%0"
-  [(set_attr "type" "fpmuldbl")
-   (set_attr "length" "4")])
-
 (define_insn ""
   [(set (reg:SI 29) (mult:SI (reg:SI 26) (reg:SI 25)))
    (clobber (match_operand:SI 0 "register_operand" "=a"))

Attachment: signature.asc
Description: PGP signature

Reply via email to