LLVM: fix tripping assertions

Packed structs were tripping an LLVM assertion due to calling
`LLVMConstZExt` from i16 to i16. Solved by using instead
`LLVMConstZExtOrBitCast`.

Unions were tripping an LLVM assertion due to a typo using the union
llvm type to construct an integer value rather than the tag type.
f6aaab9406Andrew Kelley committed on 3/1/2022, 9:58:37 PMparent1b19493
3 files changedLine totals unavailable