MihuBot / runtime-utils

0 stars 0 forks source link

[X64] [MichalPetryka] Mark Vector.IsSupported as intrinsic #265

Open MihuBot opened 7 months ago

MihuBot commented 7 months ago

Build completed in 2 hours 4 minutes. https://github.com/dotnet/runtime/pull/99013

CoreLib diffs

Diffs ``` Found 2 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 6839474 Total bytes of diff: 6830933 Total bytes of delta: -8541 (-0.12 % of base) Total relative delta: -59.61 diff is an improvement. relative diff is an improvement. Top file improvements (bytes): -8541 : System.Private.CoreLib.dasm (-0.12 % of base) 1 total files with Code Size differences (1 improved, 0 regressed), 0 unchanged. Top method regressions (bytes): 98 (1.97 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:LastIndexOfAny[System.Numerics.Vector`1[float]](byref,System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],int):int (FullOpts) 17 (0.33 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:IndexOfAny[System.Numerics.Vector`1[float]](byref,System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],int):int (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[double](System.Numerics.Vector`1[double],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[int](System.Numerics.Vector`1[int],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[long](System.Numerics.Vector`1[long],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[short](System.Numerics.Vector`1[short],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[ubyte](System.Numerics.Vector`1[ubyte],ulong) (FullOpts) Top method improvements (bytes): -911 (-96.20 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts) -317 (-93.51 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_BitwiseAnd(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -317 (-93.51 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_BitwiseOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -317 (-93.51 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_ExclusiveOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -260 (-92.20 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_UnaryNegation(System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -255 (-92.06 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_OnesComplement(System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -214 (-82.95 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Multiply(System.__Canon,System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -212 (-90.60 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Division(System.Numerics.Vector`1[System.__Canon],System.__Canon):System.Numerics.Vector`1[System.__Canon] (FullOpts) -212 (-90.60 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Multiply(System.Numerics.Vector`1[System.__Canon],System.__Canon):System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_Indices():System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_LeftShift(System.Numerics.Vector`1[System.__Canon],int):System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_RightShift(System.Numerics.Vector`1[System.__Canon],int):System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_UnsignedRightShift(System.Numerics.Vector`1[System.__Canon],int):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Addition(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Division(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Multiply(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Subtraction(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -199 (-90.05 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Equality(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):ubyte (FullOpts) -199 (-90.05 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Inequality(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):ubyte (FullOpts) -197 (-64.38 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:Equals(System.Object):ubyte:this (FullOpts) -197 (-89.95 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:GetHashCode():int:this (FullOpts) -195 (-89.86 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:g__SoftwareFallback|59_0(byref,System.Numerics.Vector`1[System.__Canon]):ubyte (FullOpts) -191 (-80.25 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:Equals(System.Numerics.Vector`1[System.__Canon]):ubyte:this (FullOpts) -140 (-62.78 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_AllBitsSet():System.Numerics.Vector`1[System.__Canon] (FullOpts) -140 (-62.78 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_One():System.Numerics.Vector`1[System.__Canon] (FullOpts) -133 (-75.57 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts) -124 (-83.22 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.__Canon[]):this (FullOpts) -124 (-83.22 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.__Canon[]):this (FullOpts) -121 (-74.23 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.__Canon[],int):this (FullOpts) -117 (-86.03 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.__Canon):this (FullOpts) -107 (-84.92 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon]):ubyte:this (FullOpts) -107 (-84.92 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -101 (-82.11 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.ReadOnlySpan`1[System.__Canon]):this (FullOpts) -101 (-82.11 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.ReadOnlySpan`1[ubyte]):this (FullOpts) -100 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.Span`1[System.__Canon]):this (FullOpts) -96 (-81.36 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.Span`1[System.__Canon]):this (FullOpts) -96 (-81.36 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.Span`1[ubyte]):this (FullOpts) -92 (-80.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadAligned[System.__Canon](ulong):System.Numerics.Vector`1[System.__Canon] (FullOpts) -88 (-80.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[System.__Canon](System.Numerics.Vector`1[System.__Canon],ulong) (FullOpts) -81 (-81.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[System.__Canon](byref,ulong):System.Numerics.Vector`1[System.__Canon] (FullOpts) -80 (-80.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[System.__Canon](System.Numerics.Vector`1[System.__Canon],byref,ulong) (FullOpts) -79 (-80.61 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_UnaryPlus(System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -76 (-80.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[System.__Canon](byref):System.Numerics.Vector`1[System.__Canon] (FullOpts) -73 (-79.35 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[System.__Canon](System.Numerics.Vector`1[System.__Canon],byref) (FullOpts) -71 (-78.89 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() (FullOpts) -65 (-77.38 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_Zero():System.Numerics.Vector`1[System.__Canon] (FullOpts) -61 (-76.25 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:As[System.__Canon,System.Nullable`1[int]](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.Nullable`1[int]] (FullOpts) -57 (-75.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_Count():int (FullOpts) -53 (-73.61 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[System.__Canon](System.Numerics.Vector`1[System.__Canon]):System.__Canon (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-13.85 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[ubyte]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) (2 methods) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[double](byref,ulong):System.Numerics.Vector`1[double] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[double](byref):System.Numerics.Vector`1[double] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[int](byref,ulong):System.Numerics.Vector`1[int] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[int](byref):System.Numerics.Vector`1[int] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[long](byref,ulong):System.Numerics.Vector`1[long] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[long](byref):System.Numerics.Vector`1[long] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[short](byref,ulong):System.Numerics.Vector`1[short] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[short](byref):System.Numerics.Vector`1[short] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[ubyte](byref,ulong):System.Numerics.Vector`1[ubyte] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[ubyte](byref):System.Numerics.Vector`1[ubyte] (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[double](System.Numerics.Vector`1[double],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[int](System.Numerics.Vector`1[int],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[long](System.Numerics.Vector`1[long],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[short](System.Numerics.Vector`1[short],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[ubyte](System.Numerics.Vector`1[ubyte],ulong) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[double](System.Numerics.Vector`1[double],byref,ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[double](System.Numerics.Vector`1[double],byref) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[int](System.Numerics.Vector`1[int],byref,ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[int](System.Numerics.Vector`1[int],byref) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[long](System.Numerics.Vector`1[long],byref,ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[long](System.Numerics.Vector`1[long],byref) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[short](System.Numerics.Vector`1[short],byref,ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[short](System.Numerics.Vector`1[short],byref) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[ubyte](System.Numerics.Vector`1[ubyte],byref,ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[ubyte](System.Numerics.Vector`1[ubyte],byref) (FullOpts) -5 (-41.67 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[double](System.Numerics.Vector`1[double]):double (FullOpts) -5 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[int](System.Numerics.Vector`1[int]):int (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[long](System.Numerics.Vector`1[long]):long (FullOpts) -5 (-41.67 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[short](System.Numerics.Vector`1[short]):short (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[ubyte](System.Numerics.Vector`1[ubyte]):ubyte (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:get_Count():int (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:get_Zero():System.Numerics.Vector`1[double] (FullOpts) -5 (-22.73 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:op_UnaryPlus(System.Numerics.Vector`1[double]):System.Numerics.Vector`1[double] (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:get_Count():int (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:get_Zero():System.Numerics.Vector`1[int] (FullOpts) -5 (-22.73 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:op_UnaryPlus(System.Numerics.Vector`1[int]):System.Numerics.Vector`1[int] (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:get_Count():int (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:get_Zero():System.Numerics.Vector`1[long] (FullOpts) -5 (-22.73 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:op_UnaryPlus(System.Numerics.Vector`1[long]):System.Numerics.Vector`1[long] (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:get_Count():int (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:get_Zero():System.Numerics.Vector`1[short] (FullOpts) -5 (-22.73 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:op_UnaryPlus(System.Numerics.Vector`1[short]):System.Numerics.Vector`1[short] (FullOpts) -5 (-17.86 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_DisplayString():System.String:this (FullOpts) -5 (-17.86 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.Nullable`1[int]]:get_DisplayString():System.String:this (FullOpts) -5 (-17.86 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.Numerics.Vector`1[float]]:get_DisplayString():System.String:this (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[ubyte]:get_Count():int (FullOpts) Top method regressions (percentages): 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[double](System.Numerics.Vector`1[double],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[int](System.Numerics.Vector`1[int],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[long](System.Numerics.Vector`1[long],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[short](System.Numerics.Vector`1[short],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[ubyte](System.Numerics.Vector`1[ubyte],ulong) (FullOpts) 98 (1.97 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:LastIndexOfAny[System.Numerics.Vector`1[float]](byref,System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],int):int (FullOpts) 17 (0.33 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:IndexOfAny[System.Numerics.Vector`1[float]](byref,System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],int):int (FullOpts) Top method improvements (percentages): -911 (-96.20 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts) -317 (-93.51 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_BitwiseAnd(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -317 (-93.51 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_BitwiseOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -317 (-93.51 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_ExclusiveOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -260 (-92.20 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_UnaryNegation(System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -255 (-92.06 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_OnesComplement(System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -212 (-90.60 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Division(System.Numerics.Vector`1[System.__Canon],System.__Canon):System.Numerics.Vector`1[System.__Canon] (FullOpts) -212 (-90.60 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Multiply(System.Numerics.Vector`1[System.__Canon],System.__Canon):System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_Indices():System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_LeftShift(System.Numerics.Vector`1[System.__Canon],int):System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_RightShift(System.Numerics.Vector`1[System.__Canon],int):System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_UnsignedRightShift(System.Numerics.Vector`1[System.__Canon],int):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Addition(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Division(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Multiply(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Subtraction(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -199 (-90.05 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Equality(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):ubyte (FullOpts) -199 (-90.05 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Inequality(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):ubyte (FullOpts) -197 (-89.95 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:GetHashCode():int:this (FullOpts) -195 (-89.86 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:g__SoftwareFallback|59_0(byref,System.Numerics.Vector`1[System.__Canon]):ubyte (FullOpts) -117 (-86.03 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.__Canon):this (FullOpts) -107 (-84.92 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon]):ubyte:this (FullOpts) -107 (-84.92 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -5 (-83.33 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[double]() (FullOpts) -5 (-83.33 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[int]() (FullOpts) -5 (-83.33 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[long]() (FullOpts) -5 (-83.33 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[short]() (FullOpts) -5 (-83.33 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[ubyte]() (FullOpts) -124 (-83.22 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.__Canon[]):this (FullOpts) -124 (-83.22 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.__Canon[]):this (FullOpts) -214 (-82.95 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Multiply(System.__Canon,System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -101 (-82.11 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.ReadOnlySpan`1[System.__Canon]):this (FullOpts) -101 (-82.11 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.ReadOnlySpan`1[ubyte]):this (FullOpts) -96 (-81.36 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.Span`1[System.__Canon]):this (FullOpts) -96 (-81.36 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.Span`1[ubyte]):this (FullOpts) -81 (-81.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[System.__Canon](byref,ulong):System.Numerics.Vector`1[System.__Canon] (FullOpts) -80 (-80.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[System.__Canon](System.Numerics.Vector`1[System.__Canon],byref,ulong) (FullOpts) -92 (-80.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadAligned[System.__Canon](ulong):System.Numerics.Vector`1[System.__Canon] (FullOpts) -79 (-80.61 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_UnaryPlus(System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -191 (-80.25 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:Equals(System.Numerics.Vector`1[System.__Canon]):ubyte:this (FullOpts) -76 (-80.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[System.__Canon](byref):System.Numerics.Vector`1[System.__Canon] (FullOpts) -88 (-80.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[System.__Canon](System.Numerics.Vector`1[System.__Canon],ulong) (FullOpts) -73 (-79.35 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[System.__Canon](System.Numerics.Vector`1[System.__Canon],byref) (FullOpts) -71 (-78.89 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() (FullOpts) -65 (-77.38 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_Zero():System.Numerics.Vector`1[System.__Canon] (FullOpts) -61 (-76.25 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:As[System.__Canon,System.Nullable`1[int]](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.Nullable`1[int]] (FullOpts) -133 (-75.57 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts) -57 (-75.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_Count():int (FullOpts) -121 (-74.23 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.__Canon[],int):this (FullOpts) -53 (-73.61 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[System.__Canon](System.Numerics.Vector`1[System.__Canon]):System.__Canon (FullOpts) -197 (-64.38 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:Equals(System.Object):ubyte:this (FullOpts) -140 (-62.78 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_AllBitsSet():System.Numerics.Vector`1[System.__Canon] (FullOpts) -140 (-62.78 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_One():System.Numerics.Vector`1[System.__Canon] (FullOpts) -5 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[int](System.Numerics.Vector`1[int]):int (FullOpts) -100 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.Span`1[System.__Canon]):this (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[long](System.Numerics.Vector`1[long]):long (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[ubyte](System.Numerics.Vector`1[ubyte]):ubyte (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:get_Count():int (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:get_Count():int (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:get_Count():int (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:get_Count():int (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[ubyte]:get_Count():int (FullOpts) -5 (-41.67 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[double](System.Numerics.Vector`1[double]):double (FullOpts) -5 (-41.67 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[short](System.Numerics.Vector`1[short]):short (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[double](System.Numerics.Vector`1[double],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[int](System.Numerics.Vector`1[int],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[long](System.Numerics.Vector`1[long],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[short](System.Numerics.Vector`1[short],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[ubyte](System.Numerics.Vector`1[ubyte],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[double](System.Numerics.Vector`1[double],byref) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[int](System.Numerics.Vector`1[int],byref) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[long](System.Numerics.Vector`1[long],byref) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[short](System.Numerics.Vector`1[short],byref) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[ubyte](System.Numerics.Vector`1[ubyte],byref) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[double](byref):System.Numerics.Vector`1[double] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[int](byref):System.Numerics.Vector`1[int] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[long](byref):System.Numerics.Vector`1[long] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[short](byref):System.Numerics.Vector`1[short] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[ubyte](byref):System.Numerics.Vector`1[ubyte] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[double](System.Numerics.Vector`1[double],byref,ulong) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[int](System.Numerics.Vector`1[int],byref,ulong) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[long](System.Numerics.Vector`1[long],byref,ulong) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[short](System.Numerics.Vector`1[short],byref,ulong) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[ubyte](System.Numerics.Vector`1[ubyte],byref,ulong) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:get_Zero():System.Numerics.Vector`1[double] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:get_Zero():System.Numerics.Vector`1[int] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:get_Zero():System.Numerics.Vector`1[long] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:get_Zero():System.Numerics.Vector`1[short] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[ubyte]:get_Zero():System.Numerics.Vector`1[ubyte] (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[double](byref,ulong):System.Numerics.Vector`1[double] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[int](byref,ulong):System.Numerics.Vector`1[int] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[long](byref,ulong):System.Numerics.Vector`1[long] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[short](byref,ulong):System.Numerics.Vector`1[short] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[ubyte](byref,ulong):System.Numerics.Vector`1[ubyte] (FullOpts) -5 (-22.73 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:op_UnaryPlus(System.Numerics.Vector`1[double]):System.Numerics.Vector`1[double] (FullOpts) -5 (-22.73 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:op_UnaryPlus(System.Numerics.Vector`1[int]):System.Numerics.Vector`1[int] (FullOpts) 115 total methods with Code Size differences (108 improved, 7 regressed), 56377 unchanged. -------------------------------------------------------------------------------- ```

Frameworks diffs

Diffs ``` Found 275 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 38298185 Total bytes of diff: 38289644 Total bytes of delta: -8541 (-0.02 % of base) Total relative delta: -59.61 diff is an improvement. relative diff is an improvement. Top file improvements (bytes): -8541 : System.Private.CoreLib.dasm (-0.12 % of base) 1 total files with Code Size differences (1 improved, 0 regressed), 255 unchanged. Top method regressions (bytes): 98 (1.97 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:LastIndexOfAny[System.Numerics.Vector`1[float]](byref,System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],int):int (FullOpts) 17 (0.33 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:IndexOfAny[System.Numerics.Vector`1[float]](byref,System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],int):int (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[double](System.Numerics.Vector`1[double],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[int](System.Numerics.Vector`1[int],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[long](System.Numerics.Vector`1[long],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[short](System.Numerics.Vector`1[short],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[ubyte](System.Numerics.Vector`1[ubyte],ulong) (FullOpts) Top method improvements (bytes): -911 (-96.20 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts) -317 (-93.51 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_BitwiseAnd(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -317 (-93.51 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_BitwiseOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -317 (-93.51 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_ExclusiveOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -260 (-92.20 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_UnaryNegation(System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -255 (-92.06 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_OnesComplement(System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -214 (-82.95 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Multiply(System.__Canon,System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -212 (-90.60 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Division(System.Numerics.Vector`1[System.__Canon],System.__Canon):System.Numerics.Vector`1[System.__Canon] (FullOpts) -212 (-90.60 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Multiply(System.Numerics.Vector`1[System.__Canon],System.__Canon):System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_Indices():System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_LeftShift(System.Numerics.Vector`1[System.__Canon],int):System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_RightShift(System.Numerics.Vector`1[System.__Canon],int):System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_UnsignedRightShift(System.Numerics.Vector`1[System.__Canon],int):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Addition(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Division(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Multiply(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Subtraction(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -199 (-90.05 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Equality(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):ubyte (FullOpts) -199 (-90.05 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Inequality(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):ubyte (FullOpts) -197 (-64.38 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:Equals(System.Object):ubyte:this (FullOpts) -197 (-89.95 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:GetHashCode():int:this (FullOpts) -195 (-89.86 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:g__SoftwareFallback|59_0(byref,System.Numerics.Vector`1[System.__Canon]):ubyte (FullOpts) -191 (-80.25 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:Equals(System.Numerics.Vector`1[System.__Canon]):ubyte:this (FullOpts) -140 (-62.78 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_AllBitsSet():System.Numerics.Vector`1[System.__Canon] (FullOpts) -140 (-62.78 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_One():System.Numerics.Vector`1[System.__Canon] (FullOpts) -133 (-75.57 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts) -124 (-83.22 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.__Canon[]):this (FullOpts) -124 (-83.22 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.__Canon[]):this (FullOpts) -121 (-74.23 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.__Canon[],int):this (FullOpts) -117 (-86.03 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.__Canon):this (FullOpts) -107 (-84.92 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon]):ubyte:this (FullOpts) -107 (-84.92 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -101 (-82.11 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.ReadOnlySpan`1[System.__Canon]):this (FullOpts) -101 (-82.11 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.ReadOnlySpan`1[ubyte]):this (FullOpts) -100 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.Span`1[System.__Canon]):this (FullOpts) -96 (-81.36 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.Span`1[System.__Canon]):this (FullOpts) -96 (-81.36 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.Span`1[ubyte]):this (FullOpts) -92 (-80.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadAligned[System.__Canon](ulong):System.Numerics.Vector`1[System.__Canon] (FullOpts) -88 (-80.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[System.__Canon](System.Numerics.Vector`1[System.__Canon],ulong) (FullOpts) -81 (-81.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[System.__Canon](byref,ulong):System.Numerics.Vector`1[System.__Canon] (FullOpts) -80 (-80.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[System.__Canon](System.Numerics.Vector`1[System.__Canon],byref,ulong) (FullOpts) -79 (-80.61 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_UnaryPlus(System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -76 (-80.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[System.__Canon](byref):System.Numerics.Vector`1[System.__Canon] (FullOpts) -73 (-79.35 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[System.__Canon](System.Numerics.Vector`1[System.__Canon],byref) (FullOpts) -71 (-78.89 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() (FullOpts) -65 (-77.38 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_Zero():System.Numerics.Vector`1[System.__Canon] (FullOpts) -61 (-76.25 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:As[System.__Canon,System.Nullable`1[int]](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.Nullable`1[int]] (FullOpts) -57 (-75.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_Count():int (FullOpts) -53 (-73.61 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[System.__Canon](System.Numerics.Vector`1[System.__Canon]):System.__Canon (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-13.85 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[ubyte]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) (2 methods) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[double](byref,ulong):System.Numerics.Vector`1[double] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[double](byref):System.Numerics.Vector`1[double] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[int](byref,ulong):System.Numerics.Vector`1[int] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[int](byref):System.Numerics.Vector`1[int] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[long](byref,ulong):System.Numerics.Vector`1[long] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[long](byref):System.Numerics.Vector`1[long] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[short](byref,ulong):System.Numerics.Vector`1[short] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[short](byref):System.Numerics.Vector`1[short] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[ubyte](byref,ulong):System.Numerics.Vector`1[ubyte] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[ubyte](byref):System.Numerics.Vector`1[ubyte] (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[double](System.Numerics.Vector`1[double],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[int](System.Numerics.Vector`1[int],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[long](System.Numerics.Vector`1[long],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[short](System.Numerics.Vector`1[short],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[ubyte](System.Numerics.Vector`1[ubyte],ulong) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[double](System.Numerics.Vector`1[double],byref,ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[double](System.Numerics.Vector`1[double],byref) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[int](System.Numerics.Vector`1[int],byref,ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[int](System.Numerics.Vector`1[int],byref) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[long](System.Numerics.Vector`1[long],byref,ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[long](System.Numerics.Vector`1[long],byref) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[short](System.Numerics.Vector`1[short],byref,ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[short](System.Numerics.Vector`1[short],byref) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[ubyte](System.Numerics.Vector`1[ubyte],byref,ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[ubyte](System.Numerics.Vector`1[ubyte],byref) (FullOpts) -5 (-41.67 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[double](System.Numerics.Vector`1[double]):double (FullOpts) -5 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[int](System.Numerics.Vector`1[int]):int (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[long](System.Numerics.Vector`1[long]):long (FullOpts) -5 (-41.67 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[short](System.Numerics.Vector`1[short]):short (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[ubyte](System.Numerics.Vector`1[ubyte]):ubyte (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:get_Count():int (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:get_Zero():System.Numerics.Vector`1[double] (FullOpts) -5 (-22.73 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:op_UnaryPlus(System.Numerics.Vector`1[double]):System.Numerics.Vector`1[double] (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:get_Count():int (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:get_Zero():System.Numerics.Vector`1[int] (FullOpts) -5 (-22.73 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:op_UnaryPlus(System.Numerics.Vector`1[int]):System.Numerics.Vector`1[int] (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:get_Count():int (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:get_Zero():System.Numerics.Vector`1[long] (FullOpts) -5 (-22.73 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:op_UnaryPlus(System.Numerics.Vector`1[long]):System.Numerics.Vector`1[long] (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:get_Count():int (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:get_Zero():System.Numerics.Vector`1[short] (FullOpts) -5 (-22.73 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:op_UnaryPlus(System.Numerics.Vector`1[short]):System.Numerics.Vector`1[short] (FullOpts) -5 (-17.86 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_DisplayString():System.String:this (FullOpts) -5 (-17.86 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.Nullable`1[int]]:get_DisplayString():System.String:this (FullOpts) -5 (-17.86 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.Numerics.Vector`1[float]]:get_DisplayString():System.String:this (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[ubyte]:get_Count():int (FullOpts) Top method regressions (percentages): 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[double](System.Numerics.Vector`1[double],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[int](System.Numerics.Vector`1[int],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[long](System.Numerics.Vector`1[long],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[short](System.Numerics.Vector`1[short],ulong) (FullOpts) 1 (2.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[ubyte](System.Numerics.Vector`1[ubyte],ulong) (FullOpts) 98 (1.97 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:LastIndexOfAny[System.Numerics.Vector`1[float]](byref,System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],int):int (FullOpts) 17 (0.33 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:IndexOfAny[System.Numerics.Vector`1[float]](byref,System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],System.Numerics.Vector`1[float],int):int (FullOpts) Top method improvements (percentages): -911 (-96.20 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts) -317 (-93.51 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_BitwiseAnd(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -317 (-93.51 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_BitwiseOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -317 (-93.51 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_ExclusiveOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -260 (-92.20 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_UnaryNegation(System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -255 (-92.06 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_OnesComplement(System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -212 (-90.60 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Division(System.Numerics.Vector`1[System.__Canon],System.__Canon):System.Numerics.Vector`1[System.__Canon] (FullOpts) -212 (-90.60 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Multiply(System.Numerics.Vector`1[System.__Canon],System.__Canon):System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_Indices():System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_LeftShift(System.Numerics.Vector`1[System.__Canon],int):System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_RightShift(System.Numerics.Vector`1[System.__Canon],int):System.Numerics.Vector`1[System.__Canon] (FullOpts) -210 (-90.52 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_UnsignedRightShift(System.Numerics.Vector`1[System.__Canon],int):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Addition(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Division(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Multiply(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -208 (-90.43 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Subtraction(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -199 (-90.05 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Equality(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):ubyte (FullOpts) -199 (-90.05 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Inequality(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):ubyte (FullOpts) -197 (-89.95 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:GetHashCode():int:this (FullOpts) -195 (-89.86 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:g__SoftwareFallback|59_0(byref,System.Numerics.Vector`1[System.__Canon]):ubyte (FullOpts) -117 (-86.03 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.__Canon):this (FullOpts) -107 (-84.92 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:TryCopyTo(System.Span`1[System.__Canon]):ubyte:this (FullOpts) -107 (-84.92 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -5 (-83.33 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[double]() (FullOpts) -5 (-83.33 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[int]() (FullOpts) -5 (-83.33 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[long]() (FullOpts) -5 (-83.33 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[short]() (FullOpts) -5 (-83.33 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[ubyte]() (FullOpts) -124 (-83.22 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.__Canon[]):this (FullOpts) -124 (-83.22 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.__Canon[]):this (FullOpts) -214 (-82.95 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_Multiply(System.__Canon,System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -101 (-82.11 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.ReadOnlySpan`1[System.__Canon]):this (FullOpts) -101 (-82.11 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.ReadOnlySpan`1[ubyte]):this (FullOpts) -96 (-81.36 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.Span`1[System.__Canon]):this (FullOpts) -96 (-81.36 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.Span`1[ubyte]):this (FullOpts) -81 (-81.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[System.__Canon](byref,ulong):System.Numerics.Vector`1[System.__Canon] (FullOpts) -80 (-80.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[System.__Canon](System.Numerics.Vector`1[System.__Canon],byref,ulong) (FullOpts) -92 (-80.70 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadAligned[System.__Canon](ulong):System.Numerics.Vector`1[System.__Canon] (FullOpts) -79 (-80.61 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:op_UnaryPlus(System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) -191 (-80.25 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:Equals(System.Numerics.Vector`1[System.__Canon]):ubyte:this (FullOpts) -76 (-80.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[System.__Canon](byref):System.Numerics.Vector`1[System.__Canon] (FullOpts) -88 (-80.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreAligned[System.__Canon](System.Numerics.Vector`1[System.__Canon],ulong) (FullOpts) -73 (-79.35 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[System.__Canon](System.Numerics.Vector`1[System.__Canon],byref) (FullOpts) -71 (-78.89 % of base) : System.Private.CoreLib.dasm - System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() (FullOpts) -65 (-77.38 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_Zero():System.Numerics.Vector`1[System.__Canon] (FullOpts) -61 (-76.25 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:As[System.__Canon,System.Nullable`1[int]](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.Nullable`1[int]] (FullOpts) -133 (-75.57 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts) -57 (-75.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_Count():int (FullOpts) -121 (-74.23 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.__Canon[],int):this (FullOpts) -53 (-73.61 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[System.__Canon](System.Numerics.Vector`1[System.__Canon]):System.__Canon (FullOpts) -197 (-64.38 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:Equals(System.Object):ubyte:this (FullOpts) -140 (-62.78 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_AllBitsSet():System.Numerics.Vector`1[System.__Canon] (FullOpts) -140 (-62.78 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:get_One():System.Numerics.Vector`1[System.__Canon] (FullOpts) -5 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[int](System.Numerics.Vector`1[int]):int (FullOpts) -100 (-50.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[System.__Canon]:.ctor(System.Span`1[System.__Canon]):this (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[long](System.Numerics.Vector`1[long]):long (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[ubyte](System.Numerics.Vector`1[ubyte]):ubyte (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:get_Count():int (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:get_Count():int (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:get_Count():int (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:get_Count():int (FullOpts) -5 (-45.45 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[ubyte]:get_Count():int (FullOpts) -5 (-41.67 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[double](System.Numerics.Vector`1[double]):double (FullOpts) -5 (-41.67 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ToScalar[short](System.Numerics.Vector`1[short]):short (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[double](System.Numerics.Vector`1[double],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[int](System.Numerics.Vector`1[int],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[long](System.Numerics.Vector`1[long],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[short](System.Numerics.Vector`1[short],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Store[ubyte](System.Numerics.Vector`1[ubyte],ulong) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[double](System.Numerics.Vector`1[double],byref) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[int](System.Numerics.Vector`1[int],byref) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[long](System.Numerics.Vector`1[long],byref) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[short](System.Numerics.Vector`1[short],byref) (FullOpts) -5 (-26.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[ubyte](System.Numerics.Vector`1[ubyte],byref) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[double](byref):System.Numerics.Vector`1[double] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[int](byref):System.Numerics.Vector`1[int] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[long](byref):System.Numerics.Vector`1[long] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[short](byref):System.Numerics.Vector`1[short] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[ubyte](byref):System.Numerics.Vector`1[ubyte] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[double](System.Numerics.Vector`1[double],byref,ulong) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[int](System.Numerics.Vector`1[int],byref,ulong) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[long](System.Numerics.Vector`1[long],byref,ulong) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[short](System.Numerics.Vector`1[short],byref,ulong) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:StoreUnsafe[ubyte](System.Numerics.Vector`1[ubyte],byref,ulong) (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:get_Zero():System.Numerics.Vector`1[double] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:get_Zero():System.Numerics.Vector`1[int] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:get_Zero():System.Numerics.Vector`1[long] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:get_Zero():System.Numerics.Vector`1[short] (FullOpts) -5 (-25.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[ubyte]:get_Zero():System.Numerics.Vector`1[ubyte] (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -9 (-24.32 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:TryCopyTo(System.Span`1[ubyte]):ubyte:this (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[double](byref,ulong):System.Numerics.Vector`1[double] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[int](byref,ulong):System.Numerics.Vector`1[int] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[long](byref,ulong):System.Numerics.Vector`1[long] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[short](byref,ulong):System.Numerics.Vector`1[short] (FullOpts) -5 (-23.81 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:LoadUnsafe[ubyte](byref,ulong):System.Numerics.Vector`1[ubyte] (FullOpts) -5 (-22.73 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:op_UnaryPlus(System.Numerics.Vector`1[double]):System.Numerics.Vector`1[double] (FullOpts) -5 (-22.73 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:op_UnaryPlus(System.Numerics.Vector`1[int]):System.Numerics.Vector`1[int] (FullOpts) 115 total methods with Code Size differences (108 improved, 7 regressed), 239509 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 7 months ago

Top method regressions

1 (2.70 % of base) - System.Numerics.Vector:StoreAligned[double](System.Numerics.Vector`1[double],ulong) ```diff ; Assembly listing for method System.Numerics.Vector:StoreAligned[double](System.Numerics.Vector`1[double],ulong) (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code -; rbp based frame +; rsp based frame ; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data +; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T01] ( 1, 1 ) simd32 -> [rbp+0x10] single-def +; V00 arg0 [V00,T01] ( 1, 1 ) simd32 -> [rsp+0x10] single-def ; V01 arg1 [V01,T00] ( 4, 4 ) long -> rdi 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" ; -; Lcl frame size = 0 +; Lcl frame size = 8 G_M28848_IG01: - push rbp - mov rbp, rsp - ;; size=4 bbWeight=1 PerfScore 1.25 + push rax + ;; size=1 bbWeight=1 PerfScore 1.00 G_M28848_IG02: test dil, 31 jne SHORT G_M28848_IG04 - vmovups ymm0, ymmword ptr [rbp+0x10] + vmovups ymm0, ymmword ptr [rsp+0x10] vmovups ymmword ptr [rdi], ymm0 - ;; size=15 bbWeight=1 PerfScore 7.25 + ;; size=16 bbWeight=1 PerfScore 7.25 G_M28848_IG03: vzeroupper - pop rbp + add rsp, 8 ret - ;; size=5 bbWeight=1 PerfScore 2.50 + ;; size=8 bbWeight=1 PerfScore 2.25 G_M28848_IG04: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowAccessViolationException() call [rax]System.ThrowHelper:ThrowAccessViolationException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 37, prolog size 4, PerfScore 11.00, instruction count 12, allocated bytes for code 37 (MethodHash=d0278f4f) for method System.Numerics.Vector:StoreAligned[double](System.Numerics.Vector`1[double],ulong) (FullOpts) +; Total bytes of code 38, prolog size 1, PerfScore 10.50, instruction count 11, allocated bytes for code 38 (MethodHash=d0278f4f) for method System.Numerics.Vector:StoreAligned[double](System.Numerics.Vector`1[double],ulong) (FullOpts) ```
1 (2.70 % of base) - System.Numerics.Vector:StoreAligned[int](System.Numerics.Vector`1[int],ulong) ```diff ; Assembly listing for method System.Numerics.Vector:StoreAligned[int](System.Numerics.Vector`1[int],ulong) (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code -; rbp based frame +; rsp based frame ; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data +; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T01] ( 1, 1 ) simd32 -> [rbp+0x10] single-def +; V00 arg0 [V00,T01] ( 1, 1 ) simd32 -> [rsp+0x10] single-def ; V01 arg1 [V01,T00] ( 4, 4 ) long -> rdi 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" ; -; Lcl frame size = 0 +; Lcl frame size = 8 G_M53040_IG01: - push rbp - mov rbp, rsp - ;; size=4 bbWeight=1 PerfScore 1.25 + push rax + ;; size=1 bbWeight=1 PerfScore 1.00 G_M53040_IG02: test dil, 31 jne SHORT G_M53040_IG04 - vmovups ymm0, ymmword ptr [rbp+0x10] + vmovups ymm0, ymmword ptr [rsp+0x10] vmovups ymmword ptr [rdi], ymm0 - ;; size=15 bbWeight=1 PerfScore 7.25 + ;; size=16 bbWeight=1 PerfScore 7.25 G_M53040_IG03: vzeroupper - pop rbp + add rsp, 8 ret - ;; size=5 bbWeight=1 PerfScore 2.50 + ;; size=8 bbWeight=1 PerfScore 2.25 G_M53040_IG04: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowAccessViolationException() call [rax]System.ThrowHelper:ThrowAccessViolationException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 37, prolog size 4, PerfScore 11.00, instruction count 12, allocated bytes for code 37 (MethodHash=78b830cf) for method System.Numerics.Vector:StoreAligned[int](System.Numerics.Vector`1[int],ulong) (FullOpts) +; Total bytes of code 38, prolog size 1, PerfScore 10.50, instruction count 11, allocated bytes for code 38 (MethodHash=78b830cf) for method System.Numerics.Vector:StoreAligned[int](System.Numerics.Vector`1[int],ulong) (FullOpts) ```
1 (2.70 % of base) - System.Numerics.Vector:StoreAligned[long](System.Numerics.Vector`1[long],ulong) ```diff ; Assembly listing for method System.Numerics.Vector:StoreAligned[long](System.Numerics.Vector`1[long],ulong) (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code -; rbp based frame +; rsp based frame ; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data +; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T01] ( 1, 1 ) simd32 -> [rbp+0x10] single-def +; V00 arg0 [V00,T01] ( 1, 1 ) simd32 -> [rsp+0x10] single-def ; V01 arg1 [V01,T00] ( 4, 4 ) long -> rdi 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" ; -; Lcl frame size = 0 +; Lcl frame size = 8 G_M6800_IG01: - push rbp - mov rbp, rsp - ;; size=4 bbWeight=1 PerfScore 1.25 + push rax + ;; size=1 bbWeight=1 PerfScore 1.00 G_M6800_IG02: test dil, 31 jne SHORT G_M6800_IG04 - vmovups ymm0, ymmword ptr [rbp+0x10] + vmovups ymm0, ymmword ptr [rsp+0x10] vmovups ymmword ptr [rdi], ymm0 - ;; size=15 bbWeight=1 PerfScore 7.25 + ;; size=16 bbWeight=1 PerfScore 7.25 G_M6800_IG03: vzeroupper - pop rbp + add rsp, 8 ret - ;; size=5 bbWeight=1 PerfScore 2.50 + ;; size=8 bbWeight=1 PerfScore 2.25 G_M6800_IG04: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowAccessViolationException() call [rax]System.ThrowHelper:ThrowAccessViolationException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 37, prolog size 4, PerfScore 11.00, instruction count 12, allocated bytes for code 37 (MethodHash=4286e56f) for method System.Numerics.Vector:StoreAligned[long](System.Numerics.Vector`1[long],ulong) (FullOpts) +; Total bytes of code 38, prolog size 1, PerfScore 10.50, instruction count 11, allocated bytes for code 38 (MethodHash=4286e56f) for method System.Numerics.Vector:StoreAligned[long](System.Numerics.Vector`1[long],ulong) (FullOpts) ```
1 (2.70 % of base) - System.Numerics.Vector:StoreAligned[short](System.Numerics.Vector`1[short],ulong) ```diff ; Assembly listing for method System.Numerics.Vector:StoreAligned[short](System.Numerics.Vector`1[short],ulong) (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code -; rbp based frame +; rsp based frame ; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data +; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T01] ( 1, 1 ) simd32 -> [rbp+0x10] single-def +; V00 arg0 [V00,T01] ( 1, 1 ) simd32 -> [rsp+0x10] single-def ; V01 arg1 [V01,T00] ( 4, 4 ) long -> rdi 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" ; -; Lcl frame size = 0 +; Lcl frame size = 8 G_M63216_IG01: - push rbp - mov rbp, rsp - ;; size=4 bbWeight=1 PerfScore 1.25 + push rax + ;; size=1 bbWeight=1 PerfScore 1.00 G_M63216_IG02: test dil, 31 jne SHORT G_M63216_IG04 - vmovups ymm0, ymmword ptr [rbp+0x10] + vmovups ymm0, ymmword ptr [rsp+0x10] vmovups ymmword ptr [rdi], ymm0 - ;; size=15 bbWeight=1 PerfScore 7.25 + ;; size=16 bbWeight=1 PerfScore 7.25 G_M63216_IG03: vzeroupper - pop rbp + add rsp, 8 ret - ;; size=5 bbWeight=1 PerfScore 2.50 + ;; size=8 bbWeight=1 PerfScore 2.25 G_M63216_IG04: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowAccessViolationException() call [rax]System.ThrowHelper:ThrowAccessViolationException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 37, prolog size 4, PerfScore 11.00, instruction count 12, allocated bytes for code 37 (MethodHash=8b2b090f) for method System.Numerics.Vector:StoreAligned[short](System.Numerics.Vector`1[short],ulong) (FullOpts) +; Total bytes of code 38, prolog size 1, PerfScore 10.50, instruction count 11, allocated bytes for code 38 (MethodHash=8b2b090f) for method System.Numerics.Vector:StoreAligned[short](System.Numerics.Vector`1[short],ulong) (FullOpts) ```
1 (2.70 % of base) - System.Numerics.Vector:StoreAligned[ubyte](System.Numerics.Vector`1[ubyte],ulong) ```diff ; Assembly listing for method System.Numerics.Vector:StoreAligned[ubyte](System.Numerics.Vector`1[ubyte],ulong) (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code -; rbp based frame +; rsp based frame ; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data +; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T01] ( 1, 1 ) simd32 -> [rbp+0x10] single-def +; V00 arg0 [V00,T01] ( 1, 1 ) simd32 -> [rsp+0x10] single-def ; V01 arg1 [V01,T00] ( 4, 4 ) long -> rdi 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" ; -; Lcl frame size = 0 +; Lcl frame size = 8 G_M33072_IG01: - push rbp - mov rbp, rsp - ;; size=4 bbWeight=1 PerfScore 1.25 + push rax + ;; size=1 bbWeight=1 PerfScore 1.00 G_M33072_IG02: test dil, 31 jne SHORT G_M33072_IG04 - vmovups ymm0, ymmword ptr [rbp+0x10] + vmovups ymm0, ymmword ptr [rsp+0x10] vmovups ymmword ptr [rdi], ymm0 - ;; size=15 bbWeight=1 PerfScore 7.25 + ;; size=16 bbWeight=1 PerfScore 7.25 G_M33072_IG03: vzeroupper - pop rbp + add rsp, 8 ret - ;; size=5 bbWeight=1 PerfScore 2.50 + ;; size=8 bbWeight=1 PerfScore 2.25 G_M33072_IG04: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowAccessViolationException() call [rax]System.ThrowHelper:ThrowAccessViolationException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 37, prolog size 4, PerfScore 11.00, instruction count 12, allocated bytes for code 37 (MethodHash=8fd07ecf) for method System.Numerics.Vector:StoreAligned[ubyte](System.Numerics.Vector`1[ubyte],ulong) (FullOpts) +; Total bytes of code 38, prolog size 1, PerfScore 10.50, instruction count 11, allocated bytes for code 38 (MethodHash=8fd07ecf) for method System.Numerics.Vector:StoreAligned[ubyte](System.Numerics.Vector`1[ubyte],ulong) (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/5ad33a27bbd72061a5bfb7f3098d7a5f

MihuBot commented 7 months ago

Top method improvements

-911 (-96.20 % of base) - System.Numerics.Vector`1[System.__Canon]:ToString(System.String,System.IFormatProvider):System.String:this ```diff ; Assembly listing for method System.Numerics.Vector`1[System.__Canon]:ToString(System.String,System.IFormatProvider):System.String:this (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; 10 single block inlinees; 18 inlinees without PGO data +; 0 inlinees with PGO data; 10 single block inlinees; 20 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T12] ( 4, 7 ) byref -> r15 this single-def -; V01 TypeCtx [V01,T25] ( 5, 4.20) long -> rsi single-def -; V02 arg1 [V02,T13] ( 4, 7 ) ref -> r14 class-hnd single-def -; V03 arg2 [V03,T07] ( 6, 8.50) ref -> rbx class-hnd single-def -; V04 loc0 [V04 ] ( 47, 75 ) struct (32) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op -; V05 loc1 [V05,T06] ( 5, 11 ) ref -> r12 class-hnd exact single-def +;* V00 this [V00 ] ( 0, 0 ) byref -> zero-ref this single-def +;* V01 TypeCtx [V01 ] ( 0, 0 ) long -> zero-ref single-def +;* V02 arg1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def +;* V03 arg2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def +;* V04 loc0 [V04 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[XSF] addr-exposed ld-addr-op +;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ;* V06 loc2 [V06 ] ( 0, 0 ) struct (16) zero-ref -; V07 loc3 [V07,T01] ( 5, 17 ) int -> [rbp-0x54] +;* V07 loc3 [V07 ] ( 0, 0 ) int -> zero-ref ;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V09 tmp1 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V10 tmp2 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V11 tmp3 [V11 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V12 tmp4 [V12 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" -; V13 tmp5 [V13,T34] ( 2, 4 ) long -> rdi "Inlining Arg" -; V14 tmp6 [V14,T38] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" -; V15 tmp7 [V15,T35] ( 4, 3 ) int -> rdi "Inline stloc first use temp" +;* V13 tmp5 [V13 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +;* V14 tmp6 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" +;* V15 tmp7 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V16 tmp8 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" ;* V17 tmp9 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" ;* V18 tmp10 [V18 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp" -; V19 tmp11 [V19,T23] ( 5, 7 ) ref -> rax class-hnd exact single-def "Inlining Arg" -; V20 tmp12 [V20,T37] ( 5, 2.50) int -> rdi "Inline stloc first use temp" -; V21 tmp13 [V21,T08] ( 5, 10 ) int -> rsi "Inline stloc first use temp" -; V22 tmp14 [V22,T09] ( 5, 10 ) int -> [rbp-0x58] spill-single-def "Inline stloc first use temp" +;* V19 tmp11 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" +;* V20 tmp12 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V21 tmp13 [V21 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V22 tmp14 [V22 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V23 tmp15 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V24 tmp16 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V25 tmp17 [V25,T14] ( 2, 8 ) byref -> rdi "Inlining Arg" -; V26 tmp18 [V26,T18] ( 2, 8 ) int -> rdx "Inlining Arg" +;* V25 tmp17 [V25 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +;* V26 tmp18 [V26 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V27 tmp19 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V28 tmp20 [V28 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -; V29 tmp21 [V29,T15] ( 2, 8 ) byref -> rsi "Inlining Arg" -; V30 tmp22 [V30,T19] ( 2, 8 ) long -> rdx "Inlining Arg" +;* V29 tmp21 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +;* V30 tmp22 [V30 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V31 tmp23 [V31 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -; V32 tmp24 [V32,T05] ( 4, 12 ) int -> rdi "Inline stloc first use temp" +;* V32 tmp24 [V32 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V33 tmp25 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" ;* V34 tmp26 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" ;* V35 tmp27 [V35 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp" -; V36 tmp28 [V36,T00] ( 5, 28 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "Inlining Arg" -; V37 tmp29 [V37,T10] ( 5, 10 ) int -> rdi "Inline stloc first use temp" -; V38 tmp30 [V38,T11] ( 5, 10 ) int -> [rbp-0x5C] spill-single-def "Inline stloc first use temp" +;* V36 tmp28 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" +;* V37 tmp29 [V37 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +;* V38 tmp30 [V38 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V39 tmp31 [V39 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V40 tmp32 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V41 tmp33 [V41,T16] ( 2, 8 ) byref -> rdi "Inlining Arg" -; V42 tmp34 [V42,T20] ( 2, 8 ) int -> rdx "Inlining Arg" +;* V41 tmp33 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +;* V42 tmp34 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V43 tmp35 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V44 tmp36 [V44 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -; V45 tmp37 [V45,T17] ( 2, 8 ) byref -> rsi "Inlining Arg" -; V46 tmp38 [V46,T21] ( 2, 8 ) long -> rdx "Inlining Arg" +;* V45 tmp37 [V45 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +;* V46 tmp38 [V46 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V47 tmp39 [V47 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V48 tmp40 [V48 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" -; V49 tmp41 [V49,T36] ( 4, 3 ) int -> rdi "Inline stloc first use temp" +;* V49 tmp41 [V49 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V50 tmp42 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" -;* V51 tmp43 [V51 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP +;* V51 tmp43 [V51 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP ;* V52 tmp44 [V52 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP -; V53 tmp45 [V53,T39] ( 2, 2 ) byref -> rdi single-def "field V10._reference (fldOffset=0x0)" P-INDEP -;* V54 tmp46 [V54,T44] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP -; V55 tmp47 [V55,T42] ( 2, 1.50) byref -> rsi single-def "field V16._reference (fldOffset=0x0)" P-INDEP -; V56 tmp48 [V56,T40] ( 2, 2 ) int -> rax "field V16._length (fldOffset=0x8)" P-INDEP +;* V53 tmp45 [V53 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP +;* V54 tmp46 [V54 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP +;* V55 tmp47 [V55 ] ( 0, 0 ) byref -> zero-ref "field V16._reference (fldOffset=0x0)" P-INDEP +;* V56 tmp48 [V56 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP ;* V57 tmp49 [V57 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP ;* V58 tmp50 [V58 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP ;* V59 tmp51 [V59 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP ;* V60 tmp52 [V60 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP ;* V61 tmp53 [V61 ] ( 0, 0 ) byref -> zero-ref "field V27._reference (fldOffset=0x0)" P-INDEP ;* V62 tmp54 [V62 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP -; V63 tmp55 [V63,T30] ( 2, 6 ) byref -> rsi "field V33._reference (fldOffset=0x0)" P-INDEP -; V64 tmp56 [V64,T22] ( 2, 8 ) int -> rax "field V33._length (fldOffset=0x8)" P-INDEP +;* V63 tmp55 [V63 ] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP +;* V64 tmp56 [V64 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP ;* V65 tmp57 [V65 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP ;* V66 tmp58 [V66 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP ;* V67 tmp59 [V67 ] ( 0, 0 ) byref -> zero-ref "field V40._reference (fldOffset=0x0)" P-INDEP ;* V68 tmp60 [V68 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP ;* V69 tmp61 [V69 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP ;* V70 tmp62 [V70 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP -; V71 tmp63 [V71,T43] ( 2, 1.50) byref -> rsi single-def "field V50._reference (fldOffset=0x0)" P-INDEP -; V72 tmp64 [V72,T41] ( 2, 2 ) int -> rax "field V50._length (fldOffset=0x8)" P-INDEP -; V73 tmp65 [V73,T33] ( 2, 4 ) ref -> rdi single-def "argument with side effect" -; V74 tmp66 [V74,T02] ( 2, 16 ) ref -> rdi "argument with side effect" -; V75 GsCookie [V75 ] ( 1, 1 ) long -> [rbp-0x78] do-not-enreg[X] addr-exposed "GSSecurityCookie" -; V76 cse0 [V76,T24] ( 4, 7 ) long -> r13 "CSE #03: moderate" -; V77 cse1 [V77,T03] ( 7, 14 ) int -> [rbp-0x60] spill-single-def "CSE #05: aggressive" -; V78 cse2 [V78,T04] ( 7, 14 ) int -> [rbp-0x64] spill-single-def "CSE #09: aggressive" -; V79 cse3 [V79,T26] ( 3, 6 ) int -> rax "CSE #06: moderate" -; V80 cse4 [V80,T27] ( 3, 6 ) int -> rdx "CSE #07: moderate" -; V81 cse5 [V81,T28] ( 3, 6 ) int -> rax "CSE #10: moderate" -; V82 cse6 [V82,T29] ( 3, 6 ) int -> rdx "CSE #11: moderate" -; V83 rat0 [V83,T32] ( 3, 4 ) long -> r13 "runtime lookup" -; V84 rat1 [V84,T31] ( 3, 5.60) long -> r13 "fgMakeTemp is creating a new local variable" +;* V71 tmp63 [V71 ] ( 0, 0 ) byref -> zero-ref "field V50._reference (fldOffset=0x0)" P-INDEP +;* V72 tmp64 [V72 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP +;* V73 tmp65 [V73 ] ( 0, 0 ) ref -> zero-ref "argument with side effect" +; V74 GsCookie [V74 ] ( 1, 1 ) long -> [rbp-0x08] do-not-enreg[X] addr-exposed "GSSecurityCookie" ; -; Lcl frame size = 88 +; Lcl frame size = 16 G_M52496_IG01: push rbp - push r15 - push r14 - push r13 - push r12 - push rbx - sub rsp, 88 - lea rbp, [rsp+0x80] - vxorps xmm8, xmm8, xmm8 - vmovdqu ymmword ptr [rbp-0x50], ymm8 - mov qword ptr [rbp-0x30], rsi - mov qword ptr [rbp-0x78], 0xD1FFAB1E - mov r15, rdi - mov r14, rdx - mov rbx, rcx - ;; size=53 bbWeight=1 PerfScore 11.83 + sub rsp, 16 + lea rbp, [rsp+0x10] + mov qword ptr [rbp-0x08], 0xD1FFAB1E + ;; size=18 bbWeight=0 PerfScore 0.00 G_M52496_IG02: - mov rdi, qword ptr [rsi+0x30] - mov rdi, qword ptr [rdi] - mov r13, qword ptr [rdi+0x20] - test r13, r13 - je SHORT G_M52496_IG04 - ;; size=16 bbWeight=1 PerfScore 7.25 -G_M52496_IG03: - jmp SHORT G_M52496_IG05 - ;; size=2 bbWeight=0.80 PerfScore 1.60 -G_M52496_IG04: - mov rdi, rsi - mov rsi, 0xD1FFAB1E ; global ptr - call CORINFO_HELP_RUNTIMEHANDLE_CLASS - mov r13, rax - ;; size=21 bbWeight=0.20 PerfScore 0.35 -G_M52496_IG05: - mov rdi, r13 - mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() - call [rax]System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() - test dword ptr [rsp], esp - sub rsp, 128 - lea rdi, [rsp] - mov bword ptr [rbp-0x40], rdi - mov dword ptr [rbp-0x38], 64 - xor edi, edi - mov dword ptr [rbp-0x48], edi - test rbx, rbx - je SHORT G_M52496_IG07 - ;; size=50 bbWeight=1 PerfScore 11.75 -G_M52496_IG06: - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo - call [rax]System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo - jmp SHORT G_M52496_IG08 - ;; size=17 bbWeight=0.50 PerfScore 2.75 -G_M52496_IG07: - mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo - call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo - ;; size=12 bbWeight=0.50 PerfScore 1.62 -G_M52496_IG08: - mov r12, gword ptr [rax+0x38] - mov edi, dword ptr [rbp-0x48] - mov rsi, bword ptr [rbp-0x40] - mov eax, dword ptr [rbp-0x38] - cmp edi, eax - jae SHORT G_M52496_IG10 - ;; size=18 bbWeight=1 PerfScore 6.25 -G_M52496_IG09: - mov eax, edi - mov word ptr [rsi+2*rax], 60 - inc edi - mov dword ptr [rbp-0x48], edi - jmp SHORT G_M52496_IG11 - ;; size=15 bbWeight=0.50 PerfScore 2.25 -G_M52496_IG10: - lea rdi, [rbp-0x50] - mov esi, 60 - mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this - call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this - ;; size=21 bbWeight=0.50 PerfScore 2.00 -G_M52496_IG11: - mov rsi, gword ptr [r15] - mov rdi, 0xD1FFAB1E ; System.IFormattable - call CORINFO_HELP_CHKCASTINTERFACE - mov rdi, rax - mov rdx, rbx - mov rsi, r14 - mov r11, 0xD1FFAB1E ; code for System.IFormattable:ToString(System.String,System.IFormatProvider):System.String:this - call [r11]System.IFormattable:ToString(System.String,System.IFormatProvider):System.String:this - test rax, rax - je SHORT G_M52496_IG14 - ;; size=45 bbWeight=1 PerfScore 8.50 -G_M52496_IG12: - mov edi, dword ptr [rbp-0x48] - cmp dword ptr [rax+0x08], 1 - jne SHORT G_M52496_IG13 - cmp edi, dword ptr [rbp-0x38] - jae SHORT G_M52496_IG13 - cmp edi, dword ptr [rbp-0x38] - jae G_M52496_IG33 - mov rsi, bword ptr [rbp-0x40] - mov ecx, edi - movzx rax, word ptr [rax+0x0C] - mov word ptr [rsi+2*rcx], ax - inc edi - mov dword ptr [rbp-0x48], edi - jmp SHORT G_M52496_IG14 - ;; size=44 bbWeight=0.50 PerfScore 9.25 -G_M52496_IG13: - lea rdi, [rbp-0x50] - mov rsi, rax - mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:AppendSlow(System.String):this - call [rax]System.Text.ValueStringBuilder:AppendSlow(System.String):this - ;; size=19 bbWeight=0.50 PerfScore 2.00 -G_M52496_IG14: - mov dword ptr [rbp-0x54], 1 - mov rdi, r13 - mov rcx, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() - call [rcx]System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() - ;; size=22 bbWeight=1 PerfScore 4.50 -G_M52496_IG15: - test r12, r12 - je G_M52496_IG19 - ;; size=9 bbWeight=4 PerfScore 5.00 -G_M52496_IG16: - mov eax, dword ptr [rbp-0x48] - mov esi, eax - mov ecx, dword ptr [r12+0x08] - mov dword ptr [rbp-0x60], ecx - cmp ecx, 1 - jne SHORT G_M52496_IG17 - cmp esi, dword ptr [rbp-0x38] - jae SHORT G_M52496_IG17 - cmp esi, dword ptr [rbp-0x38] - jae G_M52496_IG33 - mov rax, bword ptr [rbp-0x40] - mov ecx, esi - movzx rdi, word ptr [r12+0x0C] - mov word ptr [rax+2*rcx], di - inc esi - mov dword ptr [rbp-0x48], esi - jmp SHORT G_M52496_IG19 - ;; size=55 bbWeight=2 PerfScore 38.00 -G_M52496_IG17: - mov dword ptr [rbp-0x58], eax - mov esi, dword ptr [rbp-0x38] - sub esi, ecx - cmp esi, eax - jge SHORT G_M52496_IG18 - mov esi, ecx - lea rdi, [rbp-0x50] - mov rdx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this - call [rdx]System.Text.ValueStringBuilder:Grow(int):this - mov ecx, dword ptr [rbp-0x60] - ;; size=33 bbWeight=2 PerfScore 17.00 -G_M52496_IG18: - mov edx, dword ptr [rbp-0x38] - mov eax, dword ptr [rbp-0x58] - cmp eax, edx - ja G_M52496_IG34 - mov rdi, bword ptr [rbp-0x40] - mov esi, eax - lea rdi, bword ptr [rdi+2*rsi] - sub edx, eax - cmp ecx, edx - ja G_M52496_IG35 - lea rsi, bword ptr [r12+0x0C] - mov edx, ecx - add rdx, rdx - mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) - call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) - mov edi, dword ptr [rbp-0x60] - add edi, dword ptr [rbp-0x48] - mov dword ptr [rbp-0x48], edi - ;; size=65 bbWeight=2 PerfScore 29.50 -G_M52496_IG19: - mov edi, dword ptr [rbp-0x48] - mov rsi, bword ptr [rbp-0x40] - mov eax, dword ptr [rbp-0x38] - cmp edi, eax - jae SHORT G_M52496_IG21 - ;; size=14 bbWeight=4 PerfScore 17.00 -G_M52496_IG20: - mov eax, edi - mov word ptr [rsi+2*rax], 32 - inc edi - mov dword ptr [rbp-0x48], edi - jmp SHORT G_M52496_IG22 - ;; size=15 bbWeight=2 PerfScore 9.00 -G_M52496_IG21: - lea rdi, [rbp-0x50] - mov esi, 32 - mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this - call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this - ;; size=21 bbWeight=2 PerfScore 8.00 -G_M52496_IG22: - movsxd rsi, dword ptr [rbp-0x54] - mov rsi, gword ptr [r15+8*rsi] - mov rdi, 0xD1FFAB1E ; System.IFormattable - call CORINFO_HELP_CHKCASTINTERFACE - mov rdi, rax - mov rdx, rbx - mov rsi, r14 - mov r11, 0xD1FFAB1E ; code for System.IFormattable:ToString(System.String,System.IFormatProvider):System.String:this - call [r11]System.IFormattable:ToString(System.String,System.IFormatProvider):System.String:this - mov rsi, rax - mov gword ptr [rbp-0x70], rsi - test rsi, rsi - je G_M52496_IG26 - ;; size=61 bbWeight=4 PerfScore 51.00 -G_M52496_IG23: - mov eax, dword ptr [rbp-0x48] - mov edi, eax - mov ecx, dword ptr [rsi+0x08] - mov dword ptr [rbp-0x64], ecx - cmp ecx, 1 - jne SHORT G_M52496_IG24 - cmp edi, dword ptr [rbp-0x38] - jae SHORT G_M52496_IG24 - cmp edi, dword ptr [rbp-0x38] - jae G_M52496_IG33 - mov rax, bword ptr [rbp-0x40] - mov ecx, edi - movzx rsi, word ptr [rsi+0x0C] - mov word ptr [rax+2*rcx], si - inc edi - mov dword ptr [rbp-0x48], edi - jmp SHORT G_M52496_IG26 - ;; size=51 bbWeight=2 PerfScore 38.00 -G_M52496_IG24: - mov dword ptr [rbp-0x5C], eax - mov edi, dword ptr [rbp-0x38] - sub edi, ecx - cmp edi, eax - jge SHORT G_M52496_IG25 - mov esi, ecx - lea rdi, [rbp-0x50] - mov rdx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this - call [rdx]System.Text.ValueStringBuilder:Grow(int):this - mov ecx, dword ptr [rbp-0x64] - mov rsi, gword ptr [rbp-0x70] - ;; size=37 bbWeight=2 PerfScore 19.00 -G_M52496_IG25: - mov edx, dword ptr [rbp-0x38] - mov eax, dword ptr [rbp-0x5C] - cmp eax, edx - ja G_M52496_IG34 - mov rdi, bword ptr [rbp-0x40] - mov r8d, eax - lea rdi, bword ptr [rdi+2*r8] - sub edx, eax - cmp ecx, edx - ja G_M52496_IG35 - add rsi, 12 - mov edx, ecx - add rdx, rdx - mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) - call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) - mov edi, dword ptr [rbp-0x64] - add edi, dword ptr [rbp-0x48] - mov dword ptr [rbp-0x48], edi - ;; size=65 bbWeight=2 PerfScore 29.00 -G_M52496_IG26: - mov eax, dword ptr [rbp-0x54] - inc eax - mov dword ptr [rbp-0x54], eax - mov rdi, r13 - mov rcx, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() - call [rcx]System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() - mov edi, dword ptr [rbp-0x54] - cmp edi, 4 - mov dword ptr [rbp-0x54], edi - jl G_M52496_IG15 - ;; size=38 bbWeight=4 PerfScore 36.00 -G_M52496_IG27: - mov edi, dword ptr [rbp-0x48] - mov rsi, bword ptr [rbp-0x40] - mov eax, dword ptr [rbp-0x38] - cmp edi, eax - jae SHORT G_M52496_IG32 - ;; size=14 bbWeight=1 PerfScore 4.25 -G_M52496_IG28: - mov eax, edi - mov word ptr [rsi+2*rax], 62 - inc edi - mov dword ptr [rbp-0x48], edi - ;; size=13 bbWeight=0.50 PerfScore 1.25 -G_M52496_IG29: - lea rdi, [rbp-0x50] - mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:ToString():System.String:this - call [rax]System.Text.ValueStringBuilder:ToString():System.String:this - cmp qword ptr [rbp-0x78], 0xD1FFAB1E - je SHORT G_M52496_IG30 - call CORINFO_HELP_FAIL_FAST - ;; size=31 bbWeight=1 PerfScore 7.75 -G_M52496_IG30: - nop - ;; size=1 bbWeight=1 PerfScore 0.25 -G_M52496_IG31: - lea rsp, [rbp-0x28] - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=15 bbWeight=1 PerfScore 4.50 -G_M52496_IG32: - lea rdi, [rbp-0x50] - mov esi, 62 - mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:GrowAndAppend(ushort):this - call [rax]System.Text.ValueStringBuilder:GrowAndAppend(ushort):this - jmp SHORT G_M52496_IG29 - ;; size=23 bbWeight=0.50 PerfScore 3.00 -G_M52496_IG33: - call CORINFO_HELP_RNGCHKFAIL - ;; size=5 bbWeight=0 PerfScore 0.00 -G_M52496_IG34: - mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() - call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() + mov edi, 67 + mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int) + call [rax]System.ThrowHelper:ThrowNotSupportedException(int) int3 - ;; size=13 bbWeight=0 PerfScore 0.00 -G_M52496_IG35: - mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort() - call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort() - int3 - ;; size=13 bbWeight=0 PerfScore 0.00 + ;; size=18 bbWeight=0 PerfScore 0.00 -; Total bytes of code 947, prolog size 44, PerfScore 389.41, instruction count 256, allocated bytes for code 947 (MethodHash=327e32ef) for method System.Numerics.Vector`1[System.__Canon]:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts) +; Total bytes of code 36, prolog size 18, PerfScore 0.00, instruction count 8, allocated bytes for code 36 (MethodHash=327e32ef) for method System.Numerics.Vector`1[System.__Canon]:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts) ```
-317 (-93.51 % of base) - System.Numerics.Vector`1[System.__Canon]:op_BitwiseAnd(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] ```diff ; Assembly listing for method System.Numerics.Vector`1[System.__Canon]:op_BitwiseAnd(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (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; 3 single block inlinees; 0 inlinees without PGO data +; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; -; V00 RetBuf [V00,T02] ( 4, 4 ) byref -> r15 single-def -; V01 TypeCtx [V01,T01] ( 9, 6.60) long -> rbx single-def +;* V00 RetBuf [V00 ] ( 0, 0 ) byref -> zero-ref single-def +;* V01 TypeCtx [V01 ] ( 0, 0 ) long -> zero-ref single-def ;* V02 arg0 [V02 ] ( 0, 0 ) struct (32) zero-ref single-def ;* V03 arg1 [V03 ] ( 0, 0 ) struct (32) zero-ref single-def -; V04 loc0 [V04 ] ( 5, 5 ) simd32 -> [rbp-0x50] do-not-enreg[XS] addr-exposed ld-addr-op -; V05 loc1 [V05 ] ( 5, 5 ) simd32 -> [rbp-0x70] do-not-enreg[XS] addr-exposed ld-addr-op -; V06 loc2 [V06 ] ( 5, 5 ) simd32 -> [rbp-0x90] do-not-enreg[XS] addr-exposed ld-addr-op -;* V07 loc3 [V07,T13] ( 0, 0 ) int -> zero-ref +;* V04 loc0 [V04 ] ( 0, 0 ) simd32 -> zero-ref do-not-enreg[XS] addr-exposed ld-addr-op +;* V05 loc1 [V05 ] ( 0, 0 ) simd32 -> zero-ref do-not-enreg[XS] addr-exposed ld-addr-op +;* V06 loc2 [V06 ] ( 0, 0 ) simd32 -> zero-ref do-not-enreg[XS] addr-exposed ld-addr-op +;* V07 loc3 [V07 ] ( 0, 0 ) int -> zero-ref ;* V08 loc4 [V08 ] ( 0, 0 ) long -> zero-ref -; V09 OutArgs [V09 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V10 loc6 [V10 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V11 tmp2 [V11 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V12 tmp3 [V12 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" -; V13 tmp4 [V13,T00] ( 8, 16 ) long -> rdi "impAppendStmt" +;* V13 tmp4 [V13 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" ;* V14 tmp5 [V14 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V15 tmp6 [V15 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp" ;* V16 tmp7 [V16 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp" ;* V17 tmp8 [V17 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp" ;* V18 tmp9 [V18 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp" -; V19 tmp10 [V19,T14] ( 1, 1 ) long -> [rbp+0x10] single-def "field V02._00 (fldOffset=0x0)" P-INDEP -; V20 tmp11 [V20,T15] ( 1, 1 ) long -> [rbp+0x18] single-def "field V02._01 (fldOffset=0x8)" P-INDEP -; V21 tmp12 [V21,T16] ( 1, 1 ) long -> [rbp+0x30] single-def "field V03._00 (fldOffset=0x0)" P-INDEP -; V22 tmp13 [V22,T17] ( 1, 1 ) long -> [rbp+0x38] single-def "field V03._01 (fldOffset=0x8)" P-INDEP -; V23 tmp14 [V23,T09] ( 2, 4 ) long -> rsi "argument with side effect" -; V24 tmp15 [V24,T10] ( 2, 4 ) long -> rsi "argument with side effect" -; V25 tmp16 [V25,T11] ( 2, 4 ) long -> rsi "argument with side effect" -; V26 cse0 [V26,T12] ( 3, 3 ) long -> r14 "CSE #01: aggressive" -; V27 rat0 [V27,T06] ( 3, 4 ) long -> rdi "runtime lookup" -; V28 rat1 [V28,T03] ( 3, 5.60) long -> rdi "fgMakeTemp is creating a new local variable" -; V29 rat2 [V29,T07] ( 3, 4 ) long -> r14 "runtime lookup" -; V30 rat3 [V30,T04] ( 3, 5.60) long -> r14 "fgMakeTemp is creating a new local variable" -; V31 rat4 [V31,T08] ( 3, 4 ) long -> rsi "runtime lookup" -; V32 rat5 [V32,T05] ( 3, 5.60) long -> rsi "fgMakeTemp is creating a new local variable" +;* V19 tmp10 [V19 ] ( 0, 0 ) long -> zero-ref single-def "field V02._00 (fldOffset=0x0)" P-INDEP +;* V20 tmp11 [V20 ] ( 0, 0 ) long -> zero-ref single-def "field V02._01 (fldOffset=0x8)" P-INDEP +;* V21 tmp12 [V21 ] ( 0, 0 ) long -> zero-ref single-def "field V03._00 (fldOffset=0x0)" P-INDEP +;* V22 tmp13 [V22 ] ( 0, 0 ) long -> zero-ref single-def "field V03._01 (fldOffset=0x8)" P-INDEP +;* V23 tmp14 [V23 ] ( 0, 0 ) long -> zero-ref "argument with side effect" ; -; Lcl frame size = 136 +; Lcl frame size = 0 G_M54347_IG01: push rbp - push r15 - push r14 - push r13 - push r12 - push rbx - sub rsp, 136 - lea rbp, [rsp+0xB0] - mov qword ptr [rbp-0x30], rsi - mov r15, rdi - mov rbx, rsi - ;; size=35 bbWeight=1 PerfScore 8.25 + mov rbp, rsp + ;; size=4 bbWeight=0 PerfScore 0.00 G_M54347_IG02: - mov rdi, qword ptr [rbx+0x30] - mov rdi, qword ptr [rdi] - mov rdi, qword ptr [rdi+0x20] - test rdi, rdi - je SHORT G_M54347_IG04 - ;; size=16 bbWeight=1 PerfScore 7.25 -G_M54347_IG03: - jmp SHORT G_M54347_IG05 - ;; size=2 bbWeight=0.80 PerfScore 1.60 -G_M54347_IG04: - mov rdi, rbx - mov rsi, 0xD1FFAB1E ; global ptr - call CORINFO_HELP_RUNTIMEHANDLE_CLASS - mov rdi, rax - ;; size=21 bbWeight=0.20 PerfScore 0.35 -G_M54347_IG05: - mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() - call [rax]System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() - mov rdi, qword ptr [rbx+0x30] - mov rdi, qword ptr [rdi] - mov r14, qword ptr [rdi+0x40] - test r14, r14 - je SHORT G_M54347_IG07 - ;; size=28 bbWeight=1 PerfScore 10.50 -G_M54347_IG06: - jmp SHORT G_M54347_IG08 - ;; size=2 bbWeight=0.80 PerfScore 1.60 -G_M54347_IG07: - mov rdi, rbx - mov rsi, 0xD1FFAB1E ; global ptr - call CORINFO_HELP_RUNTIMEHANDLE_CLASS - mov r14, rax - ;; size=21 bbWeight=0.20 PerfScore 0.35 -G_M54347_IG08: - mov rsi, r14 - mov r13, qword ptr [rbp+0x10] - mov qword ptr [rsp], r13 - mov r12, qword ptr [rbp+0x18] - mov qword ptr [rsp+0x08], r12 - lea rdi, [rbp-0x70] - mov rax, 0xD1FFAB1E ; code for System.Numerics.Vector:As[System.__Canon,ulong](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[ulong] - call [rax]System.Numerics.Vector:As[System.__Canon,ulong](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[ulong] - mov rsi, r14 - mov r14, qword ptr [rbp+0x30] - mov qword ptr [rsp], r14 - mov r13, qword ptr [rbp+0x38] - mov qword ptr [rsp+0x08], r13 - lea rdi, [rbp-0x90] - mov rax, 0xD1FFAB1E ; code for System.Numerics.Vector:As[System.__Canon,ulong](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[ulong] - call [rax]System.Numerics.Vector:As[System.__Canon,ulong](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[ulong] - mov rdi, qword ptr [rbp-0x70] - and rdi, qword ptr [rbp-0x90] - mov qword ptr [rbp-0x50], rdi - mov rdi, qword ptr [rbp-0x68] - and rdi, qword ptr [rbp-0x88] - mov qword ptr [rbp-0x48], rdi - mov rdi, qword ptr [rbp-0x60] - and rdi, qword ptr [rbp-0x80] - mov qword ptr [rbp-0x40], rdi - mov rdi, qword ptr [rbp-0x58] - and rdi, qword ptr [rbp-0x78] - mov qword ptr [rbp-0x38], rdi - mov rdi, qword ptr [rbx+0x30] - mov rdi, qword ptr [rdi] - mov rsi, qword ptr [rdi+0x48] - test rsi, rsi - je SHORT G_M54347_IG10 - ;; size=145 bbWeight=1 PerfScore 39.25 -G_M54347_IG09: - jmp SHORT G_M54347_IG11 - ;; size=2 bbWeight=0.80 PerfScore 1.60 -G_M54347_IG10: - mov rdi, rbx - mov rsi, 0xD1FFAB1E ; global ptr - call CORINFO_HELP_RUNTIMEHANDLE_CLASS - mov rsi, rax - ;; size=21 bbWeight=0.20 PerfScore 0.35 -G_M54347_IG11: - vmovups ymm0, ymmword ptr [rbp-0x50] - vmovups ymmword ptr [rsp], ymm0 - mov rdi, r15 - mov rax, 0xD1FFAB1E ; code for System.Numerics.Vector:As[ulong,System.__Canon](System.Numerics.Vector`1[ulong]):System.Numerics.Vector`1[System.__Canon] - call [rax]System.Numerics.Vector:As[ulong,System.__Canon](System.Numerics.Vector`1[ulong]):System.Numerics.Vector`1[System.__Canon] - mov rax, r15 - ;; size=28 bbWeight=1 PerfScore 8.75 -G_M54347_IG12: - add rsp, 136 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=18 bbWeight=1 PerfScore 4.25 + mov edi, 67 + mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int) + call [rax]System.ThrowHelper:ThrowNotSupportedException(int) + int3 + ;; size=18 bbWeight=0 PerfScore 0.00 -; Total bytes of code 339, prolog size 29, PerfScore 84.10, instruction count 85, allocated bytes for code 339 (MethodHash=7ec52bb4) for method System.Numerics.Vector`1[System.__Canon]:op_BitwiseAnd(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) +; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=7ec52bb4) for method System.Numerics.Vector`1[System.__Canon]:op_BitwiseAnd(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) ```
-317 (-93.51 % of base) - System.Numerics.Vector`1[System.__Canon]:op_BitwiseOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] ```diff ; Assembly listing for method System.Numerics.Vector`1[System.__Canon]:op_BitwiseOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (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; 3 single block inlinees; 0 inlinees without PGO data +; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; -; V00 RetBuf [V00,T02] ( 4, 4 ) byref -> r15 single-def -; V01 TypeCtx [V01,T01] ( 9, 6.60) long -> rbx single-def +;* V00 RetBuf [V00 ] ( 0, 0 ) byref -> zero-ref single-def +;* V01 TypeCtx [V01 ] ( 0, 0 ) long -> zero-ref single-def ;* V02 arg0 [V02 ] ( 0, 0 ) struct (32) zero-ref single-def ;* V03 arg1 [V03 ] ( 0, 0 ) struct (32) zero-ref single-def -; V04 loc0 [V04 ] ( 5, 5 ) simd32 -> [rbp-0x50] do-not-enreg[XS] addr-exposed ld-addr-op -; V05 loc1 [V05 ] ( 5, 5 ) simd32 -> [rbp-0x70] do-not-enreg[XS] addr-exposed ld-addr-op -; V06 loc2 [V06 ] ( 5, 5 ) simd32 -> [rbp-0x90] do-not-enreg[XS] addr-exposed ld-addr-op -;* V07 loc3 [V07,T13] ( 0, 0 ) int -> zero-ref +;* V04 loc0 [V04 ] ( 0, 0 ) simd32 -> zero-ref do-not-enreg[XS] addr-exposed ld-addr-op +;* V05 loc1 [V05 ] ( 0, 0 ) simd32 -> zero-ref do-not-enreg[XS] addr-exposed ld-addr-op +;* V06 loc2 [V06 ] ( 0, 0 ) simd32 -> zero-ref do-not-enreg[XS] addr-exposed ld-addr-op +;* V07 loc3 [V07 ] ( 0, 0 ) int -> zero-ref ;* V08 loc4 [V08 ] ( 0, 0 ) long -> zero-ref -; V09 OutArgs [V09 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V10 loc6 [V10 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V11 tmp2 [V11 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V12 tmp3 [V12 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" -; V13 tmp4 [V13,T00] ( 8, 16 ) long -> rdi "impAppendStmt" +;* V13 tmp4 [V13 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" ;* V14 tmp5 [V14 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V15 tmp6 [V15 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp" ;* V16 tmp7 [V16 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp" ;* V17 tmp8 [V17 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp" ;* V18 tmp9 [V18 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp" -; V19 tmp10 [V19,T14] ( 1, 1 ) long -> [rbp+0x10] single-def "field V02._00 (fldOffset=0x0)" P-INDEP -; V20 tmp11 [V20,T15] ( 1, 1 ) long -> [rbp+0x18] single-def "field V02._01 (fldOffset=0x8)" P-INDEP -; V21 tmp12 [V21,T16] ( 1, 1 ) long -> [rbp+0x30] single-def "field V03._00 (fldOffset=0x0)" P-INDEP -; V22 tmp13 [V22,T17] ( 1, 1 ) long -> [rbp+0x38] single-def "field V03._01 (fldOffset=0x8)" P-INDEP -; V23 tmp14 [V23,T09] ( 2, 4 ) long -> rsi "argument with side effect" -; V24 tmp15 [V24,T10] ( 2, 4 ) long -> rsi "argument with side effect" -; V25 tmp16 [V25,T11] ( 2, 4 ) long -> rsi "argument with side effect" -; V26 cse0 [V26,T12] ( 3, 3 ) long -> r14 "CSE #01: aggressive" -; V27 rat0 [V27,T06] ( 3, 4 ) long -> rdi "runtime lookup" -; V28 rat1 [V28,T03] ( 3, 5.60) long -> rdi "fgMakeTemp is creating a new local variable" -; V29 rat2 [V29,T07] ( 3, 4 ) long -> r14 "runtime lookup" -; V30 rat3 [V30,T04] ( 3, 5.60) long -> r14 "fgMakeTemp is creating a new local variable" -; V31 rat4 [V31,T08] ( 3, 4 ) long -> rsi "runtime lookup" -; V32 rat5 [V32,T05] ( 3, 5.60) long -> rsi "fgMakeTemp is creating a new local variable" +;* V19 tmp10 [V19 ] ( 0, 0 ) long -> zero-ref single-def "field V02._00 (fldOffset=0x0)" P-INDEP +;* V20 tmp11 [V20 ] ( 0, 0 ) long -> zero-ref single-def "field V02._01 (fldOffset=0x8)" P-INDEP +;* V21 tmp12 [V21 ] ( 0, 0 ) long -> zero-ref single-def "field V03._00 (fldOffset=0x0)" P-INDEP +;* V22 tmp13 [V22 ] ( 0, 0 ) long -> zero-ref single-def "field V03._01 (fldOffset=0x8)" P-INDEP +;* V23 tmp14 [V23 ] ( 0, 0 ) long -> zero-ref "argument with side effect" ; -; Lcl frame size = 136 +; Lcl frame size = 0 G_M35261_IG01: push rbp - push r15 - push r14 - push r13 - push r12 - push rbx - sub rsp, 136 - lea rbp, [rsp+0xB0] - mov qword ptr [rbp-0x30], rsi - mov r15, rdi - mov rbx, rsi - ;; size=35 bbWeight=1 PerfScore 8.25 + mov rbp, rsp + ;; size=4 bbWeight=0 PerfScore 0.00 G_M35261_IG02: - mov rdi, qword ptr [rbx+0x30] - mov rdi, qword ptr [rdi] - mov rdi, qword ptr [rdi+0x20] - test rdi, rdi - je SHORT G_M35261_IG04 - ;; size=16 bbWeight=1 PerfScore 7.25 -G_M35261_IG03: - jmp SHORT G_M35261_IG05 - ;; size=2 bbWeight=0.80 PerfScore 1.60 -G_M35261_IG04: - mov rdi, rbx - mov rsi, 0xD1FFAB1E ; global ptr - call CORINFO_HELP_RUNTIMEHANDLE_CLASS - mov rdi, rax - ;; size=21 bbWeight=0.20 PerfScore 0.35 -G_M35261_IG05: - mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() - call [rax]System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() - mov rdi, qword ptr [rbx+0x30] - mov rdi, qword ptr [rdi] - mov r14, qword ptr [rdi+0x40] - test r14, r14 - je SHORT G_M35261_IG07 - ;; size=28 bbWeight=1 PerfScore 10.50 -G_M35261_IG06: - jmp SHORT G_M35261_IG08 - ;; size=2 bbWeight=0.80 PerfScore 1.60 -G_M35261_IG07: - mov rdi, rbx - mov rsi, 0xD1FFAB1E ; global ptr - call CORINFO_HELP_RUNTIMEHANDLE_CLASS - mov r14, rax - ;; size=21 bbWeight=0.20 PerfScore 0.35 -G_M35261_IG08: - mov rsi, r14 - mov r13, qword ptr [rbp+0x10] - mov qword ptr [rsp], r13 - mov r12, qword ptr [rbp+0x18] - mov qword ptr [rsp+0x08], r12 - lea rdi, [rbp-0x70] - mov rax, 0xD1FFAB1E ; code for System.Numerics.Vector:As[System.__Canon,ulong](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[ulong] - call [rax]System.Numerics.Vector:As[System.__Canon,ulong](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[ulong] - mov rsi, r14 - mov r14, qword ptr [rbp+0x30] - mov qword ptr [rsp], r14 - mov r13, qword ptr [rbp+0x38] - mov qword ptr [rsp+0x08], r13 - lea rdi, [rbp-0x90] - mov rax, 0xD1FFAB1E ; code for System.Numerics.Vector:As[System.__Canon,ulong](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[ulong] - call [rax]System.Numerics.Vector:As[System.__Canon,ulong](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[ulong] - mov rdi, qword ptr [rbp-0x70] - or rdi, qword ptr [rbp-0x90] - mov qword ptr [rbp-0x50], rdi - mov rdi, qword ptr [rbp-0x68] - or rdi, qword ptr [rbp-0x88] - mov qword ptr [rbp-0x48], rdi - mov rdi, qword ptr [rbp-0x60] - or rdi, qword ptr [rbp-0x80] - mov qword ptr [rbp-0x40], rdi - mov rdi, qword ptr [rbp-0x58] - or rdi, qword ptr [rbp-0x78] - mov qword ptr [rbp-0x38], rdi - mov rdi, qword ptr [rbx+0x30] - mov rdi, qword ptr [rdi] - mov rsi, qword ptr [rdi+0x48] - test rsi, rsi - je SHORT G_M35261_IG10 - ;; size=145 bbWeight=1 PerfScore 39.25 -G_M35261_IG09: - jmp SHORT G_M35261_IG11 - ;; size=2 bbWeight=0.80 PerfScore 1.60 -G_M35261_IG10: - mov rdi, rbx - mov rsi, 0xD1FFAB1E ; global ptr - call CORINFO_HELP_RUNTIMEHANDLE_CLASS - mov rsi, rax - ;; size=21 bbWeight=0.20 PerfScore 0.35 -G_M35261_IG11: - vmovups ymm0, ymmword ptr [rbp-0x50] - vmovups ymmword ptr [rsp], ymm0 - mov rdi, r15 - mov rax, 0xD1FFAB1E ; code for System.Numerics.Vector:As[ulong,System.__Canon](System.Numerics.Vector`1[ulong]):System.Numerics.Vector`1[System.__Canon] - call [rax]System.Numerics.Vector:As[ulong,System.__Canon](System.Numerics.Vector`1[ulong]):System.Numerics.Vector`1[System.__Canon] - mov rax, r15 - ;; size=28 bbWeight=1 PerfScore 8.75 -G_M35261_IG12: - add rsp, 136 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=18 bbWeight=1 PerfScore 4.25 + mov edi, 67 + mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int) + call [rax]System.ThrowHelper:ThrowNotSupportedException(int) + int3 + ;; size=18 bbWeight=0 PerfScore 0.00 -; Total bytes of code 339, prolog size 29, PerfScore 84.10, instruction count 85, allocated bytes for code 339 (MethodHash=88217642) for method System.Numerics.Vector`1[System.__Canon]:op_BitwiseOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) +; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=88217642) for method System.Numerics.Vector`1[System.__Canon]:op_BitwiseOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) ```
-317 (-93.51 % of base) - System.Numerics.Vector`1[System.__Canon]:op_ExclusiveOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] ```diff ; Assembly listing for method System.Numerics.Vector`1[System.__Canon]:op_ExclusiveOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (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; 3 single block inlinees; 0 inlinees without PGO data +; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; -; V00 RetBuf [V00,T02] ( 4, 4 ) byref -> r15 single-def -; V01 TypeCtx [V01,T01] ( 9, 6.60) long -> rbx single-def +;* V00 RetBuf [V00 ] ( 0, 0 ) byref -> zero-ref single-def +;* V01 TypeCtx [V01 ] ( 0, 0 ) long -> zero-ref single-def ;* V02 arg0 [V02 ] ( 0, 0 ) struct (32) zero-ref single-def ;* V03 arg1 [V03 ] ( 0, 0 ) struct (32) zero-ref single-def -; V04 loc0 [V04 ] ( 5, 5 ) simd32 -> [rbp-0x50] do-not-enreg[XS] addr-exposed ld-addr-op -; V05 loc1 [V05 ] ( 5, 5 ) simd32 -> [rbp-0x70] do-not-enreg[XS] addr-exposed ld-addr-op -; V06 loc2 [V06 ] ( 5, 5 ) simd32 -> [rbp-0x90] do-not-enreg[XS] addr-exposed ld-addr-op -;* V07 loc3 [V07,T13] ( 0, 0 ) int -> zero-ref +;* V04 loc0 [V04 ] ( 0, 0 ) simd32 -> zero-ref do-not-enreg[XS] addr-exposed ld-addr-op +;* V05 loc1 [V05 ] ( 0, 0 ) simd32 -> zero-ref do-not-enreg[XS] addr-exposed ld-addr-op +;* V06 loc2 [V06 ] ( 0, 0 ) simd32 -> zero-ref do-not-enreg[XS] addr-exposed ld-addr-op +;* V07 loc3 [V07 ] ( 0, 0 ) int -> zero-ref ;* V08 loc4 [V08 ] ( 0, 0 ) long -> zero-ref -; V09 OutArgs [V09 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V10 loc6 [V10 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V11 tmp2 [V11 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V12 tmp3 [V12 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" -; V13 tmp4 [V13,T00] ( 8, 16 ) long -> rdi "impAppendStmt" +;* V13 tmp4 [V13 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" ;* V14 tmp5 [V14 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V15 tmp6 [V15 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp" ;* V16 tmp7 [V16 ] ( 0, 0 ) long -> zero-ref "Inline return value spill temp" ;* V17 tmp8 [V17 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp" ;* V18 tmp9 [V18 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp" -; V19 tmp10 [V19,T14] ( 1, 1 ) long -> [rbp+0x10] single-def "field V02._00 (fldOffset=0x0)" P-INDEP -; V20 tmp11 [V20,T15] ( 1, 1 ) long -> [rbp+0x18] single-def "field V02._01 (fldOffset=0x8)" P-INDEP -; V21 tmp12 [V21,T16] ( 1, 1 ) long -> [rbp+0x30] single-def "field V03._00 (fldOffset=0x0)" P-INDEP -; V22 tmp13 [V22,T17] ( 1, 1 ) long -> [rbp+0x38] single-def "field V03._01 (fldOffset=0x8)" P-INDEP -; V23 tmp14 [V23,T09] ( 2, 4 ) long -> rsi "argument with side effect" -; V24 tmp15 [V24,T10] ( 2, 4 ) long -> rsi "argument with side effect" -; V25 tmp16 [V25,T11] ( 2, 4 ) long -> rsi "argument with side effect" -; V26 cse0 [V26,T12] ( 3, 3 ) long -> r14 "CSE #01: aggressive" -; V27 rat0 [V27,T06] ( 3, 4 ) long -> rdi "runtime lookup" -; V28 rat1 [V28,T03] ( 3, 5.60) long -> rdi "fgMakeTemp is creating a new local variable" -; V29 rat2 [V29,T07] ( 3, 4 ) long -> r14 "runtime lookup" -; V30 rat3 [V30,T04] ( 3, 5.60) long -> r14 "fgMakeTemp is creating a new local variable" -; V31 rat4 [V31,T08] ( 3, 4 ) long -> rsi "runtime lookup" -; V32 rat5 [V32,T05] ( 3, 5.60) long -> rsi "fgMakeTemp is creating a new local variable" +;* V19 tmp10 [V19 ] ( 0, 0 ) long -> zero-ref single-def "field V02._00 (fldOffset=0x0)" P-INDEP +;* V20 tmp11 [V20 ] ( 0, 0 ) long -> zero-ref single-def "field V02._01 (fldOffset=0x8)" P-INDEP +;* V21 tmp12 [V21 ] ( 0, 0 ) long -> zero-ref single-def "field V03._00 (fldOffset=0x0)" P-INDEP +;* V22 tmp13 [V22 ] ( 0, 0 ) long -> zero-ref single-def "field V03._01 (fldOffset=0x8)" P-INDEP +;* V23 tmp14 [V23 ] ( 0, 0 ) long -> zero-ref "argument with side effect" ; -; Lcl frame size = 136 +; Lcl frame size = 0 G_M33700_IG01: push rbp - push r15 - push r14 - push r13 - push r12 - push rbx - sub rsp, 136 - lea rbp, [rsp+0xB0] - mov qword ptr [rbp-0x30], rsi - mov r15, rdi - mov rbx, rsi - ;; size=35 bbWeight=1 PerfScore 8.25 + mov rbp, rsp + ;; size=4 bbWeight=0 PerfScore 0.00 G_M33700_IG02: - mov rdi, qword ptr [rbx+0x30] - mov rdi, qword ptr [rdi] - mov rdi, qword ptr [rdi+0x20] - test rdi, rdi - je SHORT G_M33700_IG04 - ;; size=16 bbWeight=1 PerfScore 7.25 -G_M33700_IG03: - jmp SHORT G_M33700_IG05 - ;; size=2 bbWeight=0.80 PerfScore 1.60 -G_M33700_IG04: - mov rdi, rbx - mov rsi, 0xD1FFAB1E ; global ptr - call CORINFO_HELP_RUNTIMEHANDLE_CLASS - mov rdi, rax - ;; size=21 bbWeight=0.20 PerfScore 0.35 -G_M33700_IG05: - mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() - call [rax]System.ThrowHelper:ThrowForUnsupportedNumericsVectorBaseType[System.__Canon]() - mov rdi, qword ptr [rbx+0x30] - mov rdi, qword ptr [rdi] - mov r14, qword ptr [rdi+0x40] - test r14, r14 - je SHORT G_M33700_IG07 - ;; size=28 bbWeight=1 PerfScore 10.50 -G_M33700_IG06: - jmp SHORT G_M33700_IG08 - ;; size=2 bbWeight=0.80 PerfScore 1.60 -G_M33700_IG07: - mov rdi, rbx - mov rsi, 0xD1FFAB1E ; global ptr - call CORINFO_HELP_RUNTIMEHANDLE_CLASS - mov r14, rax - ;; size=21 bbWeight=0.20 PerfScore 0.35 -G_M33700_IG08: - mov rsi, r14 - mov r13, qword ptr [rbp+0x10] - mov qword ptr [rsp], r13 - mov r12, qword ptr [rbp+0x18] - mov qword ptr [rsp+0x08], r12 - lea rdi, [rbp-0x70] - mov rax, 0xD1FFAB1E ; code for System.Numerics.Vector:As[System.__Canon,ulong](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[ulong] - call [rax]System.Numerics.Vector:As[System.__Canon,ulong](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[ulong] - mov rsi, r14 - mov r14, qword ptr [rbp+0x30] - mov qword ptr [rsp], r14 - mov r13, qword ptr [rbp+0x38] - mov qword ptr [rsp+0x08], r13 - lea rdi, [rbp-0x90] - mov rax, 0xD1FFAB1E ; code for System.Numerics.Vector:As[System.__Canon,ulong](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[ulong] - call [rax]System.Numerics.Vector:As[System.__Canon,ulong](System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[ulong] - mov rdi, qword ptr [rbp-0x70] - xor rdi, qword ptr [rbp-0x90] - mov qword ptr [rbp-0x50], rdi - mov rdi, qword ptr [rbp-0x68] - xor rdi, qword ptr [rbp-0x88] - mov qword ptr [rbp-0x48], rdi - mov rdi, qword ptr [rbp-0x60] - xor rdi, qword ptr [rbp-0x80] - mov qword ptr [rbp-0x40], rdi - mov rdi, qword ptr [rbp-0x58] - xor rdi, qword ptr [rbp-0x78] - mov qword ptr [rbp-0x38], rdi - mov rdi, qword ptr [rbx+0x30] - mov rdi, qword ptr [rdi] - mov rsi, qword ptr [rdi+0x48] - test rsi, rsi - je SHORT G_M33700_IG10 - ;; size=145 bbWeight=1 PerfScore 39.25 -G_M33700_IG09: - jmp SHORT G_M33700_IG11 - ;; size=2 bbWeight=0.80 PerfScore 1.60 -G_M33700_IG10: - mov rdi, rbx - mov rsi, 0xD1FFAB1E ; global ptr - call CORINFO_HELP_RUNTIMEHANDLE_CLASS - mov rsi, rax - ;; size=21 bbWeight=0.20 PerfScore 0.35 -G_M33700_IG11: - vmovups ymm0, ymmword ptr [rbp-0x50] - vmovups ymmword ptr [rsp], ymm0 - mov rdi, r15 - mov rax, 0xD1FFAB1E ; code for System.Numerics.Vector:As[ulong,System.__Canon](System.Numerics.Vector`1[ulong]):System.Numerics.Vector`1[System.__Canon] - call [rax]System.Numerics.Vector:As[ulong,System.__Canon](System.Numerics.Vector`1[ulong]):System.Numerics.Vector`1[System.__Canon] - mov rax, r15 - ;; size=28 bbWeight=1 PerfScore 8.75 -G_M33700_IG12: - add rsp, 136 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=18 bbWeight=1 PerfScore 4.25 + mov edi, 67 + mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int) + call [rax]System.ThrowHelper:ThrowNotSupportedException(int) + int3 + ;; size=18 bbWeight=0 PerfScore 0.00 -; Total bytes of code 339, prolog size 29, PerfScore 84.10, instruction count 85, allocated bytes for code 339 (MethodHash=7c597c5b) for method System.Numerics.Vector`1[System.__Canon]:op_ExclusiveOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) +; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=7c597c5b) for method System.Numerics.Vector`1[System.__Canon]:op_ExclusiveOr(System.Numerics.Vector`1[System.__Canon],System.Numerics.Vector`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts) ```

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

MihuBot commented 7 months ago

@MichalPetryka