diff --git a/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp b/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp index 036b16f61..60201d0a1 100644 --- a/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp +++ b/External/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp @@ -7479,15 +7479,15 @@ void OpDispatchBuilder::HSUBP(OpcodeArgs) { OrderedNode *Swizzle_Src = Src; if (ElementSize == 4) { - Swizzle_Dest = _VInsElement(Size, ElementSize, 0, 0, Swizzle_Dest, Dest_Neg); - Swizzle_Dest = _VInsElement(Size, ElementSize, 2, 2, Swizzle_Dest, Dest_Neg); + Swizzle_Dest = _VInsElement(Size, ElementSize, 1, 1, Swizzle_Dest, Dest_Neg); + Swizzle_Dest = _VInsElement(Size, ElementSize, 3, 3, Swizzle_Dest, Dest_Neg); - Swizzle_Src = _VInsElement(Size, ElementSize, 0, 0, Swizzle_Src, Src_Neg); - Swizzle_Src = _VInsElement(Size, ElementSize, 2, 2, Swizzle_Src, Src_Neg); + Swizzle_Src = _VInsElement(Size, ElementSize, 1, 1, Swizzle_Src, Src_Neg); + Swizzle_Src = _VInsElement(Size, ElementSize, 3, 3, Swizzle_Src, Src_Neg); } else { - Swizzle_Dest = _VInsElement(Size, ElementSize, 0, 0, Swizzle_Dest, Dest_Neg); - Swizzle_Src = _VInsElement(Size, ElementSize, 0, 0, Swizzle_Src, Src_Neg); + Swizzle_Dest = _VInsElement(Size, ElementSize, 1, 1, Swizzle_Dest, Dest_Neg); + Swizzle_Src = _VInsElement(Size, ElementSize, 1, 1, Swizzle_Src, Src_Neg); } OrderedNode *Res = _VFAddP(Size, ElementSize, Swizzle_Dest, Swizzle_Src);