[InstCombine] conditional sign-extend of high-bit-extract: 'or' pattern.
In this pattern, all the "magic" bits that we'd add are all
high sign bits, and in the value we'd be adding to they are all unset,
not unexpectedly, so we can have an or there:
https://rise4fun.com/Alive/ups
It is possible that haveNoCommonBitsSet() should be taught about this
pattern so that we never have an add variant, but the reasoning would
need to be recursive (because of that select), so i'm not really sure
that would be worth it just yet.
llvm-svn: 375378