Preserve signed i1 semantics in sitofp lowering (#3918)
handleCastInstructions materialized the bool operand as unsigned 0/1 for
both uitofp and sitofp, so sitofp i1 true was miscompiled as 1.0 instead
of -1.0
Inspired by https://github.com/llvm/llvm-project/pull/209232
Original commit:
https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/f01fca75c728192