[Mlir-commits] [mlir] [mlir][tosa] Move profile compliance metadata to static constexpr tables (PR #232857)
Luke Hutton
llvmlistbot at llvm.org
Tue Oct 20 02:42:07 PDT 2026
================
@@ -1,6402 +1,2567 @@
// The profile-based compliance content below is auto-generated by the script
// `tools/genspec.py` in https://github.com/arm/tosa-specification
-profileComplianceMap = {
- {"tosa.argmax",
- {{{Profile::pro_int}, {{{i8T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, i32T}, SpecificationVersion::V_1_0},
- {{fp32T, i32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.argmin",
- {{{Profile::pro_int}, {{{i8T, i32T}, SpecificationVersion::V_1_1_DRAFT}}},
- {{Profile::pro_fp},
- {{{fp16T, i32T}, SpecificationVersion::V_1_1_DRAFT},
- {{fp32T, i32T}, SpecificationVersion::V_1_1_DRAFT},
- {{fp16T, i64T}, SpecificationVersion::V_1_1_DRAFT},
- {{fp32T, i64T}, SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.avg_pool2d",
- {{{Profile::pro_int},
- {{{i8T, i8T, i8T, i32T, i8T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp16T, fp16T, fp16T, fp32T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.avg_pool2d_adaptive",
- {{{Profile::pro_int},
- {{{i8T, i8T, i8T, i32T, i8T}, SpecificationVersion::V_1_1_DRAFT}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T, fp16T, fp16T},
- SpecificationVersion::V_1_1_DRAFT},
- {{fp16T, fp16T, fp16T, fp32T, fp16T},
- SpecificationVersion::V_1_1_DRAFT},
- {{fp32T, fp32T, fp32T, fp32T, fp32T},
- SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.conv2d",
- {{{Profile::pro_int},
- {{{i8T, i8T, i32T, i8T, i8T, i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
- SpecificationVersion::V_1_0},
- {{fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
- SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T},
- SpecificationVersion::V_1_0},
- {{fp16T, fp16T, fp32T, fp16T, fp16T, fp32T, fp32T},
- SpecificationVersion::V_1_1_DRAFT},
- {{fp16T, fp32T, fp32T, fp16T, fp32T, fp32T, fp32T},
- SpecificationVersion::V_1_1_DRAFT},
- {{fp32T, fp16T, fp32T, fp32T, fp16T, fp32T, fp32T},
- SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.conv3d",
- {{{Profile::pro_int},
- {{{i8T, i8T, i32T, i8T, i8T, i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
- SpecificationVersion::V_1_0},
- {{fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
- SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T},
- SpecificationVersion::V_1_0},
- {{fp16T, fp16T, fp32T, fp16T, fp16T, fp32T, fp32T},
- SpecificationVersion::V_1_1_DRAFT},
- {{fp16T, fp32T, fp32T, fp16T, fp32T, fp32T, fp32T},
- SpecificationVersion::V_1_1_DRAFT},
- {{fp32T, fp16T, fp32T, fp32T, fp16T, fp32T, fp32T},
- SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.depthwise_conv2d",
- {{{Profile::pro_int},
- {{{i8T, i8T, i32T, i8T, i8T, i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
- SpecificationVersion::V_1_0},
- {{fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
- SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T},
- SpecificationVersion::V_1_0}}}}},
- {"tosa.matmul",
- {{{Profile::pro_int},
- {{{i8T, i8T, i8T, i8T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp16T, fp16T, fp16T, fp16T, fp32T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.matmul_t",
- {{{Profile::pro_int},
- {{{i8T, i8T, i8T, i8T, i32T}, SpecificationVersion::V_1_1_DRAFT}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T, fp16T, fp16T},
- SpecificationVersion::V_1_1_DRAFT},
- {{fp16T, fp16T, fp16T, fp16T, fp32T},
- SpecificationVersion::V_1_1_DRAFT},
- {{fp16T, fp32T, fp16T, fp32T, fp32T},
- SpecificationVersion::V_1_1_DRAFT},
- {{fp32T, fp16T, fp32T, fp16T, fp32T},
- SpecificationVersion::V_1_1_DRAFT},
- {{fp32T, fp32T, fp32T, fp32T, fp32T},
- SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.max_pool2d",
- {{{Profile::pro_int}, {{{i8T, i8T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.max_pool2d_adaptive",
- {{{Profile::pro_int}, {{{i8T, i8T}, SpecificationVersion::V_1_1_DRAFT}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_1_DRAFT},
- {{fp32T, fp32T}, SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.transpose_conv2d",
- {{{Profile::pro_int},
- {{{i8T, i8T, i32T, i8T, i8T, i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
- SpecificationVersion::V_1_0},
- {{fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
- SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T},
- SpecificationVersion::V_1_0},
- {{fp16T, fp16T, fp32T, fp16T, fp16T, fp32T, fp32T},
- SpecificationVersion::V_1_1_DRAFT},
- {{fp16T, fp32T, fp32T, fp16T, fp32T, fp32T, fp32T},
- SpecificationVersion::V_1_1_DRAFT},
- {{fp32T, fp16T, fp32T, fp32T, fp16T, fp32T, fp32T},
- SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.clamp",
- {{{Profile::pro_int}, {{{i8T, i8T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.erf",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.sigmoid",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.tanh",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.add",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{i32T, i32T, i32T}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.arithmetic_right_shift",
- {{{Profile::pro_int},
- {{{i8T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.bitwise_and",
- {{{Profile::pro_int},
- {{{i8T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.bitwise_or",
- {{{Profile::pro_int},
- {{{i8T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.bitwise_xor",
- {{{Profile::pro_int},
- {{{i8T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.intdiv",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{i32T, i32T, i32T}, SpecificationVersion::V_1_0}},
- anyOf}}},
- {"tosa.logical_and",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf}}},
- {"tosa.logical_left_shift",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{i8T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_0}},
- anyOf}}},
- {"tosa.logical_right_shift",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{i8T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_0}},
- anyOf}}},
- {"tosa.logical_or",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf}}},
- {"tosa.logical_xor",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf}}},
- {"tosa.maximum",
- {{{Profile::pro_int}, {{{i32T, i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.minimum",
- {{{Profile::pro_int}, {{{i32T, i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.mul",
- {{{Profile::pro_int},
- {{{i8T, i8T, i32T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_int, Profile::pro_fp},
- {{{i32T, i32T, i32T}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.pow",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.sub",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{i32T, i32T, i32T}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.table",
- {{{Profile::pro_int}, {{{i8T, i8T, i8T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.abs",
- {{{Profile::pro_int}, {{{i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.bitwise_not",
- {{{Profile::pro_int},
- {{{i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.ceil",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.clz",
- {{{Profile::pro_int}, {{{i32T, i32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.cos",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.exp",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.floor",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.log",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.logical_not",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf}}},
- {"tosa.negate",
- {{{Profile::pro_int},
- {{{i8T, i8T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.reciprocal",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.rsqrt",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.sin",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.select",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_int},
- {{{i8T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.equal",
- {{{Profile::pro_int},
- {{{i32T, i32T, boolT}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, boolT}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, boolT}, SpecificationVersion::V_1_0}}}}},
- {"tosa.greater",
- {{{Profile::pro_int},
- {{{i32T, i32T, boolT}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, boolT}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, boolT}, SpecificationVersion::V_1_0}}}}},
- {"tosa.greater_equal",
- {{{Profile::pro_int},
- {{{i32T, i32T, boolT}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, boolT}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, boolT}, SpecificationVersion::V_1_0}}}}},
- {"tosa.reduce_all",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf}}},
- {"tosa.reduce_any",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf}}},
- {"tosa.reduce_max",
- {{{Profile::pro_int},
- {{{i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.reduce_min",
- {{{Profile::pro_int},
- {{{i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.reduce_product",
- {{{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.reduce_sum",
- {{{Profile::pro_int}, {{{i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.concat",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_int},
- {{{i8T, i8T}, SpecificationVersion::V_1_0},
- {{i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0},
- {{i8T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T}, SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.pad",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_int},
- {{{i8T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T, fp32T}, SpecificationVersion::V_1_0},
- {{i8T, i8T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i16T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.reshape",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_int},
- {{{i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0},
- {{i8T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T}, SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.reverse",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_int},
- {{{i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0},
- {{i8T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T}, SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.slice",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_int},
- {{{i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0},
- {{i8T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T}, SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.tile",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_int},
- {{{i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0},
- {{i8T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T}, SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.transpose",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_int},
- {{{i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0},
- {{i8T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T}, SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.gather",
- {{{Profile::pro_int},
- {{{i8T, i32T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i32T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{i8T, i32T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i32T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_1_DRAFT},
- {{fp16T, i32T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, i32T, fp32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp, Profile::pro_int},
- {{{boolT, i32T, boolT}, SpecificationVersion::V_1_1_DRAFT},
- {{i8T, i64T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i64T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i64T, i32T}, SpecificationVersion::V_1_1_DRAFT}},
- anyOf}}},
- {"tosa.row_gather",
- {{{Profile::pro_int},
- {{{boolT, i32T, boolT}, SpecificationVersion::V_1_1_DRAFT},
- {{i8T, i32T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i32T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_1_DRAFT},
- {{i64T, i32T, i64T}, SpecificationVersion::V_1_1_DRAFT},
- {{boolT, i64T, boolT}, SpecificationVersion::V_1_1_DRAFT},
- {{i8T, i64T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i64T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i64T, i32T}, SpecificationVersion::V_1_1_DRAFT},
- {{i64T, i64T, i64T}, SpecificationVersion::V_1_1_DRAFT}}},
- {{Profile::pro_fp},
- {{{boolT, i32T, boolT}, SpecificationVersion::V_1_1_DRAFT},
- {{i8T, i32T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i32T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T, i32T}, SpecificationVersion::V_1_1_DRAFT},
- {{i64T, i32T, i64T}, SpecificationVersion::V_1_1_DRAFT},
- {{fp16T, i32T, fp16T}, SpecificationVersion::V_1_1_DRAFT},
- {{fp32T, i32T, fp32T}, SpecificationVersion::V_1_1_DRAFT},
- {{boolT, i64T, boolT}, SpecificationVersion::V_1_1_DRAFT},
- {{i8T, i64T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i64T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i64T, i32T}, SpecificationVersion::V_1_1_DRAFT},
- {{i64T, i64T, i64T}, SpecificationVersion::V_1_1_DRAFT},
- {{fp16T, i64T, fp16T}, SpecificationVersion::V_1_1_DRAFT},
- {{fp32T, i64T, fp32T}, SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.row_gather_block_scaled",
- {{{Profile::pro_int},
- {{{i8T, i32T, i32T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i32T, i32T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T, i32T, i32T}, SpecificationVersion::V_1_1_DRAFT}}},
- {{Profile::pro_fp},
- {{{i8T, i32T, i32T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i32T, i32T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T, i32T, i32T}, SpecificationVersion::V_1_1_DRAFT},
- {{fp16T, i32T, i32T, fp16T}, SpecificationVersion::V_1_1_DRAFT},
- {{fp32T, i32T, i32T, fp32T}, SpecificationVersion::V_1_1_DRAFT}}},
- {{Profile::pro_fp, Profile::pro_int},
- {{{boolT, i32T, i32T, boolT}, SpecificationVersion::V_1_1_DRAFT},
- {{i8T, i64T, i32T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i64T, i32T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i64T, i32T, i32T}, SpecificationVersion::V_1_1_DRAFT},
- {{i64T, i64T, i32T, i64T}, SpecificationVersion::V_1_1_DRAFT},
- {{boolT, i64T, i32T, boolT}, SpecificationVersion::V_1_1_DRAFT}},
- anyOf}}},
- {"tosa.scatter",
- {{{Profile::pro_int},
- {{{i8T, i32T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i32T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i32T, i32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{i8T, i32T, i8T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i32T, i16T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i32T, i32T, i32T}, SpecificationVersion::V_1_1_DRAFT},
- {{fp16T, i32T, fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, i32T, fp32T, fp32T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp, Profile::pro_int},
- {{{boolT, i32T, boolT, boolT}, SpecificationVersion::V_1_1_DRAFT},
- {{i8T, i64T, i8T, i8T}, SpecificationVersion::V_1_1_DRAFT},
- {{i16T, i64T, i16T, i16T}, SpecificationVersion::V_1_1_DRAFT},
- {{i32T, i64T, i32T, i32T}, SpecificationVersion::V_1_1_DRAFT}},
- anyOf}}},
- {"tosa.resize",
- {{{Profile::pro_int},
- {{{i8T, i32T}, SpecificationVersion::V_1_0},
- {{i8T, i8T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.cast",
- {{{Profile::pro_int},
- {{{boolT, i8T}, SpecificationVersion::V_1_0},
- {{boolT, i16T}, SpecificationVersion::V_1_0},
- {{boolT, i32T}, SpecificationVersion::V_1_0},
- {{i8T, boolT}, SpecificationVersion::V_1_0},
- {{i8T, i16T}, SpecificationVersion::V_1_0},
- {{i8T, i32T}, SpecificationVersion::V_1_0},
- {{i16T, boolT}, SpecificationVersion::V_1_0},
- {{i16T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i32T}, SpecificationVersion::V_1_0},
- {{i32T, boolT}, SpecificationVersion::V_1_0},
- {{i32T, i8T}, SpecificationVersion::V_1_0},
- {{i32T, i16T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{boolT, fp32T}, SpecificationVersion::V_1_1_DRAFT},
- {{i8T, fp16T}, SpecificationVersion::V_1_0},
- {{i8T, fp32T}, SpecificationVersion::V_1_0},
- {{i16T, fp16T}, SpecificationVersion::V_1_0},
- {{i16T, fp32T}, SpecificationVersion::V_1_0},
- {{i32T, fp16T}, SpecificationVersion::V_1_0},
- {{i32T, fp32T}, SpecificationVersion::V_1_0},
- {{fp16T, i8T}, SpecificationVersion::V_1_0},
- {{fp16T, i16T}, SpecificationVersion::V_1_0},
- {{fp16T, i32T}, SpecificationVersion::V_1_0},
- {{fp16T, fp32T}, SpecificationVersion::V_1_0},
- {{fp32T, i8T}, SpecificationVersion::V_1_0},
- {{fp32T, i16T}, SpecificationVersion::V_1_0},
- {{fp32T, i32T}, SpecificationVersion::V_1_0},
- {{fp32T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, boolT}, SpecificationVersion::V_1_1_DRAFT}}}}},
- {"tosa.rescale",
- {{{Profile::pro_int},
- {{{i8T, i8T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i8T, i8T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i8T, i8T, i32T, i32T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i16T, i16T, i32T, i32T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i8T, i8T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T, i32T, i32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.const",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT}, SpecificationVersion::V_1_0},
- {{i8T}, SpecificationVersion::V_1_0},
- {{i16T}, SpecificationVersion::V_1_0},
- {{i32T}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_fp},
- {{{fp16T}, SpecificationVersion::V_1_0},
- {{fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.identity",
- {{{Profile::pro_int, Profile::pro_fp},
- {{{boolT, boolT}, SpecificationVersion::V_1_0},
- {{i8T, i8T}, SpecificationVersion::V_1_0},
- {{i16T, i16T}, SpecificationVersion::V_1_0},
- {{i32T, i32T}, SpecificationVersion::V_1_0}},
- anyOf},
- {{Profile::pro_fp},
- {{{fp16T, fp16T}, SpecificationVersion::V_1_0},
- {{fp32T, fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.variable",
- {{{Profile::pro_int}, {{{i8T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T}, SpecificationVersion::V_1_0},
- {{fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.variable_write",
- {{{Profile::pro_int}, {{{i8T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T}, SpecificationVersion::V_1_0},
- {{fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.variable_read",
- {{{Profile::pro_int}, {{{i8T}, SpecificationVersion::V_1_0}}},
- {{Profile::pro_fp},
- {{{fp16T}, SpecificationVersion::V_1_0},
- {{fp32T}, SpecificationVersion::V_1_0}}}}},
- {"tosa.custom", {{{Profile::pro_int, Profile::pro_fp}, {}, anyOf}}},
- {"tosa.const_shape", {{{Profile::pro_int, Profile::pro_fp}, {}, anyOf}}},
+
+// clang-format off
+static constexpr OpComplianceInfo<Profile> kProfileComplianceTable[] = {
+ // abs
+ {"tosa.abs", {Profile::pro_int}, {i32T, i32T}, SpecificationVersion::V_1_0},
----------------
lhutton1 wrote:
Looks much more readable, thanks :) Just wondering if the operator name needs to be repeated each time, or whether a nested approach would work like before (with the difference being the table is now constexpr)?
https://github.com/llvm/llvm-project/pull/232857
More information about the Mlir-commits
mailing list