This is a follow up for http://reviews.llvm.org/D5620 .
This optimization tries one step further trying to detect cases where we can use a pivot to distinguish between the two case groups.
At the moment if the optimization detects that a default target is present in the switch it bails out, but it tries to see if that default can trigger or not.
I don't see any need for auto here..
for (ConstantInt *Case : Cases)
would be clearer, and it avoids making Case a reference to a pointer type, which seems unnecessary.