diff --git a/X10D/src/Core/SpanExtensions.cs b/X10D/src/Core/SpanExtensions.cs index 77ecedeea..c1f0fc399 100644 --- a/X10D/src/Core/SpanExtensions.cs +++ b/X10D/src/Core/SpanExtensions.cs @@ -356,8 +356,11 @@ public static unsafe int PackInt32(this ReadOnlySpan source) Vector128 vector1 = AdvSimd.LoadVector128((byte*)pSource).CorrectBoolean().AsUInt64(); Vector128 vector2 = AdvSimd.LoadVector128((byte*)(pSource + 16)).CorrectBoolean().AsUInt64(); - Vector128 calc1 = AdvSimd.ShiftRightLogical(IntrinsicUtility.Multiply(IntegerPackingMagicV128, vector1), 56); - Vector128 calc2 = AdvSimd.ShiftRightLogical(IntrinsicUtility.Multiply(IntegerPackingMagicV128, vector2), 56); + Vector128 calc1 = IntrinsicUtility.Multiply(IntegerPackingMagicV128, vector1); + Vector128 calc2 = IntrinsicUtility.Multiply(IntegerPackingMagicV128, vector2); + + calc1 = AdvSimd.ShiftRightLogical(calc1, 56); + calc2 = AdvSimd.ShiftRightLogical(calc2, 56); Vector128 shift1 = AdvSimd.ShiftLogical(calc1, Vector128.Create(0, 8)); Vector128 shift2 = AdvSimd.ShiftLogical(calc2, Vector128.Create(16, 24));