镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

[JitDiff X64] [tannergooding] Ensure other types of SIMD related loads, stor ... #2007

Open

Description

@MihuBot

Job completed in 20 minutes 49 seconds (remote runner delay: 1 minute 18 seconds).
dotnet/runtime#129563
Using arguments: -nuget -jitutils-repo EgorBo/jitutils -jitutils-branch pmi-deterministic-cctors
Main commit: dotnet/runtime@18696ad
PR commit: tannergooding/runtime@1a5e431

Diffs

Diffs
Found 111 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 341905315
Total bytes of diff: 341903808
Total bytes of delta: -1507 (-0.00 % of base)
Total relative delta: -8.69
    diff is an improvement.
    relative diff is an improvement.


Top file regressions (bytes):
          20 : BepuPhysics.dasm (0.00 % of base)

Top file improvements (bytes):
       -1527 : SixLabors.ImageSharp.dasm (-0.09 % of base)

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

Top method regressions (bytes):
          78 (2.89 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile:IsCanonicalSrgbMatrixTrc():bool:this (FullOpts)
          26 (1.48 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc:GetTargetPcsWithPerceptualAdjustment(System.Numerics.Vector4,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverter):System.Numerics.Vector4 (FullOpts)
          15 (0.17 % of base) : BepuPhysics.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CylinderConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref) (FullOpts)
           5 (0.07 % of base) : BepuPhysics.dasm - BepuPhysics.CollisionDetection.CollisionTasks.ConvexHullPairTester:Test(byref,byref,byref,byref,byref,byref,int,byref) (FullOpts)
           2 (0.02 % of base) : BepuPhysics.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref) (FullOpts)
           1 (0.51 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.PixelFormats.HalfVector2:ToString():System.String:this (FullOpts)

Top method improvements (bytes):
        -186 (-42.27 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.GammaWorkingSpace:Equals(System.Object):bool:this (FullOpts)
        -167 (-39.95 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.RgbWorkingSpace:Equals(System.Object):bool:this (FullOpts)
        -108 (-42.52 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:Equals(System.Object):bool:this (FullOpts)
         -98 (-42.98 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:op_Inequality(SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates,SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates):bool (FullOpts)
         -94 (-44.13 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:op_Equality(SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates,SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates):bool (FullOpts)
         -67 (-12.23 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.VonKriesChromaticAdaptation:Transform(byref,System.ValueTuple`2[SixLabors.ImageSharp.ColorProfiles.CieXyz,SixLabors.ImageSharp.ColorProfiles.CieXyz],System.Numerics.Matrix4x4):SixLabors.ImageSharp.ColorProfiles.CieXyz (FullOpts)
         -64 (-18.08 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.HunterLab:ToProfileConnectingSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions):SixLabors.ImageSharp.ColorProfiles.CieXyz:this (FullOpts)
         -62 (-34.44 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:Equals(SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates):bool:this (FullOpts)
         -61 (-16.85 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.HunterLab:FromProfileConnectingSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions,byref):SixLabors.ImageSharp.ColorProfiles.HunterLab (FullOpts)
         -53 (-46.49 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.HunterLab:ComputeKa(byref):float (FullOpts)
         -51 (-11.83 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Rgb:ToProfileConnectionSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions,System.ReadOnlySpan`1[SixLabors.ImageSharp.ColorProfiles.Rgb],System.Span`1[SixLabors.ImageSharp.ColorProfiles.CieXyz]) (FullOpts)
         -40 (-18.18 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Lms:FromProfileConnectionSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions,System.ReadOnlySpan`1[SixLabors.ImageSharp.ColorProfiles.CieXyz],System.Span`1[SixLabors.ImageSharp.ColorProfiles.Lms]) (FullOpts)
         -40 (-17.94 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Lms:ToProfileConnectionSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions,System.ReadOnlySpan`1[SixLabors.ImageSharp.ColorProfiles.Lms],System.Span`1[SixLabors.ImageSharp.ColorProfiles.CieXyz]) (FullOpts)
         -38 (-14.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.YCbCr:FromProfileConnectionSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions,System.ReadOnlySpan`1[SixLabors.ImageSharp.ColorProfiles.Rgb],System.Span`1[SixLabors.ImageSharp.ColorProfiles.YCbCr]) (FullOpts)
         -35 (-14.29 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Y:FromProfileConnectionSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions,System.ReadOnlySpan`1[SixLabors.ImageSharp.ColorProfiles.Rgb],System.Span`1[SixLabors.ImageSharp.ColorProfiles.Y]) (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieLab:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieLch:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieLchuv:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieLuv:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieXyy:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieXyz:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Hsl:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Hsv:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.HunterLab:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Lms:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Rgb:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.YCbCr:Equals(System.Object):bool:this (FullOpts)
         -22 (-24.44 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates:Equals(System.Object):bool:this (FullOpts)
         -19 (-38.78 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates:op_Equality(SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates,SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates):bool (FullOpts)
         -19 (-38.78 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates:op_Inequality(SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates,SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates):bool (FullOpts)
         -18 (-11.92 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.HunterLab:ComputeKb(byref):float (FullOpts)
         -16 (-3.10 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Rgb:GetRgbToCieXyzMatrix(SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.RgbWorkingSpace):System.Numerics.Matrix4x4 (FullOpts)
         -10 (-1.78 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Icc.Calculators.ColorTrcCalculator:Calculate(System.Numerics.Vector4):System.Numerics.Vector4:this (FullOpts)
         -10 (-3.65 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Rgb:ToProfileConnectingSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions):SixLabors.ImageSharp.ColorProfiles.CieXyz:this (FullOpts)
          -9 (-17.65 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.PixelFormats.HalfVector2:ToVector2():System.Numerics.Vector2:this (FullOpts)
          -9 (-11.39 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.PixelFormats.HalfVector2:ToVector4():System.Numerics.Vector4:this (FullOpts)
          -2 (-0.48 % of base) : BepuPhysics.dasm - BepuPhysics.Collidables.ConvexHullWide:RayTest(byref,byref,byref,byref,byref):this (FullOpts)

Top method regressions (percentages):
          78 (2.89 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile:IsCanonicalSrgbMatrixTrc():bool:this (FullOpts)
          26 (1.48 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc:GetTargetPcsWithPerceptualAdjustment(System.Numerics.Vector4,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverter):System.Numerics.Vector4 (FullOpts)
           1 (0.51 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.PixelFormats.HalfVector2:ToString():System.String:this (FullOpts)
          15 (0.17 % of base) : BepuPhysics.dasm - BepuPhysics.CollisionDetection.CollisionTasks.CylinderConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref) (FullOpts)
           5 (0.07 % of base) : BepuPhysics.dasm - BepuPhysics.CollisionDetection.CollisionTasks.ConvexHullPairTester:Test(byref,byref,byref,byref,byref,byref,int,byref) (FullOpts)
           2 (0.02 % of base) : BepuPhysics.dasm - BepuPhysics.CollisionDetection.CollisionTasks.BoxConvexHullTester:Test(byref,byref,byref,byref,byref,byref,int,byref) (FullOpts)

Top method improvements (percentages):
         -53 (-46.49 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.HunterLab:ComputeKa(byref):float (FullOpts)
         -94 (-44.13 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:op_Equality(SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates,SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates):bool (FullOpts)
         -98 (-42.98 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:op_Inequality(SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates,SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates):bool (FullOpts)
        -108 (-42.52 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:Equals(System.Object):bool:this (FullOpts)
        -186 (-42.27 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.GammaWorkingSpace:Equals(System.Object):bool:this (FullOpts)
        -167 (-39.95 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.RgbWorkingSpace:Equals(System.Object):bool:this (FullOpts)
         -19 (-38.78 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates:op_Equality(SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates,SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates):bool (FullOpts)
         -19 (-38.78 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates:op_Inequality(SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates,SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates):bool (FullOpts)
         -62 (-34.44 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:Equals(SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieLab:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieLch:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieLchuv:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieLuv:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieXyy:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieXyz:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Hsl:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Hsv:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.HunterLab:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Lms:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Rgb:Equals(System.Object):bool:this (FullOpts)
         -28 (-25.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.YCbCr:Equals(System.Object):bool:this (FullOpts)
         -22 (-24.44 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates:Equals(System.Object):bool:this (FullOpts)
         -40 (-18.18 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Lms:FromProfileConnectionSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions,System.ReadOnlySpan`1[SixLabors.ImageSharp.ColorProfiles.CieXyz],System.Span`1[SixLabors.ImageSharp.ColorProfiles.Lms]) (FullOpts)
         -64 (-18.08 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.HunterLab:ToProfileConnectingSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions):SixLabors.ImageSharp.ColorProfiles.CieXyz:this (FullOpts)
         -40 (-17.94 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Lms:ToProfileConnectionSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions,System.ReadOnlySpan`1[SixLabors.ImageSharp.ColorProfiles.Lms],System.Span`1[SixLabors.ImageSharp.ColorProfiles.CieXyz]) (FullOpts)
          -9 (-17.65 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.PixelFormats.HalfVector2:ToVector2():System.Numerics.Vector2:this (FullOpts)
         -61 (-16.85 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.HunterLab:FromProfileConnectingSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions,byref):SixLabors.ImageSharp.ColorProfiles.HunterLab (FullOpts)
         -38 (-14.45 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.YCbCr:FromProfileConnectionSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions,System.ReadOnlySpan`1[SixLabors.ImageSharp.ColorProfiles.Rgb],System.Span`1[SixLabors.ImageSharp.ColorProfiles.YCbCr]) (FullOpts)
         -35 (-14.29 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Y:FromProfileConnectionSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions,System.ReadOnlySpan`1[SixLabors.ImageSharp.ColorProfiles.Rgb],System.Span`1[SixLabors.ImageSharp.ColorProfiles.Y]) (FullOpts)
         -67 (-12.23 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.VonKriesChromaticAdaptation:Transform(byref,System.ValueTuple`2[SixLabors.ImageSharp.ColorProfiles.CieXyz,SixLabors.ImageSharp.ColorProfiles.CieXyz],System.Numerics.Matrix4x4):SixLabors.ImageSharp.ColorProfiles.CieXyz (FullOpts)
         -18 (-11.92 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.HunterLab:ComputeKb(byref):float (FullOpts)
         -51 (-11.83 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Rgb:ToProfileConnectionSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions,System.ReadOnlySpan`1[SixLabors.ImageSharp.ColorProfiles.Rgb],System.Span`1[SixLabors.ImageSharp.ColorProfiles.CieXyz]) (FullOpts)
          -9 (-11.39 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.PixelFormats.HalfVector2:ToVector4():System.Numerics.Vector4:this (FullOpts)
         -10 (-3.65 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Rgb:ToProfileConnectingSpace(SixLabors.ImageSharp.ColorProfiles.ColorConversionOptions):SixLabors.ImageSharp.ColorProfiles.CieXyz:this (FullOpts)
         -16 (-3.10 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Rgb:GetRgbToCieXyzMatrix(SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.RgbWorkingSpace):System.Numerics.Matrix4x4 (FullOpts)
         -10 (-1.78 % of base) : SixLabors.ImageSharp.dasm - SixLabors.ImageSharp.ColorProfiles.Icc.Calculators.ColorTrcCalculator:Calculate(System.Numerics.Vector4):System.Numerics.Vector4:this (FullOpts)
          -2 (-0.48 % of base) : BepuPhysics.dasm - BepuPhysics.Collidables.ConvexHullWide:RayTest(byref,byref,byref,byref,byref):this (FullOpts)

43 total methods with Code Size differences (37 improved, 6 regressed), 1838537 unchanged.

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

Artifacts:

Activity

  1. MihuBot commented on Jun 19, 2026

    @MihuBot
    OwnerAuthor

    Top method regressions

    26 (1.48 % of base) - SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc:GetTargetPcsWithPerceptualAdjustment(System.Numerics.Vector4,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverter):System.Numerics.Vector4
     ; Assembly listing for method SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc:GetTargetPcsWithPerceptualAdjustment(System.Numerics.Vector4,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverter):System.Numerics.Vector4 (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; 67 single block inlinees; 16 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 arg0         [V00,T09] (  5,  3.50)  simd16  ->  [rbp-0x30]  multireg-arg single-def <System.Numerics.Vector4>
     ;  V01 arg1         [V01,T00] (  9,  6.50)     ref  ->  rbx         class-hnd single-def <SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams>
     ;  V02 arg2         [V02,T01] (  9,  6.50)     ref  ->  r15         class-hnd single-def <SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams>
     ;  V03 arg3         [V03,T05] (  4,  3   )     ref  ->  r14         class-hnd single-def <SixLabors.ImageSharp.ColorProfiles.ColorProfileConverter>
    -;  V04 loc0         [V04    ] ( 16,  8   )  struct (16) [rbp-0x40]  do-not-enreg[XSFRM] multireg-ret multireg-dest must-init addr-exposed ld-addr-op <SixLabors.ImageSharp.ColorProfiles.CieXyz>
    +;  V04 loc0         [V04    ] ( 14,  7   )  struct (16) [rbp-0x40]  do-not-enreg[XSFRM] multireg-ret multireg-dest must-init addr-exposed ld-addr-op <SixLabors.ImageSharp.ColorProfiles.CieXyz>
     ;  V05 loc1         [V05,T08] (  3,  2   )   ubyte  ->  r13         single-def
     ;  V06 loc2         [V06    ] (  2,  1   )  struct (16) [rbp-0x50]  do-not-enreg[XSRM] multireg-ret multireg-dest must-init addr-exposed ld-addr-op <SixLabors.ImageSharp.ColorProfiles.CieLab>
     ;  V07 loc3         [V07,T04] (  6,  5   )     int  ->  r13        
     ;  V08 loc4         [V08    ] ( 17,  0   )  struct (40) [rbp-0x78]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
     ;  V09 loc5         [V09,T16] (  4,  2   )  simd12  ->  [rbp-0x90]  <System.Numerics.Vector3>
     ;  V10 loc6         [V10,T12] (  6,  3   )  simd12  ->  [rbp-0xA0]  <System.Numerics.Vector3>
     ;  V11 loc7         [V11    ] (  2,  1   )  struct (16) [rbp-0xB0]  do-not-enreg[XSRM] multireg-ret multireg-dest must-init addr-exposed ld-addr-op <SixLabors.ImageSharp.ColorProfiles.CieLab>
     ;  V12 loc8         [V12,T20] (  3,  1.50)  simd16  ->  [rbp-0xC0]  multireg-ret multireg-dest spill-single-def <System.Numerics.Vector4>
     ;  V13 loc9         [V13    ] ( 17,  0   )  struct (40) [rbp-0xE8]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
     ;# V14 OutArgs      [V14    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;  V15 tmp1         [V15,T17] (  4,  2   )  simd16  ->  [rbp-0x100]  do-not-enreg[SFA] multireg-arg
     ;* V16 tmp2         [V16    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
     ;  V17 tmp3         [V17,T10] (  4,  4   )  simd12  ->  mm0         "spilled call-like call argument"
     ;* V18 tmp4         [V18    ] (  0,  0   )  simd12  ->  zero-ref    "spilled call-like call argument"
     ;  V19 tmp5         [V19,T18] (  2,  2   )  simd16  ->  mm0         multireg-ret multireg-dest "Return value temp for multireg return" <System.Numerics.Vector4>
     ;  V20 tmp6         [V20,T19] (  2,  2   )  simd16  ->  mm0         multireg-ret multireg-dest "Return value temp for multireg return" <System.Numerics.Vector4>
     ;  V21 tmp7         [V21,T30] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
     ;* V22 tmp8         [V22    ] (  0,  0   )  simd12  ->  zero-ref    "spilled call-like call argument"
     ;* V23 tmp9         [V23    ] (  0,  0   )  simd12  ->  zero-ref    "spilled call-like call argument"
     ;  V24 tmp10        [V24,T31] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
     ;  V25 tmp11        [V25,T02] (  4,  8   )     ref  ->  r13         class-hnd exact single-def "Inlining Arg" <SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile>
     ;* V26 tmp12        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfileHeader>
     ;* V27 tmp13        [V27    ] (  0,  0   )  simd16  ->  zero-ref    "spilled call-like call argument"
     ;* V28 tmp14        [V28    ] (  0,  0   )  simd12  ->  zero-ref    "spilled call-like call argument"
    -;* V29 tmp15        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <SixLabors.ImageSharp.ColorProfiles.CieXyz>
    +;  V29 tmp15        [V29    ] (  4,  4   )  struct (16) [rbp-0x110]  do-not-enreg[SB] ld-addr-op "NewObj constructor temp" <SixLabors.ImageSharp.ColorProfiles.CieXyz>
     ;  V30 tmp16        [V30,T11] (  4,  4   )  simd12  ->  mm0         "spilled call-like call argument"
     ;* V31 tmp17        [V31    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[char]>
     ;  V32 tmp18        [V32,T26] (  4,  0   )     int  ->  rdi         "Inlining Arg"
     ;* V33 tmp19        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[char]>
     ;  V34 tmp20        [V34,T24] (  4,  0   )   byref  ->  r15         single-def "Inlining Arg"
     ;  V35 tmp21        [V35,T36] (  2,  0   )     int  ->  rsi         "Inlining Arg"
     ;* V36 tmp22        [V36,T37] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
     ;* V37 tmp23        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[char]>
     ;* V38 tmp24        [V38    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;* V39 tmp25        [V39    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;* V40 tmp26        [V40    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[char]>
     ;  V41 tmp27        [V41,T27] (  4,  0   )     int  ->  rdi         "Inlining Arg"
     ;* V42 tmp28        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[char]>
     ;  V43 tmp29        [V43,T32] (  3,  0   )   byref  ->  rbx         single-def "Inlining Arg"
     ;  V44 tmp30        [V44,T38] (  2,  0   )     int  ->  rsi         "Inlining Arg"
     ;* V45 tmp31        [V45,T39] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
     ;* V46 tmp32        [V46    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[char]>
     ;* V47 tmp33        [V47    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;* V48 tmp34        [V48    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;* V49 tmp35        [V49    ] (  0,  0   )   float  ->  zero-ref    "impAppendStmt"
     ;* V50 tmp36        [V50    ] (  0,  0   )   float  ->  zero-ref    "impAppendStmt"
     ;* V51 tmp37        [V51    ] (  0,  0   )  simd12  ->  zero-ref    ld-addr-op "NewObj constructor temp" <System.Numerics.Vector3>
     ;* V52 tmp38        [V52    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
     ;  V53 tmp39        [V53,T06] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile>
     ;* V54 tmp40        [V54    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfileHeader>
     ;* V55 tmp41        [V55    ] (  0,  0   )  simd12  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Numerics.Vector3>
     ;  V56 tmp42        [V56,T14] (  3,  3   )  simd16  ->  mm0         "fgMakeTemp is creating a new local variable"
     ;* V57 tmp43        [V57    ] (  0,  0   )  simd16  ->  zero-ref    "fgMakeTemp is creating a new local variable"
     ;* V58 tmp44        [V58    ] (  0,  0   )  simd12  ->  zero-ref    ld-addr-op "NewObj constructor temp" <System.Numerics.Vector3>
     ;* V59 tmp45        [V59    ] (  0,  0   )  simd12  ->  zero-ref    ld-addr-op "NewObj constructor temp" <System.Numerics.Vector3>
     ;* V60 tmp46        [V60    ] (  0,  0   )  simd12  ->  zero-ref    "impAppendStmt"
     ;* V61 tmp47        [V61    ] (  0,  0   )  simd12  ->  zero-ref    "Inlining Arg" <System.Numerics.Vector3>
     ;* V62 tmp48        [V62    ] (  0,  0   )  simd12  ->  zero-ref    "Inlining Arg" <System.Numerics.Vector3>
     ;* V63 tmp49        [V63    ] (  0,  0   )  simd12  ->  zero-ref    ld-addr-op "NewObj constructor temp" <System.Numerics.Vector3>
     ;* V64 tmp50        [V64    ] (  0,  0   )  simd12  ->  zero-ref    ld-addr-op "NewObj constructor temp" <System.Numerics.Vector3>
     ;* V65 tmp51        [V65    ] (  0,  0   )  simd12  ->  zero-ref    "impAppendStmt"
     ;* V66 tmp52        [V66    ] (  0,  0   )  simd12  ->  zero-ref    "Inlining Arg" <System.Numerics.Vector3>
     ;* V67 tmp53        [V67    ] (  0,  0   )  simd12  ->  zero-ref    "Inlining Arg" <System.Numerics.Vector3>
     ;  V68 tmp54        [V68,T07] (  4,  4   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile>
     ;* V69 tmp55        [V69    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfileHeader>
     ;* V70 tmp56        [V70    ] (  0,  0   )  simd12  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Numerics.Vector3>
     ;  V71 tmp57        [V71,T15] (  3,  3   )  simd16  ->  mm0         "fgMakeTemp is creating a new local variable"
     ;* V72 tmp58        [V72    ] (  0,  0   )  simd16  ->  zero-ref    "fgMakeTemp is creating a new local variable"
     ;  V73 tmp59        [V73,T03] (  4,  8   )     ref  ->  rbx         class-hnd exact single-def "Inlining Arg" <SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile>
     ;* V74 tmp60        [V74    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfileHeader>
     ;* V75 tmp61        [V75    ] (  0,  0   )  simd16  ->  zero-ref    "spilled call-like call argument"
     ;* V76 tmp62        [V76    ] (  0,  0   )  simd12  ->  zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Numerics.Vector3>
     ;* V77 tmp63        [V77    ] (  0,  0   )  simd12  ->  zero-ref    "impAppendStmt"
     ;* V78 tmp64        [V78    ] (  0,  0   )  simd12  ->  zero-ref    "spilled call-like call argument"
     ;* V79 tmp65        [V79    ] (  0,  0   )  simd12  ->  zero-ref    "spilled call-like call argument"
     ;* V80 tmp66        [V80    ] (  0,  0   )  simd16  ->  zero-ref    ld-addr-op "NewObj constructor temp" <System.Numerics.Vector4>
     ;* V81 tmp67        [V81    ] (  0,  0   )  simd12  ->  zero-ref    "spilled call-like call argument"
     ;* V82 tmp68        [V82    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[char]>
     ;  V83 tmp69        [V83,T28] (  4,  0   )     int  ->  rdi         "Inlining Arg"
     ;* V84 tmp70        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[char]>
     ;  V85 tmp71        [V85,T25] (  4,  0   )   byref  ->  rbx         single-def "Inlining Arg"
     ;  V86 tmp72        [V86,T40] (  2,  0   )     int  ->  rsi         "Inlining Arg"
     ;* V87 tmp73        [V87,T41] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
     ;* V88 tmp74        [V88    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[char]>
     ;* V89 tmp75        [V89    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;* V90 tmp76        [V90    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;* V91 tmp77        [V91    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[char]>
     ;  V92 tmp78        [V92,T29] (  4,  0   )     int  ->  rdi         "Inlining Arg"
     ;* V93 tmp79        [V93    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[char]>
     ;  V94 tmp80        [V94,T33] (  3,  0   )   byref  ->  rbx         single-def "Inlining Arg"
     ;  V95 tmp81        [V95,T42] (  2,  0   )     int  ->  rsi         "Inlining Arg"
     ;* V96 tmp82        [V96,T43] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
     ;* V97 tmp83        [V97    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[char]>
     ;* V98 tmp84        [V98    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
     ;* V99 tmp85        [V99    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
    -;  V100 tmp86       [V100,T21] (  2,  1   )   float  ->  mm1         single-def "field V29.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;  V101 tmp87       [V101,T22] (  2,  1   )   float  ->  mm2         single-def "field V29.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;  V102 tmp88       [V102,T23] (  2,  1   )   float  ->  mm0         single-def "field V29.<Z>k__BackingField (fldOffset=0x8)" P-INDEP
    +;  V100 tmp86       [V100,T21] (  2,  1.50)   float  ->  [rbp-0x110]  do-not-enreg[] "field V29.<X>k__BackingField (fldOffset=0x0)" P-DEP
    +;  V101 tmp87       [V101,T22] (  2,  1.50)   float  ->  [rbp-0x10C]  do-not-enreg[] "field V29.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    +;  V102 tmp88       [V102,T23] (  2,  1.50)   float  ->  [rbp-0x108]  do-not-enreg[] "field V29.<Z>k__BackingField (fldOffset=0x8)" P-DEP
     ;* V103 tmp89       [V103    ] (  0,  0   )   byref  ->  zero-ref    "field V31._reference (fldOffset=0x0)" P-INDEP
     ;* V104 tmp90       [V104    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
     ;* V105 tmp91       [V105    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V33._reference (fldOffset=0x0)" P-INDEP
     ;* V106 tmp92       [V106    ] (  0,  0   )     int  ->  zero-ref    single-def "field V33._length (fldOffset=0x8)" P-INDEP
     ;* V107 tmp93       [V107    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V37._reference (fldOffset=0x0)" P-INDEP
     ;* V108 tmp94       [V108    ] (  0,  0   )     int  ->  zero-ref    single-def "field V37._length (fldOffset=0x8)" P-INDEP
     ;* V109 tmp95       [V109    ] (  0,  0   )   byref  ->  zero-ref    "field V40._reference (fldOffset=0x0)" P-INDEP
     ;* V110 tmp96       [V110    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
     ;* V111 tmp97       [V111    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V42._reference (fldOffset=0x0)" P-INDEP
     ;* V112 tmp98       [V112    ] (  0,  0   )     int  ->  zero-ref    single-def "field V42._length (fldOffset=0x8)" P-INDEP
     ;* V113 tmp99       [V113    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V46._reference (fldOffset=0x0)" P-INDEP
     ;* V114 tmp100      [V114    ] (  0,  0   )     int  ->  zero-ref    single-def "field V46._length (fldOffset=0x8)" P-INDEP
    -;* V115 tmp101      [V115    ] (  0,  0   )   float  ->  zero-ref    "field V55.X (fldOffset=0x0)" P-INDEP
    -;* V116 tmp102      [V116    ] (  0,  0   )   float  ->  zero-ref    "field V55.Y (fldOffset=0x4)" P-INDEP
    -;* V117 tmp103      [V117    ] (  0,  0   )   float  ->  zero-ref    "field V55.Z (fldOffset=0x8)" P-INDEP
    -;* V118 tmp104      [V118    ] (  0,  0   )   float  ->  zero-ref    "field V70.X (fldOffset=0x0)" P-INDEP
    -;* V119 tmp105      [V119    ] (  0,  0   )   float  ->  zero-ref    "field V70.Y (fldOffset=0x4)" P-INDEP
    -;* V120 tmp106      [V120    ] (  0,  0   )   float  ->  zero-ref    "field V70.Z (fldOffset=0x8)" P-INDEP
    -;* V121 tmp107      [V121    ] (  0,  0   )   byref  ->  zero-ref    "field V82._reference (fldOffset=0x0)" P-INDEP
    -;* V122 tmp108      [V122    ] (  0,  0   )     int  ->  zero-ref    "field V82._length (fldOffset=0x8)" P-INDEP
    -;* V123 tmp109      [V123    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V84._reference (fldOffset=0x0)" P-INDEP
    -;* V124 tmp110      [V124    ] (  0,  0   )     int  ->  zero-ref    single-def "field V84._length (fldOffset=0x8)" P-INDEP
    -;* V125 tmp111      [V125    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V88._reference (fldOffset=0x0)" P-INDEP
    -;* V126 tmp112      [V126    ] (  0,  0   )     int  ->  zero-ref    single-def "field V88._length (fldOffset=0x8)" P-INDEP
    -;* V127 tmp113      [V127    ] (  0,  0   )   byref  ->  zero-ref    "field V91._reference (fldOffset=0x0)" P-INDEP
    -;* V128 tmp114      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V91._length (fldOffset=0x8)" P-INDEP
    -;* V129 tmp115      [V129    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V93._reference (fldOffset=0x0)" P-INDEP
    -;* V130 tmp116      [V130    ] (  0,  0   )     int  ->  zero-ref    single-def "field V93._length (fldOffset=0x8)" P-INDEP
    -;* V131 tmp117      [V131    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V97._reference (fldOffset=0x0)" P-INDEP
    -;* V132 tmp118      [V132    ] (  0,  0   )     int  ->  zero-ref    single-def "field V97._length (fldOffset=0x8)" P-INDEP
    -;  V133 tmp119      [V133,T44] (  2,  0   )     int  ->  rsi         "argument with side effect"
    -;  V134 tmp120      [V134,T34] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
    -;  V135 tmp121      [V135,T45] (  2,  0   )     int  ->  rsi         "argument with side effect"
    -;  V136 tmp122      [V136,T35] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
    -;  V137 cse0        [V137,T13] (  6,  3   )  simd16  ->  mm3         multi-def "CSE #05: moderate"
    +;* V115 tmp101      [V115    ] (  0,  0   )   byref  ->  zero-ref    "field V82._reference (fldOffset=0x0)" P-INDEP
    +;* V116 tmp102      [V116    ] (  0,  0   )     int  ->  zero-ref    "field V82._length (fldOffset=0x8)" P-INDEP
    +;* V117 tmp103      [V117    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V84._reference (fldOffset=0x0)" P-INDEP
    +;* V118 tmp104      [V118    ] (  0,  0   )     int  ->  zero-ref    single-def "field V84._length (fldOffset=0x8)" P-INDEP
    +;* V119 tmp105      [V119    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V88._reference (fldOffset=0x0)" P-INDEP
    +;* V120 tmp106      [V120    ] (  0,  0   )     int  ->  zero-ref    single-def "field V88._length (fldOffset=0x8)" P-INDEP
    +;* V121 tmp107      [V121    ] (  0,  0   )   byref  ->  zero-ref    "field V91._reference (fldOffset=0x0)" P-INDEP
    +;* V122 tmp108      [V122    ] (  0,  0   )     int  ->  zero-ref    "field V91._length (fldOffset=0x8)" P-INDEP
    +;* V123 tmp109      [V123    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V93._reference (fldOffset=0x0)" P-INDEP
    +;* V124 tmp110      [V124    ] (  0,  0   )     int  ->  zero-ref    single-def "field V93._length (fldOffset=0x8)" P-INDEP
    +;* V125 tmp111      [V125    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V97._reference (fldOffset=0x0)" P-INDEP
    +;* V126 tmp112      [V126    ] (  0,  0   )     int  ->  zero-ref    single-def "field V97._length (fldOffset=0x8)" P-INDEP
    +;  V127 tmp113      [V127,T44] (  2,  0   )     int  ->  rsi         "argument with side effect"
    +;  V128 tmp114      [V128,T34] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
    +;  V129 tmp115      [V129,T45] (  2,  0   )     int  ->  rsi         "argument with side effect"
    +;  V130 tmp116      [V130,T35] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
    +;  V131 cse0        [V131,T13] (  6,  3   )  simd16  ->  mm3         multi-def "CSE #05: moderate"
     ;
    -; Lcl frame size = 224
    +; Lcl frame size = 240
     
     G_M49635_IG01:
            push     rbp
            push     r15
            push     r14
            push     r13
            push     rbx
    -       sub      rsp, 224
    -       lea      rbp, [rsp+0x100]
    +       sub      rsp, 240
    +       lea      rbp, [rsp+0x110]
            xor      eax, eax
            mov      qword ptr [rbp-0xE8], rax
            vxorps   xmm8, xmm8, xmm8
            vmovdqu32 zmmword ptr [rbp-0xE0], zmm8
            vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
            vmovdqu32 zmmword ptr [rbp-0x70], zmm8
            vmovsd   qword ptr [rbp-0x30], xmm0
            vmovsd   qword ptr [rbp-0x28], xmm1
            mov      rbx, rdi
            mov      r15, rsi
            mov      r14, rdx
     						;; size=86 bbWeight=1 PerfScore 16.08
     G_M49635_IG02:
            mov      r13, gword ptr [rbx+0x08]
            cmp      byte  ptr [r13], r13b
            mov      rdi, r13
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile:InitializeHeader():this
            call     [rax]SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile:InitializeHeader():this
            mov      rdi, gword ptr [r13+0x18]
            mov      r13d, dword ptr [rdi+0x34]
            cmp      r13d, 0xD1FFAB1E
            jne      G_M49635_IG06
     						;; size=44 bbWeight=1 PerfScore 12.75
     G_M49635_IG03:
            mov      rdi, gword ptr [rbx+0x10]
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.Conversion.Icc.IccConverterBase:get_Is16BitLutEntry():bool:this
            cmp      dword ptr [rdi], edi
            call     [rax]SixLabors.ImageSharp.ColorProfiles.Conversion.Icc.IccConverterBase:get_Is16BitLutEntry():bool:this
            test     eax, eax
            je       SHORT G_M49635_IG04
            vmovaps  xmm0, xmmword ptr [rbp-0x30]
            vmulps   xmm0, xmm0, dword ptr [reloc @RWD00] {1to4}
            vdivps   xmm0, xmm0, dword ptr [reloc @RWD04] {1to4}
            vmovaps  xmmword ptr [rbp-0x100], xmm0
            jmp      SHORT G_M49635_IG05
     						;; size=56 bbWeight=0.50 PerfScore 14.75
     G_M49635_IG04:
            vmovaps  xmm0, xmmword ptr [rbp-0x30]
            vmovaps  xmmword ptr [rbp-0x100], xmm0
     						;; size=12 bbWeight=0.50 PerfScore 1.00
     G_M49635_IG05:
            vmovsd   xmm0, qword ptr [rbp-0x100]
            vmovsd   xmm1, qword ptr [rbp-0xF8]
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.CieLab:FromScaledVector4(System.Numerics.Vector4):SixLabors.ImageSharp.ColorProfiles.CieLab
            call     [rax]SixLabors.ImageSharp.ColorProfiles.CieLab:FromScaledVector4(System.Numerics.Vector4):SixLabors.ImageSharp.ColorProfiles.CieLab
            vmovsd   qword ptr [rbp-0x50], xmm0
            vmovss   dword ptr [rbp-0x48], xmm1
            lea      rsi, [rbp-0x50]
            mov      rdi, r14
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsCieXyzCieXyz:Convert[SixLabors.ImageSharp.ColorProfiles.CieLab,SixLabors.ImageSharp.ColorProfiles.CieXyz](SixLabors.ImageSharp.ColorProfiles.ColorProfileConverter,byref):SixLabors.ImageSharp.ColorProfiles.CieXyz
            call     [rax]SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsCieXyzCieXyz:Convert[SixLabors.ImageSharp.ColorProfiles.CieLab,SixLabors.ImageSharp.ColorProfiles.CieXyz](SixLabors.ImageSharp.ColorProfiles.ColorProfileConverter,byref):SixLabors.ImageSharp.ColorProfiles.CieXyz
            vmovsd   qword ptr [rbp-0x40], xmm0
            vmovss   dword ptr [rbp-0x38], xmm1
            jmp      SHORT G_M49635_IG07
     						;; size=67 bbWeight=0.50 PerfScore 8.62
     G_M49635_IG06:
            cmp      r13d, 0xD1FFAB1E
            jne      G_M49635_IG22
            vmovups  xmm0, xmmword ptr [rbp-0x30]
            vmulps   xmm0, xmm0, dword ptr [reloc @RWD08] {1to4}
            vmovaps  xmm1, xmm0
    -       vmovshdup xmm2, xmm0
    +       vmovss   dword ptr [rbp-0x110], xmm1
    +       vmovshdup xmm1, xmm0
    +       vmovss   dword ptr [rbp-0x10C], xmm1
            vunpckhps xmm0, xmm0, xmm0
    -       vmovss   dword ptr [rbp-0x40], xmm1
    -       vmovss   dword ptr [rbp-0x3C], xmm2
    -       vmovss   dword ptr [rbp-0x38], xmm0
    -						;; size=55 bbWeight=0.50 PerfScore 6.25
    +       vmovss   dword ptr [rbp-0x108], xmm0
    +       mov      rdi, qword ptr [rbp-0x110]
    +       mov      qword ptr [rbp-0x40], rdi
    +       mov      edi, dword ptr [rbp-0x108]
    +       mov      dword ptr [rbp-0x38], edi
    +						;; size=81 bbWeight=0.50 PerfScore 8.25
     G_M49635_IG07:
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_HasV2PerceptualHandling():bool:this
            call     [rax]SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_HasV2PerceptualHandling():bool:this
            mov      r13d, eax
            mov      rdi, r15
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_HasV2PerceptualHandling():bool:this
            cmp      dword ptr [rdi], edi
            call     [rax]SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_HasV2PerceptualHandling():bool:this
            xor      eax, r13d
            movzx    r13, al
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_HasNoPerceptualHandling():bool:this
            call     [rax]SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_HasNoPerceptualHandling():bool:this
            test     eax, eax
            jne      SHORT G_M49635_IG09
     						;; size=61 bbWeight=1 PerfScore 14.50
     G_M49635_IG08:
            test     r13d, r13d
            je       G_M49635_IG11
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_HasV2PerceptualHandling():bool:this
            call     [rax]SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_HasV2PerceptualHandling():bool:this
            test     eax, eax
            je       G_M49635_IG11
     						;; size=32 bbWeight=0.50 PerfScore 3.00
     G_M49635_IG09:
            vmovss   xmm0, dword ptr [rbp-0x40]
            vinsertps xmm0, xmm0, dword ptr [rbp-0x3C], 16
            vinsertps xmm0, xmm0, dword ptr [rbp-0x38], 40
            vmovaps  xmmword ptr [rbp-0x90], xmm0
            mov      rbx, gword ptr [rbx+0x08]
            cmp      byte  ptr [rbx], bl
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile:InitializeHeader():this
            call     [rax]SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile:InitializeHeader():this
            mov      rdi, gword ptr [rbx+0x18]
            cmp      dword ptr [rdi+0x34], 0xD1FFAB1E
            jne      SHORT G_M49635_IG10
            vmovaps  xmm0, xmmword ptr [rbp-0x90]
            vxorps   xmm1, xmm1, xmm1
            vrangeps xmm1, xmm0, xmm1, 5
            vxorps   xmm2, xmm2, xmm2
            vbroadcastss xmm3, dword ptr [reloc @RWD12]
            vfixupimmps xmm0, xmm2, xmm3, 0
            vfixupimmps xmm1, xmm0, xmm3, 0
            vmovaps  xmm0, xmm1
            vmovsd   qword ptr [rbp-0x90], xmm0
            vextractps dword ptr [rbp-0x88], xmm0, 2
     						;; size=124 bbWeight=0.50 PerfScore 18.21
     G_M49635_IG10:
            vmovaps  xmm0, xmmword ptr [rbp-0x90]
            vmulps   xmm0, xmm0, xmmword ptr [reloc @RWD16]
            vaddps   xmm0, xmm0, xmmword ptr [reloc @RWD32]
            vmovaps  xmm1, xmm0
            vmovss   dword ptr [rbp-0x40], xmm1
            vmovshdup xmm1, xmm0
            vmovss   dword ptr [rbp-0x3C], xmm1
            vunpckhps xmm0, xmm0, xmm0
            vmovss   dword ptr [rbp-0x38], xmm0
     						;; size=50 bbWeight=0.50 PerfScore 8.12
     G_M49635_IG11:
            mov      rdi, r15
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_HasNoPerceptualHandling():bool:this
            call     [rax]SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_HasNoPerceptualHandling():bool:this
            test     eax, eax
            jne      SHORT G_M49635_IG13
     						;; size=19 bbWeight=1 PerfScore 4.75
     G_M49635_IG12:
            test     r13d, r13d
            je       G_M49635_IG15
            mov      rdi, r15
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_HasV2PerceptualHandling():bool:this
            call     [rax]SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_HasV2PerceptualHandling():bool:this
            test     eax, eax
            je       G_M49635_IG15
     						;; size=32 bbWeight=0.50 PerfScore 3.00
     G_M49635_IG13:
            vmovsd   xmm0, qword ptr [rbp-0x40]
            vinsertps xmm0, xmm0, dword ptr [rbp-0x38], 40
            vmulps   xmm0, xmm0, xmmword ptr [reloc @RWD48]
            vsubps   xmm0, xmm0, xmmword ptr [reloc @RWD64]
            vmovaps  xmmword ptr [rbp-0xA0], xmm0
            mov      rbx, gword ptr [r15+0x08]
            cmp      byte  ptr [rbx], bl
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile:InitializeHeader():this
            call     [rax]SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile:InitializeHeader():this
            mov      rdi, gword ptr [rbx+0x18]
            cmp      dword ptr [rdi+0x34], 0xD1FFAB1E
            jne      SHORT G_M49635_IG14
            vmovaps  xmm0, xmmword ptr [rbp-0xA0]
            vxorps   xmm1, xmm1, xmm1
            vrangeps xmm1, xmm0, xmm1, 5
            vxorps   xmm2, xmm2, xmm2
            vbroadcastss xmm3, dword ptr [reloc @RWD12]
            vfixupimmps xmm0, xmm2, xmm3, 0
            vfixupimmps xmm1, xmm0, xmm3, 0
            vmovaps  xmm0, xmm1
            vmovsd   qword ptr [rbp-0xA0], xmm0
            vextractps dword ptr [rbp-0x98], xmm0, 2
     						;; size=133 bbWeight=0.50 PerfScore 22.21
     G_M49635_IG14:
            vmovaps  xmm0, xmmword ptr [rbp-0xA0]
            vmovaps  xmm1, xmm0
            vmovss   dword ptr [rbp-0x40], xmm1
            vmovshdup xmm1, xmm0
            vmovss   dword ptr [rbp-0x3C], xmm1
            vunpckhps xmm0, xmm0, xmm0
            vmovss   dword ptr [rbp-0x38], xmm0
     						;; size=34 bbWeight=0.50 PerfScore 3.12
     G_M49635_IG15:
            mov      rbx, gword ptr [r15+0x08]
            cmp      byte  ptr [rbx], bl
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile:InitializeHeader():this
            call     [rax]SixLabors.ImageSharp.Metadata.Profiles.Icc.IccProfile:InitializeHeader():this
            mov      rsi, gword ptr [rbx+0x18]
            mov      r13d, dword ptr [rsi+0x34]
            cmp      r13d, 0xD1FFAB1E
            jne      G_M49635_IG20
     						;; size=42 bbWeight=1 PerfScore 12.75
     G_M49635_IG16:
            lea      rsi, [rbp-0x40]
            mov      rdi, r14
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsCieXyzCieXyz:Convert[SixLabors.ImageSharp.ColorProfiles.CieXyz,SixLabors.ImageSharp.ColorProfiles.CieLab](SixLabors.ImageSharp.ColorProfiles.ColorProfileConverter,byref):SixLabors.ImageSharp.ColorProfiles.CieLab
            call     [rax]SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsCieXyzCieXyz:Convert[SixLabors.ImageSharp.ColorProfiles.CieXyz,SixLabors.ImageSharp.ColorProfiles.CieLab](SixLabors.ImageSharp.ColorProfiles.ColorProfileConverter,byref):SixLabors.ImageSharp.ColorProfiles.CieLab
            vmovsd   qword ptr [rbp-0xB0], xmm0
            vmovss   dword ptr [rbp-0xA8], xmm1
            lea      rdi, [rbp-0xB0]
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.CieLab:ToScaledVector4():System.Numerics.Vector4:this
            call     [rax]SixLabors.ImageSharp.ColorProfiles.CieLab:ToScaledVector4():System.Numerics.Vector4:this
            vmovsd   qword ptr [rbp-0xC0], xmm0
            vmovsd   qword ptr [rbp-0xB8], xmm1
            mov      rdi, gword ptr [r15+0x10]
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.Conversion.Icc.IccConverterBase:get_Is16BitLutEntry():bool:this
            cmp      dword ptr [rdi], edi
            call     [rax]SixLabors.ImageSharp.ColorProfiles.Conversion.Icc.IccConverterBase:get_Is16BitLutEntry():bool:this
            test     eax, eax
            je       SHORT G_M49635_IG18
            vmovaps  xmm0, xmmword ptr [rbp-0xC0]
            vmulps   xmm0, xmm0, dword ptr [reloc @RWD04] {1to4}
            vdivps   xmm0, xmm0, dword ptr [reloc @RWD00] {1to4}
            vmovhlps xmm1, xmm1, xmm0
     						;; size=119 bbWeight=0.50 PerfScore 19.62
     G_M49635_IG17:
            vzeroupper 
    -       add      rsp, 224
    +       add      rsp, 240
            pop      rbx
            pop      r13
            pop      r14
            pop      r15
            pop      rbp
            ret      
     						;; size=19 bbWeight=0.50 PerfScore 2.38
     G_M49635_IG18:
            vmovaps  xmm0, xmmword ptr [rbp-0xC0]
            vmovhlps xmm1, xmm1, xmm0
     						;; size=11 bbWeight=0.50 PerfScore 1.00
     G_M49635_IG19:
            vzeroupper 
    -       add      rsp, 224
    +       add      rsp, 240
            pop      rbx
            pop      r13
            pop      r14
            pop      r15
            pop      rbp
            ret      
     						;; size=19 bbWeight=0.50 PerfScore 2.38
     G_M49635_IG20:
            cmp      r13d, 0xD1FFAB1E
            jne      G_M49635_IG29
            vmovsd   xmm0, qword ptr [rbp-0x40]
            vinsertps xmm0, xmm0, dword ptr [rbp-0x38], 40
            vxorps   xmm1, xmm1, xmm1
            vaddps   xmm0, xmm1, xmm0
            vmulps   xmm0, xmm0, dword ptr [reloc @RWD80] {1to4}
            vinsertps xmm0, xmm0, dword ptr [reloc @RWD84], 48
            vmovhlps xmm1, xmm1, xmm0
     						;; size=57 bbWeight=0.50 PerfScore 8.29
     G_M49635_IG21:
            vzeroupper 
    -       add      rsp, 224
    +       add      rsp, 240
            pop      rbx
            pop      r13
            pop      r14
            pop      r15
            pop      rbp
            ret      
     						;; size=19 bbWeight=0.50 PerfScore 2.38
     G_M49635_IG22:
            lea      rdi, [rbp-0x78]
            mov      esi, 28
            mov      edx, 1
            mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
            call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
            mov      edi, dword ptr [rbp-0x68]
            cmp      edi, dword ptr [rbp-0x58]
            jbe      SHORT G_M49635_IG24
     						;; size=34 bbWeight=0 PerfScore 0.00
     G_M49635_IG23:
            mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
            call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
            int3     
     						;; size=13 bbWeight=0 PerfScore 0.00
     G_M49635_IG24:
            mov      rsi, bword ptr [rbp-0x60]
            mov      eax, edi
            lea      r15, bword ptr [rsi+2*rax]
            mov      esi, dword ptr [rbp-0x58]
            sub      esi, edi
            cmp      esi, 11
            jb       SHORT G_M49635_IG25
            vmovups  xmm0, xmmword ptr [reloc @RWD88]
            vmovups  xmmword ptr [r15], xmm0
            mov      dword ptr [r15+0x10], 0xD1FFAB1E
            mov      word  ptr [r15+0x14], 32
            mov      edi, dword ptr [rbp-0x68]
            add      edi, 11
            mov      dword ptr [rbp-0x68], edi
            jmp      SHORT G_M49635_IG26
     						;; size=59 bbWeight=0 PerfScore 0.00
     G_M49635_IG25:
            lea      rdi, [rbp-0x78]
            mov      rsi, 0xD1FFAB1E      ; 'Source PCS '
            mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
            call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
     						;; size=26 bbWeight=0 PerfScore 0.00
     G_M49635_IG26:
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_PcsType():uint:this
            call     [rax]SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_PcsType():uint:this
            mov      esi, eax
            lea      rdi, [rbp-0x78]
            mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this
            call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this
            mov      edi, dword ptr [rbp-0x68]
            cmp      edi, dword ptr [rbp-0x58]
            ja       G_M49635_IG23
            mov      rsi, bword ptr [rbp-0x60]
            mov      eax, edi
            lea      rbx, bword ptr [rsi+2*rax]
            mov      esi, dword ptr [rbp-0x58]
            sub      esi, edi
            cmp      esi, 17
            jb       SHORT G_M49635_IG27
            vmovups  ymm0, ymmword ptr [reloc @RWD104]
            vmovups  ymmword ptr [rbx], ymm0
            mov      word  ptr [rbx+0x20], 100
            mov      edi, dword ptr [rbp-0x68]
            add      edi, 17
            mov      dword ptr [rbp-0x68], edi
            jmp      SHORT G_M49635_IG28
     						;; size=94 bbWeight=0 PerfScore 0.00
     G_M49635_IG27:
            lea      rdi, [rbp-0x78]
            mov      rsi, 0xD1FFAB1E      ; ' is not supported'
            mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
            call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
     						;; size=26 bbWeight=0 PerfScore 0.00
     G_M49635_IG28:
            mov      rdi, 0xD1FFAB1E      ; System.ArgumentOutOfRangeException
            call     CORINFO_HELP_NEWSFAST
            mov      rbx, rax
            lea      rdi, [rbp-0x78]
            mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
            call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
            mov      rsi, rax
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:.ctor(System.String):this
            call     [rax]System.ArgumentOutOfRangeException:.ctor(System.String):this
            mov      rdi, rbx
            call     CORINFO_HELP_THROW
            int3     
     						;; size=61 bbWeight=0 PerfScore 0.00
     G_M49635_IG29:
            lea      rdi, [rbp-0xE8]
            mov      esi, 28
            mov      edx, 1
            mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
            call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
            mov      edi, dword ptr [rbp-0xD8]
            cmp      edi, dword ptr [rbp-0xC8]
            ja       G_M49635_IG23
            mov      rsi, bword ptr [rbp-0xD0]
            mov      eax, edi
            lea      rbx, bword ptr [rsi+2*rax]
            mov      esi, dword ptr [rbp-0xC8]
            sub      esi, edi
            cmp      esi, 11
            jb       SHORT G_M49635_IG30
            vmovups  xmm0, xmmword ptr [reloc @RWD136]
            vmovups  xmmword ptr [rbx], xmm0
            mov      dword ptr [rbx+0x10], 0xD1FFAB1E
            mov      word  ptr [rbx+0x14], 32
            mov      edi, dword ptr [rbp-0xD8]
            add      edi, 11
            mov      dword ptr [rbp-0xD8], edi
            jmp      SHORT G_M49635_IG31
     						;; size=115 bbWeight=0 PerfScore 0.00
     G_M49635_IG30:
            lea      rdi, [rbp-0xE8]
            mov      rsi, 0xD1FFAB1E      ; 'Target PCS '
            mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
            call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
     						;; size=29 bbWeight=0 PerfScore 0.00
     G_M49635_IG31:
            mov      rdi, r15
            mov      rax, 0xD1FFAB1E      ; code for SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_PcsType():uint:this
            call     [rax]SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams:get_PcsType():uint:this
            mov      esi, eax
            lea      rdi, [rbp-0xE8]
            mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this
            call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this
            mov      edi, dword ptr [rbp-0xD8]
            cmp      edi, dword ptr [rbp-0xC8]
            ja       G_M49635_IG23
            mov      rsi, bword ptr [rbp-0xD0]
            mov      eax, edi
            lea      rbx, bword ptr [rsi+2*rax]
            mov      esi, dword ptr [rbp-0xC8]
            sub      esi, edi
            cmp      esi, 17
            jb       SHORT G_M49635_IG32
            vmovups  ymm0, ymmword ptr [reloc @RWD152]
            vmovups  ymmword ptr [rbx], ymm0
            mov      word  ptr [rbx+0x20], 100
            mov      edi, dword ptr [rbp-0xD8]
            add      edi, 17
            mov      dword ptr [rbp-0xD8], edi
            jmp      SHORT G_M49635_IG33
     						;; size=115 bbWeight=0 PerfScore 0.00
     G_M49635_IG32:
            lea      rdi, [rbp-0xE8]
            mov      rsi, 0xD1FFAB1E      ; ' is not supported'
            mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
            call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
     						;; size=29 bbWeight=0 PerfScore 0.00
     G_M49635_IG33:
            mov      rdi, 0xD1FFAB1E      ; System.ArgumentOutOfRangeException
            call     CORINFO_HELP_NEWSFAST
            mov      rbx, rax
            lea      rdi, [rbp-0xE8]
            mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
            call     [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
            mov      rsi, rax
            mov      rdi, rbx
            mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:.ctor(System.String):this
            call     [rax]System.ArgumentOutOfRangeException:.ctor(System.String):this
            mov      rdi, rbx
            call     CORINFO_HELP_THROW
            int3     
     						;; size=64 bbWeight=0 PerfScore 0.00
     RWD00  	dd	477FFF00h		;     65535
     RWD04  	dd	477F0000h		;     65280
     RWD08  	dd	3FFFFF00h		;   1.99997
     RWD12  	dd	00000001h		; 1.4013e-45
     RWD16  	dq	3F7F1C633F7F1BA0h, 000000003F7F1BFDh
     RWD32  	dq	3B639CF33B5C3372h, 000000003B3C169Ch
     RWD48  	dq	3F8072343F807296h, 000000003F807267h
     RWD64  	dq	3B6468073B5CF892h, 000000003B3CBEB7h
     RWD80  	dd	3F000080h		;  0.500008
     RWD84  	dd	3F800000h		;         1
     RWD88  	dq	00720075006F0053h, 0050002000650063h
     RWD104 	dq	0020007300690020h, 00200074006F006Eh, 0070007000750073h, 006500740072006Fh
     RWD136 	dq	0067007200610054h, 0050002000740065h
     RWD152 	dq	0020007300690020h, 00200074006F006Eh, 0070007000750073h, 006500740072006Fh
     
     
    -; Total bytes of code 1756, prolog size 67, PerfScore 185.17, instruction count 362, allocated bytes for code 1756 (MethodHash=f3073e1c) for method SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc:GetTargetPcsWithPerceptualAdjustment(System.Numerics.Vector4,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverter):System.Numerics.Vector4 (FullOpts)
    +; Total bytes of code 1782, prolog size 67, PerfScore 187.17, instruction count 366, allocated bytes for code 1782 (MethodHash=f3073e1c) for method SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc:GetTargetPcsWithPerceptualAdjustment(System.Numerics.Vector4,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverterExtensionsIcc+ConversionParams,SixLabors.ImageSharp.ColorProfiles.ColorProfileConverter):System.Numerics.Vector4 (FullOpts)
     ; ============================================================
    1 (0.51 % of base) - SixLabors.ImageSharp.PixelFormats.HalfVector2:ToString():System.String:this
     ; Assembly listing for method SixLabors.ImageSharp.PixelFormats.HalfVector2:ToString():System.String:this (FullOpts)
     ; Emitting BLENDED_CODE for x64 + VEX + EVEX on Unix
     ; FullOpts code
     ; optimized code
     ; rsp based frame
     ; fully interruptible
     ; No PGO data
     ; 0 inlinees with PGO data; 17 single block inlinees; 5 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T01] (  4,  4   )   byref  ->  rdi         this single-def
    -;* V01 loc0         [V01    ] (  0,  0   )   simd8  ->  zero-ref    single-def <System.Numerics.Vector2>
    +;  V01 loc0         [V01,T09] (  3,  3   )   simd8  ->  [rsp+0x00]  spill-single-def <System.Numerics.Vector2>
     ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;  V03 tmp1         [V03,T00] (  4,  8   )     ref  ->  rbx         class-hnd exact single-def "NewArr temp" <System.Object[]>
     ;  V04 tmp2         [V04,T02] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Single>
     ;  V05 tmp3         [V05,T03] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Single>
    -;  V06 tmp4         [V06    ] (  4,  4   )   simd8  ->  [rsp+0x00]  do-not-enreg[SB] must-init ld-addr-op "Inline ldloca(s) first use temp" <System.Numerics.Vector2>
    +;  V06 tmp4         [V06,T10] (  2,  2   )   simd8  ->  mm0         ld-addr-op single-def "Inline ldloca(s) first use temp" <System.Numerics.Vector2>
     ;* V07 tmp5         [V07    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
     ;* V08 tmp6         [V08    ] (  0,  0   )  struct ( 8) zero-ref    "System.Half tmp" <System.Half>
     ;* V09 tmp7         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Half>
     ;* V10 tmp8         [V10    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
     ;* V11 tmp9         [V11    ] (  0,  0   )  struct ( 8) zero-ref    "System.Half tmp" <System.Half>
     ;* V12 tmp10        [V12    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Half>
     ;* V13 tmp11        [V13    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Runtime.CompilerServices.FormattableStringFactory+ConcreteFormattableString>
     ;* V14 tmp12        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
     ;* V15 tmp13        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Object[]>
     ;* V16 tmp14        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
     ;* V17 tmp15        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
     ;* V18 tmp16        [V18    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[System.Object]>
     ;* V19 tmp17        [V19    ] (  0,  0   )     ref  ->  zero-ref   
     ;* V20 tmp18        [V20    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
     ;* V21 tmp19        [V21    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] "stack allocated System.Runtime.CompilerServices.FormattableStringFactory+ConcreteFormattableString" <System.Runtime.CompilerServices.FormattableStringFactory+ConcreteFormattableString>
    -;  V22 tmp20        [V22,T09] (  3,  3   )   float  ->  [rsp+0x00]  do-not-enreg[] "field V06.X (fldOffset=0x0)" P-DEP
    -;  V23 tmp21        [V23,T10] (  3,  3   )   float  ->  [rsp+0x04]  do-not-enreg[] "field V06.Y (fldOffset=0x4)" P-DEP
    -;* V24 tmp22        [V24    ] (  0,  0   )  ushort  ->  zero-ref    single-def "field V08._value (fldOffset=0x0)" P-INDEP
    -;  V25 tmp23        [V25,T06] (  2,  2   )  ushort  ->  rsi         single-def "field V09._value (fldOffset=0x0)" P-INDEP
    -;* V26 tmp24        [V26    ] (  0,  0   )  ushort  ->  zero-ref    single-def "field V11._value (fldOffset=0x0)" P-INDEP
    -;  V27 tmp25        [V27,T07] (  2,  2   )  ushort  ->  rdi         single-def "field V12._value (fldOffset=0x0)" P-INDEP
    -;* V28 tmp26        [V28    ] (  0,  0   )   byref  ->  zero-ref    "field V18._reference (fldOffset=0x0)" P-INDEP
    -;* V29 tmp27        [V29    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
    -;  V30 tmp28        [V30,T05] (  2,  2   )   byref  ->  rdx         single-def "field V20._reference (fldOffset=0x0)" P-INDEP
    -;* V31 tmp29        [V31,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V20._length (fldOffset=0x8)" P-INDEP
    -;* V32 tmp30        [V32    ] (  0,  0   )    long  ->  zero-ref    single-def "V21.[000..008)"
    -;* V33 tmp31        [V33    ] (  0,  0   )     ref  ->  zero-ref    single-def "V21.[008..016)"
    -;* V34 tmp32        [V34    ] (  0,  0   )     ref  ->  zero-ref    single-def "V21.[016..024)"
    -;  V35 cse0         [V35,T04] (  3,  3   )    long  ->  r15         "CSE #01: aggressive"
    +;* V22 tmp20        [V22    ] (  0,  0   )  ushort  ->  zero-ref    single-def "field V08._value (fldOffset=0x0)" P-INDEP
    +;  V23 tmp21        [V23,T06] (  2,  2   )  ushort  ->  rsi         single-def "field V09._value (fldOffset=0x0)" P-INDEP
    +;* V24 tmp22        [V24    ] (  0,  0   )  ushort  ->  zero-ref    single-def "field V11._value (fldOffset=0x0)" P-INDEP
    +;  V25 tmp23        [V25,T07] (  2,  2   )  ushort  ->  rdi         single-def "field V12._value (fldOffset=0x0)" P-INDEP
    +;* V26 tmp24        [V26    ] (  0,  0   )   byref  ->  zero-ref    "field V18._reference (fldOffset=0x0)" P-INDEP
    +;* V27 tmp25        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
    +;  V28 tmp26        [V28,T05] (  2,  2   )   byref  ->  rdx         single-def "field V20._reference (fldOffset=0x0)" P-INDEP
    +;* V29 tmp27        [V29,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V20._length (fldOffset=0x8)" P-INDEP
    +;* V30 tmp28        [V30    ] (  0,  0   )    long  ->  zero-ref    single-def "V21.[000..008)"
    +;* V31 tmp29        [V31    ] (  0,  0   )     ref  ->  zero-ref    single-def "V21.[008..016)"
    +;* V32 tmp30        [V32    ] (  0,  0   )     ref  ->  zero-ref    single-def "V21.[016..024)"
    +;  V33 cse0         [V33,T04] (  3,  3   )    long  ->  r15         "CSE #01: aggressive"
     ;
     ; Lcl frame size = 8
     
     G_M19285_IG01:
            push     r15
            push     rbx
            push     rax
    -       xor      eax, eax
    -       mov      qword ptr [rsp], rax
    -						;; size=10 bbWeight=1 PerfScore 4.25
    +						;; size=4 bbWeight=1 PerfScore 3.00
     G_M19285_IG02:
            movzx    rsi, word  ptr [rdi]
            vmovd    xmm0, esi
            vcvtph2ps xmm0, xmm0
    -       vmovss   dword ptr [rsp], xmm0
    +       vinsertps xmm0, xmm0, xmm0, 14
            mov      edi, dword ptr [rdi]
            shr      edi, 16
            movzx    rdi, di
    -       vmovd    xmm0, edi
    -       vcvtph2ps xmm0, xmm0
    -       vmovss   dword ptr [rsp+0x04], xmm0
    +       vmovd    xmm1, edi
    +       vcvtph2ps xmm1, xmm1
    +       vinsertps xmm0, xmm0, xmm1, 16
    +       vmovsd   qword ptr [rsp], xmm0
            mov      rdi, 0xD1FFAB1E      ; System.Object[]
            mov      esi, 2
            call     CORINFO_HELP_NEWARR_1_PTR
            mov      rbx, rax
            mov      r15, 0xD1FFAB1E      ; System.Single
            mov      rdi, r15
            call     CORINFO_HELP_NEWSFAST
    -       vmovss   xmm0, dword ptr [rsp]
    +       vmovsd   xmm0, qword ptr [rsp]
            vmovss   dword ptr [rax+0x08], xmm0
            lea      rdi, bword ptr [rbx+0x10]
            mov      rsi, rax
            call     CORINFO_HELP_ASSIGN_REF
            mov      rdi, r15
            call     CORINFO_HELP_NEWSFAST
    -       vmovss   xmm0, dword ptr [rsp+0x04]
    -       vmovss   dword ptr [rax+0x08], xmm0
    +       vmovsd   xmm0, qword ptr [rsp]
    +       vextractps dword ptr [rax+0x08], xmm0, 1
            lea      rdi, bword ptr [rbx+0x18]
            mov      rsi, rax
            call     CORINFO_HELP_ASSIGN_REF
            lea      rdx, bword ptr [rbx+0x10]
            mov      ecx, 2
            mov      rdi, 0xD1FFAB1E      ; const ptr
            mov      rdi, gword ptr [rdi]
            mov      rsi, 0xD1FFAB1E      ; 'HalfVector2({0:#0.##}, {1:#0.##})'
            mov      rax, 0xD1FFAB1E      ; code for System.String:FormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.String
    -						;; size=176 bbWeight=1 PerfScore 36.25
    +						;; size=183 bbWeight=1 PerfScore 40.25
     G_M19285_IG03:
            add      rsp, 8
            pop      rbx
            pop      r15
            tail.jmp [rax]System.String:FormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.String
     						;; size=10 bbWeight=1 PerfScore 3.25
     
    -; Total bytes of code 196, prolog size 10, PerfScore 43.75, instruction count 44, allocated bytes for code 196 (MethodHash=88fab4aa) for method SixLabors.ImageSharp.PixelFormats.HalfVector2:ToString():System.String:this (FullOpts)
    +; Total bytes of code 197, prolog size 4, PerfScore 46.50, instruction count 43, allocated bytes for code 197 (MethodHash=88fab4aa) for method SixLabors.ImageSharp.PixelFormats.HalfVector2:ToString():System.String:this (FullOpts)
     ; ============================================================

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

    Larger list of diffs: https://github.com/proxy/gist.github.com/MihuBot/265050f86c9b6ce7cd3c0f493baf1446

  2. MihuBot commented on Jun 19, 2026

    @MihuBot
    OwnerAuthor

    Top method improvements

    -186 (-42.27 % of base) - SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.GammaWorkingSpace:Equals(System.Object):bool:this
     ; Assembly listing for method SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.GammaWorkingSpace:Equals(System.Object):bool: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; 30 single block inlinees; 2 inlinees without PGO data
     ; Final local variable assignments
     ;
    -;  V00 this         [V00,T03] (  6,  4   )     ref  ->  rdi         this class-hnd single-def <SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.GammaWorkingSpace>
    -;  V01 arg1         [V01,T02] (  6,  4.50)     ref  ->  rsi         class-hnd single-def <System.Object>
    +;  V00 this         [V00,T01] (  6,  4   )     ref  ->  rdi         this class-hnd single-def <SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.GammaWorkingSpace>
    +;  V01 arg1         [V01,T00] (  6,  4.50)     ref  ->  rsi         class-hnd single-def <System.Object>
     ;  V02 loc0         [V02,T04] (  4,  2   )     ref  ->  rsi         class-hnd exact <SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.GammaWorkingSpace>
    -;  V03 loc1         [V03,T11] (  4,  2   )   float  ->  mm0         ld-addr-op single-def
    -;  V04 loc2         [V04    ] (  2,  1   )  struct (16) [rbp-0x10]  do-not-enreg[SF] must-init ld-addr-op <SixLabors.ImageSharp.ColorProfiles.CieXyz>
    +;  V03 loc1         [V03,T09] (  4,  2   )   float  ->  mm0         ld-addr-op single-def
    +;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op <SixLabors.ImageSharp.ColorProfiles.CieXyz>
     ;* V05 loc3         [V05    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] ld-addr-op <SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates>
     ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V07 tmp1         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling qmarkNull" <SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.GammaWorkingSpace>
     ;* V08 tmp2         [V08    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyz>
     ;* V09 tmp3         [V09    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates>
     ;  V10 tmp4         [V10,T06] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
     ;  V11 tmp5         [V11,T08] (  4,  4   )   float  ->  mm1         "Inlining Arg"
     ;* V12 tmp6         [V12    ] (  0,  0   )   float  ->  zero-ref    "Inlining Arg"
    -;  V13 tmp7         [V13    ] (  2,  2   )  struct (16) [rbp-0x20]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyz>
    +;* V13 tmp7         [V13    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyz>
     ;* V14 tmp8         [V14    ] (  0,  0   )  simd12  ->  zero-ref    "impAppendStmt"
     ;* V15 tmp9         [V15    ] (  0,  0   )  simd12  ->  zero-ref    "spilled call-like call argument"
     ;  V16 tmp10        [V16,T07] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
    -;  V17 tmp11        [V17    ] (  9,  4.50)  struct ( 8) [rbp-0x28]  do-not-enreg[SF] must-init ld-addr-op "Inline stloc first use temp" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V17 tmp11        [V17    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inline stloc first use temp" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V18 tmp12        [V18    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates>
     ;* V19 tmp13        [V19    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V20 tmp14        [V20    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V21 tmp15        [V21    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    -;  V22 tmp16        [V22    ] (  3,  3   )  struct ( 8) [rbp-0x30]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V22 tmp16        [V22    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V23 tmp17        [V23    ] (  0,  0   )   simd8  ->  zero-ref    "impAppendStmt"
     ;* V24 tmp18        [V24    ] (  0,  0   )   simd8  ->  zero-ref    "spilled call-like call argument"
    -;  V25 tmp19        [V25    ] (  3,  3   )  struct ( 8) [rbp-0x38]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V25 tmp19        [V25    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V26 tmp20        [V26    ] (  0,  0   )   simd8  ->  zero-ref    "impAppendStmt"
     ;* V27 tmp21        [V27    ] (  0,  0   )   simd8  ->  zero-ref    "spilled call-like call argument"
    -;  V28 tmp22        [V28    ] (  3,  3   )  struct ( 8) [rbp-0x40]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V28 tmp22        [V28    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V29 tmp23        [V29    ] (  0,  0   )   simd8  ->  zero-ref    "impAppendStmt"
     ;* V30 tmp24        [V30    ] (  0,  0   )   simd8  ->  zero-ref    "spilled call-like call argument"
     ;  V31 tmp25        [V31,T05] (  2,  2   )     int  ->  rax         "Single return block return value"
    -;  V32 tmp26        [V32,T21] (  2,  1   )   float  ->  [rbp-0x10]  do-not-enreg[] "field V04.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V33 tmp27        [V33,T22] (  2,  1   )   float  ->  [rbp-0x0C]  do-not-enreg[] "field V04.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V34 tmp28        [V34,T23] (  2,  1   )   float  ->  [rbp-0x08]  do-not-enreg[] "field V04.<Z>k__BackingField (fldOffset=0x8)" P-DEP
    -;* V35 tmp29        [V35    ] (  0,  0   )   float  ->  zero-ref    "field V08.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V36 tmp30        [V36    ] (  0,  0   )   float  ->  zero-ref    "field V08.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;* V37 tmp31        [V37    ] (  0,  0   )   float  ->  zero-ref    "field V08.<Z>k__BackingField (fldOffset=0x8)" P-INDEP
    -;  V38 tmp32        [V38,T12] (  2,  2   )   float  ->  [rbp-0x20]  do-not-enreg[] "field V13.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V39 tmp33        [V39,T13] (  2,  2   )   float  ->  [rbp-0x1C]  do-not-enreg[] "field V13.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V40 tmp34        [V40,T14] (  2,  2   )   float  ->  [rbp-0x18]  do-not-enreg[] "field V13.<Z>k__BackingField (fldOffset=0x8)" P-DEP
    -;  V41 tmp35        [V41,T09] (  6,  3   )   float  ->  [rbp-0x28]  do-not-enreg[] "field V17.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V42 tmp36        [V42,T10] (  6,  3   )   float  ->  [rbp-0x24]  do-not-enreg[] "field V17.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;* V43 tmp37        [V43    ] (  0,  0   )   float  ->  zero-ref    "field V19.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V44 tmp38        [V44    ] (  0,  0   )   float  ->  zero-ref    "field V19.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;* V45 tmp39        [V45    ] (  0,  0   )   float  ->  zero-ref    "field V20.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V46 tmp40        [V46    ] (  0,  0   )   float  ->  zero-ref    "field V20.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;* V47 tmp41        [V47    ] (  0,  0   )   float  ->  zero-ref    "field V21.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V48 tmp42        [V48    ] (  0,  0   )   float  ->  zero-ref    "field V21.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;  V49 tmp43        [V49,T15] (  2,  1.50)   float  ->  [rbp-0x30]  do-not-enreg[] "field V22.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V50 tmp44        [V50,T16] (  2,  1.50)   float  ->  [rbp-0x2C]  do-not-enreg[] "field V22.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V51 tmp45        [V51,T17] (  2,  1.50)   float  ->  [rbp-0x38]  do-not-enreg[] "field V25.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V52 tmp46        [V52,T18] (  2,  1.50)   float  ->  [rbp-0x34]  do-not-enreg[] "field V25.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V53 tmp47        [V53,T19] (  2,  1.50)   float  ->  [rbp-0x40]  do-not-enreg[] "field V28.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V54 tmp48        [V54,T20] (  2,  1.50)   float  ->  [rbp-0x3C]  do-not-enreg[] "field V28.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V55 tmp49        [V55,T24] (  2,  1   )   float  ->  mm0         single-def "V05.[000..004)"
    -;  V56 tmp50        [V56,T25] (  2,  1   )   float  ->  mm1         single-def "V05.[004..008)"
    -;  V57 tmp51        [V57,T26] (  2,  1   )   float  ->  mm2         single-def "V05.[008..012)"
    -;  V58 tmp52        [V58,T27] (  2,  1   )   float  ->  mm3         single-def "V05.[012..016)"
    -;  V59 tmp53        [V59,T28] (  2,  1   )   float  ->  mm4         single-def "V05.[016..020)"
    -;  V60 tmp54        [V60,T29] (  2,  1   )   float  ->  mm5         single-def "V05.[020..024)"
    -;  V61 tmp55        [V61,T30] (  2,  1   )   float  ->  mm6         single-def "V18.[000..004)"
    -;  V62 tmp56        [V62,T31] (  2,  1   )   float  ->  mm7         single-def "V18.[004..008)"
    -;  V63 tmp57        [V63,T32] (  2,  1   )   float  ->  mm8         single-def "V18.[008..012)"
    -;  V64 tmp58        [V64,T33] (  2,  1   )   float  ->  mm9         single-def "V18.[012..016)"
    -;  V65 tmp59        [V65,T34] (  2,  1   )   float  ->  mm10         single-def "V18.[016..020)"
    -;  V66 tmp60        [V66,T35] (  2,  1   )   float  ->  mm11         single-def "V18.[020..024)"
    -;  V67 tmp61        [V67,T00] (  7,  7   )   byref  ->  rdi         single-def "Spilling address for field-by-field copy"
    -;  V68 tmp62        [V68,T01] (  7,  7   )   byref  ->  rsi         single-def "Spilling address for field-by-field copy"
    +;* V32 tmp26        [V32    ] (  0,  0   )   float  ->  zero-ref    "field V08.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V33 tmp27        [V33    ] (  0,  0   )   float  ->  zero-ref    "field V08.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V34 tmp28        [V34    ] (  0,  0   )   float  ->  zero-ref    "field V08.<Z>k__BackingField (fldOffset=0x8)" P-INDEP
    +;* V35 tmp29        [V35    ] (  0,  0   )   float  ->  zero-ref    "field V19.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V36 tmp30        [V36    ] (  0,  0   )   float  ->  zero-ref    "field V19.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V37 tmp31        [V37    ] (  0,  0   )   float  ->  zero-ref    "field V20.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V38 tmp32        [V38    ] (  0,  0   )   float  ->  zero-ref    "field V20.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V39 tmp33        [V39    ] (  0,  0   )   float  ->  zero-ref    "field V21.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V40 tmp34        [V40    ] (  0,  0   )   float  ->  zero-ref    "field V21.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V41 tmp35        [V41    ] (  0,  0   )  simd12  ->  zero-ref    "V04.[000..012)"
    +;* V42 tmp36        [V42    ] (  0,  0   )  simd12  ->  zero-ref    "V13.[000..012)"
    +;* V43 tmp37        [V43    ] (  0,  0   )   simd8  ->  zero-ref    "V17.[000..008)"
    +;* V44 tmp38        [V44    ] (  0,  0   )   simd8  ->  zero-ref    "V22.[000..008)"
    +;* V45 tmp39        [V45    ] (  0,  0   )   simd8  ->  zero-ref    "V25.[000..008)"
    +;* V46 tmp40        [V46    ] (  0,  0   )   simd8  ->  zero-ref    "V28.[000..008)"
    +;  V47 tmp41        [V47,T10] (  2,  1   )   simd8  ->  mm0         single-def "V05.[000..008)"
    +;  V48 tmp42        [V48,T11] (  2,  1   )   simd8  ->  mm1         single-def "V05.[008..016)"
    +;  V49 tmp43        [V49,T12] (  2,  1   )   simd8  ->  mm2         single-def "V05.[016..024)"
    +;  V50 tmp44        [V50,T13] (  2,  1   )   simd8  ->  mm3         single-def "V18.[000..008)"
    +;  V51 tmp45        [V51,T14] (  2,  1   )   simd8  ->  mm4         single-def "V18.[008..016)"
    +;  V52 tmp46        [V52,T15] (  2,  1   )   simd8  ->  mm5         single-def "V18.[016..024)"
    +;  V53 tmp47        [V53,T02] (  4,  4   )   byref  ->  rdi         single-def "Spilling address for field-by-field copy"
    +;  V54 tmp48        [V54,T03] (  4,  4   )   byref  ->  rsi         single-def "Spilling address for field-by-field copy"
     ;
    -; Lcl frame size = 64
    +; Lcl frame size = 0
     
     G_M49381_IG01:
            push     rbp
    -       sub      rsp, 64
    -       lea      rbp, [rsp+0x40]
    -       xor      eax, eax
    -       mov      qword ptr [rbp-0x28], rax
    -       vxorps   xmm8, xmm8, xmm8
    -       vmovdqu  ymmword ptr [rbp-0x20], ymm8
    -						;; size=26 bbWeight=1 PerfScore 4.33
    +       mov      rbp, rsp
    +						;; size=4 bbWeight=1 PerfScore 1.25
     G_M49381_IG02:
            test     rsi, rsi
    -       je       G_M49381_IG07
    -						;; size=9 bbWeight=1 PerfScore 1.25
    +       je       SHORT G_M49381_IG07
    +						;; size=5 bbWeight=1 PerfScore 1.25
     G_M49381_IG03:
            cmp      rdi, rsi
            je       G_M49381_IG13
            mov      rax, 0xD1FFAB1E      ; SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.GammaWorkingSpace
            cmp      qword ptr [rsi], rax
            jne      SHORT G_M49381_IG07
            vmovss   xmm0, dword ptr [rdi+0x2C]
            vmovss   xmm1, dword ptr [rsi+0x2C]
            vucomiss xmm1, xmm0
            jp       SHORT G_M49381_IG04
            je       SHORT G_M49381_IG06
     						;; size=42 bbWeight=0.50 PerfScore 7.25
     G_M49381_IG04:
            vucomiss xmm1, xmm1
            jp       SHORT G_M49381_IG05
            je       SHORT G_M49381_IG07
     						;; size=8 bbWeight=0.50 PerfScore 2.00
     G_M49381_IG05:
            vucomiss xmm0, xmm0
            setp     al
            movzx    rax, al
            test     eax, eax
            je       SHORT G_M49381_IG07
     						;; size=14 bbWeight=0.50 PerfScore 2.00
     G_M49381_IG06:
    -       mov      rax, qword ptr [rdi+0x08]
    -       mov      qword ptr [rbp-0x10], rax
    -       mov      eax, dword ptr [rdi+0x10]
    -       mov      dword ptr [rbp-0x08], eax
    -       mov      rax, qword ptr [rsi+0x08]
    -       mov      qword ptr [rbp-0x20], rax
    -       mov      eax, dword ptr [rsi+0x10]
    -       mov      dword ptr [rbp-0x18], eax
    -       vmovsd   xmm0, qword ptr [rbp-0x10]
    -       vinsertps xmm0, xmm0, dword ptr [rbp-0x08], 40
    +       vmovsd   xmm0, qword ptr [rdi+0x08]
    +       vinsertps xmm0, xmm0, dword ptr [rdi+0x10], 40
            vinsertps xmm0, xmm0, xmm0, 56
    -       vmovsd   xmm1, qword ptr [rbp-0x20]
    -       vinsertps xmm1, xmm1, dword ptr [rbp-0x18], 40
    +       vmovsd   xmm1, qword ptr [rsi+0x08]
    +       vinsertps xmm1, xmm1, dword ptr [rsi+0x10], 40
            vinsertps xmm1, xmm1, xmm1, 56
            vcmpneqps k1, xmm1, xmm0
            kortestb k1, k1
            je       SHORT G_M49381_IG09
    -						;; size=77 bbWeight=0.50 PerfScore 13.50
    +						;; size=49 bbWeight=0.50 PerfScore 9.50
     G_M49381_IG07:
            xor      eax, eax
     						;; size=2 bbWeight=0.50 PerfScore 0.12
     G_M49381_IG08:
    -       add      rsp, 64
            pop      rbp
            ret      
    -						;; size=6 bbWeight=0.50 PerfScore 0.88
    +						;; size=2 bbWeight=0.50 PerfScore 0.75
     G_M49381_IG09:
            add      rdi, 20
    -       vmovss   xmm0, dword ptr [rdi]
    -       vmovss   xmm1, dword ptr [rdi+0x04]
    -       vmovss   xmm2, dword ptr [rdi+0x08]
    -       vmovss   xmm3, dword ptr [rdi+0x0C]
    -       vmovss   xmm4, dword ptr [rdi+0x10]
    -       vmovss   xmm5, dword ptr [rdi+0x14]
    +       vmovsd   xmm0, qword ptr [rdi]
    +       vmovsd   xmm1, qword ptr [rdi+0x08]
    +       vmovsd   xmm2, qword ptr [rdi+0x10]
            add      rsi, 20
    -       vmovss   xmm6, dword ptr [rsi]
    -       vmovss   xmm7, dword ptr [rsi+0x04]
    -       vmovss   xmm8, dword ptr [rsi+0x08]
    -       vmovss   xmm9, dword ptr [rsi+0x0C]
    -       vmovss   xmm10, dword ptr [rsi+0x10]
    -       vmovss   xmm11, dword ptr [rsi+0x14]
    -       vmovss   dword ptr [rbp-0x28], xmm0
    -       vmovss   dword ptr [rbp-0x24], xmm1
    -       vmovss   dword ptr [rbp-0x30], xmm6
    -       vmovss   dword ptr [rbp-0x2C], xmm7
    -       vmovsd   xmm0, qword ptr [rbp-0x28]
    +       vmovsd   xmm3, qword ptr [rsi]
    +       vmovsd   xmm4, qword ptr [rsi+0x08]
    +       vmovsd   xmm5, qword ptr [rsi+0x10]
            vinsertps xmm0, xmm0, xmm0, 60
    -       vmovsd   xmm1, qword ptr [rbp-0x30]
    -       vinsertps xmm1, xmm1, xmm1, 60
    -       vcmpneqps k1, xmm1, xmm0
    +       vinsertps xmm3, xmm3, xmm3, 60
    +       vcmpneqps k1, xmm3, xmm0
            kortestb k1, k1
            jne      SHORT G_M49381_IG10
    -       vmovss   dword ptr [rbp-0x28], xmm2
    -       vmovss   dword ptr [rbp-0x24], xmm3
    -       vmovss   dword ptr [rbp-0x38], xmm8
    -       vmovss   dword ptr [rbp-0x34], xmm9
    -       vmovsd   xmm0, qword ptr [rbp-0x28]
    -       vinsertps xmm0, xmm0, xmm0, 60
    -       vmovsd   xmm1, qword ptr [rbp-0x38]
    -       vinsertps xmm1, xmm1, xmm1, 60
    +       vinsertps xmm0, xmm1, xmm1, 60
    +       vinsertps xmm1, xmm4, xmm4, 60
            vcmpneqps k1, xmm1, xmm0
            kortestb k1, k1
            je       SHORT G_M49381_IG11
    -						;; size=176 bbWeight=0.50 PerfScore 33.25
    +						;; size=86 bbWeight=0.50 PerfScore 16.25
     G_M49381_IG10:
            xor      eax, eax
            jmp      SHORT G_M49381_IG12
     						;; size=4 bbWeight=0.50 PerfScore 1.12
     G_M49381_IG11:
    -       vmovss   dword ptr [rbp-0x28], xmm4
    -       vmovss   dword ptr [rbp-0x24], xmm5
    -       vmovss   dword ptr [rbp-0x40], xmm10
    -       vmovss   dword ptr [rbp-0x3C], xmm11
    -       vmovsd   xmm0, qword ptr [rbp-0x28]
    -       vinsertps xmm0, xmm0, xmm0, 60
    -       vmovsd   xmm1, qword ptr [rbp-0x40]
    -       vinsertps xmm1, xmm1, xmm1, 60
    +       vinsertps xmm0, xmm2, xmm2, 60
    +       vinsertps xmm1, xmm5, xmm5, 60
            vcmpneqps k1, xmm1, xmm0
            kortestb k1, k1
            sete     al
            movzx    rax, al
    -						;; size=59 bbWeight=0.50 PerfScore 7.38
    +						;; size=29 bbWeight=0.50 PerfScore 3.38
     G_M49381_IG12:
    -       add      rsp, 64
            pop      rbp
            ret      
    -						;; size=6 bbWeight=0.50 PerfScore 0.88
    +						;; size=2 bbWeight=0.50 PerfScore 0.75
     G_M49381_IG13:
            mov      eax, 1
     						;; size=5 bbWeight=0.50 PerfScore 0.12
     G_M49381_IG14:
    -       add      rsp, 64
            pop      rbp
            ret      
    -						;; size=6 bbWeight=0.50 PerfScore 0.88
    +						;; size=2 bbWeight=0.50 PerfScore 0.75
     
    -; Total bytes of code 440, prolog size 26, PerfScore 74.96, instruction count 105, allocated bytes for code 448 (MethodHash=4cec3f1a) for method SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.GammaWorkingSpace:Equals(System.Object):bool:this (FullOpts)
    +; Total bytes of code 254, prolog size 4, PerfScore 46.50, instruction count 65, allocated bytes for code 262 (MethodHash=4cec3f1a) for method SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.GammaWorkingSpace:Equals(System.Object):bool:this (FullOpts)
     ; ============================================================
    -167 (-39.95 % of base) - SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.RgbWorkingSpace:Equals(System.Object):bool:this
     ; Assembly listing for method SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.RgbWorkingSpace:Equals(System.Object):bool: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; 26 single block inlinees; 1 inlinees without PGO data
     ; Final local variable assignments
     ;
    -;  V00 this         [V00,T03] (  6,  4   )     ref  ->  rbx         this class-hnd single-def <SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.RgbWorkingSpace>
    -;  V01 arg1         [V01,T02] (  6,  4.50)     ref  ->  rsi         class-hnd single-def <System.Object>
    +;  V00 this         [V00,T01] (  6,  4   )     ref  ->  rbx         this class-hnd single-def <SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.RgbWorkingSpace>
    +;  V01 arg1         [V01,T00] (  6,  4.50)     ref  ->  rsi         class-hnd single-def <System.Object>
     ;  V02 loc0         [V02,T05] (  3,  1.50)     ref  ->  rax         class-hnd single-def <SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.RgbWorkingSpace>
    -;  V03 loc1         [V03    ] (  2,  1   )  struct (16) [rbp-0x18]  do-not-enreg[SF] must-init ld-addr-op <SixLabors.ImageSharp.ColorProfiles.CieXyz>
    +;* V03 loc1         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op <SixLabors.ImageSharp.ColorProfiles.CieXyz>
     ;* V04 loc2         [V04    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] ld-addr-op <SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates>
     ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyz>
     ;* V07 tmp2         [V07    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates>
    -;  V08 tmp3         [V08    ] (  2,  2   )  struct (16) [rbp-0x28]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyz>
    +;* V08 tmp3         [V08    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyz>
     ;* V09 tmp4         [V09    ] (  0,  0   )  simd12  ->  zero-ref    "impAppendStmt"
     ;* V10 tmp5         [V10    ] (  0,  0   )  simd12  ->  zero-ref    "spilled call-like call argument"
     ;  V11 tmp6         [V11,T06] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
    -;  V12 tmp7         [V12    ] (  9,  4.50)  struct ( 8) [rbp-0x30]  do-not-enreg[SF] must-init ld-addr-op "Inline stloc first use temp" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inline stloc first use temp" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V13 tmp8         [V13    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates>
     ;* V14 tmp9         [V14    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V15 tmp10        [V15    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V16 tmp11        [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    -;  V17 tmp12        [V17    ] (  3,  3   )  struct ( 8) [rbp-0x38]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V18 tmp13        [V18    ] (  0,  0   )   simd8  ->  zero-ref    "impAppendStmt"
     ;* V19 tmp14        [V19    ] (  0,  0   )   simd8  ->  zero-ref    "spilled call-like call argument"
    -;  V20 tmp15        [V20    ] (  3,  3   )  struct ( 8) [rbp-0x40]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V20 tmp15        [V20    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V21 tmp16        [V21    ] (  0,  0   )   simd8  ->  zero-ref    "impAppendStmt"
     ;* V22 tmp17        [V22    ] (  0,  0   )   simd8  ->  zero-ref    "spilled call-like call argument"
    -;  V23 tmp18        [V23    ] (  3,  3   )  struct ( 8) [rbp-0x48]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V23 tmp18        [V23    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V24 tmp19        [V24    ] (  0,  0   )   simd8  ->  zero-ref    "impAppendStmt"
     ;* V25 tmp20        [V25    ] (  0,  0   )   simd8  ->  zero-ref    "spilled call-like call argument"
     ;  V26 tmp21        [V26,T04] (  2,  2   )     int  ->  rax         "Single return block return value"
    -;  V27 tmp22        [V27,T18] (  2,  1   )   float  ->  [rbp-0x18]  do-not-enreg[] "field V03.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V28 tmp23        [V28,T19] (  2,  1   )   float  ->  [rbp-0x14]  do-not-enreg[] "field V03.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V29 tmp24        [V29,T20] (  2,  1   )   float  ->  [rbp-0x10]  do-not-enreg[] "field V03.<Z>k__BackingField (fldOffset=0x8)" P-DEP
    -;* V30 tmp25        [V30    ] (  0,  0   )   float  ->  zero-ref    "field V06.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V31 tmp26        [V31    ] (  0,  0   )   float  ->  zero-ref    "field V06.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;* V32 tmp27        [V32    ] (  0,  0   )   float  ->  zero-ref    "field V06.<Z>k__BackingField (fldOffset=0x8)" P-INDEP
    -;  V33 tmp28        [V33,T09] (  2,  2   )   float  ->  [rbp-0x28]  do-not-enreg[] "field V08.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V34 tmp29        [V34,T10] (  2,  2   )   float  ->  [rbp-0x24]  do-not-enreg[] "field V08.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V35 tmp30        [V35,T11] (  2,  2   )   float  ->  [rbp-0x20]  do-not-enreg[] "field V08.<Z>k__BackingField (fldOffset=0x8)" P-DEP
    -;  V36 tmp31        [V36,T07] (  6,  3   )   float  ->  [rbp-0x30]  do-not-enreg[] "field V12.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V37 tmp32        [V37,T08] (  6,  3   )   float  ->  [rbp-0x2C]  do-not-enreg[] "field V12.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;* V38 tmp33        [V38    ] (  0,  0   )   float  ->  zero-ref    "field V14.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V39 tmp34        [V39    ] (  0,  0   )   float  ->  zero-ref    "field V14.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;* V40 tmp35        [V40    ] (  0,  0   )   float  ->  zero-ref    "field V15.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V41 tmp36        [V41    ] (  0,  0   )   float  ->  zero-ref    "field V15.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;* V42 tmp37        [V42    ] (  0,  0   )   float  ->  zero-ref    "field V16.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V43 tmp38        [V43    ] (  0,  0   )   float  ->  zero-ref    "field V16.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;  V44 tmp39        [V44,T12] (  2,  1.50)   float  ->  [rbp-0x38]  do-not-enreg[] "field V17.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V45 tmp40        [V45,T13] (  2,  1.50)   float  ->  [rbp-0x34]  do-not-enreg[] "field V17.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V46 tmp41        [V46,T14] (  2,  1.50)   float  ->  [rbp-0x40]  do-not-enreg[] "field V20.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V47 tmp42        [V47,T15] (  2,  1.50)   float  ->  [rbp-0x3C]  do-not-enreg[] "field V20.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V48 tmp43        [V48,T16] (  2,  1.50)   float  ->  [rbp-0x48]  do-not-enreg[] "field V23.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V49 tmp44        [V49,T17] (  2,  1.50)   float  ->  [rbp-0x44]  do-not-enreg[] "field V23.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V50 tmp45        [V50,T21] (  2,  1   )   float  ->  mm0         single-def "V04.[000..004)"
    -;  V51 tmp46        [V51,T22] (  2,  1   )   float  ->  mm1         single-def "V04.[004..008)"
    -;  V52 tmp47        [V52,T23] (  2,  1   )   float  ->  mm2         single-def "V04.[008..012)"
    -;  V53 tmp48        [V53,T24] (  2,  1   )   float  ->  mm3         single-def "V04.[012..016)"
    -;  V54 tmp49        [V54,T25] (  2,  1   )   float  ->  mm4         single-def "V04.[016..020)"
    -;  V55 tmp50        [V55,T26] (  2,  1   )   float  ->  mm5         single-def "V04.[020..024)"
    -;  V56 tmp51        [V56,T27] (  2,  1   )   float  ->  mm6         single-def "V13.[000..004)"
    -;  V57 tmp52        [V57,T28] (  2,  1   )   float  ->  mm7         single-def "V13.[004..008)"
    -;  V58 tmp53        [V58,T29] (  2,  1   )   float  ->  mm8         single-def "V13.[008..012)"
    -;  V59 tmp54        [V59,T30] (  2,  1   )   float  ->  mm9         single-def "V13.[012..016)"
    -;  V60 tmp55        [V60,T31] (  2,  1   )   float  ->  mm10         single-def "V13.[016..020)"
    -;  V61 tmp56        [V61,T32] (  2,  1   )   float  ->  mm11         single-def "V13.[020..024)"
    -;  V62 tmp57        [V62,T00] (  7,  7   )   byref  ->  rbx         single-def "Spilling address for field-by-field copy"
    -;  V63 tmp58        [V63,T01] (  7,  7   )   byref  ->  rax         single-def "Spilling address for field-by-field copy"
    +;* V27 tmp22        [V27    ] (  0,  0   )   float  ->  zero-ref    "field V06.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V28 tmp23        [V28    ] (  0,  0   )   float  ->  zero-ref    "field V06.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V29 tmp24        [V29    ] (  0,  0   )   float  ->  zero-ref    "field V06.<Z>k__BackingField (fldOffset=0x8)" P-INDEP
    +;* V30 tmp25        [V30    ] (  0,  0   )   float  ->  zero-ref    "field V14.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V31 tmp26        [V31    ] (  0,  0   )   float  ->  zero-ref    "field V14.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V32 tmp27        [V32    ] (  0,  0   )   float  ->  zero-ref    "field V15.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V33 tmp28        [V33    ] (  0,  0   )   float  ->  zero-ref    "field V15.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V34 tmp29        [V34    ] (  0,  0   )   float  ->  zero-ref    "field V16.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V35 tmp30        [V35    ] (  0,  0   )   float  ->  zero-ref    "field V16.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V36 tmp31        [V36    ] (  0,  0   )  simd12  ->  zero-ref    "V03.[000..012)"
    +;* V37 tmp32        [V37    ] (  0,  0   )  simd12  ->  zero-ref    "V08.[000..012)"
    +;* V38 tmp33        [V38    ] (  0,  0   )   simd8  ->  zero-ref    "V12.[000..008)"
    +;* V39 tmp34        [V39    ] (  0,  0   )   simd8  ->  zero-ref    "V17.[000..008)"
    +;* V40 tmp35        [V40    ] (  0,  0   )   simd8  ->  zero-ref    "V20.[000..008)"
    +;* V41 tmp36        [V41    ] (  0,  0   )   simd8  ->  zero-ref    "V23.[000..008)"
    +;  V42 tmp37        [V42,T07] (  2,  1   )   simd8  ->  mm0         single-def "V04.[000..008)"
    +;  V43 tmp38        [V43,T08] (  2,  1   )   simd8  ->  mm1         single-def "V04.[008..016)"
    +;  V44 tmp39        [V44,T09] (  2,  1   )   simd8  ->  mm2         single-def "V04.[016..024)"
    +;  V45 tmp40        [V45,T10] (  2,  1   )   simd8  ->  mm3         single-def "V13.[000..008)"
    +;  V46 tmp41        [V46,T11] (  2,  1   )   simd8  ->  mm4         single-def "V13.[008..016)"
    +;  V47 tmp42        [V47,T12] (  2,  1   )   simd8  ->  mm5         single-def "V13.[016..024)"
    +;  V48 tmp43        [V48,T02] (  4,  4   )   byref  ->  rbx         single-def "Spilling address for field-by-field copy"
    +;  V49 tmp44        [V49,T03] (  4,  4   )   byref  ->  rax         single-def "Spilling address for field-by-field copy"
     ;
    -; Lcl frame size = 72
    +; Lcl frame size = 8
     
     G_M40789_IG01:
            push     rbp
            push     rbx
    -       sub      rsp, 72
    -       lea      rbp, [rsp+0x50]
    -       vxorps   xmm8, xmm8, xmm8
    -       vmovdqu  ymmword ptr [rbp-0x30], ymm8
    -       xor      eax, eax
    -       mov      qword ptr [rbp-0x10], rax
    +       push     rax
    +       lea      rbp, [rsp+0x10]
            mov      rbx, rdi
    -						;; size=30 bbWeight=1 PerfScore 5.58
    +						;; size=11 bbWeight=1 PerfScore 3.75
     G_M40789_IG02:
            test     rsi, rsi
            je       SHORT G_M40789_IG04
     						;; size=5 bbWeight=1 PerfScore 1.25
     G_M40789_IG03:
            cmp      rbx, rsi
            je       G_M40789_IG10
            mov      rdi, qword ptr [rsi]
            cmp      rdi, qword ptr [rbx]
            jne      SHORT G_M40789_IG04
            mov      rdi, 0xD1FFAB1E      ; SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.RgbWorkingSpace
            mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS
            call     [rax]CORINFO_HELP_CHKCASTCLASS
    -       mov      rcx, qword ptr [rbx+0x08]
    -       mov      qword ptr [rbp-0x18], rcx
    -       mov      ecx, dword ptr [rbx+0x10]
    -       mov      dword ptr [rbp-0x10], ecx
    -       mov      rcx, qword ptr [rax+0x08]
    -       mov      qword ptr [rbp-0x28], rcx
    -       mov      ecx, dword ptr [rax+0x10]
    -       mov      dword ptr [rbp-0x20], ecx
    -       vmovsd   xmm0, qword ptr [rbp-0x18]
    -       vinsertps xmm0, xmm0, dword ptr [rbp-0x10], 40
    +       vmovsd   xmm0, qword ptr [rbx+0x08]
    +       vinsertps xmm0, xmm0, dword ptr [rbx+0x10], 40
            vinsertps xmm0, xmm0, xmm0, 56
    -       vmovsd   xmm1, qword ptr [rbp-0x28]
    -       vinsertps xmm1, xmm1, dword ptr [rbp-0x20], 40
    +       vmovsd   xmm1, qword ptr [rax+0x08]
    +       vinsertps xmm1, xmm1, dword ptr [rax+0x10], 40
            vinsertps xmm1, xmm1, xmm1, 56
            vcmpneqps k1, xmm1, xmm0
            kortestb k1, k1
            je       SHORT G_M40789_IG06
    -						;; size=116 bbWeight=0.50 PerfScore 18.38
    +						;; size=88 bbWeight=0.50 PerfScore 14.38
     G_M40789_IG04:
            xor      eax, eax
     						;; size=2 bbWeight=0.50 PerfScore 0.12
     G_M40789_IG05:
    -       add      rsp, 72
    +       add      rsp, 8
            pop      rbx
            pop      rbp
            ret      
     						;; size=7 bbWeight=0.50 PerfScore 1.12
     G_M40789_IG06:
            add      rbx, 20
    -       vmovss   xmm0, dword ptr [rbx]
    -       vmovss   xmm1, dword ptr [rbx+0x04]
    -       vmovss   xmm2, dword ptr [rbx+0x08]
    -       vmovss   xmm3, dword ptr [rbx+0x0C]
    -       vmovss   xmm4, dword ptr [rbx+0x10]
    -       vmovss   xmm5, dword ptr [rbx+0x14]
    +       vmovsd   xmm0, qword ptr [rbx]
    +       vmovsd   xmm1, qword ptr [rbx+0x08]
    +       vmovsd   xmm2, qword ptr [rbx+0x10]
            add      rax, 20
    -       vmovss   xmm6, dword ptr [rax]
    -       vmovss   xmm7, dword ptr [rax+0x04]
    -       vmovss   xmm8, dword ptr [rax+0x08]
    -       vmovss   xmm9, dword ptr [rax+0x0C]
    -       vmovss   xmm10, dword ptr [rax+0x10]
    -       vmovss   xmm11, dword ptr [rax+0x14]
    -       vmovss   dword ptr [rbp-0x30], xmm0
    -       vmovss   dword ptr [rbp-0x2C], xmm1
    -       vmovss   dword ptr [rbp-0x38], xmm6
    -       vmovss   dword ptr [rbp-0x34], xmm7
    -       vmovsd   xmm0, qword ptr [rbp-0x30]
    +       vmovsd   xmm3, qword ptr [rax]
    +       vmovsd   xmm4, qword ptr [rax+0x08]
    +       vmovsd   xmm5, qword ptr [rax+0x10]
            vinsertps xmm0, xmm0, xmm0, 60
    -       vmovsd   xmm1, qword ptr [rbp-0x38]
    -       vinsertps xmm1, xmm1, xmm1, 60
    -       vcmpneqps k1, xmm1, xmm0
    +       vinsertps xmm3, xmm3, xmm3, 60
    +       vcmpneqps k1, xmm3, xmm0
            kortestb k1, k1
            jne      SHORT G_M40789_IG07
    -       vmovss   dword ptr [rbp-0x30], xmm2
    -       vmovss   dword ptr [rbp-0x2C], xmm3
    -       vmovss   dword ptr [rbp-0x40], xmm8
    -       vmovss   dword ptr [rbp-0x3C], xmm9
    -       vmovsd   xmm0, qword ptr [rbp-0x30]
    -       vinsertps xmm0, xmm0, xmm0, 60
    -       vmovsd   xmm1, qword ptr [rbp-0x40]
    -       vinsertps xmm1, xmm1, xmm1, 60
    +       vinsertps xmm0, xmm1, xmm1, 60
    +       vinsertps xmm1, xmm4, xmm4, 60
            vcmpneqps k1, xmm1, xmm0
            kortestb k1, k1
            je       SHORT G_M40789_IG08
    -						;; size=176 bbWeight=0.50 PerfScore 33.25
    +						;; size=86 bbWeight=0.50 PerfScore 16.25
     G_M40789_IG07:
            xor      eax, eax
            jmp      SHORT G_M40789_IG09
     						;; size=4 bbWeight=0.50 PerfScore 1.12
     G_M40789_IG08:
    -       vmovss   dword ptr [rbp-0x30], xmm4
    -       vmovss   dword ptr [rbp-0x2C], xmm5
    -       vmovss   dword ptr [rbp-0x48], xmm10
    -       vmovss   dword ptr [rbp-0x44], xmm11
    -       vmovsd   xmm0, qword ptr [rbp-0x30]
    -       vinsertps xmm0, xmm0, xmm0, 60
    -       vmovsd   xmm1, qword ptr [rbp-0x48]
    -       vinsertps xmm1, xmm1, xmm1, 60
    +       vinsertps xmm0, xmm2, xmm2, 60
    +       vinsertps xmm1, xmm5, xmm5, 60
            vcmpneqps k1, xmm1, xmm0
            kortestb k1, k1
            sete     al
            movzx    rax, al
    -						;; size=59 bbWeight=0.50 PerfScore 7.38
    +						;; size=29 bbWeight=0.50 PerfScore 3.38
     G_M40789_IG09:
    -       add      rsp, 72
    +       add      rsp, 8
            pop      rbx
            pop      rbp
            ret      
     						;; size=7 bbWeight=0.50 PerfScore 1.12
     G_M40789_IG10:
            mov      eax, 1
     						;; size=5 bbWeight=0.50 PerfScore 0.12
     G_M40789_IG11:
    -       add      rsp, 72
    +       add      rsp, 8
            pop      rbx
            pop      rbp
            ret      
     						;; size=7 bbWeight=0.50 PerfScore 1.12
     
    -; Total bytes of code 418, prolog size 27, PerfScore 70.58, instruction count 100, allocated bytes for code 426 (MethodHash=f93c60aa) for method SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.RgbWorkingSpace:Equals(System.Object):bool:this (FullOpts)
    +; Total bytes of code 251, prolog size 8, PerfScore 43.75, instruction count 64, allocated bytes for code 259 (MethodHash=f93c60aa) for method SixLabors.ImageSharp.ColorProfiles.WorkingSpaces.RgbWorkingSpace:Equals(System.Object):bool:this (FullOpts)
     ; ============================================================
    -108 (-42.52 % of base) - SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:Equals(System.Object):bool:this
     ; Assembly listing for method SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:Equals(System.Object):bool: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; 18 single block inlinees; 1 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T01] (  5,  3.50)   byref  ->  rdi         this single-def
    -;  V01 arg1         [V01,T00] ( 10,  6.25)     ref  ->  rsi         class-hnd single-def <System.Object>
    +;  V01 arg1         [V01,T00] (  7,  4.75)     ref  ->  rsi         class-hnd single-def <System.Object>
     ;* V02 loc0         [V02    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] <SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates>
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V04 tmp1         [V04    ] (  0,  0   )     int  ->  zero-ref    "spilling qmarkNull"
     ;  V05 tmp2         [V05,T02] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
    -;  V06 tmp3         [V06    ] (  6,  3   )  struct ( 8) [rbp-0x08]  do-not-enreg[SF] must-init ld-addr-op "Inline stloc first use temp" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V06 tmp3         [V06    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inline stloc first use temp" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V07 tmp4         [V07    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates>
     ;* V08 tmp5         [V08    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    -;  V11 tmp8         [V11    ] (  3,  3   )  struct ( 8) [rbp-0x10]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V12 tmp9         [V12    ] (  0,  0   )   simd8  ->  zero-ref    "impAppendStmt"
     ;* V13 tmp10        [V13    ] (  0,  0   )   simd8  ->  zero-ref    "spilled call-like call argument"
    -;  V14 tmp11        [V14    ] (  3,  3   )  struct ( 8) [rbp-0x18]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V15 tmp12        [V15    ] (  0,  0   )   simd8  ->  zero-ref    "impAppendStmt"
     ;* V16 tmp13        [V16    ] (  0,  0   )   simd8  ->  zero-ref    "spilled call-like call argument"
    -;  V17 tmp14        [V17    ] (  3,  3   )  struct ( 8) [rbp-0x20]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V17 tmp14        [V17    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V18 tmp15        [V18    ] (  0,  0   )   simd8  ->  zero-ref    "impAppendStmt"
     ;* V19 tmp16        [V19    ] (  0,  0   )   simd8  ->  zero-ref    "spilled call-like call argument"
    -;  V20 tmp17        [V20,T03] (  6,  3   )   float  ->  [rbp-0x08]  do-not-enreg[] "field V06.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V21 tmp18        [V21,T04] (  6,  3   )   float  ->  [rbp-0x04]  do-not-enreg[] "field V06.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;* V22 tmp19        [V22    ] (  0,  0   )   float  ->  zero-ref    "field V08.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V23 tmp20        [V23    ] (  0,  0   )   float  ->  zero-ref    "field V08.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;* V24 tmp21        [V24    ] (  0,  0   )   float  ->  zero-ref    "field V09.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V25 tmp22        [V25    ] (  0,  0   )   float  ->  zero-ref    "field V09.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;* V26 tmp23        [V26    ] (  0,  0   )   float  ->  zero-ref    "field V10.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V27 tmp24        [V27    ] (  0,  0   )   float  ->  zero-ref    "field V10.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;  V28 tmp25        [V28,T05] (  2,  1.50)   float  ->  [rbp-0x10]  do-not-enreg[] "field V11.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V29 tmp26        [V29,T06] (  2,  1.50)   float  ->  [rbp-0x0C]  do-not-enreg[] "field V11.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V30 tmp27        [V30,T07] (  2,  1.50)   float  ->  [rbp-0x18]  do-not-enreg[] "field V14.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V31 tmp28        [V31,T08] (  2,  1.50)   float  ->  [rbp-0x14]  do-not-enreg[] "field V14.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V32 tmp29        [V32,T09] (  2,  1.50)   float  ->  [rbp-0x20]  do-not-enreg[] "field V17.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V33 tmp30        [V33,T10] (  2,  1.50)   float  ->  [rbp-0x1C]  do-not-enreg[] "field V17.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V34 tmp31        [V34,T11] (  2,  1   )   float  ->  mm0         single-def "V07.[000..004)"
    -;  V35 tmp32        [V35,T12] (  2,  1   )   float  ->  mm1         single-def "V07.[004..008)"
    -;  V36 tmp33        [V36,T13] (  2,  1   )   float  ->  mm2         single-def "V07.[008..012)"
    -;  V37 tmp34        [V37,T14] (  2,  1   )   float  ->  mm3         single-def "V07.[012..016)"
    -;  V38 tmp35        [V38,T15] (  2,  1   )   float  ->  mm4         single-def "V07.[016..020)"
    -;  V39 tmp36        [V39,T16] (  2,  1   )   float  ->  mm5         single-def "V07.[020..024)"
    +;* V20 tmp17        [V20    ] (  0,  0   )   float  ->  zero-ref    "field V08.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V21 tmp18        [V21    ] (  0,  0   )   float  ->  zero-ref    "field V08.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V22 tmp19        [V22    ] (  0,  0   )   float  ->  zero-ref    "field V09.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V23 tmp20        [V23    ] (  0,  0   )   float  ->  zero-ref    "field V09.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V24 tmp21        [V24    ] (  0,  0   )   float  ->  zero-ref    "field V10.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V25 tmp22        [V25    ] (  0,  0   )   float  ->  zero-ref    "field V10.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V26 tmp23        [V26    ] (  0,  0   )   simd8  ->  zero-ref    "V06.[000..008)"
    +;* V27 tmp24        [V27    ] (  0,  0   )   simd8  ->  zero-ref    "V11.[000..008)"
    +;* V28 tmp25        [V28    ] (  0,  0   )   simd8  ->  zero-ref    "V14.[000..008)"
    +;* V29 tmp26        [V29    ] (  0,  0   )   simd8  ->  zero-ref    "V17.[000..008)"
    +;  V30 tmp27        [V30,T03] (  2,  1   )   simd8  ->  mm0         single-def "V07.[000..008)"
    +;  V31 tmp28        [V31,T04] (  2,  1   )   simd8  ->  mm1         single-def "V07.[008..016)"
    +;  V32 tmp29        [V32,T05] (  2,  1   )   simd8  ->  mm2         single-def "V07.[016..024)"
     ;
    -; Lcl frame size = 32
    +; Lcl frame size = 0
     
     G_M37555_IG01:
            push     rbp
    -       sub      rsp, 32
    -       lea      rbp, [rsp+0x20]
    -       xor      eax, eax
    -       mov      qword ptr [rbp-0x08], rax
    -						;; size=16 bbWeight=1 PerfScore 3.00
    +       mov      rbp, rsp
    +						;; size=4 bbWeight=1 PerfScore 1.25
     G_M37555_IG02:
            test     rsi, rsi
            je       G_M37555_IG08
     						;; size=9 bbWeight=1 PerfScore 1.25
     G_M37555_IG03:
            mov      rax, 0xD1FFAB1E      ; SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates
            cmp      qword ptr [rsi], rax
    -       jne      G_M37555_IG08
    -						;; size=19 bbWeight=0.25 PerfScore 0.81
    +       jne      SHORT G_M37555_IG08
    +						;; size=15 bbWeight=0.25 PerfScore 0.81
     G_M37555_IG04:
    -       vmovss   xmm0, dword ptr [rsi+0x08]
    -       vmovss   xmm1, dword ptr [rsi+0x0C]
    -       vmovss   xmm2, dword ptr [rsi+0x10]
    -       vmovss   xmm3, dword ptr [rsi+0x14]
    -       vmovss   xmm4, dword ptr [rsi+0x18]
    -       vmovss   xmm5, dword ptr [rsi+0x1C]
    -       mov      rax, qword ptr [rdi]
    -       mov      qword ptr [rbp-0x08], rax
    -       vmovss   dword ptr [rbp-0x10], xmm0
    -       vmovss   dword ptr [rbp-0x0C], xmm1
    -       vmovsd   xmm0, qword ptr [rbp-0x08]
    +       vmovsd   xmm0, qword ptr [rsi+0x08]
    +       vmovsd   xmm1, qword ptr [rsi+0x10]
    +       vmovsd   xmm2, qword ptr [rsi+0x18]
    +       vmovsd   xmm3, qword ptr [rdi]
    +       vinsertps xmm3, xmm3, xmm3, 60
            vinsertps xmm0, xmm0, xmm0, 60
    -       vmovsd   xmm1, qword ptr [rbp-0x10]
    -       vinsertps xmm1, xmm1, xmm1, 60
    -       vcmpneqps k1, xmm1, xmm0
    +       vcmpneqps k1, xmm0, xmm3
            kortestb k1, k1
            jne      SHORT G_M37555_IG05
    -       mov      rax, qword ptr [rdi+0x08]
    -       mov      qword ptr [rbp-0x08], rax
    -       vmovss   dword ptr [rbp-0x18], xmm2
    -       vmovss   dword ptr [rbp-0x14], xmm3
    -       vmovsd   xmm0, qword ptr [rbp-0x08]
    +       vmovsd   xmm0, qword ptr [rdi+0x08]
            vinsertps xmm0, xmm0, xmm0, 60
    -       vmovsd   xmm1, qword ptr [rbp-0x18]
            vinsertps xmm1, xmm1, xmm1, 60
            vcmpneqps k1, xmm1, xmm0
            kortestb k1, k1
            je       SHORT G_M37555_IG06
    -						;; size=135 bbWeight=0.50 PerfScore 25.00
    +						;; size=74 bbWeight=0.50 PerfScore 14.50
     G_M37555_IG05:
            xor      eax, eax
            jmp      SHORT G_M37555_IG07
     						;; size=4 bbWeight=0.50 PerfScore 1.12
     G_M37555_IG06:
    -       mov      rax, qword ptr [rdi+0x10]
    -       mov      qword ptr [rbp-0x08], rax
    -       vmovss   dword ptr [rbp-0x20], xmm4
    -       vmovss   dword ptr [rbp-0x1C], xmm5
    -       vmovsd   xmm0, qword ptr [rbp-0x08]
    +       vmovsd   xmm0, qword ptr [rdi+0x10]
            vinsertps xmm0, xmm0, xmm0, 60
    -       vmovsd   xmm1, qword ptr [rbp-0x20]
    -       vinsertps xmm1, xmm1, xmm1, 60
    +       vinsertps xmm1, xmm2, xmm2, 60
            vcmpneqps k1, xmm1, xmm0
            kortestb k1, k1
            sete     al
            movzx    rax, al
    -						;; size=57 bbWeight=0.50 PerfScore 7.88
    +						;; size=34 bbWeight=0.50 PerfScore 4.88
     G_M37555_IG07:
    -       add      rsp, 32
            pop      rbp
            ret      
    -						;; size=6 bbWeight=0.50 PerfScore 0.88
    +						;; size=2 bbWeight=0.50 PerfScore 0.75
     G_M37555_IG08:
            xor      eax, eax
     						;; size=2 bbWeight=0.50 PerfScore 0.12
     G_M37555_IG09:
    -       add      rsp, 32
            pop      rbp
            ret      
    -						;; size=6 bbWeight=0.50 PerfScore 0.88
    +						;; size=2 bbWeight=0.50 PerfScore 0.75
     
    -; Total bytes of code 254, prolog size 16, PerfScore 40.94, instruction count 59, allocated bytes for code 260 (MethodHash=a4186d4c) for method SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:Equals(System.Object):bool:this (FullOpts)
    +; Total bytes of code 146, prolog size 4, PerfScore 25.44, instruction count 36, allocated bytes for code 152 (MethodHash=a4186d4c) for method SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:Equals(System.Object):bool:this (FullOpts)
     ; ============================================================
    -62 (-34.44 % of base) - SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:Equals(SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates):bool:this
     ; Assembly listing for method SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:Equals(SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates):bool: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; 18 single block inlinees; 0 inlinees without PGO data
     ; Final local variable assignments
     ;
     ;  V00 this         [V00,T00] (  5,  4   )   byref  ->  rdi         this single-def
     ;  V01 arg1         [V01,T01] (  3,  2   )  struct (24) [rbp+0x10]  do-not-enreg[SF] ld-addr-op single-def <SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates>
    -;  V02 loc0         [V02    ] (  6,  4   )  struct ( 8) [rbp-0x08]  do-not-enreg[SF] ld-addr-op <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
     ;* V04 tmp1         [V04    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V05 tmp2         [V05    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V06 tmp3         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    -;  V07 tmp4         [V07    ] (  2,  4   )  struct ( 8) [rbp-0x10]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V07 tmp4         [V07    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V08 tmp5         [V08    ] (  0,  0   )   simd8  ->  zero-ref    "impAppendStmt"
     ;* V09 tmp6         [V09    ] (  0,  0   )   simd8  ->  zero-ref    "spilled call-like call argument"
    -;  V10 tmp7         [V10    ] (  2,  2   )  struct ( 8) [rbp-0x18]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V10 tmp7         [V10    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V11 tmp8         [V11    ] (  0,  0   )   simd8  ->  zero-ref    "impAppendStmt"
     ;* V12 tmp9         [V12    ] (  0,  0   )   simd8  ->  zero-ref    "spilled call-like call argument"
    -;  V13 tmp10        [V13    ] (  2,  2   )  struct ( 8) [rbp-0x20]  do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
    +;* V13 tmp10        [V13    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <SixLabors.ImageSharp.ColorProfiles.CieXyChromaticityCoordinates>
     ;* V14 tmp11        [V14    ] (  0,  0   )   simd8  ->  zero-ref    "impAppendStmt"
     ;* V15 tmp12        [V15    ] (  0,  0   )   simd8  ->  zero-ref    "spilled call-like call argument"
    -;  V16 tmp13        [V16,T02] (  6,  4   )   float  ->  [rbp-0x08]  do-not-enreg[] "field V02.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V17 tmp14        [V17,T03] (  6,  4   )   float  ->  [rbp-0x04]  do-not-enreg[] "field V02.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;* V18 tmp15        [V18    ] (  0,  0   )   float  ->  zero-ref    "field V04.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V19 tmp16        [V19    ] (  0,  0   )   float  ->  zero-ref    "field V04.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;* V20 tmp17        [V20    ] (  0,  0   )   float  ->  zero-ref    "field V05.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V21 tmp18        [V21    ] (  0,  0   )   float  ->  zero-ref    "field V05.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;* V22 tmp19        [V22    ] (  0,  0   )   float  ->  zero-ref    "field V06.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    -;* V23 tmp20        [V23    ] (  0,  0   )   float  ->  zero-ref    "field V06.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    -;  V24 tmp21        [V24,T04] (  2,  4   )   float  ->  [rbp-0x10]  do-not-enreg[] "field V07.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V25 tmp22        [V25,T05] (  2,  4   )   float  ->  [rbp-0x0C]  do-not-enreg[] "field V07.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V26 tmp23        [V26,T06] (  2,  2   )   float  ->  [rbp-0x18]  do-not-enreg[] "field V10.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V27 tmp24        [V27,T07] (  2,  2   )   float  ->  [rbp-0x14]  do-not-enreg[] "field V10.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    -;  V28 tmp25        [V28,T08] (  2,  2   )   float  ->  [rbp-0x20]  do-not-enreg[] "field V13.<X>k__BackingField (fldOffset=0x0)" P-DEP
    -;  V29 tmp26        [V29,T09] (  2,  2   )   float  ->  [rbp-0x1C]  do-not-enreg[] "field V13.<Y>k__BackingField (fldOffset=0x4)" P-DEP
    +;* V16 tmp13        [V16    ] (  0,  0   )   float  ->  zero-ref    "field V04.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V17 tmp14        [V17    ] (  0,  0   )   float  ->  zero-ref    "field V04.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V18 tmp15        [V18    ] (  0,  0   )   float  ->  zero-ref    "field V05.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V19 tmp16        [V19    ] (  0,  0   )   float  ->  zero-ref    "field V05.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V20 tmp17        [V20    ] (  0,  0   )   float  ->  zero-ref    "field V06.<X>k__BackingField (fldOffset=0x0)" P-INDEP
    +;* V21 tmp18        [V21    ] (  0,  0   )   float  ->  zero-ref    "field V06.<Y>k__BackingField (fldOffset=0x4)" P-INDEP
    +;* V22 tmp19        [V22    ] (  0,  0   )   simd8  ->  zero-ref    "V02.[000..008)"
    +;* V23 tmp20        [V23    ] (  0,  0   )   simd8  ->  zero-ref    "V07.[000..008)"
    +;* V24 tmp21        [V24    ] (  0,  0   )   simd8  ->  zero-ref    "V10.[000..008)"
    +;* V25 tmp22        [V25    ] (  0,  0   )   simd8  ->  zero-ref    "V13.[000..008)"
     ;
    -; Lcl frame size = 32
    +; Lcl frame size = 0
     
     G_M10710_IG01:
            push     rbp
    -       sub      rsp, 32
    -       lea      rbp, [rsp+0x20]
    -						;; size=10 bbWeight=1 PerfScore 1.75
    +       mov      rbp, rsp
    +						;; size=4 bbWeight=1 PerfScore 1.25
     G_M10710_IG02:
    -       mov      rax, qword ptr [rdi]
    -       mov      qword ptr [rbp-0x08], rax
    -       mov      rax, qword ptr [rbp+0x10]
    -       mov      qword ptr [rbp-0x10], rax
    -       vmovsd   xmm0, qword ptr [rbp-0x08]
    +       vmovsd   xmm0, qword ptr [rdi]
            vinsertps xmm0, xmm0, xmm0, 60
    -       vmovsd   xmm1, qword ptr [rbp-0x10]
    +       vmovsd   xmm1, qword ptr [rbp+0x10]
            vinsertps xmm1, xmm1, xmm1, 60
            vcmpneqps k1, xmm1, xmm0
            kortestb k1, k1
            jne      SHORT G_M10710_IG04
    -						;; size=50 bbWeight=1 PerfScore 16.00
    +						;; size=34 bbWeight=1 PerfScore 12.00
     G_M10710_IG03:
    -       mov      rax, qword ptr [rdi+0x08]
    -       mov      qword ptr [rbp-0x08], rax
    -       mov      rax, qword ptr [rbp+0x18]
    -       mov      qword ptr [rbp-0x18], rax
    -       vmovsd   xmm0, qword ptr [rbp-0x08]
    +       vmovsd   xmm0, qword ptr [rdi+0x08]
            vinsertps xmm0, xmm0, xmm0, 60
    -       vmovsd   xmm1, qword ptr [rbp-0x18]
    +       vmovsd   xmm1, qword ptr [rbp+0x18]
            vinsertps xmm1, xmm1, xmm1, 60
            vcmpneqps k1, xmm1, xmm0
            kortestb k1, k1
            je       SHORT G_M10710_IG06
    -						;; size=51 bbWeight=0.50 PerfScore 8.00
    +						;; size=35 bbWeight=0.50 PerfScore 6.00
     G_M10710_IG04:
            xor      eax, eax
     						;; size=2 bbWeight=0.50 PerfScore 0.12
     G_M10710_IG05:
    -       add      rsp, 32
            pop      rbp
            ret      
    -						;; size=6 bbWeight=0.50 PerfScore 0.88
    +						;; size=2 bbWeight=0.50 PerfScore 0.75
     G_M10710_IG06:
    -       mov      rax, qword ptr [rdi+0x10]
    -       mov      qword ptr [rbp-0x08], rax
    -       mov      rax, qword ptr [rbp+0x20]
    -       mov      qword ptr [rbp-0x20], rax
    -       vmovsd   xmm0, qword ptr [rbp-0x08]
    +       vmovsd   xmm0, qword ptr [rdi+0x10]
            vinsertps xmm0, xmm0, xmm0, 60
    -       vmovsd   xmm1, qword ptr [rbp-0x20]
    +       vmovsd   xmm1, qword ptr [rbp+0x20]
            vinsertps xmm1, xmm1, xmm1, 60
            vcmpneqps k1, xmm1, xmm0
            kortestb k1, k1
            sete     al
            movzx    rax, al
    -						;; size=55 bbWeight=0.50 PerfScore 7.88
    +						;; size=39 bbWeight=0.50 PerfScore 5.88
     G_M10710_IG07:
    -       add      rsp, 32
            pop      rbp
            ret      
    -						;; size=6 bbWeight=0.50 PerfScore 0.88
    +						;; size=2 bbWeight=0.50 PerfScore 0.75
     
    -; Total bytes of code 180, prolog size 10, PerfScore 35.50, instruction count 44, allocated bytes for code 186 (MethodHash=9569d629) for method SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:Equals(SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates):bool:this (FullOpts)
    +; Total bytes of code 118, prolog size 4, PerfScore 26.75, instruction count 29, allocated bytes for code 124 (MethodHash=9569d629) for method SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates:Equals(SixLabors.ImageSharp.ColorProfiles.RgbPrimariesChromaticityCoordinates):bool:this (FullOpts)
     ; ============================================================

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

    Larger list of diffs: https://github.com/proxy/gist.github.com/MihuBot/9a3c183a56640974d470e60524c7320f

  3. MihuBot commented on Jun 19, 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