Skip to content

[JitDiff X64] [tannergooding] JIT: Remove transparent scalar/vector conversi ... #2085

Open

Description

@MihuBot

Job completed in 21 minutes 57 seconds (remote runner delay: 1 minute 6 seconds).
dotnet/runtime#130444
Using arguments: -nuget
Main commit: dotnet/runtime@7ce50b9
PR commit: tannergooding/runtime@e75b094

Diffs

Diffs
Found 139 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 395597373
Total bytes of diff: 395589945
Total bytes of delta: -7428 (-0.00 % of base)
Total relative delta: -67.79
    diff is an improvement.
    relative diff is an improvement.


Top file improvements (bytes):
       -4439 : System.Private.CoreLib.dasm (-0.06 % of base)
       -1078 : System.Numerics.Tensors.dasm (-0.09 % of base)
        -959 : SixLabors.ImageSharp.dasm (-0.04 % of base)
        -264 : SixLabors.ImageSharp.Drawing.dasm (-0.08 % of base)
        -157 : BouncyCastle.Cryptography.dasm (-0.00 % of base)
        -110 : SixLabors.Fonts.dasm (-0.01 % of base)
         -76 : ClosedXML.dasm (-0.00 % of base)
         -64 : SharpCompress.dasm (-0.00 % of base)
         -34 : BepuPhysics.dasm (-0.00 % of base)
         -24 : CommunityToolkit.HighPerformance.dasm (-0.01 % of base)
         -24 : MathNet.Numerics.dasm (-0.00 % of base)
         -24 : System.IO.Hashing.dasm (-0.06 % of base)
         -24 : Silk.NET.Maths.dasm (-0.00 % of base)
         -20 : Elastic.Apm.dasm (-0.00 % of base)
         -16 : System.Formats.Tar.dasm (-0.02 % of base)
         -16 : System.Linq.dasm (-0.00 % of base)
         -12 : System.Formats.Cbor.dasm (-0.03 % of base)
         -12 : System.Memory.dasm (-0.00 % of base)
         -12 : Magick.NET.Core.dasm (-0.01 % of base)
         -12 : MongoDB.Bson.dasm (-0.00 % of base)
          -8 : System.Runtime.Numerics.dasm (-0.00 % of base)
          -8 : ClosedXML.Parser.dasm (-0.00 % of base)
          -4 : ExcelNumberFormat.dasm (-0.01 % of base)
          -4 : Nest.dasm (-0.00 % of base)
          -4 : System.Configuration.ConfigurationManager.dasm (-0.00 % of base)
          -4 : NuGet.Packaging.dasm (-0.00 % of base)
          -4 : App.Metrics.Core.dasm (-0.00 % of base)
          -4 : SkiaSharp.dasm (-0.00 % of base)
          -4 : App.Metrics.Formatters.Json.dasm (-0.01 % of base)
          -4 : App.Metrics.Abstractions.dasm (-0.00 % of base)
          -3 : MessagePack.dasm (-0.00 % of base)

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

Top method regressions (bytes):
           4 (0.31 % of base) : SixLabors.Fonts.dasm - SixLabors.Fonts.FontGlyphMetrics:RenderDecorationsTo(SixLabors.Fonts.Rendering.IGlyphRenderer,System.Numerics.Vector2,int,System.Numerics.Matrix3x2,float,SixLabors.Fonts.TextOptions):this (FullOpts)
           1 (0.14 % of base) : System.Private.CoreLib.dasm - System.Text.Ascii:WidenAsciiToUtf16(ptr,ptr,nuint):nuint (FullOpts)

