From 331fc6d84dc38acba2f660d84260f395a8e6cf29 Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab@gcc.gnu.org>
Date: Wed, 30 Dec 2009 23:03:46 +0000
Subject: [PATCH] re PR target/42516 ([m68k] Suboptimal halfword swap on
 coldfire)

PR target/42516
* config/m68k/m68k.md (rotlsi_16): New insn.

From-SVN: r155527
---
 gcc/ChangeLog           |  7 ++++++-
 gcc/config/m68k/m68k.md | 10 +++++++++-
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bd540df9bba8..7263ff84f185 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-12-30  Andreas Schwab  <schwab@linux-m68k.org>
+
+	PR target/42516
+	* config/m68k/m68k.md (rotlsi_16): New insn.
+
 2009-12-30  Joseph Myers  <joseph@codesourcery.com>
 
 	PR c/42439
@@ -8,7 +13,7 @@
 2009-12-30  Ira Rosen  <irar@il.ibm.com>
 
 	PR tree-optimization/41956
-	* tree-vect-slp.c (vect_supported_load_permutation_p): Add check that 
+	* tree-vect-slp.c (vect_supported_load_permutation_p): Add check that
 	the load indices differ.
 
 2009-12-30  Uros Bizjak  <ubizjak@gmail.com>
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 037bb372cc99..f89037f2e967 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -1,6 +1,6 @@
 ;;- Machine description for GNU compiler, Motorola 68000 Version
 ;;  Copyright (C) 1987, 1988, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001,
-;;  2002, 2003, 2004, 2005, 2006, 2007, 2008
+;;  2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 ;;  Free Software Foundation, Inc.
 
 ;; This file is part of GCC.
@@ -5368,6 +5368,14 @@
 
 ;; rotate instructions
 
+(define_insn "rotlsi_16"
+  [(set (match_operand:SI 0 "register_operand" "=d")
+	(rotate:SI (match_operand:SI 1 "register_operand" "0")
+		   (const_int 16)))]
+  ""
+  "swap %0"
+  [(set_attr "type" "shift")])
+
 (define_insn "rotlsi3"
   [(set (match_operand:SI 0 "register_operand" "=d")
 	(rotate:SI (match_operand:SI 1 "register_operand" "0")
-- 
GitLab