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