diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 140ff2741ef6..469a56208d50 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -1708,14 +1708,13 @@ typedef struct rs6000_args
   && LEGITIMATE_ADDRESS_INTEGER_P (XEXP (X, 1), 0)	\
   && (((MODE) != DFmode && (MODE) != DImode)		\
       || (TARGET_32BIT					\
-        ? LEGITIMATE_ADDRESS_INTEGER_P (XEXP (X, 1), 4) \
-        : ! (INTVAL (XEXP (X, 1)) & 3)))		\
+	  ? LEGITIMATE_ADDRESS_INTEGER_P (XEXP (X, 1), 4) \
+	  : ! (INTVAL (XEXP (X, 1)) & 3)))		\
   && ((MODE) != TImode					\
       || (TARGET_32BIT					\
-	  && LEGITIMATE_ADDRESS_INTEGER_P (XEXP (X, 1), 4)) \
-      || (TARGET_64BIT					\
-	  && ! (INTVAL (XEXP (X, 1)) & 3)		\
-	  && LEGITIMATE_ADDRESS_INTEGER_P (XEXP (X, 1), 8))))
+	  ? LEGITIMATE_ADDRESS_INTEGER_P (XEXP (X, 1), 12) \
+	  : (LEGITIMATE_ADDRESS_INTEGER_P (XEXP (X, 1), 8) \
+	     && ! (INTVAL (XEXP (X, 1)) & 3)))))
 
 #define LEGITIMATE_INDEXED_ADDRESS_P(X)		\
  (GET_CODE (X) == PLUS				\