No public description
PiperOrigin-RevId: 557950235
diff --git a/sim/kelvin_vector_instructions.cc b/sim/kelvin_vector_instructions.cc
index 23c2dfa..c979a41 100644
--- a/sim/kelvin_vector_instructions.cc
+++ b/sim/kelvin_vector_instructions.cc
@@ -992,7 +992,7 @@
template <typename T>
T KelvinVDmulhHelper(bool round, bool round_neg, T vs1, T vs2) {
constexpr int n = sizeof(T) * 8;
- int64_t result = static_cast<int64_t>(vs1) * static_cast<int64_t>(vs1);
+ int64_t result = static_cast<int64_t>(vs1) * static_cast<int64_t>(vs2);
if (round) {
int64_t rnd = 0x40000000ll >> (32 - n);
if (result < 0 && round_neg) {
diff --git a/sim/test/kelvin_vector_instructions_test.cc b/sim/test/kelvin_vector_instructions_test.cc
index a71530c..6f2cddf 100644
--- a/sim/test/kelvin_vector_instructions_test.cc
+++ b/sim/test/kelvin_vector_instructions_test.cc
@@ -1327,7 +1327,7 @@
template <typename T>
T KelvinVDmulhHelper(bool round, bool round_neg, T vs1, T vs2) {
constexpr int n = sizeof(T) * 8;
- int64_t result = static_cast<int64_t>(vs1) * static_cast<int64_t>(vs1);
+ int64_t result = static_cast<int64_t>(vs1) * static_cast<int64_t>(vs2);
if (round) {
int64_t rnd = 0x40000000ll >> (32 - n);
if (result < 0 && round_neg) {