diff options
| author | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-11-28 18:02:46 +0000 |
|---|---|---|
| committer | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-11-28 18:02:46 +0000 |
| commit | d515f2bdbe91b0a7509f264ae9583f38b0832f26 (patch) | |
| tree | da7995218d0ef3c983fd57bb9f7dd38b07bd7d95 | |
| parent | 62c255eb58d634e2e6da168d5728e246ee9293d5 (diff) | |
| download | ppe42-gcc-d515f2bdbe91b0a7509f264ae9583f38b0832f26.tar.gz ppe42-gcc-d515f2bdbe91b0a7509f264ae9583f38b0832f26.zip | |
* config/h8300/h8300.md (6 new peephole2 patterns): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@59611 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/config/h8300/h8300.md | 124 |
2 files changed, 128 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a44b7f3fc09..7b0603f8110 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2002-11-28 Kazu Hirata <kazu@cs.umass.edu> + + * config/h8300/h8300.md (6 new peephole2 patterns): New. + 2002-11-28 Jakub Jelinek <jakub@redhat.com> * config.gcc (x86_64-*-linux*) [tmake_file]: Remove i386/t-crtstuff. diff --git a/gcc/config/h8300/h8300.md b/gcc/config/h8300/h8300.md index a260083cc5e..182e9f1a1fa 100644 --- a/gcc/config/h8300/h8300.md +++ b/gcc/config/h8300/h8300.md @@ -2330,3 +2330,127 @@ (label_ref (match_dup 1)) (pc)))] "") + +;; ----------------------------------------------------------------- +;; PEEPHOLE PATTERNS +;; ----------------------------------------------------------------- + +(define_peephole2 + [(parallel + [(set (match_operand:HI 0 "register_operand" "") + (lshiftrt:HI (match_dup 0) + (match_operand:HI 1 "const_int_operand" ""))) + (clobber (match_operand:HI 2 "" ""))]) + (set (match_dup 0) + (and:HI (match_dup 0) + (match_operand:HI 3 "const_int_operand" "")))] + "INTVAL (operands[3]) == (255 >> INTVAL (operands[1]))" + [(set (match_dup 0) + (and:HI (match_dup 0) + (const_int 255))) + (parallel + [(set (match_dup 0) + (lshiftrt:HI (match_dup 0) + (match_dup 1))) + (clobber (match_dup 2))])] + "") + +(define_peephole2 + [(parallel + [(set (match_operand:HI 0 "register_operand" "") + (ashift:HI (match_dup 0) + (match_operand:HI 1 "const_int_operand" ""))) + (clobber (match_operand:HI 2 "" ""))]) + (set (match_dup 0) + (and:HI (match_dup 0) + (match_operand:HI 3 "const_int_operand" "")))] + "INTVAL (operands[3]) == (255 << INTVAL (operands[1]))" + [(set (match_dup 0) + (and:HI (match_dup 0) + (const_int 255))) + (parallel + [(set (match_dup 0) + (ashift:HI (match_dup 0) + (match_dup 1))) + (clobber (match_dup 2))])] + "") + +(define_peephole2 + [(parallel + [(set (match_operand:SI 0 "register_operand" "") + (lshiftrt:SI (match_dup 0) + (match_operand:SI 1 "const_int_operand" ""))) + (clobber (match_operand:SI 2 "" ""))]) + (set (match_dup 0) + (and:SI (match_dup 0) + (match_operand:SI 3 "const_int_operand" "")))] + "INTVAL (operands[3]) == (255 >> INTVAL (operands[1]))" + [(set (match_dup 0) + (and:SI (match_dup 0) + (const_int 255))) + (parallel + [(set (match_dup 0) + (lshiftrt:SI (match_dup 0) + (match_dup 1))) + (clobber (match_dup 2))])] + "") + +(define_peephole2 + [(parallel + [(set (match_operand:SI 0 "register_operand" "") + (ashift:SI (match_dup 0) + (match_operand:SI 1 "const_int_operand" ""))) + (clobber (match_operand:SI 2 "" ""))]) + (set (match_dup 0) + (and:SI (match_dup 0) + (match_operand:SI 3 "const_int_operand" "")))] + "INTVAL (operands[3]) == (255 << INTVAL (operands[1]))" + [(set (match_dup 0) + (and:SI (match_dup 0) + (const_int 255))) + (parallel + [(set (match_dup 0) + (ashift:SI (match_dup 0) + (match_dup 1))) + (clobber (match_dup 2))])] + "") + +(define_peephole2 + [(parallel + [(set (match_operand:SI 0 "register_operand" "") + (lshiftrt:SI (match_dup 0) + (match_operand:SI 1 "const_int_operand" ""))) + (clobber (match_operand:SI 2 "" ""))]) + (set (match_dup 0) + (and:SI (match_dup 0) + (match_operand:SI 3 "const_int_operand" "")))] + "INTVAL (operands[3]) == (65535 >> INTVAL (operands[1]))" + [(set (match_dup 0) + (and:SI (match_dup 0) + (const_int 65535))) + (parallel + [(set (match_dup 0) + (lshiftrt:SI (match_dup 0) + (match_dup 1))) + (clobber (match_dup 2))])] + "") + +(define_peephole2 + [(parallel + [(set (match_operand:SI 0 "register_operand" "") + (ashift:SI (match_dup 0) + (match_operand:SI 1 "const_int_operand" ""))) + (clobber (match_operand:SI 2 "" ""))]) + (set (match_dup 0) + (and:SI (match_dup 0) + (match_operand:SI 3 "const_int_operand" "")))] + "INTVAL (operands[3]) == (65535 << INTVAL (operands[1]))" + [(set (match_dup 0) + (and:SI (match_dup 0) + (const_int 65535))) + (parallel + [(set (match_dup 0) + (ashift:SI (match_dup 0) + (match_dup 1))) + (clobber (match_dup 2))])] + "") |

