summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorGravatar Unknown <afd@afd-THINK.home>2012-04-09 10:31:35 +0100
committerGravatar Unknown <afd@afd-THINK.home>2012-04-09 10:31:35 +0100
commit4f521af3552c66fb79971b2d542f6b7d69d9d5f0 (patch)
tree78bef0838399797728b5e090eb67c13122fc56be /Source
parent0266ecb69bcb43ac37a25ae48ab21583e11a6e05 (diff)
Tweak to inference.
Diffstat (limited to 'Source')
-rw-r--r--Source/GPUVerify/LoopInvariantGenerator.cs7
1 files changed, 5 insertions, 2 deletions
diff --git a/Source/GPUVerify/LoopInvariantGenerator.cs b/Source/GPUVerify/LoopInvariantGenerator.cs
index 7dafe20c..f61e8ef4 100644
--- a/Source/GPUVerify/LoopInvariantGenerator.cs
+++ b/Source/GPUVerify/LoopInvariantGenerator.cs
@@ -189,13 +189,16 @@ namespace GPUVerify
if (verifier.ContainsNamedVariable(GetModifiedVariables(wc.Body), basicName))
{
verifier.AddCandidateInvariant(wc, MakePowerOfTwoExpr(v));
- for (int i = (1 << 30); i > 0; i >>= 1)
+ for (int i = (1 << 15); i > 0; i >>= 1)
{
verifier.AddCandidateInvariant(wc,
GPUVerifier.MakeBitVectorBinaryBoolean("BV32_LT",
new IdentifierExpr(v.tok, v),
new LiteralExpr(v.tok, BigNum.FromInt(i), 32)));
}
+ verifier.AddCandidateInvariant(wc,
+ Expr.Neq(new IdentifierExpr(v.tok, v),
+ new LiteralExpr(v.tok, BigNum.FromInt(0), 32)));
}
}
}
@@ -205,7 +208,7 @@ namespace GPUVerify
private Expr MakePowerOfTwoExpr(Variable v)
{
Expr result = null;
- for (int i = 1 << 30; i > 0; i >>= 1)
+ for (int i = 1 << 15; i > 0; i >>= 1)
{
Expr eq = Expr.Eq(new IdentifierExpr(v.tok, v), new LiteralExpr(v.tok, BigNum.FromInt(i), 32));
result = (result == null ? eq : Expr.Or(eq, result));