https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96722
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- On the CDDCE side, I'm afraid I have no idea what can be done. The pass works by not considering clobber stmts necessary, and when about to remove (all) clobbers as unnecessary, it instead attempts to keep them unless they refer to SSA_NAMEs that weren't processed. At that point, it has no idea if some clobber got turned from conditional into unconditional, or the more likely case that it is kept as is. So we'd need to remove (or somehow mark for guaranteed removal) the clobbers earlier if they were turned from conditional into unconditional.