diff options
author | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-23 16:36:14 +0000 |
---|---|---|
committer | segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-05-23 16:36:14 +0000 |
commit | 86c149d422c2af292cede60eef3f0c96985c872f (patch) | |
tree | 7a938a4ca036507d5033c698af6c5e27d74a8ef7 /gcc/config/rs6000/cell.md | |
parent | 18f0a24b677b550b7271d18959ba994a681af6a4 (diff) | |
download | gcc-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.md | 15 |
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") |