summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-21 02:18:58 +0000
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-21 02:18:58 +0000
commitbcd7b7aecff114d18e3ae602217c5ee00205e49d (patch)
tree16606287ed0b49b0802447ae08fc18574317b4af
parent0491778eb8a730a7c66aa3c893dfeafb5f400783 (diff)
downloadppe42-gcc-bcd7b7aecff114d18e3ae602217c5ee00205e49d.tar.gz
ppe42-gcc-bcd7b7aecff114d18e3ae602217c5ee00205e49d.zip
Add cmptf missed in patch.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47230 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog2
-rw-r--r--gcc/config/rs6000/rs6000.md23
2 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 417b2f9d6b2..59dae4e7276 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -97,7 +97,7 @@ Tue Nov 20 11:56:12 2001 Douglas B. Rupp <rupp@gnat.com>
* rs6000.h: ... to here.
* rs6000.md (movtf, extenddftf2, extendsftf2, trunctfdf2,
trunctfsf2, floatditf2, floatsitf2, fix_trunctfdi2,
- fix_trunctfsi2, negtf2, abstf2, nabstf2): New patterns.
+ fix_trunctfsi2, negtf2, abstf2, nabstf2, cmptf): New patterns.
Tue Nov 20 06:41:38 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 174d3e6c170..33c7d09f2ea 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -9917,6 +9917,19 @@
DONE;
}")
+(define_expand "cmptf"
+ [(set (cc0) (compare (match_operand:DF 0 "gpc_reg_operand" "")
+ (match_operand:DF 1 "gpc_reg_operand" "")))]
+
+ "DEFAULT_ABI == ABI_AIX && TARGET_HARD_FLOAT && TARGET_LONG_DOUBLE_128"
+ "
+{
+ rs6000_compare_op0 = operands[0];
+ rs6000_compare_op1 = operands[1];
+ rs6000_compare_fp_p = 1;
+ DONE;
+}")
+
(define_expand "beq"
[(use (match_operand 0 "" ""))]
""
@@ -10226,6 +10239,16 @@
"TARGET_HARD_FLOAT"
"fcmpu %0,%1,%2"
[(set_attr "type" "fpcompare")])
+
+;; Only need to compare second words if first words equal
+(define_insn "*cmptf_internal1"
+ [(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
+ (compare:CCFP (match_operand:TF 1 "gpc_reg_operand" "f")
+ (match_operand:TF 2 "gpc_reg_operand" "f")))]
+ "DEFAULT_ABI == ABI_AIX && TARGET_HARD_FLOAT && TARGET_LONG_DOUBLE_128"
+ "fcmpu %0,%1,%2\;bne %0,%$+4\;fcmpu %0,%L1,%L2"
+ [(set_attr "type" "fpcompare")
+ (set_attr "length" "12")])
;; Now we have the scc insns. We can do some combinations because of the
;; way the machine works.
OpenPOWER on IntegriCloud