https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101466
--- Comment #2 from cqwrteur <unlvsur at live dot com> --- The --enable-libstdcxx-verbose has side effects, not optimizing to vectorization code is correct, although .L12: mov ecx, OFFSET FLAT:.LC1 mov edx, OFFSET FLAT:.LC2 mov esi, 276 mov edi, OFFSET FLAT:.LC3 call std::__replacement_assert(char const*, int, char const*, char const*) .L13: mov ecx, OFFSET FLAT:.LC1 mov edx, OFFSET FLAT:.LC2 mov esi, 276 mov edi, OFFSET FLAT:.LC3 call std::__replacement_assert(char const*, int, char const*, char const*) may be merged. However, the __builtin_abort() case can be merged together without any issue I believe.