Happens for options -Ofast -march=core-avx2 For 176.gcc global.c: In function 'global_alloc': global.c:277:1: error: excess use operand for stmt global_alloc (file) ^ 1 if (1 != 0) global.c:277:1: internal compiler error: verify_ssa failed 0xb4c71c verify_ssa(bool) ../../gcc/tree-ssa.c:1096 0xabff64 verify_loop_closed_ssa(bool) ../../gcc/tree-ssa-loop-manip.c:601 0xac03a4 gimple_duplicate_loop_to_header_edge(loop*, edge_def*, unsigned int, simple_bitmap_def*, edge_def*, vec<edge_def*, va_heap, vl_ptr>*, int) ../../gcc/tree-ssa-loop-manip.c:772 0x669f50 loop_version(loop*, void*, basic_block_def**, unsigned int, unsigned int, unsigned int, bool) ../../gcc/cfgloopmanip.c:1714 0xb948dc vect_loop_versioning(_loop_vec_info*, unsigned int, bool) ../../gcc/tree-vect-loop-manip.c:2368 0xb83a10 vect_transform_loop(_loop_vec_info*) ../../gcc/tree-vect-loop.c:5784 0xba0ce9 vectorize_loops() ../../gcc/tree-vectorizer.c:473
Please provide a testcase.
Created attachment 31454 [details] Reduced testcase
Reduced testcase: /* PR tree-optimization/59523 */ /* { dg-do compile } */ /* { dg-options "-Ofast" } */ /* { dg-additional-options "-mavx2" { target { i?86-*-* x86_64-*-* } } } */ int * foo (int a, int *b, int *c) { int i, *r = __builtin_alloca (a * sizeof (int)); __builtin_memset (r, 0, a * sizeof (int)); for (i = 0; i < 64; i++) c[i] += b[i]; for (i = 0; i < a; i++) if (r[i] == 0) r[i] = 1; return r; }
Created attachment 31460 [details] gcc49-pr59523.patch Untested fix.
Author: jakub Date: Tue Dec 17 21:36:21 2013 New Revision: 206069 URL: http://gcc.gnu.org/viewcvs?rev=206069&root=gcc&view=rev Log: PR tree-optimization/59523 * tree-vectorizer.c (fold_loop_vectorized_call): Call update_stmt on updated stmts. * gcc.dg/pr59523.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr59523.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-vectorizer.c
Fixed.
Seems to cause PR59591