https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109780
--- Comment #19 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Xi Ruoyao from comment #17) > (In reply to H.J. Lu from comment #16) > > Created attachment 55409 [details] > > A patch > > > > I am stilling trying to find a small testcase. > > The patch triggers an ICE building Spidermonkey 115b9 (it segfaults with GCC > trunk because of some unaligned vmovdqa): > > 0x93297b ix86_finalize_stack_frame_flags > ../../gcc/gcc/config/i386/i386.cc:8224 > 0x162064c ix86_expand_epilogue(int) > ../../gcc/gcc/config/i386/i386.cc:9405 > 0x1b2e27f gen_epilogue() > ../../gcc/gcc/config/i386/i386.md:17517 > 0x160a815 target_gen_epilogue > ../../gcc/gcc/config/i386/i386.md:17013 > 0xf15e86 make_epilogue_seq > ../../gcc/gcc/function.cc:5964 > 0xf15f8b thread_prologue_and_epilogue_insns() > ../../gcc/gcc/function.cc:6046 > 0xf166c2 rest_of_handle_thread_prologue_and_epilogue > ../../gcc/gcc/function.cc:6544 > 0xf166c2 execute > ../../gcc/gcc/function.cc:6625 > > The code at i386.cc:8224 reads: > > if (crtl->stack_realign_finalized) > { > /* After stack_realign_needed is finalized, we can't no longer > change it. */ > gcc_assert (crtl->stack_realign_needed == stack_realign); > return; > } > > I'm not sure if the assert should be dropped or it's more difficult. > > Or can we just force to use unaligned vector moves for block operations > until we can find a better solution? It's at least better than leaving the > vectorized block moving broken and forcing people trying to disable the > feature. Do you have a testcase?