InstCombine already performs a fold where `X == Y ? f(X) : Z` is transformed to `X == Y ? f(Y) : Z` if `f(Y)` simplifies. However, if `f(X)` only has one use, then we can always directly replace the use inside the instruction. To actually be profitable, limit it to the case where `Y` is a non-expr constant.

This could be further extended to replace uses further up a one-use instruction chain, but for now this only looks one level up.

Among other things, this also subsumes D94860.