As suggested as follow-up in https://github.com/llvm/llvm-project/pull/72164, manage inbounds via VPRecipeWithIRFlags. Note that in some cases we can now preserve inbounds in a few more cases.
noundef
switch(zext/sext(X))
switch(X)
shr (shl X, Y), Y