Top method improvements (bytes):
         -62 (-1.86 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:CosineSimilarityHalfCore(System.ReadOnlySpan`1[System.Half],System.ReadOnlySpan`1[System.Half]):System.Half (FullOpts)
         -53 (-7.37 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+DivRemOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]] (FullOpts)
         -53 (-7.46 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+RemainderOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
         -49 (-7.45 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
         -49 (-7.50 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Divide[byte](System.Runtime.Intrinsics.Vector512`1[byte],byte):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
         -49 (-7.45 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Divide[byte](System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
         -49 (-7.28 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[byte]:op_Division(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
         -49 (-7.50 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[byte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Divide(System.Runtime.Intrinsics.Vector512`1[byte],byte):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
         -49 (-7.45 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[byte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Divide(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
         -41 (-6.45 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[byte]:op_Division(System.Runtime.Intrinsics.Vector512`1[byte],byte):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
         -39 (-0.93 % of base) : BouncyCastle.Cryptography.dasm - Org.BouncyCastle.Crypto.Digests.Blake2b_X86:Compress(System.Span`1[ulong],System.ReadOnlySpan`1[ulong],ulong,ulong,ulong,System.ReadOnlySpan`1[byte]) (FullOpts)
         -38 (-0.93 % of base) : BouncyCastle.Cryptography.dasm - Org.BouncyCastle.Crypto.Digests.Blake2bDigest:Compress(System.ReadOnlySpan`1[byte]):this (FullOpts)
         -36 (-0.56 % of base) : BouncyCastle.Cryptography.dasm - Org.BouncyCastle.Crypto.Digests.Blake2b_X86:Perform12Rounds(System.ReadOnlySpan`1[byte],byref,byref,byref,byref) (FullOpts)
         -32 (-4.73 % of base) : SixLabors.ImageSharp.Drawing.dasm - SixLabors.ImageSharp.Drawing.ArcLineSegment:.ctor(SixLabors.ImageSharp.PointF,SixLabors.ImageSharp.PointF,SixLabors.ImageSharp.SizeF,float,bool,bool):this (FullOpts)
         -30 (-3.46 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:CosineSimilarityCore[double](System.ReadOnlySpan`1[double],System.ReadOnlySpan`1[double]):double (FullOpts)
         -28 (-4.42 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:CreateHarmonicSequence[byte](byte,byte):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
         -26 (-1.86 % of base) : SixLabors.ImageSharp.Drawing.dasm - SixLabors.ImageSharp.Drawing.ArcLineSegment:.ctor(SixLabors.ImageSharp.PointF,SixLabors.ImageSharp.SizeF,float,float,float):this (FullOpts)
         -24 (-7.41 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
         -24 (-6.65 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+DivRemOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.ValueTuple`2[System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]] (FullOpts)
         -24 (-6.78 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+RemainderOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
         -24 (-7.41 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Divide[byte](System.Numerics.Vector`1[byte],byte):System.Numerics.Vector`1[byte] (FullOpts)
         -24 (-7.41 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:Divide[byte](System.Numerics.Vector`1[byte],System.Numerics.Vector`1[byte]):System.Numerics.Vector`1[byte] (FullOpts)
         -24 (-7.41 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[byte]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Divide(System.Numerics.Vector`1[byte],byte):System.Numerics.Vector`1[byte] (FullOpts)
         -24 (-7.41 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[byte]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Divide(System.Numerics.Vector`1[byte],System.Numerics.Vector`1[byte]):System.Numerics.Vector`1[byte] (FullOpts)
         -24 (-7.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Divide[byte](System.Runtime.Intrinsics.Vector256`1[byte],byte):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
         -24 (-7.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Divide[byte](System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
         -24 (-7.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[byte]:op_Division(System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
         -24 (-7.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[byte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Divide(System.Runtime.Intrinsics.Vector256`1[byte],byte):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
         -24 (-7.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[byte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Divide(System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
         -21 (-7.12 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:MinMaxInteger[ushort,System.MemoryExtensions+MaxCalc`1[ushort]](System.ReadOnlySpan`1[ushort]):ushort (FullOpts)
         -21 (-7.12 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:MinMaxInteger[ushort,System.MemoryExtensions+MinCalc`1[ushort]](System.ReadOnlySpan`1[ushort]):ushort (FullOpts)
         -20 (-2.79 % of base) : SixLabors.ImageSharp.Drawing.dasm - SixLabors.ImageSharp.Drawing.EllipsePolygon:CreateSegment(System.Numerics.Vector2,SixLabors.ImageSharp.SizeF):SixLabors.ImageSharp.Drawing.CubicBezierLineSegment (FullOpts)
         -19 (-4.81 % of base) : SixLabors.ImageSharp.Drawing.dasm - SixLabors.ImageSharp.Drawing.ArcLineSegment:EllipticArcFromEndParams(SixLabors.ImageSharp.PointF,SixLabors.ImageSharp.PointF,SixLabors.ImageSharp.SizeF,float,bool,bool):SixLabors.ImageSharp.PointF[] (FullOpts)
         -19 (-0.98 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Formats.Png.PngEncoderCore:ApplyOptimalFilteredScanline(byref,byref):this (FullOpts)
         -19 (-6.44 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:MinMaxInteger[byte,System.MemoryExtensions+MaxCalc`1[byte]](System.ReadOnlySpan`1[byte]):byte (FullOpts)
         -19 (-6.44 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:MinMaxInteger[byte,System.MemoryExtensions+MinCalc`1[byte]](System.ReadOnlySpan`1[byte]):byte (FullOpts)
         -18 (-8.61 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:Finalize[double](System.Runtime.Intrinsics.Vector512`1[double],System.Runtime.Intrinsics.Vector512`1[double],System.Runtime.Intrinsics.Vector512`1[double]):double (FullOpts)
         -16 (-2.61 % of base) : CommunityToolkit.HighPerformance.dasm - CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper:CountSimd[short](byref,nint,short):nint (FullOpts)
         -16 (-0.15 % of base) : SixLabors.Fonts.dasm - SixLabors.Fonts.Tables.Cff.CffEvaluationEngine:Parse(System.ReadOnlySpan`1[byte]):this (FullOpts)
         -16 (-0.54 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Formats.Webp.Lossy.QuantEnc:PickBestIntra4(SixLabors.ImageSharp.Formats.Webp.Lossy.Vp8EncIterator,byref,SixLabors.ImageSharp.Formats.Webp.Lossy.Vp8SegmentInfo[],SixLabors.ImageSharp.Formats.Webp.Lossy.Vp8EncProba,int):bool (FullOpts)
         -16 (-0.59 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Formats.Webp.Lossy.QuantEnc:RefineUsingDistortion(SixLabors.ImageSharp.Formats.Webp.Lossy.Vp8EncIterator,SixLabors.ImageSharp.Formats.Webp.Lossy.Vp8SegmentInfo[],SixLabors.ImageSharp.Formats.Webp.Lossy.Vp8ModeScore,bool,bool,int) (FullOpts)
         -16 (-0.47 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Processing.Processors.Transforms.RotateProcessor:.ctor(float,SixLabors.ImageSharp.Processing.Processors.Transforms.IResampler,SixLabors.ImageSharp.Size):this (FullOpts)
         -16 (-0.47 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Processing.Processors.Transforms.RotateProcessor:.ctor(float,SixLabors.ImageSharp.Size):this (FullOpts)
         -16 (-0.49 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Processing.Processors.Transforms.SkewProcessor:.ctor(float,float,SixLabors.ImageSharp.Processing.Processors.Transforms.IResampler,SixLabors.ImageSharp.Size):this (FullOpts)
         -16 (-0.49 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Processing.Processors.Transforms.SkewProcessor:.ctor(float,float,SixLabors.ImageSharp.Size):this (FullOpts)
         -16 (-0.46 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Processing.RotateExtensions:Rotate(SixLabors.ImageSharp.Processing.IImageProcessingContext,float,SixLabors.ImageSharp.Processing.Processors.Transforms.IResampler):SixLabors.ImageSharp.Processing.IImageProcessingContext (FullOpts)
         -16 (-0.49 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Processing.SkewExtensions:Skew(SixLabors.ImageSharp.Processing.IImageProcessingContext,float,float,SixLabors.ImageSharp.Processing.Processors.Transforms.IResampler):SixLabors.ImageSharp.Processing.IImageProcessingContext (FullOpts)
         -16 (-6.32 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:Checksum(System.ReadOnlySpan`1[byte]):int (FullOpts)
         -16 (-3.50 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Adler32:UpdateVector512(uint,System.ReadOnlySpan`1[byte]):uint (FullOpts)
         -16 (-2.63 % of base) : System.Linq.dasm - System.Linq.Enumerable:Average(System.Collections.Generic.IEnumerable`1[int]):double (FullOpts)
         -16 (-3.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[short]:Invoke(System.Runtime.Intrinsics.Vector512`1[short],System.Runtime.Intrinsics.Vector512`1[short]):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
         -16 (-3.17 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+DivRemOperator`1[short]:Invoke(System.Runtime.Intrinsics.Vector512`1[short],System.Runtime.Intrinsics.Vector512`1[short]):System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[short],System.Runtime.Intrinsics.Vector512`1[short]] (FullOpts)
         -16 (-3.23 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+RemainderOperator`1[short]:Invoke(System.Runtime.Intrinsics.Vector512`1[short],System.Runtime.Intrinsics.Vector512`1[short]):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
         -16 (-4.72 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:CreateHarmonicSequence[byte](byte,byte):System.Numerics.Vector`1[byte] (FullOpts)
         -16 (-4.72 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:CreateHarmonicSequence[byte](byte,byte):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
         -16 (-5.28 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[byte]:op_Division(System.Runtime.Intrinsics.Vector256`1[byte],byte):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
         -16 (-3.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Divide[short](System.Runtime.Intrinsics.Vector512`1[short],short):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
         -16 (-3.30 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Divide[short](System.Runtime.Intrinsics.Vector512`1[short],System.Runtime.Intrinsics.Vector512`1[short]):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
         -16 (-3.23 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[short]:op_Division(System.Runtime.Intrinsics.Vector512`1[short],System.Runtime.Intrinsics.Vector512`1[short]):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
         -16 (-3.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Divide(System.Runtime.Intrinsics.Vector512`1[short],short):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
         -16 (-3.30 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Divide(System.Runtime.Intrinsics.Vector512`1[short],System.Runtime.Intrinsics.Vector512`1[short]):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
         -14 (-5.15 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Icc.Calculators.ClutCalculator:Interpolate1d(ptr,ptr):this (FullOpts)
         -13 (-0.16 % of base) : BepuPhysics.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref) (FullOpts)
         -13 (-4.38 % of base) : SixLabors.Fonts.dasm - SixLabors.Fonts.Tables.General.Colr.ColrTable:BuildSkew(float,float,bool,float,float):System.Numerics.Matrix3x2 (FullOpts)
         -12 (-1.93 % of base) : BepuPhysics.dasm - BepuPhysics.CollisionDetection.MeshReduction+TestTriangle:.ctor(byref,int):this (FullOpts)
         -12 (-0.76 % of base) : BouncyCastle.Cryptography.dasm - Org.BouncyCastle.Crypto.Engines.ChaCha7539Engine:ImplProcessBlocks2_X86_Avx2(int,uint[],System.ReadOnlySpan`1[byte],System.Span`1[byte]) (FullOpts)
         -12 (-0.56 % of base) : BouncyCastle.Cryptography.dasm - Org.BouncyCastle.Crypto.Engines.ChaCha7539Engine:ProcessBlocks2(System.ReadOnlySpan`1[byte],System.Span`1[byte]):this (FullOpts)
         -12 (-0.17 % of base) : SixLabors.Fonts.dasm - SixLabors.Fonts.Tables.General.Colr.ColrGlyphSourceBase:FlattenPaint(SixLabors.Fonts.Tables.General.Colr.Paint,System.Numerics.Matrix3x2,int,SixLabors.Fonts.Tables.General.CpalTable,SixLabors.Fonts.Tables.General.Colr.ColrTable,SixLabors.Fonts.Tables.AdvancedTypographic.Variations.GlyphVariationProcessor,System.Collections.Generic.List`1[SixLabors.Fonts.Rendering.Paint]) (FullOpts)
         -12 (-1.08 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Icc.Calculators.ClutCalculator:Interpolate4d(ptr,ptr):this (FullOpts)
         -12 (-2.04 % of base) : SixLabors.ImageSharp.Drawing.dasm - SixLabors.ImageSharp.Drawing.Processing.Backends.DefaultRasterizer+StrokeLinearizer`1[System.__Canon]:EmitPointStrokeContour(SixLabors.ImageSharp.PointF,bool):this (FullOpts)
         -12 (-4.78 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Formats.Png.Filters.PaethFilter:PaethPredictor(System.Numerics.Vector`1[byte],System.Numerics.Vector`1[byte],System.Numerics.Vector`1[byte]):System.Numerics.Vector`1[byte] (FullOpts)
         -12 (-11.32 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Numerics:Accumulate(byref,System.Numerics.Vector`1[byte]) (FullOpts)
         -12 (-2.48 % of base) : System.Private.CoreLib.dasm - System.Double:<RootN>g__NegativeN|242_1(double,int):double (FullOpts)
         -12 (-2.53 % of base) : System.Private.CoreLib.dasm - System.Double:<RootN>g__PositiveN|242_0(double,int):double (FullOpts)
         -12 (-10.91 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:Finalize[double](System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):double (FullOpts)
         -12 (-10.34 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+WidenByteToSingleOperator:Invoke(System.Runtime.Intrinsics.Vector256`1[byte]):System.ValueTuple`4[System.Runtime.Intrinsics.Vector256`1[float],System.Runtime.Intrinsics.Vector256`1[float],System.Runtime.Intrinsics.Vector256`1[float],System.Runtime.Intrinsics.Vector256`1[float]] (FullOpts)
         -12 (-8.70 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+WidenByteToSingleOperator:Invoke(System.Runtime.Intrinsics.Vector512`1[byte]):System.ValueTuple`4[System.Runtime.Intrinsics.Vector512`1[float],System.Runtime.Intrinsics.Vector512`1[float],System.Runtime.Intrinsics.Vector512`1[float],System.Runtime.Intrinsics.Vector512`1[float]] (FullOpts)
         -12 (-13.04 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+WidenByteToUInt32Operator:Invoke(System.Runtime.Intrinsics.Vector256`1[byte]):System.ValueTuple`4[System.Runtime.Intrinsics.Vector256`1[uint],System.Runtime.Intrinsics.Vector256`1[uint],System.Runtime.Intrinsics.Vector256`1[uint],System.Runtime.Intrinsics.Vector256`1[uint]] (FullOpts)
         -12 (-10.53 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+WidenByteToUInt32Operator:Invoke(System.Runtime.Intrinsics.Vector512`1[byte]):System.ValueTuple`4[System.Runtime.Intrinsics.Vector512`1[uint],System.Runtime.Intrinsics.Vector512`1[uint],System.Runtime.Intrinsics.Vector512`1[uint],System.Runtime.Intrinsics.Vector512`1[uint]] (FullOpts)
         -12 (-10.62 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:MultiplyAddEstimate[byte](System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
         -12 (-14.46 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:MultiplyAddEstimate[int](System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
         -12 (-14.12 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:MultiplyAddEstimate[long](System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
         -12 (-14.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:MultiplyAddEstimate[short](System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
         -12 (-7.74 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:MultiplyAddEstimate[byte](System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
         -12 (-10.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:MultiplyAddEstimate[int](System.Runtime.Intrinsics.Vector512`1[int],System.Runtime.Intrinsics.Vector512`1[int],System.Runtime.Intrinsics.Vector512`1[int]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
         -12 (-10.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:MultiplyAddEstimate[long](System.Runtime.Intrinsics.Vector512`1[long],System.Runtime.Intrinsics.Vector512`1[long],System.Runtime.Intrinsics.Vector512`1[long]):System.Runtime.Intrinsics.Vector512`1[long] (FullOpts)
         -12 (-10.43 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:MultiplyAddEstimate[short](System.Runtime.Intrinsics.Vector512`1[short],System.Runtime.Intrinsics.Vector512`1[short],System.Runtime.Intrinsics.Vector512`1[short]):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
         -12 (-2.54 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[short]:op_Division(System.Runtime.Intrinsics.Vector512`1[short],short):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
         -12 (-3.08 % of base) : System.Private.CoreLib.dasm - System.Single:<RootN>g__NegativeN|242_1(float,int):float (FullOpts)
         -12 (-3.16 % of base) : System.Private.CoreLib.dasm - System.Single:<RootN>g__PositiveN|242_0(float,int):float (FullOpts)
         -11 (-2.33 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Icc.Calculators.ClutCalculator:Interpolate2d(ptr,ptr):this (FullOpts)
         -10 (-1.73 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.JpegColorConverterBase+YCbCrScalar:ConvertToRgbInPlace(byref,float,float) (FullOpts)
         -10 (-6.85 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Matrix3x2Extensions:CreateSkewDegrees(float,float):System.Numerics.Matrix3x2 (FullOpts)
         -10 (-7.46 % of base) : System.Private.CoreLib.dasm - System.Numerics.Matrix3x2:CreateSkew(float,float):System.Numerics.Matrix3x2 (FullOpts)
          -9 (-1.32 % of base) : BepuPhysics.dasm - BepuPhysics.Trees.Tree:PartitionSubtreesWorker(long,ptr,int,BepuUtilities.IThreadDispatcher) (FullOpts)
          -9 (-0.70 % of base) : SixLabors.ImageSharp.Drawing.dasm - SixLabors.ImageSharp.Drawing.Processing.Backends.DefaultRasterizer+StrokeLinearizer`1[System.__Canon]:BuildContourSegments(System.ReadOnlySpan`1[SixLabors.ImageSharp.PointF],bool,System.Span`1[SixLabors.ImageSharp.Drawing.Processing.Backends.DefaultRasterizer+StrokeLinearizer`1+StrokeContourSegment[System.__Canon]],byref,byref):int:this (FullOpts)
          -8 (-2.47 % of base) : ClosedXML.dasm - ClosedXML.Excel.CalcEngine.Functions.XLMath:Round(double,double):double (FullOpts)
          -8 (-3.38 % of base) : ClosedXML.dasm - ClosedXML.Excel.XLHelper:NoCToPixels(double,ClosedXML.Excel.IXLFont,ClosedXML.Excel.XLWorkbook):int (FullOpts)
          -8 (-2.11 % of base) : ClosedXML.Parser.dasm - ClosedXML.Parser.NameUtils:IsSheetNameValid(System.ReadOnlySpan`1[char]):bool (FullOpts)
          -8 (-1.79 % of base) : CommunityToolkit.HighPerformance.dasm - CommunityToolkit.HighPerformance.Helpers.Internals.SpanHelper:CountSimd[double](byref,nint,double):nint (FullOpts)

Top method regressions (percentages):
           4 (0.31 % of base) : SixLabors.Fonts.dasm - SixLabors.Fonts.FontGlyphMetrics:RenderDecorationsTo(SixLabors.Fonts.Rendering.IGlyphRenderer,System.Numerics.Vector2,int,System.Numerics.Matrix3x2,float,SixLabors.Fonts.TextOptions):this (FullOpts)
           1 (0.14 % of base) : System.Private.CoreLib.dasm - System.Text.Ascii:WidenAsciiToUtf16(ptr,ptr,nuint):nuint (FullOpts)

Top method improvements (percentages):
          -8 (-17.39 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex`1[double]:MultiplyAddEstimate(System.Numerics.Complex`1[double],System.Numerics.Complex`1[double],System.Numerics.Complex`1[double]):System.Numerics.Complex`1[double] (FullOpts)
          -4 (-16.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[double](double):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-14.81 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+MultiplyOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector512`1[double]):double (FullOpts)
          -4 (-14.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[byte](byte):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
          -4 (-14.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[byte](System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
          -4 (-14.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[double](System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -4 (-14.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[int](int):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -4 (-14.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[int](System.Runtime.Intrinsics.Vector128`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -4 (-14.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[long](long):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -4 (-14.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[long](System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -4 (-14.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[short](short):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -4 (-14.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[short](System.Runtime.Intrinsics.Vector128`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
         -12 (-14.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:MultiplyAddEstimate[short](System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
         -12 (-14.46 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:MultiplyAddEstimate[int](System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -8 (-14.29 % of base) : System.Private.CoreLib.dasm - System.Buffers.IndexOfAnyAsciiSearcher+AnyByteState:.ctor(System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Buffers.BitVector256):this (FullOpts)
         -12 (-14.12 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:MultiplyAddEstimate[long](System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Equals[byte](System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Equals[int](System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Equals[short](System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:GreaterThan[int](System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:GreaterThan[short](System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:LessThan[int](System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:LessThan[short](System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[byte]:op_Addition(System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[byte]:op_BitwiseAnd(System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[byte]:op_BitwiseOr(System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[byte]:op_ExclusiveOr(System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[byte]:op_Subtraction(System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[double]:op_Addition(System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[double]:op_BitwiseAnd(System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[double]:op_BitwiseOr(System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[double]:op_Division(System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[double]:op_ExclusiveOr(System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[double]:op_Multiply(System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[double]:op_Subtraction(System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[int]:op_Addition(System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[int]:op_BitwiseAnd(System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[int]:op_BitwiseOr(System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[int]:op_ExclusiveOr(System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[int]:op_Subtraction(System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[long]:op_Addition(System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[long]:op_BitwiseAnd(System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[long]:op_BitwiseOr(System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[long]:op_ExclusiveOr(System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[long]:op_Subtraction(System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[short]:op_Addition(System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[short]:op_BitwiseAnd(System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[short]:op_BitwiseOr(System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[short]:op_ExclusiveOr(System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[short]:op_Multiply(System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -8 (-14.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[short]:op_Subtraction(System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -8 (-13.79 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[long]:Invoke(System.Runtime.Intrinsics.Vector512`1[long]):long (FullOpts)
          -4 (-13.79 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ConcatLowerLower[byte](System.Numerics.Vector`1[byte],System.Numerics.Vector`1[byte]):System.Numerics.Vector`1[byte] (FullOpts)
          -4 (-13.79 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ConcatLowerLower[double](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[double] (FullOpts)
          -4 (-13.79 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ConcatLowerLower[int](System.Numerics.Vector`1[int],System.Numerics.Vector`1[int]):System.Numerics.Vector`1[int] (FullOpts)
          -4 (-13.79 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ConcatLowerLower[long](System.Numerics.Vector`1[long],System.Numerics.Vector`1[long]):System.Numerics.Vector`1[long] (FullOpts)
          -4 (-13.79 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector:ConcatLowerLower[short](System.Numerics.Vector`1[short],System.Numerics.Vector`1[short]):System.Numerics.Vector`1[short] (FullOpts)
          -4 (-13.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:ConcatLowerLower[byte](System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
          -4 (-13.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:ConcatLowerLower[double](System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -4 (-13.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:ConcatLowerLower[int](System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -4 (-13.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:ConcatLowerLower[long](System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -4 (-13.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:ConcatLowerLower[short](System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -8 (-13.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Sum(System.Runtime.Intrinsics.Vector512`1[long]):long (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Equals[double](System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Equals[long](System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:GreaterThan[double](System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:GreaterThan[long](System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:GreaterThanOrEqual[double](System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:LessThan[double](System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:LessThan[long](System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:LessThanOrEqual[double](System.Runtime.Intrinsics.Vector256`1[double],System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:ShiftLeft(System.Runtime.Intrinsics.Vector256`1[uint],System.Runtime.Intrinsics.Vector256`1[uint]):System.Runtime.Intrinsics.Vector256`1[uint] (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:ShiftLeft(System.Runtime.Intrinsics.Vector256`1[ulong],System.Runtime.Intrinsics.Vector256`1[ulong]):System.Runtime.Intrinsics.Vector256`1[ulong] (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:UnzipEven[int](System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:UnzipOdd[int](System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -8 (-13.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[int]:op_Multiply(System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -8 (-13.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:AddSaturate[byte](System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
          -8 (-13.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:AddSaturate[short](System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -8 (-13.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:SubtractSaturate[byte](System.Runtime.Intrinsics.Vector256`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]):System.Runtime.Intrinsics.Vector256`1[byte] (FullOpts)
          -8 (-13.33 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:SubtractSaturate[short](System.Runtime.Intrinsics.Vector256`1[short],System.Runtime.Intrinsics.Vector256`1[short]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -8 (-13.11 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[long]:op_Multiply(System.Runtime.Intrinsics.Vector256`1[long],System.Runtime.Intrinsics.Vector256`1[long]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
         -12 (-13.04 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+WidenByteToUInt32Operator:Invoke(System.Runtime.Intrinsics.Vector256`1[byte]):System.ValueTuple`4[System.Runtime.Intrinsics.Vector256`1[uint],System.Runtime.Intrinsics.Vector256`1[uint],System.Runtime.Intrinsics.Vector256`1[uint],System.Runtime.Intrinsics.Vector256`1[uint]] (FullOpts)
          -8 (-12.31 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+IndexOfMaxOperator`1[long]:Aggregate(System.Runtime.Intrinsics.Vector512`1[long]):long (FullOpts)
          -8 (-12.31 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+IndexOfMinOperator`1[long]:Aggregate(System.Runtime.Intrinsics.Vector512`1[long]):long (FullOpts)
          -8 (-12.31 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+MaxNumberOperator`1[long]:Invoke(System.Runtime.Intrinsics.Vector512`1[long]):long (FullOpts)
          -8 (-12.31 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[long]:Invoke(System.Runtime.Intrinsics.Vector512`1[long]):long (FullOpts)
          -8 (-12.31 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+MinNumberOperator`1[long]:Invoke(System.Runtime.Intrinsics.Vector512`1[long]):long (FullOpts)
          -8 (-12.31 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+MinOperator`1[long]:Invoke(System.Runtime.Intrinsics.Vector512`1[long]):long (FullOpts)
          -8 (-12.31 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+MultiplyOperator`1[long]:Invoke(System.Runtime.Intrinsics.Vector512`1[long]):long (FullOpts)
          -8 (-12.12 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[int]:Invoke(System.Runtime.Intrinsics.Vector512`1[int]):int (FullOpts)
          -4 (-12.12 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:CreateAlternatingSequence[double](double,double):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -4 (-12.12 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:ExtractMostSignificantBits[byte](System.Runtime.Intrinsics.Vector256`1[byte]):uint (FullOpts)
          -4 (-12.12 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:ExtractMostSignificantBits[double](System.Runtime.Intrinsics.Vector256`1[double]):uint (FullOpts)
          -4 (-12.12 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:ExtractMostSignificantBits[int](System.Runtime.Intrinsics.Vector256`1[int]):uint (FullOpts)
          -4 (-12.12 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:ExtractMostSignificantBits[long](System.Runtime.Intrinsics.Vector256`1[long]):uint (FullOpts)
          -8 (-12.12 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Sum(System.Runtime.Intrinsics.Vector512`1[int]):int (FullOpts)
          -4 (-11.76 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double]):double (FullOpts)
          -4 (-11.76 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+MultiplyOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double]):double (FullOpts)
          -4 (-11.76 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives+RoundAwayFromZeroOperator`1[double]:Invoke(double):double (FullOpts)
          -4 (-11.76 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Sum(System.Numerics.Vector`1[double]):double (FullOpts)

1067 total methods with Code Size differences (1065 improved, 2 regressed), 2113162 unchanged.

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

Artifacts:

Activity

  1. MihuBot commented on Jul 11, 2026

    @MihuBot
    OwnerAuthor

    Top method regressions

    4 (0.31 % of base) - SixLabors.Fonts.FontGlyphMetrics:RenderDecorationsTo(SixLabors.Fonts.Rendering.IGlyphRenderer,System.Numerics.Vector2,int,System.Numerics.Matrix3x2,float,SixLabors.Fonts.TextOptions):this
     ; Assembly listing for method SixLabors.Fonts.FontGlyphMetrics:RenderDecorationsTo(SixLabors.Fonts.Rendering.IGlyphRenderer,System.Numerics.Vector2,int,System.Numerics.Matrix3x2,float,SixLabors.Fonts.TextOptions):this (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 23 single block inlinees; 4 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T01] ( 12,  8   )     ref  ->  rbx         this class-hnd single-def <SixLabors.Fonts.FontGlyphMetrics>
     ;  V01 arg1         [V01,T09] (  3,  3   )     ref  ->  rsi         class-hnd single-def <SixLabors.Fonts.Rendering.IGlyphRenderer>
     ;  V02 arg2         [V02,T21] (  3,  3   )   simd8  ->  mm0         single-def <System.Numerics.Vector2>
     ;  V03 arg3         [V03,T10] (  3,  3   )     int  ->  rdx         single-def
     ;  V04 arg4         [V04,T20] (  1,  1   )  struct (24) [rbp+0x10]  do-not-enreg[S] single-def <System.Numerics.Matrix3x2>
     ;  V05 arg5         [V05,T22] (  3,  3   )   float  ->  mm1         single-def
     ;  V06 arg6         [V06,T08] (  4,  3.50)     ref  ->  rcx         class-hnd single-def <SixLabors.Fonts.TextOptions>
     ;  V07 loc0         [V07    ] ( 27, 19   )  struct (88) [rbp-0x80]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <SixLabors.Fonts.FontGlyphMetrics+<>c__DisplayClass70_0>
     ;* V08 loc1         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <SixLabors.Fonts.FontMetrics>
     ;  V09 loc2         [V09,T14] (  3,  2   )   ubyte  ->  r12         single-def
     ;  V10 loc3         [V10,T26] (  3,  1.50)   float  ->  [rbp-0x84]  spill-single-def
     ;  V11 loc4         [V11,T27] (  3,  1.50)   float  ->  [rbp-0x88]  spill-single-def
     ;  V12 loc5         [V12,T15] (  2,  2   )   ubyte  ->  rdi        
     ;* V13 loc6         [V13    ] (  0,  0   )     int  ->  zero-ref   
     ;# V14 OutArgs      [V14    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;  V15 tmp1         [V15,T06] (  3,  6   )     int  ->  r15         "dup spill"
     ;* V16 tmp2         [V16    ] (  0,  0   )     int  ->  zero-ref   
     ;* V17 tmp3         [V17    ] (  0,  0   )     int  ->  zero-ref    single-def
     ;  V18 tmp4         [V18,T00] ( 28, 14   )     ref  ->  r14        
     ;* V19 tmp5         [V19    ] (  0,  0   )   simd8  ->  zero-ref    ld-addr-op "NewObj constructor temp" <System.Numerics.Vector2>
     ;  V20 tmp6         [V20,T02] (  4,  8   )     int  ->  r13         "impAppendStmt"
     ;* V21 tmp7         [V21    ] (  0,  0   )     int  ->  zero-ref   
     ;* V22 tmp8         [V22    ] (  0,  0   )     int  ->  zero-ref   
     ;* V23 tmp9         [V23    ] (  0,  0   )   float  ->  zero-ref    "non-inline candidate call"
     ;* V24 tmp10        [V24    ] (  0,  0   )     int  ->  zero-ref    "non-inline candidate call"
     ;* V25 tmp11        [V25    ] (  0,  0   )     int  ->  zero-ref    single-def
     ;* V26 tmp12        [V26    ] (  0,  0   )     ref  ->  zero-ref    single-def
     ;* V27 tmp13        [V27    ] (  0,  0   )     int  ->  zero-ref    single-def
     ;  V28 tmp14        [V28,T32] (  2,  1   )   float  ->  [rbp-0x8C]  spill-single-def
     ;* V29 tmp15        [V29    ] (  0,  0   )     int  ->  zero-ref    single-def
     ;* V30 tmp16        [V30    ] (  0,  0   )     ref  ->  zero-ref    single-def
     ;* V31 tmp17        [V31    ] (  0,  0   )     int  ->  zero-ref    single-def
     ;* V32 tmp18        [V32    ] (  0,  0   )   float  ->  zero-ref    single-def
     ;  V33 tmp19        [V33,T28] (  3,  1.50)   float  ->  mm1        
     ;* V34 tmp20        [V34    ] (  0,  0   )     int  ->  zero-ref    single-def
     ;* V35 tmp21        [V35    ] (  0,  0   )     ref  ->  zero-ref    single-def
     ;* V36 tmp22        [V36    ] (  0,  0   )     int  ->  zero-ref    single-def
     ;  V37 tmp23        [V37,T33] (  2,  1   )   float  ->  [rbp-0x90]  spill-single-def
     ;* V38 tmp24        [V38    ] (  0,  0   )     int  ->  zero-ref   
     ;* V39 tmp25        [V39    ] (  0,  0   )     ref  ->  zero-ref   
     ;* V40 tmp26        [V40    ] (  0,  0   )     int  ->  zero-ref   
     ;* V41 tmp27        [V41    ] (  0,  0   )   float  ->  zero-ref   
     ;  V42 tmp28        [V42,T16] (  3,  1.50)     int  ->  rax        
     ;* V43 tmp29        [V43    ] (  0,  0   )   simd8  ->  zero-ref    "non-inline candidate call"
     ;* V44 tmp30        [V44    ] (  0,  0   )   float  ->  zero-ref    "non-inline candidate call"
     ;* V45 tmp31        [V45    ] (  0,  0   )   simd8  ->  zero-ref    ld-addr-op "NewObj constructor temp" <System.Numerics.Vector2>
     ;* V46 tmp32        [V46    ] (  0,  0   )   float  ->  zero-ref    "non-inline candidate call"
     ;* V47 tmp33        [V47    ] (  0,  0   )   byref  ->  zero-ref   
     ;* V48 tmp34        [V48    ] (  0,  0   )   float  ->  zero-ref   
     ;* V49 tmp35        [V49    ] (  0,  0   )   byref  ->  zero-ref   
     ;  V50 tmp36        [V50,T34] (  2,  1   )   float  ->  [rbp-0x94]  spill-single-def
     ;  V51 tmp37        [V51,T17] (  3,  1.50)     int  ->  r15        
     ;* V52 tmp38        [V52    ] (  0,  0   )   simd8  ->  zero-ref    ld-addr-op "NewObj constructor temp" <System.Numerics.Vector2>
     ;* V53 tmp39        [V53    ] (  0,  0   )   simd8  ->  zero-ref    "non-inline candidate call"
     ;* V54 tmp40        [V54    ] (  0,  0   )   float  ->  zero-ref    "non-inline candidate call"
     ;* V55 tmp41        [V55    ] (  0,  0   )   simd8  ->  zero-ref    ld-addr-op "NewObj constructor temp" <System.Numerics.Vector2>
     ;* V56 tmp42        [V56    ] (  0,  0   )   float  ->  zero-ref    "non-inline candidate call"
     ;* V57 tmp43        [V57    ] (  0,  0   )   byref  ->  zero-ref   
     ;* V58 tmp44        [V58    ] (  0,  0   )   float  ->  zero-ref   
     ;* V59 tmp45        [V59    ] (  0,  0   )   byref  ->  zero-ref   
     ;  V60 tmp46        [V60,T35] (  2,  1   )   float  ->  [rbp-0x98]  spill-single-def
     ;  V61 tmp47        [V61,T18] (  3,  1.50)     int  ->  rax        
     ;* V62 tmp48        [V62    ] (  0,  0   )   simd8  ->  zero-ref    ld-addr-op "NewObj constructor temp" <System.Numerics.Vector2>
     ;* V63 tmp49        [V63    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
     ;* V64 tmp50        [V64    ] (  0,  0   )   simd8  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Numerics.Vector2>
     ;* V65 tmp51        [V65    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
     ;* V66 tmp52        [V66    ] (  0,  0   )   simd8  ->  zero-ref    "Inlining Arg" <System.Numerics.Vector2>
     ;* V67 tmp53        [V67    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
     ;* V68 tmp54        [V68    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
     ;* V69 tmp55        [V69    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
     ;* V70 tmp56        [V70    ] (  0,  0   )   simd8  ->  zero-ref    "Inlining Arg" <System.Numerics.Vector2>
     ;* V71 tmp57        [V71    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
     ;* V72 tmp58        [V72    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
     ;  V73 tmp59        [V73,T05] (  6,  6   )   short  ->  rax         "Inlining Arg"
     ;* V74 tmp60        [V74    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <SixLabors.Fonts.FontGlyphMetrics>
     ;* V75 tmp61        [V75    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
     ;  V76 tmp62        [V76,T11] (  4,  4   )  struct (24) [rbp-0xB0]  do-not-enreg[DAS] defined-via-address "dup spill" <System.ValueTuple`3[System.Numerics.Vector2,System.Numerics.Vector2,float]>
     ;  V77 tmp63        [V77,T36] (  2,  1   )   simd8  ->  mm0         single-def "Inline stloc first use temp" <System.Numerics.Vector2>
     ;  V78 tmp64        [V78,T37] (  2,  1   )   simd8  ->  mm1         single-def "Inline stloc first use temp" <System.Numerics.Vector2>
     ;  V79 tmp65        [V79,T29] (  3,  1.50)   float  ->  mm2         single-def "Inline stloc first use temp"
     ;* V80 tmp66        [V80    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <SixLabors.Fonts.FontGlyphMetrics>
     ;  V81 tmp67        [V81,T12] (  4,  4   )  struct (24) [rbp-0xC8]  do-not-enreg[DAS] defined-via-address "dup spill" <System.ValueTuple`3[System.Numerics.Vector2,System.Numerics.Vector2,float]>
     ;  V82 tmp68        [V82,T38] (  2,  1   )   simd8  ->  mm0         single-def "Inline stloc first use temp" <System.Numerics.Vector2>
     ;  V83 tmp69        [V83,T39] (  2,  1   )   simd8  ->  mm1         single-def "Inline stloc first use temp" <System.Numerics.Vector2>
     ;  V84 tmp70        [V84,T30] (  3,  1.50)   float  ->  mm2         single-def "Inline stloc first use temp"
     ;* V85 tmp71        [V85    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
     ;  V86 tmp72        [V86,T13] (  4,  4   )  struct (24) [rbp-0xE0]  do-not-enreg[DAS] defined-via-address "dup spill" <System.ValueTuple`3[System.Numerics.Vector2,System.Numerics.Vector2,float]>
     ;  V87 tmp73        [V87,T40] (  2,  1   )   simd8  ->  mm0         single-def "Inline stloc first use temp" <System.Numerics.Vector2>
     ;  V88 tmp74        [V88,T41] (  2,  1   )   simd8  ->  mm1         single-def "Inline stloc first use temp" <System.Numerics.Vector2>
     ;  V89 tmp75        [V89,T31] (  3,  1.50)   float  ->  mm2         single-def "Inline stloc first use temp"
     ;  V90 tmp76        [V90,T24] (  2,  2   )   float  ->  [rbp-0xE4]  spill-single-def "argument with side effect"
     ;  V91 tmp77        [V91,T25] (  2,  2   )   float  ->  mm1         "argument with side effect"
     ;  V92 cse0         [V92,T07] ( 11,  5.50)    long  ->  r13         multi-def "CSE #03: aggressive"
     ;  V93 cse1         [V93,T04] ( 13,  6.50)    long  ->  [rbp-0xF0]  multi-def "CSE #10: aggressive"
     ;  V94 cse2         [V94,T23] (  3,  2.50)   simd8  ->  mm0         "CSE #01: moderate"
     ;  V95 cse3         [V95,T19] (  3,  1.50)     int  ->  rdi         "CSE #05: conservative"
     ;  V96 cse4         [V96,T03] ( 14,  7   )    long  ->  r15         multi-def "CSE #02: aggressive"
    -;  TEMP_02                                  simd16  ->  [rbp-0x100]
    -;  TEMP_01                                  simd16  ->  [rbp-0x110]
    +;  TEMP_01                                   float  ->  [rbp-0xF4]
    +;  TEMP_02                                  simd16  ->  [rbp-0x104]
     ;
     ; Lcl frame size = 232
     
     G_M36385_IG01:
            push     rbp
            push     r15
            push     r14
            push     r13
            push     r12
            push     rbx
            sub      rsp, 232
            lea      rbp, [rsp+0x110]
            vxorps   xmm8, xmm8, xmm8
            vmovdqu32 zmmword ptr [rbp-0x80], zmm8
            vmovdqa  xmmword ptr [rbp-0x40], xmm8
            xor      eax, eax
            mov      qword ptr [rbp-0x30], rax
            mov      rbx, rdi
     						;; size=51 bbWeight=1 PerfScore 11.58
     G_M36385_IG02:
            mov      dword ptr [rbp-0x70], edx
            mov      gword ptr [rbp-0x80], rbx
            vmovss   dword ptr [rbp-0x6C], xmm1
            vmovsd   qword ptr [rbp-0x4C], xmm0
            vmovdqu  xmm0, xmmword ptr [rbp+0x10]
            vmovdqu  xmmword ptr [rbp-0x44], xmm0
            mov      rdi, qword ptr [rbp+0x20]
            mov      qword ptr [rbp-0x34], rdi
            mov      gword ptr [rbp-0x78], rsi
            cmp      dword ptr [rcx+0x74], 1
            sete     r15b
            movzx    r15, r15b
            test     r15d, r15d
            je       SHORT G_M36385_IG04
     						;; size=56 bbWeight=1 PerfScore 13.00
     G_M36385_IG03:
            mov      r14, gword ptr [rbx+0x08]
            jmp      SHORT G_M36385_IG05
     						;; size=6 bbWeight=0.50 PerfScore 2.00
     G_M36385_IG04:
            mov      rdi, gword ptr [rcx+0x08]
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.Fonts.Font:get_FontMetrics():SixLabors.Fonts.FontMetrics:this
            cmp      dword ptr [rdi], edi
            call     [rax]SixLabors.Fonts.Font:get_FontMetrics():SixLabors.Fonts.FontMetrics:this
            mov      r14, rax
     						;; size=21 bbWeight=0.50 PerfScore 3.75
     G_M36385_IG05:
            vmovsd   xmm0, qword ptr [rbx+0x50]
            vmovsd   qword ptr [rbp-0x64], xmm0
            test     r15d, r15d
            jne      G_M36385_IG12
     						;; size=19 bbWeight=1 PerfScore 5.25
     G_M36385_IG06:
            mov      rdi, r14
            mov      r15, qword ptr [r14]
            mov      rax, qword ptr [r15+0x40]
            call     [rax+0x28]SixLabors.Fonts.FontMetrics:get_UnitsPerEm():ushort:this
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, eax
            vmulss   xmm0, xmm0, dword ptr [reloc @RWD00]
            vbroadcastss xmm0, xmm0
            vmovsd   qword ptr [rbp-0x5C], xmm0
            vxorps   xmm0, xmm0, xmm0
            vmovsd   qword ptr [rbp-0x54], xmm0
            mov      edi, dword ptr [rbx+0x24]
            test     dil, 1
            jne      G_M36385_IG09
            test     dil, 2
            je       G_M36385_IG13
            movzx    rdi, word  ptr [rbx+0x38]
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, edi
            vmovss   dword ptr [rbp-0x88], xmm0
            vmovsd   xmm1, qword ptr [rbp-0x5C]
    -       vmovups  xmmword ptr [rbp-0x100], xmm1
    +       vmovups  xmmword ptr [rbp-0x104], xmm1
            mov      rdi, r14
            mov      r13, qword ptr [r15+0x48]
            call     [r13+0x28]SixLabors.Fonts.FontMetrics:get_SuperscriptXSize():short:this
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, eax
            vdivss   xmm0, xmm0, dword ptr [rbp-0x88]
    -       vmovups  xmmword ptr [rbp-0x110], xmm0
    +       vmovss   dword ptr [rbp-0xF4], xmm0
            mov      rdi, r14
            call     [r13+0x30]SixLabors.Fonts.FontMetrics:get_SuperscriptYSize():short:this
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, eax
            vdivss   xmm0, xmm0, dword ptr [rbp-0x88]
    -       vmovups  xmm1, xmmword ptr [rbp-0x110]
    +       vmovss   xmm1, dword ptr [rbp-0xF4]
            vinsertps xmm0, xmm1, xmm0, 28
    -       vmovups  xmm1, xmmword ptr [rbp-0x100]
    +       vmovups  xmm1, xmmword ptr [rbp-0x104]
            vdivps   xmm0, xmm1, xmm0
            vmovsd   qword ptr [rbp-0x5C], xmm0
            mov      rdi, r14
            call     [r13+0x38]SixLabors.Fonts.FontMetrics:get_SuperscriptXOffset():short:this
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, eax
            vmovss   dword ptr [rbp-0x94], xmm0
            mov      rdi, r14
            mov      r12, qword ptr [r15+0x50]
            call     [r12]SixLabors.Fonts.FontMetrics:get_SuperscriptYOffset():short:this
            test     eax, eax
            jge      SHORT G_M36385_IG07
            mov      rdi, r14
            call     [r12]SixLabors.Fonts.FontMetrics:get_SuperscriptYOffset():short:this
            mov      r15d, eax
            neg      r15d
            jmp      SHORT G_M36385_IG08
    -						;; size=238 bbWeight=0.50 PerfScore 60.88
    +						;; size=240 bbWeight=0.50 PerfScore 61.38
     G_M36385_IG07:
            mov      rdi, r14
            call     [r12]SixLabors.Fonts.FontMetrics:get_SuperscriptYOffset():short:this
            mov      r15d, eax
     						;; size=10 bbWeight=0.50 PerfScore 1.75
     G_M36385_IG08:
    -       vmovss   xmm0, dword ptr [rbp-0x94]
    -       vxorps   xmm1, xmm1, xmm1
    -       vcvtsi2ss xmm1, xmm1, r15d
    -       vinsertps xmm0, xmm0, xmm1, 28
    +       vxorps   xmm0, xmm0, xmm0
    +       vcvtsi2ss xmm0, xmm0, r15d
    +       vmovss   xmm1, dword ptr [rbp-0x94]
    +       vinsertps xmm0, xmm1, xmm0, 28
            vmovsd   qword ptr [rbp-0x54], xmm0
            jmp      G_M36385_IG13
     						;; size=32 bbWeight=0.50 PerfScore 6.17
     G_M36385_IG09:
            movzx    rdi, word  ptr [rbx+0x38]
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, edi
            vmovss   dword ptr [rbp-0x84], xmm0
            vmovsd   xmm1, qword ptr [rbp-0x5C]
    -       vmovups  xmmword ptr [rbp-0x100], xmm1
    +       vmovups  xmmword ptr [rbp-0x104], xmm1
            mov      rdi, r14
            mov      r13, qword ptr [r15+0x48]
            call     [r13+0x08]SixLabors.Fonts.FontMetrics:get_SubscriptXSize():short:this
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, eax
            vdivss   xmm0, xmm0, dword ptr [rbp-0x84]
    -       vmovups  xmmword ptr [rbp-0x110], xmm0
    +       vmovss   dword ptr [rbp-0xF4], xmm0
            mov      rdi, r14
            call     [r13+0x10]SixLabors.Fonts.FontMetrics:get_SubscriptYSize():short:this
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, eax
            vdivss   xmm0, xmm0, dword ptr [rbp-0x84]
    -       vmovups  xmm1, xmmword ptr [rbp-0x110]
    +       vmovss   xmm1, dword ptr [rbp-0xF4]
            vinsertps xmm0, xmm1, xmm0, 28
    -       vmovups  xmm1, xmmword ptr [rbp-0x100]
    +       vmovups  xmm1, xmmword ptr [rbp-0x104]
            vdivps   xmm0, xmm1, xmm0
            vmovsd   qword ptr [rbp-0x5C], xmm0
            mov      rdi, r14
            call     [r13+0x18]SixLabors.Fonts.FontMetrics:get_SubscriptXOffset():short:this
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, eax
            vmovss   dword ptr [rbp-0x98], xmm0
            mov      rdi, r14
            call     [r13+0x20]SixLabors.Fonts.FontMetrics:get_SubscriptYOffset():short:this
            test     eax, eax
            jge      SHORT G_M36385_IG10
            mov      rdi, r14
            call     [r13+0x20]SixLabors.Fonts.FontMetrics:get_SubscriptYOffset():short:this
            jmp      SHORT G_M36385_IG11
    -						;; size=157 bbWeight=0.50 PerfScore 46.42
    +						;; size=159 bbWeight=0.50 PerfScore 46.92
     G_M36385_IG10:
            mov      rdi, r14
            call     [r13+0x20]SixLabors.Fonts.FontMetrics:get_SubscriptYOffset():short:this
            neg      eax
     						;; size=9 bbWeight=0.50 PerfScore 1.75
     G_M36385_IG11:
    -       vmovss   xmm0, dword ptr [rbp-0x98]
    -       vxorps   xmm1, xmm1, xmm1
    -       vcvtsi2ss xmm1, xmm1, eax
    -       vinsertps xmm0, xmm0, xmm1, 28
    +       vxorps   xmm0, xmm0, xmm0
    +       vcvtsi2ss xmm0, xmm0, eax
    +       vmovss   xmm1, dword ptr [rbp-0x98]
    +       vinsertps xmm0, xmm1, xmm0, 28
            vmovsd   qword ptr [rbp-0x54], xmm0
            jmp      SHORT G_M36385_IG13
     						;; size=28 bbWeight=0.50 PerfScore 6.17
     G_M36385_IG12:
            vmovsd   qword ptr [rbp-0x5C], xmm0
            vmovsd   xmm0, qword ptr [rbx+0x58]
            vmovsd   qword ptr [rbp-0x54], xmm0
     						;; size=15 bbWeight=0.50 PerfScore 2.50
     G_M36385_IG13:
            mov      edi, dword ptr [rbp-0x70]
            dec      edi
            cmp      edi, 1
            setbe    dil
            movzx    rdi, dil
            mov      byte  ptr [rbp-0x68], dil
            mov      rdi, gword ptr [rbp-0x78]
            mov      r11, 0xD1FFAB1E      ; code for SixLabors.Fonts.Rendering.IGlyphRenderer:EnabledDecorations():int:this
            call     [r11]SixLabors.Fonts.Rendering.IGlyphRenderer:EnabledDecorations():int:this
            mov      r13d, eax
            cmp      dword ptr [rbp-0x70], 1
            sete     r12b
            movzx    r12, r12b
            test     r13b, 1
            je       G_M36385_IG19
     						;; size=62 bbWeight=1 PerfScore 10.75
     G_M36385_IG14:
            mov      rdi, r14
            mov      r15, qword ptr [r14]
            mov      rax, qword ptr [r15+0x50]
            mov      r15, rax
            call     [r15+0x20]SixLabors.Fonts.FontMetrics:get_UnderlineThickness():short:this
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, eax
            vmovss   dword ptr [rbp-0x90], xmm0
            test     r12d, r12d
            je       SHORT G_M36385_IG16
            mov      rdi, r14
            call     [r15+0x18]SixLabors.Fonts.FontMetrics:get_UnderlinePosition():short:this
            test     eax, eax
            jge      SHORT G_M36385_IG15
            neg      eax
            cwde     
            test     eax, eax
            jl       G_M36385_IG29
     						;; size=59 bbWeight=0.50 PerfScore 11.17
     G_M36385_IG15:
            jmp      SHORT G_M36385_IG17
     						;; size=2 bbWeight=0.50 PerfScore 1.00
     G_M36385_IG16:
            mov      rdi, r14
            call     [r15+0x18]SixLabors.Fonts.FontMetrics:get_UnderlinePosition():short:this
     						;; size=7 bbWeight=0.50 PerfScore 1.62
     G_M36385_IG17:
            vxorps   xmm1, xmm1, xmm1
            vcvtsi2ss xmm1, xmm1, eax
            lea      rsi, [rbp-0xB0]
            lea      rcx, [rbp-0x80]
            mov      rdi, rbx
            vmovss   xmm0, dword ptr [rbp-0x90]
            mov      edx, 1
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.Fonts.FontGlyphMetrics:<RenderDecorationsTo>g__GetEnds|70_0(int,float,float,byref):System.ValueTuple`3[System.Numerics.Vector2,System.Numerics.Vector2,float]:this
            call     [rax]SixLabors.Fonts.FontGlyphMetrics:<RenderDecorationsTo>g__GetEnds|70_0(int,float,float,byref):System.ValueTuple`3[System.Numerics.Vector2,System.Numerics.Vector2,float]:this
            vmovsd   xmm0, qword ptr [rbp-0xAC]
            vmovsd   xmm1, qword ptr [rbp-0xA4]
            vmovss   xmm2, dword ptr [rbp-0xB0]
            vxorps   xmm3, xmm3, xmm3
            vucomiss xmm2, xmm3
            jp       SHORT G_M36385_IG18
            je       SHORT G_M36385_IG19
     						;; size=81 bbWeight=0.50 PerfScore 11.71
     G_M36385_IG18:
            mov      rdi, gword ptr [rbp-0x78]
            mov      r11, 0xD1FFAB1E      ; code for SixLabors.Fonts.Rendering.IGlyphRenderer:SetDecoration(int,System.Numerics.Vector2,System.Numerics.Vector2,float):this
            mov      esi, 1
            call     [r11]SixLabors.Fonts.Rendering.IGlyphRenderer:SetDecoration(int,System.Numerics.Vector2,System.Numerics.Vector2,float):this
     						;; size=22 bbWeight=0.50 PerfScore 2.25
     G_M36385_IG19:
            test     r13b, 2
            je       G_M36385_IG24
     						;; size=10 bbWeight=1 PerfScore 1.25
     G_M36385_IG20:
            mov      rdi, r14
            mov      r15, qword ptr [r14]
            mov      rax, qword ptr [r15+0x50]
            mov      qword ptr [rbp-0xF0], rax
            call     [rax+0x08]SixLabors.Fonts.FontMetrics:get_StrikeoutSize():short:this
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, eax
            vmovss   dword ptr [rbp-0x8C], xmm0
            test     r12d, r12d
            je       SHORT G_M36385_IG21
            mov      rdi, r14
            mov      rax, qword ptr [r15+0x40]
            call     [rax+0x28]SixLabors.Fonts.FontMetrics:get_UnitsPerEm():ushort:this
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, eax
            vmulss   xmm1, xmm0, dword ptr [reloc @RWD04]
            jmp      SHORT G_M36385_IG22
     						;; size=68 bbWeight=0.50 PerfScore 17.71
     G_M36385_IG21:
            mov      rdi, r14
            mov      r12, qword ptr [rbp-0xF0]
            call     [r12+0x10]SixLabors.Fonts.FontMetrics:get_StrikeoutPosition():short:this
            vxorps   xmm1, xmm1, xmm1
            vcvtsi2ss xmm1, xmm1, eax
     						;; size=23 bbWeight=0.50 PerfScore 5.29
     G_M36385_IG22:
            lea      rcx, [rbp-0x80]
            lea      rsi, [rbp-0xC8]
            mov      rdi, rbx
            vmovss   xmm0, dword ptr [rbp-0x8C]
            mov      edx, 2
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.Fonts.FontGlyphMetrics:<RenderDecorationsTo>g__GetEnds|70_0(int,float,float,byref):System.ValueTuple`3[System.Numerics.Vector2,System.Numerics.Vector2,float]:this
            call     [rax]SixLabors.Fonts.FontGlyphMetrics:<RenderDecorationsTo>g__GetEnds|70_0(int,float,float,byref):System.ValueTuple`3[System.Numerics.Vector2,System.Numerics.Vector2,float]:this
            vmovsd   xmm0, qword ptr [rbp-0xC4]
            vmovsd   xmm1, qword ptr [rbp-0xBC]
            vmovss   xmm2, dword ptr [rbp-0xC8]
            vxorps   xmm3, xmm3, xmm3
            vucomiss xmm2, xmm3
            jp       SHORT G_M36385_IG23
            je       SHORT G_M36385_IG24
     						;; size=73 bbWeight=0.50 PerfScore 8.54
     G_M36385_IG23:
            mov      rdi, gword ptr [rbp-0x78]
            mov      r11, 0xD1FFAB1E      ; code for SixLabors.Fonts.Rendering.IGlyphRenderer:SetDecoration(int,System.Numerics.Vector2,System.Numerics.Vector2,float):this
            mov      esi, 2
            call     [r11]SixLabors.Fonts.Rendering.IGlyphRenderer:SetDecoration(int,System.Numerics.Vector2,System.Numerics.Vector2,float):this
     						;; size=22 bbWeight=0.50 PerfScore 2.25
     G_M36385_IG24:
            test     r13b, 4
            je       G_M36385_IG27
     						;; size=10 bbWeight=1 PerfScore 1.25
     G_M36385_IG25:
            mov      rdi, r14
            mov      r15, qword ptr [r14]
            mov      r12, qword ptr [r15+0x50]
            call     [r12+0x20]SixLabors.Fonts.FontMetrics:get_UnderlineThickness():short:this
            vxorps   xmm0, xmm0, xmm0
            vcvtsi2ss xmm0, xmm0, eax
            vmovss   dword ptr [rbp-0xE4], xmm0
            mov      rdi, r14
            mov      rax, qword ptr [r15+0x40]
            call     [rax+0x28]SixLabors.Fonts.FontMetrics:get_UnitsPerEm():ushort:this
            mov      r13d, eax
            mov      rdi, r14
            mov      rax, qword ptr [r15+0x50]
            call     [rax+0x18]SixLabors.Fonts.FontMetrics:get_UnderlinePosition():short:this
            sub      r13d, eax
            vxorps   xmm1, xmm1, xmm1
            vcvtsi2ss xmm1, xmm1, r13d
            vmovss   xmm0, dword ptr [rbp-0xE4]
            lea      rcx, [rbp-0x80]
            lea      rsi, [rbp-0xE0]
            mov      rdi, rbx
            mov      edx, 4
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.Fonts.FontGlyphMetrics:<RenderDecorationsTo>g__GetEnds|70_0(int,float,float,byref):System.ValueTuple`3[System.Numerics.Vector2,System.Numerics.Vector2,float]:this
            call     [rax]SixLabors.Fonts.FontGlyphMetrics:<RenderDecorationsTo>g__GetEnds|70_0(int,float,float,byref):System.ValueTuple`3[System.Numerics.Vector2,System.Numerics.Vector2,float]:this
            vmovsd   xmm0, qword ptr [rbp-0xDC]
            vmovsd   xmm1, qword ptr [rbp-0xD4]
            vmovss   xmm2, dword ptr [rbp-0xE0]
            vxorps   xmm3, xmm3, xmm3
            vucomiss xmm2, xmm3
            jp       SHORT G_M36385_IG26
            je       SHORT G_M36385_IG27
     						;; size=138 bbWeight=0.50 PerfScore 24.50
     G_M36385_IG26:
            mov      rdi, gword ptr [rbp-0x78]
            mov      r11, 0xD1FFAB1E      ; code for SixLabors.Fonts.Rendering.IGlyphRenderer:SetDecoration(int,System.Numerics.Vector2,System.Numerics.Vector2,float):this
            mov      esi, 4
            call     [r11]SixLabors.Fonts.Rendering.IGlyphRenderer:SetDecoration(int,System.Numerics.Vector2,System.Numerics.Vector2,float):this
     						;; size=22 bbWeight=0.50 PerfScore 2.25
     G_M36385_IG27:
            nop      
     						;; size=1 bbWeight=1 PerfScore 0.25
     G_M36385_IG28:
            add      rsp, 232
            pop      rbx
            pop      r12
            pop      r13
            pop      r14
            pop      r15
            pop      rbp
            ret      
     						;; size=18 bbWeight=1 PerfScore 4.25
     G_M36385_IG29:
            mov      rax, 0xD1FFAB1E      ; code for System.Math:ThrowNegateTwosCompOverflow()
            call     [rax]System.Math:ThrowNegateTwosCompOverflow()
            int3     
     						;; size=13 bbWeight=0 PerfScore 0.00
     RWD00  	dd	42900000h		;        72
     RWD04  	dd	3F000000h		;       0.5
     
     
    -; Total bytes of code 1273, prolog size 48, PerfScore 267.25, instruction count 296, allocated bytes for code 1273 (MethodHash=0ce071de) for method SixLabors.Fonts.FontGlyphMetrics:RenderDecorationsTo(SixLabors.Fonts.Rendering.IGlyphRenderer,System.Numerics.Vector2,int,System.Numerics.Matrix3x2,float,SixLabors.Fonts.TextOptions):this (FullOpts)
    +; Total bytes of code 1277, prolog size 48, PerfScore 268.25, instruction count 296, allocated bytes for code 1277 (MethodHash=0ce071de) for method SixLabors.Fonts.FontGlyphMetrics:RenderDecorationsTo(SixLabors.Fonts.Rendering.IGlyphRenderer,System.Numerics.Vector2,int,System.Numerics.Matrix3x2,float,SixLabors.Fonts.TextOptions):this (FullOpts)
     ; ============================================================
    1 (0.14 % of base) - System.Text.Ascii:WidenAsciiToUtf16(ptr,ptr,nuint):nuint
     ; Assembly listing for method System.Text.Ascii:WidenAsciiToUtf16(ptr,ptr,nuint):nuint (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; fully interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 98 single block inlinees; 16 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T02] ( 12, 21   )    long  ->  rdi         single-def
     ;  V01 arg1         [V01,T03] ( 19, 17.50)    long  ->  rsi         single-def
     ;  V02 arg2         [V02,T08] (  9,  6.50)    long  ->  rdx         single-def
     ;  V03 loc0         [V03,T00] ( 43, 94.50)    long  ->  rax         ld-addr-op
     ;  V04 loc1         [V04,T13] (  5,  3.50)    long  ->  rdx        
     ;  V05 loc2         [V05,T01] ( 17, 33   )     int  ->   r8        
     ;  V06 loc3         [V06,T12] (  2,  4.50)    long  ->  rcx        
     ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;  V08 tmp1         [V08,T04] (  9, 18.50)    long  ->   r8         "Inline stloc first use temp"
     ;  V09 tmp2         [V09,T09] (  3,  5.50)    long  ->  rcx         "Inline stloc first use temp"
     ;  V10 tmp3         [V10,T14] (  8, 18   )  simd64  ->  mm0         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;* V11 tmp4         [V11    ] (  0,  0   )  struct (128) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[ushort],System.Runtime.Intrinsics.Vector512`1[ushort]]>
     ;* V12 tmp5         [V12    ] (  0,  0   )  simd64  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector512`1[ushort]>
     ;* V13 tmp6         [V13    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
     ;* V14 tmp7         [V14    ] (  0,  0   )  struct (128) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[ushort],System.Runtime.Intrinsics.Vector512`1[ushort]]>
     ;* V15 tmp8         [V15    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
     ;* V16 tmp9         [V16    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
     ;* V17 tmp10        [V17    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V18 tmp11        [V18    ] (  0,  0   )  simd64  ->  zero-ref    ld-addr-op "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;* V19 tmp12        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V20 tmp13        [V20    ] (  0,  0   )  struct (128) zero-ref    "Inline return value spill temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[ushort],System.Runtime.Intrinsics.Vector512`1[ushort]]>
     ;* V21 tmp14        [V21    ] (  0,  0   )  struct (128) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[ushort],System.Runtime.Intrinsics.Vector512`1[ushort]]>
     ;* V22 tmp15        [V22    ] (  0,  0   )  simd64  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector512`1[ushort]>
     ;* V23 tmp16        [V23    ] (  0,  0   )  simd64  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector512`1[ushort]>
     ;* V24 tmp17        [V24    ] (  0,  0   )  struct (128) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[ushort],System.Runtime.Intrinsics.Vector512`1[ushort]]>
     ;* V25 tmp18        [V25    ] (  0,  0   )  struct (128) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[ushort],System.Runtime.Intrinsics.Vector512`1[ushort]]>
     ;  V26 tmp19        [V26,T26] (  2,  2   )  simd64  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector512`1[ushort]>
     ;  V27 tmp20        [V27,T27] (  2,  2   )  simd64  ->  mm0         "Inlining Arg" <System.Runtime.Intrinsics.Vector512`1[ushort]>
     ;* V28 tmp21        [V28    ] (  0,  0   )  simd64  ->  zero-ref    "Inlining Arg" <System.Runtime.Intrinsics.Vector512`1[ushort]>
     ;* V29 tmp22        [V29    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V30 tmp23        [V30    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V31 tmp24        [V31    ] (  0,  0   )  simd64  ->  zero-ref    ld-addr-op "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;* V32 tmp25        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V33 tmp26        [V33    ] (  0,  0   )  struct (128) zero-ref    "Inline return value spill temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[ushort],System.Runtime.Intrinsics.Vector512`1[ushort]]>
     ;* V34 tmp27        [V34    ] (  0,  0   )  struct (128) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[ushort],System.Runtime.Intrinsics.Vector512`1[ushort]]>
     ;* V35 tmp28        [V35    ] (  0,  0   )  simd64  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector512`1[ushort]>
     ;* V36 tmp29        [V36    ] (  0,  0   )  simd64  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector512`1[ushort]>
     ;* V37 tmp30        [V37    ] (  0,  0   )  struct (128) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[ushort],System.Runtime.Intrinsics.Vector512`1[ushort]]>
     ;* V38 tmp31        [V38    ] (  0,  0   )  struct (128) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[ushort],System.Runtime.Intrinsics.Vector512`1[ushort]]>
     ;  V39 tmp32        [V39,T17] (  2, 16   )  simd64  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector512`1[ushort]>
     ;  V40 tmp33        [V40,T18] (  2, 16   )  simd64  ->  mm0         "Inlining Arg" <System.Runtime.Intrinsics.Vector512`1[ushort]>
     ;* V41 tmp34        [V41    ] (  0,  0   )  simd64  ->  zero-ref    "Inlining Arg" <System.Runtime.Intrinsics.Vector512`1[ushort]>
     ;* V42 tmp35        [V42    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;  V43 tmp36        [V43,T05] (  9, 18.50)    long  ->   r8         "Inline stloc first use temp"
     ;  V44 tmp37        [V44,T10] (  3,  5.50)    long  ->  rcx         "Inline stloc first use temp"
     ;  V45 tmp38        [V45,T15] (  8, 18   )  simd32  ->  mm0         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[byte]>
     ;* V46 tmp39        [V46    ] (  0,  0   )  struct (64) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector256`1[ushort],System.Runtime.Intrinsics.Vector256`1[ushort]]>
     ;* V47 tmp40        [V47    ] (  0,  0   )  simd32  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[ushort]>
     ;* V48 tmp41        [V48    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
     ;* V49 tmp42        [V49    ] (  0,  0   )  struct (64) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector256`1[ushort],System.Runtime.Intrinsics.Vector256`1[ushort]]>
     ;* V50 tmp43        [V50    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
     ;* V51 tmp44        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
     ;* V52 tmp45        [V52    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V53 tmp46        [V53    ] (  0,  0   )  simd32  ->  zero-ref    ld-addr-op "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[byte]>
     ;* V54 tmp47        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V55 tmp48        [V55    ] (  0,  0   )  struct (64) zero-ref    "Inline return value spill temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector256`1[ushort],System.Runtime.Intrinsics.Vector256`1[ushort]]>
     ;* V56 tmp49        [V56    ] (  0,  0   )  struct (64) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector256`1[ushort],System.Runtime.Intrinsics.Vector256`1[ushort]]>
     ;* V57 tmp50        [V57    ] (  0,  0   )  simd32  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[ushort]>
     ;* V58 tmp51        [V58    ] (  0,  0   )  simd32  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[ushort]>
     ;* V59 tmp52        [V59    ] (  0,  0   )  struct (64) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector256`1[ushort],System.Runtime.Intrinsics.Vector256`1[ushort]]>
     ;* V60 tmp53        [V60    ] (  0,  0   )  struct (64) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector256`1[ushort],System.Runtime.Intrinsics.Vector256`1[ushort]]>
     ;  V61 tmp54        [V61,T28] (  2,  2   )  simd32  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector256`1[ushort]>
     ;  V62 tmp55        [V62,T29] (  2,  2   )  simd32  ->  mm0         "Inlining Arg" <System.Runtime.Intrinsics.Vector256`1[ushort]>
     ;* V63 tmp56        [V63    ] (  0,  0   )  simd32  ->  zero-ref    "Inlining Arg" <System.Runtime.Intrinsics.Vector256`1[ushort]>
     ;* V64 tmp57        [V64    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V65 tmp58        [V65    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V66 tmp59        [V66    ] (  0,  0   )  simd32  ->  zero-ref    ld-addr-op "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[byte]>
     ;* V67 tmp60        [V67    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V68 tmp61        [V68    ] (  0,  0   )  struct (64) zero-ref    "Inline return value spill temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector256`1[ushort],System.Runtime.Intrinsics.Vector256`1[ushort]]>
     ;* V69 tmp62        [V69    ] (  0,  0   )  struct (64) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector256`1[ushort],System.Runtime.Intrinsics.Vector256`1[ushort]]>
     ;* V70 tmp63        [V70    ] (  0,  0   )  simd32  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[ushort]>
     ;* V71 tmp64        [V71    ] (  0,  0   )  simd32  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector256`1[ushort]>
     ;* V72 tmp65        [V72    ] (  0,  0   )  struct (64) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector256`1[ushort],System.Runtime.Intrinsics.Vector256`1[ushort]]>
     ;* V73 tmp66        [V73    ] (  0,  0   )  struct (64) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector256`1[ushort],System.Runtime.Intrinsics.Vector256`1[ushort]]>
     ;  V74 tmp67        [V74,T19] (  2, 16   )  simd32  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector256`1[ushort]>
     ;  V75 tmp68        [V75,T20] (  2, 16   )  simd32  ->  mm0         "Inlining Arg" <System.Runtime.Intrinsics.Vector256`1[ushort]>
     ;* V76 tmp69        [V76    ] (  0,  0   )  simd32  ->  zero-ref    "Inlining Arg" <System.Runtime.Intrinsics.Vector256`1[ushort]>
     ;* V77 tmp70        [V77    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;  V78 tmp71        [V78,T06] (  9, 18.50)    long  ->   r8         "Inline stloc first use temp"
     ;  V79 tmp72        [V79,T11] (  3,  5.50)    long  ->  rcx         "Inline stloc first use temp"
     ;  V80 tmp73        [V80,T16] (  8, 18   )  simd16  ->  mm0         "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[byte]>
     ;* V81 tmp74        [V81    ] (  0,  0   )  struct (32) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
     ;* V82 tmp75        [V82    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ushort]>
     ;* V83 tmp76        [V83    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
     ;* V84 tmp77        [V84    ] (  0,  0   )  struct (32) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
     ;* V85 tmp78        [V85    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
     ;* V86 tmp79        [V86    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
     ;* V87 tmp80        [V87    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V88 tmp81        [V88    ] (  0,  0   )  simd16  ->  zero-ref    ld-addr-op "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[byte]>
     ;* V89 tmp82        [V89    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V90 tmp83        [V90    ] (  0,  0   )  struct (32) zero-ref    "Inline return value spill temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
     ;* V91 tmp84        [V91    ] (  0,  0   )  struct (32) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
     ;* V92 tmp85        [V92    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ushort]>
     ;* V93 tmp86        [V93    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ushort]>
     ;* V94 tmp87        [V94    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
     ;* V95 tmp88        [V95    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
     ;  V96 tmp89        [V96,T30] (  2,  2   )  simd16  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
     ;  V97 tmp90        [V97,T31] (  2,  2   )  simd16  ->  mm0         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
     ;* V98 tmp91        [V98    ] (  0,  0   )  simd16  ->  zero-ref    "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
     ;* V99 tmp92        [V99    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V100 tmp93       [V100    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V101 tmp94       [V101    ] (  0,  0   )  simd16  ->  zero-ref    ld-addr-op "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[byte]>
     ;* V102 tmp95       [V102    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
     ;* V103 tmp96       [V103    ] (  0,  0   )  struct (32) zero-ref    "Inline return value spill temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
     ;* V104 tmp97       [V104    ] (  0,  0   )  struct (32) zero-ref    "dup spill" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
     ;* V105 tmp98       [V105    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ushort]>
     ;* V106 tmp99       [V106    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ushort]>
     ;* V107 tmp100      [V107    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
     ;* V108 tmp101      [V108    ] (  0,  0   )  struct (32) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]]>
     ;  V109 tmp102      [V109,T21] (  2, 16   )  simd16  ->  mm2         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
     ;  V110 tmp103      [V110,T22] (  2, 16   )  simd16  ->  mm0         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
     ;* V111 tmp104      [V111    ] (  0,  0   )  simd16  ->  zero-ref    "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[ushort]>
     ;* V112 tmp105      [V112    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
     ;* V113 tmp106      [V113    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
     ;* V114 tmp107      [V114    ] (  0,  0   )  simd16  ->  zero-ref    "Inline stloc first use temp" <System.Runtime.Intrinsics.Vector128`1[ulong]>
     ;  V115 tmp108      [V115,T07] (  2, 16   )   byref  ->   r9         "Inlining Arg"
     ;* V116 tmp109      [V116    ] (  0,  0   )  simd64  ->  zero-ref    "field V11.Item1 (fldOffset=0x0)" P-INDEP
     ;* V117 tmp110      [V117    ] (  0,  0   )  simd64  ->  zero-ref    "field V11.Item2 (fldOffset=0x40)" P-INDEP
     ;* V118 tmp111      [V118    ] (  0,  0   )  simd64  ->  zero-ref    "field V14.Item1 (fldOffset=0x0)" P-INDEP
     ;* V119 tmp112      [V119    ] (  0,  0   )  simd64  ->  zero-ref    "field V14.Item2 (fldOffset=0x40)" P-INDEP
     ;* V120 tmp113      [V120    ] (  0,  0   )  simd64  ->  zero-ref    "field V20.Item1 (fldOffset=0x0)" P-INDEP
     ;* V121 tmp114      [V121    ] (  0,  0   )  simd64  ->  zero-ref    "field V20.Item2 (fldOffset=0x40)" P-INDEP
     ;* V122 tmp115      [V122    ] (  0,  0   )  simd64  ->  zero-ref    "field V21.Item1 (fldOffset=0x0)" P-INDEP
     ;* V123 tmp116      [V123    ] (  0,  0   )  simd64  ->  zero-ref    "field V21.Item2 (fldOffset=0x40)" P-INDEP
     ;* V124 tmp117      [V124    ] (  0,  0   )  simd64  ->  zero-ref    "field V24.Item1 (fldOffset=0x0)" P-INDEP
     ;* V125 tmp118      [V125    ] (  0,  0   )  simd64  ->  zero-ref    "field V24.Item2 (fldOffset=0x40)" P-INDEP
     ;* V126 tmp119      [V126    ] (  0,  0   )  simd64  ->  zero-ref    "field V25.Item1 (fldOffset=0x0)" P-INDEP
     ;* V127 tmp120      [V127    ] (  0,  0   )  simd64  ->  zero-ref    "field V25.Item2 (fldOffset=0x40)" P-INDEP
     ;* V128 tmp121      [V128    ] (  0,  0   )  simd64  ->  zero-ref    "field V33.Item1 (fldOffset=0x0)" P-INDEP
     ;* V129 tmp122      [V129    ] (  0,  0   )  simd64  ->  zero-ref    "field V33.Item2 (fldOffset=0x40)" P-INDEP
     ;* V130 tmp123      [V130    ] (  0,  0   )  simd64  ->  zero-ref    "field V34.Item1 (fldOffset=0x0)" P-INDEP
     ;* V131 tmp124      [V131    ] (  0,  0   )  simd64  ->  zero-ref    "field V34.Item2 (fldOffset=0x40)" P-INDEP
     ;* V132 tmp125      [V132    ] (  0,  0   )  simd64  ->  zero-ref    "field V37.Item1 (fldOffset=0x0)" P-INDEP
     ;* V133 tmp126      [V133    ] (  0,  0   )  simd64  ->  zero-ref    "field V37.Item2 (fldOffset=0x40)" P-INDEP
     ;* V134 tmp127      [V134    ] (  0,  0   )  simd64  ->  zero-ref    "field V38.Item1 (fldOffset=0x0)" P-INDEP
     ;* V135 tmp128      [V135    ] (  0,  0   )  simd64  ->  zero-ref    "field V38.Item2 (fldOffset=0x40)" P-INDEP
     ;* V136 tmp129      [V136    ] (  0,  0   )  simd32  ->  zero-ref    "field V46.Item1 (fldOffset=0x0)" P-INDEP
     ;* V137 tmp130      [V137    ] (  0,  0   )  simd32  ->  zero-ref    "field V46.Item2 (fldOffset=0x20)" P-INDEP
     ;* V138 tmp131      [V138    ] (  0,  0   )  simd32  ->  zero-ref    "field V49.Item1 (fldOffset=0x0)" P-INDEP
     ;* V139 tmp132      [V139    ] (  0,  0   )  simd32  ->  zero-ref    "field V49.Item2 (fldOffset=0x20)" P-INDEP
     ;* V140 tmp133      [V140    ] (  0,  0   )  simd32  ->  zero-ref    "field V55.Item1 (fldOffset=0x0)" P-INDEP
     ;* V141 tmp134      [V141    ] (  0,  0   )  simd32  ->  zero-ref    "field V55.Item2 (fldOffset=0x20)" P-INDEP
     ;* V142 tmp135      [V142    ] (  0,  0   )  simd32  ->  zero-ref    "field V56.Item1 (fldOffset=0x0)" P-INDEP
     ;* V143 tmp136      [V143    ] (  0,  0   )  simd32  ->  zero-ref    "field V56.Item2 (fldOffset=0x20)" P-INDEP
     ;* V144 tmp137      [V144    ] (  0,  0   )  simd32  ->  zero-ref    "field V59.Item1 (fldOffset=0x0)" P-INDEP
     ;* V145 tmp138      [V145    ] (  0,  0   )  simd32  ->  zero-ref    "field V59.Item2 (fldOffset=0x20)" P-INDEP
     ;* V146 tmp139      [V146    ] (  0,  0   )  simd32  ->  zero-ref    "field V60.Item1 (fldOffset=0x0)" P-INDEP
     ;* V147 tmp140      [V147    ] (  0,  0   )  simd32  ->  zero-ref    "field V60.Item2 (fldOffset=0x20)" P-INDEP
     ;* V148 tmp141      [V148    ] (  0,  0   )  simd32  ->  zero-ref    "field V68.Item1 (fldOffset=0x0)" P-INDEP
     ;* V149 tmp142      [V149    ] (  0,  0   )  simd32  ->  zero-ref    "field V68.Item2 (fldOffset=0x20)" P-INDEP
     ;* V150 tmp143      [V150    ] (  0,  0   )  simd32  ->  zero-ref    "field V69.Item1 (fldOffset=0x0)" P-INDEP
     ;* V151 tmp144      [V151    ] (  0,  0   )  simd32  ->  zero-ref    "field V69.Item2 (fldOffset=0x20)" P-INDEP
     ;* V152 tmp145      [V152    ] (  0,  0   )  simd32  ->  zero-ref    "field V72.Item1 (fldOffset=0x0)" P-INDEP
     ;* V153 tmp146      [V153    ] (  0,  0   )  simd32  ->  zero-ref    "field V72.Item2 (fldOffset=0x20)" P-INDEP
     ;* V154 tmp147      [V154    ] (  0,  0   )  simd32  ->  zero-ref    "field V73.Item1 (fldOffset=0x0)" P-INDEP
     ;* V155 tmp148      [V155    ] (  0,  0   )  simd32  ->  zero-ref    "field V73.Item2 (fldOffset=0x20)" P-INDEP
     ;* V156 tmp149      [V156    ] (  0,  0   )  simd16  ->  zero-ref    "field V81.Item1 (fldOffset=0x0)" P-INDEP
     ;* V157 tmp150      [V157    ] (  0,  0   )  simd16  ->  zero-ref    "field V81.Item2 (fldOffset=0x10)" P-INDEP
     ;* V158 tmp151      [V158    ] (  0,  0   )  simd16  ->  zero-ref    "field V84.Item1 (fldOffset=0x0)" P-INDEP
     ;* V159 tmp152      [V159    ] (  0,  0   )  simd16  ->  zero-ref    "field V84.Item2 (fldOffset=0x10)" P-INDEP
     ;* V160 tmp153      [V160    ] (  0,  0   )  simd16  ->  zero-ref    "field V90.Item1 (fldOffset=0x0)" P-INDEP
     ;* V161 tmp154      [V161    ] (  0,  0   )  simd16  ->  zero-ref    "field V90.Item2 (fldOffset=0x10)" P-INDEP
     ;* V162 tmp155      [V162    ] (  0,  0   )  simd16  ->  zero-ref    "field V91.Item1 (fldOffset=0x0)" P-INDEP
     ;* V163 tmp156      [V163    ] (  0,  0   )  simd16  ->  zero-ref    "field V91.Item2 (fldOffset=0x10)" P-INDEP
     ;* V164 tmp157      [V164    ] (  0,  0   )  simd16  ->  zero-ref    "field V94.Item1 (fldOffset=0x0)" P-INDEP
     ;* V165 tmp158      [V165    ] (  0,  0   )  simd16  ->  zero-ref    "field V94.Item2 (fldOffset=0x10)" P-INDEP
     ;* V166 tmp159      [V166    ] (  0,  0   )  simd16  ->  zero-ref    "field V95.Item1 (fldOffset=0x0)" P-INDEP
     ;* V167 tmp160      [V167    ] (  0,  0   )  simd16  ->  zero-ref    "field V95.Item2 (fldOffset=0x10)" P-INDEP
     ;* V168 tmp161      [V168    ] (  0,  0   )  simd16  ->  zero-ref    "field V103.Item1 (fldOffset=0x0)" P-INDEP
     ;* V169 tmp162      [V169    ] (  0,  0   )  simd16  ->  zero-ref    "field V103.Item2 (fldOffset=0x10)" P-INDEP
     ;* V170 tmp163      [V170    ] (  0,  0   )  simd16  ->  zero-ref    "field V104.Item1 (fldOffset=0x0)" P-INDEP
     ;* V171 tmp164      [V171    ] (  0,  0   )  simd16  ->  zero-ref    "field V104.Item2 (fldOffset=0x10)" P-INDEP
     ;* V172 tmp165      [V172    ] (  0,  0   )  simd16  ->  zero-ref    "field V107.Item1 (fldOffset=0x0)" P-INDEP
     ;* V173 tmp166      [V173    ] (  0,  0   )  simd16  ->  zero-ref    "field V107.Item2 (fldOffset=0x10)" P-INDEP
     ;* V174 tmp167      [V174    ] (  0,  0   )  simd16  ->  zero-ref    "field V108.Item1 (fldOffset=0x0)" P-INDEP
     ;* V175 tmp168      [V175    ] (  0,  0   )  simd16  ->  zero-ref    "field V108.Item2 (fldOffset=0x10)" P-INDEP
     ;  V176 cse0        [V176,T23] (  3,  5   )  simd64  ->  mm1         "CSE #01: moderate"
     ;  V177 cse1        [V177,T24] (  3,  5   )  simd32  ->  mm1         "CSE #02: moderate"
     ;  V178 cse2        [V178,T25] (  3,  5   )  simd16  ->  mm1         "CSE #03: moderate"
     ;
     ; Lcl frame size = 0
     
     G_M35753_IG01:
            push     rbp
            mov      rbp, rsp
     						;; size=4 bbWeight=1 PerfScore 1.25
     G_M35753_IG02:
            xor      eax, eax
            cmp      rdx, 16
            jb       G_M35753_IG15
     						;; size=12 bbWeight=1 PerfScore 1.50
     G_M35753_IG03:
            cmp      rdx, 64
            jae      G_M35753_IG11
            cmp      rdx, 32
            jae      G_M35753_IG07
            lea      rcx, [rdx-0x10]
            vmovups  xmm0, xmmword ptr [rdi]
            vbroadcastss xmm1, dword ptr [reloc @RWD00]
            vptest   xmm1, xmm0
            jne      G_M35753_IG15
            vpmovzxbw xmm2, xmm0
            vpsrldq  xmm0, xmm0, 8
            vpmovzxbw xmm0, xmm0
            vmovups  xmmword ptr [rsi], xmm2
            vmovups  xmmword ptr [rsi+0x10], xmm0
            lea      r8, [rsi+0x20]
            test     r8b, 1
            je       SHORT G_M35753_IG04
            mov      eax, 16
            jmp      SHORT G_M35753_IG05
            align    [1 bytes for IG06]
     						;; size=90 bbWeight=0.50 PerfScore 10.00
     G_M35753_IG04:
            and      r8, -16
            mov      rax, r8
            sub      rax, rsi
            shr      rax, 1
     						;; size=13 bbWeight=0.50 PerfScore 0.62
     G_M35753_IG05:
            cmp      rax, rcx
            ja       G_M35753_IG15
     						;; size=9 bbWeight=1 PerfScore 1.25
     G_M35753_IG06:
            vmovups  xmm0, xmmword ptr [rdi+rax]
            vptest   xmm1, xmm0
            jne      G_M35753_IG15
            vpmovzxbw xmm2, xmm0
            vpsrldq  xmm0, xmm0, 8
            vpmovzxbw xmm0, xmm0
            vmovups  xmmword ptr [r8], xmm2
            vmovups  xmmword ptr [r8+0x10], xmm0
            add      rax, 16
            add      r8, 32
            cmp      rax, rcx
            jbe      SHORT G_M35753_IG06
            jmp      G_M35753_IG15
     						;; size=60 bbWeight=4 PerfScore 59.00
     G_M35753_IG07:
            lea      rcx, [rdx-0x20]
            vmovups  ymm0, ymmword ptr [rdi]
            vbroadcastss ymm1, dword ptr [reloc @RWD00]
            vptest   ymm1, ymm0
            jne      G_M35753_IG15
    -       vmovaps  xmm2, xmm0
    -       vpmovzxbw ymm2, xmm2
    +       vpmovzxbw ymm2, xmm0
            vextracti128 xmm0, ymm0
            vpmovzxbw ymm0, xmm0
            vmovups  ymmword ptr [rsi], ymm2
            vmovups  ymmword ptr [rsi+0x20], ymm0
            lea      r8, [rsi+0x40]
            test     r8b, 1
            je       SHORT G_M35753_IG08
            mov      eax, 32
            jmp      SHORT G_M35753_IG09
    -       align    [0 bytes for IG10]
    -						;; size=74 bbWeight=0.50 PerfScore 13.38
    +       align    [8 bytes for IG10]
    +						;; size=78 bbWeight=0.50 PerfScore 13.25
     G_M35753_IG08:
            and      r8, -32
            mov      rax, r8
            sub      rax, rsi
            shr      rax, 1
     						;; size=13 bbWeight=0.50 PerfScore 0.62
     G_M35753_IG09:
            cmp      rax, rcx
            ja       G_M35753_IG15
     						;; size=9 bbWeight=1 PerfScore 1.25
     G_M35753_IG10:
            vmovups  ymm0, ymmword ptr [rdi+rax]
            vptest   ymm1, ymm0
            jne      G_M35753_IG15
    -       vmovaps  xmm2, xmm0
    -       vpmovzxbw ymm2, xmm2
    +       vpmovzxbw ymm2, xmm0
            vextracti128 xmm0, ymm0
            vpmovzxbw ymm0, xmm0
            vmovups  ymmword ptr [r8], ymm2
            vmovups  ymmword ptr [r8+0x20], ymm0
            add      rax, 32
            add      r8, 64
            cmp      rax, rcx
            jbe      SHORT G_M35753_IG10
            jmp      G_M35753_IG15
    -						;; size=65 bbWeight=4 PerfScore 84.00
    +						;; size=61 bbWeight=4 PerfScore 83.00
     G_M35753_IG11:
            lea      rcx, [rdx-0x40]
            vmovups  zmm0, zmmword ptr [rdi]
            vbroadcastss zmm1, dword ptr [reloc @RWD00]
            vptestmd k1, zmm0, zmm1
            kortestw k1, k1
    +		  ;; NOP compensation instructions of 2 bytes.
            jne      G_M35753_IG15
    -       vmovaps  ymm2, ymm0
    -       vpmovzxbw zmm2, ymm2
    +       vpmovzxbw zmm2, ymm0
            vextracti32x8 ymm0, zmm0, 1
            vpmovzxbw zmm0, ymm0
            vmovups  zmmword ptr [rsi], zmm2
            vmovups  zmmword ptr [rsi+0x40], zmm0
            lea      r8, [rsi+0x80]
            test     r8b, 1
            je       SHORT G_M35753_IG12
            mov      eax, 64
            jmp      SHORT G_M35753_IG13
            align    [0 bytes for IG14]
    -						;; size=92 bbWeight=0.50 PerfScore 14.88
    +						;; size=90 bbWeight=0.50 PerfScore 14.75
     G_M35753_IG12:
            and      r8, -64
            mov      rax, r8
            sub      rax, rsi
            shr      rax, 1
     						;; size=13 bbWeight=0.50 PerfScore 0.62
     G_M35753_IG13:
            cmp      rax, rcx
            ja       SHORT G_M35753_IG15
     						;; size=5 bbWeight=1 PerfScore 1.25
     G_M35753_IG14:
            vmovups  zmm0, zmmword ptr [rdi+rax]
            vptestmd k1, zmm0, zmm1
            kortestw k1, k1
    +		  ;; NOP compensation instructions of 2 bytes.
            jne      SHORT G_M35753_IG15
    -       vmovaps  ymm2, ymm0
    -       vpmovzxbw zmm2, ymm2
    +       vpmovzxbw zmm2, ymm0
            vextracti32x8 ymm0, zmm0, 1
            vpmovzxbw zmm0, ymm0
            vmovups  zmmword ptr [r8], zmm2
            vmovups  zmmword ptr [r8+0x40], zmm0
            add      rax, 64
            add      r8, 128
            cmp      rax, rcx
            jbe      SHORT G_M35753_IG14
    -						;; size=71 bbWeight=4 PerfScore 84.00
    +						;; size=69 bbWeight=4 PerfScore 83.00
     G_M35753_IG15:
            sub      rdx, rax
            cmp      rdx, 4
            jb       SHORT G_M35753_IG21
    -						;; size=9 bbWeight=1 PerfScore 1.50
    +		  ;; NOP compensation instructions of 4 bytes.
    +						;; size=13 bbWeight=1 PerfScore 1.50
     G_M35753_IG16:
            lea      rcx, [rax+rdx-0x04]
            mov      r8d, dword ptr [rdi+rax]
            test     r8d, 0xD1FFAB1E
            jne      SHORT G_M35753_IG18
            align    [0 bytes for IG17]
     						;; size=18 bbWeight=0.50 PerfScore 2.12
     G_M35753_IG17:
            lea      r9, [rsi+2*rax]
            vmovd    xmm0, r8d
            vpmovzxbw xmm0, xmm0
            vmovq    qword ptr [r9], xmm0
            add      rax, 4
            cmp      rax, rcx
            ja       SHORT G_M35753_IG21
            mov      r8d, dword ptr [rdi+rax]
            test     r8d, 0xD1FFAB1E
            je       SHORT G_M35753_IG17
     						;; size=41 bbWeight=4 PerfScore 45.00
     G_M35753_IG18:
            movzx    rcx, r8b
            test     cl, 128
            jne      SHORT G_M35753_IG20
    -       align    [0 bytes for IG19]
    -						;; size=9 bbWeight=0.50 PerfScore 0.75
    +       align    [1 bytes for IG19]
    +						;; size=10 bbWeight=0.50 PerfScore 0.88
     G_M35753_IG19:
            movzx    rcx, r8b
            mov      word  ptr [rsi+2*rax], cx
            inc      rax
            shr      r8d, 8
            movzx    rcx, r8b
            test     cl, 128
            je       SHORT G_M35753_IG19
     						;; size=24 bbWeight=4 PerfScore 14.00
     G_M35753_IG20:
            vzeroupper 
            pop      rbp
            ret      
     						;; size=5 bbWeight=1 PerfScore 2.50
     G_M35753_IG21:
            test     dl, 2
            je       SHORT G_M35753_IG22
            movzx    r8, word  ptr [rdi+rax]
            test     r8d, 0xD1FFAB1E
            jne      SHORT G_M35753_IG18
            movzx    rcx, r8b
            mov      word  ptr [rsi+2*rax], cx
            shr      r8d, 8
            mov      word  ptr [rsi+2*rax+0x02], r8w
            add      rax, 2
     						;; size=41 bbWeight=0.50 PerfScore 3.75
     G_M35753_IG22:
            test     dl, 1
            je       SHORT G_M35753_IG20
            movzx    r8, byte  ptr [rdi+rax]
            test     r8b, 128
            jne      SHORT G_M35753_IG20
            mov      word  ptr [rsi+2*rax], r8w
            inc      rax
            jmp      SHORT G_M35753_IG20
     						;; size=26 bbWeight=0.50 PerfScore 3.88
     RWD00  	dd	80808080h		; -1.1801e-38
     
     
    -; Total bytes of code 703, prolog size 4, PerfScore 347.12, instruction count 169, allocated bytes for code 711 (MethodHash=7f1b7456) for method System.Text.Ascii:WidenAsciiToUtf16(ptr,ptr,nuint):nuint (FullOpts)
    +; Total bytes of code 704, prolog size 4, PerfScore 345.00, instruction count 165, allocated bytes for code 704 (MethodHash=7f1b7456) for method System.Text.Ascii:WidenAsciiToUtf16(ptr,ptr,nuint):nuint (FullOpts)
     ; ============================================================
  2. MihuBot commented on Jul 11, 2026

    @MihuBot
    OwnerAuthor

    Top method improvements

    -53 (-7.37 % of base) - System.Numerics.Tensors.TensorPrimitives+DivRemOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]]
     ; Assembly listing for method System.Numerics.Tensors.TensorPrimitives+DivRemOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]] (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 RetBuf       [V00,T00] (  5,  5   )    long  ->  rdi         single-def
     ;  V01 arg0         [V01,T16] (  3,  3   )  simd64  ->  mm1         single-def <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;  V02 arg1         [V02,T13] (  4,  4   )  simd64  ->  mm0         single-def <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;  V03 loc0         [V03,T14] (  4,  4   )  simd64  ->  mm2         single-def <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;  V05 tmp1         [V05,T01] (  3,  6   )  simd32  ->  mm2         "fgMakeTemp is creating a new local variable"
    -;  V06 tmp2         [V06,T02] (  3,  6   )  simd32  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V06 tmp2         [V06,T02] (  3,  6   )  simd32  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V07 tmp3         [V07,T03] (  3,  6   )  simd64  ->  mm3         "fgMakeTemp is creating a new local variable"
    -;  V08 tmp4         [V08,T04] (  3,  6   )  simd64  ->  mm6         "fgMakeTemp is creating a new local variable"
    +;  V08 tmp4         [V08,T04] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
     ;  V09 tmp5         [V09,T05] (  3,  6   )  simd64  ->  mm2         "fgMakeTemp is creating a new local variable"
    -;  V10 tmp6         [V10,T06] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V10 tmp6         [V10,T06] (  3,  6   )  simd64  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V11 tmp7         [V11,T07] (  3,  6   )  simd32  ->  mm3         "fgMakeTemp is creating a new local variable"
    -;  V12 tmp8         [V12,T08] (  3,  6   )  simd32  ->  mm6         "fgMakeTemp is creating a new local variable"
    +;  V12 tmp8         [V12,T08] (  3,  6   )  simd32  ->  mm5         "fgMakeTemp is creating a new local variable"
     ;  V13 tmp9         [V13,T09] (  3,  6   )  simd64  ->  mm4         "fgMakeTemp is creating a new local variable"
    -;  V14 tmp10        [V14,T10] (  3,  6   )  simd64  ->  mm7         "fgMakeTemp is creating a new local variable"
    +;  V14 tmp10        [V14,T10] (  3,  6   )  simd64  ->  mm6         "fgMakeTemp is creating a new local variable"
     ;  V15 tmp11        [V15,T11] (  3,  6   )  simd64  ->  mm3         "fgMakeTemp is creating a new local variable"
    -;  V16 tmp12        [V16,T12] (  3,  6   )  simd64  ->  mm6         "fgMakeTemp is creating a new local variable"
    +;  V16 tmp12        [V16,T12] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
     ;* V17 tmp13        [V17    ] (  0,  0   )  struct (128) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]]>
     ;  V18 tmp14        [V18,T15] (  2,  4   )  simd64  ->  mm0         "Inlining Arg" <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;* V19 tmp15        [V19    ] (  0,  0   )  simd64  ->  zero-ref    single-def "field V17.Item1 (fldOffset=0x0)" P-INDEP
     ;* V20 tmp16        [V20    ] (  0,  0   )  simd64  ->  zero-ref    single-def "field V17.Item2 (fldOffset=0x40)" P-INDEP
     ;
     ; Lcl frame size = 8
     
     G_M58530_IG01:
            push     rax
            vmovups  zmm1, zmmword ptr [rsp+0x10]
            vmovups  zmm0, zmmword ptr [rsp+0x50]
     						;; size=23 bbWeight=1 PerfScore 7.00
     G_M58530_IG02:
            vmovaps  ymm2, ymm1
    -       vmovaps  xmm3, xmm2
    -       vpmovzxbd zmm3, xmm3
    -       vmovaps  ymm4, ymm3
    -       vmovaps  ymm5, ymm0
    -       vmovaps  xmm6, xmm5
    -       vpmovzxbd zmm6, xmm6
    -       vmovaps  ymm7, ymm6
    -       vxorpd   ymm8, ymm8, ymm8
    -       vpcmpeqd ymm8, ymm8, ymm7
    -       vptest   ymm8, ymm8
    +       vpmovzxbd zmm3, xmm2
    +       vmovaps  ymm4, ymm0
    +       vpmovzxbd zmm5, xmm4
    +       vxorpd   ymm6, ymm6, ymm6
    +       vpcmpeqd ymm6, ymm6, ymm5
    +       vptest   ymm6, ymm6
            jne      G_M58530_IG05
    -       vcvtudq2pd zmm8, ymm4
    -       vcvtudq2pd zmm9, ymm7
    -       vdivpd   zmm4, zmm8, zmm9
    -       vcvttpd2udq ymm4, zmm4
    +       vcvtudq2pd zmm6, ymm3
    +       vcvtudq2pd zmm7, ymm5
    +       vdivpd   zmm8, zmm6, zmm7
    +       vcvttpd2udq ymm8, zmm8
            vextracti32x8 ymm3, zmm3, 1
    -       vextracti32x8 ymm6, zmm6, 1
    -       vxorpd   ymm7, ymm7, ymm7
    -       vpcmpeqd ymm7, ymm7, ymm6
    -       vptest   ymm7, ymm7
    +       vextracti32x8 ymm5, zmm5, 1
    +       vxorpd   ymm6, ymm6, ymm6
    +       vpcmpeqd ymm6, ymm6, ymm5
    +       vptest   ymm6, ymm6
            jne      G_M58530_IG05
    -       vcvtudq2pd zmm7, ymm3
    -       vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm3, zmm7, zmm8
    +       vcvtudq2pd zmm6, ymm3
    +       vcvtudq2pd zmm7, ymm5
    +       vdivpd   zmm3, zmm6, zmm7
            vcvttpd2udq ymm3, zmm3
    -       vinserti32x8 zmm3, zmm4, ymm3, 1
    +       vinserti32x8 zmm3, zmm8, ymm3, 1
            vpmovdb  xmm3, zmm3
            vextracti128 xmm2, ymm2
            vpmovzxbd zmm2, xmm2
    -       vmovaps  ymm4, ymm2
    -       vextracti128 xmm5, ymm5
    -       vpmovzxbd zmm5, xmm5
    -       vmovaps  ymm6, ymm5
    +       vextracti128 xmm4, ymm4
    +       vpmovzxbd zmm4, xmm4
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +       jne      G_M58530_IG05
    +       vcvtudq2pd zmm5, ymm2
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm7, zmm5, zmm6
    +       vcvttpd2udq ymm7, zmm7
    +       vextracti32x8 ymm2, zmm2, 1
    +       vextracti32x8 ymm4, zmm4, 1
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +       jne      G_M58530_IG05
    +       vcvtudq2pd zmm5, ymm2
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm2, zmm5, zmm6
    +       vcvttpd2udq ymm2, zmm2
    +       vinserti32x8 zmm2, zmm7, ymm2, 1
    +       vpmovdb  xmm2, zmm2
    +       vinserti128 ymm2, ymm3, xmm2
    +       vextracti32x8 ymm3, zmm1, 1
    +       vpmovzxbd zmm4, xmm3
    +       vextracti32x8 ymm5, zmm0, 1
    +       vpmovzxbd zmm6, xmm5
            vxorpd   ymm7, ymm7, ymm7
            vpcmpeqd ymm7, ymm7, ymm6
            vptest   ymm7, ymm7
            jne      G_M58530_IG05
            vcvtudq2pd zmm7, ymm4
            vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm4, zmm7, zmm8
    -       vcvttpd2udq ymm4, zmm4
    -       vextracti32x8 ymm2, zmm2, 1
    -       vextracti32x8 ymm5, zmm5, 1
    -       vxorpd   ymm6, ymm6, ymm6
    -       vpcmpeqd ymm6, ymm6, ymm5
    -       vptest   ymm6, ymm6
    -       jne      G_M58530_IG05
    -       vcvtudq2pd zmm6, ymm2
    -       vcvtudq2pd zmm7, ymm5
    -       vdivpd   zmm2, zmm6, zmm7
    -       vcvttpd2udq ymm2, zmm2
    -       vinserti32x8 zmm2, zmm4, ymm2, 1
    -       vpmovdb  xmm2, zmm2
    -       vinserti128 ymm2, ymm3, xmm2
    -       vextracti32x8 ymm3, zmm1, 1
    -       vmovaps  xmm4, xmm3
    -       vpmovzxbd zmm4, xmm4
    -       vmovaps  ymm5, ymm4
    -       vextracti32x8 ymm6, zmm0, 1
    -       vmovaps  xmm7, xmm6
    -       vpmovzxbd zmm7, xmm7
    -       vmovaps  ymm8, ymm7
    -       vxorpd   ymm9, ymm9, ymm9
    -       vpcmpeqd ymm9, ymm9, ymm8
    -       vptest   ymm9, ymm9
    -       jne      G_M58530_IG05
    -						;; size=364 bbWeight=1 PerfScore 237.17
    -G_M58530_IG03:
    -       vcvtudq2pd zmm9, ymm5
    -       vcvtudq2pd zmm10, ymm8
    -       vdivpd   zmm5, zmm9, zmm10
    -       vcvttpd2udq ymm5, zmm5
    +       vdivpd   zmm9, zmm7, zmm8
    +       vcvttpd2udq ymm9, zmm9
            vextracti32x8 ymm4, zmm4, 1
    -       vextracti32x8 ymm7, zmm7, 1
    -       vxorpd   ymm8, ymm8, ymm8
    -       vpcmpeqd ymm8, ymm8, ymm7
    -       vptest   ymm8, ymm8
    -       jne      G_M58530_IG05
    -       vcvtudq2pd zmm8, ymm4
    -       vcvtudq2pd zmm9, ymm7
    -       vdivpd   zmm4, zmm8, zmm9
    -       vcvttpd2udq ymm4, zmm4
    -       vinserti32x8 zmm4, zmm5, ymm4, 1
    -       vpmovdb  xmm4, zmm4
    -       vextracti128 xmm3, ymm3
    -       vpmovzxbd zmm3, xmm3
    -       vmovaps  ymm5, ymm3
    -       vextracti128 xmm6, ymm6
    -       vpmovzxbd zmm6, xmm6
    -       vmovaps  ymm7, ymm6
    -       vxorpd   ymm8, ymm8, ymm8
    -       vpcmpeqd ymm8, ymm8, ymm7
    -       vptest   ymm8, ymm8
    -       jne      G_M58530_IG05
    -       vcvtudq2pd zmm8, ymm5
    -       vcvtudq2pd zmm9, ymm7
    -       vdivpd   zmm5, zmm8, zmm9
    -       vcvttpd2udq ymm5, zmm5
    -       vextracti32x8 ymm3, zmm3, 1
            vextracti32x8 ymm6, zmm6, 1
            vxorpd   ymm7, ymm7, ymm7
            vpcmpeqd ymm7, ymm7, ymm6
            vptest   ymm7, ymm7
    -       jne      SHORT G_M58530_IG05
    -       vcvtudq2pd zmm7, ymm3
    +						;; size=372 bbWeight=1 PerfScore 284.50
    +G_M58530_IG03:
    +       jne      G_M58530_IG05
    +       vcvtudq2pd zmm7, ymm4
            vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm3, zmm7, zmm8
    +       vdivpd   zmm4, zmm7, zmm8
    +       vcvttpd2udq ymm4, zmm4
    +       vinserti32x8 zmm4, zmm9, ymm4, 1
    +       vpmovdb  xmm4, zmm4
    +       vextracti128 xmm3, ymm3
    +       vpmovzxbd zmm3, xmm3
    +       vextracti128 xmm5, ymm5
    +       vpmovzxbd zmm5, xmm5
    +       vxorpd   ymm6, ymm6, ymm6
    +       vpcmpeqd ymm6, ymm6, ymm5
    +       vptest   ymm6, ymm6
    +       jne      G_M58530_IG05
    +       vcvtudq2pd zmm6, ymm3
    +       vcvtudq2pd zmm7, ymm5
    +       vdivpd   zmm8, zmm6, zmm7
    +       vcvttpd2udq ymm8, zmm8
    +       vextracti32x8 ymm3, zmm3, 1
    +       vextracti32x8 ymm5, zmm5, 1
    +       vxorpd   ymm6, ymm6, ymm6
    +       vpcmpeqd ymm6, ymm6, ymm5
    +       vptest   ymm6, ymm6
    +       jne      SHORT G_M58530_IG05
    +       vcvtudq2pd zmm6, ymm3
    +       vcvtudq2pd zmm7, ymm5
    +       vdivpd   zmm3, zmm6, zmm7
            vcvttpd2udq ymm3, zmm3
    -       vinserti32x8 zmm3, zmm5, ymm3, 1
    +       vinserti32x8 zmm3, zmm8, ymm3, 1
            vpmovdb  xmm3, zmm3
            vinserti128 ymm3, ymm4, xmm3
            vinserti32x8 zmm2, zmm2, ymm3, 1
            vpmullw  zmm3, zmm2, zmm0
            vpsrlw   zmm4, zmm2, 8
            vpandd   zmm0, zmm0, dword ptr [reloc @RWD32] {1to16}
            vpmullw  zmm0, zmm0, zmm4
            vpternlogd zmm0, zmm3, dword ptr [reloc @RWD36] {1to16}, -8
            vpsubb   zmm0, zmm1, zmm0
            vmovups  zmmword ptr [rdi], zmm2
            vmovups  zmmword ptr [rdi+0x40], zmm0
            mov      rax, rdi
    -						;; size=312 bbWeight=1 PerfScore 234.58
    +						;; size=251 bbWeight=1 PerfScore 184.25
     G_M58530_IG04:
            vzeroupper 
            add      rsp, 8
            ret      
     						;; size=8 bbWeight=1 PerfScore 2.25
     G_M58530_IG05:
            call     CORINFO_HELP_THROWDIVZERO
            int3     
     						;; size=6 bbWeight=0 PerfScore 0.00
     G_M58530_IG06:
            call     CORINFO_HELP_OVERFLOW
            int3     
     						;; size=6 bbWeight=0 PerfScore 0.00
     RWD00  	dq	FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh
     RWD32  	dd	FF00FF00h
     RWD36  	dd	00FF00FFh
     
     
    -; Total bytes of code 719, prolog size 1, PerfScore 481.00, instruction count 130, allocated bytes for code 719 (MethodHash=3f721b5d) for method System.Numerics.Tensors.TensorPrimitives+DivRemOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]] (FullOpts)
    +; Total bytes of code 666, prolog size 1, PerfScore 478.00, instruction count 118, allocated bytes for code 666 (MethodHash=3f721b5d) for method System.Numerics.Tensors.TensorPrimitives+DivRemOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.ValueTuple`2[System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]] (FullOpts)
     ; ============================================================
    -53 (-7.46 % of base) - System.Numerics.Tensors.TensorPrimitives+RemainderOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte]
     ; Assembly listing for method System.Numerics.Tensors.TensorPrimitives+RemainderOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rbp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 RetBuf       [V00,T00] (  4,  4   )    long  ->  rdi         single-def
     ;  V01 arg0         [V01,T15] (  3,  3   )  simd64  ->  mm1         single-def <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;  V02 arg1         [V02,T14] (  4,  4   )  simd64  ->  mm0         single-def <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;  V04 tmp1         [V04,T01] (  3,  6   )  simd32  ->  mm2         "fgMakeTemp is creating a new local variable"
    -;  V05 tmp2         [V05,T02] (  3,  6   )  simd32  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V05 tmp2         [V05,T02] (  3,  6   )  simd32  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V06 tmp3         [V06,T03] (  3,  6   )  simd64  ->  mm3         "fgMakeTemp is creating a new local variable"
    -;  V07 tmp4         [V07,T04] (  3,  6   )  simd64  ->  mm6         "fgMakeTemp is creating a new local variable"
    +;  V07 tmp4         [V07,T04] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
     ;  V08 tmp5         [V08,T05] (  3,  6   )  simd64  ->  mm2         "fgMakeTemp is creating a new local variable"
    -;  V09 tmp6         [V09,T06] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V09 tmp6         [V09,T06] (  3,  6   )  simd64  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V10 tmp7         [V10,T07] (  3,  6   )  simd32  ->  mm3         "fgMakeTemp is creating a new local variable"
    -;  V11 tmp8         [V11,T08] (  3,  6   )  simd32  ->  mm6         "fgMakeTemp is creating a new local variable"
    +;  V11 tmp8         [V11,T08] (  3,  6   )  simd32  ->  mm5         "fgMakeTemp is creating a new local variable"
     ;  V12 tmp9         [V12,T09] (  3,  6   )  simd64  ->  mm4         "fgMakeTemp is creating a new local variable"
    -;  V13 tmp10        [V13,T10] (  3,  6   )  simd64  ->  mm7         "fgMakeTemp is creating a new local variable"
    +;  V13 tmp10        [V13,T10] (  3,  6   )  simd64  ->  mm6         "fgMakeTemp is creating a new local variable"
     ;  V14 tmp11        [V14,T11] (  3,  6   )  simd64  ->  mm3         "fgMakeTemp is creating a new local variable"
    -;  V15 tmp12        [V15,T12] (  3,  6   )  simd64  ->  mm6         "fgMakeTemp is creating a new local variable"
    +;  V15 tmp12        [V15,T12] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
     ;  V16 tmp13        [V16,T13] (  3,  6   )  simd64  ->  mm2         "fgMakeTemp is creating a new local variable"
     ;
     ; Lcl frame size = 0
     
     G_M6629_IG01:
            push     rbp
            mov      rbp, rsp
            vmovups  zmm1, zmmword ptr [rbp+0x10]
            vmovups  zmm0, zmmword ptr [rbp+0x50]
     						;; size=24 bbWeight=1 PerfScore 7.25
     G_M6629_IG02:
            vmovaps  ymm2, ymm1
    -       vmovaps  xmm3, xmm2
    -       vpmovzxbd zmm3, xmm3
    -       vmovaps  ymm4, ymm3
    -       vmovaps  ymm5, ymm0
    -       vmovaps  xmm6, xmm5
    -       vpmovzxbd zmm6, xmm6
    -       vmovaps  ymm7, ymm6
    -       vxorpd   ymm8, ymm8, ymm8
    -       vpcmpeqd ymm8, ymm8, ymm7
    -       vptest   ymm8, ymm8
    +       vpmovzxbd zmm3, xmm2
    +       vmovaps  ymm4, ymm0
    +       vpmovzxbd zmm5, xmm4
    +       vxorpd   ymm6, ymm6, ymm6
    +       vpcmpeqd ymm6, ymm6, ymm5
    +       vptest   ymm6, ymm6
            jne      G_M6629_IG05
    -       vcvtudq2pd zmm8, ymm4
    -       vcvtudq2pd zmm9, ymm7
    -       vdivpd   zmm4, zmm8, zmm9
    -       vcvttpd2udq ymm4, zmm4
    +       vcvtudq2pd zmm6, ymm3
    +       vcvtudq2pd zmm7, ymm5
    +       vdivpd   zmm8, zmm6, zmm7
    +       vcvttpd2udq ymm8, zmm8
            vextracti32x8 ymm3, zmm3, 1
    -       vextracti32x8 ymm6, zmm6, 1
    -       vxorpd   ymm7, ymm7, ymm7
    -       vpcmpeqd ymm7, ymm7, ymm6
    -       vptest   ymm7, ymm7
    +       vextracti32x8 ymm5, zmm5, 1
    +       vxorpd   ymm6, ymm6, ymm6
    +       vpcmpeqd ymm6, ymm6, ymm5
    +       vptest   ymm6, ymm6
            jne      G_M6629_IG05
    -       vcvtudq2pd zmm7, ymm3
    -       vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm3, zmm7, zmm8
    +       vcvtudq2pd zmm6, ymm3
    +       vcvtudq2pd zmm7, ymm5
    +       vdivpd   zmm3, zmm6, zmm7
            vcvttpd2udq ymm3, zmm3
    -       vinserti32x8 zmm3, zmm4, ymm3, 1
    +       vinserti32x8 zmm3, zmm8, ymm3, 1
            vpmovdb  xmm3, zmm3
            vextracti128 xmm2, ymm2
            vpmovzxbd zmm2, xmm2
    -       vmovaps  ymm4, ymm2
    -       vextracti128 xmm5, ymm5
    -       vpmovzxbd zmm5, xmm5
    -       vmovaps  ymm6, ymm5
    +       vextracti128 xmm4, ymm4
    +       vpmovzxbd zmm4, xmm4
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +       jne      G_M6629_IG05
    +       vcvtudq2pd zmm5, ymm2
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm7, zmm5, zmm6
    +       vcvttpd2udq ymm7, zmm7
    +       vextracti32x8 ymm2, zmm2, 1
    +       vextracti32x8 ymm4, zmm4, 1
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +       jne      G_M6629_IG05
    +       vcvtudq2pd zmm5, ymm2
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm2, zmm5, zmm6
    +       vcvttpd2udq ymm2, zmm2
    +       vinserti32x8 zmm2, zmm7, ymm2, 1
    +       vpmovdb  xmm2, zmm2
    +       vinserti128 ymm2, ymm3, xmm2
    +       vextracti32x8 ymm3, zmm1, 1
    +       vpmovzxbd zmm4, xmm3
    +       vextracti32x8 ymm5, zmm0, 1
    +       vpmovzxbd zmm6, xmm5
            vxorpd   ymm7, ymm7, ymm7
            vpcmpeqd ymm7, ymm7, ymm6
            vptest   ymm7, ymm7
            jne      G_M6629_IG05
            vcvtudq2pd zmm7, ymm4
            vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm4, zmm7, zmm8
    -       vcvttpd2udq ymm4, zmm4
    -       vextracti32x8 ymm2, zmm2, 1
    -       vextracti32x8 ymm5, zmm5, 1
    -       vxorpd   ymm6, ymm6, ymm6
    -       vpcmpeqd ymm6, ymm6, ymm5
    -       vptest   ymm6, ymm6
    -       jne      G_M6629_IG05
    -       vcvtudq2pd zmm6, ymm2
    -       vcvtudq2pd zmm7, ymm5
    -       vdivpd   zmm2, zmm6, zmm7
    -       vcvttpd2udq ymm2, zmm2
    -       vinserti32x8 zmm2, zmm4, ymm2, 1
    -       vpmovdb  xmm2, zmm2
    -       vinserti128 ymm2, ymm3, xmm2
    -       vextracti32x8 ymm3, zmm1, 1
    -       vmovaps  xmm4, xmm3
    -       vpmovzxbd zmm4, xmm4
    -       vmovaps  ymm5, ymm4
    -       vextracti32x8 ymm6, zmm0, 1
    -       vmovaps  xmm7, xmm6
    -       vpmovzxbd zmm7, xmm7
    -       vmovaps  ymm8, ymm7
    -       vxorpd   ymm9, ymm9, ymm9
    -       vpcmpeqd ymm9, ymm9, ymm8
    -       vptest   ymm9, ymm9
    -       jne      G_M6629_IG05
    -						;; size=364 bbWeight=1 PerfScore 237.17
    -G_M6629_IG03:
    -       vcvtudq2pd zmm9, ymm5
    -       vcvtudq2pd zmm10, ymm8
    -       vdivpd   zmm5, zmm9, zmm10
    -       vcvttpd2udq ymm5, zmm5
    +       vdivpd   zmm9, zmm7, zmm8
    +       vcvttpd2udq ymm9, zmm9
            vextracti32x8 ymm4, zmm4, 1
    -       vextracti32x8 ymm7, zmm7, 1
    -       vxorpd   ymm8, ymm8, ymm8
    -       vpcmpeqd ymm8, ymm8, ymm7
    -       vptest   ymm8, ymm8
    -       jne      G_M6629_IG05
    -       vcvtudq2pd zmm8, ymm4
    -       vcvtudq2pd zmm9, ymm7
    -       vdivpd   zmm4, zmm8, zmm9
    -       vcvttpd2udq ymm4, zmm4
    -       vinserti32x8 zmm4, zmm5, ymm4, 1
    -       vpmovdb  xmm4, zmm4
    -       vextracti128 xmm3, ymm3
    -       vpmovzxbd zmm3, xmm3
    -       vmovaps  ymm5, ymm3
    -       vextracti128 xmm6, ymm6
    -       vpmovzxbd zmm6, xmm6
    -       vmovaps  ymm7, ymm6
    -       vxorpd   ymm8, ymm8, ymm8
    -       vpcmpeqd ymm8, ymm8, ymm7
    -       vptest   ymm8, ymm8
    -       jne      G_M6629_IG05
    -       vcvtudq2pd zmm8, ymm5
    -       vcvtudq2pd zmm9, ymm7
    -       vdivpd   zmm5, zmm8, zmm9
    -       vcvttpd2udq ymm5, zmm5
    -       vextracti32x8 ymm3, zmm3, 1
            vextracti32x8 ymm6, zmm6, 1
            vxorpd   ymm7, ymm7, ymm7
            vpcmpeqd ymm7, ymm7, ymm6
            vptest   ymm7, ymm7
    -       jne      SHORT G_M6629_IG05
    -       vcvtudq2pd zmm7, ymm3
    +						;; size=372 bbWeight=1 PerfScore 284.50
    +G_M6629_IG03:
    +       jne      G_M6629_IG05
    +       vcvtudq2pd zmm7, ymm4
            vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm3, zmm7, zmm8
    +       vdivpd   zmm4, zmm7, zmm8
    +       vcvttpd2udq ymm4, zmm4
    +       vinserti32x8 zmm4, zmm9, ymm4, 1
    +       vpmovdb  xmm4, zmm4
    +       vextracti128 xmm3, ymm3
    +       vpmovzxbd zmm3, xmm3
    +       vextracti128 xmm5, ymm5
    +       vpmovzxbd zmm5, xmm5
    +       vxorpd   ymm6, ymm6, ymm6
    +       vpcmpeqd ymm6, ymm6, ymm5
    +       vptest   ymm6, ymm6
    +       jne      G_M6629_IG05
    +       vcvtudq2pd zmm6, ymm3
    +       vcvtudq2pd zmm7, ymm5
    +       vdivpd   zmm8, zmm6, zmm7
    +       vcvttpd2udq ymm8, zmm8
    +       vextracti32x8 ymm3, zmm3, 1
    +       vextracti32x8 ymm5, zmm5, 1
    +       vxorpd   ymm6, ymm6, ymm6
    +       vpcmpeqd ymm6, ymm6, ymm5
    +       vptest   ymm6, ymm6
    +       jne      SHORT G_M6629_IG05
    +       vcvtudq2pd zmm6, ymm3
    +       vcvtudq2pd zmm7, ymm5
    +       vdivpd   zmm3, zmm6, zmm7
            vcvttpd2udq ymm3, zmm3
    -       vinserti32x8 zmm3, zmm5, ymm3, 1
    +       vinserti32x8 zmm3, zmm8, ymm3, 1
            vpmovdb  xmm3, zmm3
            vinserti128 ymm3, ymm4, xmm3
            vinserti32x8 zmm2, zmm2, ymm3, 1
            vpmullw  zmm3, zmm2, zmm0
            vpsrlw   zmm2, zmm2, 8
            vpandd   zmm0, zmm0, dword ptr [reloc @RWD32] {1to16}
            vpmullw  zmm0, zmm0, zmm2
            vpternlogd zmm0, zmm3, dword ptr [reloc @RWD36] {1to16}, -8
            vpsubb   zmm0, zmm1, zmm0
            vmovups  zmmword ptr [rdi], zmm0
            mov      rax, rdi
    -						;; size=305 bbWeight=1 PerfScore 232.58
    +						;; size=244 bbWeight=1 PerfScore 182.25
     G_M6629_IG04:
            vzeroupper 
            pop      rbp
            ret      
     						;; size=5 bbWeight=1 PerfScore 2.50
     G_M6629_IG05:
            call     CORINFO_HELP_THROWDIVZERO
            int3     
     						;; size=6 bbWeight=0 PerfScore 0.00
     G_M6629_IG06:
            call     CORINFO_HELP_OVERFLOW
            int3     
     						;; size=6 bbWeight=0 PerfScore 0.00
     RWD00  	dq	FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh
     RWD32  	dd	FF00FF00h
     RWD36  	dd	00FF00FFh
     
     
    -; Total bytes of code 710, prolog size 4, PerfScore 479.50, instruction count 130, allocated bytes for code 710 (MethodHash=c340e61a) for method System.Numerics.Tensors.TensorPrimitives+RemainderOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
    +; Total bytes of code 657, prolog size 4, PerfScore 476.50, instruction count 118, allocated bytes for code 657 (MethodHash=c340e61a) for method System.Numerics.Tensors.TensorPrimitives+RemainderOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
     ; ============================================================
    -49 (-7.45 % of base) - System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte]
     ; Assembly listing for method System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 RetBuf       [V00,T00] (  4,  4   )    long  ->  rdi         single-def
     ;  V01 arg0         [V01,T13] (  2,  2   )  simd64  ->  mm0         single-def <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;  V02 arg1         [V02,T14] (  2,  2   )  simd64  ->  mm1         single-def <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;  V04 tmp1         [V04,T01] (  3,  6   )  simd32  ->  mm2         "fgMakeTemp is creating a new local variable"
    -;  V05 tmp2         [V05,T02] (  3,  6   )  simd32  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V05 tmp2         [V05,T02] (  3,  6   )  simd32  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V06 tmp3         [V06,T03] (  3,  6   )  simd64  ->  mm3         "fgMakeTemp is creating a new local variable"
    -;  V07 tmp4         [V07,T04] (  3,  6   )  simd64  ->  mm6         "fgMakeTemp is creating a new local variable"
    +;  V07 tmp4         [V07,T04] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
     ;  V08 tmp5         [V08,T05] (  3,  6   )  simd64  ->  mm2         "fgMakeTemp is creating a new local variable"
    -;  V09 tmp6         [V09,T06] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V09 tmp6         [V09,T06] (  3,  6   )  simd64  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V10 tmp7         [V10,T07] (  3,  6   )  simd32  ->  mm0         "fgMakeTemp is creating a new local variable"
     ;  V11 tmp8         [V11,T08] (  3,  6   )  simd32  ->  mm1         "fgMakeTemp is creating a new local variable"
     ;  V12 tmp9         [V12,T09] (  3,  6   )  simd64  ->  mm3         "fgMakeTemp is creating a new local variable"
    -;  V13 tmp10        [V13,T10] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V13 tmp10        [V13,T10] (  3,  6   )  simd64  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V14 tmp11        [V14,T11] (  3,  6   )  simd64  ->  mm0         "fgMakeTemp is creating a new local variable"
     ;  V15 tmp12        [V15,T12] (  3,  6   )  simd64  ->  mm1         "fgMakeTemp is creating a new local variable"
     ;
     ; Lcl frame size = 8
     
     G_M27641_IG01:
            push     rax
            vmovups  zmm0, zmmword ptr [rsp+0x10]
            vmovups  zmm1, zmmword ptr [rsp+0x50]
     						;; size=23 bbWeight=1 PerfScore 7.00
     G_M27641_IG02:
            vmovaps  ymm2, ymm0
    -       vmovaps  xmm3, xmm2
    -       vpmovzxbd zmm3, xmm3
    -       vmovaps  ymm4, ymm3
    -       vmovaps  ymm5, ymm1
    -       vmovaps  xmm6, xmm5
    -       vpmovzxbd zmm6, xmm6
    -       vmovaps  ymm7, ymm6
    -       vxorpd   ymm8, ymm8, ymm8
    -       vpcmpeqd ymm8, ymm8, ymm7
    -       vptest   ymm8, ymm8
    -       jne      G_M27641_IG05
    -       vcvtudq2pd zmm8, ymm4
    -       vcvtudq2pd zmm9, ymm7
    -       vdivpd   zmm4, zmm8, zmm9
    -       vcvttpd2udq ymm4, zmm4
    -       vextracti32x8 ymm3, zmm3, 1
    -       vextracti32x8 ymm6, zmm6, 1
    -       vxorpd   ymm7, ymm7, ymm7
    -       vpcmpeqd ymm7, ymm7, ymm6
    -       vptest   ymm7, ymm7
    -       jne      G_M27641_IG05
    -       vcvtudq2pd zmm7, ymm3
    -       vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm3, zmm7, zmm8
    -       vcvttpd2udq ymm3, zmm3
    -       vinserti32x8 zmm3, zmm4, ymm3, 1
    -       vpmovdb  xmm3, zmm3
    -       vextracti128 xmm2, ymm2
    -       vpmovzxbd zmm2, xmm2
    -       vmovaps  ymm4, ymm2
    -       vextracti128 xmm5, ymm5
    -       vpmovzxbd zmm5, xmm5
    -       vmovaps  ymm6, ymm5
    -       vxorpd   ymm7, ymm7, ymm7
    -       vpcmpeqd ymm7, ymm7, ymm6
    -       vptest   ymm7, ymm7
    -       jne      G_M27641_IG05
    -       vcvtudq2pd zmm7, ymm4
    -       vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm4, zmm7, zmm8
    -       vcvttpd2udq ymm4, zmm4
    -       vextracti32x8 ymm2, zmm2, 1
    -       vextracti32x8 ymm5, zmm5, 1
    +       vpmovzxbd zmm3, xmm2
    +       vmovaps  ymm4, ymm1
    +       vpmovzxbd zmm5, xmm4
            vxorpd   ymm6, ymm6, ymm6
            vpcmpeqd ymm6, ymm6, ymm5
            vptest   ymm6, ymm6
            jne      G_M27641_IG05
    -       vcvtudq2pd zmm6, ymm2
    +       vcvtudq2pd zmm6, ymm3
            vcvtudq2pd zmm7, ymm5
    -       vdivpd   zmm2, zmm6, zmm7
    -       vcvttpd2udq ymm2, zmm2
    -       vinserti32x8 zmm2, zmm4, ymm2, 1
    -       vpmovdb  xmm2, zmm2
    -       vinserti128 ymm2, ymm3, xmm2
    -       vextracti32x8 ymm0, zmm0, 1
    -       vmovaps  xmm3, xmm0
    -       vpmovzxbd zmm3, xmm3
    -       vmovaps  ymm4, ymm3
    -       vextracti32x8 ymm1, zmm1, 1
    -       vmovaps  xmm5, xmm1
    -       vpmovzxbd zmm5, xmm5
    -       vmovaps  ymm6, ymm5
    -       vxorpd   ymm7, ymm7, ymm7
    -       vpcmpeqd ymm7, ymm7, ymm6
    -       vptest   ymm7, ymm7
    -       jne      G_M27641_IG05
    -						;; size=362 bbWeight=1 PerfScore 237.17
    -G_M27641_IG03:
    -       vcvtudq2pd zmm7, ymm4
    -       vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm4, zmm7, zmm8
    -       vcvttpd2udq ymm4, zmm4
    +       vdivpd   zmm8, zmm6, zmm7
    +       vcvttpd2udq ymm8, zmm8
            vextracti32x8 ymm3, zmm3, 1
            vextracti32x8 ymm5, zmm5, 1
            vxorpd   ymm6, ymm6, ymm6
            vpcmpeqd ymm6, ymm6, ymm5
            vptest   ymm6, ymm6
            jne      G_M27641_IG05
            vcvtudq2pd zmm6, ymm3
            vcvtudq2pd zmm7, ymm5
            vdivpd   zmm3, zmm6, zmm7
            vcvttpd2udq ymm3, zmm3
    -       vinserti32x8 zmm3, zmm4, ymm3, 1
    +       vinserti32x8 zmm3, zmm8, ymm3, 1
    +       vpmovdb  xmm3, zmm3
    +       vextracti128 xmm2, ymm2
    +       vpmovzxbd zmm2, xmm2
    +       vextracti128 xmm4, ymm4
    +       vpmovzxbd zmm4, xmm4
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +       jne      G_M27641_IG05
    +       vcvtudq2pd zmm5, ymm2
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm7, zmm5, zmm6
    +       vcvttpd2udq ymm7, zmm7
    +       vextracti32x8 ymm2, zmm2, 1
    +       vextracti32x8 ymm4, zmm4, 1
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +       jne      G_M27641_IG05
    +       vcvtudq2pd zmm5, ymm2
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm2, zmm5, zmm6
    +       vcvttpd2udq ymm2, zmm2
    +       vinserti32x8 zmm2, zmm7, ymm2, 1
    +       vpmovdb  xmm2, zmm2
    +       vinserti128 ymm2, ymm3, xmm2
    +       vextracti32x8 ymm0, zmm0, 1
    +       vpmovzxbd zmm3, xmm0
    +       vextracti32x8 ymm1, zmm1, 1
    +       vpmovzxbd zmm4, xmm1
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +       jne      G_M27641_IG05
    +       vcvtudq2pd zmm5, ymm3
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm7, zmm5, zmm6
    +       vcvttpd2udq ymm7, zmm7
    +       vextracti32x8 ymm3, zmm3, 1
    +       vextracti32x8 ymm4, zmm4, 1
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +						;; size=372 bbWeight=1 PerfScore 284.50
    +G_M27641_IG03:
    +       jne      G_M27641_IG05
    +       vcvtudq2pd zmm5, ymm3
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm3, zmm5, zmm6
    +       vcvttpd2udq ymm3, zmm3
    +       vinserti32x8 zmm3, zmm7, ymm3, 1
            vpmovdb  xmm3, zmm3
            vextracti128 xmm0, ymm0
            vpmovzxbd zmm0, xmm0
    -       vmovaps  ymm4, ymm0
            vextracti128 xmm1, ymm1
            vpmovzxbd zmm1, xmm1
    -       vmovaps  ymm5, ymm1
    -       vxorpd   ymm6, ymm6, ymm6
    -       vpcmpeqd ymm6, ymm6, ymm5
    -       vptest   ymm6, ymm6
    +       vxorpd   ymm4, ymm4, ymm4
    +       vpcmpeqd ymm4, ymm4, ymm1
    +       vptest   ymm4, ymm4
            jne      SHORT G_M27641_IG05
    -       vcvtudq2pd zmm6, ymm4
    -       vcvtudq2pd zmm7, ymm5
    -       vdivpd   zmm4, zmm6, zmm7
    -       vcvttpd2udq ymm4, zmm4
    +       vcvtudq2pd zmm4, ymm0
    +       vcvtudq2pd zmm5, ymm1
    +       vdivpd   zmm6, zmm4, zmm5
    +       vcvttpd2udq ymm6, zmm6
            vextracti32x8 ymm0, zmm0, 1
            vextracti32x8 ymm1, zmm1, 1
    -       vxorpd   ymm5, ymm5, ymm5
    -       vpcmpeqd ymm5, ymm5, ymm1
    -       vptest   ymm5, ymm5
    +       vxorpd   ymm4, ymm4, ymm4
    +       vpcmpeqd ymm4, ymm4, ymm1
    +       vptest   ymm4, ymm4
            jne      SHORT G_M27641_IG05
    -       vcvtudq2pd zmm5, ymm0
    -       vcvtudq2pd zmm6, ymm1
    -       vdivpd   zmm0, zmm5, zmm6
    +       vcvtudq2pd zmm4, ymm0
    +       vcvtudq2pd zmm5, ymm1
    +       vdivpd   zmm0, zmm4, zmm5
            vcvttpd2udq ymm0, zmm0
    -       vinserti32x8 zmm0, zmm4, ymm0, 1
    +       vinserti32x8 zmm0, zmm6, ymm0, 1
            vpmovdb  xmm0, zmm0
            vinserti128 ymm0, ymm3, xmm0
            vinserti32x8 zmm0, zmm2, ymm0, 1
            vmovups  zmmword ptr [rdi], zmm0
            mov      rax, rdi
    -						;; size=253 bbWeight=1 PerfScore 213.25
    +						;; size=194 bbWeight=1 PerfScore 162.92
     G_M27641_IG04:
            vzeroupper 
            add      rsp, 8
            ret      
     						;; size=8 bbWeight=1 PerfScore 2.25
     G_M27641_IG05:
            call     CORINFO_HELP_THROWDIVZERO
            int3     
     						;; size=6 bbWeight=0 PerfScore 0.00
     G_M27641_IG06:
            call     CORINFO_HELP_OVERFLOW
            int3     
     						;; size=6 bbWeight=0 PerfScore 0.00
     RWD00  	dq	FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh
     
     
    -; Total bytes of code 658, prolog size 1, PerfScore 459.67, instruction count 123, allocated bytes for code 658 (MethodHash=97b19406) for method System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
    +; Total bytes of code 609, prolog size 1, PerfScore 456.67, instruction count 111, allocated bytes for code 609 (MethodHash=97b19406) for method System.Numerics.Tensors.TensorPrimitives+DivideOperator`1[byte]:Invoke(System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
     ; ============================================================
    -49 (-7.50 % of base) - System.Runtime.Intrinsics.Vector512:Divide[byte](System.Runtime.Intrinsics.Vector512`1[byte],byte):System.Runtime.Intrinsics.Vector512`1[byte]
     ; Assembly listing for method System.Runtime.Intrinsics.Vector512:Divide[byte](System.Runtime.Intrinsics.Vector512`1[byte],byte):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 RetBuf       [V00,T00] (  4,  4   )    long  ->  rdi         single-def
     ;  V01 arg0         [V01,T15] (  2,  2   )  simd64  ->  mm0         single-def <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;  V02 arg1         [V02,T01] (  3,  3   )   ubyte  ->  rsi         single-def
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
    -;  V04 tmp1         [V04,T02] (  3,  6   )  simd64  ->  mm4         "fgMakeTemp is creating a new local variable"
    +;  V04 tmp1         [V04,T02] (  3,  6   )  simd64  ->  mm3         "fgMakeTemp is creating a new local variable"
     ;  V05 tmp2         [V05,T03] (  3,  6   )  simd32  ->  mm1         "fgMakeTemp is creating a new local variable"
    -;  V06 tmp3         [V06,T04] (  3,  6   )  simd32  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V06 tmp3         [V06,T04] (  3,  6   )  simd32  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V07 tmp4         [V07,T05] (  3,  6   )  simd64  ->  mm2         "fgMakeTemp is creating a new local variable"
    -;  V08 tmp5         [V08,T06] (  3,  6   )  simd64  ->  mm6         "fgMakeTemp is creating a new local variable"
    +;  V08 tmp5         [V08,T06] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
     ;  V09 tmp6         [V09,T07] (  3,  6   )  simd64  ->  mm1         "fgMakeTemp is creating a new local variable"
    -;  V10 tmp7         [V10,T08] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V10 tmp7         [V10,T08] (  3,  6   )  simd64  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V11 tmp8         [V11,T09] (  3,  6   )  simd32  ->  mm0         "fgMakeTemp is creating a new local variable"
    -;  V12 tmp9         [V12,T10] (  3,  6   )  simd32  ->  mm4         "fgMakeTemp is creating a new local variable"
    +;  V12 tmp9         [V12,T10] (  3,  6   )  simd32  ->  mm3         "fgMakeTemp is creating a new local variable"
     ;  V13 tmp10        [V13,T11] (  3,  6   )  simd64  ->  mm2         "fgMakeTemp is creating a new local variable"
    -;  V14 tmp11        [V14,T12] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V14 tmp11        [V14,T12] (  3,  6   )  simd64  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V15 tmp12        [V15,T13] (  3,  6   )  simd64  ->  mm0         "fgMakeTemp is creating a new local variable"
    -;  V16 tmp13        [V16,T14] (  3,  6   )  simd64  ->  mm4         "fgMakeTemp is creating a new local variable"
    +;  V16 tmp13        [V16,T14] (  3,  6   )  simd64  ->  mm3         "fgMakeTemp is creating a new local variable"
     ;
     ; Lcl frame size = 8
     
     G_M14070_IG01:
            push     rax
            vmovups  zmm0, zmmword ptr [rsp+0x10]
     						;; size=12 bbWeight=1 PerfScore 4.00
     G_M14070_IG02:
            vmovaps  ymm1, ymm0
    -       vmovaps  xmm2, xmm1
    -       vpmovzxbd zmm2, xmm2
    -       vmovaps  ymm3, ymm2
    -       vpbroadcastb zmm4, esi
    -       vmovaps  ymm5, ymm4
    -       vmovaps  xmm6, xmm5
    -       vpmovzxbd zmm6, xmm6
    -       vmovaps  ymm7, ymm6
    -       vxorpd   ymm8, ymm8, ymm8
    -       vpcmpeqd ymm8, ymm8, ymm7
    -       vptest   ymm8, ymm8
    -       jne      G_M14070_IG05
    -       vcvtudq2pd zmm8, ymm3
    -       vcvtudq2pd zmm9, ymm7
    -       vdivpd   zmm3, zmm8, zmm9
    -       vcvttpd2udq ymm3, zmm3
    -       vextracti32x8 ymm2, zmm2, 1
    -       vextracti32x8 ymm6, zmm6, 1
    -       vxorpd   ymm7, ymm7, ymm7
    -       vpcmpeqd ymm7, ymm7, ymm6
    -       vptest   ymm7, ymm7
    -       jne      G_M14070_IG05
    -       vcvtudq2pd zmm7, ymm2
    -       vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm2, zmm7, zmm8
    -       vcvttpd2udq ymm2, zmm2
    -       vinserti32x8 zmm2, zmm3, ymm2, 1
    -       vpmovdb  xmm2, zmm2
    -       vextracti128 xmm1, ymm1
    -       vpmovzxbd zmm1, xmm1
    -       vmovaps  ymm3, ymm1
    -       vextracti128 xmm5, ymm5
    -       vpmovzxbd zmm5, xmm5
    -       vmovaps  ymm6, ymm5
    -       vxorpd   ymm7, ymm7, ymm7
    -       vpcmpeqd ymm7, ymm7, ymm6
    -       vptest   ymm7, ymm7
    -       jne      G_M14070_IG05
    -       vcvtudq2pd zmm7, ymm3
    -       vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm3, zmm7, zmm8
    -       vcvttpd2udq ymm3, zmm3
    -       vextracti32x8 ymm1, zmm1, 1
    -       vextracti32x8 ymm5, zmm5, 1
    +       vpmovzxbd zmm2, xmm1
    +       vpbroadcastb zmm3, esi
    +       vmovaps  ymm4, ymm3
    +       vpmovzxbd zmm5, xmm4
            vxorpd   ymm6, ymm6, ymm6
            vpcmpeqd ymm6, ymm6, ymm5
            vptest   ymm6, ymm6
            jne      G_M14070_IG05
    -       vcvtudq2pd zmm6, ymm1
    +       vcvtudq2pd zmm6, ymm2
            vcvtudq2pd zmm7, ymm5
    -       vdivpd   zmm1, zmm6, zmm7
    -       vcvttpd2udq ymm1, zmm1
    -       vinserti32x8 zmm1, zmm3, ymm1, 1
    -       vpmovdb  xmm1, zmm1
    -       vinserti128 ymm1, ymm2, xmm1
    -       vextracti32x8 ymm0, zmm0, 1
    -       vmovaps  xmm2, xmm0
    -       vpmovzxbd zmm2, xmm2
    -       vmovaps  ymm3, ymm2
    -       vextracti32x8 ymm4, zmm4, 1
    -       vmovaps  xmm5, xmm4
    -       vpmovzxbd zmm5, xmm5
    -       vmovaps  ymm6, ymm5
    -       vxorpd   ymm7, ymm7, ymm7
    -       vpcmpeqd ymm7, ymm7, ymm6
    -       vptest   ymm7, ymm7
    -						;; size=362 bbWeight=1 PerfScore 240.17
    -G_M14070_IG03:
    -       jne      G_M14070_IG05
    -       vcvtudq2pd zmm7, ymm3
    -       vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm3, zmm7, zmm8
    -       vcvttpd2udq ymm3, zmm3
    +       vdivpd   zmm8, zmm6, zmm7
    +       vcvttpd2udq ymm8, zmm8
            vextracti32x8 ymm2, zmm2, 1
            vextracti32x8 ymm5, zmm5, 1
            vxorpd   ymm6, ymm6, ymm6
            vpcmpeqd ymm6, ymm6, ymm5
            vptest   ymm6, ymm6
            jne      G_M14070_IG05
            vcvtudq2pd zmm6, ymm2
            vcvtudq2pd zmm7, ymm5
            vdivpd   zmm2, zmm6, zmm7
            vcvttpd2udq ymm2, zmm2
    -       vinserti32x8 zmm2, zmm3, ymm2, 1
    +       vinserti32x8 zmm2, zmm8, ymm2, 1
            vpmovdb  xmm2, zmm2
    -       vextracti128 xmm0, ymm0
    -       vpmovzxbd zmm0, xmm0
    -       vmovaps  ymm3, ymm0
    +       vextracti128 xmm1, ymm1
    +       vpmovzxbd zmm1, xmm1
            vextracti128 xmm4, ymm4
            vpmovzxbd zmm4, xmm4
    -       vmovaps  ymm5, ymm4
    -       vxorpd   ymm6, ymm6, ymm6
    -       vpcmpeqd ymm6, ymm6, ymm5
    -       vptest   ymm6, ymm6
    -       jne      SHORT G_M14070_IG05
    -       vcvtudq2pd zmm6, ymm3
    -       vcvtudq2pd zmm7, ymm5
    -       vdivpd   zmm3, zmm6, zmm7
    -       vcvttpd2udq ymm3, zmm3
    -       vextracti32x8 ymm0, zmm0, 1
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +       jne      G_M14070_IG05
    +       vcvtudq2pd zmm5, ymm1
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm7, zmm5, zmm6
    +       vcvttpd2udq ymm7, zmm7
    +       vextracti32x8 ymm1, zmm1, 1
            vextracti32x8 ymm4, zmm4, 1
            vxorpd   ymm5, ymm5, ymm5
            vpcmpeqd ymm5, ymm5, ymm4
            vptest   ymm5, ymm5
    -       jne      SHORT G_M14070_IG05
    -       vcvtudq2pd zmm5, ymm0
    +       jne      G_M14070_IG05
    +       vcvtudq2pd zmm5, ymm1
            vcvtudq2pd zmm6, ymm4
    -       vdivpd   zmm0, zmm5, zmm6
    +       vdivpd   zmm1, zmm5, zmm6
    +       vcvttpd2udq ymm1, zmm1
    +       vinserti32x8 zmm1, zmm7, ymm1, 1
    +       vpmovdb  xmm1, zmm1
    +       vinserti128 ymm1, ymm2, xmm1
    +       vextracti32x8 ymm0, zmm0, 1
    +       vpmovzxbd zmm2, xmm0
    +       vextracti32x8 ymm3, zmm3, 1
    +       vpmovzxbd zmm4, xmm3
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +       jne      G_M14070_IG05
    +       vcvtudq2pd zmm5, ymm2
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm7, zmm5, zmm6
    +       vcvttpd2udq ymm7, zmm7
    +       vextracti32x8 ymm2, zmm2, 1
    +       vextracti32x8 ymm4, zmm4, 1
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +						;; size=373 bbWeight=1 PerfScore 283.50
    +G_M14070_IG03:
    +       vptest   ymm5, ymm5
    +       jne      G_M14070_IG05
    +       vcvtudq2pd zmm5, ymm2
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm2, zmm5, zmm6
    +       vcvttpd2udq ymm2, zmm2
    +       vinserti32x8 zmm2, zmm7, ymm2, 1
    +       vpmovdb  xmm2, zmm2
    +       vextracti128 xmm0, ymm0
    +       vpmovzxbd zmm0, xmm0
    +       vextracti128 xmm3, ymm3
    +       vpmovzxbd zmm3, xmm3
    +       vxorpd   ymm4, ymm4, ymm4
    +       vpcmpeqd ymm4, ymm4, ymm3
    +       vptest   ymm4, ymm4
    +       jne      SHORT G_M14070_IG05
    +       vcvtudq2pd zmm4, ymm0
    +       vcvtudq2pd zmm5, ymm3
    +       vdivpd   zmm6, zmm4, zmm5
    +       vcvttpd2udq ymm6, zmm6
    +       vextracti32x8 ymm0, zmm0, 1
    +       vextracti32x8 ymm3, zmm3, 1
    +       vxorpd   ymm4, ymm4, ymm4
    +       vpcmpeqd ymm4, ymm4, ymm3
    +       vptest   ymm4, ymm4
    +       jne      SHORT G_M14070_IG05
    +       vcvtudq2pd zmm4, ymm0
    +       vcvtudq2pd zmm5, ymm3
    +       vdivpd   zmm0, zmm4, zmm5
            vcvttpd2udq ymm0, zmm0
    -       vinserti32x8 zmm0, zmm3, ymm0, 1
    +       vinserti32x8 zmm0, zmm6, ymm0, 1
            vpmovdb  xmm0, zmm0
            vinserti128 ymm0, ymm2, xmm0
            vinserti32x8 zmm0, zmm1, ymm0, 1
            vmovups  zmmword ptr [rdi], zmm0
            mov      rax, rdi
    -						;; size=259 bbWeight=1 PerfScore 214.25
    +						;; size=199 bbWeight=1 PerfScore 167.92
     G_M14070_IG04:
            vzeroupper 
            add      rsp, 8
            ret      
     						;; size=8 bbWeight=1 PerfScore 2.25
     G_M14070_IG05:
            call     CORINFO_HELP_THROWDIVZERO
            int3     
     						;; size=6 bbWeight=0 PerfScore 0.00
     G_M14070_IG06:
            call     CORINFO_HELP_OVERFLOW
            int3     
     						;; size=6 bbWeight=0 PerfScore 0.00
     RWD00  	dq	FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh
     
     
    -; Total bytes of code 653, prolog size 1, PerfScore 460.67, instruction count 123, allocated bytes for code 653 (MethodHash=cf00c909) for method System.Runtime.Intrinsics.Vector512:Divide[byte](System.Runtime.Intrinsics.Vector512`1[byte],byte):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
    +; Total bytes of code 604, prolog size 1, PerfScore 457.67, instruction count 111, allocated bytes for code 604 (MethodHash=cf00c909) for method System.Runtime.Intrinsics.Vector512:Divide[byte](System.Runtime.Intrinsics.Vector512`1[byte],byte):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
     ; ============================================================
    -49 (-7.45 % of base) - System.Runtime.Intrinsics.Vector512:Divide[byte](System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte]
     ; Assembly listing for method System.Runtime.Intrinsics.Vector512:Divide[byte](System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; partially interruptible
     ; No PGO data
     ; Final local variable assignments
     ;
     ;  V00 RetBuf       [V00,T00] (  4,  4   )    long  ->  rdi         single-def
     ;  V01 arg0         [V01,T13] (  2,  2   )  simd64  ->  mm0         single-def <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;  V02 arg1         [V02,T14] (  2,  2   )  simd64  ->  mm1         single-def <System.Runtime.Intrinsics.Vector512`1[byte]>
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;  V04 tmp1         [V04,T01] (  3,  6   )  simd32  ->  mm2         "fgMakeTemp is creating a new local variable"
    -;  V05 tmp2         [V05,T02] (  3,  6   )  simd32  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V05 tmp2         [V05,T02] (  3,  6   )  simd32  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V06 tmp3         [V06,T03] (  3,  6   )  simd64  ->  mm3         "fgMakeTemp is creating a new local variable"
    -;  V07 tmp4         [V07,T04] (  3,  6   )  simd64  ->  mm6         "fgMakeTemp is creating a new local variable"
    +;  V07 tmp4         [V07,T04] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
     ;  V08 tmp5         [V08,T05] (  3,  6   )  simd64  ->  mm2         "fgMakeTemp is creating a new local variable"
    -;  V09 tmp6         [V09,T06] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V09 tmp6         [V09,T06] (  3,  6   )  simd64  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V10 tmp7         [V10,T07] (  3,  6   )  simd32  ->  mm0         "fgMakeTemp is creating a new local variable"
     ;  V11 tmp8         [V11,T08] (  3,  6   )  simd32  ->  mm1         "fgMakeTemp is creating a new local variable"
     ;  V12 tmp9         [V12,T09] (  3,  6   )  simd64  ->  mm3         "fgMakeTemp is creating a new local variable"
    -;  V13 tmp10        [V13,T10] (  3,  6   )  simd64  ->  mm5         "fgMakeTemp is creating a new local variable"
    +;  V13 tmp10        [V13,T10] (  3,  6   )  simd64  ->  mm4         "fgMakeTemp is creating a new local variable"
     ;  V14 tmp11        [V14,T11] (  3,  6   )  simd64  ->  mm0         "fgMakeTemp is creating a new local variable"
     ;  V15 tmp12        [V15,T12] (  3,  6   )  simd64  ->  mm1         "fgMakeTemp is creating a new local variable"
     ;
     ; Lcl frame size = 8
     
     G_M1973_IG01:
            push     rax
            vmovups  zmm0, zmmword ptr [rsp+0x10]
            vmovups  zmm1, zmmword ptr [rsp+0x50]
     						;; size=23 bbWeight=1 PerfScore 7.00
     G_M1973_IG02:
            vmovaps  ymm2, ymm0
    -       vmovaps  xmm3, xmm2
    -       vpmovzxbd zmm3, xmm3
    -       vmovaps  ymm4, ymm3
    -       vmovaps  ymm5, ymm1
    -       vmovaps  xmm6, xmm5
    -       vpmovzxbd zmm6, xmm6
    -       vmovaps  ymm7, ymm6
    -       vxorpd   ymm8, ymm8, ymm8
    -       vpcmpeqd ymm8, ymm8, ymm7
    -       vptest   ymm8, ymm8
    -       jne      G_M1973_IG05
    -       vcvtudq2pd zmm8, ymm4
    -       vcvtudq2pd zmm9, ymm7
    -       vdivpd   zmm4, zmm8, zmm9
    -       vcvttpd2udq ymm4, zmm4
    -       vextracti32x8 ymm3, zmm3, 1
    -       vextracti32x8 ymm6, zmm6, 1
    -       vxorpd   ymm7, ymm7, ymm7
    -       vpcmpeqd ymm7, ymm7, ymm6
    -       vptest   ymm7, ymm7
    -       jne      G_M1973_IG05
    -       vcvtudq2pd zmm7, ymm3
    -       vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm3, zmm7, zmm8
    -       vcvttpd2udq ymm3, zmm3
    -       vinserti32x8 zmm3, zmm4, ymm3, 1
    -       vpmovdb  xmm3, zmm3
    -       vextracti128 xmm2, ymm2
    -       vpmovzxbd zmm2, xmm2
    -       vmovaps  ymm4, ymm2
    -       vextracti128 xmm5, ymm5
    -       vpmovzxbd zmm5, xmm5
    -       vmovaps  ymm6, ymm5
    -       vxorpd   ymm7, ymm7, ymm7
    -       vpcmpeqd ymm7, ymm7, ymm6
    -       vptest   ymm7, ymm7
    -       jne      G_M1973_IG05
    -       vcvtudq2pd zmm7, ymm4
    -       vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm4, zmm7, zmm8
    -       vcvttpd2udq ymm4, zmm4
    -       vextracti32x8 ymm2, zmm2, 1
    -       vextracti32x8 ymm5, zmm5, 1
    +       vpmovzxbd zmm3, xmm2
    +       vmovaps  ymm4, ymm1
    +       vpmovzxbd zmm5, xmm4
            vxorpd   ymm6, ymm6, ymm6
            vpcmpeqd ymm6, ymm6, ymm5
            vptest   ymm6, ymm6
            jne      G_M1973_IG05
    -       vcvtudq2pd zmm6, ymm2
    +       vcvtudq2pd zmm6, ymm3
            vcvtudq2pd zmm7, ymm5
    -       vdivpd   zmm2, zmm6, zmm7
    -       vcvttpd2udq ymm2, zmm2
    -       vinserti32x8 zmm2, zmm4, ymm2, 1
    -       vpmovdb  xmm2, zmm2
    -       vinserti128 ymm2, ymm3, xmm2
    -       vextracti32x8 ymm0, zmm0, 1
    -       vmovaps  xmm3, xmm0
    -       vpmovzxbd zmm3, xmm3
    -       vmovaps  ymm4, ymm3
    -       vextracti32x8 ymm1, zmm1, 1
    -       vmovaps  xmm5, xmm1
    -       vpmovzxbd zmm5, xmm5
    -       vmovaps  ymm6, ymm5
    -       vxorpd   ymm7, ymm7, ymm7
    -       vpcmpeqd ymm7, ymm7, ymm6
    -       vptest   ymm7, ymm7
    -       jne      G_M1973_IG05
    -						;; size=362 bbWeight=1 PerfScore 237.17
    -G_M1973_IG03:
    -       vcvtudq2pd zmm7, ymm4
    -       vcvtudq2pd zmm8, ymm6
    -       vdivpd   zmm4, zmm7, zmm8
    -       vcvttpd2udq ymm4, zmm4
    +       vdivpd   zmm8, zmm6, zmm7
    +       vcvttpd2udq ymm8, zmm8
            vextracti32x8 ymm3, zmm3, 1
            vextracti32x8 ymm5, zmm5, 1
            vxorpd   ymm6, ymm6, ymm6
            vpcmpeqd ymm6, ymm6, ymm5
            vptest   ymm6, ymm6
            jne      G_M1973_IG05
            vcvtudq2pd zmm6, ymm3
            vcvtudq2pd zmm7, ymm5
            vdivpd   zmm3, zmm6, zmm7
            vcvttpd2udq ymm3, zmm3
    -       vinserti32x8 zmm3, zmm4, ymm3, 1
    +       vinserti32x8 zmm3, zmm8, ymm3, 1
    +       vpmovdb  xmm3, zmm3
    +       vextracti128 xmm2, ymm2
    +       vpmovzxbd zmm2, xmm2
    +       vextracti128 xmm4, ymm4
    +       vpmovzxbd zmm4, xmm4
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +       jne      G_M1973_IG05
    +       vcvtudq2pd zmm5, ymm2
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm7, zmm5, zmm6
    +       vcvttpd2udq ymm7, zmm7
    +       vextracti32x8 ymm2, zmm2, 1
    +       vextracti32x8 ymm4, zmm4, 1
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +       jne      G_M1973_IG05
    +       vcvtudq2pd zmm5, ymm2
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm2, zmm5, zmm6
    +       vcvttpd2udq ymm2, zmm2
    +       vinserti32x8 zmm2, zmm7, ymm2, 1
    +       vpmovdb  xmm2, zmm2
    +       vinserti128 ymm2, ymm3, xmm2
    +       vextracti32x8 ymm0, zmm0, 1
    +       vpmovzxbd zmm3, xmm0
    +       vextracti32x8 ymm1, zmm1, 1
    +       vpmovzxbd zmm4, xmm1
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +       jne      G_M1973_IG05
    +       vcvtudq2pd zmm5, ymm3
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm7, zmm5, zmm6
    +       vcvttpd2udq ymm7, zmm7
    +       vextracti32x8 ymm3, zmm3, 1
    +       vextracti32x8 ymm4, zmm4, 1
    +       vxorpd   ymm5, ymm5, ymm5
    +       vpcmpeqd ymm5, ymm5, ymm4
    +       vptest   ymm5, ymm5
    +						;; size=372 bbWeight=1 PerfScore 284.50
    +G_M1973_IG03:
    +       jne      G_M1973_IG05
    +       vcvtudq2pd zmm5, ymm3
    +       vcvtudq2pd zmm6, ymm4
    +       vdivpd   zmm3, zmm5, zmm6
    +       vcvttpd2udq ymm3, zmm3
    +       vinserti32x8 zmm3, zmm7, ymm3, 1
            vpmovdb  xmm3, zmm3
            vextracti128 xmm0, ymm0
            vpmovzxbd zmm0, xmm0
    -       vmovaps  ymm4, ymm0
            vextracti128 xmm1, ymm1
            vpmovzxbd zmm1, xmm1
    -       vmovaps  ymm5, ymm1
    -       vxorpd   ymm6, ymm6, ymm6
    -       vpcmpeqd ymm6, ymm6, ymm5
    -       vptest   ymm6, ymm6
    +       vxorpd   ymm4, ymm4, ymm4
    +       vpcmpeqd ymm4, ymm4, ymm1
    +       vptest   ymm4, ymm4
            jne      SHORT G_M1973_IG05
    -       vcvtudq2pd zmm6, ymm4
    -       vcvtudq2pd zmm7, ymm5
    -       vdivpd   zmm4, zmm6, zmm7
    -       vcvttpd2udq ymm4, zmm4
    +       vcvtudq2pd zmm4, ymm0
    +       vcvtudq2pd zmm5, ymm1
    +       vdivpd   zmm6, zmm4, zmm5
    +       vcvttpd2udq ymm6, zmm6
            vextracti32x8 ymm0, zmm0, 1
            vextracti32x8 ymm1, zmm1, 1
    -       vxorpd   ymm5, ymm5, ymm5
    -       vpcmpeqd ymm5, ymm5, ymm1
    -       vptest   ymm5, ymm5
    +       vxorpd   ymm4, ymm4, ymm4
    +       vpcmpeqd ymm4, ymm4, ymm1
    +       vptest   ymm4, ymm4
            jne      SHORT G_M1973_IG05
    -       vcvtudq2pd zmm5, ymm0
    -       vcvtudq2pd zmm6, ymm1
    -       vdivpd   zmm0, zmm5, zmm6
    +       vcvtudq2pd zmm4, ymm0
    +       vcvtudq2pd zmm5, ymm1
    +       vdivpd   zmm0, zmm4, zmm5
            vcvttpd2udq ymm0, zmm0
    -       vinserti32x8 zmm0, zmm4, ymm0, 1
    +       vinserti32x8 zmm0, zmm6, ymm0, 1
            vpmovdb  xmm0, zmm0
            vinserti128 ymm0, ymm3, xmm0
            vinserti32x8 zmm0, zmm2, ymm0, 1
            vmovups  zmmword ptr [rdi], zmm0
            mov      rax, rdi
    -						;; size=253 bbWeight=1 PerfScore 213.25
    +						;; size=194 bbWeight=1 PerfScore 162.92
     G_M1973_IG04:
            vzeroupper 
            add      rsp, 8
            ret      
     						;; size=8 bbWeight=1 PerfScore 2.25
     G_M1973_IG05:
            call     CORINFO_HELP_THROWDIVZERO
            int3     
     						;; size=6 bbWeight=0 PerfScore 0.00
     G_M1973_IG06:
            call     CORINFO_HELP_OVERFLOW
            int3     
     						;; size=6 bbWeight=0 PerfScore 0.00
     RWD00  	dq	FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh, FFFFFFFFFFFFFFFFh
     
     
    -; Total bytes of code 658, prolog size 1, PerfScore 459.67, instruction count 123, allocated bytes for code 658 (MethodHash=b004f84a) for method System.Runtime.Intrinsics.Vector512:Divide[byte](System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (FullOpts)
    +; Total bytes of code 609, prolog size 1, PerfScore 456.67, instruction count 111, allocated bytes for code 609 (MethodHash=b004f84a) for method System.Runtime.Intrinsics.Vector512:Divide[byte](System.Runtime.Intrinsics.Vector512`1[byte],System.Runtime.Intrinsics.Vector512`1[byte]):System.Runtime.Intrinsics.Vector512`1[byte] (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/42263c97df9e88398f50b442085eac2e

  3. MihuBot commented on Jul 11, 2026

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions