From 7e3f7aecafc5e12a2df1d1b94d6eb3d671210cf3 Mon Sep 17 00:00:00 2001 From: Olivia Hsu Date: Mon, 8 Mar 2021 17:53:03 -0800 Subject: [PATCH 1/2] Add in disabled test for xorOp called DISABLED_XorTestOrder2 which tests failing xorOp --- test/tests-lower.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/tests-lower.cpp b/test/tests-lower.cpp index 16b79d70c..a83e01cd7 100644 --- a/test/tests-lower.cpp +++ b/test/tests-lower.cpp @@ -1836,5 +1836,21 @@ TEST_STMT(RightShiftTest, } ) +TEST_STMT(DISABLED_XorTestOrder2, + forall(i, forall(j, + C(i, j) = xorOp(A(i, j), B(i, j))) + ), + Values( + Formats({{A, Format({sparse, sparse})}, {B, Format({sparse, sparse})}, {C, Format({sparse, sparse})} }) + ), + { + TestCase( + {{B, {{{0, 1}, 2.0}, {{1, 1}, 3.0}, {{1, 2}, 2.0}, {{4, 3}, 4.0}}}, + {A, {{{0, 1}, 3.0}, {{1, 3}, 5.0}, {{2, 1}, 3.0}, {{2, 2}, 4.0}, {{4, 3}, 6.0}}}}, + + {{C, {{{1, 1}, 3.0}, {{1, 2}, 2.0}, {{1, 3}, 5.0}, {{2, 1}, 3.0}, + {{2, 2}, 4.0}}}}) + } +) }} From e45015b34e107c8645fc9101b6e4364eac7c4a98 Mon Sep 17 00:00:00 2001 From: Olivia Hsu Date: Mon, 8 Mar 2021 18:12:37 -0800 Subject: [PATCH 2/2] Add in patch to fix xorOp bug in lowerMergeCases() in lowerer_impl.cpp --- src/lower/lowerer_impl.cpp | 13 ++++++++----- test/tests-lower.cpp | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/lower/lowerer_impl.cpp b/src/lower/lowerer_impl.cpp index c28658c7c..2b0f5c035 100644 --- a/src/lower/lowerer_impl.cpp +++ b/src/lower/lowerer_impl.cpp @@ -1497,15 +1497,18 @@ Stmt LowererImpl::lowerMergeCases(ir::Expr coordinate, IndexVar coordinateVar, I vector> cases; for (MergePoint point : loopLattice.points()) { - if(point.isOmitter()) { - continue; - } + // if(point.isOmitter()) { + // continue; + // } // Construct case expression vector coordComparisons = compareToResolvedCoordinate(point.rangers(), coordinate, coordinateVar); vector omittedRegionIterators = loopLattice.retrieveRegionIteratorsToOmit(point); - std::vector neqComparisons = compareToResolvedCoordinate(omittedRegionIterators, coordinate, coordinateVar); - append(coordComparisons, neqComparisons); + if (!point.isOmitter()) { + std::vector neqComparisons = compareToResolvedCoordinate(omittedRegionIterators, coordinate, + coordinateVar); + append(coordComparisons, neqComparisons); + } coordComparisons = filter(coordComparisons, [](const Expr& e) { return e.defined(); }); diff --git a/test/tests-lower.cpp b/test/tests-lower.cpp index a83e01cd7..be0dd28d3 100644 --- a/test/tests-lower.cpp +++ b/test/tests-lower.cpp @@ -1836,7 +1836,7 @@ TEST_STMT(RightShiftTest, } ) -TEST_STMT(DISABLED_XorTestOrder2, +TEST_STMT(XorTestOrder2, forall(i, forall(j, C(i, j) = xorOp(A(i, j), B(i, j))) ),