No public description
PiperOrigin-RevId: 552517694
diff --git a/sim/BUILD b/sim/BUILD
index f428b43..fdf1818 100644
--- a/sim/BUILD
+++ b/sim/BUILD
@@ -40,6 +40,7 @@
deps = [
":kelvin_state",
"@com_google_absl//absl/functional:bind_front",
+ "@com_google_absl//absl/log:check",
"@com_google_absl//absl/numeric:bits",
"@com_google_absl//absl/types:span",
"@com_google_mpact-riscv//riscv:riscv_state",
diff --git a/sim/kelvin_vector_instructions.cc b/sim/kelvin_vector_instructions.cc
index a780422..da4c8d7 100644
--- a/sim/kelvin_vector_instructions.cc
+++ b/sim/kelvin_vector_instructions.cc
@@ -9,6 +9,7 @@
#include "sim/kelvin_state.h"
#include "absl/functional/bind_front.h"
+#include "absl/log/check.h"
#include "absl/numeric/bits.h"
#include "absl/types/span.h"
#include "riscv/riscv_register.h"
@@ -740,7 +741,8 @@
} else { // shamt < 0
using UT = typename std::make_unsigned<T>::type;
UT ushamt = static_cast<UT>(-shamt <= n ? -shamt : n);
- CHECK(ushamt >= 0 && ushamt <= n);
+ CHECK_LE(ushamt, n);
+ CHECK_GE(ushamt, 0);
s = static_cast<int64_t>(static_cast<uint64_t>(vs1) << ushamt);
}
T neg_max = std::numeric_limits<T>::min();