diff options
| author | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-21 02:18:58 +0000 |
|---|---|---|
| committer | dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-21 02:18:58 +0000 |
| commit | bcd7b7aecff114d18e3ae602217c5ee00205e49d (patch) | |
| tree | 16606287ed0b49b0802447ae08fc18574317b4af | |
| parent | 0491778eb8a730a7c66aa3c893dfeafb5f400783 (diff) | |
| download | ppe42-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/ChangeLog | 2 | ||||
| -rw-r--r-- | gcc/config/rs6000/rs6000.md | 23 |
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. |

