DImode references do not suffer a major performance hit for < 4-byte aligned access like the float types.
Bootstrap/regtest on powerpc64-linux with no new regressions. Ok for trunk? -Pat 2012-04-17 Pat Haugen <pthau...@us.ibm.com> * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.
Index: gcc/config/rs6000/rs6000.h =================================================================== --- gcc/config/rs6000/rs6000.h (revision 186389) +++ gcc/config/rs6000/rs6000.h (working copy) @@ -771,8 +771,7 @@ extern unsigned rs6000_pointer_size; #define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) \ (STRICT_ALIGNMENT \ || (((MODE) == SFmode || (MODE) == DFmode || (MODE) == TFmode \ - || (MODE) == SDmode || (MODE) == DDmode || (MODE) == TDmode \ - || (MODE) == DImode) \ + || (MODE) == SDmode || (MODE) == DDmode || (MODE) == TDmode) \ && (ALIGN) < 32) \ || (VECTOR_MODE_P ((MODE)) && (((int)(ALIGN)) < VECTOR_ALIGN (MODE))))