]> gcc.gnu.org Git - gcc.git/commitdiff
re PR tree-optimization/55857 (ICE: verify_ssa failed)
authorRichard Biener <rguenther@suse.de>
Thu, 3 Jan 2013 12:34:34 +0000 (12:34 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 3 Jan 2013 12:34:34 +0000 (12:34 +0000)
2013-01-03  Richard Biener  <rguenther@suse.de>

PR tree-optimization/55857
* tree-vect-stmts.c (vectorizable_load): Do not setup
re-alignment for invariant loads.

* gcc.dg/vect/pr55857-1.c: New testcase.
* gcc.dg/vect/pr55857-2.c: Likewise.

From-SVN: r194850

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/pr55857-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/pr55857-2.c [new file with mode: 0644]
gcc/tree-vect-stmts.c

index da7cc295e71c5453f7da597f8901398b4bb78f06..0680d238db32c77a2a0df2dee66920ee55d48254 100644 (file)
@@ -1,3 +1,9 @@
+2013-01-03  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/55857
+       * tree-vect-stmts.c (vectorizable_load): Do not setup
+       re-alignment for invariant loads.
+
 2013-01-03  Richard Biener  <rguenther@suse.de>
 
        PR lto/55848
index 0b77bdd0ba843486a6e91e578a684680c1c0c905..3beff10c13f5e4534242c37333a94006dbb225df 100644 (file)
@@ -1,3 +1,9 @@
+2013-01-03  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/55857
+       * gcc.dg/vect/pr55857-1.c: New testcase.
+       * gcc.dg/vect/pr55857-2.c: Likewise.
+
 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
 
        PR rtl-optimization/55838
diff --git a/gcc/testsuite/gcc.dg/vect/pr55857-1.c b/gcc/testsuite/gcc.dg/vect/pr55857-1.c
new file mode 100644 (file)
index 0000000..ad41d30
--- /dev/null
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+
+void 
+foo (int *data, unsigned len, const int qlp_coeff[], int lp, int residual[])
+{
+  int i;
+  int sum;
+  for(i = 0; i < (int)len; i++)
+    {     
+      sum = 0;   
+      sum += qlp_coeff[1] * data[i-2];   
+      sum += qlp_coeff[0] * data[i-1];   
+      residual[i] = data[i] - (sum >> lp);
+    }    
+}
+
+/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/pr55857-2.c b/gcc/testsuite/gcc.dg/vect/pr55857-2.c
new file mode 100644 (file)
index 0000000..3bfff82
--- /dev/null
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+
+void foo (int *data, unsigned len, const int qlp_coeff[],
+         unsigned order, int lp, int residual[])
+{
+  int i;
+  int sum;
+  if(order == 2)
+    for(i = 0; i < (int)len; i++)
+      {
+       sum = 0;
+       sum += qlp_coeff[1] * data[i-2]; 
+       sum += qlp_coeff[0] * data[i-1];
+       residual[i] = data[i] - (sum >> lp);
+      }
+  else
+    for(i = 0; i < (int)len; i++)  
+      residual[i] = data[i] - ((qlp_coeff[0] * data[i-1]) >> lp);
+}
+
+/* { dg-final { cleanup-tree-dump "vect" } } */
index da9f12b5c8cb242d0396ad77e8ce9884dcfc5d52..dfbce969fdb2c5befdf552288624d20fe7034ae8 100644 (file)
@@ -4927,7 +4927,8 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
 
   if ((alignment_support_scheme == dr_explicit_realign_optimized
        || alignment_support_scheme == dr_explicit_realign)
-      && !compute_in_loop)
+      && !compute_in_loop
+      && !integer_zerop (DR_STEP (dr)))
     {
       msq = vect_setup_realignment (first_stmt, gsi, &realignment_token,
                                    alignment_support_scheme, NULL_TREE,
This page took 0.096107 seconds and 5 git commands to generate.