Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JitDiff X64] [hez2010] Always inline number conversions #974

Open
MihuBot opened this issue Feb 1, 2025 · 3 comments
Open

[JitDiff X64] [hez2010] Always inline number conversions #974

MihuBot opened this issue Feb 1, 2025 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Feb 1, 2025

Job completed in 15 minutes 36 seconds (remote runner delay: 1 minute 21 seconds).
dotnet/runtime#112061

Diffs

Diffs
Found 89 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 43608351
Total bytes of diff: 43603043
Total bytes of delta: -5308 (-0.01 % of base)
Total relative delta: -48.60
    diff is an improvement.
    relative diff is an improvement.


Top file improvements (bytes):
       -4133 : System.Private.CoreLib.dasm (-0.06 % of base)
        -692 : System.Numerics.Tensors.dasm (-0.04 % of base)
        -250 : System.Security.Cryptography.dasm (-0.02 % of base)
        -149 : System.Formats.Tar.dasm (-0.11 % of base)
         -46 : System.Runtime.InteropServices.dasm (-0.19 % of base)
         -38 : System.Linq.dasm (-0.00 % of base)

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

Top method regressions (bytes):
          22 (169.23 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
          22 (169.23 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
          22 (169.23 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
          21 (161.54 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[int](int,byref):ubyte (FullOpts)
          21 (123.53 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[short](short,byref):ubyte (FullOpts)
          21 (161.54 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[int](int,byref):ubyte (FullOpts)
          21 (123.53 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[short](short,byref):ubyte (FullOpts)
          21 (161.54 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[int](int,byref):ubyte (FullOpts)
          21 (123.53 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[short](short,byref):ubyte (FullOpts)
          13 (100.00 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[double](double,byref):ubyte (FullOpts)
          13 (100.00 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[double](double,byref):ubyte (FullOpts)
          13 (100.00 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[double](double,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromChecked[int](int,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromChecked[short](short,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromSaturating[int](int,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromSaturating[short](short,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromTruncating[int](int,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromTruncating[short](short,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromChecked[int](int,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromChecked[short](short,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromChecked[ubyte](ubyte,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromSaturating[int](int,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromSaturating[short](short,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromSaturating[ubyte](ubyte,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromTruncating[int](int,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromTruncating[short](short,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromTruncating[ubyte](ubyte,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromChecked[int](int,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromChecked[short](short,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromSaturating[int](int,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromSaturating[short](short,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromTruncating[int](int,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromTruncating[short](short,byref):ubyte (FullOpts)
           4 (23.53 % of base) : System.Private.CoreLib.dasm - System.Decimal:System.Numerics.INumberBase<System.Decimal>.TryConvertFromSaturating[ubyte](ubyte,byref):ubyte (FullOpts)
           4 (23.53 % of base) : System.Private.CoreLib.dasm - System.Decimal:System.Numerics.INumberBase<System.Decimal>.TryConvertFromTruncating[ubyte](ubyte,byref):ubyte (FullOpts)
           1 (7.69 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromChecked[double](double,byref):ubyte (FullOpts)
           1 (7.69 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromSaturating[double](double,byref):ubyte (FullOpts)
           1 (7.69 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromTruncating[double](double,byref):ubyte (FullOpts)

Top method improvements (bytes):
        -157 (-77.72 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:<IsValidLabel>g__IsLabelChar|7_0[double](double):ubyte (FullOpts)
        -149 (-56.02 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:ParseOctal[double](System.ReadOnlySpan`1[ubyte]):double (FullOpts)
        -100 (-65.36 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double]:.ctor(int):this (FullOpts)
         -93 (-34.57 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:IsValidLabel[double](System.ReadOnlySpan`1[double]):ubyte (FullOpts)
         -87 (-42.65 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:ScaleB[double](System.ReadOnlySpan`1[double],int,System.Span`1[double]) (FullOpts)
         -83 (-65.35 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         -83 (-65.35 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:DegreesToRadians(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         -82 (-65.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:DegreesToRadians(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[float] (FullOpts)
         -71 (-5.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:StdDev[double](byref):double (FullOpts)
         -70 (-67.31 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
         -70 (-65.42 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
         -70 (-67.31 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:DegreesToRadians(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
         -70 (-65.42 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:DegreesToRadians(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
         -69 (-66.99 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:DegreesToRadians(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (FullOpts)
         -69 (-65.09 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:DegreesToRadians(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[float] (FullOpts)
         -68 (-80.95 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateSaturating[double](double):System.Runtime.InteropServices.NFloat (FullOpts)
         -68 (-80.95 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateTruncating[double](double):System.Runtime.InteropServices.NFloat (FullOpts)
         -65 (-75.58 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector2:DegreesToRadians(System.Numerics.Vector2):System.Numerics.Vector2 (FullOpts)
         -65 (-75.58 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector2:RadiansToDegrees(System.Numerics.Vector2):System.Numerics.Vector2 (FullOpts)
         -65 (-64.36 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector3:DegreesToRadians(System.Numerics.Vector3):System.Numerics.Vector3 (FullOpts)
         -65 (-64.36 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector3:RadiansToDegrees(System.Numerics.Vector3):System.Numerics.Vector3 (FullOpts)
         -65 (-68.42 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector4:DegreesToRadians(System.Numerics.Vector4):System.Numerics.Vector4 (FullOpts)
         -65 (-68.42 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector4:RadiansToDegrees(System.Numerics.Vector4):System.Numerics.Vector4 (FullOpts)
         -64 (-63.37 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:DegreesToRadians(System.Numerics.Vector`1[double]):System.Numerics.Vector`1[double] (FullOpts)
         -63 (-63.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:DegreesToRadians(System.Numerics.Vector`1[float]):System.Numerics.Vector`1[float] (FullOpts)
         -62 (-73.81 % of base) : System.Private.CoreLib.dasm - System.Single:CreateSaturating[double](double):float (FullOpts)
         -62 (-73.81 % of base) : System.Private.CoreLib.dasm - System.Single:CreateTruncating[double](double):float (FullOpts)
         -60 (-61.86 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:RadiansToDegrees(System.Numerics.Vector`1[double]):System.Numerics.Vector`1[double] (FullOpts)
         -59 (-61.46 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:RadiansToDegrees(System.Numerics.Vector`1[float]):System.Numerics.Vector`1[float] (FullOpts)
         -59 (-98.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateChecked[double](double):System.Runtime.InteropServices.NFloat (FullOpts)
         -57 (-69.51 % of base) : System.Private.CoreLib.dasm - System.Half:CreateSaturating[double](double):System.Half (FullOpts)
         -57 (-69.51 % of base) : System.Private.CoreLib.dasm - System.Half:CreateTruncating[double](double):System.Half (FullOpts)
         -57 (-62.64 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+RadiansToDegreesOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
         -57 (-60.64 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+RadiansToDegreesOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
         -57 (-56.44 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+RadiansToDegreesOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         -57 (-62.64 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:RadiansToDegrees(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
         -57 (-60.64 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:RadiansToDegrees(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
         -57 (-56.44 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:RadiansToDegrees(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         -56 (-62.22 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:RadiansToDegrees(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (FullOpts)
         -56 (-60.22 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:RadiansToDegrees(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[float] (FullOpts)
         -56 (-56.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:RadiansToDegrees(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[float] (FullOpts)
         -54 (-91.53 % of base) : System.Private.CoreLib.dasm - System.Single:CreateChecked[double](double):float (FullOpts)
         -51 (-85.00 % of base) : System.Private.CoreLib.dasm - System.Double:CreateChecked[int](int):double (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Double:CreateChecked[short](short):double (FullOpts)
         -51 (-85.00 % of base) : System.Private.CoreLib.dasm - System.Double:CreateSaturating[int](int):double (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Double:CreateSaturating[short](short):double (FullOpts)
         -51 (-85.00 % of base) : System.Private.CoreLib.dasm - System.Double:CreateTruncating[int](int):double (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Double:CreateTruncating[short](short):double (FullOpts)
         -51 (-85.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateChecked[int](int):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateChecked[short](short):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateChecked[ubyte](ubyte):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-85.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateSaturating[int](int):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateSaturating[short](short):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateSaturating[ubyte](ubyte):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-85.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateTruncating[int](int):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateTruncating[short](short):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateTruncating[ubyte](ubyte):System.Runtime.InteropServices.NFloat (FullOpts)
         -50 (-83.33 % of base) : System.Private.CoreLib.dasm - System.Double:CreateChecked[long](long):double (FullOpts)
         -50 (-83.33 % of base) : System.Private.CoreLib.dasm - System.Double:CreateSaturating[long](long):double (FullOpts)
         -50 (-83.33 % of base) : System.Private.CoreLib.dasm - System.Double:CreateTruncating[long](long):double (FullOpts)
         -50 (-83.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateChecked[long](long):System.Runtime.InteropServices.NFloat (FullOpts)
         -50 (-83.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateSaturating[long](long):System.Runtime.InteropServices.NFloat (FullOpts)
         -50 (-83.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateTruncating[long](long):System.Runtime.InteropServices.NFloat (FullOpts)
         -50 (-84.75 % of base) : System.Private.CoreLib.dasm - System.Single:CreateChecked[int](int):float (FullOpts)
         -50 (-79.37 % of base) : System.Private.CoreLib.dasm - System.Single:CreateChecked[short](short):float (FullOpts)
         -50 (-84.75 % of base) : System.Private.CoreLib.dasm - System.Single:CreateSaturating[int](int):float (FullOpts)
         -50 (-79.37 % of base) : System.Private.CoreLib.dasm - System.Single:CreateSaturating[short](short):float (FullOpts)
         -50 (-84.75 % of base) : System.Private.CoreLib.dasm - System.Single:CreateTruncating[int](int):float (FullOpts)
         -50 (-79.37 % of base) : System.Private.CoreLib.dasm - System.Single:CreateTruncating[short](short):float (FullOpts)
         -49 (-83.05 % of base) : System.Private.CoreLib.dasm - System.Single:CreateChecked[long](long):float (FullOpts)
         -49 (-83.05 % of base) : System.Private.CoreLib.dasm - System.Single:CreateSaturating[long](long):float (FullOpts)
         -49 (-83.05 % of base) : System.Private.CoreLib.dasm - System.Single:CreateTruncating[long](long):float (FullOpts)
         -48 (-78.69 % of base) : System.Private.CoreLib.dasm - System.Double:CreateChecked[ubyte](ubyte):double (FullOpts)
         -48 (-78.69 % of base) : System.Private.CoreLib.dasm - System.Double:CreateSaturating[ubyte](ubyte):double (FullOpts)
         -48 (-78.69 % of base) : System.Private.CoreLib.dasm - System.Double:CreateTruncating[ubyte](ubyte):double (FullOpts)
         -48 (-78.69 % of base) : System.Private.CoreLib.dasm - System.Single:CreateChecked[ubyte](ubyte):float (FullOpts)
         -48 (-78.69 % of base) : System.Private.CoreLib.dasm - System.Single:CreateSaturating[ubyte](ubyte):float (FullOpts)
         -48 (-78.69 % of base) : System.Private.CoreLib.dasm - System.Single:CreateTruncating[ubyte](ubyte):float (FullOpts)
         -46 (-63.89 % of base) : System.Runtime.InteropServices.dasm - System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller`1[double]:ConvertToUnmanaged(System.Exception):double (FullOpts)
         -40 (-20.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:Average[double](byref):double (FullOpts)
         -38 (-53.52 % of base) : System.Private.CoreLib.dasm - System.Half:CreateChecked[ubyte](ubyte):System.Half (FullOpts)
         -38 (-53.52 % of base) : System.Private.CoreLib.dasm - System.Half:CreateSaturating[ubyte](ubyte):System.Half (FullOpts)
         -38 (-53.52 % of base) : System.Private.CoreLib.dasm - System.Half:CreateTruncating[ubyte](ubyte):System.Half (FullOpts)
         -38 (-14.90 % of base) : System.Linq.dasm - System.Linq.Enumerable:Sum[double,long](System.Collections.Generic.IEnumerable`1[System.Nullable`1[double]]):System.Nullable`1[double] (FullOpts)
         -37 (-63.79 % of base) : System.Private.CoreLib.dasm - System.Half:CreateChecked[double](double):System.Half (FullOpts)
         -32 (-45.71 % of base) : System.Private.CoreLib.dasm - System.Decimal:CreateSaturating[ubyte](ubyte):System.Decimal (FullOpts)
         -32 (-45.71 % of base) : System.Private.CoreLib.dasm - System.Decimal:CreateTruncating[ubyte](ubyte):System.Decimal (FullOpts)
         -29 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Half:CreateChecked[int](int):System.Half (FullOpts)
         -29 (-46.77 % of base) : System.Private.CoreLib.dasm - System.Half:CreateChecked[short](short):System.Half (FullOpts)
         -29 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Half:CreateSaturating[int](int):System.Half (FullOpts)
         -29 (-46.77 % of base) : System.Private.CoreLib.dasm - System.Half:CreateSaturating[short](short):System.Half (FullOpts)
         -29 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Half:CreateTruncating[int](int):System.Half (FullOpts)
         -29 (-46.77 % of base) : System.Private.CoreLib.dasm - System.Half:CreateTruncating[short](short):System.Half (FullOpts)
         -28 (-32.18 % of base) : System.Private.CoreLib.dasm - System.Decimal:CreateSaturating[long](long):System.Decimal (FullOpts)
         -28 (-32.94 % of base) : System.Private.CoreLib.dasm - System.Decimal:CreateSaturating[short](short):System.Decimal (FullOpts)
         -28 (-32.18 % of base) : System.Private.CoreLib.dasm - System.Decimal:CreateTruncating[long](long):System.Decimal (FullOpts)
         -28 (-32.94 % of base) : System.Private.CoreLib.dasm - System.Decimal:CreateTruncating[short](short):System.Decimal (FullOpts)
         -28 (-48.28 % of base) : System.Private.CoreLib.dasm - System.Half:CreateChecked[long](long):System.Half (FullOpts)
         -28 (-48.28 % of base) : System.Private.CoreLib.dasm - System.Half:CreateSaturating[long](long):System.Half (FullOpts)
         -28 (-48.28 % of base) : System.Private.CoreLib.dasm - System.Half:CreateTruncating[long](long):System.Half (FullOpts)

Top method regressions (percentages):
          22 (169.23 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
          22 (169.23 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
          22 (169.23 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
          21 (161.54 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[int](int,byref):ubyte (FullOpts)
          21 (161.54 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[int](int,byref):ubyte (FullOpts)
          21 (161.54 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[int](int,byref):ubyte (FullOpts)
          21 (123.53 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[short](short,byref):ubyte (FullOpts)
          21 (123.53 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[short](short,byref):ubyte (FullOpts)
          21 (123.53 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[short](short,byref):ubyte (FullOpts)
          13 (100.00 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[double](double,byref):ubyte (FullOpts)
          13 (100.00 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[double](double,byref):ubyte (FullOpts)
          13 (100.00 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[double](double,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
           6 (46.15 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromChecked[int](int,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromSaturating[int](int,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromTruncating[int](int,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromChecked[int](int,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromSaturating[int](int,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromTruncating[int](int,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromChecked[int](int,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromSaturating[int](int,byref):ubyte (FullOpts)
           5 (38.46 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromTruncating[int](int,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromChecked[short](short,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromSaturating[short](short,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromTruncating[short](short,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromChecked[short](short,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromChecked[ubyte](ubyte,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromSaturating[short](short,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromSaturating[ubyte](ubyte,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromTruncating[short](short,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromTruncating[ubyte](ubyte,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromChecked[short](short,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromSaturating[short](short,byref):ubyte (FullOpts)
           5 (29.41 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromTruncating[short](short,byref):ubyte (FullOpts)
           4 (23.53 % of base) : System.Private.CoreLib.dasm - System.Decimal:System.Numerics.INumberBase<System.Decimal>.TryConvertFromSaturating[ubyte](ubyte,byref):ubyte (FullOpts)
           4 (23.53 % of base) : System.Private.CoreLib.dasm - System.Decimal:System.Numerics.INumberBase<System.Decimal>.TryConvertFromTruncating[ubyte](ubyte,byref):ubyte (FullOpts)
           1 (7.69 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromChecked[double](double,byref):ubyte (FullOpts)
           1 (7.69 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromSaturating[double](double,byref):ubyte (FullOpts)
           1 (7.69 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromTruncating[double](double,byref):ubyte (FullOpts)

Top method improvements (percentages):
         -59 (-98.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateChecked[double](double):System.Runtime.InteropServices.NFloat (FullOpts)
         -54 (-91.53 % of base) : System.Private.CoreLib.dasm - System.Single:CreateChecked[double](double):float (FullOpts)
         -51 (-85.00 % of base) : System.Private.CoreLib.dasm - System.Double:CreateChecked[int](int):double (FullOpts)
         -51 (-85.00 % of base) : System.Private.CoreLib.dasm - System.Double:CreateSaturating[int](int):double (FullOpts)
         -51 (-85.00 % of base) : System.Private.CoreLib.dasm - System.Double:CreateTruncating[int](int):double (FullOpts)
         -51 (-85.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateChecked[int](int):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-85.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateSaturating[int](int):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-85.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateTruncating[int](int):System.Runtime.InteropServices.NFloat (FullOpts)
         -50 (-84.75 % of base) : System.Private.CoreLib.dasm - System.Single:CreateChecked[int](int):float (FullOpts)
         -50 (-84.75 % of base) : System.Private.CoreLib.dasm - System.Single:CreateSaturating[int](int):float (FullOpts)
         -50 (-84.75 % of base) : System.Private.CoreLib.dasm - System.Single:CreateTruncating[int](int):float (FullOpts)
         -50 (-83.33 % of base) : System.Private.CoreLib.dasm - System.Double:CreateChecked[long](long):double (FullOpts)
         -50 (-83.33 % of base) : System.Private.CoreLib.dasm - System.Double:CreateSaturating[long](long):double (FullOpts)
         -50 (-83.33 % of base) : System.Private.CoreLib.dasm - System.Double:CreateTruncating[long](long):double (FullOpts)
         -50 (-83.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateChecked[long](long):System.Runtime.InteropServices.NFloat (FullOpts)
         -50 (-83.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateSaturating[long](long):System.Runtime.InteropServices.NFloat (FullOpts)
         -50 (-83.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateTruncating[long](long):System.Runtime.InteropServices.NFloat (FullOpts)
         -49 (-83.05 % of base) : System.Private.CoreLib.dasm - System.Single:CreateChecked[long](long):float (FullOpts)
         -49 (-83.05 % of base) : System.Private.CoreLib.dasm - System.Single:CreateSaturating[long](long):float (FullOpts)
         -49 (-83.05 % of base) : System.Private.CoreLib.dasm - System.Single:CreateTruncating[long](long):float (FullOpts)
         -68 (-80.95 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateSaturating[double](double):System.Runtime.InteropServices.NFloat (FullOpts)
         -68 (-80.95 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateTruncating[double](double):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Double:CreateChecked[short](short):double (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Double:CreateSaturating[short](short):double (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Double:CreateTruncating[short](short):double (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateChecked[short](short):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateChecked[ubyte](ubyte):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateSaturating[short](short):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateSaturating[ubyte](ubyte):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateTruncating[short](short):System.Runtime.InteropServices.NFloat (FullOpts)
         -51 (-79.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.NFloat:CreateTruncating[ubyte](ubyte):System.Runtime.InteropServices.NFloat (FullOpts)
         -50 (-79.37 % of base) : System.Private.CoreLib.dasm - System.Single:CreateChecked[short](short):float (FullOpts)
         -50 (-79.37 % of base) : System.Private.CoreLib.dasm - System.Single:CreateSaturating[short](short):float (FullOpts)
         -50 (-79.37 % of base) : System.Private.CoreLib.dasm - System.Single:CreateTruncating[short](short):float (FullOpts)
         -48 (-78.69 % of base) : System.Private.CoreLib.dasm - System.Double:CreateChecked[ubyte](ubyte):double (FullOpts)
         -48 (-78.69 % of base) : System.Private.CoreLib.dasm - System.Double:CreateSaturating[ubyte](ubyte):double (FullOpts)
         -48 (-78.69 % of base) : System.Private.CoreLib.dasm - System.Double:CreateTruncating[ubyte](ubyte):double (FullOpts)
         -48 (-78.69 % of base) : System.Private.CoreLib.dasm - System.Single:CreateChecked[ubyte](ubyte):float (FullOpts)
         -48 (-78.69 % of base) : System.Private.CoreLib.dasm - System.Single:CreateSaturating[ubyte](ubyte):float (FullOpts)
         -48 (-78.69 % of base) : System.Private.CoreLib.dasm - System.Single:CreateTruncating[ubyte](ubyte):float (FullOpts)
        -157 (-77.72 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:<IsValidLabel>g__IsLabelChar|7_0[double](double):ubyte (FullOpts)
         -65 (-75.58 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector2:DegreesToRadians(System.Numerics.Vector2):System.Numerics.Vector2 (FullOpts)
         -65 (-75.58 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector2:RadiansToDegrees(System.Numerics.Vector2):System.Numerics.Vector2 (FullOpts)
         -62 (-73.81 % of base) : System.Private.CoreLib.dasm - System.Single:CreateSaturating[double](double):float (FullOpts)
         -62 (-73.81 % of base) : System.Private.CoreLib.dasm - System.Single:CreateTruncating[double](double):float (FullOpts)
         -12 (-70.59 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromChecked[ubyte](ubyte,byref):ubyte (FullOpts)
         -12 (-70.59 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromSaturating[ubyte](ubyte,byref):ubyte (FullOpts)
         -12 (-70.59 % of base) : System.Private.CoreLib.dasm - System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromTruncating[ubyte](ubyte,byref):ubyte (FullOpts)
         -57 (-69.51 % of base) : System.Private.CoreLib.dasm - System.Half:CreateSaturating[double](double):System.Half (FullOpts)
         -57 (-69.51 % of base) : System.Private.CoreLib.dasm - System.Half:CreateTruncating[double](double):System.Half (FullOpts)
         -65 (-68.42 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector4:DegreesToRadians(System.Numerics.Vector4):System.Numerics.Vector4 (FullOpts)
         -65 (-68.42 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector4:RadiansToDegrees(System.Numerics.Vector4):System.Numerics.Vector4 (FullOpts)
         -70 (-67.31 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
         -70 (-67.31 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:DegreesToRadians(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
         -69 (-66.99 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:DegreesToRadians(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (FullOpts)
         -70 (-65.42 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
         -70 (-65.42 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:DegreesToRadians(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
        -100 (-65.36 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double]:.ctor(int):this (FullOpts)
         -83 (-65.35 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         -83 (-65.35 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:DegreesToRadians(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         -69 (-65.09 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:DegreesToRadians(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[float] (FullOpts)
         -82 (-65.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:DegreesToRadians(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[float] (FullOpts)
         -11 (-64.71 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromChecked[ubyte](ubyte,byref):ubyte (FullOpts)
         -11 (-64.71 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromSaturating[ubyte](ubyte,byref):ubyte (FullOpts)
         -11 (-64.71 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromTruncating[ubyte](ubyte,byref):ubyte (FullOpts)
         -65 (-64.36 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector3:DegreesToRadians(System.Numerics.Vector3):System.Numerics.Vector3 (FullOpts)
         -65 (-64.36 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector3:RadiansToDegrees(System.Numerics.Vector3):System.Numerics.Vector3 (FullOpts)
         -46 (-63.89 % of base) : System.Runtime.InteropServices.dasm - System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller`1[double]:ConvertToUnmanaged(System.Exception):double (FullOpts)
         -37 (-63.79 % of base) : System.Private.CoreLib.dasm - System.Half:CreateChecked[double](double):System.Half (FullOpts)
         -64 (-63.37 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:DegreesToRadians(System.Numerics.Vector`1[double]):System.Numerics.Vector`1[double] (FullOpts)
         -63 (-63.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:DegreesToRadians(System.Numerics.Vector`1[float]):System.Numerics.Vector`1[float] (FullOpts)
         -57 (-62.64 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+RadiansToDegreesOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
         -57 (-62.64 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:RadiansToDegrees(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
         -56 (-62.22 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:RadiansToDegrees(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (FullOpts)
         -60 (-61.86 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:RadiansToDegrees(System.Numerics.Vector`1[double]):System.Numerics.Vector`1[double] (FullOpts)
         -59 (-61.46 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:RadiansToDegrees(System.Numerics.Vector`1[float]):System.Numerics.Vector`1[float] (FullOpts)
         -57 (-60.64 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+RadiansToDegreesOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
         -57 (-60.64 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:RadiansToDegrees(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
         -56 (-60.22 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:RadiansToDegrees(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[float] (FullOpts)
         -57 (-56.44 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+RadiansToDegreesOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
         -57 (-56.44 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:RadiansToDegrees(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
        -149 (-56.02 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:ParseOctal[double](System.ReadOnlySpan`1[ubyte]):double (FullOpts)
         -56 (-56.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:RadiansToDegrees(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[float] (FullOpts)
          -7 (-53.85 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromChecked[double](double,byref):ubyte (FullOpts)
          -7 (-53.85 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromSaturating[double](double,byref):ubyte (FullOpts)
          -7 (-53.85 % of base) : System.Private.CoreLib.dasm - System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromTruncating[double](double,byref):ubyte (FullOpts)
         -38 (-53.52 % of base) : System.Private.CoreLib.dasm - System.Half:CreateChecked[ubyte](ubyte):System.Half (FullOpts)
         -38 (-53.52 % of base) : System.Private.CoreLib.dasm - System.Half:CreateSaturating[ubyte](ubyte):System.Half (FullOpts)
         -38 (-53.52 % of base) : System.Private.CoreLib.dasm - System.Half:CreateTruncating[ubyte](ubyte):System.Half (FullOpts)
          -9 (-52.94 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[ubyte](ubyte,byref):ubyte (FullOpts)
          -9 (-52.94 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[ubyte](ubyte,byref):ubyte (FullOpts)
          -9 (-52.94 % of base) : System.Private.CoreLib.dasm - System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[ubyte](ubyte,byref):ubyte (FullOpts)
         -29 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Half:CreateChecked[int](int):System.Half (FullOpts)
         -29 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Half:CreateSaturating[int](int):System.Half (FullOpts)
         -29 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Half:CreateTruncating[int](int):System.Half (FullOpts)
         -28 (-48.28 % of base) : System.Private.CoreLib.dasm - System.Half:CreateChecked[long](long):System.Half (FullOpts)
         -28 (-48.28 % of base) : System.Private.CoreLib.dasm - System.Half:CreateSaturating[long](long):System.Half (FullOpts)
         -28 (-48.28 % of base) : System.Private.CoreLib.dasm - System.Half:CreateTruncating[long](long):System.Half (FullOpts)
         -29 (-46.77 % of base) : System.Private.CoreLib.dasm - System.Half:CreateChecked[short](short):System.Half (FullOpts)
         -29 (-46.77 % of base) : System.Private.CoreLib.dasm - System.Half:CreateSaturating[short](short):System.Half (FullOpts)

174 total methods with Code Size differences (127 improved, 47 regressed), 247226 unchanged.

--------------------------------------------------------------------------------

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Feb 1, 2025

Top method regressions

22 (169.23 % of base) - System.Half:System.Numerics.INumberBase.TryConvertFromChecked[long](long,byref):ubyte
 ; Assembly listing for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rdi         single-def
-;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
+;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rbx         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M34483_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbx
+       mov      rbx, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M34483_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Half:TryConvertFrom[long](long,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2ss xmm0, xmm0, rdi
+       mov      rax, 0xD1FFAB1E      ; code for System.Half:op_Explicit(float):System.Half
+       call     [rax]System.Half:op_Explicit(float):System.Half
+       mov      word  ptr [rbx], ax
+       mov      eax, 1
+						;; size=29 bbWeight=1 PerfScore 10.83
 G_M34483_IG03:
-       tail.jmp [rax]System.Half:TryConvertFrom[long](long,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       pop      rbx
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=be48794c) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
+; Total bytes of code 35, prolog size 1, PerfScore 13.58, instruction count 10, allocated bytes for code 35 (MethodHash=be48794c) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
 ; ============================================================
22 (169.23 % of base) - System.Half:System.Numerics.INumberBase.TryConvertFromSaturating[long](long,byref):ubyte
 ; Assembly listing for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rdi         single-def
-;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
+;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rbx         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M2048_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbx
+       mov      rbx, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M2048_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Half:TryConvertFrom[long](long,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2ss xmm0, xmm0, rdi
+       mov      rax, 0xD1FFAB1E      ; code for System.Half:op_Explicit(float):System.Half
+       call     [rax]System.Half:op_Explicit(float):System.Half
+       mov      word  ptr [rbx], ax
+       mov      eax, 1
+						;; size=29 bbWeight=1 PerfScore 10.83
 G_M2048_IG03:
-       tail.jmp [rax]System.Half:TryConvertFrom[long](long,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       pop      rbx
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=64a2f7ff) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
+; Total bytes of code 35, prolog size 1, PerfScore 13.58, instruction count 10, allocated bytes for code 35 (MethodHash=64a2f7ff) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
 ; ============================================================
22 (169.23 % of base) - System.Half:System.Numerics.INumberBase.TryConvertFromTruncating[long](long,byref):ubyte
 ; Assembly listing for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rdi         single-def
-;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
+;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rbx         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M19455_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbx
+       mov      rbx, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M19455_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Half:TryConvertFrom[long](long,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2ss xmm0, xmm0, rdi
+       mov      rax, 0xD1FFAB1E      ; code for System.Half:op_Explicit(float):System.Half
+       call     [rax]System.Half:op_Explicit(float):System.Half
+       mov      word  ptr [rbx], ax
+       mov      eax, 1
+						;; size=29 bbWeight=1 PerfScore 10.83
 G_M19455_IG03:
-       tail.jmp [rax]System.Half:TryConvertFrom[long](long,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       pop      rbx
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=97f9b400) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
+; Total bytes of code 35, prolog size 1, PerfScore 13.58, instruction count 10, allocated bytes for code 35 (MethodHash=97f9b400) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
 ; ============================================================
21 (161.54 % of base) - System.Half:System.Numerics.INumberBase.TryConvertFromChecked[int](int,byref):ubyte
 ; Assembly listing for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[int](int,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )     int  ->  rdi         single-def
-;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
+;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rbx         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M12403_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbx
+       mov      rbx, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M12403_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Half:TryConvertFrom[int](int,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2ss xmm0, xmm0, edi
+       mov      rax, 0xD1FFAB1E      ; code for System.Half:op_Explicit(float):System.Half
+       call     [rax]System.Half:op_Explicit(float):System.Half
+       mov      word  ptr [rbx], ax
+       mov      eax, 1
+						;; size=28 bbWeight=1 PerfScore 10.83
 G_M12403_IG03:
-       tail.jmp [rax]System.Half:TryConvertFrom[int](int,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       pop      rbx
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=89c2cf8c) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[int](int,byref):ubyte (FullOpts)
+; Total bytes of code 34, prolog size 1, PerfScore 13.58, instruction count 10, allocated bytes for code 34 (MethodHash=89c2cf8c) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[int](int,byref):ubyte (FullOpts)
 ; ============================================================
21 (123.53 % of base) - System.Half:System.Numerics.INumberBase.TryConvertFromChecked[short](short,byref):ubyte
 ; Assembly listing for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[short](short,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )   short  ->  rdi         single-def
-;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
+;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rbx         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )   short  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M45331_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbx
+       mov      rbx, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M45331_IG02:
-       movsx    rdi, di
-       mov      rax, 0xD1FFAB1E      ; code for System.Half:TryConvertFrom[short](short,byref):ubyte
-						;; size=14 bbWeight=1 PerfScore 0.50
+       movsx    rax, di
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2ss xmm0, xmm0, eax
+       mov      rax, 0xD1FFAB1E      ; code for System.Half:op_Explicit(float):System.Half
+       call     [rax]System.Half:op_Explicit(float):System.Half
+       mov      word  ptr [rbx], ax
+       mov      eax, 1
+						;; size=32 bbWeight=1 PerfScore 11.08
 G_M45331_IG03:
-       tail.jmp [rax]System.Half:TryConvertFrom[short](short,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       pop      rbx
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 3, allocated bytes for code 17 (MethodHash=ea824eec) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[short](short,byref):ubyte (FullOpts)
+; Total bytes of code 38, prolog size 1, PerfScore 13.83, instruction count 11, allocated bytes for code 38 (MethodHash=ea824eec) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[short](short,byref):ubyte (FullOpts)
 ; ============================================================
21 (161.54 % of base) - System.Half:System.Numerics.INumberBase.TryConvertFromSaturating[int](int,byref):ubyte
 ; Assembly listing for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[int](int,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )     int  ->  rdi         single-def
-;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
+;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rbx         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M19072_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbx
+       mov      rbx, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M19072_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Half:TryConvertFrom[int](int,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2ss xmm0, xmm0, edi
+       mov      rax, 0xD1FFAB1E      ; code for System.Half:op_Explicit(float):System.Half
+       call     [rax]System.Half:op_Explicit(float):System.Half
+       mov      word  ptr [rbx], ax
+       mov      eax, 1
+						;; size=28 bbWeight=1 PerfScore 10.83
 G_M19072_IG03:
-       tail.jmp [rax]System.Half:TryConvertFrom[int](int,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       pop      rbx
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=0a23b57f) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[int](int,byref):ubyte (FullOpts)
+; Total bytes of code 34, prolog size 1, PerfScore 13.58, instruction count 10, allocated bytes for code 34 (MethodHash=0a23b57f) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[int](int,byref):ubyte (FullOpts)
 ; ============================================================
21 (123.53 % of base) - System.Half:System.Numerics.INumberBase.TryConvertFromSaturating[short](short,byref):ubyte
 ; Assembly listing for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[short](short,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )   short  ->  rdi         single-def
-;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
+;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rbx         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )   short  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M59872_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbx
+       mov      rbx, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M59872_IG02:
-       movsx    rdi, di
-       mov      rax, 0xD1FFAB1E      ; code for System.Half:TryConvertFrom[short](short,byref):ubyte
-						;; size=14 bbWeight=1 PerfScore 0.50
+       movsx    rax, di
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2ss xmm0, xmm0, eax
+       mov      rax, 0xD1FFAB1E      ; code for System.Half:op_Explicit(float):System.Half
+       call     [rax]System.Half:op_Explicit(float):System.Half
+       mov      word  ptr [rbx], ax
+       mov      eax, 1
+						;; size=32 bbWeight=1 PerfScore 11.08
 G_M59872_IG03:
-       tail.jmp [rax]System.Half:TryConvertFrom[short](short,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       pop      rbx
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 3, allocated bytes for code 17 (MethodHash=8069161f) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[short](short,byref):ubyte (FullOpts)
+; Total bytes of code 38, prolog size 1, PerfScore 13.83, instruction count 11, allocated bytes for code 38 (MethodHash=8069161f) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[short](short,byref):ubyte (FullOpts)
 ; ============================================================
21 (161.54 % of base) - System.Half:System.Numerics.INumberBase.TryConvertFromTruncating[int](int,byref):ubyte
 ; Assembly listing for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[int](int,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )     int  ->  rdi         single-def
-;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
+;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rbx         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M54975_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbx
+       mov      rbx, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M54975_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Half:TryConvertFrom[int](int,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2ss xmm0, xmm0, edi
+       mov      rax, 0xD1FFAB1E      ; code for System.Half:op_Explicit(float):System.Half
+       call     [rax]System.Half:op_Explicit(float):System.Half
+       mov      word  ptr [rbx], ax
+       mov      eax, 1
+						;; size=28 bbWeight=1 PerfScore 10.83
 G_M54975_IG03:
-       tail.jmp [rax]System.Half:TryConvertFrom[int](int,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       pop      rbx
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=9e9a2940) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[int](int,byref):ubyte (FullOpts)
+; Total bytes of code 34, prolog size 1, PerfScore 13.58, instruction count 10, allocated bytes for code 34 (MethodHash=9e9a2940) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[int](int,byref):ubyte (FullOpts)
 ; ============================================================
21 (123.53 % of base) - System.Half:System.Numerics.INumberBase.TryConvertFromTruncating[short](short,byref):ubyte
 ; Assembly listing for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[short](short,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )   short  ->  rdi         single-def
-;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
+;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rbx         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )   short  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M4959_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbx
+       mov      rbx, rsi
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M4959_IG02:
-       movsx    rdi, di
-       mov      rax, 0xD1FFAB1E      ; code for System.Half:TryConvertFrom[short](short,byref):ubyte
-						;; size=14 bbWeight=1 PerfScore 0.50
+       movsx    rax, di
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2ss xmm0, xmm0, eax
+       mov      rax, 0xD1FFAB1E      ; code for System.Half:op_Explicit(float):System.Half
+       call     [rax]System.Half:op_Explicit(float):System.Half
+       mov      word  ptr [rbx], ax
+       mov      eax, 1
+						;; size=32 bbWeight=1 PerfScore 11.08
 G_M4959_IG03:
-       tail.jmp [rax]System.Half:TryConvertFrom[short](short,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       pop      rbx
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 17, prolog size 0, PerfScore 2.50, instruction count 3, allocated bytes for code 17 (MethodHash=3fefeca0) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[short](short,byref):ubyte (FullOpts)
+; Total bytes of code 38, prolog size 1, PerfScore 13.83, instruction count 11, allocated bytes for code 38 (MethodHash=3fefeca0) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[short](short,byref):ubyte (FullOpts)
 ; ============================================================
13 (100.00 % of base) - System.Half:System.Numerics.INumberBase.TryConvertFromChecked[double](double,byref):ubyte
 ; Assembly listing for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[double](double,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )  double  ->  mm0         single-def
-;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rdi         single-def
+;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rbx         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M41267_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbx
+       mov      rbx, rdi
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M41267_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Half:TryConvertFrom[double](double,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       mov      rax, 0xD1FFAB1E      ; code for System.Half:op_Explicit(double):System.Half
+       call     [rax]System.Half:op_Explicit(double):System.Half
+       mov      word  ptr [rbx], ax
+       mov      eax, 1
+						;; size=20 bbWeight=1 PerfScore 4.50
 G_M41267_IG03:
-       tail.jmp [rax]System.Half:TryConvertFrom[double](double,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       pop      rbx
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=3e5a5ecc) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[double](double,byref):ubyte (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 7.25, instruction count 8, allocated bytes for code 26 (MethodHash=3e5a5ecc) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromChecked[double](double,byref):ubyte (FullOpts)
 ; ============================================================
13 (100.00 % of base) - System.Half:System.Numerics.INumberBase.TryConvertFromSaturating[double](double,byref):ubyte
 ; Assembly listing for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[double](double,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )  double  ->  mm0         single-def
-;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rdi         single-def
+;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rbx         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M54784_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbx
+       mov      rbx, rdi
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M54784_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Half:TryConvertFrom[double](double,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       mov      rax, 0xD1FFAB1E      ; code for System.Half:op_Explicit(double):System.Half
+       call     [rax]System.Half:op_Explicit(double):System.Half
+       mov      word  ptr [rbx], ax
+       mov      eax, 1
+						;; size=20 bbWeight=1 PerfScore 4.50
 G_M54784_IG03:
-       tail.jmp [rax]System.Half:TryConvertFrom[double](double,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       pop      rbx
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=c4e229ff) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[double](double,byref):ubyte (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 7.25, instruction count 8, allocated bytes for code 26 (MethodHash=c4e229ff) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromSaturating[double](double,byref):ubyte (FullOpts)
 ; ============================================================
13 (100.00 % of base) - System.Half:System.Numerics.INumberBase.TryConvertFromTruncating[double](double,byref):ubyte
 ; Assembly listing for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[double](double,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )  double  ->  mm0         single-def
-;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rdi         single-def
+;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rbx         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M59519_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbx
+       mov      rbx, rdi
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M59519_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Half:TryConvertFrom[double](double,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       mov      rax, 0xD1FFAB1E      ; code for System.Half:op_Explicit(double):System.Half
+       call     [rax]System.Half:op_Explicit(double):System.Half
+       mov      word  ptr [rbx], ax
+       mov      eax, 1
+						;; size=20 bbWeight=1 PerfScore 4.50
 G_M59519_IG03:
-       tail.jmp [rax]System.Half:TryConvertFrom[double](double,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       pop      rbx
+       ret      
+						;; size=2 bbWeight=1 PerfScore 1.50
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=7f9d1780) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[double](double,byref):ubyte (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 7.25, instruction count 8, allocated bytes for code 26 (MethodHash=7f9d1780) for method System.Half:System.Numerics.INumberBase<System.Half>.TryConvertFromTruncating[double](double,byref):ubyte (FullOpts)
 ; ============================================================
6 (46.15 % of base) - System.Double:System.Numerics.INumberBase.TryConvertFromChecked[long](long,byref):ubyte
 ; Assembly listing for method System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rdi         single-def
 ;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M2227_IG01:
 						;; size=0 bbWeight=1 PerfScore 0.00
 G_M2227_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[long](long,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2sd xmm0, xmm0, rdi
+       vmovsd   qword ptr [rsi], xmm0
+       mov      eax, 1
+						;; size=18 bbWeight=1 PerfScore 8.58
 G_M2227_IG03:
-       tail.jmp [rax]System.Double:TryConvertFrom[long](long,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       ret      
+						;; size=1 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=75a8f74c) for method System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 9.58, instruction count 5, allocated bytes for code 19 (MethodHash=75a8f74c) for method System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
 ; ============================================================
6 (46.15 % of base) - System.Double:System.Numerics.INumberBase.TryConvertFromSaturating[long](long,byref):ubyte
 ; Assembly listing for method System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rdi         single-def
 ;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M18944_IG01:
 						;; size=0 bbWeight=1 PerfScore 0.00
 G_M18944_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[long](long,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2sd xmm0, xmm0, rdi
+       vmovsd   qword ptr [rsi], xmm0
+       mov      eax, 1
+						;; size=18 bbWeight=1 PerfScore 8.58
 G_M18944_IG03:
-       tail.jmp [rax]System.Double:TryConvertFrom[long](long,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       ret      
+						;; size=1 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=a51ab5ff) for method System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 9.58, instruction count 5, allocated bytes for code 19 (MethodHash=a51ab5ff) for method System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
 ; ============================================================
6 (46.15 % of base) - System.Double:System.Numerics.INumberBase.TryConvertFromTruncating[long](long,byref):ubyte
 ; Assembly listing for method System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rdi         single-def
 ;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M36351_IG01:
 						;; size=0 bbWeight=1 PerfScore 0.00
 G_M36351_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[long](long,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2sd xmm0, xmm0, rdi
+       vmovsd   qword ptr [rsi], xmm0
+       mov      eax, 1
+						;; size=18 bbWeight=1 PerfScore 8.58
 G_M36351_IG03:
-       tail.jmp [rax]System.Double:TryConvertFrom[long](long,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       ret      
+						;; size=1 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=d8717200) for method System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 9.58, instruction count 5, allocated bytes for code 19 (MethodHash=d8717200) for method System.Double:System.Numerics.INumberBase<System.Double>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
 ; ============================================================
6 (46.15 % of base) - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase.TryConvertFromChecked[long](long,byref):ubyte
 ; Assembly listing for method System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rdi         single-def
 ;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
+;* V05 tmp3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.InteropServices.NFloat>
+;* V06 tmp4         [V06    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
+;  V07 tmp5         [V07,T02] (  2,  2   )  double  ->  mm0         "field V05._value (fldOffset=0x0)" P-INDEP
 ;
 ; Lcl frame size = 0
 
 G_M42803_IG01:
 						;; size=0 bbWeight=1 PerfScore 0.00
 G_M42803_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.NFloat:TryConvertFrom[long](long,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2sd xmm0, xmm0, rdi
+       vmovsd   qword ptr [rsi], xmm0
+       mov      eax, 1
+						;; size=18 bbWeight=1 PerfScore 8.58
 G_M42803_IG03:
-       tail.jmp [rax]System.Runtime.InteropServices.NFloat:TryConvertFrom[long](long,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       ret      
+						;; size=1 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=846858cc) for method System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 9.58, instruction count 5, allocated bytes for code 19 (MethodHash=846858cc) for method System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
 ; ============================================================
6 (46.15 % of base) - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase.TryConvertFromSaturating[long](long,byref):ubyte
 ; Assembly listing for method System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rdi         single-def
 ;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
+;* V05 tmp3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.InteropServices.NFloat>
+;* V06 tmp4         [V06    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
+;  V07 tmp5         [V07,T02] (  2,  2   )  double  ->  mm0         "field V05._value (fldOffset=0x0)" P-INDEP
 ;
 ; Lcl frame size = 0
 
 G_M22656_IG01:
 						;; size=0 bbWeight=1 PerfScore 0.00
 G_M22656_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.NFloat:TryConvertFrom[long](long,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2sd xmm0, xmm0, rdi
+       vmovsd   qword ptr [rsi], xmm0
+       mov      eax, 1
+						;; size=18 bbWeight=1 PerfScore 8.58
 G_M22656_IG03:
-       tail.jmp [rax]System.Runtime.InteropServices.NFloat:TryConvertFrom[long](long,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       ret      
+						;; size=1 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=e4f0a77f) for method System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 9.58, instruction count 5, allocated bytes for code 19 (MethodHash=e4f0a77f) for method System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
 ; ============================================================
6 (46.15 % of base) - System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase.TryConvertFromTruncating[long](long,byref):ubyte
 ; Assembly listing for method System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rdi         single-def
 ;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
+;* V05 tmp3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.InteropServices.NFloat>
+;* V06 tmp4         [V06    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
+;  V07 tmp5         [V07,T02] (  2,  2   )  double  ->  mm0         "field V05._value (fldOffset=0x0)" P-INDEP
 ;
 ; Lcl frame size = 0
 
 G_M40063_IG01:
 						;; size=0 bbWeight=1 PerfScore 0.00
 G_M40063_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.NFloat:TryConvertFrom[long](long,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2sd xmm0, xmm0, rdi
+       vmovsd   qword ptr [rsi], xmm0
+       mov      eax, 1
+						;; size=18 bbWeight=1 PerfScore 8.58
 G_M40063_IG03:
-       tail.jmp [rax]System.Runtime.InteropServices.NFloat:TryConvertFrom[long](long,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       ret      
+						;; size=1 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=18476380) for method System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 9.58, instruction count 5, allocated bytes for code 19 (MethodHash=18476380) for method System.Runtime.InteropServices.NFloat:System.Numerics.INumberBase<System.Runtime.InteropServices.NFloat>.TryConvertFromTruncating[long](long,byref):ubyte (FullOpts)
 ; ============================================================
6 (46.15 % of base) - System.Single:System.Numerics.INumberBase.TryConvertFromChecked[long](long,byref):ubyte
 ; Assembly listing for method System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rdi         single-def
 ;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M43059_IG01:
 						;; size=0 bbWeight=1 PerfScore 0.00
 G_M43059_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Single:TryConvertFrom[long](long,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2ss xmm0, xmm0, rdi
+       vmovss   dword ptr [rsi], xmm0
+       mov      eax, 1
+						;; size=18 bbWeight=1 PerfScore 8.58
 G_M43059_IG03:
-       tail.jmp [rax]System.Single:TryConvertFrom[long](long,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       ret      
+						;; size=1 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=188457cc) for method System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 9.58, instruction count 5, allocated bytes for code 19 (MethodHash=188457cc) for method System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromChecked[long](long,byref):ubyte (FullOpts)
 ; ============================================================
6 (46.15 % of base) - System.Single:System.Numerics.INumberBase.TryConvertFromSaturating[long](long,byref):ubyte
 ; Assembly listing for method System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
-; fully interruptible
+; partially interruptible
 ; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rdi         single-def
 ;  V01 arg1         [V01,T00] (  3,  3   )   byref  ->  rsi         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;
 ; Lcl frame size = 0
 
 G_M47488_IG01:
 						;; size=0 bbWeight=1 PerfScore 0.00
 G_M47488_IG02:
-       mov      rax, 0xD1FFAB1E      ; code for System.Single:TryConvertFrom[long](long,byref):ubyte
-						;; size=10 bbWeight=1 PerfScore 0.25
+       vxorps   xmm0, xmm0, xmm0
+       vcvtsi2ss xmm0, xmm0, rdi
+       vmovss   dword ptr [rsi], xmm0
+       mov      eax, 1
+						;; size=18 bbWeight=1 PerfScore 8.58
 G_M47488_IG03:
-       tail.jmp [rax]System.Single:TryConvertFrom[long](long,byref):ubyte
-						;; size=3 bbWeight=1 PerfScore 2.00
+       ret      
+						;; size=1 bbWeight=1 PerfScore 1.00
 
-; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 2, allocated bytes for code 13 (MethodHash=5300467f) for method System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 9.58, instruction count 5, allocated bytes for code 19 (MethodHash=5300467f) for method System.Single:System.Numerics.INumberBase<System.Single>.TryConvertFromSaturating[long](long,byref):ubyte (FullOpts)
 ; ============================================================

@MihuBot
Copy link
Owner Author

MihuBot commented Feb 1, 2025

Top method improvements

-157 (-77.72 % of base) - System.Security.Cryptography.PemEncoding:g__IsLabelChar|7_0[double](double):ubyte
 ; Assembly listing for method System.Security.Cryptography.PemEncoding:<IsValidLabel>g__IsLabelChar|7_0[double](double):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 3 single block inlinees; 6 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  4,  3.50)  double  ->  [rbp-0x08]  single-def
+;  V00 arg0         [V00,T00] (  4,  3.50)  double  ->  mm0         single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T01] (  2,  4   )  double  ->  [rbp-0x10]  spill-single-def "impAppendStmt"
-;  V03 tmp2         [V03    ] (  3,  2.50)  double  ->  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;  V02 tmp1         [V02,T01] (  2,  4   )  double  ->  mm1         "impAppendStmt"
+;* V03 tmp2         [V03    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;* V04 tmp3         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V05 tmp4         [V05    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
-;  V06 tmp5         [V06,T02] (  2,  4   )  double  ->  mm0         "Inlining Arg"
-;  V07 tmp6         [V07    ] (  3,  2.50)  double  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V08 tmp7         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V09 tmp8         [V09    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
-;  V10 tmp9         [V10,T03] (  2,  4   )  double  ->  mm0         "Inlining Arg"
-;  V11 tmp10        [V11    ] (  3,  1.50)  double  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V12 tmp11        [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V13 tmp12        [V13    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
-;  V14 tmp13        [V14,T04] (  2,  2   )  double  ->  mm0         "Inlining Arg"
+;* V05 tmp4         [V05    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V06 tmp5         [V06    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
+;* V07 tmp6         [V07    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
+;* V08 tmp7         [V08    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
+;* V09 tmp8         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V10 tmp9         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V11 tmp10        [V11    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
+;* V12 tmp11        [V12    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
+;* V13 tmp12        [V13    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
+;* V14 tmp13        [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V15 tmp14        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V16 tmp15        [V16    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
+;* V17 tmp16        [V17    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 0
 
 G_M46973_IG01:
-       push     rbp
-       sub      rsp, 48
-       lea      rbp, [rsp+0x30]
-       vmovsd   qword ptr [rbp-0x08], xmm0
-						;; size=15 bbWeight=1 PerfScore 2.75
+						;; size=0 bbWeight=1 PerfScore 0.00
 G_M46973_IG02:
-       lea      rsi, [rbp-0x18]
-       mov      edi, 33
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[uint](uint,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[uint](uint,byref):ubyte
-       test     eax, eax
-       jne      SHORT G_M46973_IG04
-						;; size=25 bbWeight=1 PerfScore 5.25
+       vsubsd   xmm1, xmm0, qword ptr [reloc @RWD00]
+       vmovsd   xmm2, qword ptr [reloc @RWD08]
+       vucomisd xmm2, xmm1
+       jae      SHORT G_M46973_IG05
+						;; size=22 bbWeight=1 PerfScore 11.00
 G_M46973_IG03:
-       mov      rsi, 0xD1FFAB1E
-       mov      qword ptr [rbp-0x18], rsi
-						;; size=14 bbWeight=0.50 PerfScore 0.62
-G_M46973_IG04:
-       vmovsd   xmm0, qword ptr [rbp-0x18]
-       vmovsd   xmm1, qword ptr [rbp-0x08]
-       vsubsd   xmm0, xmm1, xmm0
-       vmovsd   qword ptr [rbp-0x10], xmm0
-       lea      rsi, [rbp-0x20]
-       mov      edi, 93
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[uint](uint,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[uint](uint,byref):ubyte
-       test     eax, eax
-       jne      SHORT G_M46973_IG06
-						;; size=44 bbWeight=1 PerfScore 15.25
-G_M46973_IG05:
-       mov      rax, 0xD1FFAB1E
-       mov      qword ptr [rbp-0x20], rax
-						;; size=14 bbWeight=0.50 PerfScore 0.62
-G_M46973_IG06:
-       vmovsd   xmm0, qword ptr [rbp-0x20]
-       vucomisd xmm0, qword ptr [rbp-0x10]
-       jae      SHORT G_M46973_IG09
-						;; size=12 bbWeight=1 PerfScore 8.00
-G_M46973_IG07:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M46973_IG08:
-       add      rsp, 48
-       pop      rbp
+G_M46973_IG04:
        ret      
-						;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M46973_IG09:
-       lea      rsi, [rbp-0x28]
-       mov      edi, 45
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[ushort](ushort,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[ushort](ushort,byref):ubyte
-       test     eax, eax
-       jne      SHORT G_M46973_IG10
-       mov      rax, 0xD1FFAB1E
-       mov      qword ptr [rbp-0x28], rax
-						;; size=39 bbWeight=0.50 PerfScore 3.25
-G_M46973_IG10:
-       vmovsd   xmm0, qword ptr [rbp-0x28]
-       vmovsd   xmm1, qword ptr [rbp-0x08]
-       vucomisd xmm1, xmm0
+						;; size=1 bbWeight=0.50 PerfScore 0.50
+G_M46973_IG05:
+       vucomisd xmm0, qword ptr [reloc @RWD16]
        setp     al
-       jp       SHORT G_M46973_IG11
+       jp       SHORT G_M46973_IG06
        setne    al
-						;; size=22 bbWeight=0.50 PerfScore 5.50
-G_M46973_IG11:
+						;; size=16 bbWeight=0.50 PerfScore 3.50
+G_M46973_IG06:
        movzx    rax, al
 						;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M46973_IG12:
-       add      rsp, 48
-       pop      rbp
+G_M46973_IG07:
        ret      
-						;; size=6 bbWeight=0.50 PerfScore 0.88
+						;; size=1 bbWeight=0.50 PerfScore 0.50
+RWD00  	dq	4040800000000000h	;           33
+RWD08  	dq	4057400000000000h	;           93
+RWD16  	dq	4046800000000000h	;           45
 
-; Total bytes of code 202, prolog size 10, PerfScore 43.25, instruction count 49, allocated bytes for code 202 (MethodHash=7c174882) for method System.Security.Cryptography.PemEncoding:<IsValidLabel>g__IsLabelChar|7_0[double](double):ubyte (FullOpts)
+
+; Total bytes of code 45, prolog size 0, PerfScore 15.75, instruction count 12, allocated bytes for code 45 (MethodHash=7c174882) for method System.Security.Cryptography.PemEncoding:<IsValidLabel>g__IsLabelChar|7_0[double](double):ubyte (FullOpts)
 ; ============================================================
-149 (-56.02 % of base) - System.Formats.Tar.TarHelpers:ParseOctal[double](System.ReadOnlySpan`1[ubyte]):double
 ; Assembly listing for method System.Formats.Tar.TarHelpers:ParseOctal[double](System.ReadOnlySpan`1[ubyte]):double (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
-; partially interruptible
+; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 6 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret ld-addr-op <System.ReadOnlySpan`1[ubyte]>
-;  V01 loc0         [V01,T10] (  2,  4.25)  double  ->  [rbp-0x28]  spill-single-def
-;  V02 loc1         [V02,T09] (  4,  8.75)  double  ->  mm1        
+;  V01 loc0         [V01,T10] (  2,  4.25)  double  ->  mm0        
+;  V02 loc1         [V02,T08] (  4,  8.75)  double  ->  mm1        
 ;* V03 loc2         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ubyte]>
 ;* V04 loc3         [V04,T06] (  0,  0   )     int  ->  zero-ref   
-;  V05 loc4         [V05,T01] (  4, 14   )     int  ->  r13        
+;  V05 loc4         [V05,T01] (  3, 12   )     int  ->  rcx        
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07,T07] (  2, 16   )  double  ->  [rbp-0x30]  spill-single-def "impAppendStmt"
-;  V08 tmp2         [V08    ] (  3,  1.25)  double  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;  V07 tmp1         [V07,T07] (  2, 16   )  double  ->  mm1         "impAppendStmt"
+;* V08 tmp2         [V08    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;* V09 tmp3         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V10 tmp4         [V10    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
-;  V11 tmp5         [V11    ] (  3, 10   )  double  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V12 tmp6         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V13 tmp7         [V13    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
-;  V14 tmp8         [V14,T08] (  2, 16   )  double  ->  mm0         "Inlining Arg"
-;  V15 tmp9         [V15,T03] (  6,  5.25)   byref  ->  r15         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V16 tmp10        [V16,T02] (  7,  6.25)     int  ->  rbx         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V17 tmp11        [V17,T04] (  2,  4.25)   byref  ->  r15         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-;  V18 tmp12        [V18,T05] (  2,  4.25)     int  ->  rbx         "field V03._length (fldOffset=0x8)" P-INDEP
-;  V19 rat0         [V19,T00] (  5, 16.25)    long  ->  r14         "Widened IV V04"
+;* V10 tmp4         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V11 tmp5         [V11    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
+;  V12 tmp6         [V12,T09] (  2,  8   )  double  ->  mm2         ld-addr-op "Inline ldloca(s) first use temp"
+;* V13 tmp7         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V14 tmp8         [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V15 tmp9         [V15    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
+;* V16 tmp10        [V16    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
+;  V17 tmp11        [V17,T03] (  6,  5.25)   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V18 tmp12        [V18,T02] (  7,  6.25)     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V19 tmp13        [V19,T04] (  2,  4.25)   byref  ->  rdi         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+;  V20 tmp14        [V20,T05] (  2,  4.25)     int  ->  rsi         "field V03._length (fldOffset=0x8)" P-INDEP
+;  V21 rat0         [V21,T00] (  5, 16.25)    long  ->  rax         "Widened IV V04"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 0
 
 G_M18170_IG01:
        push     rbp
-       push     r15
-       push     r14
-       push     r13
-       push     rbx
-       sub      rsp, 32
-       lea      rbp, [rsp+0x40]
-       mov      r15, rdi
-       mov      ebx, esi
-						;; size=22 bbWeight=1 PerfScore 6.25
+       mov      rbp, rsp
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M18170_IG02:
-       mov      rdi, r15
-       mov      esi, ebx
        mov      rax, 0xD1FFAB1E      ; code for System.Formats.Tar.TarHelpers:TrimEndingNullsAndSpaces(System.ReadOnlySpan`1[ubyte]):System.ReadOnlySpan`1[ubyte]
        call     [rax]System.Formats.Tar.TarHelpers:TrimEndingNullsAndSpaces(System.ReadOnlySpan`1[ubyte]):System.ReadOnlySpan`1[ubyte]
-       mov      r15, rax
-       mov      ebx, edx
-       mov      rdi, r15
-       mov      esi, ebx
+       mov      rdi, rax
+       mov      esi, edx
        mov      rax, 0xD1FFAB1E      ; code for System.Formats.Tar.TarHelpers:TrimLeadingNullsAndSpaces(System.ReadOnlySpan`1[ubyte]):System.ReadOnlySpan`1[ubyte]
        call     [rax]System.Formats.Tar.TarHelpers:TrimLeadingNullsAndSpaces(System.ReadOnlySpan`1[ubyte]):System.ReadOnlySpan`1[ubyte]
-       mov      r15, rax
-       mov      ebx, edx
-       test     ebx, ebx
-       je       G_M18170_IG11
-						;; size=52 bbWeight=1 PerfScore 9.75
+       mov      rdi, rax
+       mov      esi, edx
+       test     esi, esi
+       je       SHORT G_M18170_IG08
+						;; size=38 bbWeight=1 PerfScore 8.75
 G_M18170_IG03:
-       lea      rsi, [rbp-0x38]
-       mov      edi, 8
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[uint](uint,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[uint](uint,byref):ubyte
-       test     eax, eax
-       jne      SHORT G_M18170_IG04
-       mov      rsi, 0xD1FFAB1E
-       mov      qword ptr [rbp-0x38], rsi
-						;; size=39 bbWeight=0.50 PerfScore 3.25
-G_M18170_IG04:
-       vmovsd   xmm0, qword ptr [rbp-0x38]
-       vmovsd   qword ptr [rbp-0x28], xmm0
+       vmovsd   xmm0, qword ptr [reloc @RWD00]
        vxorps   xmm1, xmm1, xmm1
-       xor      r14d, r14d
-						;; size=17 bbWeight=0.25 PerfScore 1.15
-G_M18170_IG05:
-       movzx    r13, byte  ptr [r15+r14]
-       add      r13d, -48
-       cmp      r13d, 8
-       jae      SHORT G_M18170_IG10
+       xor      eax, eax
+       align    [0 bytes for IG04]
+						;; size=14 bbWeight=0.25 PerfScore 0.90
+G_M18170_IG04:
+       movzx    rcx, byte  ptr [rdi+rax]
+       add      ecx, -48
+       cmp      ecx, 8
+       jae      SHORT G_M18170_IG07
        vmulsd   xmm1, xmm1, xmm0
-       vmovsd   qword ptr [rbp-0x30], xmm1
-       lea      rsi, [rbp-0x40]
-       mov      edi, r13d
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[uint](uint,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[uint](uint,byref):ubyte
-       test     eax, eax
-       jne      SHORT G_M18170_IG07
-						;; size=47 bbWeight=4 PerfScore 51.00
-G_M18170_IG06:
-       vxorps   xmm0, xmm0, xmm0
-       vcvtusi2sd xmm0, xmm0, r13d
-       vmovsd   qword ptr [rbp-0x40], xmm0
-						;; size=15 bbWeight=2 PerfScore 10.67
-G_M18170_IG07:
-       vmovsd   xmm0, qword ptr [rbp-0x40]
-       vmovsd   xmm1, qword ptr [rbp-0x30]
-       vaddsd   xmm1, xmm1, xmm0
-       inc      r14d
-       cmp      r14d, ebx
-       vmovsd   xmm0, qword ptr [rbp-0x28]
-       jl       SHORT G_M18170_IG05
-						;; size=27 bbWeight=4 PerfScore 54.00
-G_M18170_IG08:
+       vxorps   xmm2, xmm2, xmm2
+       vcvtusi2sd xmm2, xmm2, ecx
+       vaddsd   xmm1, xmm1, xmm2
+       inc      eax
+       cmp      eax, esi
+       jl       SHORT G_M18170_IG04
+						;; size=36 bbWeight=4 PerfScore 61.33
+G_M18170_IG05:
        vmovaps  xmm0, xmm1
 						;; size=4 bbWeight=0.50 PerfScore 0.12
-G_M18170_IG09:
-       add      rsp, 32
-       pop      rbx
-       pop      r13
-       pop      r14
-       pop      r15
+G_M18170_IG06:
        pop      rbp
        ret      
-						;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M18170_IG10:
+						;; size=2 bbWeight=0.50 PerfScore 0.75
+G_M18170_IG07:
        mov      rax, 0xD1FFAB1E      ; code for System.Formats.Tar.TarHelpers:ThrowInvalidNumber()
        call     [rax]System.Formats.Tar.TarHelpers:ThrowInvalidNumber()
        int3     
 						;; size=13 bbWeight=0.50 PerfScore 1.75
-G_M18170_IG11:
+G_M18170_IG08:
        vxorps   xmm0, xmm0, xmm0
 						;; size=4 bbWeight=0.50 PerfScore 0.17
-G_M18170_IG12:
-       add      rsp, 32
-       pop      rbx
-       pop      r13
-       pop      r14
-       pop      r15
+G_M18170_IG09:
        pop      rbp
        ret      
-						;; size=13 bbWeight=0.50 PerfScore 1.88
+						;; size=2 bbWeight=0.50 PerfScore 0.75
+RWD00  	dq	4020000000000000h	;            8
 
-; Total bytes of code 266, prolog size 17, PerfScore 141.85, instruction count 76, allocated bytes for code 266 (MethodHash=2fc0b905) for method System.Formats.Tar.TarHelpers:ParseOctal[double](System.ReadOnlySpan`1[ubyte]):double (FullOpts)
+
+; Total bytes of code 117, prolog size 4, PerfScore 75.77, instruction count 36, allocated bytes for code 117 (MethodHash=2fc0b905) for method System.Formats.Tar.TarHelpers:ParseOctal[double](System.ReadOnlySpan`1[ubyte]):double (FullOpts)
 ; ============================================================
-100 (-65.36 % of base) - System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double]:.ctor(int):this
 ; Assembly listing for method System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double]:.ctor(int):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 0 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  4,  4   )   byref  ->  rbx         this single-def
-;  V01 arg1         [V01,T01] (  4,  4   )     int  ->  r15         single-def
+;  V01 arg1         [V01,T01] (  4,  4   )     int  ->  rsi         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V05 tmp2         [V05    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V06 tmp3         [V06,T02] (  2,  4   )  double  ->  [rbp-0x18]  spill-single-def "impAppendStmt"
+;* V06 tmp3         [V06    ] (  0,  0   )  double  ->  zero-ref    "impAppendStmt"
 ;* V07 tmp4         [V07    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V08 tmp5         [V08,T03] (  2,  2   )  double  ->  mm0         single-def
-;  V09 tmp6         [V09    ] (  3,  2.50)  double  ->  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;  V08 tmp5         [V08,T02] (  2,  2   )  double  ->  mm0         single-def
+;* V09 tmp6         [V09    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op single-def "Inline ldloca(s) first use temp"
 ;* V10 tmp7         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V11 tmp8         [V11    ] (  3,  2.50)  double  ->  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;* V11 tmp8         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V12 tmp9         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V13 tmp10        [V13,T03] (  2,  2   )  double  ->  mm1         ld-addr-op single-def "Inline ldloca(s) first use temp"
+;* V14 tmp11        [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V15 tmp12        [V15    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V16 tmp13        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 8
 
 G_M63659_IG01:
        push     rbp
-       push     r15
        push     rbx
-       sub      rsp, 32
-       lea      rbp, [rsp+0x30]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x20], rax
-       mov      qword ptr [rbp-0x28], rax
+       push     rax
+       lea      rbp, [rsp+0x10]
        mov      rbx, rdi
-       mov      r15d, esi
-						;; size=29 bbWeight=1 PerfScore 6.50
+						;; size=11 bbWeight=1 PerfScore 3.75
 G_M63659_IG02:
-       mov      dword ptr [rbx], r15d
-       lea      rsi, [rbp-0x20]
-       mov      edi, 2
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[int](int,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[int](int,byref):ubyte
-       test     eax, eax
-       je       SHORT G_M63659_IG05
-       vmovsd   xmm0, qword ptr [rbp-0x20]
-       vmovsd   qword ptr [rbp-0x18], xmm0
-       lea      rsi, [rbp-0x28]
-       mov      edi, r15d
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[int](int,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[int](int,byref):ubyte
-       test     eax, eax
-       je       SHORT G_M63659_IG04
-       vmovsd   xmm0, qword ptr [rbp-0x18]
-       vmovsd   xmm1, qword ptr [rbp-0x28]
+       mov      dword ptr [rbx], esi
+       vxorps   xmm1, xmm1, xmm1
+       vcvtsi2sd xmm1, xmm1, esi
+       vmovsd   xmm0, qword ptr [reloc @RWD00]
        mov      rax, 0xD1FFAB1E      ; code for System.Double:Pow(double,double):double
        call     [rax]System.Double:Pow(double,double):double
        vmovsd   qword ptr [rbx+0x08], xmm0
-						;; size=88 bbWeight=1 PerfScore 26.75
+						;; size=35 bbWeight=1 PerfScore 15.58
 G_M63659_IG03:
-       add      rsp, 32
+       add      rsp, 8
        pop      rbx
-       pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=1 PerfScore 2.75
-G_M63659_IG04:
-       xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       jmp      SHORT G_M63659_IG06
-						;; size=8 bbWeight=0.50 PerfScore 1.62
-G_M63659_IG05:
-       xor      eax, eax
-       mov      qword ptr [rbp-0x20], rax
-						;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M63659_IG06:
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException()
-       call     [rax]System.ThrowHelper:ThrowNotSupportedException()
-       int3     
-						;; size=13 bbWeight=0.50 PerfScore 1.75
+						;; size=7 bbWeight=1 PerfScore 2.25
+RWD00  	dq	4000000000000000h	;            2
 
-; Total bytes of code 153, prolog size 23, PerfScore 40.00, instruction count 43, allocated bytes for code 153 (MethodHash=7d060754) for method System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double]:.ctor(int):this (FullOpts)
+
+; Total bytes of code 53, prolog size 8, PerfScore 21.58, instruction count 16, allocated bytes for code 53 (MethodHash=7d060754) for method System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double]:.ctor(int):this (FullOpts)
 ; ============================================================
-93 (-34.57 % of base) - System.Security.Cryptography.PemEncoding:IsValidLabel[double](System.ReadOnlySpan`1[double]):ubyte
 ; Assembly listing for method System.Security.Cryptography.PemEncoding:IsValidLabel[double](System.ReadOnlySpan`1[double]):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 6 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[double]>
 ;  V01 loc0         [V01,T03] (  5,  6.75)   ubyte  ->  r14        
 ;* V02 loc1         [V02,T05] (  0,  0   )     int  ->  zero-ref   
 ;  V03 loc2         [V03,T06] (  4, 12   )  double  ->  [rbp-0x28]  spill-single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05,T04] (  2,  4   )     int  ->  rax        
-;  V06 tmp2         [V06    ] (  3,  6   )  double  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;* V06 tmp2         [V06    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V08 tmp4         [V08    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
-;  V09 tmp5         [V09,T07] (  2,  8   )  double  ->  mm0         "Inlining Arg"
-;  V10 tmp6         [V10    ] (  3,  6   )  double  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-;* V11 tmp7         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V12 tmp8         [V12    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
-;  V13 tmp9         [V13,T08] (  2,  8   )  double  ->  mm0         "Inlining Arg"
-;  V14 tmp10        [V14,T02] (  2,  5   )   byref  ->  r15         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V15 tmp11        [V15,T01] (  3,  6   )     int  ->  rbx         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V16 rat0         [V16,T00] (  5, 16.25)    long  ->  r13         "Widened IV V02"
+;* V08 tmp4         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V09 tmp5         [V09    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
+;* V10 tmp6         [V10    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
+;* V11 tmp7         [V11    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
+;* V12 tmp8         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V13 tmp9         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V14 tmp10        [V14    ] (  0,  0   )  double  ->  zero-ref    "Inline stloc first use temp"
+;* V15 tmp11        [V15    ] (  0,  0   )  double  ->  zero-ref    "Inlining Arg"
+;  V16 tmp12        [V16,T02] (  2,  5   )   byref  ->  r15         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V17 tmp13        [V17,T01] (  3,  6   )     int  ->  rbx         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V18 rat0         [V18,T00] (  5, 16.25)    long  ->  r13         "Widened IV V02"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M42638_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
-       sub      rsp, 32
-       lea      rbp, [rsp+0x40]
+       sub      rsp, 16
+       lea      rbp, [rsp+0x30]
        mov      r15, rdi
        mov      ebx, esi
 						;; size=22 bbWeight=1 PerfScore 6.25
 G_M42638_IG02:
        test     ebx, ebx
-       je       G_M42638_IG17
+       je       G_M42638_IG15
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M42638_IG03:
        xor      r14d, r14d
        xor      r13d, r13d
 						;; size=6 bbWeight=0.25 PerfScore 0.12
 G_M42638_IG04:
        vmovsd   xmm0, qword ptr [r15+8*r13]
        vmovsd   qword ptr [rbp-0x28], xmm0
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.PemEncoding:<IsValidLabel>g__IsLabelChar|7_0[double](double):ubyte
        call     [rax]System.Security.Cryptography.PemEncoding:<IsValidLabel>g__IsLabelChar|7_0[double](double):ubyte
        test     eax, eax
-       jne      G_M42638_IG11
-						;; size=31 bbWeight=4 PerfScore 38.00
+       jne      SHORT G_M42638_IG09
+						;; size=27 bbWeight=4 PerfScore 38.00
 G_M42638_IG05:
-       lea      rsi, [rbp-0x30]
-       mov      edi, 32
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[ushort](ushort,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[ushort](ushort,byref):ubyte
-       test     eax, eax
-       jne      SHORT G_M42638_IG06
-       mov      rsi, 0xD1FFAB1E
-       mov      qword ptr [rbp-0x30], rsi
-						;; size=39 bbWeight=2 PerfScore 13.00
+       vmovsd   xmm0, qword ptr [rbp-0x28]
+       vucomisd xmm0, qword ptr [reloc @RWD00]
+       jp       SHORT G_M42638_IG06
+       je       SHORT G_M42638_IG08
+						;; size=17 bbWeight=2 PerfScore 18.00
 G_M42638_IG06:
-       vmovsd   xmm0, qword ptr [rbp-0x30]
-       vmovsd   xmm1, qword ptr [rbp-0x28]
-       vucomisd xmm1, xmm0
-       jp       SHORT G_M42638_IG07
-       je       SHORT G_M42638_IG10
-						;; size=18 bbWeight=2 PerfScore 20.00
-G_M42638_IG07:
-       lea      rsi, [rbp-0x38]
-       mov      edi, 45
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[ushort](ushort,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[ushort](ushort,byref):ubyte
-       test     eax, eax
-       jne      SHORT G_M42638_IG08
-       mov      rax, 0xD1FFAB1E
-       mov      qword ptr [rbp-0x38], rax
-						;; size=39 bbWeight=2 PerfScore 13.00
-G_M42638_IG08:
-       vmovsd   xmm0, qword ptr [rbp-0x38]
-       vmovsd   xmm1, qword ptr [rbp-0x28]
-       vucomisd xmm1, xmm0
+       vucomisd xmm0, qword ptr [reloc @RWD08]
        setnp    al
-       jp       SHORT G_M42638_IG09
+       jp       SHORT G_M42638_IG07
        sete     al
-						;; size=22 bbWeight=2 PerfScore 22.00
-G_M42638_IG09:
+						;; size=16 bbWeight=2 PerfScore 14.00
+G_M42638_IG07:
        movzx    rax, al
        test     eax, eax
-       je       SHORT G_M42638_IG15
+       je       SHORT G_M42638_IG13
 						;; size=7 bbWeight=2 PerfScore 3.00
-G_M42638_IG10:
+G_M42638_IG08:
        test     r14d, r14d
-       je       SHORT G_M42638_IG15
+       je       SHORT G_M42638_IG13
        xor      r14d, r14d
-       jmp      SHORT G_M42638_IG12
+       jmp      SHORT G_M42638_IG10
 						;; size=10 bbWeight=2 PerfScore 7.00
-G_M42638_IG11:
+G_M42638_IG09:
        mov      r14d, 1
 						;; size=6 bbWeight=2 PerfScore 0.50
-G_M42638_IG12:
+G_M42638_IG10:
        inc      r13d
        cmp      r13d, ebx
-       jl       G_M42638_IG04
-						;; size=12 bbWeight=4 PerfScore 6.00
-G_M42638_IG13:
+       jl       SHORT G_M42638_IG04
+						;; size=8 bbWeight=4 PerfScore 6.00
+G_M42638_IG11:
        mov      eax, r14d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M42638_IG12:
+       add      rsp, 16
+       pop      rbx
+       pop      r13
+       pop      r14
+       pop      r15
+       pop      rbp
+       ret      
+						;; size=13 bbWeight=0.50 PerfScore 1.88
+G_M42638_IG13:
+       xor      eax, eax
+						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M42638_IG14:
-       add      rsp, 32
+       add      rsp, 16
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M42638_IG15:
-       xor      eax, eax
-						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M42638_IG16:
-       add      rsp, 32
-       pop      rbx
-       pop      r13
-       pop      r14
-       pop      r15
-       pop      rbp
-       ret      
-						;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M42638_IG17:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M42638_IG18:
-       add      rsp, 32
+G_M42638_IG16:
+       add      rsp, 16
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=13 bbWeight=0.50 PerfScore 1.88
+RWD00  	dq	4040000000000000h	;           32
+RWD08  	dq	4046800000000000h	;           45
 
-; Total bytes of code 269, prolog size 17, PerfScore 136.12, instruction count 81, allocated bytes for code 269 (MethodHash=79345971) for method System.Security.Cryptography.PemEncoding:IsValidLabel[double](System.ReadOnlySpan`1[double]):ubyte (FullOpts)
+
+; Total bytes of code 176, prolog size 17, PerfScore 100.12, instruction count 62, allocated bytes for code 176 (MethodHash=79345971) for method System.Security.Cryptography.PemEncoding:IsValidLabel[double](System.ReadOnlySpan`1[double]):ubyte (FullOpts)
 ; ============================================================
-87 (-42.65 % of base) - System.Numerics.Tensors.TensorPrimitives:ScaleB[double](System.ReadOnlySpan`1[double],int,System.Span`1[double])
 ; Assembly listing for method System.Numerics.Tensors.TensorPrimitives:ScaleB[double](System.ReadOnlySpan`1[double],int,System.Span`1[double]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
-; partially interruptible
+; rsp based frame
+; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 0 single block inlinees; 5 inlinees without PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[double]>
-;  V01 arg1         [V01,T00] (  4,  4   )     int  ->  rbx         single-def
+;  V01 arg1         [V01,T00] (  4,  4   )     int  ->  rdx         single-def
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[double]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  5, 10   )  struct (16) [rbp-0x38]  do-not-enreg[SFA] multireg-arg ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double]>
+;  V04 tmp1         [V04    ] (  5, 10   )  struct (16) [rsp+0x08]  do-not-enreg[SFA] multireg-arg ld-addr-op "NewObj constructor temp" <System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double]>
 ;* V05 tmp2         [V05    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V06 tmp3         [V06    ] (  0,  0   )   byref  ->  zero-ref   
-;  V07 tmp4         [V07,T07] (  2,  4   )  double  ->  [rbp-0x40]  spill-single-def "impAppendStmt"
+;* V07 tmp4         [V07    ] (  0,  0   )  double  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp5         [V08    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V09 tmp6         [V09    ] (  0,  0   )  double  ->  zero-ref   
-;  V10 tmp7         [V10    ] (  3,  2.50)  double  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;* V10 tmp7         [V10    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;* V11 tmp8         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V12 tmp9         [V12    ] (  3,  2.50)  double  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;* V12 tmp9         [V12    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V13 tmp10        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V14 tmp11        [V14,T02] (  2,  2   )   byref  ->  r15         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V15 tmp12        [V15,T04] (  2,  2   )     int  ->  r13         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V16 tmp13        [V16,T03] (  2,  2   )   byref  ->  r14         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V17 tmp14        [V17,T05] (  2,  2   )     int  ->  r12         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;  V18 tmp15        [V18,T01] (  4,  6   )     int  ->  [rbp-0x38]  do-not-enreg[] "field V04._n (fldOffset=0x0)" P-DEP
-;  V19 tmp16        [V19,T06] (  3,  5   )  double  ->  [rbp-0x30]  do-not-enreg[] "field V04._pow2n (fldOffset=0x8)" P-DEP
+;  V14 tmp11        [V14,T07] (  2,  2   )  double  ->  mm1         ld-addr-op "Inline ldloca(s) first use temp"
+;* V15 tmp12        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V16 tmp13        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V17 tmp14        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V18 tmp15        [V18,T02] (  2,  2   )   byref  ->  rbx         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V19 tmp16        [V19,T04] (  2,  2   )     int  ->  r14         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V20 tmp17        [V20,T03] (  2,  2   )   byref  ->  r15         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V21 tmp18        [V21,T05] (  2,  2   )     int  ->  r13         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;  V22 tmp19        [V22,T01] (  4,  6   )     int  ->  [rsp+0x08]  do-not-enreg[] "field V04._n (fldOffset=0x0)" P-DEP
+;  V23 tmp20        [V23,T06] (  3,  5   )  double  ->  [rsp+0x10]  do-not-enreg[] "field V04._pow2n (fldOffset=0x8)" P-DEP
 ;
-; Lcl frame size = 40
+; Lcl frame size = 24
 
 G_M43791_IG01:
-       push     rbp
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x50]
-       mov      r15, rdi
-       mov      r13d, esi
-       mov      ebx, edx
-       mov      r14, rcx
-       mov      r12d, r8d
-						;; size=33 bbWeight=1 PerfScore 8.00
+       sub      rsp, 24
+       mov      rbx, rdi
+       mov      r14d, esi
+       mov      r15, rcx
+       mov      r13d, r8d
+						;; size=23 bbWeight=1 PerfScore 5.25
 G_M43791_IG02:
        vxorps   xmm0, xmm0, xmm0
-       vmovups  xmmword ptr [rbp-0x38], xmm0
-       mov      dword ptr [rbp-0x38], ebx
-       lea      rsi, [rbp-0x48]
-       mov      edi, 2
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[int](int,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[int](int,byref):ubyte
-       test     eax, eax
-       je       SHORT G_M43791_IG05
-       vmovsd   xmm0, qword ptr [rbp-0x48]
-       vmovsd   qword ptr [rbp-0x40], xmm0
-       lea      rsi, [rbp-0x50]
-       mov      edi, ebx
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[int](int,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[int](int,byref):ubyte
-       test     eax, eax
-       je       SHORT G_M43791_IG04
-       vmovsd   xmm0, qword ptr [rbp-0x40]
-       vmovsd   xmm1, qword ptr [rbp-0x50]
+       vmovups  xmmword ptr [rsp+0x08], xmm0
+       mov      dword ptr [rsp+0x08], edx
+       vxorps   xmm1, xmm1, xmm1
+       vcvtsi2sd xmm1, xmm1, edx
+       vmovsd   xmm0, qword ptr [reloc @RWD00]
        mov      rax, 0xD1FFAB1E      ; code for System.Double:Pow(double,double):double
        call     [rax]System.Double:Pow(double,double):double
-       vmovsd   qword ptr [rbp-0x30], xmm0
-       mov      rdi, r15
-       mov      esi, r13d
-       mov      edx, dword ptr [rbp-0x38]
-       vmovsd   xmm0, qword ptr [rbp-0x30]
-       mov      rcx, r14
-       mov      r8d, r12d
+       vmovsd   qword ptr [rsp+0x10], xmm0
+       mov      rdi, rbx
+       mov      esi, r14d
+       mov      edx, dword ptr [rsp+0x08]
+       vmovsd   xmm0, qword ptr [rsp+0x10]
+       mov      rcx, r15
+       mov      r8d, r13d
        mov      rax, 0xD1FFAB1E      ; code for System.Numerics.Tensors.TensorPrimitives:InvokeSpanIntoSpan[double,System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double]](System.ReadOnlySpan`1[double],System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double],System.Span`1[double])
-       call     [rax]System.Numerics.Tensors.TensorPrimitives:InvokeSpanIntoSpan[double,System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double]](System.ReadOnlySpan`1[double],System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double],System.Span`1[double])
-       nop      
-						;; size=129 bbWeight=1 PerfScore 35.58
+						;; size=80 bbWeight=1 PerfScore 21.17
 G_M43791_IG03:
-       add      rsp, 40
+       add      rsp, 24
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
-       pop      rbp
-       ret      
-						;; size=15 bbWeight=1 PerfScore 4.25
-G_M43791_IG04:
-       xor      eax, eax
-       mov      qword ptr [rbp-0x50], rax
-       jmp      SHORT G_M43791_IG06
-						;; size=8 bbWeight=0.50 PerfScore 1.62
-G_M43791_IG05:
-       xor      eax, eax
-       mov      qword ptr [rbp-0x48], rax
-						;; size=6 bbWeight=0.50 PerfScore 0.62
-G_M43791_IG06:
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException()
-       call     [rax]System.ThrowHelper:ThrowNotSupportedException()
-       int3     
-						;; size=13 bbWeight=0.50 PerfScore 1.75
+       tail.jmp [rax]System.Numerics.Tensors.TensorPrimitives:InvokeSpanIntoSpan[double,System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double]](System.ReadOnlySpan`1[double],System.Numerics.Tensors.TensorPrimitives+ScaleBOperator`1[double],System.Span`1[double])
+						;; size=14 bbWeight=1 PerfScore 4.25
+RWD00  	dq	4000000000000000h	;            2
 
-; Total bytes of code 204, prolog size 19, PerfScore 51.83, instruction count 60, allocated bytes for code 204 (MethodHash=3e7754f0) for method System.Numerics.Tensors.TensorPrimitives:ScaleB[double](System.ReadOnlySpan`1[double],int,System.Span`1[double]) (FullOpts)
+
+; Total bytes of code 117, prolog size 23, PerfScore 30.67, instruction count 31, allocated bytes for code 117 (MethodHash=3e7754f0) for method System.Numerics.Tensors.TensorPrimitives:ScaleB[double](System.ReadOnlySpan`1[double],int,System.Span`1[double]) (FullOpts)
 ; ============================================================
-83 (-65.35 % of base) - System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double]
 ; Assembly listing for method System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 RetBuf       [V00,T00] (  4,  4   )   byref  ->  rbx         single-def
-;  V01 arg0         [V01,T02] (  1,  1   )  simd64  ->  [rbp+0x10]  single-def <System.Runtime.Intrinsics.Vector512`1[double]>
+;  V00 RetBuf       [V00,T00] (  4,  4   )   byref  ->  rdi         single-def
+;  V01 arg0         [V01,T02] (  1,  1   )  simd64  ->  [rsp+0x08]  single-def <System.Runtime.Intrinsics.Vector512`1[double]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  simd64  ->  zero-ref    "spilled call-like call argument"
 ;* V04 tmp2         [V04    ] (  0,  0   )  simd64  ->  zero-ref    "Inline return value spill temp" <System.Runtime.Intrinsics.Vector512`1[double]>
-;  V05 tmp3         [V05,T01] (  2,  4   )  simd64  ->  [rbp-0x70]  spill-single-def "impAppendStmt"
-;  V06 tmp4         [V06    ] (  3,  2.50)  double  ->  [rbp-0x78]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;  V05 tmp3         [V05,T01] (  2,  4   )  simd64  ->  mm0         "impAppendStmt"
+;* V06 tmp4         [V06    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;* V07 tmp5         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V08 tmp6         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V09 tmp7         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;
-; Lcl frame size = 120
+; Lcl frame size = 0
 
 G_M49678_IG01:
-       push     rbp
-       push     rbx
-       sub      rsp, 120
-       lea      rbp, [rsp+0x80]
-       mov      rbx, rdi
-						;; size=17 bbWeight=1 PerfScore 3.00
+						;; size=0 bbWeight=1 PerfScore 0.00
 G_M49678_IG02:
-       vmovups  zmm0, zmmword ptr [rbp+0x10]
+       vmovups  zmm0, zmmword ptr [rsp+0x08]
        vmulpd   zmm0, zmm0, qword ptr [reloc @RWD00] {1to8}
-       vmovups  zmmword ptr [rbp-0x70], zmm0
-       lea      rsi, [rbp-0x78]
-       mov      edi, 180
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[int](int,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[int](int,byref):ubyte
-       test     eax, eax
-       je       SHORT G_M49678_IG04
-       vmovups  zmm0, zmmword ptr [rbp-0x70]
-       vdivpd   zmm0, zmm0, qword ptr [rbp-0x78] {1to8}
-       vmovups  zmmword ptr [rbx], zmm0
-       mov      rax, rbx
-						;; size=81 bbWeight=1 PerfScore 33.50
+       vdivpd   zmm0, zmm0, qword ptr [reloc @RWD08] {1to8}
+       vmovups  zmmword ptr [rdi], zmm0
+       mov      rax, rdi
+						;; size=40 bbWeight=1 PerfScore 24.25
 G_M49678_IG03:
        vzeroupper 
-       add      rsp, 120
-       pop      rbx
-       pop      rbp
        ret      
-						;; size=10 bbWeight=1 PerfScore 3.25
-G_M49678_IG04:
-       xor      eax, eax
-       mov      qword ptr [rbp-0x78], rax
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException()
-       call     [rax]System.ThrowHelper:ThrowNotSupportedException()
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.38
+						;; size=4 bbWeight=1 PerfScore 2.00
 RWD00  	dq	400921FB54442D18h	;   3.14159265
+RWD08  	dq	4066800000000000h	;          180
 
 
-; Total bytes of code 127, prolog size 14, PerfScore 42.12, instruction count 28, allocated bytes for code 130 (MethodHash=35cb3df1) for method System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
+; Total bytes of code 44, prolog size 0, PerfScore 26.25, instruction count 7, allocated bytes for code 44 (MethodHash=35cb3df1) for method System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
 ; ============================================================
-83 (-65.35 % of base) - System.Runtime.Intrinsics.Vector512:DegreesToRadians(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector512:DegreesToRadians(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 RetBuf       [V00,T00] (  4,  4   )   byref  ->  rbx         single-def
-;  V01 arg0         [V01,T02] (  1,  1   )  simd64  ->  [rbp+0x10]  single-def <System.Runtime.Intrinsics.Vector512`1[double]>
+;  V00 RetBuf       [V00,T00] (  4,  4   )   byref  ->  rdi         single-def
+;  V01 arg0         [V01,T02] (  1,  1   )  simd64  ->  [rsp+0x08]  single-def <System.Runtime.Intrinsics.Vector512`1[double]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T01] (  2,  4   )  simd64  ->  [rbp-0x70]  spill-single-def "impAppendStmt"
-;  V04 tmp2         [V04    ] (  3,  2.50)  double  ->  [rbp-0x78]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;  V03 tmp1         [V03,T01] (  2,  4   )  simd64  ->  mm0         "impAppendStmt"
+;* V04 tmp2         [V04    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;* V05 tmp3         [V05    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V06 tmp4         [V06    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V07 tmp5         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;
-; Lcl frame size = 120
+; Lcl frame size = 0
 
 G_M17681_IG01:
-       push     rbp
-       push     rbx
-       sub      rsp, 120
-       lea      rbp, [rsp+0x80]
-       mov      rbx, rdi
-						;; size=17 bbWeight=1 PerfScore 3.00
+						;; size=0 bbWeight=1 PerfScore 0.00
 G_M17681_IG02:
-       vmovups  zmm0, zmmword ptr [rbp+0x10]
+       vmovups  zmm0, zmmword ptr [rsp+0x08]
        vmulpd   zmm0, zmm0, qword ptr [reloc @RWD00] {1to8}
-       vmovups  zmmword ptr [rbp-0x70], zmm0
-       lea      rsi, [rbp-0x78]
-       mov      edi, 180
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[int](int,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[int](int,byref):ubyte
-       test     eax, eax
-       je       SHORT G_M17681_IG04
-       vmovups  zmm0, zmmword ptr [rbp-0x70]
-       vdivpd   zmm0, zmm0, qword ptr [rbp-0x78] {1to8}
-       vmovups  zmmword ptr [rbx], zmm0
-       mov      rax, rbx
-						;; size=81 bbWeight=1 PerfScore 33.50
+       vdivpd   zmm0, zmm0, qword ptr [reloc @RWD08] {1to8}
+       vmovups  zmmword ptr [rdi], zmm0
+       mov      rax, rdi
+						;; size=40 bbWeight=1 PerfScore 24.25
 G_M17681_IG03:
        vzeroupper 
-       add      rsp, 120
-       pop      rbx
-       pop      rbp
        ret      
-						;; size=10 bbWeight=1 PerfScore 3.25
-G_M17681_IG04:
-       xor      eax, eax
-       mov      qword ptr [rbp-0x78], rax
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException()
-       call     [rax]System.ThrowHelper:ThrowNotSupportedException()
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.38
+						;; size=4 bbWeight=1 PerfScore 2.00
 RWD00  	dq	400921FB54442D18h	;   3.14159265
+RWD08  	dq	4066800000000000h	;          180
 
 
-; Total bytes of code 127, prolog size 14, PerfScore 42.12, instruction count 28, allocated bytes for code 130 (MethodHash=32a3baee) for method System.Runtime.Intrinsics.Vector512:DegreesToRadians(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
+; Total bytes of code 44, prolog size 0, PerfScore 26.25, instruction count 7, allocated bytes for code 44 (MethodHash=32a3baee) for method System.Runtime.Intrinsics.Vector512:DegreesToRadians(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
 ; ============================================================
-82 (-65.08 % of base) - System.Runtime.Intrinsics.Vector512:DegreesToRadians(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[float]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector512:DegreesToRadians(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[float] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 RetBuf       [V00,T00] (  4,  4   )   byref  ->  rbx         single-def
-;  V01 arg0         [V01,T02] (  1,  1   )  simd64  ->  [rbp+0x10]  single-def <System.Runtime.Intrinsics.Vector512`1[float]>
+;  V00 RetBuf       [V00,T00] (  4,  4   )   byref  ->  rdi         single-def
+;  V01 arg0         [V01,T02] (  1,  1   )  simd64  ->  [rsp+0x08]  single-def <System.Runtime.Intrinsics.Vector512`1[float]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T01] (  2,  4   )  simd64  ->  [rbp-0x70]  spill-single-def "impAppendStmt"
-;  V04 tmp2         [V04    ] (  3,  2.50)   float  ->  [rbp-0x74]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;  V03 tmp1         [V03,T01] (  2,  4   )  simd64  ->  mm0         "impAppendStmt"
+;* V04 tmp2         [V04    ] (  0,  0   )   float  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;* V05 tmp3         [V05    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V06 tmp4         [V06    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V07 tmp5         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;
-; Lcl frame size = 120
+; Lcl frame size = 0
 
 G_M24241_IG01:
-       push     rbp
-       push     rbx
-       sub      rsp, 120
-       lea      rbp, [rsp+0x80]
-       mov      rbx, rdi
-						;; size=17 bbWeight=1 PerfScore 3.00
+						;; size=0 bbWeight=1 PerfScore 0.00
 G_M24241_IG02:
-       vmovups  zmm0, zmmword ptr [rbp+0x10]
+       vmovups  zmm0, zmmword ptr [rsp+0x08]
        vmulps   zmm0, zmm0, dword ptr [reloc @RWD00] {1to16}
-       vmovups  zmmword ptr [rbp-0x70], zmm0
-       lea      rsi, [rbp-0x74]
-       mov      edi, 180
-       mov      rax, 0xD1FFAB1E      ; code for System.Single:TryConvertFrom[int](int,byref):ubyte
-       call     [rax]System.Single:TryConvertFrom[int](int,byref):ubyte
-       test     eax, eax
-       je       SHORT G_M24241_IG04
-       vmovups  zmm0, zmmword ptr [rbp-0x70]
-       vdivps   zmm0, zmm0, dword ptr [rbp-0x74] {1to16}
-       vmovups  zmmword ptr [rbx], zmm0
-       mov      rax, rbx
-						;; size=81 bbWeight=1 PerfScore 31.50
+       vdivps   zmm0, zmm0, dword ptr [reloc @RWD04] {1to16}
+       vmovups  zmmword ptr [rdi], zmm0
+       mov      rax, rdi
+						;; size=40 bbWeight=1 PerfScore 22.25
 G_M24241_IG03:
        vzeroupper 
-       add      rsp, 120
-       pop      rbx
-       pop      rbp
        ret      
-						;; size=10 bbWeight=1 PerfScore 3.25
-G_M24241_IG04:
-       xor      eax, eax
-       mov      dword ptr [rbp-0x74], eax
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException()
-       call     [rax]System.ThrowHelper:ThrowNotSupportedException()
-       int3     
-						;; size=18 bbWeight=0.50 PerfScore 2.38
+						;; size=4 bbWeight=1 PerfScore 2.00
 RWD00  	dd	40490FDBh		;   3.14159
+RWD04  	dd	43340000h		;       180
 
 
-; Total bytes of code 126, prolog size 14, PerfScore 40.12, instruction count 28, allocated bytes for code 129 (MethodHash=b42fa14e) for method System.Runtime.Intrinsics.Vector512:DegreesToRadians(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[float] (FullOpts)
+; Total bytes of code 44, prolog size 0, PerfScore 24.25, instruction count 7, allocated bytes for code 44 (MethodHash=b42fa14e) for method System.Runtime.Intrinsics.Vector512:DegreesToRadians(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[float] (FullOpts)
 ; ============================================================
-70 (-67.31 % of base) - System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double]
 ; Assembly listing for method System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rbp based frame
+; rsp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 RetBuf       [V00,T00] (  4,  4   )   byref  ->  rbx         single-def
-;  V01 arg0         [V01,T02] (  1,  1   )  simd16  ->  [rbp+0x10]  single-def <System.Runtime.Intrinsics.Vector128`1[double]>
+;  V00 RetBuf       [V00,T00] (  4,  4   )   byref  ->  rdi         single-def
+;  V01 arg0         [V01,T02] (  1,  1   )  simd16  ->  [rsp+0x08]  single-def <System.Runtime.Intrinsics.Vector128`1[double]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  simd16  ->  zero-ref    "spilled call-like call argument"
 ;* V04 tmp2         [V04    ] (  0,  0   )  simd16  ->  zero-ref    "Inline return value spill temp" <System.Runtime.Intrinsics.Vector128`1[double]>
-;  V05 tmp3         [V05,T01] (  2,  4   )  simd16  ->  [rbp-0x20]  spill-single-def "impAppendStmt"
-;  V06 tmp4         [V06    ] (  3,  2.50)  double  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+;  V05 tmp3         [V05,T01] (  2,  4   )  simd16  ->  mm0         "impAppendStmt"
+;* V06 tmp4         [V06    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp"
 ;* V07 tmp5         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V08 tmp6         [V08    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V09 tmp7         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 0
 
 G_M11950_IG01:
-       push     rbp
-       push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x30]
-       mov      rbx, rdi
-						;; size=14 bbWeight=1 PerfScore 3.00
+						;; size=0 bbWeight=1 PerfScore 0.00
 G_M11950_IG02:
-       vmovaps  xmm0, xmmword ptr [rbp+0x10]
+       vmovaps  xmm0, xmmword ptr [rsp+0x08]
        vmulpd   xmm0, xmm0, qword ptr [reloc @RWD00] {1to2}
-       vmovaps  xmmword ptr [rbp-0x20], xmm0
-       lea      rsi, [rbp-0x28]
-       mov      edi, 180
-       mov      rax, 0xD1FFAB1E      ; code for System.Double:TryConvertFrom[int](int,byref):ubyte
-       call     [rax]System.Double:TryConvertFrom[int](int,byref):ubyte
-       test     eax, eax
-       je       SHORT G_M11950_IG04
-       vmovaps  xmm0, xmmword ptr [rbp-0x20]
-       vdivpd   xmm0, xmm0, qword ptr [rbp-0x28] {1to2}
-       vmovups  xmmword ptr [rbx], xmm0
-       mov      rax, rbx
-						;; size=64 bbWeight=1 PerfScore 33.50
+       vdivpd   xmm0, xmm0, qword ptr [reloc @RWD08] {1to2}
+       vmovups  xmmword ptr [rdi], xmm0
+       mov      rax, rdi
+						;; size=33 bbWeight=1 PerfScore 24.25
 G_M11950_IG03:
-       add      rsp, 40
-       pop      rbx
-       pop      rbp
        ret      
-						;; size=7 bbWeight=1 PerfScore 2.25
-G_M11950_IG04:
-       xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException()
-       call     [rax]System.ThrowHelper:ThrowNotSupportedException()
-       int3     
-						;; size=19 bbWeight=0.50 PerfScore 2.38
+						;; size=1 bbWeight=1 PerfScore 1.00
 RWD00  	dq	400921FB54442D18h	;   3.14159265
+RWD08  	dq	4066800000000000h	;          180
 
 
-; Total bytes of code 104, prolog size 11, PerfScore 41.12, instruction count 27, allocated bytes for code 107 (MethodHash=39d7d151) for method System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
+; Total bytes of code 34, prolog size 0, PerfScore 25.25, instruction count 6, allocated bytes for code 34 (MethodHash=39d7d151) for method System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
 ; ============================================================

Note: some changes were skipped as they were too large to fit into a comment.

Larger list of diffs: https://gist.github.com/MihuBot/4504d8744eb8302da53125904ac4ac5a

@MihuBot
Copy link
Owner Author

MihuBot commented Feb 1, 2025

@hez2010

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant