Why does LLVMConstInt take `unsigned long long`?

Why does LLVMConstInt take an unsigned integer instead of signed? Is it not meant to represent negative values or do I need to do something first before giving it a negative value?

/**
 * Obtain a constant value for an integer type.
 *
 * The returned value corresponds to a llvm::ConstantInt.
 *
 * @see llvm::ConstantInt::get()
 *
 * @param IntTy Integer type to obtain value of.
 * @param N The value the returned instance should refer to.
 * @param SignExtend Whether to sign extend the produced value.
 */
LLVMValueRef LLVMConstInt(LLVMTypeRef IntTy, unsigned long long N,
                          LLVMBool SignExtend);

LLVM IR types don’t have signed-ness, only the operations on them that differ between unsigned and signed.

Thanks, I must have missed this important detail. Just to make sure, if I want to pass a negative value like -100 to LLVMConstInt I need to pass 100 and then SignExtend = true?