Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JitDiff X64] [xtqqczze] Use GetArrayDataReference in Vector* #488

Open
MihuBot opened this issue Jul 8, 2024 · 3 comments
Open

[JitDiff X64] [xtqqczze] Use GetArrayDataReference in Vector* #488

MihuBot opened this issue Jul 8, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Jul 8, 2024

Job completed in 14 minutes.
dotnet/runtime#104532

Diffs

Diffs
Found 261 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 41568628
Total bytes of diff: 41568679
Total bytes of delta: 51 (0.00 % of base)
Total relative delta: 4.81
    diff is a regression.
    relative diff is a regression.


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

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

Top method regressions (bytes):
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts)
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts)
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts)
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts)
          26 (104.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[]) (FullOpts)

Top method improvements (bytes):
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:.ctor(double[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:CopyTo(double[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:.ctor(int[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:CopyTo(int[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:.ctor(long[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:CopyTo(long[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:.ctor(short[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:CopyTo(short[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[ubyte]:.ctor(ubyte[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[ubyte]:CopyTo(ubyte[]):this (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector2:CopyTo(float[]):this (FullOpts)
          -2 (-4.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector3:CopyTo(float[]):this (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector4:CopyTo(float[]):this (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:CopyTo[double](System.Runtime.Intrinsics.Vector128`1[double],double[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:CopyTo[int](System.Runtime.Intrinsics.Vector128`1[int],int[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:CopyTo[long](System.Runtime.Intrinsics.Vector128`1[long],long[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:CopyTo[short](System.Runtime.Intrinsics.Vector128`1[short],short[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:CopyTo[ubyte](System.Runtime.Intrinsics.Vector128`1[ubyte],ubyte[]) (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:Create[double](double[]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:Create[int](int[]):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:Create[long](long[]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:Create[short](short[]):System.Runtime.Intrinsics.Vector128`1[short] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:Create[ubyte](ubyte[]):System.Runtime.Intrinsics.Vector128`1[ubyte] (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[double],double[]) (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(double[]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[int],int[]) (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(int[]):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[long],long[]) (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(long[]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[short],short[]) (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(short[]):System.Runtime.Intrinsics.Vector128`1[short] (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[ubyte],ubyte[]) (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(ubyte[]):System.Runtime.Intrinsics.Vector128`1[ubyte] (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:CopyTo[double](System.Runtime.Intrinsics.Vector256`1[double],double[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:CopyTo[int](System.Runtime.Intrinsics.Vector256`1[int],int[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:CopyTo[long](System.Runtime.Intrinsics.Vector256`1[long],long[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:CopyTo[short](System.Runtime.Intrinsics.Vector256`1[short],short[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:CopyTo[ubyte](System.Runtime.Intrinsics.Vector256`1[ubyte],ubyte[]) (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[double](double[]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[int](int[]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[long](long[]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[short](short[]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[ubyte](ubyte[]):System.Runtime.Intrinsics.Vector256`1[ubyte] (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[double],double[]) (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(double[]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[int],int[]) (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(int[]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[long],long[]) (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(long[]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[short],short[]) (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(short[]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[ubyte],ubyte[]) (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(ubyte[]):System.Runtime.Intrinsics.Vector256`1[ubyte] (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:CopyTo[double](System.Runtime.Intrinsics.Vector512`1[double],double[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:CopyTo[int](System.Runtime.Intrinsics.Vector512`1[int],int[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:CopyTo[long](System.Runtime.Intrinsics.Vector512`1[long],long[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:CopyTo[short](System.Runtime.Intrinsics.Vector512`1[short],short[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:CopyTo[ubyte](System.Runtime.Intrinsics.Vector512`1[ubyte],ubyte[]) (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Create[double](double[]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Create[int](int[]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Create[long](long[]):System.Runtime.Intrinsics.Vector512`1[long] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Create[short](short[]):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Create[ubyte](ubyte[]):System.Runtime.Intrinsics.Vector512`1[ubyte] (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[double],double[]) (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(double[]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[int],int[]) (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(int[]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[long],long[]) (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(long[]):System.Runtime.Intrinsics.Vector512`1[long] (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[short],short[]) (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(short[]):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[ubyte],ubyte[]) (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(ubyte[]):System.Runtime.Intrinsics.Vector512`1[ubyte] (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:CopyTo[int](System.Runtime.Intrinsics.Vector64`1[int],int[]) (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:CopyTo[short](System.Runtime.Intrinsics.Vector64`1[short],short[]) (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:CopyTo[ubyte](System.Runtime.Intrinsics.Vector64`1[ubyte],ubyte[]) (FullOpts)
          -2 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:Create[int](int[]):System.Runtime.Intrinsics.Vector64`1[int] (FullOpts)
          -2 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:Create[short](short[]):System.Runtime.Intrinsics.Vector64`1[short] (FullOpts)
          -2 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:Create[ubyte](ubyte[]):System.Runtime.Intrinsics.Vector64`1[ubyte] (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[int],int[]) (FullOpts)
          -2 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(int[]):System.Runtime.Intrinsics.Vector64`1[int] (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[short],short[]) (FullOpts)
          -2 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(short[]):System.Runtime.Intrinsics.Vector64`1[short] (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[ubyte],ubyte[]) (FullOpts)
          -2 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(ubyte[]):System.Runtime.Intrinsics.Vector64`1[ubyte] (FullOpts)
          -1 (-2.86 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:CopyTo[double](System.Runtime.Intrinsics.Vector64`1[double],double[]) (FullOpts)
          -1 (-2.86 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:CopyTo[long](System.Runtime.Intrinsics.Vector64`1[long],long[]) (FullOpts)
          -1 (-2.78 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:Create[double](double[]):System.Runtime.Intrinsics.Vector64`1[double] (FullOpts)
          -1 (-2.78 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:Create[long](long[]):System.Runtime.Intrinsics.Vector64`1[long] (FullOpts)
          -1 (-2.86 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[double],double[]) (FullOpts)
          -1 (-2.78 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(double[]):System.Runtime.Intrinsics.Vector64`1[double] (FullOpts)
          -1 (-2.86 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[long],long[]) (FullOpts)
          -1 (-2.78 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(long[]):System.Runtime.Intrinsics.Vector64`1[long] (FullOpts)

Top method regressions (percentages):
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts)
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts)
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts)
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
          29 (116.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts)
          26 (104.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[]) (FullOpts)

Top method improvements (percentages):
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector2:CopyTo(float[]):this (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector4:CopyTo(float[]):this (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:CopyTo[int](System.Runtime.Intrinsics.Vector64`1[int],int[]) (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:CopyTo[short](System.Runtime.Intrinsics.Vector64`1[short],short[]) (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:CopyTo[ubyte](System.Runtime.Intrinsics.Vector64`1[ubyte],ubyte[]) (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[int],int[]) (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[short],short[]) (FullOpts)
          -2 (-5.56 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[ubyte],ubyte[]) (FullOpts)
          -2 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:Create[int](int[]):System.Runtime.Intrinsics.Vector64`1[int] (FullOpts)
          -2 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:Create[short](short[]):System.Runtime.Intrinsics.Vector64`1[short] (FullOpts)
          -2 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:Create[ubyte](ubyte[]):System.Runtime.Intrinsics.Vector64`1[ubyte] (FullOpts)
          -2 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(int[]):System.Runtime.Intrinsics.Vector64`1[int] (FullOpts)
          -2 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(short[]):System.Runtime.Intrinsics.Vector64`1[short] (FullOpts)
          -2 (-5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(ubyte[]):System.Runtime.Intrinsics.Vector64`1[ubyte] (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:CopyTo[double](System.Runtime.Intrinsics.Vector128`1[double],double[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:CopyTo[int](System.Runtime.Intrinsics.Vector128`1[int],int[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:CopyTo[long](System.Runtime.Intrinsics.Vector128`1[long],long[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:CopyTo[short](System.Runtime.Intrinsics.Vector128`1[short],short[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:CopyTo[ubyte](System.Runtime.Intrinsics.Vector128`1[ubyte],ubyte[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[double],double[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[int],int[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[long],long[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[short],short[]) (FullOpts)
          -2 (-5.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[ubyte],ubyte[]) (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:.ctor(double[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[double]:CopyTo(double[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:.ctor(int[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[int]:CopyTo(int[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:.ctor(long[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[long]:CopyTo(long[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:.ctor(short[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[short]:CopyTo(short[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[ubyte]:.ctor(ubyte[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector`1[ubyte]:CopyTo(ubyte[]):this (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:Create[double](double[]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:Create[int](int[]):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:Create[long](long[]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:Create[short](short[]):System.Runtime.Intrinsics.Vector128`1[short] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128:Create[ubyte](ubyte[]):System.Runtime.Intrinsics.Vector128`1[ubyte] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(double[]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(int[]):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(long[]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(short[]):System.Runtime.Intrinsics.Vector128`1[short] (FullOpts)
          -2 (-5.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector128`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(ubyte[]):System.Runtime.Intrinsics.Vector128`1[ubyte] (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:CopyTo[double](System.Runtime.Intrinsics.Vector256`1[double],double[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:CopyTo[int](System.Runtime.Intrinsics.Vector256`1[int],int[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:CopyTo[long](System.Runtime.Intrinsics.Vector256`1[long],long[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:CopyTo[short](System.Runtime.Intrinsics.Vector256`1[short],short[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:CopyTo[ubyte](System.Runtime.Intrinsics.Vector256`1[ubyte],ubyte[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[double],double[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[int],int[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[long],long[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[short],short[]) (FullOpts)
          -2 (-4.88 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[ubyte],ubyte[]) (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[double](double[]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[int](int[]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[long](long[]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[short](short[]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256:Create[ubyte](ubyte[]):System.Runtime.Intrinsics.Vector256`1[ubyte] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(double[]):System.Runtime.Intrinsics.Vector256`1[double] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(int[]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(long[]):System.Runtime.Intrinsics.Vector256`1[long] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(short[]):System.Runtime.Intrinsics.Vector256`1[short] (FullOpts)
          -2 (-4.76 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector256`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(ubyte[]):System.Runtime.Intrinsics.Vector256`1[ubyte] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Create[double](double[]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Create[int](int[]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Create[long](long[]):System.Runtime.Intrinsics.Vector512`1[long] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Create[short](short[]):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:Create[ubyte](ubyte[]):System.Runtime.Intrinsics.Vector512`1[ubyte] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(double[]):System.Runtime.Intrinsics.Vector512`1[double] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(int[]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(long[]):System.Runtime.Intrinsics.Vector512`1[long] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(short[]):System.Runtime.Intrinsics.Vector512`1[short] (FullOpts)
          -2 (-4.08 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(ubyte[]):System.Runtime.Intrinsics.Vector512`1[ubyte] (FullOpts)
          -2 (-4.00 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector3:CopyTo(float[]):this (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:CopyTo[double](System.Runtime.Intrinsics.Vector512`1[double],double[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:CopyTo[int](System.Runtime.Intrinsics.Vector512`1[int],int[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:CopyTo[long](System.Runtime.Intrinsics.Vector512`1[long],long[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:CopyTo[short](System.Runtime.Intrinsics.Vector512`1[short],short[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512:CopyTo[ubyte](System.Runtime.Intrinsics.Vector512`1[ubyte],ubyte[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[double],double[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[int],int[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[long],long[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[short],short[]) (FullOpts)
          -2 (-3.92 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector512`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[ubyte],ubyte[]) (FullOpts)
          -1 (-2.86 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:CopyTo[double](System.Runtime.Intrinsics.Vector64`1[double],double[]) (FullOpts)
          -1 (-2.86 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:CopyTo[long](System.Runtime.Intrinsics.Vector64`1[long],long[]) (FullOpts)
          -1 (-2.86 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[double],double[]) (FullOpts)
          -1 (-2.86 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[long],long[]) (FullOpts)
          -1 (-2.78 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:Create[double](double[]):System.Runtime.Intrinsics.Vector64`1[double] (FullOpts)
          -1 (-2.78 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64:Create[long](long[]):System.Runtime.Intrinsics.Vector64`1[long] (FullOpts)
          -1 (-2.78 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(double[]):System.Runtime.Intrinsics.Vector64`1[double] (FullOpts)
          -1 (-2.78 % of base) : System.Private.CoreLib.dasm - System.Runtime.Intrinsics.Vector64`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(long[]):System.Runtime.Intrinsics.Vector64`1[long] (FullOpts)

101 total methods with Code Size differences (93 improved, 8 regressed), 252640 unchanged.

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

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Jul 8, 2024

Top method regressions

29 (116.00 % of base) - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (16) zero-ref    single-def <System.Runtime.Intrinsics.Vector128`1[System.__Canon]>
 ;  V02 arg1         [V02,T01] (  3,  2   )     ref  ->  rsi         class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._lower (fldOffset=0x0)" P-INDEP
 ;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._upper (fldOffset=0x8)" P-INDEP
-;* V12 tmp9         [V12    ] (  0,  0   )   byref  ->  zero-ref    "BlockOp address local"
+;* V12 tmp9         [V12,T02] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V13 tmp10        [V13    ] (  0,  0   )   byref  ->  zero-ref    "BlockOp address local"
+;* V14 rat0         [V14,T03] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V15 rat1         [V15,T04] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V16 rat2         [V16,T06] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V17 rat3         [V17,T05] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M23152_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M23152_IG02:
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x88]
+       test     rdi, rdi
+       je       SHORT G_M23152_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M23152_IG03:
        mov      edi, dword ptr [rsi+0x08]
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=fb03a58f) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=fb03a58f) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts)
29 (116.00 % of base) - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 RetBuf       [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
 ;  V02 arg0         [V02,T01] (  3,  2   )     ref  ->  rdx         class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10,T02] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V11 rat0         [V11,T03] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V12 rat1         [V12,T04] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V13 rat2         [V13,T06] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V14 rat3         [V14,T05] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M59324_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M59324_IG02:
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0xA0]
+       test     rdi, rdi
+       je       SHORT G_M59324_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M59324_IG03:
        mov      edi, dword ptr [rdx+0x08]
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=ec911843) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=ec911843) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
29 (116.00 % of base) - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector256`1[System.__Canon]>
 ;  V02 arg1         [V02,T01] (  3,  2   )     ref  ->  rsi         class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10,T02] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V11 rat0         [V11,T03] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V12 rat1         [V12,T04] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V13 rat2         [V13,T06] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V14 rat3         [V14,T05] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M9626_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M9626_IG02:
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x80]
+       test     rdi, rdi
+       je       SHORT G_M9626_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M9626_IG03:
        mov      edi, dword ptr [rsi+0x08]
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=57a4da65) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=57a4da65) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts)
29 (116.00 % of base) - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 RetBuf       [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
 ;  V02 arg0         [V02,T01] (  3,  2   )     ref  ->  rdx         class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10,T02] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V11 rat0         [V11,T03] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V12 rat1         [V12,T04] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V13 rat2         [V13,T06] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V14 rat3         [V14,T05] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M1942_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M1942_IG02:
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x98]
+       test     rdi, rdi
+       je       SHORT G_M1942_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M1942_IG03:
        mov      edi, dword ptr [rdx+0x08]
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=f020f869) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=f020f869) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
29 (116.00 % of base) - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (64) zero-ref    do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector512`1[System.__Canon]>
 ;  V02 arg1         [V02,T01] (  3,  2   )     ref  ->  rsi         class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10,T02] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V11 rat0         [V11,T03] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V12 rat1         [V12,T04] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V13 rat2         [V13,T06] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V14 rat3         [V14,T05] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M25821_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M25821_IG02:
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x80]
+       test     rdi, rdi
+       je       SHORT G_M25821_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M25821_IG03:
        mov      edi, dword ptr [rsi+0x08]
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=fed49b22) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=fed49b22) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts)
29 (116.00 % of base) - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 RetBuf       [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
 ;  V02 arg0         [V02,T01] (  3,  2   )     ref  ->  rdx         class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10,T02] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V11 rat0         [V11,T03] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V12 rat1         [V12,T04] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V13 rat2         [V13,T06] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V14 rat3         [V14,T05] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M49233_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M49233_IG02:
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x98]
+       test     rdi, rdi
+       je       SHORT G_M49233_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M49233_IG03:
        mov      edi, dword ptr [rdx+0x08]
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=19413fae) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=19413fae) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
29 (116.00 % of base) - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 RetBuf       [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
 ;  V02 arg0         [V02,T01] (  3,  2   )     ref  ->  rdx         class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10,T02] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V11 rat0         [V11,T03] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V12 rat1         [V12,T04] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V13 rat2         [V13,T06] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V14 rat3         [V14,T05] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M52357_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M52357_IG02:
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x80]
+       test     rdi, rdi
+       je       SHORT G_M52357_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M52357_IG03:
        mov      edi, dword ptr [rdx+0x08]
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=631a337a) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=631a337a) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts)
26 (104.00 % of base) - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Runtime.Intrinsics.Vector64`1[System.__Canon]>
 ;  V02 arg1         [V02,T01] (  3,  2   )     ref  ->  rsi         class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._00 (fldOffset=0x0)" P-INDEP
+;* V11 tmp8         [V11,T02] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V12 rat0         [V12,T03] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V13 rat1         [V13,T04] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V14 rat2         [V14,T06] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V15 rat3         [V15,T05] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M28585_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M28585_IG02:
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x68]
+       test     rdi, rdi
+       je       SHORT G_M28585_IG03
+						;; size=16 bbWeight=0 PerfScore 0.00
+G_M28585_IG03:
        mov      edi, dword ptr [rsi+0x08]
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=21 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=da809056) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 51 (MethodHash=da809056) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[]) (FullOpts)

@MihuBot
Copy link
Owner Author

MihuBot commented Jul 8, 2024

Top method improvements

-2 (-5.13 % of base) - System.Numerics.Vector`1[double]:.ctor(double[]):this
 ; Assembly listing for method System.Numerics.Vector`1[double]:.ctor(double[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <double[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M58252_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M58252_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 4
+       cmp      dword ptr [rsi+0x08], 4
        jl       SHORT G_M58252_IG04
        vmovups  ymm0, ymmword ptr [rsi+0x10]
        vmovups  ymmword ptr [rdi], ymm0
-						;; size=17 bbWeight=1 PerfScore 10.25
+						;; size=15 bbWeight=1 PerfScore 11.00
 G_M58252_IG03:
        vzeroupper 
        add      rsp, 8
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.25
 G_M58252_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 39, prolog size 1, PerfScore 13.50, instruction count 12, allocated bytes for code 39 (MethodHash=bd9c1c73) for method System.Numerics.Vector`1[double]:.ctor(double[]):this (FullOpts)
+; Total bytes of code 37, prolog size 1, PerfScore 14.25, instruction count 11, allocated bytes for code 37 (MethodHash=bd9c1c73) for method System.Numerics.Vector`1[double]:.ctor(double[]):this (FullOpts)
-2 (-5.13 % of base) - System.Numerics.Vector`1[double]:CopyTo(double[]):this
 ; Assembly listing for method System.Numerics.Vector`1[double]:CopyTo(double[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <double[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M18422_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M18422_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 4
+       cmp      dword ptr [rsi+0x08], 4
        jl       SHORT G_M18422_IG04
        vmovups  ymm0, ymmword ptr [rdi]
        vmovups  ymmword ptr [rsi+0x10], ymm0
-						;; size=17 bbWeight=1 PerfScore 10.25
+						;; size=15 bbWeight=1 PerfScore 11.00
 G_M18422_IG03:
        vzeroupper 
        add      rsp, 8
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.25
 G_M18422_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 39, prolog size 1, PerfScore 13.50, instruction count 12, allocated bytes for code 39 (MethodHash=1f2fb809) for method System.Numerics.Vector`1[double]:CopyTo(double[]):this (FullOpts)
+; Total bytes of code 37, prolog size 1, PerfScore 14.25, instruction count 11, allocated bytes for code 37 (MethodHash=1f2fb809) for method System.Numerics.Vector`1[double]:CopyTo(double[]):this (FullOpts)
-2 (-5.13 % of base) - System.Numerics.Vector`1[int]:.ctor(int[]):this
 ; Assembly listing for method System.Numerics.Vector`1[int]:.ctor(int[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <int[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M12300_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M12300_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 8
+       cmp      dword ptr [rsi+0x08], 8
        jl       SHORT G_M12300_IG04
        vmovups  ymm0, ymmword ptr [rsi+0x10]
        vmovups  ymmword ptr [rdi], ymm0
-						;; size=17 bbWeight=1 PerfScore 10.25
+						;; size=15 bbWeight=1 PerfScore 11.00
 G_M12300_IG03:
        vzeroupper 
        add      rsp, 8
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.25
 G_M12300_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 39, prolog size 1, PerfScore 13.50, instruction count 12, allocated bytes for code 39 (MethodHash=f1dccff3) for method System.Numerics.Vector`1[int]:.ctor(int[]):this (FullOpts)
+; Total bytes of code 37, prolog size 1, PerfScore 14.25, instruction count 11, allocated bytes for code 37 (MethodHash=f1dccff3) for method System.Numerics.Vector`1[int]:.ctor(int[]):this (FullOpts)
-2 (-5.13 % of base) - System.Numerics.Vector`1[int]:CopyTo(int[]):this
 ; Assembly listing for method System.Numerics.Vector`1[int]:CopyTo(int[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <int[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M29430_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M29430_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 8
+       cmp      dword ptr [rsi+0x08], 8
        jl       SHORT G_M29430_IG04
        vmovups  ymm0, ymmword ptr [rdi]
        vmovups  ymmword ptr [rsi+0x10], ymm0
-						;; size=17 bbWeight=1 PerfScore 10.25
+						;; size=15 bbWeight=1 PerfScore 11.00
 G_M29430_IG03:
        vzeroupper 
        add      rsp, 8
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.25
 G_M29430_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 39, prolog size 1, PerfScore 13.50, instruction count 12, allocated bytes for code 39 (MethodHash=57a68d09) for method System.Numerics.Vector`1[int]:CopyTo(int[]):this (FullOpts)
+; Total bytes of code 37, prolog size 1, PerfScore 14.25, instruction count 11, allocated bytes for code 37 (MethodHash=57a68d09) for method System.Numerics.Vector`1[int]:CopyTo(int[]):this (FullOpts)
-2 (-5.13 % of base) - System.Numerics.Vector`1[long]:.ctor(long[]):this
 ; Assembly listing for method System.Numerics.Vector`1[long]:.ctor(long[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <long[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M32780_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M32780_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 4
+       cmp      dword ptr [rsi+0x08], 4
        jl       SHORT G_M32780_IG04
        vmovups  ymm0, ymmword ptr [rsi+0x10]
        vmovups  ymmword ptr [rdi], ymm0
-						;; size=17 bbWeight=1 PerfScore 10.25
+						;; size=15 bbWeight=1 PerfScore 11.00
 G_M32780_IG03:
        vzeroupper 
        add      rsp, 8
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.25
 G_M32780_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 39, prolog size 1, PerfScore 13.50, instruction count 12, allocated bytes for code 39 (MethodHash=87327ff3) for method System.Numerics.Vector`1[long]:.ctor(long[]):this (FullOpts)
+; Total bytes of code 37, prolog size 1, PerfScore 14.25, instruction count 11, allocated bytes for code 37 (MethodHash=87327ff3) for method System.Numerics.Vector`1[long]:.ctor(long[]):this (FullOpts)
-2 (-5.13 % of base) - System.Numerics.Vector`1[long]:CopyTo(long[]):this
 ; Assembly listing for method System.Numerics.Vector`1[long]:CopyTo(long[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <long[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M49046_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M49046_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 4
+       cmp      dword ptr [rsi+0x08], 4
        jl       SHORT G_M49046_IG04
        vmovups  ymm0, ymmword ptr [rdi]
        vmovups  ymmword ptr [rsi+0x10], ymm0
-						;; size=17 bbWeight=1 PerfScore 10.25
+						;; size=15 bbWeight=1 PerfScore 11.00
 G_M49046_IG03:
        vzeroupper 
        add      rsp, 8
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.25
 G_M49046_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 39, prolog size 1, PerfScore 13.50, instruction count 12, allocated bytes for code 39 (MethodHash=db034069) for method System.Numerics.Vector`1[long]:CopyTo(long[]):this (FullOpts)
+; Total bytes of code 37, prolog size 1, PerfScore 14.25, instruction count 11, allocated bytes for code 37 (MethodHash=db034069) for method System.Numerics.Vector`1[long]:CopyTo(long[]):this (FullOpts)
-2 (-5.13 % of base) - System.Numerics.Vector`1[short]:.ctor(short[]):this
 ; Assembly listing for method System.Numerics.Vector`1[short]:.ctor(short[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <short[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M50924_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M50924_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 16
+       cmp      dword ptr [rsi+0x08], 16
        jl       SHORT G_M50924_IG04
        vmovups  ymm0, ymmword ptr [rsi+0x10]
        vmovups  ymmword ptr [rdi], ymm0
-						;; size=17 bbWeight=1 PerfScore 10.25
+						;; size=15 bbWeight=1 PerfScore 11.00
 G_M50924_IG03:
        vzeroupper 
        add      rsp, 8
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.25
 G_M50924_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 39, prolog size 1, PerfScore 13.50, instruction count 12, allocated bytes for code 39 (MethodHash=183e3913) for method System.Numerics.Vector`1[short]:.ctor(short[]):this (FullOpts)
+; Total bytes of code 37, prolog size 1, PerfScore 14.25, instruction count 11, allocated bytes for code 37 (MethodHash=183e3913) for method System.Numerics.Vector`1[short]:.ctor(short[]):this (FullOpts)
-2 (-5.13 % of base) - System.Numerics.Vector`1[short]:CopyTo(short[]):this
 ; Assembly listing for method System.Numerics.Vector`1[short]:CopyTo(short[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <short[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M6710_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M6710_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 16
+       cmp      dword ptr [rsi+0x08], 16
        jl       SHORT G_M6710_IG04
        vmovups  ymm0, ymmword ptr [rdi]
        vmovups  ymmword ptr [rsi+0x10], ymm0
-						;; size=17 bbWeight=1 PerfScore 10.25
+						;; size=15 bbWeight=1 PerfScore 11.00
 G_M6710_IG03:
        vzeroupper 
        add      rsp, 8
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.25
 G_M6710_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 39, prolog size 1, PerfScore 13.50, instruction count 12, allocated bytes for code 39 (MethodHash=654ce5c9) for method System.Numerics.Vector`1[short]:CopyTo(short[]):this (FullOpts)
+; Total bytes of code 37, prolog size 1, PerfScore 14.25, instruction count 11, allocated bytes for code 37 (MethodHash=654ce5c9) for method System.Numerics.Vector`1[short]:CopyTo(short[]):this (FullOpts)
-2 (-5.13 % of base) - System.Numerics.Vector`1[ubyte]:.ctor(ubyte[]):this
 ; Assembly listing for method System.Numerics.Vector`1[ubyte]:.ctor(ubyte[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <ubyte[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M13964_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M13964_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 32
+       cmp      dword ptr [rsi+0x08], 32
        jl       SHORT G_M13964_IG04
        vmovups  ymm0, ymmword ptr [rsi+0x10]
        vmovups  ymmword ptr [rdi], ymm0
-						;; size=17 bbWeight=1 PerfScore 10.25
+						;; size=15 bbWeight=1 PerfScore 11.00
 G_M13964_IG03:
        vzeroupper 
        add      rsp, 8
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.25
 G_M13964_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 39, prolog size 1, PerfScore 13.50, instruction count 12, allocated bytes for code 39 (MethodHash=9705c973) for method System.Numerics.Vector`1[ubyte]:.ctor(ubyte[]):this (FullOpts)
+; Total bytes of code 37, prolog size 1, PerfScore 14.25, instruction count 11, allocated bytes for code 37 (MethodHash=9705c973) for method System.Numerics.Vector`1[ubyte]:.ctor(ubyte[]):this (FullOpts)
-2 (-5.13 % of base) - System.Numerics.Vector`1[ubyte]:CopyTo(ubyte[]):this
 ; Assembly listing for method System.Numerics.Vector`1[ubyte]:CopyTo(ubyte[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <ubyte[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M11254_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M11254_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 32
+       cmp      dword ptr [rsi+0x08], 32
        jl       SHORT G_M11254_IG04
        vmovups  ymm0, ymmword ptr [rdi]
        vmovups  ymmword ptr [rsi+0x10], ymm0
-						;; size=17 bbWeight=1 PerfScore 10.25
+						;; size=15 bbWeight=1 PerfScore 11.00
 G_M11254_IG03:
        vzeroupper 
        add      rsp, 8
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.25
 G_M11254_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 39, prolog size 1, PerfScore 13.50, instruction count 12, allocated bytes for code 39 (MethodHash=c3dcd409) for method System.Numerics.Vector`1[ubyte]:CopyTo(ubyte[]):this (FullOpts)
+; Total bytes of code 37, prolog size 1, PerfScore 14.25, instruction count 11, allocated bytes for code 37 (MethodHash=c3dcd409) for method System.Numerics.Vector`1[ubyte]:CopyTo(ubyte[]):this (FullOpts)
-2 (-5.56 % of base) - System.Numerics.Vector2:CopyTo(float[]):this
 ; Assembly listing for method System.Numerics.Vector2:CopyTo(float[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <float[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M12547_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M12547_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 2
+       cmp      dword ptr [rsi+0x08], 2
        jl       SHORT G_M12547_IG04
        vmovsd   xmm0, qword ptr [rdi]
        vmovsd   qword ptr [rsi+0x10], xmm0
-						;; size=17 bbWeight=1 PerfScore 9.25
+						;; size=15 bbWeight=1 PerfScore 10.00
 G_M12547_IG03:
        add      rsp, 8
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M12547_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 36, prolog size 1, PerfScore 11.50, instruction count 11, allocated bytes for code 36 (MethodHash=57a1cefc) for method System.Numerics.Vector2:CopyTo(float[]):this (FullOpts)
+; Total bytes of code 34, prolog size 1, PerfScore 12.25, instruction count 10, allocated bytes for code 34 (MethodHash=57a1cefc) for method System.Numerics.Vector2:CopyTo(float[]):this (FullOpts)
-2 (-4.00 % of base) - System.Numerics.Vector3:CopyTo(float[]):this
 ; Assembly listing for method System.Numerics.Vector3:CopyTo(float[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <float[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M55650_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M55650_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 3
+       cmp      dword ptr [rsi+0x08], 3
        jl       SHORT G_M55650_IG04
        vmovsd   xmm0, qword ptr [rdi]
        vinsertps xmm0, xmm0, dword ptr [rdi+0x08], 40
        vmovsd   qword ptr [rsi+0x10], xmm0
        vextractps dword ptr [rsi+0x18], xmm0, 2
-						;; size=31 bbWeight=1 PerfScore 16.25
+						;; size=29 bbWeight=1 PerfScore 17.00
 G_M55650_IG03:
        add      rsp, 8
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M55650_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 50, prolog size 1, PerfScore 18.50, instruction count 13, allocated bytes for code 50 (MethodHash=c13a269d) for method System.Numerics.Vector3:CopyTo(float[]):this (FullOpts)
+; Total bytes of code 48, prolog size 1, PerfScore 19.25, instruction count 12, allocated bytes for code 48 (MethodHash=c13a269d) for method System.Numerics.Vector3:CopyTo(float[]):this (FullOpts)
-2 (-5.56 % of base) - System.Numerics.Vector4:CopyTo(float[]):this
 ; Assembly listing for method System.Numerics.Vector4:CopyTo(float[]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  3,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rsi         class-hnd single-def <float[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T03] (  2,  4   )  simd16  ->  mm0         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[float]>
-;  V04 cse0         [V04,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
+;  V03 tmp1         [V03,T02] (  2,  4   )  simd16  ->  mm0         "Inlining Arg" <System.Runtime.Intrinsics.Vector128`1[float]>
 ;
 ; Lcl frame size = 8
 
 G_M4677_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M4677_IG02:
        vmovups  xmm0, xmmword ptr [rdi]
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 4
+       cmp      dword ptr [rsi+0x08], 4
        jl       SHORT G_M4677_IG04
        vmovups  xmmword ptr [rsi+0x10], xmm0
-						;; size=17 bbWeight=1 PerfScore 9.25
+						;; size=15 bbWeight=1 PerfScore 10.00
 G_M4677_IG03:
        add      rsp, 8
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M4677_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 36, prolog size 1, PerfScore 11.50, instruction count 11, allocated bytes for code 36 (MethodHash=a38dedba) for method System.Numerics.Vector4:CopyTo(float[]):this (FullOpts)
+; Total bytes of code 34, prolog size 1, PerfScore 12.25, instruction count 10, allocated bytes for code 34 (MethodHash=a38dedba) for method System.Numerics.Vector4:CopyTo(float[]):this (FullOpts)
-2 (-5.26 % of base) - System.Runtime.Intrinsics.Vector128:CopyTo[double](System.Runtime.Intrinsics.Vector128`1[double],double[])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128:CopyTo[double](System.Runtime.Intrinsics.Vector128`1[double],double[]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  1,  1   )  simd16  ->  [rsp+0x10]  single-def <System.Runtime.Intrinsics.Vector128`1[double]>
+;  V00 arg0         [V00,T01] (  1,  1   )  simd16  ->  [rsp+0x10]  single-def <System.Runtime.Intrinsics.Vector128`1[double]>
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rdi         class-hnd single-def <double[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T01] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M2705_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M2705_IG02:
-       mov      eax, dword ptr [rdi+0x08]
-       cmp      eax, 2
+       cmp      dword ptr [rdi+0x08], 2
        jl       SHORT G_M2705_IG04
        vmovaps  xmm0, xmmword ptr [rsp+0x10]
        vmovups  xmmword ptr [rdi+0x10], xmm0
-						;; size=19 bbWeight=1 PerfScore 8.25
+						;; size=17 bbWeight=1 PerfScore 9.00
 G_M2705_IG03:
        add      rsp, 8
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M2705_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 38, prolog size 1, PerfScore 10.50, instruction count 11, allocated bytes for code 38 (MethodHash=fe11f56e) for method System.Runtime.Intrinsics.Vector128:CopyTo[double](System.Runtime.Intrinsics.Vector128`1[double],double[]) (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 11.25, instruction count 10, allocated bytes for code 36 (MethodHash=fe11f56e) for method System.Runtime.Intrinsics.Vector128:CopyTo[double](System.Runtime.Intrinsics.Vector128`1[double],double[]) (FullOpts)
-2 (-5.26 % of base) - System.Runtime.Intrinsics.Vector128:CopyTo[int](System.Runtime.Intrinsics.Vector128`1[int],int[])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128:CopyTo[int](System.Runtime.Intrinsics.Vector128`1[int],int[]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  1,  1   )  simd16  ->  [rsp+0x10]  single-def <System.Runtime.Intrinsics.Vector128`1[int]>
+;  V00 arg0         [V00,T01] (  1,  1   )  simd16  ->  [rsp+0x10]  single-def <System.Runtime.Intrinsics.Vector128`1[int]>
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rdi         class-hnd single-def <int[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T01] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M33719_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M33719_IG02:
-       mov      eax, dword ptr [rdi+0x08]
-       cmp      eax, 4
+       cmp      dword ptr [rdi+0x08], 4
        jl       SHORT G_M33719_IG04
        vmovaps  xmm0, xmmword ptr [rsp+0x10]
        vmovups  xmmword ptr [rdi+0x10], xmm0
-						;; size=19 bbWeight=1 PerfScore 8.25
+						;; size=17 bbWeight=1 PerfScore 9.00
 G_M33719_IG03:
        add      rsp, 8
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M33719_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 38, prolog size 1, PerfScore 10.50, instruction count 11, allocated bytes for code 38 (MethodHash=779a7c48) for method System.Runtime.Intrinsics.Vector128:CopyTo[int](System.Runtime.Intrinsics.Vector128`1[int],int[]) (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 11.25, instruction count 10, allocated bytes for code 36 (MethodHash=779a7c48) for method System.Runtime.Intrinsics.Vector128:CopyTo[int](System.Runtime.Intrinsics.Vector128`1[int],int[]) (FullOpts)
-2 (-5.26 % of base) - System.Runtime.Intrinsics.Vector128:CopyTo[long](System.Runtime.Intrinsics.Vector128`1[long],long[])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128:CopyTo[long](System.Runtime.Intrinsics.Vector128`1[long],long[]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  1,  1   )  simd16  ->  [rsp+0x10]  single-def <System.Runtime.Intrinsics.Vector128`1[long]>
+;  V00 arg0         [V00,T01] (  1,  1   )  simd16  ->  [rsp+0x10]  single-def <System.Runtime.Intrinsics.Vector128`1[long]>
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rdi         class-hnd single-def <long[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T01] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M58126_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M58126_IG02:
-       mov      eax, dword ptr [rdi+0x08]
-       cmp      eax, 2
+       cmp      dword ptr [rdi+0x08], 2
        jl       SHORT G_M58126_IG04
        vmovaps  xmm0, xmmword ptr [rsp+0x10]
        vmovups  xmmword ptr [rdi+0x10], xmm0
-						;; size=19 bbWeight=1 PerfScore 8.25
+						;; size=17 bbWeight=1 PerfScore 9.00
 G_M58126_IG03:
        add      rsp, 8
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M58126_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 38, prolog size 1, PerfScore 10.50, instruction count 11, allocated bytes for code 38 (MethodHash=3a0c1cf1) for method System.Runtime.Intrinsics.Vector128:CopyTo[long](System.Runtime.Intrinsics.Vector128`1[long],long[]) (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 11.25, instruction count 10, allocated bytes for code 36 (MethodHash=3a0c1cf1) for method System.Runtime.Intrinsics.Vector128:CopyTo[long](System.Runtime.Intrinsics.Vector128`1[long],long[]) (FullOpts)
-2 (-5.26 % of base) - System.Runtime.Intrinsics.Vector128:CopyTo[short](System.Runtime.Intrinsics.Vector128`1[short],short[])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128:CopyTo[short](System.Runtime.Intrinsics.Vector128`1[short],short[]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  1,  1   )  simd16  ->  [rsp+0x10]  single-def <System.Runtime.Intrinsics.Vector128`1[short]>
+;  V00 arg0         [V00,T01] (  1,  1   )  simd16  ->  [rsp+0x10]  single-def <System.Runtime.Intrinsics.Vector128`1[short]>
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rdi         class-hnd single-def <short[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T01] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M57782_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M57782_IG02:
-       mov      eax, dword ptr [rdi+0x08]
-       cmp      eax, 8
+       cmp      dword ptr [rdi+0x08], 8
        jl       SHORT G_M57782_IG04
        vmovaps  xmm0, xmmword ptr [rsp+0x10]
        vmovups  xmmword ptr [rdi+0x10], xmm0
-						;; size=19 bbWeight=1 PerfScore 8.25
+						;; size=17 bbWeight=1 PerfScore 9.00
 G_M57782_IG03:
        add      rsp, 8
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M57782_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 38, prolog size 1, PerfScore 10.50, instruction count 11, allocated bytes for code 38 (MethodHash=69f61e49) for method System.Runtime.Intrinsics.Vector128:CopyTo[short](System.Runtime.Intrinsics.Vector128`1[short],short[]) (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 11.25, instruction count 10, allocated bytes for code 36 (MethodHash=69f61e49) for method System.Runtime.Intrinsics.Vector128:CopyTo[short](System.Runtime.Intrinsics.Vector128`1[short],short[]) (FullOpts)
-2 (-5.26 % of base) - System.Runtime.Intrinsics.Vector128:CopyTo[ubyte](System.Runtime.Intrinsics.Vector128`1[ubyte],ubyte[])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128:CopyTo[ubyte](System.Runtime.Intrinsics.Vector128`1[ubyte],ubyte[]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  1,  1   )  simd16  ->  [rsp+0x10]  single-def <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+;  V00 arg0         [V00,T01] (  1,  1   )  simd16  ->  [rsp+0x10]  single-def <System.Runtime.Intrinsics.Vector128`1[ubyte]>
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->  rdi         class-hnd single-def <ubyte[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T01] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M32187_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M32187_IG02:
-       mov      eax, dword ptr [rdi+0x08]
-       cmp      eax, 16
+       cmp      dword ptr [rdi+0x08], 16
        jl       SHORT G_M32187_IG04
        vmovaps  xmm0, xmmword ptr [rsp+0x10]
        vmovups  xmmword ptr [rdi+0x10], xmm0
-						;; size=19 bbWeight=1 PerfScore 8.25
+						;; size=17 bbWeight=1 PerfScore 9.00
 G_M32187_IG03:
        add      rsp, 8
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M32187_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 38, prolog size 1, PerfScore 10.50, instruction count 11, allocated bytes for code 38 (MethodHash=f2a28244) for method System.Runtime.Intrinsics.Vector128:CopyTo[ubyte](System.Runtime.Intrinsics.Vector128`1[ubyte],ubyte[]) (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 11.25, instruction count 10, allocated bytes for code 36 (MethodHash=f2a28244) for method System.Runtime.Intrinsics.Vector128:CopyTo[ubyte](System.Runtime.Intrinsics.Vector128`1[ubyte],ubyte[]) (FullOpts)
-2 (-5.13 % of base) - System.Runtime.Intrinsics.Vector128:Create[double](double[]):System.Runtime.Intrinsics.Vector128`1[double]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128:Create[double](double[]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 RetBuf       [V00,T00] (  4,  4   )   byref  ->  rdi         single-def
 ;  V01 arg0         [V01,T01] (  4,  4   )     ref  ->  rsi         class-hnd single-def <double[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M413_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M413_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 2
+       cmp      dword ptr [rsi+0x08], 2
        jl       SHORT G_M413_IG04
        vmovups  xmm0, xmmword ptr [rsi+0x10]
        vmovups  xmmword ptr [rdi], xmm0
        mov      rax, rdi
-						;; size=20 bbWeight=1 PerfScore 9.50
+						;; size=18 bbWeight=1 PerfScore 10.25
 G_M413_IG03:
        add      rsp, 8
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M413_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 39, prolog size 1, PerfScore 11.75, instruction count 12, allocated bytes for code 39 (MethodHash=6509fe62) for method System.Runtime.Intrinsics.Vector128:Create[double](double[]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
+; Total bytes of code 37, prolog size 1, PerfScore 12.50, instruction count 11, allocated bytes for code 37 (MethodHash=6509fe62) for method System.Runtime.Intrinsics.Vector128:Create[double](double[]):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
-2 (-5.13 % of base) - System.Runtime.Intrinsics.Vector128:Create[int](int[]):System.Runtime.Intrinsics.Vector128`1[int]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128:Create[int](int[]):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rsp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 RetBuf       [V00,T00] (  4,  4   )   byref  ->  rdi         single-def
 ;  V01 arg0         [V01,T01] (  4,  4   )     ref  ->  rsi         class-hnd single-def <int[]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 cse0         [V03,T02] (  2,  2   )     int  ->  rax         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M62619_IG01:
        push     rax
 						;; size=1 bbWeight=1 PerfScore 1.00
 G_M62619_IG02:
-       mov      eax, dword ptr [rsi+0x08]
-       cmp      eax, 4
+       cmp      dword ptr [rsi+0x08], 4
        jl       SHORT G_M62619_IG04
        vmovups  xmm0, xmmword ptr [rsi+0x10]
        vmovups  xmmword ptr [rdi], xmm0
        mov      rax, rdi
-						;; size=20 bbWeight=1 PerfScore 9.50
+						;; size=18 bbWeight=1 PerfScore 10.25
 G_M62619_IG03:
        add      rsp, 8
        ret      
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M62619_IG04:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 39, prolog size 1, PerfScore 11.75, instruction count 12, allocated bytes for code 39 (MethodHash=077b0b64) for method System.Runtime.Intrinsics.Vector128:Create[int](int[]):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts)
+; Total bytes of code 37, prolog size 1, PerfScore 12.50, instruction count 11, allocated bytes for code 37 (MethodHash=077b0b64) for method System.Runtime.Intrinsics.Vector128:Create[int](int[]):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts)

@MihuBot
Copy link
Owner Author

MihuBot commented Jul 8, 2024

@xtqqczze

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant