aboutsummaryrefslogtreecommitdiff
path: root/gcc/simplify-rtx.c
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@cavium.com>2012-10-02 21:03:37 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2012-10-02 14:03:37 -0700
commitfa607ddad04aa72a7b811d366680783237b8cafe (patch)
treeb9f0d6e93903ee4d20168c9841c8cb91e8491689 /gcc/simplify-rtx.c
parent0a59e5832e6febfd497966c0b0edfe948f34ff7a (diff)
downloadgcc-fa607ddad04aa72a7b811d366680783237b8cafe.zip
gcc-fa607ddad04aa72a7b811d366680783237b8cafe.tar.gz
gcc-fa607ddad04aa72a7b811d366680783237b8cafe.tar.bz2
simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>): Don't optimize a truncate of a mem if it is a vector mode.
2012-10-02 Andrew Pinski <apinski@cavium.com> * simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>): Don't optimize a truncate of a mem if it is a vector mode. From-SVN: r192006
Diffstat (limited to 'gcc/simplify-rtx.c')
-rw-r--r--gcc/simplify-rtx.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index c3e8a0a..acd4798 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -873,6 +873,7 @@ simplify_unary_operation_1 (enum rtx_code code, enum machine_mode mode, rtx op)
/* A truncate of a memory is just loading the low part of the memory
if we are not changing the meaning of the address. */
if (GET_CODE (op) == MEM
+ && !VECTOR_MODE_P (mode)
&& !MEM_VOLATILE_P (op)
&& !mode_dependent_address_p (XEXP (op, 0), MEM_ADDR_SPACE (op)))
return rtl_hooks.gen_lowpart_no_emit (mode, op);