[Mlir-commits] [mlir] [MLIR][NVVM] Update Op verifiers to prevent ungraceful exits (PR #165677)
Srinivasa Ravi
llvmlistbot at llvm.org
Thu Oct 30 23:09:02 PDT 2025
================
@@ -867,15 +867,20 @@ LogicalResult MmaOp::verify() {
}
LogicalResult ShflOp::verify() {
- if (!(*this)->getAttrOfType<UnitAttr>("return_value_and_is_valid"))
- return success();
auto type = llvm::dyn_cast<LLVM::LLVMStructType>(getType());
- auto elementType = (type && type.getBody().size() == 2)
- ? llvm::dyn_cast<IntegerType>(type.getBody()[1])
- : nullptr;
- if (!elementType || elementType.getWidth() != 1)
- return emitError("expected return type to be a two-element struct with "
- "i1 as the second element");
+
+ if ((*this)->getAttrOfType<UnitAttr>("return_value_and_is_valid")) {
+ auto elementType = (type && type.getBody().size() == 2)
+ ? llvm::dyn_cast<IntegerType>(type.getBody()[1])
+ : nullptr;
+ if (!elementType || elementType.getWidth() != 1)
+ return emitOpError("expected return type to be a two-element struct with "
+ "i1 as the second element");
+ } else {
+ if (type)
+ return emitOpError("\"return_value_and_is_valid\" attribute must be "
+ "specified when returning the predicate");
----------------
Wolfram70 wrote:
I've now updated the Op description to include information on `return_value_and_is_valid`, thanks!
https://github.com/llvm/llvm-project/pull/165677
More information about the Mlir-commits
mailing list