From 7daeee340a7edad3f4450e1392f8bad8d8b9cb7c Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Tue, 9 Jul 2013 18:59:59 +0200 Subject: Fixed shift ops with large right hand side --- kernel/satgen.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'kernel') diff --git a/kernel/satgen.h b/kernel/satgen.h index 991853c2c..26e3fd7ec 100644 --- a/kernel/satgen.h +++ b/kernel/satgen.h @@ -241,7 +241,7 @@ struct SatGen { std::vector tmp_shifted(tmp.size()); for (size_t j = 0; j < tmp.size(); j++) { - int idx = j + (1 << i) * (shift_left ? -1 : +1); + int idx = j + (1 << (i > 30 ? 30 : i)) * (shift_left ? -1 : +1); tmp_shifted.at(j) = (0 <= idx && idx < int(tmp.size())) ? tmp.at(idx) : sign_extend ? tmp.back() : ez->FALSE; } tmp = ez->vec_ite(b.at(i), tmp_shifted, tmp); -- cgit v1.2.3