https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102982
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- DSE is removing undefined behavior code which used to turn into a trap. That is "a % b" would have caused a trap so it was turned into __builtin_trap and now it is removed during DSE (well it is also removed after figuring out that the store to d is not needed). I don't know if this is a won't fix or not.