https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86858
Bug ID: 86858 Summary: gcc ICE at -O3 in as_a, at is-a.h:197 Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: helloqirun at gmail dot com Target Milestone: --- It appears to be a recent regression. gcc-8.1 compiles at -O3. $ gcc-trunk -v Using built-in specs. COLLECT_GCC=gcc-trunk COLLECT_LTO_WRAPPER=/home/absozero/trunk/root-gcc/libexec/gcc/x86_64-pc-linux-gnu/9.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc/configure --prefix=/home/absozero/trunk/root-gcc --enable-languages=c,c++ --disable-werror --enable-multilib Thread model: posix gcc version 9.0.0 20180804 (experimental) [trunk revision 263307] (GCC) $ gcc-trunk -O3 abc.c during GIMPLE pass: vect abc.c: In function ‘h’: abc.c:3:6: internal compiler error: in as_a, at is-a.h:197 void h() { ^ 0x6e2143 gphi* as_a<gphi*, gimple>(gimple*) ../../gcc/gcc/is-a.h:197 0x6e2143 vect_is_simple_reduction ../../gcc/gcc/tree-vect-loop.c:2859 0xef63b2 vect_force_simple_reduction(_loop_vec_info*, _stmt_vec_info*, bool*, bool) ../../gcc/gcc/tree-vect-loop.c:3277 0xef63b2 vect_analyze_scalar_cycles_1 ../../gcc/gcc/tree-vect-loop.c:560 0xf01e0f vect_analyze_scalar_cycles ../../gcc/gcc/tree-vect-loop.c:648 0xf01e0f vect_analyze_loop_2 ../../gcc/gcc/tree-vect-loop.c:1855 0xf01e0f vect_analyze_loop(loop*, _loop_vec_info*, vec_info_shared*) ../../gcc/gcc/tree-vect-loop.c:2315 0xf1d8b0 try_vectorize_loop_1 ../../gcc/gcc/tree-vectorizer.c:867 0xf1e6c5 vectorize_loops() ../../gcc/gcc/tree-vectorizer.c:1069 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. $ cat abc.c int a, b, c, d; char(e)(char f, char g) { return f + g; } void h() { for (; c; ++c) { d = 0; for (; d != 8; d = e(d, 3)) { a = b && a; b = c; } } }