diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0c95754dd823..df9f0dc09da9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-05-15  Bernd Schmidt  <bernds@codesourcery.com>
+
+	* ira.c (find_moveable_pseudos): Skip registers whose
+	DF_REG_EQ_USE_COUNT is nonzero.
+
 2012-05-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
 
 	* doc/md.texi (fma): Define to only be applicable for single
diff --git a/gcc/ira.c b/gcc/ira.c
index 4d1ff0efb3a0..c4e2aaac6753 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -3770,6 +3770,7 @@ find_moveable_pseudos (void)
 	    if (DF_REG_DEF_COUNT (regno) != 1
 		|| !DF_REF_INSN_INFO (def)
 		|| HARD_REGISTER_NUM_P (regno)
+		|| DF_REG_EQ_USE_COUNT (regno) > 0
 		|| (!INTEGRAL_MODE_P (mode) && !FLOAT_MODE_P (mode)))
 	      continue;
 	    def_insn = DF_REF_INSN (def);