tree-ssa-math-opts.c (bswap_replace): Fix SLOW_UNALIGNED_ACCESS test to only apply...
authorRichard Biener <rguenther@suse.de>
Fri, 27 Jun 2014 10:03:51 +0000 (10:03 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 27 Jun 2014 10:03:51 +0000 (10:03 +0000)
2014-06-27  Richard Biener  <rguenther@suse.de>

* tree-ssa-math-opts.c (bswap_replace): Fix
SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.

From-SVN: r212068

gcc/ChangeLog
gcc/tree-ssa-math-opts.c

index 9d96c2baf24085a0272f1c96fb6c61937ba94686..2ea692b8bb874d04eb4797ef7bd3fb21837e671d 100644 (file)
@@ -1,3 +1,8 @@
+2014-06-27  Richard Biener  <rguenther@suse.de>
+
+       * tree-ssa-math-opts.c (bswap_replace): Fix
+       SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
+
 2014-06-27  Martin Liska  <mliska@suse.cz>
 
        * gimple.h (gimple_location_safe): New function introduced.
index ca2b30dbc520f54dc7710c42a046762a0d4bf28f..65dfdec55b9542995e2da0af197f084201bdeb40 100644 (file)
@@ -2179,7 +2179,9 @@ bswap_replace (gimple cur_stmt, gimple_stmt_iterator gsi, gimple src_stmt,
       unsigned align;
 
       align = get_object_alignment (src);
-      if (bswap && SLOW_UNALIGNED_ACCESS (TYPE_MODE (load_type), align))
+      if (bswap
+         && align < GET_MODE_ALIGNMENT (TYPE_MODE (load_type))
+         && SLOW_UNALIGNED_ACCESS (TYPE_MODE (load_type), align))
        return false;
 
       gsi_move_before (&gsi, &gsi_ins);