Adding basic support for recognizing and handling SIMD intrinsics as HW intrinsics by tannergooding · Pull Request #35421 · dotnet/runtime (original) (raw)

x64 Windows AVX2 Diff:

Found 271 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of diff: -741 (-0.00% of base)
    diff is an improvement.

Top file regressions (bytes):
          21 : diff\System.Text.Encodings.Web.dasm (0.06% of base)

Top file improvements (bytes):
        -754 : diff\System.Private.CoreLib.dasm (-0.02% of base)
          -4 : diff\System.Net.WebSockets.dasm (-0.01% of base)
          -4 : diff\System.Net.WebSockets.WebSocketProtocol.dasm (-0.01% of base)

4 total files with Code Size differences (3 improved, 1 regressed), 262 unchanged.

Top method regressions (bytes):
          14 ( 4.96% of base) : diff\System.Text.Encodings.Web.dasm - Sse2Helper:CreateEscapingMask_UnsafeRelaxedJavaScriptEncoder(Vector128`1):Vector128`1 (2 methods)
           7 ( 7.22% of base) : diff\System.Text.Encodings.Web.dasm - Sse2Helper:CreateAsciiMask(Vector128`1):Vector128`1
           4 ( 0.33% of base) : diff\System.Private.CoreLib.dasm - Matrix4x4:CreateConstrainedBillboard(Vector3,Vector3,Vector3,Vector3,Vector3):Matrix4x4
           4 ( 8.00% of base) : diff\System.Private.CoreLib.dasm - Vector3:Distance(Vector3,Vector3):float
           4 ( 8.70% of base) : diff\System.Private.CoreLib.dasm - Vector3:DistanceSquared(Vector3,Vector3):float

Top method improvements (bytes):
         -40 (-4.87% of base) : diff\System.Private.CoreLib.dasm - Vector:AndNot(Vector`1,Vector`1):Vector`1 (6 methods)
         -38 (-15.02% of base) : diff\System.Private.CoreLib.dasm - Vector:Equals(Vector`1,Vector`1):Vector`1 (10 methods)
         -36 (-5.45% of base) : diff\System.Private.CoreLib.dasm - Vector:LessThanOrEqual(Vector`1,Vector`1):Vector`1 (10 methods)
         -36 (-5.45% of base) : diff\System.Private.CoreLib.dasm - Vector:GreaterThanOrEqual(Vector`1,Vector`1):Vector`1 (10 methods)
         -34 (-12.36% of base) : diff\System.Private.CoreLib.dasm - Vector:GreaterThan(Vector`1,Vector`1):Vector`1 (10 methods)
         -32 (-11.64% of base) : diff\System.Private.CoreLib.dasm - Vector:LessThan(Vector`1,Vector`1):Vector`1 (10 methods)
         -27 (-17.09% of base) : diff\System.Private.CoreLib.dasm - Vector:Min(Vector`1,Vector`1):Vector`1 (6 methods)
         -27 (-17.09% of base) : diff\System.Private.CoreLib.dasm - Vector:Max(Vector`1,Vector`1):Vector`1 (6 methods)
         -20 (-9.76% of base) : diff\System.Private.CoreLib.dasm - Vector`1:op_UnaryNegation(Vector`1):Vector`1 (6 methods)
         -20 (-4.07% of base) : diff\System.Private.CoreLib.dasm - Vector`1:op_OnesComplement(Vector`1):Vector`1 (6 methods)
         -20 (-3.18% of base) : diff\System.Private.CoreLib.dasm - Vector`1:ConditionalSelect(Vector`1,Vector`1,Vector`1):Vector`1 (6 methods)
         -20 (-14.29% of base) : diff\System.Private.CoreLib.dasm - Vector:BitwiseAnd(Vector`1,Vector`1):Vector`1 (6 methods)
         -20 (-14.29% of base) : diff\System.Private.CoreLib.dasm - Vector:BitwiseOr(Vector`1,Vector`1):Vector`1 (6 methods)
         -20 (-2.88% of base) : diff\System.Private.CoreLib.dasm - Vector:OnesComplement(Vector`1):Vector`1 (6 methods)
         -20 (-14.29% of base) : diff\System.Private.CoreLib.dasm - Vector:Xor(Vector`1,Vector`1):Vector`1 (6 methods)
         -20 (-7.58% of base) : diff\System.Private.CoreLib.dasm - Vector:EqualsAny(Vector`1,Vector`1):bool (6 methods)
         -20 (-2.54% of base) : diff\System.Private.CoreLib.dasm - Vector:LessThanOrEqualAll(Vector`1,Vector`1):bool (6 methods)
         -20 (-3.15% of base) : diff\System.Private.CoreLib.dasm - Vector:LessThanOrEqualAny(Vector`1,Vector`1):bool (6 methods)
         -20 (-2.54% of base) : diff\System.Private.CoreLib.dasm - Vector:GreaterThanOrEqualAll(Vector`1,Vector`1):bool (6 methods)
         -20 (-3.15% of base) : diff\System.Private.CoreLib.dasm - Vector:GreaterThanOrEqualAny(Vector`1,Vector`1):bool (6 methods)

