summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000
diff options
context:
space:
mode:
authoraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-24 22:59:03 +0000
committeraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-24 22:59:03 +0000
commit53d878e84b60ef66db86efbe173ab8724728e332 (patch)
tree07dc528696bf072d15429bd3d2a3e657fcf9a913 /gcc/config/rs6000
parente48e460b72d58ee590e36c3e8854d5b79495cdc0 (diff)
downloadgcc-53d878e84b60ef66db86efbe173ab8724728e332.tar.gz
2004-02-24 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/spe.md (spe_fix_truncsfsi2): Delete. (spe_fixuns_truncsfsi2): Delete. * config/rs6000/rs6000.md (fix_truncsfsi2): Delete. (fixuns_truncsfsi2): Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78396 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000')
-rw-r--r--gcc/config/rs6000/rs6000.md14
-rw-r--r--gcc/config/rs6000/spe.md28
2 files changed, 15 insertions, 27 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index af0d781d148..b49a0acbc8a 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -4959,20 +4959,6 @@
"fsel %0,%1,%2,%3"
[(set_attr "type" "fp")])
-;; Conversions to and from floating-point.
-
-(define_expand "fixuns_truncsfsi2"
- [(set (match_operand:SI 0 "gpc_reg_operand" "")
- (unsigned_fix:SI (match_operand:SF 1 "gpc_reg_operand" "")))]
- "TARGET_HARD_FLOAT && !TARGET_FPRS"
- "")
-
-(define_expand "fix_truncsfsi2"
- [(set (match_operand:SI 0 "gpc_reg_operand" "")
- (fix:SI (match_operand:SF 1 "gpc_reg_operand" "")))]
- "TARGET_HARD_FLOAT && !TARGET_FPRS"
- "")
-
; For each of these conversions, there is a define_expand, a define_insn
; with a '#' template, and a define_split (with C code). The idea is
; to allow constant folding with the template of the define_insn,
diff --git a/gcc/config/rs6000/spe.md b/gcc/config/rs6000/spe.md
index d4a8896f300..07ee0987198 100644
--- a/gcc/config/rs6000/spe.md
+++ b/gcc/config/rs6000/spe.md
@@ -83,19 +83,21 @@
"efsctuiz %0,%1"
[(set_attr "type" "fp")])
-(define_insn "spe_fixuns_truncsfsi2"
- [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
- (unsigned_fix:SI (match_operand:SF 1 "gpc_reg_operand" "r")))]
- "TARGET_HARD_FLOAT && !TARGET_FPRS"
- "efsctui %0,%1"
- [(set_attr "type" "fp")])
-
-(define_insn "spe_fix_truncsfsi2"
- [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
- (fix:SI (match_operand:SF 1 "gpc_reg_operand" "r")))]
- "TARGET_HARD_FLOAT && !TARGET_FPRS"
- "efsctsi %0,%1"
- [(set_attr "type" "fp")])
+; These instructions aren't IEEE compliant. They get some corner cases
+; wrong. Don't enable them!
+;(define_insn "spe_fixuns_truncsfsi2"
+; [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+; (unsigned_fix:SI (match_operand:SF 1 "gpc_reg_operand" "r")))]
+; "TARGET_HARD_FLOAT && !TARGET_FPRS"
+; "efsctui %0,%1"
+; [(set_attr "type" "fp")])
+;
+;(define_insn "spe_fix_truncsfsi2"
+; [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+; (fix:SI (match_operand:SF 1 "gpc_reg_operand" "r")))]
+; "TARGET_HARD_FLOAT && !TARGET_FPRS"
+; "efsctsi %0,%1"
+; [(set_attr "type" "fp")])
(define_insn "spe_floatunssisf2"
[(set (match_operand:SF 0 "gpc_reg_operand" "=r")