https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118276
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #4) > The difference is one is zeroing out the padding while the other is not. The difference comes down to a trivial constructor vs not trivial. (at least internal to GCC). Basically with the defauled constructor (and since GCC can see those are all value initialized to 0), it is still considered a trivial constructor so it zeros out the whole struct including the padding bits/byte. Anyways the `rep stosq` vs using SSE is a target issue of expanding memset of 0 and it depends on the processor which is faster.