summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/cell.md
diff options
context:
space:
mode:
authorsegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>2014-05-23 16:36:14 +0000
committersegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>2014-05-23 16:36:14 +0000
commit86c149d422c2af292cede60eef3f0c96985c872f (patch)
tree7a938a4ca036507d5033c698af6c5e27d74a8ef7 /gcc/config/rs6000/cell.md
parent18f0a24b677b550b7271d18959ba994a681af6a4 (diff)
downloadgcc-86c149d422c2af292cede60eef3f0c96985c872f.tar.gz
rs6000: Make all multiply instructions one type
This uses the attributes "size" and "dot" to specify the differences: imul3 -> mul size=8 imul2 -> mul size=16 imul -> mul size=32 lmul -> mul size=64 imul_compare -> mul size=32 dot=yes lmul_compare -> mul size=64 dot=yes git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210867 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rs6000/cell.md')
-rw-r--r--gcc/config/rs6000/cell.md15
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/config/rs6000/cell.md b/gcc/config/rs6000/cell.md
index d13dcb6b7cd..8c3c7413da3 100644
--- a/gcc/config/rs6000/cell.md
+++ b/gcc/config/rs6000/cell.md
@@ -212,25 +212,32 @@
;; mulld
(define_insn_reservation "cell-lmul" 15
- (and (eq_attr "type" "lmul")
+ (and (eq_attr "type" "mul")
+ (eq_attr "dot" "no")
+ (eq_attr "size" "64")
(eq_attr "cpu" "cell"))
"slot1,nonpipeline,nonpipeline*13")
;; mulld. is microcoded
(define_insn_reservation "cell-lmul-cmp" 22
- (and (eq_attr "type" "lmul_compare")
+ (and (eq_attr "type" "mul")
+ (eq_attr "dot" "yes")
+ (eq_attr "size" "64")
(eq_attr "cpu" "cell"))
"slot0+slot1,nonpipeline,nonpipeline*20")
;; mulli, 6 cycles
(define_insn_reservation "cell-imul23" 6
- (and (eq_attr "type" "imul2,imul3")
+ (and (eq_attr "type" "mul")
+ (eq_attr "size" "8,16")
(eq_attr "cpu" "cell"))
"slot1,nonpipeline,nonpipeline*4")
;; mullw, 9
(define_insn_reservation "cell-imul" 9
- (and (eq_attr "type" "imul")
+ (and (eq_attr "type" "mul")
+ (eq_attr "dot" "no")
+ (eq_attr "size" "32")
(eq_attr "cpu" "cell"))
"slot1,nonpipeline,nonpipeline*7")