Skip to content

Optimize Half.CompareTo #43117

Description

@hrrrrustic

There is a same problem as mentioned here. In the worst case there can be 8 calls to IsNaN() due to two NaN-checks at the beginning of all operators

 public int CompareTo(Half other)
        {
            if (this < other) 
            {
                return -1;
            }

            if (this > other)
            {
                return 1;
            }

            if (this == other)
            {
                return 0;
            }

            if (IsNaN(this))
            {
                return IsNaN(other) ? 0 : -1;
            }

            Debug.Assert(IsNaN(other));
            return 1;
        }

Seems like simple operators inlining should help

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-System.Runtimehelp wanted[up-for-grabs] Good issue for external contributorsin-prThere is an active PR which will close this issue when it is mergedtenet-performancePerformance related issue

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions