Now the comparison operator in APSInt would require the signedness of the operands are the same, otherwise the compiler would crash. It is really annoying that I found my code crash at A == B due to the mismatched signedness.
Then I found there is interface called compareValues which handled the mismatched signedness. So I think we should use compareValues to refactor the comparison operator. Both of them do comparison and they should have similar semantics.