Fix `vstq` address offset error
PiperOrigin-RevId: 577205259
diff --git a/sim/kelvin_vector_memory_instructions.cc b/sim/kelvin_vector_memory_instructions.cc
index 775bb7b..be16c35 100644
--- a/sim/kelvin_vector_memory_instructions.cc
+++ b/sim/kelvin_vector_memory_instructions.cc
@@ -212,8 +212,7 @@
const uint32_t quad_size = elts_per_register / 4;
for (int i = 0; i < 4; ++i) {
for (int j = 0; j < quad_size && address_index < elts_to_store; ++j) {
- addresses[address_index] =
- base_addr + (i * quad_size + j) * sizeof(T);
+ addresses[address_index] = base_addr + j * sizeof(T);
value[address_index] = source_span[i * quad_size + j];
mask[address_index++] = true;
}
diff --git a/sim/test/kelvin_vector_memory_instructions_test.cc b/sim/test/kelvin_vector_memory_instructions_test.cc
index 4c79c85..d236426 100644
--- a/sim/test/kelvin_vector_memory_instructions_test.cc
+++ b/sim/test/kelvin_vector_memory_instructions_test.cc
@@ -184,8 +184,7 @@
for (int i = 0; i < 4; ++i) {
for (int j = 0; j < quad_size; ++j) {
memory_values[op_num * vd_size + i * quad_size + j] =
- GetSavedMemoryValue<T>(addr +
- (i * quad_size + j) * sizeof(T));
+ GetSavedMemoryValue<T>(addr + j * sizeof(T));
}
// Stride increase per quad_size.
addr += rs2_value * sizeof(T);