aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2015-05-22 12:34:46 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2015-05-22 12:34:46 +0000
commit7ac5a14092e76fe71a3d8660a30079e35d2618f5 (patch)
tree246ba9aea3e91c1c4e992aadb3c6f0c3574c99cf
parentcaef4e579db9d9ab0cc7eba35e58b04e4ac65649 (diff)
downloadgcc-7ac5a14092e76fe71a3d8660a30079e35d2618f5.zip
gcc-7ac5a14092e76fe71a3d8660a30079e35d2618f5.tar.gz
gcc-7ac5a14092e76fe71a3d8660a30079e35d2618f5.tar.bz2
re PR middle-end/66251 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1484)
2015-05-22 Richard Biener <rguenther@suse.de> PR tree-optimization/66251 * tree-vect-stmts.c (vectorizable_conversion): Properly set STMT_VINFO_VEC_STMT even for the SLP case. * gfortran.fortran-torture/compile/pr66251.f90: New testcase. From-SVN: r223552
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.fortran-torture/compile/pr66251.f907
-rw-r--r--gcc/tree-vect-stmts.c12
4 files changed, 23 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a4bda82..ee48b8e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2015-05-22 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/66251
+ * tree-vect-stmts.c (vectorizable_conversion): Properly
+ set STMT_VINFO_VEC_STMT even for the SLP case.
+
2015-05-22 Marek Polacek <polacek@redhat.com>
* doc/extend.texi: Use @pxref instead of @xref.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 912dd15..6f795ad 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-05-22 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/66251
+ * gfortran.fortran-torture/compile/pr66251.f90: New testcase.
+
2015-05-22 Marek Polacek <polacek@redhat.com>
PR c/47043
diff --git a/gcc/testsuite/gfortran.fortran-torture/compile/pr66251.f90 b/gcc/testsuite/gfortran.fortran-torture/compile/pr66251.f90
new file mode 100644
index 0000000..f5b04bc
--- /dev/null
+++ b/gcc/testsuite/gfortran.fortran-torture/compile/pr66251.f90
@@ -0,0 +1,7 @@
+SUBROUTINE dbcsr_data_convert (n)
+ COMPLEX(KIND=4), DIMENSION(:), POINTER :: s_data_c
+ COMPLEX(KIND=8), DIMENSION(:), POINTER :: t_data_z
+ t_data_z(1:n) = CMPLX(s_data_c(1:n), KIND=8)
+ CALL foo()
+END SUBROUTINE dbcsr_data_convert
+
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 1f68ff5..1e7b135 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -3964,14 +3964,12 @@ vectorizable_conversion (gimple stmt, gimple_stmt_iterator *gsi,
if (slp_node)
SLP_TREE_VEC_STMTS (slp_node).quick_push (new_stmt);
+
+ if (!prev_stmt_info)
+ STMT_VINFO_VEC_STMT (stmt_info) = new_stmt;
else
- {
- if (!prev_stmt_info)
- STMT_VINFO_VEC_STMT (stmt_info) = new_stmt;
- else
- STMT_VINFO_RELATED_STMT (prev_stmt_info) = new_stmt;
- prev_stmt_info = vinfo_for_stmt (new_stmt);
- }
+ STMT_VINFO_RELATED_STMT (prev_stmt_info) = new_stmt;
+ prev_stmt_info = vinfo_for_stmt (new_stmt);
}
}