diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 63f4cc0076c86f9609fefe8c899814847a9e97cc..12e698af61ab7d5d9fa6d2273d322e5bf56dfb3b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-12-07  Alan Modra  <amodra@gmail.com>
+
+	* config/rs6000/rs6000.md (bswapdi2_32bit): Remove ?? from r->r
+	alternative.
+
 2013-12-07  Ralf Corsépius  <ralf.corsepius@rtems.org>
 
 	* config.gcc (microblaze*-*-rtems*): Add TARGET_BIG_ENDIAN_DEFAULT.
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index efeb2c4dbf72845b6ad896ba455e40796ce3c321..2a29d82114877c810f0c4b418ebcc6213940248c 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -2544,7 +2544,7 @@
 }")
 
 (define_insn "bswapdi2_32bit"
-  [(set (match_operand:DI 0 "reg_or_mem_operand" "=&r,Z,??&r")
+  [(set (match_operand:DI 0 "reg_or_mem_operand" "=&r,Z,&r")
 	(bswap:DI (match_operand:DI 1 "reg_or_mem_operand" "Z,r,r")))
    (clobber (match_scratch:SI 2 "=&b,&b,X"))]
   "!TARGET_POWERPC64 && (REG_P (operands[0]) || REG_P (operands[1]))"