From patchwork Fri Jul 23 17:03:02 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Fix ICE in vectorizable_store (PR tree-optimization/45047) Date: Fri, 23 Jul 2010 07:03:02 -0000 From: Jakub Jelinek X-Patchwork-Id: 59825 Message-Id: <20100723170302.GJ18378@tyan-ft48-01.lab.bos.redhat.com> To: gcc-patches@gcc.gnu.org Hi! 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. Jakub --- 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 */ + +void +foo (const unsigned short *w, char *x, int y, int z) +{ + int i; + for (i = 0; i < y; i++) + x[i] = w[i] == z; +}