https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71012
--- Comment #4 from Arseny Solokha <asolokha at gmx dot com> --- int mw; int j3 (int cn) { const int l7 = 0; int wz; for (wz = l7; wz < l7 + 3; ++wz) while (mw != 0) { cn ^= -(wz == l7); ++mw; } return cn; } actually leads to ICE w/ -O2 (-O3, -Ofast) -ftree-vectorize all the way from gcc-8.0.0-alpha20170507 snapshot down to 4.9: % powerpc-e500v2-linux-gnuspe-gcc-8.0.0-alpha20170507 -O2 -ftree-vectorize -c ndknofut.c ndknofut.c: In function 'j3': ndknofut.c:12:12: internal compiler error: in expand_expr_real_2, at expr.c:9069 cn ^= -(wz == l7); ~~~^~~~~~~~~~~~~~ 0x8a1b2a expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-8.0.0_alpha20170507/work/gcc-8-20170507/gcc/expr.c:9069 0x74e4de expand_gimple_stmt_1 /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-8.0.0_alpha20170507/work/gcc-8-20170507/gcc/cfgexpand.c:3676 0x74e4de expand_gimple_stmt /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-8.0.0_alpha20170507/work/gcc-8-20170507/gcc/cfgexpand.c:3737 0x7510e7 expand_gimple_basic_block /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-8.0.0_alpha20170507/work/gcc-8-20170507/gcc/cfgexpand.c:5744 0x7576df execute /var/tmp/portage/cross-powerpc-e500v2-linux-gnuspe/gcc-8.0.0_alpha20170507/work/gcc-8-20170507/gcc/cfgexpand.c:6357