Work around a LLVM bug

If I do something like

  %bit = lshr i256 %value, %offset

where %offset is 0 then I'll get the wrong answer from LLVM (I'll get
bit 128, not bit 0).  I've worked around this bug by checking for the
bad behavior at runtime and fixing it up, but I'll try and submit a
bug to LLVM in a bit.