https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85673
Bug ID: 85673 Summary: ICE in create_pre_exit, at mode-switching.c:451 Product: gcc Version: unknown Status: UNCONFIRMED Keywords: ice-checking, ice-on-invalid-code Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: x86_64-unknown-linux-gnu gcc-9.0.0-alpha20180429 snapshot (r259749), 8.1, 7.3, 6.3 all ICE when compiling the following snippet w/ -mavx -O2 -fgcse-sm -fschedule-insns -fselective-scheduling -fno-dce -fno-forward-propagate -fno-rerun-cse-after-loop -fno-tree-dse -fno-tree-ter --param selsched-max-lookahead=34: int fn, l0, mo; int kg (); int pm (int *i2, int a8) { int v8; a8 += kg (); v8 = a8 < fn; v8 = mo < v8; v8 = v8 < i2; v8 = mo < v8; mo += v8; a8 += l0; l0 += a8; for (fn = 0; fn < 1; ++fn) { } for (mo = 0; mo < 1; ++mo) { } return i2; } % x86_64-unknown-linux-gnu-gcc-9.0.0-alpha20180429 -mavx -O2 -fgcse-sm -fschedule-insns -fselective-scheduling -fno-dce -fno-forward-propagate -fno-rerun-cse-after-loop -fno-tree-dse -fno-tree-ter --param selsched-max-lookahead=34 -w -c cyrbs0xx.c during RTL pass: vzeroupper cyrbs0xx.c: In function 'pm': cyrbs0xx.c:29:1: internal compiler error: in create_pre_exit, at mode-switching.c:451 } ^ 0x7372b7 create_pre_exit /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180429/work/gcc-9-20180429/gcc/mode-switching.c:438 0x7372b7 optimize_mode_switching /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180429/work/gcc-9-20180429/gcc/mode-switching.c:534 0x7372b7 execute /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180429/work/gcc-9-20180429/gcc/mode-switching.c:892 0xfbc275 rest_of_handle_insert_vzeroupper /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180429/work/gcc-9-20180429/gcc/config/i386/i386.c:898 0xfbc275 execute /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180429/work/gcc-9-20180429/gcc/config/i386/i386.c:2518