]> git.unchartedbackwaters.co.uk Git - francis/stp.git/commitdiff
Extra simplification rule for BVXOR.
authortrevor_hansen <trevor_hansen@e59a4935-1847-0410-ae03-e826735625c1>
Mon, 28 Mar 2011 00:34:44 +0000 (00:34 +0000)
committertrevor_hansen <trevor_hansen@e59a4935-1847-0410-ae03-e826735625c1>
Mon, 28 Mar 2011 00:34:44 +0000 (00:34 +0000)
git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@1241 e59a4935-1847-0410-ae03-e826735625c1

src/AST/NodeFactory/SimplifyingNodeFactory.cpp

index 6f24778402d6cc127a60c5078cd9aa708bc770f9..d638808e4710f83dd3db9450f42c543d4f8bf981 100644 (file)
@@ -694,6 +694,13 @@ ASTNode SimplifyingNodeFactory::CreateTerm(Kind kind, unsigned int width,
 
                     if (children[0].isConstant() && CONSTANTBV::BitVector_is_empty(children[0].GetBVConst()))
                       result = children[1];
+
+                    if (children[1].isConstant() && CONSTANTBV::BitVector_is_full(children[1].GetBVConst()))
+                      result = NodeFactory::CreateTerm(BEEV::BVNEG, width, children[0]);
+
+                    if (children[0].isConstant() && CONSTANTBV::BitVector_is_full(children[0].GetBVConst()))
+                      result = NodeFactory::CreateTerm(BEEV::BVNEG, width, children[1]);
+
                   }
                 break;