Skip to content

[X64] [MichalPetryka] Rewrite math jit helpers to managed code #264

Open

Description

@MihuBot

Build completed in 2 hours 22 minutes.
dotnet/runtime#98858

CoreLib diffs

Found 2 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 6846158
Total bytes of diff: 6846907
Total bytes of delta: 749 (0.01 % of base)
Total relative delta: 0.05
    diff is a regression.
    relative diff is a regression.


Total byte diff includes 735 bytes from reconciling methods
	Base had    0 unique methods,        0 unique bytes
	Diff had   14 unique methods,      735 unique bytes

Top file regressions (bytes):
         749 : System.Private.CoreLib.dasm (0.01 % of base)

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

Top method regressions (bytes):
         165 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:LongMultiplyOverflow(long,long):long (FullOpts) (0 base, 1 diff methods)
         117 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:ULongMultiplyOverflow(ulong,ulong):ulong (FullOpts) (0 base, 1 diff methods)
          84 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleReminder(double,double):double (FullOpts) (0 base, 1 diff methods)
          72 (Infinity of base) : System.Private.CoreLib.dasm - System.MathF:FloatReminder(float,float):float (FullOpts) (0 base, 1 diff methods)
          49 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToULong(double):ulong (FullOpts) (0 base, 1 diff methods)
          49 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToULongOverflow(double):ulong (FullOpts) (0 base, 1 diff methods)
          48 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToLongOverflow(double):long (FullOpts) (0 base, 1 diff methods)
          48 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToUIntOverflow(double):uint (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToIntOverflow(double):int (FullOpts) (0 base, 1 diff methods)
          28 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:ULongToDouble(ulong):double (FullOpts) (0 base, 1 diff methods)
           8 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:<LongMultiplyOverflow>g__Hi32Bits|133_0(ulong):uint (FullOpts) (0 base, 1 diff methods)
           8 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:<ULongMultiplyOverflow>g__Hi32Bits|134_0(ulong):uint (FullOpts) (0 base, 1 diff methods)
           7 (2.69 % of base) : System.Private.CoreLib.dasm - System.Math:IEEERemainder(double,double):double (FullOpts)
           7 (2.71 % of base) : System.Private.CoreLib.dasm - System.MathF:IEEERemainder(float,float):float (FullOpts)
           6 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToInt(double):int (FullOpts) (0 base, 1 diff methods)
           6 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToUInt(double):uint (FullOpts) (0 base, 1 diff methods)

Top method regressions (percentages):
           8 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:<LongMultiplyOverflow>g__Hi32Bits|133_0(ulong):uint (FullOpts) (0 base, 1 diff methods)
           8 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:<ULongMultiplyOverflow>g__Hi32Bits|134_0(ulong):uint (FullOpts) (0 base, 1 diff methods)
          84 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleReminder(double,double):double (FullOpts) (0 base, 1 diff methods)
           6 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToInt(double):int (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToIntOverflow(double):int (FullOpts) (0 base, 1 diff methods)
          48 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToLongOverflow(double):long (FullOpts) (0 base, 1 diff methods)
           6 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToUInt(double):uint (FullOpts) (0 base, 1 diff methods)
          48 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToUIntOverflow(double):uint (FullOpts) (0 base, 1 diff methods)
          49 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToULong(double):ulong (FullOpts) (0 base, 1 diff methods)
          49 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToULongOverflow(double):ulong (FullOpts) (0 base, 1 diff methods)
         165 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:LongMultiplyOverflow(long,long):long (FullOpts) (0 base, 1 diff methods)
         117 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:ULongMultiplyOverflow(ulong,ulong):ulong (FullOpts) (0 base, 1 diff methods)
          28 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:ULongToDouble(ulong):double (FullOpts) (0 base, 1 diff methods)
          72 (Infinity of base) : System.Private.CoreLib.dasm - System.MathF:FloatReminder(float,float):float (FullOpts) (0 base, 1 diff methods)
           7 (2.71 % of base) : System.Private.CoreLib.dasm - System.MathF:IEEERemainder(float,float):float (FullOpts)
           7 (2.69 % of base) : System.Private.CoreLib.dasm - System.Math:IEEERemainder(double,double):double (FullOpts)

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

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

Frameworks diffs

Diffs
Found 268 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 38279208
Total bytes of diff: 38281001
Total bytes of delta: 1793 (0.00 % of base)
Total relative delta: 4.50
    diff is a regression.
    relative diff is a regression.


Total byte diff includes 735 bytes from reconciling methods
	Base had    0 unique methods,        0 unique bytes
	Diff had   14 unique methods,      735 unique bytes

Top file regressions (bytes):
         749 : System.Private.CoreLib.dasm (0.01 % of base)
         715 : Microsoft.VisualBasic.Core.dasm (0.13 % of base)
         105 : System.Numerics.Tensors.dasm (0.08 % of base)
          84 : System.Linq.Expressions.dasm (0.01 % of base)
          42 : System.Runtime.Numerics.dasm (0.04 % of base)
          35 : System.Private.Xml.dasm (0.00 % of base)
          21 : System.Linq.dasm (0.00 % of base)
          14 : System.Configuration.ConfigurationManager.dasm (0.00 % of base)
          14 : System.Net.Quic.dasm (0.01 % of base)
           7 : System.Data.Common.dasm (0.00 % of base)
           7 : System.Net.HttpListener.dasm (0.01 % of base)

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

Top method regressions (bytes):
         165 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:LongMultiplyOverflow(long,long):long (FullOpts) (0 base, 1 diff methods)
         119 (2.49 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Operators:ModObject(System.Object,System.Object):System.Object (FullOpts)
         117 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:ULongMultiplyOverflow(ulong,ulong):ulong (FullOpts) (0 base, 1 diff methods)
          84 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleReminder(double,double):double (FullOpts) (0 base, 1 diff methods)
          72 (Infinity of base) : System.Private.CoreLib.dasm - System.MathF:FloatReminder(float,float):float (FullOpts) (0 base, 1 diff methods)
          70 (2.16 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ObjectType:ModObj(System.Object,System.Object):System.Object (FullOpts)
          63 (9.09 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Checked:ConvertDouble(double):System.Object:this (FullOpts)
          56 (9.79 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+ConvertDoubleToUInt64:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[ulong] (FullOpts)
          49 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToULong(double):ulong (FullOpts) (0 base, 1 diff methods)
          49 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToULongOverflow(double):ulong (FullOpts) (0 base, 1 diff methods)
          48 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToLongOverflow(double):long (FullOpts) (0 base, 1 diff methods)
          48 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToUIntOverflow(double):uint (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToIntOverflow(double):int (FullOpts) (0 base, 1 diff methods)
          42 (2.85 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.DateAndTime:DateDiff(int,System.DateTime,System.DateTime,int,int):long (FullOpts)
          32 (2.66 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToByte(System.Object):ubyte (FullOpts)
          32 (2.55 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToSByte(System.Object):byte (FullOpts)
          32 (2.72 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToUShort(System.Object):ushort (FullOpts)
          28 (3.35 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ByteType:FromObject(System.Object):ubyte (FullOpts)
          28 (2.65 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToInteger(System.Object):int (FullOpts)
          28 (2.73 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToLong(System.Object):long (FullOpts)
          28 (2.25 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToShort(System.Object):short (FullOpts)
          28 (2.55 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToUInteger(System.Object):uint (FullOpts)
          28 (2.60 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToULong(System.Object):ulong (FullOpts)
          28 (3.77 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.IntegerType:FromObject(System.Object):int (FullOpts)
          28 (3.88 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.LongType:FromObject(System.Object):long (FullOpts)
          28 (3.11 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ShortType:FromObject(System.Object):short (FullOpts)
          28 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:ULongToDouble(ulong):double (FullOpts) (0 base, 1 diff methods)
          28 (11.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+ConvertDoubleToUInt64:Invoke(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[ulong] (FullOpts)
          17 (1.32 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.Conversion:Val(System.String):double (FullOpts)
          14 (7.25 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ValidatorUtils:ValidateScalar[double](double,double,double,double,ubyte) (FullOpts)
          14 (0.47 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicConfiguration:Create(System.Net.Quic.QuicConnectionOptions,int,System.Security.Cryptography.X509Certificates.X509Certificate,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Security.Cryptography.X509Certificates.X509Certificate2],System.Collections.Generic.List`1[System.Net.Security.SslApplicationProtocol],System.Net.Security.CipherSuitesPolicy,int):System.Net.Quic.MsQuicSafeHandle (FullOpts)
          14 (14.43 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+ConvertDoubleToUInt64:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
           8 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:<LongMultiplyOverflow>g__Hi32Bits|133_0(ulong):uint (FullOpts) (0 base, 1 diff methods)
           8 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:<ULongMultiplyOverflow>g__Hi32Bits|134_0(ulong):uint (FullOpts) (0 base, 1 diff methods)
           7 (2.48 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ByteType:FromString(System.String):ubyte (FullOpts)
           7 (2.48 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToByte(System.String):ubyte (FullOpts)
           7 (2.54 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToInteger(System.String):int (FullOpts)
           7 (2.42 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToSByte(System.String):byte (FullOpts)
           7 (2.36 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToShort(System.String):short (FullOpts)
           7 (2.53 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToUInteger(System.String):uint (FullOpts)
           7 (2.48 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToUShort(System.String):ushort (FullOpts)
           7 (2.54 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.IntegerType:FromString(System.String):int (FullOpts)
           7 (10.94 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ObjectType:ModDouble(double,double):System.Object (FullOpts)
           7 (10.61 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ObjectType:ModSingle(float,float):System.Object (FullOpts)
           7 (2.45 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ObjectType:ModString(System.IConvertible,int,System.IConvertible,int):System.Object (FullOpts)
           7 (5.11 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ObjectType:ModStringString(System.String,System.String):System.Object (FullOpts)
           7 (10.94 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Operators:ModDouble(double,double):System.Object (FullOpts)
           7 (10.61 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Operators:ModSingle(float,float):System.Object (FullOpts)
           7 (2.36 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ShortType:FromString(System.String):short (FullOpts)
           7 (0.58 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.DateAndTime:DateAdd(int,double,System.DateTime):System.DateTime (FullOpts)
           7 (3.21 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.Interaction:Choose(double,System.Object[]):System.Object (FullOpts)
           7 (9.59 % of base) : System.Private.Xml.dasm - MS.Internal.Xml.XPath.NumericExpr:GetValue(int,double,double):double (FullOpts)
           7 (0.32 % of base) : System.Data.Common.dasm - System.Data.Common.TimeSpanStorage:Aggregate(int[],int):System.Object:this (FullOpts)
           7 (2.25 % of base) : System.Linq.dasm - System.Linq.Enumerable:Sum[double,long](System.Collections.Generic.IEnumerable`1[double]):long (FullOpts)
           7 (2.66 % 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)
           7 (9.46 % of base) : System.Linq.dasm - System.Linq.Enumerable:Sum[double,long](System.ReadOnlySpan`1[double]):long (FullOpts)
           7 (2.56 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.ModuloInstruction+ModuloDouble:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
           7 (2.56 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.ModuloInstruction+ModuloSingle:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
           7 (1.31 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Unchecked:ConvertDouble(double):System.Object:this (FullOpts)
           7 (2.69 % of base) : System.Private.CoreLib.dasm - System.Math:IEEERemainder(double,double):double (FullOpts)
           7 (2.71 % of base) : System.Private.CoreLib.dasm - System.MathF:IEEERemainder(float,float):float (FullOpts)
           7 (7.22 % of base) : System.Net.HttpListener.dasm - System.Net.HttpListenerTimeoutManager:ValidateTimeout(System.TimeSpan) (FullOpts)
           7 (6.31 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:IsEvenInteger(System.Numerics.Complex):ubyte (FullOpts)
           7 (6.31 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:IsOddInteger(System.Numerics.Complex):ubyte (FullOpts)
           7 (12.73 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:System.Numerics.INumberBase<System.Numerics.Complex>.TryConvertToChecked[int](System.Numerics.Complex,byref):ubyte (FullOpts)
           7 (12.50 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:System.Numerics.INumberBase<System.Numerics.Complex>.TryConvertToChecked[long](System.Numerics.Complex,byref):ubyte (FullOpts)
           7 (9.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:System.Numerics.INumberBase<System.Numerics.Complex>.TryConvertToChecked[short](System.Numerics.Complex,byref):ubyte (FullOpts)
           7 (10.45 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:System.Numerics.INumberBase<System.Numerics.Complex>.TryConvertToChecked[ubyte](System.Numerics.Complex,byref):ubyte (FullOpts)
           7 (58.33 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+ConvertCheckedFallbackOperator`2[double,long]:Invoke(double):long (FullOpts)
           7 (0.34 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILOptimizerVisitor:FoldArithmetic(int,System.Xml.Xsl.Qil.QilLiteral,System.Xml.Xsl.Qil.QilLiteral):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
           7 (0.38 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.XsltConvert:ConvertToType(System.Xml.Schema.XmlAtomicValue,System.Xml.Xsl.XmlQueryType):System.Xml.Schema.XmlAtomicValue (FullOpts)
           7 (58.33 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.XsltConvert:ToInt(double):int (FullOpts)
           7 (58.33 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.XsltConvert:ToLong(double):long (FullOpts)
           6 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToInt(double):int (FullOpts) (0 base, 1 diff methods)
           6 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToUInt(double):uint (FullOpts) (0 base, 1 diff methods)

Top method regressions (percentages):
           8 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:<LongMultiplyOverflow>g__Hi32Bits|133_0(ulong):uint (FullOpts) (0 base, 1 diff methods)
           8 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:<ULongMultiplyOverflow>g__Hi32Bits|134_0(ulong):uint (FullOpts) (0 base, 1 diff methods)
          84 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleReminder(double,double):double (FullOpts) (0 base, 1 diff methods)
           6 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToInt(double):int (FullOpts) (0 base, 1 diff methods)
          47 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToIntOverflow(double):int (FullOpts) (0 base, 1 diff methods)
          48 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToLongOverflow(double):long (FullOpts) (0 base, 1 diff methods)
           6 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToUInt(double):uint (FullOpts) (0 base, 1 diff methods)
          48 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToUIntOverflow(double):uint (FullOpts) (0 base, 1 diff methods)
          49 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToULong(double):ulong (FullOpts) (0 base, 1 diff methods)
          49 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:DoubleToULongOverflow(double):ulong (FullOpts) (0 base, 1 diff methods)
         165 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:LongMultiplyOverflow(long,long):long (FullOpts) (0 base, 1 diff methods)
         117 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:ULongMultiplyOverflow(ulong,ulong):ulong (FullOpts) (0 base, 1 diff methods)
          28 (Infinity of base) : System.Private.CoreLib.dasm - System.Math:ULongToDouble(ulong):double (FullOpts) (0 base, 1 diff methods)
          72 (Infinity of base) : System.Private.CoreLib.dasm - System.MathF:FloatReminder(float,float):float (FullOpts) (0 base, 1 diff methods)
           7 (58.33 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+ConvertCheckedFallbackOperator`2[double,long]:Invoke(double):long (FullOpts)
           7 (58.33 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.XsltConvert:ToInt(double):int (FullOpts)
           7 (58.33 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.XsltConvert:ToLong(double):long (FullOpts)
          14 (14.43 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+ConvertDoubleToUInt64:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
           7 (12.73 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:System.Numerics.INumberBase<System.Numerics.Complex>.TryConvertToChecked[int](System.Numerics.Complex,byref):ubyte (FullOpts)
           7 (12.50 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:System.Numerics.INumberBase<System.Numerics.Complex>.TryConvertToChecked[long](System.Numerics.Complex,byref):ubyte (FullOpts)
          28 (11.57 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+ConvertDoubleToUInt64:Invoke(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[ulong] (FullOpts)
           7 (10.94 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ObjectType:ModDouble(double,double):System.Object (FullOpts)
           7 (10.94 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Operators:ModDouble(double,double):System.Object (FullOpts)
           7 (10.61 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ObjectType:ModSingle(float,float):System.Object (FullOpts)
           7 (10.61 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Operators:ModSingle(float,float):System.Object (FullOpts)
           7 (10.45 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:System.Numerics.INumberBase<System.Numerics.Complex>.TryConvertToChecked[ubyte](System.Numerics.Complex,byref):ubyte (FullOpts)
          56 (9.79 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+ConvertDoubleToUInt64:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):System.Runtime.Intrinsics.Vector512`1[ulong] (FullOpts)
           7 (9.59 % of base) : System.Private.Xml.dasm - MS.Internal.Xml.XPath.NumericExpr:GetValue(int,double,double):double (FullOpts)
           7 (9.46 % of base) : System.Linq.dasm - System.Linq.Enumerable:Sum[double,long](System.ReadOnlySpan`1[double]):long (FullOpts)
           7 (9.33 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:System.Numerics.INumberBase<System.Numerics.Complex>.TryConvertToChecked[short](System.Numerics.Complex,byref):ubyte (FullOpts)
          63 (9.09 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Checked:ConvertDouble(double):System.Object:this (FullOpts)
          14 (7.25 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ValidatorUtils:ValidateScalar[double](double,double,double,double,ubyte) (FullOpts)
           7 (7.22 % of base) : System.Net.HttpListener.dasm - System.Net.HttpListenerTimeoutManager:ValidateTimeout(System.TimeSpan) (FullOpts)
           7 (6.31 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:IsEvenInteger(System.Numerics.Complex):ubyte (FullOpts)
           7 (6.31 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:IsOddInteger(System.Numerics.Complex):ubyte (FullOpts)
           7 (5.11 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ObjectType:ModStringString(System.String,System.String):System.Object (FullOpts)
          28 (3.88 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.LongType:FromObject(System.Object):long (FullOpts)
          28 (3.77 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.IntegerType:FromObject(System.Object):int (FullOpts)
          28 (3.35 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ByteType:FromObject(System.Object):ubyte (FullOpts)
           7 (3.21 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.Interaction:Choose(double,System.Object[]):System.Object (FullOpts)
          28 (3.11 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ShortType:FromObject(System.Object):short (FullOpts)
          42 (2.85 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.DateAndTime:DateDiff(int,System.DateTime,System.DateTime,int,int):long (FullOpts)
          28 (2.73 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToLong(System.Object):long (FullOpts)
          32 (2.72 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToUShort(System.Object):ushort (FullOpts)
           7 (2.71 % of base) : System.Private.CoreLib.dasm - System.MathF:IEEERemainder(float,float):float (FullOpts)
           7 (2.69 % of base) : System.Private.CoreLib.dasm - System.Math:IEEERemainder(double,double):double (FullOpts)
           7 (2.66 % 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)
          32 (2.66 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToByte(System.Object):ubyte (FullOpts)
          28 (2.65 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToInteger(System.Object):int (FullOpts)
          28 (2.60 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToULong(System.Object):ulong (FullOpts)
           7 (2.56 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.ModuloInstruction+ModuloDouble:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
           7 (2.56 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.ModuloInstruction+ModuloSingle:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
          32 (2.55 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToSByte(System.Object):byte (FullOpts)
          28 (2.55 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToUInteger(System.Object):uint (FullOpts)
           7 (2.54 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToInteger(System.String):int (FullOpts)
           7 (2.54 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.IntegerType:FromString(System.String):int (FullOpts)
           7 (2.53 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToUInteger(System.String):uint (FullOpts)
         119 (2.49 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Operators:ModObject(System.Object,System.Object):System.Object (FullOpts)
           7 (2.48 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ByteType:FromString(System.String):ubyte (FullOpts)
           7 (2.48 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToByte(System.String):ubyte (FullOpts)
           7 (2.48 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToUShort(System.String):ushort (FullOpts)
           7 (2.45 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ObjectType:ModString(System.IConvertible,int,System.IConvertible,int):System.Object (FullOpts)
           7 (2.42 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToSByte(System.String):byte (FullOpts)
           7 (2.36 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToShort(System.String):short (FullOpts)
           7 (2.36 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ShortType:FromString(System.String):short (FullOpts)
           7 (2.25 % of base) : System.Linq.dasm - System.Linq.Enumerable:Sum[double,long](System.Collections.Generic.IEnumerable`1[double]):long (FullOpts)
          28 (2.25 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Conversions:ToShort(System.Object):short (FullOpts)
          70 (2.16 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ObjectType:ModObj(System.Object,System.Object):System.Object (FullOpts)
          17 (1.32 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.Conversion:Val(System.String):double (FullOpts)
           7 (1.31 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.NumericConvertInstruction+Unchecked:ConvertDouble(double):System.Object:this (FullOpts)
           7 (0.58 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.DateAndTime:DateAdd(int,double,System.DateTime):System.DateTime (FullOpts)
          14 (0.47 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicConfiguration:Create(System.Net.Quic.QuicConnectionOptions,int,System.Security.Cryptography.X509Certificates.X509Certificate,System.Collections.ObjectModel.ReadOnlyCollection`1[System.Security.Cryptography.X509Certificates.X509Certificate2],System.Collections.Generic.List`1[System.Net.Security.SslApplicationProtocol],System.Net.Security.CipherSuitesPolicy,int):System.Net.Quic.MsQuicSafeHandle (FullOpts)
           7 (0.38 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.XsltConvert:ConvertToType(System.Xml.Schema.XmlAtomicValue,System.Xml.Xsl.XmlQueryType):System.Xml.Schema.XmlAtomicValue (FullOpts)
           7 (0.34 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILOptimizerVisitor:FoldArithmetic(int,System.Xml.Xsl.Qil.QilLiteral,System.Xml.Xsl.Qil.QilLiteral):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
           7 (0.32 % of base) : System.Data.Common.dasm - System.Data.Common.TimeSpanStorage:Aggregate(int[],int):System.Object:this (FullOpts)

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

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

Artifacts:

Activity

  1. MihuBot commented on Feb 23, 2024

    @MihuBot
    OwnerAuthor

    Top method regressions

    7 (2.69 % of base) - System.Math:IEEERemainder(double,double):double
     ; Assembly listing for method System.Math:IEEERemainder(double,double):double (FullOpts)
     ; Emitting BLENDED_CODE for X64 with AVX - Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  9,  6.50)  double  ->  [rbp-0x08]  single-def
     ;  V01 arg1         [V01,T02] (  8,  5   )  double  ->  [rbp-0x10]  single-def
     ;  V02 loc0         [V02,T03] (  7,  3.50)  double  ->  [rbp-0x18]  spill-single-def
     ;  V03 loc1         [V03,T04] (  3,  1.50)  double  ->  mm0        
     ;  V04 loc2         [V04,T05] (  3,  1.50)  double  ->  mm4        
     ;* V05 loc3         [V05    ] (  0,  0   )  double  ->  zero-ref   
     ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
     ;  V07 tmp1         [V07,T01] (  7,  8   )  double  ->  mm0         "Single return block return value"
     ;  V08 cse0         [V08,T06] (  3,  1.50)  double  ->  mm3         "CSE - moderate"
     ;  V09 cse1         [V09,T07] (  3,  1.50)  double  ->  mm4         "CSE - moderate"
     ;
     ; Lcl frame size = 32
     
     G_M14330_IG01:
            push     rbp
            sub      rsp, 32
            lea      rbp, [rsp+0x20]
     						;; size=10 bbWeight=1 PerfScore 1.75
     G_M14330_IG02:
            vucomisd xmm0, xmm0
            jp       SHORT G_M14330_IG03
            je       SHORT G_M14330_IG04
     						;; size=8 bbWeight=1 PerfScore 4.00
     G_M14330_IG03:
            jmp      G_M14330_IG13
     						;; size=5 bbWeight=0.50 PerfScore 1.00
     G_M14330_IG04:
            vucomisd xmm1, xmm1
            jp       SHORT G_M14330_IG05
            je       SHORT G_M14330_IG06
     						;; size=8 bbWeight=0.50 PerfScore 2.00
     G_M14330_IG05:
            vmovaps  xmm0, xmm1
            jmp      G_M14330_IG13
     						;; size=9 bbWeight=0.50 PerfScore 1.12
     G_M14330_IG06:
            vmovsd   qword ptr [rbp-0x08], xmm0
            vmovsd   qword ptr [rbp-0x10], xmm1
    -       call     CORINFO_HELP_DBLREM
    +       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_DBLREM
    +       call     [rax]CORINFO_HELP_DBLREM
            vmovsd   qword ptr [rbp-0x18], xmm0
            vucomisd xmm0, xmm0
            jp       SHORT G_M14330_IG07
            je       SHORT G_M14330_IG08
    -						;; size=28 bbWeight=0.50 PerfScore 4.00
    +						;; size=35 bbWeight=0.50 PerfScore 5.12
     G_M14330_IG07:
            vmovsd   xmm0, qword ptr [reloc @RWD00]
            jmp      G_M14330_IG13
     						;; size=13 bbWeight=0.50 PerfScore 2.50
     G_M14330_IG08:
            vxorps   xmm1, xmm1, xmm1
            vucomisd xmm0, xmm1
            jp       SHORT G_M14330_IG09
            jne      SHORT G_M14330_IG09
            vmovsd   xmm1, qword ptr [rbp-0x08]
            vmovd    rax, xmm1
            test     rax, rax
            jge      SHORT G_M14330_IG10
            vmovsd   xmm0, qword ptr [reloc @RWD08]
            jmp      G_M14330_IG13
     						;; size=40 bbWeight=0.50 PerfScore 7.79
     G_M14330_IG09:
            vmovsd   xmm1, qword ptr [rbp-0x08]
     						;; size=5 bbWeight=0.25 PerfScore 0.75
     G_M14330_IG10:
            vmovsd   qword ptr [rbp-0x08], xmm1
            vmovaps  xmm0, xmm1
            mov      rax, 0xD1FFAB1E      ; code for System.Math:Sign(double):int
            call     [rax]System.Math:Sign(double):int
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2sd xmm0, xmm0, eax
            vmovsd   xmm2, qword ptr [rbp-0x10]
            vandps   xmm1, xmm2, xmmword ptr [reloc @RWD16]
            vmulsd   xmm0, xmm0, xmm1
            vmovsd   xmm1, qword ptr [rbp-0x18]
            vsubsd   xmm0, xmm1, xmm0
            vandps   xmm3, xmm0, xmmword ptr [reloc @RWD16]
            vandps   xmm4, xmm1, xmmword ptr [reloc @RWD16]
            vucomisd xmm3, xmm4
            jp       SHORT G_M14330_IG12
            jne      SHORT G_M14330_IG12
            vmovsd   xmm3, qword ptr [rbp-0x08]
            vdivsd   xmm4, xmm3, xmm2
            vroundsd xmm2, xmm2, xmm4, 4
            vandps   xmm2, xmm2, xmmword ptr [reloc @RWD16]
            vandps   xmm4, xmm4, xmmword ptr [reloc @RWD16]
            vucomisd xmm2, xmm4
            ja       SHORT G_M14330_IG13
     						;; size=116 bbWeight=0.50 PerfScore 30.92
     G_M14330_IG11:
            vmovaps  xmm0, xmm1
            jmp      SHORT G_M14330_IG13
     						;; size=6 bbWeight=0.50 PerfScore 1.12
     G_M14330_IG12:
            vucomisd xmm4, xmm3
            jbe      SHORT G_M14330_IG11
     						;; size=6 bbWeight=0.50 PerfScore 1.50
     G_M14330_IG13:
            add      rsp, 32
            pop      rbp
            ret      
     						;; size=6 bbWeight=1 PerfScore 1.75
     RWD00  	dq	FFF8000000000000h	;         -nan
     RWD08  	dq	8000000000000000h	;           -0
     RWD16  	dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
     
     
    -; Total bytes of code 260, prolog size 10, PerfScore 60.21, instruction count 62, allocated bytes for code 260 (MethodHash=dbe0c805) for method System.Math:IEEERemainder(double,double):double (FullOpts)
    +; Total bytes of code 267, prolog size 10, PerfScore 61.33, instruction count 63, allocated bytes for code 267 (MethodHash=dbe0c805) for method System.Math:IEEERemainder(double,double):double (FullOpts)
    7 (2.71 % of base) - System.MathF:IEEERemainder(float,float):float
     ; Assembly listing for method System.MathF:IEEERemainder(float,float):float (FullOpts)
     ; Emitting BLENDED_CODE for X64 with AVX - Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T00] (  9,  6.50)   float  ->  [rbp-0x04]  single-def
     ;  V01 arg1         [V01,T02] (  8,  5   )   float  ->  [rbp-0x08]  single-def
     ;  V02 loc0         [V02,T03] (  7,  3.50)   float  ->  [rbp-0x0C]  spill-single-def
     ;  V03 loc1         [V03,T04] (  3,  1.50)   float  ->  mm0        
     ;  V04 loc2         [V04,T05] (  3,  1.50)   float  ->  mm4        
     ;* V05 loc3         [V05    ] (  0,  0   )   float  ->  zero-ref   
     ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
     ;  V07 tmp1         [V07,T01] (  7,  8   )   float  ->  mm0         "Single return block return value"
     ;  V08 cse0         [V08,T06] (  3,  1.50)   float  ->  mm3         "CSE - moderate"
     ;  V09 cse1         [V09,T07] (  3,  1.50)   float  ->  mm4         "CSE - moderate"
     ;
     ; Lcl frame size = 16
     
     G_M34681_IG01:
            push     rbp
            sub      rsp, 16
            lea      rbp, [rsp+0x10]
     						;; size=10 bbWeight=1 PerfScore 1.75
     G_M34681_IG02:
            vucomiss xmm0, xmm0
            jp       SHORT G_M34681_IG03
            je       SHORT G_M34681_IG04
     						;; size=8 bbWeight=1 PerfScore 4.00
     G_M34681_IG03:
            jmp      G_M34681_IG13
     						;; size=5 bbWeight=0.50 PerfScore 1.00
     G_M34681_IG04:
            vucomiss xmm1, xmm1
            jp       SHORT G_M34681_IG05
            je       SHORT G_M34681_IG06
     						;; size=8 bbWeight=0.50 PerfScore 2.00
     G_M34681_IG05:
            vmovaps  xmm0, xmm1
            jmp      G_M34681_IG13
     						;; size=9 bbWeight=0.50 PerfScore 1.12
     G_M34681_IG06:
            vmovss   dword ptr [rbp-0x04], xmm0
            vmovss   dword ptr [rbp-0x08], xmm1
    -       call     CORINFO_HELP_FLTREM
    +       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_FLTREM
    +       call     [rax]CORINFO_HELP_FLTREM
            vmovss   dword ptr [rbp-0x0C], xmm0
            vucomiss xmm0, xmm0
            jp       SHORT G_M34681_IG07
            je       SHORT G_M34681_IG08
    -						;; size=28 bbWeight=0.50 PerfScore 4.00
    +						;; size=35 bbWeight=0.50 PerfScore 5.12
     G_M34681_IG07:
            vmovss   xmm0, dword ptr [reloc @RWD00]
            jmp      G_M34681_IG13
     						;; size=13 bbWeight=0.50 PerfScore 2.50
     G_M34681_IG08:
            vxorps   xmm1, xmm1, xmm1
            vucomiss xmm0, xmm1
            jp       SHORT G_M34681_IG09
            jne      SHORT G_M34681_IG09
            vmovss   xmm1, dword ptr [rbp-0x04]
            vmovd    eax, xmm1
            test     eax, eax
            jge      SHORT G_M34681_IG10
            vmovss   xmm0, dword ptr [reloc @RWD04]
            jmp      G_M34681_IG13
     						;; size=38 bbWeight=0.50 PerfScore 7.79
     G_M34681_IG09:
            vmovss   xmm1, dword ptr [rbp-0x04]
     						;; size=5 bbWeight=0.25 PerfScore 0.75
     G_M34681_IG10:
            vmovss   dword ptr [rbp-0x04], xmm1
            vmovaps  xmm0, xmm1
            mov      rax, 0xD1FFAB1E      ; code for System.Math:Sign(float):int
            call     [rax]System.Math:Sign(float):int
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, eax
            vmovss   xmm2, dword ptr [rbp-0x08]
            vandps   xmm1, xmm2, xmmword ptr [reloc @RWD16]
            vmulss   xmm0, xmm0, xmm1
            vmovss   xmm1, dword ptr [rbp-0x0C]
            vsubss   xmm0, xmm1, xmm0
            vandps   xmm3, xmm0, xmmword ptr [reloc @RWD16]
            vandps   xmm4, xmm1, xmmword ptr [reloc @RWD16]
            vucomiss xmm3, xmm4
            jp       SHORT G_M34681_IG12
            jne      SHORT G_M34681_IG12
            vmovss   xmm3, dword ptr [rbp-0x04]
            vdivss   xmm4, xmm3, xmm2
            vroundss xmm2, xmm2, xmm4, 4
            vandps   xmm2, xmm2, xmmword ptr [reloc @RWD16]
            vandps   xmm4, xmm4, xmmword ptr [reloc @RWD16]
            vucomiss xmm2, xmm4
            ja       SHORT G_M34681_IG13
     						;; size=116 bbWeight=0.50 PerfScore 29.92
     G_M34681_IG11:
            vmovaps  xmm0, xmm1
            jmp      SHORT G_M34681_IG13
     						;; size=6 bbWeight=0.50 PerfScore 1.12
     G_M34681_IG12:
            vucomiss xmm4, xmm3
            jbe      SHORT G_M34681_IG11
     						;; size=6 bbWeight=0.50 PerfScore 1.50
     G_M34681_IG13:
            add      rsp, 16
            pop      rbp
            ret      
     						;; size=6 bbWeight=1 PerfScore 1.75
     RWD00  	dd	FFC00000h		;      -nan
     RWD04  	dd	80000000h		;        -0
     RWD08  	dd	00000000h, 00000000h
     RWD16  	dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
     
     
    -; Total bytes of code 258, prolog size 10, PerfScore 59.21, instruction count 62, allocated bytes for code 258 (MethodHash=40f07886) for method System.MathF:IEEERemainder(float,float):float (FullOpts)
    +; Total bytes of code 265, prolog size 10, PerfScore 60.33, instruction count 63, allocated bytes for code 265 (MethodHash=40f07886) for method System.MathF:IEEERemainder(float,float):float (FullOpts)
  2. MihuBot commented on Feb 23, 2024

    @MihuBot
    OwnerAuthor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions