| //===- AffineExprTest.cpp - unit tests for affine expression API ----------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "mlir/IR/AffineExpr.h" |
| #include "mlir/IR/Builders.h" |
| #include "gtest/gtest.h" |
| |
| using namespace mlir; |
| |
| // Test creating AffineExprs using the overloaded binary operators. |
| TEST(AffineExprTest, constructFromBinaryOperators) { |
| MLIRContext ctx; |
| OpBuilder b(&ctx); |
| |
| auto d0 = b.getAffineDimExpr(0); |
| auto d1 = b.getAffineDimExpr(1); |
| |
| auto sum = d0 + d1; |
| auto difference = d0 - d1; |
| auto product = d0 * d1; |
| auto remainder = d0 % d1; |
| |
| ASSERT_EQ(sum.getKind(), AffineExprKind::Add); |
| ASSERT_EQ(difference.getKind(), AffineExprKind::Add); |
| ASSERT_EQ(product.getKind(), AffineExprKind::Mul); |
| ASSERT_EQ(remainder.getKind(), AffineExprKind::Mod); |
| } |