summaryrefslogtreecommitdiffstats
path: root/mlir/test
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/test')
-rw-r--r--mlir/test/EDSC/builder-api-test.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/mlir/test/EDSC/builder-api-test.cpp b/mlir/test/EDSC/builder-api-test.cpp
index 386d744ef32..f4c04eeb7fb 100644
--- a/mlir/test/EDSC/builder-api-test.cpp
+++ b/mlir/test/EDSC/builder-api-test.cpp
@@ -714,6 +714,38 @@ TEST_FUNC(indirect_access) {
f.erase();
}
+// Exercise affine loads and stores build with empty maps.
+TEST_FUNC(empty_map_load_store) {
+ using namespace edsc;
+ using namespace edsc::intrinsics;
+ using namespace edsc::op;
+ auto memrefType =
+ MemRefType::get({}, FloatType::getF32(&globalContext()), {}, 0);
+ auto f = makeFunction("empty_map_load_store", {},
+ {memrefType, memrefType, memrefType, memrefType});
+
+ OpBuilder builder(f.getBody());
+ ScopedContext scope(builder, f.getLoc());
+ ValueHandle zero = constant_index(0);
+ ValueHandle one = constant_index(1);
+ IndexedValue input(f.getArgument(0)), res(f.getArgument(1));
+ IndexHandle iv;
+
+ // clang-format off
+ LoopBuilder(&iv, zero, one, 1)([&]{
+ res() = input();
+ });
+ // clang-format on
+
+ // clang-format off
+ // CHECK-LABEL: func @empty_map_load_store(
+ // CHECK: [[A:%.*]] = affine.load %{{.*}}[]
+ // CHECK: affine.store [[A]], %{{.*}}[]
+ // clang-format on
+ f.print(llvm::outs());
+ f.erase();
+}
+
int main() {
RUN_TESTS();
return 0;
OpenPOWER on IntegriCloud