If the expanded shift will become a libcall we should not pass
out of range shift amounts that did not exist in the original code.
If we're not making a libcall, an out of bounds shift amount would
produce poison, but the selects would block it from propagating. I
think. Though we didn't freeze the shift amount so I'm really not sure.
It's kind of ugly to detect that we're going to make a libcall at this
stage. We'd need to repeat code from ExpandIntRes_Shift and change the
interface of TLI.shouldExpandShift. For now I've taken the simple
approach and always added the mask. Many of the changed tests are
i128 on a 32-bit target which likely isn't exposed to C language code
other than _BitInt.
Fixes PR57988.
clang-format not found in user’s local PATH; not linting file.