Skip to content

[JitDiff X64] [Copilot] Replace ExtractMostSignificantBits+BitOp patterns wi ... #1847

@MihuBot

Description

@MihuBot

Job completed in 5 minutes 43 seconds (remote runner delay: 0 seconds).
dotnet/runtime#126841

Main commit: dotnet/runtime@33be435
PR commit: dotnet/runtime@9b3f39f

Diffs

Diffs
Found 85 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 45705409
Total bytes of diff: 45705232
Total bytes of delta: -177 (-0.00 % of base)
Total relative delta: 4.69
    diff is an improvement.
    relative diff is a regression.


Total byte diff includes -499 bytes from reconciling methods
	Base had   24 unique methods,      499 unique bytes
	Diff had    0 unique methods,        0 unique bytes

Top file regressions (bytes):
         322 : System.Private.CoreLib.dasm (0.00 % of base)

Top file improvements (bytes):
        -499 : System.Numerics.Tensors.dasm (-0.04 % of base)

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

Top method regressions (bytes):
         103 (13.41 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)
          84 (14.07 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:IndexOfNullByte(ptr):int (FullOpts)
           9 (40.91 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[byte](byref,byref,System.Runtime.Intrinsics.Vector128`1[byte]):int (FullOpts)
           9 (36.00 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[byte](byref,byref,System.Runtime.Intrinsics.Vector256`1[byte]):int (FullOpts)
           9 (23.68 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[byte](byref,byref,System.Runtime.Intrinsics.Vector512`1[byte]):int (FullOpts)
           9 (34.62 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[double](byref,byref,System.Runtime.Intrinsics.Vector128`1[double]):int (FullOpts)
           9 (31.03 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[double](byref,byref,System.Runtime.Intrinsics.Vector256`1[double]):int (FullOpts)
           9 (21.95 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[double](byref,byref,System.Runtime.Intrinsics.Vector512`1[double]):int (FullOpts)
           9 (34.62 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[int](byref,byref,System.Runtime.Intrinsics.Vector128`1[int]):int (FullOpts)
           9 (31.03 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[int](byref,byref,System.Runtime.Intrinsics.Vector256`1[int]):int (FullOpts)
           9 (21.95 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[int](byref,byref,System.Runtime.Intrinsics.Vector512`1[int]):int (FullOpts)
           9 (34.62 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[long](byref,byref,System.Runtime.Intrinsics.Vector128`1[long]):int (FullOpts)
           9 (31.03 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[long](byref,byref,System.Runtime.Intrinsics.Vector256`1[long]):int (FullOpts)
           9 (21.95 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[long](byref,byref,System.Runtime.Intrinsics.Vector512`1[long]):int (FullOpts)
           9 (29.03 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[short](byref,byref,System.Runtime.Intrinsics.Vector128`1[short]):int (FullOpts)
           9 (26.47 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[short](byref,byref,System.Runtime.Intrinsics.Vector256`1[short]):int (FullOpts)
           9 (22.50 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[short](byref,byref,System.Runtime.Intrinsics.Vector512`1[short]):int (FullOpts)

Top method improvements (bytes):
         -31 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[byte](System.Runtime.Intrinsics.Vector512`1[byte]):int (FullOpts) (1 base, 0 diff methods)
         -30 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[double](System.Runtime.Intrinsics.Vector512`1[double]):int (FullOpts) (1 base, 0 diff methods)
         -30 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[int](System.Runtime.Intrinsics.Vector512`1[int]):int (FullOpts) (1 base, 0 diff methods)
         -30 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[long](System.Runtime.Intrinsics.Vector512`1[long]):int (FullOpts) (1 base, 0 diff methods)
         -30 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[short](System.Runtime.Intrinsics.Vector512`1[short]):int (FullOpts) (1 base, 0 diff methods)
         -24 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[short](System.Runtime.Intrinsics.Vector256`1[short]):int (FullOpts) (1 base, 0 diff methods)
         -21 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[short](System.Runtime.Intrinsics.Vector128`1[short]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.__Canon](System.Runtime.Intrinsics.Vector128`1[System.__Canon]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.__Canon](System.Runtime.Intrinsics.Vector256`1[System.__Canon]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.__Canon](System.Runtime.Intrinsics.Vector512`1[System.__Canon]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector512`1[System.Nullable`1[int]]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector256`1[System.Numerics.Vector`1[float]]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector512`1[System.Numerics.Vector`1[float]]):int (FullOpts) (1 base, 0 diff methods)
         -18 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[byte](System.Runtime.Intrinsics.Vector256`1[byte]):int (FullOpts) (1 base, 0 diff methods)
         -18 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[double](System.Runtime.Intrinsics.Vector256`1[double]):int (FullOpts) (1 base, 0 diff methods)
         -18 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[int](System.Runtime.Intrinsics.Vector256`1[int]):int (FullOpts) (1 base, 0 diff methods)
         -18 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[long](System.Runtime.Intrinsics.Vector256`1[long]):int (FullOpts) (1 base, 0 diff methods)
         -15 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[byte](System.Runtime.Intrinsics.Vector128`1[byte]):int (FullOpts) (1 base, 0 diff methods)
         -15 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[double](System.Runtime.Intrinsics.Vector128`1[double]):int (FullOpts) (1 base, 0 diff methods)
         -15 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[int](System.Runtime.Intrinsics.Vector128`1[int]):int (FullOpts) (1 base, 0 diff methods)
         -15 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[long](System.Runtime.Intrinsics.Vector128`1[long]):int (FullOpts) (1 base, 0 diff methods)

Top method regressions (percentages):
           9 (40.91 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[byte](byref,byref,System.Runtime.Intrinsics.Vector128`1[byte]):int (FullOpts)
           9 (36.00 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[byte](byref,byref,System.Runtime.Intrinsics.Vector256`1[byte]):int (FullOpts)
           9 (34.62 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[double](byref,byref,System.Runtime.Intrinsics.Vector128`1[double]):int (FullOpts)
           9 (34.62 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[int](byref,byref,System.Runtime.Intrinsics.Vector128`1[int]):int (FullOpts)
           9 (34.62 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[long](byref,byref,System.Runtime.Intrinsics.Vector128`1[long]):int (FullOpts)
           9 (31.03 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[double](byref,byref,System.Runtime.Intrinsics.Vector256`1[double]):int (FullOpts)
           9 (31.03 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[int](byref,byref,System.Runtime.Intrinsics.Vector256`1[int]):int (FullOpts)
           9 (31.03 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[long](byref,byref,System.Runtime.Intrinsics.Vector256`1[long]):int (FullOpts)
           9 (29.03 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[short](byref,byref,System.Runtime.Intrinsics.Vector128`1[short]):int (FullOpts)
           9 (26.47 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[short](byref,byref,System.Runtime.Intrinsics.Vector256`1[short]):int (FullOpts)
           9 (23.68 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[byte](byref,byref,System.Runtime.Intrinsics.Vector512`1[byte]):int (FullOpts)
           9 (22.50 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[short](byref,byref,System.Runtime.Intrinsics.Vector512`1[short]):int (FullOpts)
           9 (21.95 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[double](byref,byref,System.Runtime.Intrinsics.Vector512`1[double]):int (FullOpts)
           9 (21.95 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[int](byref,byref,System.Runtime.Intrinsics.Vector512`1[int]):int (FullOpts)
           9 (21.95 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:ComputeFirstIndex[long](byref,byref,System.Runtime.Intrinsics.Vector512`1[long]):int (FullOpts)
          84 (14.07 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:IndexOfNullByte(ptr):int (FullOpts)
         103 (13.41 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)

Top method improvements (percentages):
         -15 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[byte](System.Runtime.Intrinsics.Vector128`1[byte]):int (FullOpts) (1 base, 0 diff methods)
         -18 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[byte](System.Runtime.Intrinsics.Vector256`1[byte]):int (FullOpts) (1 base, 0 diff methods)
         -31 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[byte](System.Runtime.Intrinsics.Vector512`1[byte]):int (FullOpts) (1 base, 0 diff methods)
         -15 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[double](System.Runtime.Intrinsics.Vector128`1[double]):int (FullOpts) (1 base, 0 diff methods)
         -18 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[double](System.Runtime.Intrinsics.Vector256`1[double]):int (FullOpts) (1 base, 0 diff methods)
         -30 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[double](System.Runtime.Intrinsics.Vector512`1[double]):int (FullOpts) (1 base, 0 diff methods)
         -15 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[int](System.Runtime.Intrinsics.Vector128`1[int]):int (FullOpts) (1 base, 0 diff methods)
         -18 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[int](System.Runtime.Intrinsics.Vector256`1[int]):int (FullOpts) (1 base, 0 diff methods)
         -30 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[int](System.Runtime.Intrinsics.Vector512`1[int]):int (FullOpts) (1 base, 0 diff methods)
         -15 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[long](System.Runtime.Intrinsics.Vector128`1[long]):int (FullOpts) (1 base, 0 diff methods)
         -18 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[long](System.Runtime.Intrinsics.Vector256`1[long]):int (FullOpts) (1 base, 0 diff methods)
         -30 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[long](System.Runtime.Intrinsics.Vector512`1[long]):int (FullOpts) (1 base, 0 diff methods)
         -21 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[short](System.Runtime.Intrinsics.Vector128`1[short]):int (FullOpts) (1 base, 0 diff methods)
         -24 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[short](System.Runtime.Intrinsics.Vector256`1[short]):int (FullOpts) (1 base, 0 diff methods)
         -30 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[short](System.Runtime.Intrinsics.Vector512`1[short]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.__Canon](System.Runtime.Intrinsics.Vector128`1[System.__Canon]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.__Canon](System.Runtime.Intrinsics.Vector256`1[System.__Canon]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.__Canon](System.Runtime.Intrinsics.Vector512`1[System.__Canon]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector512`1[System.Nullable`1[int]]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector256`1[System.Numerics.Vector`1[float]]):int (FullOpts) (1 base, 0 diff methods)
         -19 (-100.00 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:IndexOfFirstMatch[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector512`1[System.Numerics.Vector`1[float]]):int (FullOpts) (1 base, 0 diff methods)

41 total methods with Code Size differences (24 improved, 17 regressed), 285138 unchanged.

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

Artifacts:

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