diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-01-06 12:41:32 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-01-06 12:41:32 -0700 |
commit | 19386a3e5a82a8b136855783a24ac033632aadc3 (patch) | |
tree | 0394d7471cc5ee0513450848adf0374ef648aaf5 /gcc | |
parent | 88e5c02973116a576ca1b36bbd2fb81eb837342f (diff) | |
download | gcc-19386a3e5a82a8b136855783a24ac033632aadc3.zip gcc-19386a3e5a82a8b136855783a24ac033632aadc3.tar.gz gcc-19386a3e5a82a8b136855783a24ac033632aadc3.tar.bz2 |
pa.md (fmpyadd peepholes): Cleanups suggested by Tege.
From-SVN: r3125
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/pa/pa.md | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index 2729682..e48ca3c 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -2651,9 +2651,19 @@ "* { if (GET_MODE (operands[0]) == DFmode) - return \"fmpyadd,dbl %1,%2,%0,%4,%3\"; + { + if (rtx_equal_p (operands[5], operands[3]) + return \"fmpyadd,dbl %1,%2,%0,%4,%3\"; + else + return \"fmpyadd,dbl %1,%2,%0,%5,%3\"; + } else - return \"fmpyadd,sgl %1,%2,%0,%4,%3\"; + { + if (rtx_equal_p (operands[5], operands[3]) + return \"fmpyadd,sgl %1,%2,%0,%4,%3\"; + else + return \"fmpyadd,sgl %1,%2,%0,%5,%3\"; + } }") @@ -2668,9 +2678,19 @@ "* { if (GET_MODE (operands[0]) == DFmode) - return \"fmpyadd,dbl %1,%2,%0,%4,%3\"; + { + if (rtx_equal_p (operands[3], operands[5])) + return \"fmpyadd,dbl %1,%2,%0,%4,%3\"; + else + return \"fmpyadd,dbl %1,%2,%0,%5,%3\"; + } else - return \"fmpyadd,sgl %1,%2,%0,%4,%3\"; + { + if (rtx_equal_p (operands[3], operands[5])) + return \"fmpyadd,sgl %1,%2,%0,%4,%3\"; + else + return \"fmpyadd,sgl %1,%2,%0,%5,%3\"; + } }") ;; Note fsub subtracts the second operand from the first while fmpysub |