These are versions of a function that regressed with: rGf2fbdf76d8d0 That particular problem occurs with an instcombine-simplifycfg-instcombine sequence, but we can show that it exists within instcombine only with other variations of the pattern.
(X - (X & Y)) --> (X & ~Y)
@llvm.umul.with.overflow