https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88622
Andi Kleen <andi-gcc at firstfloor dot org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |x86_64-linux CC| |jakub at gcc dot gnu.org --- Comment #1 from Andi Kleen <andi-gcc at firstfloor dot org> --- Don't have a small reproducer, but on a large LTO build where a few files are built with -mpreferred-stack-boundary=4 with the others using the default I hit the following ICE in ix86_minimum_alignment 29610 /* Don't do dynamic stack realignment for long long objects with 29611 -mpreferred-stack-boundary=2. */ 29612 if ((mode == DImode || (type && TYPE_MODE (type) == DImode)) 29613 && (!type || !TYPE_USER_ALIGN (type)) 29614 && (!decl || !DECL_USER_ALIGN (decl))) 29615 { 29616 gcc_checking_assert (!TARGET_STV); 29617 return 32; 29618 } I suspect the right fix is to just remove the assert? Adding Jakub who added it originally in: commit 1f1475a7e758328a59db17aef5d1ccd81232ea95 Author: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Thu Feb 4 09:02:01 2016 +0000 PR target/69454 * config/i386/i386.c (convert_scalars_to_vector): Remove stack alignment fixes. (ix86_option_override_internal): Disable TARGET_STV if stack might not be aligned enough. (ix86_minimum_alignment): Assert that TARGET_STV is false. * gcc.target/i386/pr69454-1.c: New test. * gcc.target/i386/pr69454-2.c: New test.