From 3fd269db216915329a3f016e4a7431a82ed564ef Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Fri, 27 Jun 2014 10:03:51 +0000 Subject: [PATCH] tree-ssa-math-opts.c (bswap_replace): Fix SLOW_UNALIGNED_ACCESS test to only apply to unaligned object. 2014-06-27 Richard Biener * tree-ssa-math-opts.c (bswap_replace): Fix SLOW_UNALIGNED_ACCESS test to only apply to unaligned object. From-SVN: r212068 --- gcc/ChangeLog | 5 +++++ gcc/tree-ssa-math-opts.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9d96c2baf240..2ea692b8bb87 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-06-27 Richard Biener + + * tree-ssa-math-opts.c (bswap_replace): Fix + SLOW_UNALIGNED_ACCESS test to only apply to unaligned object. + 2014-06-27 Martin Liska * gimple.h (gimple_location_safe): New function introduced. diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c index ca2b30dbc520..65dfdec55b95 100644 --- a/gcc/tree-ssa-math-opts.c +++ b/gcc/tree-ssa-math-opts.c @@ -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); -- 2.47.2