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?