// The profile-based compliance content below is auto-generated by the script
// `tools/genspec.py` in https://git.mlplatform.org/tosa/specification.git
profileComplianceMap = {
    {"tosa.argmax",
     {{{Profile::pro_int}, {{i8T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, i32T}, {fp32T, i32T}}}}},
    {"tosa.avg_pool2d",
     {{{Profile::pro_int}, {{i8T, i8T, i8T, i32T, i8T}}},
      {{Profile::pro_fp},
       {{fp16T, fp16T, fp16T, fp16T, fp16T},
        {fp16T, fp16T, fp16T, fp32T, fp16T},
        {fp32T, fp32T, fp32T, fp32T, fp32T}}}}},
    {"tosa.conv2d",
     {{{Profile::pro_int}, {{i8T, i8T, i32T, i8T, i8T, i32T, i32T}}},
      {{Profile::pro_fp},
       {{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
        {fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
        {fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T}}}}},
    {"tosa.conv3d",
     {{{Profile::pro_int}, {{i8T, i8T, i32T, i8T, i8T, i32T, i32T}}},
      {{Profile::pro_fp},
       {{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
        {fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
        {fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T}}}}},
    {"tosa.depthwise_conv2d",
     {{{Profile::pro_int}, {{i8T, i8T, i32T, i8T, i8T, i32T, i32T}}},
      {{Profile::pro_fp},
       {{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
        {fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
        {fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T}}}}},
    {"tosa.matmul",
     {{{Profile::pro_int}, {{i8T, i8T, i8T, i8T, i32T}}},
      {{Profile::pro_fp},
       {{fp16T, fp16T, fp16T, fp16T, fp16T},
        {fp16T, fp16T, fp16T, fp16T, fp32T},
        {fp32T, fp32T, fp32T, fp32T, fp32T}}}}},
    {"tosa.max_pool2d",
     {{{Profile::pro_int}, {{i8T, i8T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.transpose_conv2d",
     {{{Profile::pro_int}, {{i8T, i8T, i32T, i8T, i8T, i32T, i32T}}},
      {{Profile::pro_fp},
       {{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
        {fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
        {fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T}}}}},
    {"tosa.clamp",
     {{{Profile::pro_int}, {{i8T, i8T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.erf", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.sigmoid", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.tanh", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.add",
     {{{Profile::pro_int, Profile::pro_fp}, {{i32T, i32T, i32T}}, anyOf},
      {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
    {"tosa.arithmetic_right_shift",
     {{{Profile::pro_int},
       {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}}}}},
    {"tosa.bitwise_and",
     {{{Profile::pro_int},
       {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}}}}},
    {"tosa.bitwise_or",
     {{{Profile::pro_int},
       {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}}}}},
    {"tosa.bitwise_xor",
     {{{Profile::pro_int},
       {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}}}}},
    {"tosa.intdiv",
     {{{Profile::pro_int, Profile::pro_fp}, {{i32T, i32T, i32T}}, anyOf}}},
    {"tosa.logical_and",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT, boolT}}, anyOf}}},
    {"tosa.logical_left_shift",
     {{{Profile::pro_int, Profile::pro_fp},
       {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}},
       anyOf}}},
    {"tosa.logical_right_shift",
     {{{Profile::pro_int, Profile::pro_fp},
       {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}},
       anyOf}}},
    {"tosa.logical_or",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT, boolT}}, anyOf}}},
    {"tosa.logical_xor",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT, boolT}}, anyOf}}},
    {"tosa.maximum",
     {{{Profile::pro_int}, {{i32T, i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
    {"tosa.minimum",
     {{{Profile::pro_int}, {{i32T, i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
    {"tosa.mul",
     {{{Profile::pro_int}, {{i8T, i8T, i32T}, {i16T, i16T, i32T}}},
      {{Profile::pro_int, Profile::pro_fp}, {{i32T, i32T, i32T}}, anyOf},
      {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
    {"tosa.pow",
     {{{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
    {"tosa.sub",
     {{{Profile::pro_int, Profile::pro_fp}, {{i32T, i32T, i32T}}, anyOf},
      {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
    {"tosa.table", {{{Profile::pro_int}, {{i8T, i8T, i8T}}}}},
    {"tosa.abs",
     {{{Profile::pro_int}, {{i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.bitwise_not",
     {{{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}}}},
    {"tosa.ceil", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.clz", {{{Profile::pro_int}, {{i32T, i32T}}}}},
    {"tosa.cos", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.exp", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.floor", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.log", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.logical_not",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf}}},
    {"tosa.negate",
     {{{Profile::pro_int},
       {{i8T, i8T, i8T, i8T},
        {i16T, i16T, i16T, i16T},
        {i32T, i32T, i32T, i32T}}},
      {{Profile::pro_fp},
       {{fp16T, fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T, fp32T}}}}},
    {"tosa.reciprocal",
     {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.rsqrt", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.sin", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.select",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT, boolT}}, anyOf},
      {{Profile::pro_int},
       {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
    {"tosa.equal",
     {{{Profile::pro_int}, {{i32T, i32T, boolT}}},
      {{Profile::pro_fp}, {{fp16T, fp16T, boolT}, {fp32T, fp32T, boolT}}}}},
    {"tosa.greater",
     {{{Profile::pro_int}, {{i32T, i32T, boolT}}},
      {{Profile::pro_fp}, {{fp16T, fp16T, boolT}, {fp32T, fp32T, boolT}}}}},
    {"tosa.greater_equal",
     {{{Profile::pro_int}, {{i32T, i32T, boolT}}},
      {{Profile::pro_fp}, {{fp16T, fp16T, boolT}, {fp32T, fp32T, boolT}}}}},
    {"tosa.reduce_all",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf}}},
    {"tosa.reduce_any",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf}}},
    {"tosa.reduce_max",
     {{{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.reduce_min",
     {{{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.reduce_product",
     {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.reduce_sum",
     {{{Profile::pro_int}, {{i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.concat",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf},
      {{Profile::pro_int}, {{i8T, i8T}, {i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.pad",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT, boolT}}, anyOf},
      {{Profile::pro_int},
       {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
    {"tosa.reshape",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf},
      {{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.reverse",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf},
      {{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.slice",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf},
      {{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.tile",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf},
      {{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.transpose",
     {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf},
      {{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.gather",
     {{{Profile::pro_int},
       {{i8T, i32T, i8T}, {i16T, i32T, i16T}, {i32T, i32T, i32T}}},
      {{Profile::pro_fp}, {{fp16T, i32T, fp16T}, {fp32T, i32T, fp32T}}}}},
    {"tosa.scatter",
     {{{Profile::pro_int},
       {{i8T, i32T, i8T, i8T},
        {i16T, i32T, i16T, i16T},
        {i32T, i32T, i32T, i32T}}},
      {{Profile::pro_fp},
       {{fp16T, i32T, fp16T, fp16T}, {fp32T, i32T, fp32T, fp32T}}}}},
    {"tosa.resize",
     {{{Profile::pro_int}, {{i8T, i32T}, {i8T, i8T}}},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.cast",
     {{{Profile::pro_int},
       {{boolT, i8T},
        {boolT, i16T},
        {boolT, i32T},
        {i8T, boolT},
        {i8T, i16T},
        {i8T, i32T},
        {i16T, boolT},
        {i16T, i8T},
        {i16T, i32T},
        {i32T, boolT},
        {i32T, i8T},
        {i32T, i16T}}},
      {{Profile::pro_fp},
       {{i8T, fp16T},
        {i8T, fp32T},
        {i16T, fp16T},
        {i16T, fp32T},
        {i32T, fp16T},
        {i32T, fp32T},
        {fp16T, i8T},
        {fp16T, i16T},
        {fp16T, i32T},
        {fp16T, fp32T},
        {fp32T, i8T},
        {fp32T, i16T},
        {fp32T, i32T},
        {fp32T, fp16T}}}}},
    {"tosa.rescale",
     {{{Profile::pro_int},
       {{i8T, i8T, i8T, i8T},
        {i8T, i8T, i16T, i16T},
        {i8T, i8T, i32T, i32T},
        {i16T, i16T, i8T, i8T},
        {i16T, i16T, i16T, i16T},
        {i16T, i16T, i32T, i32T},
        {i32T, i32T, i8T, i8T},
        {i32T, i32T, i16T, i16T},
        {i32T, i32T, i32T, i32T}}}}},
    {"tosa.const",
     {{{Profile::pro_int, Profile::pro_fp},
       {{boolT}, {i8T}, {i16T}, {i32T}},
       anyOf},
      {{Profile::pro_fp}, {{fp16T}, {fp32T}}}}},
    {"tosa.identity",
     {{{Profile::pro_int, Profile::pro_fp},
       {{boolT, boolT}, {i8T, i8T}, {i16T, i16T}, {i32T, i32T}},
       anyOf},
      {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
    {"tosa.variable",
     {{{Profile::pro_int}, {{i8T}}}, {{Profile::pro_fp}, {{fp16T}, {fp32T}}}}},
    {"tosa.variable_write",
     {{{Profile::pro_int}, {{i8T}}}, {{Profile::pro_fp}, {{fp16T}, {fp32T}}}}},
    {"tosa.variable_read",
     {{{Profile::pro_int}, {{i8T}}}, {{Profile::pro_fp}, {{fp16T}, {fp32T}}}}},
};

extensionComplianceMap = {
    {"tosa.argmax",
     {{{Extension::int16}, {{i16T, i32T}}},
      {{Extension::fp8e4m3}, {{fp8e4m3T, i32T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, i32T}}},
      {{Extension::bf16}, {{bf16T, i32T}}}}},
    {"tosa.avg_pool2d",
     {{{Extension::int16}, {{i16T, i16T, i16T, i32T, i16T}}},
      {{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T, fp8e4m3T, fp16T, fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T, fp8e5m2T, fp16T, fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T, bf16T, bf16T, fp32T, bf16T}}}}},
    {"tosa.conv2d",
     {{{Extension::int4}, {{i8T, i4T, i32T, i8T, i4T, i32T, i32T}}},
      {{Extension::int16}, {{i16T, i8T, i48T, i16T, i8T, i48T, i48T}}},
      {{Extension::fp8e4m3},
       {{fp8e4m3T, fp8e4m3T, fp16T, fp8e4m3T, fp8e4m3T, fp16T, fp16T}}},
      {{Extension::fp8e5m2},
       {{fp8e5m2T, fp8e5m2T, fp16T, fp8e5m2T, fp8e5m2T, fp16T, fp16T}}},
      {{Extension::bf16},
       {{bf16T, bf16T, bf16T, bf16T, bf16T, fp32T, bf16T}}}}},
    {"tosa.conv3d",
     {{{Extension::int4}, {{i8T, i4T, i32T, i8T, i4T, i32T, i32T}}},
      {{Extension::int16}, {{i16T, i8T, i48T, i16T, i8T, i48T, i48T}}},
      {{Extension::fp8e4m3},
       {{fp8e4m3T, fp8e4m3T, fp16T, fp8e4m3T, fp8e4m3T, fp16T, fp16T}}},
      {{Extension::fp8e5m2},
       {{fp8e5m2T, fp8e5m2T, fp16T, fp8e5m2T, fp8e5m2T, fp16T, fp16T}}},
      {{Extension::bf16},
       {{bf16T, bf16T, bf16T, bf16T, bf16T, fp32T, bf16T}}}}},
    {"tosa.depthwise_conv2d",
     {{{Extension::int4}, {{i8T, i4T, i32T, i8T, i4T, i32T, i32T}}},
      {{Extension::int16}, {{i16T, i8T, i48T, i16T, i8T, i48T, i48T}}},
      {{Extension::fp8e4m3},
       {{fp8e4m3T, fp8e4m3T, fp16T, fp8e4m3T, fp8e4m3T, fp16T, fp16T}}},
      {{Extension::fp8e5m2},
       {{fp8e5m2T, fp8e5m2T, fp16T, fp8e5m2T, fp8e5m2T, fp16T, fp16T}}},
      {{Extension::bf16},
       {{bf16T, bf16T, bf16T, bf16T, bf16T, fp32T, bf16T}}}}},
    {"tosa.fft2d", {{{Extension::fft}, {{fp32T, fp32T, fp32T, fp32T}}}}},
    {"tosa.matmul",
     {{{Extension::int16}, {{i16T, i16T, i16T, i16T, i48T}}},
      {{Extension::fp8e4m3},
       {{fp8e4m3T, fp8e4m3T, fp8e4m3T, fp8e4m3T, fp16T},
        {fp8e4m3T, fp8e4m3T, fp8e4m3T, fp8e4m3T, fp32T}}},
      {{Extension::fp8e5m2},
       {{fp8e5m2T, fp8e5m2T, fp8e5m2T, fp8e5m2T, fp16T},
        {fp8e5m2T, fp8e5m2T, fp8e5m2T, fp8e5m2T, fp32T}}},
      {{Extension::fp8e4m3, Extension::fp8e5m2},
       {{fp8e4m3T, fp8e5m2T, fp8e4m3T, fp8e5m2T, fp16T},
        {fp8e4m3T, fp8e5m2T, fp8e4m3T, fp8e5m2T, fp32T},
        {fp8e5m2T, fp8e4m3T, fp8e5m2T, fp8e4m3T, fp16T},
        {fp8e5m2T, fp8e4m3T, fp8e5m2T, fp8e4m3T, fp32T}},
       allOf},
      {{Extension::bf16}, {{bf16T, bf16T, bf16T, bf16T, fp32T}}}}},
    {"tosa.max_pool2d",
     {{{Extension::int16}, {{i16T, i16T}}},
      {{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.rfft2d", {{{Extension::fft}, {{fp32T, fp32T, fp32T}}}}},
    {"tosa.transpose_conv2d",
     {{{Extension::int4}, {{i8T, i4T, i32T, i8T, i4T, i32T, i32T}}},
      {{Extension::int16}, {{i16T, i8T, i48T, i16T, i8T, i48T, i48T}}},
      {{Extension::fp8e4m3},
       {{fp8e4m3T, fp8e4m3T, fp16T, fp8e4m3T, fp8e4m3T, fp16T, fp16T}}},
      {{Extension::fp8e5m2},
       {{fp8e5m2T, fp8e5m2T, fp16T, fp8e5m2T, fp8e5m2T, fp16T, fp16T}}},
      {{Extension::bf16},
       {{bf16T, bf16T, bf16T, bf16T, bf16T, fp32T, bf16T}}}}},
    {"tosa.clamp",
     {{{Extension::int16}, {{i16T, i16T}}},
      {{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.erf", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.sigmoid", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.tanh", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.add", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
    {"tosa.maximum", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
    {"tosa.minimum", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
    {"tosa.mul", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
    {"tosa.pow", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
    {"tosa.sub", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
    {"tosa.table", {{{Extension::int16}, {{i16T, i16T, i32T}}}}},
    {"tosa.abs", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.ceil", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.cos", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.exp", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.floor", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.log", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.negate", {{{Extension::bf16}, {{bf16T, bf16T, bf16T, bf16T}}}}},
    {"tosa.reciprocal", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.rsqrt", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.sin", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.select", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
    {"tosa.equal", {{{Extension::bf16}, {{bf16T, bf16T, boolT}}}}},
    {"tosa.greater", {{{Extension::bf16}, {{bf16T, bf16T, boolT}}}}},
    {"tosa.greater_equal", {{{Extension::bf16}, {{bf16T, bf16T, boolT}}}}},
    {"tosa.reduce_max", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.reduce_min", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.reduce_product", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.reduce_sum", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.concat",
     {{{Extension::int16}, {{i16T, i16T}}},
      {{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.pad",
     {{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T, fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T, fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
    {"tosa.reshape",
     {{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.reverse",
     {{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.slice",
     {{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.tile",
     {{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.transpose",
     {{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.gather",
     {{{Extension::fp8e4m3}, {{fp8e4m3T, i32T, fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, i32T, fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T, i32T, bf16T}}}}},
    {"tosa.scatter",
     {{{Extension::fp8e4m3}, {{fp8e4m3T, i32T, fp8e4m3T, fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, i32T, fp8e5m2T, fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T, i32T, bf16T, bf16T}}}}},
    {"tosa.resize",
     {{{Extension::int16}, {{i16T, i48T}, {i16T, i16T}}},
      {{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.cast",
     {{{Extension::bf16},
       {{i8T, bf16T},
        {i16T, bf16T},
        {i32T, bf16T},
        {bf16T, i8T},
        {bf16T, i16T},
        {bf16T, i32T},
        {bf16T, fp32T},
        {fp32T, bf16T}}},
      {{Extension::bf16, Extension::fp8e4m3},
       {{bf16T, fp8e4m3T}, {fp8e4m3T, bf16T}},
       allOf},
      {{Extension::bf16, Extension::fp8e5m2},
       {{bf16T, fp8e5m2T}, {fp8e5m2T, bf16T}},
       allOf},
      {{Extension::fp8e4m3},
       {{fp8e4m3T, fp16T},
        {fp8e4m3T, fp32T},
        {fp16T, fp8e4m3T},
        {fp32T, fp8e4m3T}}},
      {{Extension::fp8e5m2},
       {{fp8e5m2T, fp16T},
        {fp8e5m2T, fp32T},
        {fp16T, fp8e5m2T},
        {fp32T, fp8e5m2T}}}}},
    {"tosa.rescale",
     {{{Extension::int16},
       {{i48T, i48T, i8T, i8T},
        {i48T, i48T, i16T, i16T},
        {i48T, i48T, i32T, i32T}}}}},
    {"tosa.const",
     {{{Extension::int4}, {{i4T}}},
      {{Extension::int16}, {{i48T}}},
      {{Extension::fp8e4m3}, {{fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T}}}}},
    {"tosa.identity",
     {{{Extension::int4}, {{i4T, i4T}}},
      {{Extension::int16}, {{i48T, i48T}}},
      {{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
      {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
      {{Extension::bf16}, {{bf16T, bf16T}}}}},
    {"tosa.variable", {{{Extension::variable}, {{i8T}, {fp16T}, {fp32T}}}}},
    {"tosa.variable_write",
     {{{Extension::variable}, {{i8T}, {fp16T}, {fp32T}}}}},
    {"tosa.variable_read",
     {{{Extension::variable}, {{i8T}, {fp16T}, {fp32T}}}}},
};
// End of auto-generated metadata
