diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bae9ffa1089d19c59dba73fd1a64fb15bf43a6cf..349f8dcffa223ac5d668670250d470185bafe6ca 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-01-18  Roger Sayle  <roger@eyesopen.com>
+
+	* config/i386/i386.md (shift spliter): Fix a a typo in the splitter
+	for shifts where the source and destination registers are different.
+
 2006-01-18  Paul Brook  <paul@codesourcery.com>
 
 	Merge from csl-arm-branch.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 99b3acf537a2a02f751a9c4a2dc3bf8a5a1eb768..146ed096c6aac36f4f615ee6f5bf6b3b00307fee 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -10569,7 +10569,7 @@
   [(const_int 0)]
 {
   rtx pat, clob;
-  emit_move_insn (operands[1], operands[0]);
+  emit_move_insn (operands[0], operands[1]);
   pat = gen_rtx_SET (VOIDmode, operands[0],
 		     gen_rtx_ASHIFT (GET_MODE (operands[0]),
 				     operands[0], operands[2]));