Add missing parsing for attributes to std.generic_atomic_rmw op
authorMehdi Amini <joker.eph@gmail.com>
Sat, 15 Aug 2020 23:58:32 +0000 (23:58 +0000)
committerMehdi Amini <joker.eph@gmail.com>
Sun, 16 Aug 2020 22:13:58 +0000 (22:13 +0000)
Fix llvm.org/pr47182

Differential Revision: https://reviews.llvm.org/D86030

mlir/lib/Dialect/StandardOps/IR/Ops.cpp
mlir/test/IR/core-ops.mlir

index b593573..447e500 100644 (file)
@@ -564,7 +564,8 @@ static ParseResult parseGenericAtomicRMWOp(OpAsmParser &parser,
     return failure();
 
   Region *body = result.addRegion();
-  if (parser.parseRegion(*body, llvm::None, llvm::None))
+  if (parser.parseRegion(*body, llvm::None, llvm::None) ||
+      parser.parseOptionalAttrDict(result.attributes))
     return failure();
   result.types.push_back(memrefType.cast<MemRefType>().getElementType());
   return success();
index c45683c..89bcd75 100644 (file)
@@ -839,7 +839,8 @@ func @generic_atomic_rmw(%I: memref<1x2xf32>, %i : index, %j : index) {
       %c1 = constant 1.0 : f32
       %out = addf %c1, %old_value : f32
       atomic_yield %out : f32
-  }
+  // CHECK: index_attr = 8 : index
+  } { index_attr = 8 : index }
   return
 }