[Mlir-commits] [mlir] [TOSA] Allow all integer types in most ops (PR #86509)
Matthias Gehre
llvmlistbot at llvm.org
Tue Mar 26 13:58:52 PDT 2024
================
@@ -503,15 +505,58 @@ LogicalResult TosaValidation::applyVariableCheck(Operation *op) {
return success();
}
+bool TosaValidation::isValidElementType(Type type) {
+ if ((profile == TosaProfileEnum::BaseInference) && isa<FloatType>(type)) {
+ return false;
+ }
+ if (type.isF64()) {
+ return false;
+ }
+ if (auto intTy = dyn_cast<IntegerType>(type)) {
+ if (intTy.isUnsigned()) {
+ switch (intTy.getWidth()) {
+ case 8:
+ case 16:
+ return true;
+ default:
+ return false;
+ }
+ } else {
+ // Signless - treated as signed.
+ switch (intTy.getWidth()) {
+ case 1:
+ case 4:
+ case 8:
+ case 16:
+ case 32:
+ case 48:
+ case 64:
+ return true;
+ default:
+ return false;
+ }
+ }
+ return false;
+ }
+ return true;
+}
+
void TosaValidation::runOnOperation() {
configLevelAndProfile();
getOperation().walk([&](Operation *op) {
for (Value operand : op->getOperands()) {
- if ((profile == TosaProfileEnum::BaseInference) &&
- isa<FloatType>(getElementTypeOrSelf(operand))) {
+ auto elementTy = getElementTypeOrSelf(operand);
+ if (!isValidElementType(elementTy)) {
+ op->emitOpError() << "failed level check: element type " << elementTy
----------------
mgehre-amd wrote:
Sure, I updated the wording.
https://github.com/llvm/llvm-project/pull/86509
More information about the Mlir-commits
mailing list