native i128 support in custom backend causes: Assertion failed: getMinSignedBits() <= 64 && "Too many bits for int64_t"

I’m currently working on a custom backend that supports 128-bit integers natively. For eample,
mov r1, <some 128 bit int> or add r1, <some 128 bit int> are supported.

However, when lowering instruction with 128 bit immediate operands LLVM asserts in InstrEmitter::AddOperand when doing
MIB.addImm(C->getSExtValue()); as the imm does not fit into 64-bit.

The way I’m doing it currently is: