https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86179
--- Comment #1 from David Binderman <dcb314 at hotmail dot com> --- For this C code c(int *d, char *g) { char *a, *b, *e; int f; for (; f; f -= 8) { *d++ = *e++ | (unsigned)*g++ << 8 | (unsigned)*b++ << 16 | (unsigned)*a++ << 24; *d++ = *e++ | (unsigned)*g++ << 8 | (unsigned)*b++ << 16 | (unsigned)*a++ << 24; } } compiled by recent gcc trunk and flag -O3, I get: $ ~/gcc/results/bin/gcc -c -w -O3 bug446.c during GIMPLE pass: vect bug446.c: In function ācā: bug446.c:1:1: internal compiler error: in get_later_stmt, at tree-vectorizer.h:1108 c(int *d, char *g) { ^ 0x7df578 get_later_stmt ../../trunk/gcc/tree-vectorizer.h:1105 0x7df578 vect_find_last_scalar_stmt_in_slp(_slp_tree*) ../../trunk/gcc/tree-vect-slp.c:1819 0x31aaaa6 vect_find_last_scalar_stmt_in_slp(_slp_tree*) ../../trunk/gcc/tree-vect-slp.c:1815 0x31aaaa6 vect_schedule_slp_instance $ ~/gcc/results/bin/gcc -v Using built-in specs. COLLECT_GCC=/home/dcb/gcc/results/bin/gcc COLLECT_LTO_WRAPPER=/home/dcb/gcc/results.261680.ubsan/libexec/gcc/x86_64-pc-linux-gnu/9.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../trunk/configure --prefix=/home/dcb/gcc/results.261680.ubsan --with-build-config=bootstrap-ubsan --disable-multilib --disable-werror --enable-checking=df,extra,fold,rtl,yes --enable-languages=c,c++,fortran Thread model: posix gcc version 9.0.0 20180616 (experimental) (GCC) $