This reuses decomposeBitTestICmp to decode the compare.
I'm assuming that pointer icmps will never match decomposeBitTestICmp because we shouldn't be doing relational comparisons on points, I think? So I removed the IntegerType check, but I could be wrong.
I've deferred the equality check on the type of compare vs the select until after the decomposeBitTestICmp call because I've considering putting an m_Trunc test inside of decomposeBitTestICmp so X won't always just be the CmpLHS.