]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR tree-optimization/32231 (Segfault in verify_ssa_name)
authorAndrew Pinski <andrew_pinski@playstation.sony.com>
Thu, 7 Jun 2007 02:12:31 +0000 (02:12 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Thu, 7 Jun 2007 02:12:31 +0000 (19:12 -0700)
2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR tree-opt/32231
        * tree-vect-transform.c (vectorizable_call): Call update_stmt
        after changing the right hand side of the assignment.

2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR tree-opt/32231
        * gcc.target/i386/vectorize4.c: New test.

From-SVN: r125521

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/vectorize4.c [new file with mode: 0644]
gcc/tree-vect-transform.c

index 44fef001437b1d0442bd423adc8d4a33ce9874f9..f95d01a072e36932b40088b2b7972b9d60a3c86a 100644 (file)
@@ -1,3 +1,9 @@
+2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR tree-opt/32231
+       * tree-vect-transform.c (vectorizable_call): Call update_stmt
+       after changing the right hand side of the assignment.
+
 2007-06-06  Eric Christopher  <echristo@apple.com>
 
        * config.gcc (i?86-*-darwin*): Remove arch parameter.
index d7cc977e505c98bcdfe86f16f455bf2c9453ac92..a1852f0cb08bd803bcaf683e06c8bcd095329715 100644 (file)
@@ -1,3 +1,8 @@
+2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR tree-opt/32231
+       * gcc.target/i386/vectorize4.c: New test.
+
 2007-06-06  Steve Ellcey  <sje@cup.hp.com>
 
        * gfortran.dg/integer_exponentiation_3.F90: Use approx. check.
diff --git a/gcc/testsuite/gcc.target/i386/vectorize4.c b/gcc/testsuite/gcc.target/i386/vectorize4.c
new file mode 100644 (file)
index 0000000..f3d605e
--- /dev/null
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target ilp32 } */
+/* { dg-options "-O2 -ffast-math -ftree-vectorize -msse2 --param ggc-min-expand=0 --param ggc-min-heapsize=0" } */
+/* This test, tests two thing, we vectorize square root and also we don't crash due to a GC issue.  */
+
+
+extern double sqrt (double __x);
+calc_freq (int *dest)
+{
+  float tmp_out[257];
+  int i;
+  for (i = 0; i < 256; i++)
+    dest[i] = sqrt (tmp_out[i]);
+}
+
+/* { dg-final { scan-assembler "sqrtpd" } } */
index 6108532064bdf03c3ec766c93e64831b4f010789..eff1ed7db7d3dd9e40ce18d4395a095609141b90 100644 (file)
@@ -1926,6 +1926,7 @@ vectorizable_call (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
      harmless.  */
   type = TREE_TYPE (scalar_dest);
   GIMPLE_STMT_OPERAND (stmt, 1) = fold_convert (type, integer_zero_node);
+  update_stmt (stmt);
 
   return true;
 }