https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109780
--- Comment #33 from Uroš Bizjak <ubizjak at gmail dot com> --- FTR, ix86_find_max_used_stack_alignment increases alignment only when stack pointer or frame pointer are explicitly mentioned in : /* Find the maximum stack alignment. */ subrtx_iterator::array_type array; FOR_EACH_SUBRTX (iter, array, PATTERN (insn), ALL) if (MEM_P (*iter) && (reg_mentioned_p (stack_pointer_rtx, *iter) || reg_mentioned_p (frame_pointer_rtx, *iter))) { unsigned int alignment = MEM_ALIGN (*iter); if (alignment > stack_alignment) stack_alignment = alignment; This RTX does *not* trigger stack alignment increase in the above code: (insn 94 20 95 5 (set (mem/c:V16QI (reg/f:DI 1 dx [110]) [0 MEM <char[1:40]> [(void *)&k]+0 S16 A128]) (reg:V16QI 21 xmm1 [orig:122 MEM <char[1:40]> [(void *)&k] ] [122])) "pr109780.c":11:12 2015 {movv16qi_internal} (nil))