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.

Reply via email to