unsafe fn load(
        &mut self,
        builder: LLVMBuilderRef,
        pointer: LLVMValueRef,
    ) -> WeldResult<LLVMValueRef> {
        use self::llvm_sys::LLVMTypeKind;
        if LLVMGetTypeKind(LLVMTypeOf(pointer)) != LLVMTypeKind::LLVMPointerTypeKind {
            unreachable!()
        } else {
            let loaded = LLVMBuildLoad(builder, pointer, c_str!(""));
            if LLVMGetTypeKind(LLVMTypeOf(loaded)) == LLVMTypeKind::LLVMVectorTypeKind {
                LLVMSetAlignment(loaded, 1);
            }
            Ok(loaded)
        }
    }
Loads a value.

This method includes a check to ensure that `pointer` is actually a pointer: otherwise, the
LLVM API throws a segmentation fault.
weld/src/codegen/llvm2/mod.rs