diff --git a/FEXCore/Source/Interface/Core/JIT/VectorOps.cpp b/FEXCore/Source/Interface/Core/JIT/VectorOps.cpp index 3ea91adae..f39b8f1fb 100644 --- a/FEXCore/Source/Interface/Core/JIT/VectorOps.cpp +++ b/FEXCore/Source/Interface/Core/JIT/VectorOps.cpp @@ -3558,9 +3558,13 @@ DEF_OP(VSQXTN2) { mov(Dst.Q(), VectorLower.Q()); ins(ARMEmitter::SubRegSize::i32Bit, Dst, 1, VTMP2, 0); } else { - mov(VTMP1.Q(), VectorLower.Q()); - sqxtn2(SubRegSize, VTMP1, VectorUpper); - mov(Dst.Q(), VTMP1.Q()); + if (Dst == VectorLower) { + sqxtn2(SubRegSize, VectorLower, VectorUpper); + } else { + mov(VTMP1.Q(), VectorLower.Q()); + sqxtn2(SubRegSize, VTMP1, VectorUpper); + mov(Dst.Q(), VTMP1.Q()); + } } } }