Top method regressions (percentages):
           4 ( 8.70% of base) : diff\System.Private.CoreLib.dasm - Vector3:DistanceSquared(Vector3,Vector3):float
           4 ( 8.00% of base) : diff\System.Private.CoreLib.dasm - Vector3:Distance(Vector3,Vector3):float
           7 ( 7.22% of base) : diff\System.Text.Encodings.Web.dasm - Sse2Helper:CreateAsciiMask(Vector128`1):Vector128`1
          14 ( 4.96% of base) : diff\System.Text.Encodings.Web.dasm - Sse2Helper:CreateEscapingMask_UnsafeRelaxedJavaScriptEncoder(Vector128`1):Vector128`1 (2 methods)
           4 ( 0.33% of base) : diff\System.Private.CoreLib.dasm - Matrix4x4:CreateConstrainedBillboard(Vector3,Vector3,Vector3,Vector3,Vector3):Matrix4x4

Top method improvements (percentages):
          -8 (-24.24% of base) : diff\System.Private.CoreLib.dasm - Vector4:Clamp(Vector4,Vector4,Vector4):Vector4
          -4 (-17.39% of base) : diff\System.Private.CoreLib.dasm - Vector4:op_UnaryNegation(Vector4):Vector4
         -27 (-17.09% of base) : diff\System.Private.CoreLib.dasm - Vector:Min(Vector`1,Vector`1):Vector`1 (6 methods)
         -27 (-17.09% of base) : diff\System.Private.CoreLib.dasm - Vector:Max(Vector`1,Vector`1):Vector`1 (6 methods)
          -4 (-16.67% of base) : diff\System.Private.CoreLib.dasm - Vector4:Add(Vector4,Vector4):Vector4
          -4 (-16.67% of base) : diff\System.Private.CoreLib.dasm - Vector4:Subtract(Vector4,Vector4):Vector4
          -4 (-16.67% of base) : diff\System.Private.CoreLib.dasm - Vector4:Multiply(Vector4,Vector4):Vector4
          -4 (-16.67% of base) : diff\System.Private.CoreLib.dasm - Vector4:Divide(Vector4,Vector4):Vector4
          -4 (-16.67% of base) : diff\System.Private.CoreLib.dasm - Vector4:op_Multiply(Vector4,float):Vector4
          -4 (-16.00% of base) : diff\System.Private.CoreLib.dasm - Vector4:op_Multiply(float,Vector4):Vector4
          -2 (-15.38% of base) : diff\System.Private.CoreLib.dasm - Sse42:Crc32(int,ubyte):int
          -5 (-15.15% of base) : diff\System.Private.CoreLib.dasm - Vector`1:op_Multiply(int,Vector`1):Vector`1
         -38 (-15.02% of base) : diff\System.Private.CoreLib.dasm - Vector:Equals(Vector`1,Vector`1):Vector`1 (10 methods)
          -4 (-14.81% of base) : diff\System.Private.CoreLib.dasm - Vector`1:op_Multiply(Vector`1,double):Vector`1
          -2 (-14.29% of base) : diff\System.Private.CoreLib.dasm - Sse42:Crc32(int,ushort):int
          -4 (-14.29% of base) : diff\System.Private.CoreLib.dasm - Vector`1:op_Multiply(double,Vector`1):Vector`1
         -20 (-14.29% of base) : diff\System.Private.CoreLib.dasm - Vector:BitwiseAnd(Vector`1,Vector`1):Vector`1 (6 methods)
         -20 (-14.29% of base) : diff\System.Private.CoreLib.dasm - Vector:BitwiseOr(Vector`1,Vector`1):Vector`1 (6 methods)
         -20 (-14.29% of base) : diff\System.Private.CoreLib.dasm - Vector:Xor(Vector`1,Vector`1):Vector`1 (6 methods)
         -20 (-14.29% of base) : diff\System.Private.CoreLib.dasm - Vector:Add(Vector`1,Vector`1):Vector`1 (6 methods)

60 total methods with Code Size differences (55 improved, 5 regressed), 244683 unchanged.

1 files had text diffs but no metric diffs.
diff\System.Text.Json.dasm had 16 diffs

ARM64 AdvSIMD diff:

Found 274 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of diff: 0 (0.00% of base)

0 total files with Code Size differences (0 improved, 0 regressed), 266 unchanged.

0 total methods with Code Size differences (0 improved, 0 regressed), 244744 unchanged.

8 files had text diffs but no metric diffs.
System.Private.CoreLib.dasm had 366 diffs
System.Runtime.Numerics.dasm had 48 diffs
xunit.console.dasm had 6 diffs
Microsoft.CSharp.dasm had 4 diffs
System.ComponentModel.Annotations.dasm had 4 diffs
System.Data.Common.dasm had 4 diffs
System.Data.OleDb.dasm had 4 diffs
System.Security.Cryptography.Primitives.dasm had 2 diffs