"cannot return too big constant" for tvm.const with type of uint64

example:
large_uint = tvm.const(2**64 - 1, ‘uint64’) # this is ok
print(large_uint) # got “(uint64)18446744073709551615”
print(large_uint.value) # failed with TVMError: Check failed: value[0] <= static_cast<uint64_t>(std: :numeric_limits<int64_t>::max()) (18446744073709551615 vs. 9223372036854775807) : cannot return too big constant

It seems that the value of UIntImm over int64_t range is not allowed, is it a bug?

To simplify the API, we use int64_t for passing all the integers, so we do need to fix all the constant within that range. This seems to be fine for our usecases

for example, in some arch we need uint64 type to set 64bit registers, if the value is limited, we may get trouble when setting the highest bit of register.