aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2001-11-21 02:18:58 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2001-11-20 21:18:58 -0500
commitd6f99ca42171413fc61e68495c7c55041969347a (patch)
tree16606287ed0b49b0802447ae08fc18574317b4af /gcc
parentb6458e8551d3753332c6e0e3942010953f0aa51d (diff)
downloadgcc-d6f99ca42171413fc61e68495c7c55041969347a.zip
gcc-d6f99ca42171413fc61e68495c7c55041969347a.tar.gz
gcc-d6f99ca42171413fc61e68495c7c55041969347a.tar.bz2
Add cmptf missed in patch.
From-SVN: r47230
Diffstat (limited to 'gcc')
-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 417b2f9..59dae4e 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 174d3e6..33c7d09 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.