[Mlir-commits] [mlir] [mlir] [presburger] Add IntegerRelation::rangeProduct (PR #148092)
Jeremy Kun
llvmlistbot at llvm.org
Thu Jul 17 06:40:34 PDT 2025
================
@@ -653,3 +653,52 @@ TEST(IntegerRelationTest, rangeProductMultdimRangeSwapped) {
EXPECT_TRUE(expected.isEqual(rangeProd));
}
+
+TEST(IntegerRelationTest, rangeProductEmptyDomain) {
+ IntegerRelation r1 =
+ parseRelationFromSet("(i, j) : (4*i + 9*j == 0, i >= 0, j >= 0)", 0);
+ IntegerRelation r2 =
+ parseRelationFromSet("(k, l) : (2*k + 3*l == 0, k >= 0, l >= 0)", 0);
+ IntegerRelation rangeProd = r1.rangeProduct(r2);
+ IntegerRelation expected =
+ parseRelationFromSet("(i, j, k, l) : (2*k + 3*l == 0, 4*i + 9*j == "
+ "0, i >= 0, j >= 0, k >= 0, l >= 0)",
+ 0);
+ EXPECT_TRUE(expected.isEqual(rangeProd));
+}
+
+TEST(IntegerRelationTest, rangeProductEmptyRange) {
+ IntegerRelation r1 =
+ parseRelationFromSet("(i, j) : (4*i + 9*j == 0, i >= 0, j >= 0)", 2);
+ IntegerRelation r2 =
+ parseRelationFromSet("(i, j) : (2*i + 3*j == 0, i >= 0, j >= 0)", 2);
+ IntegerRelation rangeProd = r1.rangeProduct(r2);
+ IntegerRelation expected =
+ parseRelationFromSet("(i, j) : (2*i + 3*j == 0, 4*i + 9*j == "
+ "0, i >= 0, j >= 0)",
+ 2);
+ EXPECT_TRUE(expected.isEqual(rangeProd));
+}
+
+TEST(IntegerRelationTest, rangeProductEmptyDomainAndRange) {
+ IntegerRelation r1 = parseRelationFromSet("() : ()", 0);
+ IntegerRelation r2 = parseRelationFromSet("() : ()", 0);
+ IntegerRelation rangeProd = r1.rangeProduct(r2);
+ IntegerRelation expected = parseRelationFromSet("() : ()", 0);
+ EXPECT_TRUE(expected.isEqual(rangeProd));
+}
+
+TEST(IntegerRelationTest, rangeProductSymbols) {
+ IntegerRelation r1 = parseRelationFromSet(
+ "(i, j)[s] : (2*i + 3*j + s == 0, i >= 0, j >= 0)", 1);
+ IntegerRelation r2 = parseRelationFromSet(
+ "(i, l)[t] : (3*i + 4*l + t == 0, i >= 0, l >= 0)", 1);
+
+ IntegerRelation rangeProd = r1.rangeProduct(r2);
+ IntegerRelation expected = parseRelationFromSet(
+ "(i, j, k, l)[s, t] : (2*i + 3*j + s == 0, 3*i + 4*l + t == "
+ "0, i >= 0, j >= 0, l >= 0)",
+ 1);
----------------
j2kun wrote:
Thanks!
https://github.com/llvm/llvm-project/pull/148092
More information about the Mlir-commits
mailing list