2012-10-02 Andrew Pinski <apinski@cavium.com>
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 Oct 2012 21:03:37 +0000 (21:03 +0000)
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 Oct 2012 21:03:37 +0000 (21:03 +0000)
* simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
Don't optimize a truncate of a mem if it is a vector mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192006 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/simplify-rtx.c

index a8ad41c..932f573 100644 (file)
@@ -1,3 +1,8 @@
+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.
+
 2012-10-02  Alexandre Oliva <aoliva@redhat.com>
 
        PR debug/54551
index c3e8a0a..acd4798 100644 (file)
@@ -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);