This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix ICE in vectorizable_store (PR tree-optimization/45047)


Another fixup for the PR44284 backport to 4.5 branch, the test
was ICEing on s390-linux with -m31 -O3.

Fixed thusly, committed to branch.  Will commit the testcase to trunk too.

2010-07-23  Jakub Jelinek  <>
	    Richard Guenther  <>

	PR tree-optimization/45047
	* tree-vect-stmts.c (vectorizable_assignment): Return false
	if vectype_out is NULL for conversion statement.

	* gcc.c-torture/compile/pr45047.c: New test.

--- gcc/tree-vect-stmts.c	(revision 162467)
+++ gcc/tree-vect-stmts.c	(working copy)
@@ -1862,6 +1862,7 @@ vectorizable_assignment (gimple stmt, gi
     = get_vectype_for_scalar_type (TREE_TYPE (gimple_assign_lhs (stmt)));
   if (CONVERT_EXPR_CODE_P (code)
       && (!vectype_in
+	  || !vectype_out      
 	  || (TYPE_VECTOR_SUBPARTS (vectype_out)
 	      != TYPE_VECTOR_SUBPARTS (vectype_in))
 	  || (GET_MODE_SIZE (TYPE_MODE (vectype_out))
--- gcc/testsuite/gcc.c-torture/compile/pr45047.c	(revision 0)
+++ gcc/testsuite/gcc.c-torture/compile/pr45047.c	(revision 0)
@@ -0,0 +1,9 @@
+/* PR tree-optimization/45047 */
+foo (const unsigned short *w, char *x, int y, int z)
+  int i;
+  for (i = 0; i < y; i++)
+    x[i] = w[i] == z;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]