Why I64ArrayAttr is int64_t while I64Attr is uint64_t?

For example:

def Tosa_ClampOp : Tosa_Op<"clamp", [
    DeclareOpInterfaceMethods<InferShapedTypeOpInterface,
                              ["inferReturnTypeComponents"]>,
    Pure]> {

  let arguments = (ins
    Tosa_Tensor:$input,
    I64Attr:$min_int,
    I64Attr:$max_int,
    F32Attr:$min_fp,
    F32Attr:$max_fp
  );

It generates uint64_t getMinInt(), but int64_t getMinInt() is needed, as below:

if (inputElementType.isUnsignedInteger()) {
      int64_t minClamp = op.getMinInt();
      int64_t maxClamp = op.getMaxInt();
...
}

If use auto minClamp = op.getMinInt() would get wrong result.
Data in I64ArrayAttr is int64_t as default. Why I64Attr use uint64_t as default?