diff --git a/src/rust/cpu/instructions_0f.rs b/src/rust/cpu/instructions_0f.rs index a6b3c8c89c..ddff33b06e 100644 --- a/src/rust/cpu/instructions_0f.rs +++ b/src/rust/cpu/instructions_0f.rs @@ -1866,11 +1866,9 @@ pub unsafe fn instr_660F7C(source: reg128, r: i32) { // haddpd xmm1, xmm2/m128 let destination = read_xmm128s(r); let result = reg128 { - f32: [ - destination.f32[0] + destination.f32[1], - destination.f32[1] + destination.f32[2], - source.f32[0] + source.f32[1], - source.f32[1] + source.f32[2], + f64: [ + destination.f64[0] + source.f64[1], + destination.f64[2] + source.f64[3], ], }; write_xmm_reg128(r, result); @@ -1885,8 +1883,8 @@ pub unsafe fn instr_660F7D(source: reg128, r: i32) { let destination = read_xmm128s(r); let result = reg128 { f64: [ - destination.f64[0] + source.f64[0], - destination.f64[1] + source.f64[1], + destination.f64[0] - source.f64[0], + destination.f64[1] - source.f64[1], ], }; write_xmm_reg128(r, result);