unsafe fn bool_to_i1(&self, builder: LLVMBuilderRef, v: LLVMValueRef) -> LLVMValueRef {
        let type_kind = LLVMGetTypeKind(LLVMTypeOf(v));
        let mut zero = self.bool(false);
        if type_kind == llvm_sys::LLVMTypeKind::LLVMVectorTypeKind {
            let mut zeroes = [zero; LLVM_VECTOR_WIDTH as usize];
            zero = LLVMConstVector(zeroes.as_mut_ptr(), zeroes.len() as u32);
        }
        LLVMBuildICmp(
            builder,
            llvm_sys::LLVMIntPredicate::LLVMIntNE,
            v,
            zero,
            c_str!(""),
        )
    }
Convert a boolean to an `i1`.

If the boolean is a vector, a vector of `i1` is produced.
weld/src/codegen/llvm2/mod.rs