diff --git a/mlir/lib/AsmParser/AffineParser.cpp b/mlir/lib/AsmParser/AffineParser.cpp index 1797611858c06..8f7fa3877aa18 100644 --- a/mlir/lib/AsmParser/AffineParser.cpp +++ b/mlir/lib/AsmParser/AffineParser.cpp @@ -311,13 +311,6 @@ AffineExpr AffineParser::parseSSAIdExpr(bool isSymbol) { if (getToken().isNot(Token::percent_identifier)) return emitWrongTokenError("expected ssa identifier"), nullptr; auto name = getTokenSpelling(); - // Check if we already parsed this SSA id. - for (auto entry : dimsAndSymbols) { - if (entry.first == name) { - consumeToken(Token::percent_identifier); - return entry.second; - } - } // Parse the SSA id and add an AffineDim/SymbolExpr to represent it. if (parseElement(isSymbol)) return nullptr; diff --git a/mlir/test/Dialect/Affine/load-store.mlir b/mlir/test/Dialect/Affine/load-store.mlir index e214a0815746d..247bbe89fe382 100644 --- a/mlir/test/Dialect/Affine/load-store.mlir +++ b/mlir/test/Dialect/Affine/load-store.mlir @@ -198,6 +198,20 @@ func.func @test_prefetch(%arg0 : index, %arg1 : index) { // ----- +// Test with load affine map with same SSA name. +func.func @test_load_same_ssa_name() { + %0 = memref.alloc() : memref<10x10xf32> + affine.for %i0 = 0 to 100 { + %i2:2 = affine.delinearize_index %i0 into (10, 10) : index, index + %1 = affine.load %0[%i2#0, %i2#1] : memref<10x10xf32> + // CHECK: %{{.*}} = affine.load %{{.*}}[%{{.*}}, %{{.*}}] : memref<10x10xf32> + affine.store %1, %0[%i2#0, %i2#1] : memref<10x10xf32> + } + return +} + +// ----- + // Test with just loop IVs. func.func @vector_load_vector_store_iv() { %0 = memref.alloc() : memref<100x100xf32>