* config/h8300/h8300.md (*twoshifts_l16_r1): New.
authorKazu Hirata <kazu@cs.umass.edu>
Mon, 6 Jan 2003 14:14:33 +0000 (14:14 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Mon, 6 Jan 2003 14:14:33 +0000 (14:14 +0000)
From-SVN: r60933

gcc/ChangeLog
gcc/config/h8300/h8300.md

index 51cee41..f3f9d6a 100644 (file)
@@ -1,3 +1,7 @@
+2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/h8300/h8300.md (*twoshifts_l16_r1): New.
+
 2003-01-06  Richard Sandiford  <rsandifo@redhat.com>
 
        * config/mips/mips.md (leadi): Use dla rather than la.
index be6bc0f..2f7619a 100644 (file)
              (clobber (scratch:QI))])]
   "")
 
+;; and:SI
+
+;; ((SImode) HImode) << 15
+
+(define_insn_and_split "*twoshifts_l16_r1"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+       (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "0")
+                          (const_int 15))
+               (const_int 2147450880)))]
+  "(TARGET_H8300H || TARGET_H8300S)"
+  "#"
+  "&& reload_completed"
+  [(parallel [(set (match_dup 0)
+                  (ashift:SI (match_dup 0)
+                             (const_int 16)))
+             (clobber (scratch:QI))])
+   (parallel [(set (match_dup 0)
+                  (lshiftrt:SI (match_dup 0)
+                               (const_int 1)))
+             (clobber (scratch:QI))])]
+  "")
+
 ;; plus:SI
 
 (define_insn "*addsi3_lshiftrt_16_zexthi"