diff --git a/src/backend_x64/emit_x64_vector_floating_point.cpp b/src/backend_x64/emit_x64_vector_floating_point.cpp index 4bc00d4b..db580a8f 100644 --- a/src/backend_x64/emit_x64_vector_floating_point.cpp +++ b/src/backend_x64/emit_x64_vector_floating_point.cpp @@ -154,13 +154,10 @@ template void ForceToDefaultNaN(BlockOfCode& code, EmitContext& ctx, Xbyak::Xmm result) { if (ctx.FPSCR_DN()) { const Xbyak::Xmm nan_mask = ctx.reg_alloc.ScratchXmm(); - const Xbyak::Xmm tmp = ctx.reg_alloc.ScratchXmm(); - code.pcmpeqw(tmp, tmp); code.movaps(nan_mask, result); FCODE(cmpordp)(nan_mask, nan_mask); code.andps(result, nan_mask); - code.xorps(nan_mask, tmp); - code.andps(nan_mask, GetNaNVector(code)); + code.andnps(nan_mask, GetNaNVector(code)); code.orps(result, nan_mask); } }