Do not allow make_compound_operation for vector mode
authorMartin Liska <mliska@suse.cz>
Thu, 28 Jul 2016 08:26:51 +0000 (10:26 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Thu, 28 Jul 2016 08:26:51 +0000 (08:26 +0000)
* g++.dg/vect/pr70944.cc: New test.
PR rtl-optimization/70944
* combine.c (make_compound_operation):
Do not allow make_compound_operation for vector mode

From-SVN: r238808

gcc/ChangeLog
gcc/combine.c
gcc/testsuite/ChangeLog

index d2e4ecb0eab475ac45d928694b697aab76981693..919f3f8bacb419eebaab2b0fae14027b362b6468 100644 (file)
@@ -1,3 +1,9 @@
+2016-07-28  Martin Liska  <mliska@suse.cz>
+
+       PR rtl-optimization/70944
+       * combine.c (make_compound_operation):
+       Do not allow make_compound_operation for vector mode
+
 2016-07-28  Kugan Vivekanandarajah  <kuganv@linaro.org>
 
        PR middle-end/71994
index 1becc3c719db1f5a33d0bdf405fd1cdf4284f632..93c17109cc2a2ffdd5f9a9d7a00d3d562928de7b 100644 (file)
@@ -7770,6 +7770,10 @@ make_compound_operation (rtx x, enum rtx_code in_code)
   rtx tem;
   const char *fmt;
 
+  /* PR rtl-optimization/70944.  */
+  if (VECTOR_MODE_P (mode))
+    return x;
+
   /* Select the code to be used in recursive calls.  Once we are inside an
      address, we stay there.  If we have a comparison, set to COMPARE,
      but once inside, go back to our default of SET.  */
index 204ec1c30545affe4d0cbf56b9fbd34cc323aaa4..4becb4afcd1470ef8df2c9de42a90a5cbc3393ca 100644 (file)
@@ -1,3 +1,7 @@
+2016-07-28  Martin Liska  <mliska@suse.cz>
+
+       * g++.dg/vect/pr70944.cc: New test.
+
 2016-07-28  Kugan Vivekanandarajah  <kuganv@linaro.org>
 
        PR middle-end/71994