[Mlir-commits] [mlir] [mlir][tosa] Move profile compliance metadata to static constexpr tables (PR #232857)
Luke Hutton
llvmlistbot at llvm.org
Mon Oct 19 01:59:26 PDT 2026
================
@@ -1,6402 +1,9369 @@
// 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}}}}},
+
+static constexpr TypeInfo kComplianceTypeInfos[] = {
+ i32T,
----------------
lhutton1 wrote:
This isn't very readable in the current form, which makes it difficult to inspect incremental changes to align with the specification. Would it be possible for the generator to emit a line per table entry and disable formatting here? For example:
```
// argmax
i32T, i32T, // pro_int, v1.0
i8T, i32T, // pro_int, v1.0
....
// argmin
....
```
https://github.com/llvm/llvm-project/pull/232857
More information about the Mlir-commits
mailing list