From bd8d03d674c2c77f6ccf22594dec1ab89c8bbae0 Mon Sep 17 00:00:00 2001 From: Matthias Gehre Date: Tue, 4 Jul 2023 10:09:33 +0200 Subject: [PATCH] TosaCanonicalizations: Avoid crash in folding cast of elided const --- mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp b/mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp index e05acd0ddfad1..b8ed1b3d577ea 100644 --- a/mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp +++ b/mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp @@ -773,6 +773,10 @@ OpFoldResult CastOp::fold(FoldAdaptor adaptor) { auto outETy = outTy.getElementType(); if (operand.isSplat()) { + // Bug? For DenseResourceElementsAttr, isSplat() can return true, + // but getSplatValue() will throw. + if (isa(operand)) + return {}; if (llvm::isa(inETy) && llvm::isa(outETy)) { bool overflow; auto splatVal = operand.getSplatValue();