Counter-proposal to D46760.
I suppose, continuation of D44102.
If the second operand of udiv/urem is power-of-two,
instcombine will transform that into lshr/and,
and CVP does not handle them.
https://godbolt.org/g/hhT9bc
Do note that teaching CVP to only handle the lshr width
reduction is already sufficient to replace D46760,
since it reduces use count of zext,
thus instcombine is able to propagate it.
I have looked into teaching CVP about and handling,
and it will be more complicated.
minor: second operand