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();