Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created July 13, 2024 16:15
Show Gist options
  • Save MihuBot/925d0f922d43f4c51e1f36b33d0bdfb5 to your computer and use it in GitHub Desktop.
Save MihuBot/925d0f922d43f4c51e1f36b33d0bdfb5 to your computer and use it in GitHub Desktop.

Top method improvements

-59 (-45.38 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this
 ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 arg2         [V02    ] (  1,  1   )  struct ( 8) [rbp-0x18]  do-not-enreg[S] <System.Nullable`1[int]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "Reusable Box Helper"
 ;
 ; Lcl frame size = 32
 
 G_M2528_IG01:
        push     rbp
        sub      rsp, 32
        lea      rbp, [rsp+0x20]
        xor      eax, eax
        mov      qword ptr [rbp-0x20], rax
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
        mov      qword ptr [rbp-0x18], rsi
 						;; size=29 bbWeight=1 PerfScore 6.00
 G_M2528_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x20], rax
-       mov      rax, gword ptr [rbp-0x20]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x20]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rdi, gword ptr [rbp-0x08]
        mov      rdx, qword ptr [rbp-0x18]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        mov      esi, -1
        mov      ecx, 2
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
        call     [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
        nop      
-						;; size=95 bbWeight=1 PerfScore 21.75
+						;; size=36 bbWeight=1 PerfScore 9.00
 G_M2528_IG03:
        add      rsp, 32
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 130, prolog size 16, PerfScore 29.50, instruction count 29, allocated bytes for code 130 (MethodHash=d20cf61f) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
+; Total bytes of code 71, prolog size 16, PerfScore 16.75, instruction count 19, allocated bytes for code 71 (MethodHash=d20cf61f) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
-59 (-47.20 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this
 ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 loc0         [V02    ] (  1,  1   )     int  ->  [rbp-0x18]  do-not-enreg[X] addr-exposed ld-addr-op
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "Reusable Box Helper"
 ;
 ; Lcl frame size = 32
 
 G_M1197_IG01:
        push     rbp
        sub      rsp, 32
        lea      rbp, [rsp+0x20]
        xor      eax, eax
        mov      qword ptr [rbp-0x20], rax
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
 						;; size=25 bbWeight=1 PerfScore 5.00
 G_M1197_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x20], rax
-       mov      rax, gword ptr [rbp-0x20]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x20]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        xor      eax, eax
        mov      dword ptr [rbp-0x18], eax
        lea      rsi, [rbp-0x18]
        lea      rdx, [rbp-0x18]
        mov      rdi, gword ptr [rbp-0x08]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double,byref,byref):int:this
        call     [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double,byref,byref):int:this
        nop      
-						;; size=94 bbWeight=1 PerfScore 22.50
+						;; size=35 bbWeight=1 PerfScore 9.75
 G_M1197_IG03:
        add      rsp, 32
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 125, prolog size 16, PerfScore 29.25, instruction count 29, allocated bytes for code 125 (MethodHash=654cfb52) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0)
+; Total bytes of code 66, prolog size 16, PerfScore 16.50, instruction count 19, allocated bytes for code 66 (MethodHash=654cfb52) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0)
-59 (-38.06 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this
 ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )     int  ->  [rbp-0x0C]  do-not-enreg[]
 ;  V02 arg2         [V02    ] (  1,  1   )  double  ->  [rbp-0x18]  do-not-enreg[]
 ;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [rbp-0x20]  do-not-enreg[S] <System.Nullable`1[int]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "Reusable Box Helper"
 ;
 ; Lcl frame size = 48
 
 G_M61129_IG01:
        push     rbp
        sub      rsp, 48
        lea      rbp, [rsp+0x30]
        xor      eax, eax
        mov      qword ptr [rbp-0x28], rax
        mov      gword ptr [rbp-0x08], rdi
        mov      dword ptr [rbp-0x0C], esi
        vmovsd   qword ptr [rbp-0x18], xmm0
        mov      qword ptr [rbp-0x20], rdx
 						;; size=32 bbWeight=1 PerfScore 7.00
 G_M61129_IG02:
        mov      eax, dword ptr [rbp-0x0C]
        mov      rcx, gword ptr [rbp-0x08]
        cmp      eax, dword ptr [rcx+0x38]
        jbe      SHORT G_M61129_IG03
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.ThrowHelper:ThrowIndexArgumentOutOfRange()
        call     [rax]System.Collections.ThrowHelper:ThrowIndexArgumentOutOfRange()
 						;; size=24 bbWeight=1 PerfScore 9.25
 G_M61129_IG03:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x28], rax
-       mov      rax, gword ptr [rbp-0x28]
-       vmovsd   xmm0, qword ptr [rbp-0x18]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x28]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rdi, gword ptr [rbp-0x08]
        mov      esi, dword ptr [rbp-0x0C]
        vmovsd   xmm0, qword ptr [rbp-0x18]
        mov      rdx, qword ptr [rbp-0x20]
        mov      ecx, 2
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
        call     [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
        nop      
-						;; size=93 bbWeight=1 PerfScore 22.50
+						;; size=34 bbWeight=1 PerfScore 9.75
 G_M61129_IG04:
        add      rsp, 48
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 155, prolog size 16, PerfScore 40.50, instruction count 36, allocated bytes for code 155 (MethodHash=91e81136) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this (Tier0)
+; Total bytes of code 96, prolog size 16, PerfScore 27.75, instruction count 26, allocated bytes for code 96 (MethodHash=91e81136) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this (Tier0)
-59 (-28.23 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this
 ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 arg2         [V02    ] (  1,  1   )   byref  ->  [rbp-0x18]  do-not-enreg[]
 ;  V03 loc0         [V03    ] (  1,  1   )     int  ->  [rbp-0x1C]  do-not-enreg[]
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "Reusable Box Helper"
 ;
 ; Lcl frame size = 48
 
 G_M50550_IG01:
        push     rbp
        sub      rsp, 48
        lea      rbp, [rsp+0x30]
        xor      eax, eax
        mov      qword ptr [rbp-0x28], rax
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
        mov      bword ptr [rbp-0x18], rsi
 						;; size=29 bbWeight=1 PerfScore 6.00
 G_M50550_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x28], rax
-       mov      rax, gword ptr [rbp-0x28]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x28]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rdi, gword ptr [rbp-0x08]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this
        call     [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this
        mov      dword ptr [rbp-0x1C], eax
        cmp      dword ptr [rbp-0x1C], 0
        jl       SHORT G_M50550_IG04
        mov      rax, gword ptr [rbp-0x08]
        mov      rax, gword ptr [rax+0x18]
        mov      ecx, dword ptr [rbp-0x1C]
        cmp      ecx, dword ptr [rax+0x08]
        jae      SHORT G_M50550_IG06
        mov      edx, ecx
        imul     rdx, rdx, 24
        lea      rax, bword ptr [rax+rdx+0x10]
        mov      rcx, bword ptr [rbp-0x18]
        mov      rdx, qword ptr [rax+0x10]
        mov      qword ptr [rcx], rdx
        mov      rdi, gword ptr [rbp-0x08]
        mov      esi, dword ptr [rbp-0x1C]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RemoveAt(int):this
        call     [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RemoveAt(int):this
        mov      eax, 1
-						;; size=151 bbWeight=1 PerfScore 44.75
+						;; size=92 bbWeight=1 PerfScore 32.00
 G_M50550_IG03:
        add      rsp, 48
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 G_M50550_IG04:
        mov      rax, bword ptr [rbp-0x18]
        xor      ecx, ecx
        mov      qword ptr [rax], rcx
        xor      eax, eax
 						;; size=11 bbWeight=1 PerfScore 2.50
 G_M50550_IG05:
        add      rsp, 48
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 G_M50550_IG06:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 209, prolog size 16, PerfScore 56.75, instruction count 53, allocated bytes for code 209 (MethodHash=70e43a89) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this (Tier0)
+; Total bytes of code 150, prolog size 16, PerfScore 44.00, instruction count 43, allocated bytes for code 150 (MethodHash=70e43a89) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this (Tier0)
-59 (-45.38 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this
 ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 arg2         [V02    ] (  1,  1   )  struct ( 8) [rbp-0x18]  do-not-enreg[S] <System.Nullable`1[int]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "Reusable Box Helper"
 ;
 ; Lcl frame size = 32
 
 G_M35017_IG01:
        push     rbp
        sub      rsp, 32
        lea      rbp, [rsp+0x20]
        xor      eax, eax
        mov      qword ptr [rbp-0x20], rax
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
        mov      qword ptr [rbp-0x18], rsi
 						;; size=29 bbWeight=1 PerfScore 6.00
 G_M35017_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x20], rax
-       mov      rax, gword ptr [rbp-0x20]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x20]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rdi, gword ptr [rbp-0x08]
        mov      rdx, qword ptr [rbp-0x18]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        mov      esi, -1
        mov      ecx, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
        call     [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
        nop      
-						;; size=95 bbWeight=1 PerfScore 21.75
+						;; size=36 bbWeight=1 PerfScore 9.00
 G_M35017_IG03:
        add      rsp, 32
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 130, prolog size 16, PerfScore 29.50, instruction count 29, allocated bytes for code 130 (MethodHash=bbc07736) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this (Tier0)
+; Total bytes of code 71, prolog size 16, PerfScore 16.75, instruction count 19, allocated bytes for code 71 (MethodHash=bbc07736) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this (Tier0)
-59 (-12.22 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this
 ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )     int  ->  [rbp-0x0C]  do-not-enreg[]
 ;  V02 arg2         [V02    ] (  1,  1   )  double  ->  [rbp-0x18]  do-not-enreg[]
 ;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [rbp-0x20]  do-not-enreg[S] <System.Nullable`1[int]>
 ;  V04 loc0         [V04    ] (  1,  1   )   byref  ->  [rbp-0x28]  do-not-enreg[] must-init
 ;  V05 loc1         [V05    ] (  1,  1   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed ld-addr-op
 ;  V06 loc2         [V06    ] (  1,  1   )     int  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08    ] (  1,  1   )     ref  ->  [rbp-0x40]  do-not-enreg[] must-init "Reusable Box Helper"
 ;  V09 tmp2         [V09    ] (  1,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[] must-init "argument with side effect"
 ;
 ; Lcl frame size = 80
 
 G_M37961_IG01:
        push     rbp
        sub      rsp, 80
        lea      rbp, [rsp+0x50]
        xor      eax, eax
        mov      qword ptr [rbp-0x48], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x40], ymm8
        mov      gword ptr [rbp-0x08], rdi
        mov      dword ptr [rbp-0x0C], esi
        vmovsd   qword ptr [rbp-0x18], xmm0
        mov      qword ptr [rbp-0x20], rdx
 						;; size=42 bbWeight=1 PerfScore 9.33
 G_M37961_IG02:
        mov      eax, dword ptr [rbp-0x0C]
        mov      rcx, gword ptr [rbp-0x08]
        cmp      eax, dword ptr [rcx+0x38]
        jb       SHORT G_M37961_IG03
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.ThrowHelper:ThrowIndexArgumentOutOfRange()
        call     [rax]System.Collections.ThrowHelper:ThrowIndexArgumentOutOfRange()
 						;; size=24 bbWeight=1 PerfScore 9.25
 G_M37961_IG03:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x40], rax
-       mov      rax, gword ptr [rbp-0x40]
-       vmovsd   xmm0, qword ptr [rbp-0x18]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x40]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rax, gword ptr [rbp-0x08]
        mov      rax, gword ptr [rax+0x18]
        mov      ecx, dword ptr [rbp-0x0C]
        cmp      ecx, dword ptr [rax+0x08]
        jae      G_M37961_IG10
        mov      edx, ecx
        imul     rdx, rdx, 24
        lea      rax, bword ptr [rax+rdx+0x10]
        mov      bword ptr [rbp-0x28], rax
        mov      rax, gword ptr [rbp-0x08]
        cmp      gword ptr [rax+0x08], 0
        jne      SHORT G_M37961_IG05
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.EqualityComparer`1[double]:get_Default():System.Collections.Generic.EqualityComparer`1[double]
        call     [rax]System.Collections.Generic.EqualityComparer`1[double]:get_Default():System.Collections.Generic.EqualityComparer`1[double]
        mov      gword ptr [rbp-0x48], rax
        mov      rdi, gword ptr [rbp-0x48]
        mov      rax, bword ptr [rbp-0x28]
        vmovsd   xmm1, qword ptr [rax+0x08]
        vmovsd   xmm0, qword ptr [rbp-0x18]
        mov      rax, gword ptr [rbp-0x48]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x20]System.Collections.Generic.EqualityComparer`1[double]:Equals(double,double):ubyte:this
        test     eax, eax
        je       SHORT G_M37961_IG07
        mov      rax, bword ptr [rbp-0x28]
        mov      rcx, qword ptr [rbp-0x20]
        mov      qword ptr [rax+0x10], rcx
-						;; size=169 bbWeight=1 PerfScore 55.50
+						;; size=110 bbWeight=1 PerfScore 42.75
 G_M37961_IG04:
        add      rsp, 80
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 G_M37961_IG05:
        mov      rax, gword ptr [rbp-0x08]
        mov      rdi, gword ptr [rax+0x08]
        mov      rax, bword ptr [rbp-0x28]
        vmovsd   xmm1, qword ptr [rax+0x08]
        vmovsd   xmm0, qword ptr [rbp-0x18]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
        call     [r11]System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
        test     eax, eax
        je       SHORT G_M37961_IG07
        mov      rax, bword ptr [rbp-0x28]
        mov      rcx, qword ptr [rbp-0x20]
        mov      qword ptr [rax+0x10], rcx
 						;; size=51 bbWeight=1 PerfScore 18.50
 G_M37961_IG06:
        add      rsp, 80
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 G_M37961_IG07:
        xor      eax, eax
        mov      dword ptr [rbp-0x30], eax
        xor      eax, eax
        mov      dword ptr [rbp-0x38], eax
        lea      rsi, [rbp-0x30]
        lea      rdx, [rbp-0x38]
        mov      rdi, gword ptr [rbp-0x08]
        vmovsd   xmm0, qword ptr [rbp-0x18]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double,byref,byref):int:this
        call     [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double,byref,byref):int:this
        test     eax, eax
        jl       SHORT G_M37961_IG08
        vmovsd   xmm0, qword ptr [rbp-0x18]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.ThrowHelper:ThrowDuplicateKey[double](double)
        call     [rax]System.Collections.ThrowHelper:ThrowDuplicateKey[double](double)
 						;; size=60 bbWeight=1 PerfScore 18.25
 G_M37961_IG08:
        mov      rdi, gword ptr [rbp-0x08]
        mov      esi, dword ptr [rbp-0x0C]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RemoveEntryFromBucket(int):this
        call     [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RemoveEntryFromBucket(int):this
        mov      rax, bword ptr [rbp-0x28]
        mov      ecx, dword ptr [rbp-0x30]
        mov      dword ptr [rax+0x04], ecx
        mov      rax, bword ptr [rbp-0x28]
        vmovsd   xmm0, qword ptr [rbp-0x18]
        vmovsd   qword ptr [rax+0x08], xmm0
        mov      rax, bword ptr [rbp-0x28]
        mov      rcx, qword ptr [rbp-0x20]
        mov      qword ptr [rax+0x10], rcx
        mov      rdi, gword ptr [rbp-0x08]
        mov      rsi, bword ptr [rbp-0x28]
        mov      edx, dword ptr [rbp-0x0C]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:PushEntryIntoBucket(byref,int):this
        call     [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:PushEntryIntoBucket(byref,int):this
        mov      rax, gword ptr [rbp-0x08]
        inc      dword ptr [rax+0x3C]
        mov      rax, gword ptr [rbp-0x08]
        mov      rdx, gword ptr [rax+0x18]
        mov      rdi, gword ptr [rbp-0x08]
        mov      esi, dword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RehashIfNecessary(uint,System.Collections.Generic.OrderedDictionary`2+Entry[double,System.Nullable`1[int]][]):this
        call     [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RehashIfNecessary(uint,System.Collections.Generic.OrderedDictionary`2+Entry[double,System.Nullable`1[int]][]):this
        nop      
 						;; size=113 bbWeight=1 PerfScore 36.00
 G_M37961_IG09:
        add      rsp, 80
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 G_M37961_IG10:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 483, prolog size 26, PerfScore 152.08, instruction count 120, allocated bytes for code 483 (MethodHash=ed356bb6) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this (Tier0)
+; Total bytes of code 424, prolog size 26, PerfScore 139.33, instruction count 110, allocated bytes for code 424 (MethodHash=ed356bb6) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this (Tier0)
-59 (-46.46 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this
 ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 arg2         [V02    ] (  1,  1   )  struct ( 8) [rbp-0x18]  do-not-enreg[S] <System.Nullable`1[int]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "Reusable Box Helper"
 ;
 ; Lcl frame size = 32
 
 G_M42298_IG01:
        push     rbp
        sub      rsp, 32
        lea      rbp, [rsp+0x20]
        xor      eax, eax
        mov      qword ptr [rbp-0x20], rax
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
        mov      qword ptr [rbp-0x18], rsi
 						;; size=29 bbWeight=1 PerfScore 6.00
 G_M42298_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x20], rax
-       mov      rax, gword ptr [rbp-0x20]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x20]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rdi, gword ptr [rbp-0x08]
        mov      rdx, qword ptr [rbp-0x18]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        mov      esi, -1
        xor      ecx, ecx
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
        call     [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this
        nop      
-						;; size=92 bbWeight=1 PerfScore 21.75
+						;; size=33 bbWeight=1 PerfScore 9.00
 G_M42298_IG03:
        add      rsp, 32
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 127, prolog size 16, PerfScore 29.50, instruction count 29, allocated bytes for code 127 (MethodHash=72125ac5) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 16, PerfScore 16.75, instruction count 19, allocated bytes for code 68 (MethodHash=72125ac5) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this (Tier0)
-59 (-31.05 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
 ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 arg2         [V02    ] (  1,  1   )   byref  ->  [rbp-0x18]  do-not-enreg[]
 ;  V03 loc0         [V03    ] (  1,  1   )     int  ->  [rbp-0x1C]  do-not-enreg[]
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "Reusable Box Helper"
 ;
 ; Lcl frame size = 48
 
 G_M4178_IG01:
        push     rbp
        sub      rsp, 48
        lea      rbp, [rsp+0x30]
        xor      eax, eax
        mov      qword ptr [rbp-0x28], rax
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
        mov      bword ptr [rbp-0x18], rsi
 						;; size=29 bbWeight=1 PerfScore 6.00
 G_M4178_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x28], rax
-       mov      rax, gword ptr [rbp-0x28]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x28]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rdi, gword ptr [rbp-0x08]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this
        call     [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this
        mov      dword ptr [rbp-0x1C], eax
        cmp      dword ptr [rbp-0x1C], 0
        jl       SHORT G_M4178_IG04
        mov      rax, gword ptr [rbp-0x08]
        mov      rax, gword ptr [rax+0x18]
        mov      ecx, dword ptr [rbp-0x1C]
        cmp      ecx, dword ptr [rax+0x08]
        jae      SHORT G_M4178_IG06
        mov      edx, ecx
        imul     rdx, rdx, 24
        lea      rax, bword ptr [rax+rdx+0x10]
        mov      rcx, bword ptr [rbp-0x18]
        mov      rdx, qword ptr [rax+0x10]
        mov      qword ptr [rcx], rdx
        mov      eax, 1
-						;; size=132 bbWeight=1 PerfScore 39.50
+						;; size=73 bbWeight=1 PerfScore 26.75
 G_M4178_IG03:
        add      rsp, 48
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 G_M4178_IG04:
        mov      rax, bword ptr [rbp-0x18]
        xor      ecx, ecx
        mov      qword ptr [rax], rcx
        xor      eax, eax
 						;; size=11 bbWeight=1 PerfScore 2.50
 G_M4178_IG05:
        add      rsp, 48
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 G_M4178_IG06:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 190, prolog size 16, PerfScore 51.50, instruction count 49, allocated bytes for code 190 (MethodHash=4854efad) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0)
+; Total bytes of code 131, prolog size 16, PerfScore 38.75, instruction count 39, allocated bytes for code 131 (MethodHash=4854efad) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0)
-59 (-34.30 % of base) - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this
 ; Assembly listing for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 arg2         [V02    ] (  1,  1   )  struct ( 8) [rbp-0x18]  do-not-enreg[S] <System.Nullable`1[int]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "Reusable Box Helper"
 ;  V05 tmp2         [V05    ] (  1,  1   )  struct (16) [rbp-0x30]  do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]>
 ;  V06 tmp3         [V06    ] (  1,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[] must-init class-hnd exact "impAppendStmt" <System.Collections.Generic.TreeSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]>
 ;
 ; Lcl frame size = 64
 
 G_M62164_IG01:
        push     rbp
        sub      rsp, 64
        lea      rbp, [rsp+0x40]
        xor      eax, eax
        mov      qword ptr [rbp-0x20], rax
        mov      qword ptr [rbp-0x38], rax
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
        mov      qword ptr [rbp-0x18], rsi
 						;; size=33 bbWeight=1 PerfScore 7.00
 G_M62164_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x20], rax
-       mov      rax, gword ptr [rbp-0x20]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x20]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        vxorps   xmm0, xmm0, xmm0
        vmovups  xmmword ptr [rbp-0x30], xmm0
        mov      rax, gword ptr [rbp-0x08]
        mov      rax, gword ptr [rax+0x18]
        mov      gword ptr [rbp-0x38], rax
        lea      rdi, [rbp-0x30]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        mov      rsi, qword ptr [rbp-0x18]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
        call     [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
        vmovsd   xmm0, qword ptr [rbp-0x30]
        mov      rsi, qword ptr [rbp-0x28]
        mov      rdi, gword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Add(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Add(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this
        nop      
-						;; size=133 bbWeight=1 PerfScore 37.33
+						;; size=74 bbWeight=1 PerfScore 24.58
 G_M62164_IG03:
        add      rsp, 64
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 172, prolog size 20, PerfScore 46.08, instruction count 39, allocated bytes for code 172 (MethodHash=82300d2b) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
+; Total bytes of code 113, prolog size 20, PerfScore 33.33, instruction count 29, allocated bytes for code 113 (MethodHash=82300d2b) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
-59 (-33.91 % of base) - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this
 ; Assembly listing for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 loc0         [V02    ] (  1,  1   )  struct ( 8) [rbp-0x18]  do-not-enreg[S] ld-addr-op <System.Nullable`1[int]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "Reusable Box Helper"
 ;  V05 tmp2         [V05    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init class-hnd exact "impAppendStmt" <System.Collections.Generic.TreeSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]>
 ;  V06 tmp3         [V06    ] (  1,  1   )  struct (16) [rbp-0x38]  do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]>
 ;
 ; Lcl frame size = 64
 
 G_M13622_IG01:
        push     rbp
        sub      rsp, 64
        lea      rbp, [rsp+0x40]
        xor      eax, eax
        mov      qword ptr [rbp-0x20], rax
        mov      qword ptr [rbp-0x28], rax
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
 						;; size=29 bbWeight=1 PerfScore 6.00
 G_M13622_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x20], rax
-       mov      rax, gword ptr [rbp-0x20]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x20]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rax, gword ptr [rbp-0x08]
        mov      rax, gword ptr [rax+0x18]
        mov      gword ptr [rbp-0x28], rax
        xor      eax, eax
        mov      qword ptr [rbp-0x18], rax
        vxorps   xmm0, xmm0, xmm0
        vmovups  xmmword ptr [rbp-0x38], xmm0
        lea      rdi, [rbp-0x38]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        mov      rsi, qword ptr [rbp-0x18]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
        call     [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
        vmovsd   xmm0, qword ptr [rbp-0x38]
        mov      rsi, qword ptr [rbp-0x30]
        mov      rdi, gword ptr [rbp-0x28]
        mov      rax, gword ptr [rbp-0x28]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x50]
        call     [rax+0x18]System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Contains(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this
        nop      
-						;; size=139 bbWeight=1 PerfScore 40.33
+						;; size=80 bbWeight=1 PerfScore 27.58
 G_M13622_IG03:
        add      rsp, 64
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 174, prolog size 20, PerfScore 48.08, instruction count 41, allocated bytes for code 174 (MethodHash=c2bacac9) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this (Tier0)
+; Total bytes of code 115, prolog size 20, PerfScore 35.33, instruction count 31, allocated bytes for code 115 (MethodHash=c2bacac9) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this (Tier0)
-59 (-33.91 % of base) - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this
 ; Assembly listing for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 loc0         [V02    ] (  1,  1   )  struct ( 8) [rbp-0x18]  do-not-enreg[S] ld-addr-op <System.Nullable`1[int]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "Reusable Box Helper"
 ;  V05 tmp2         [V05    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init class-hnd exact "impAppendStmt" <System.Collections.Generic.TreeSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]>
 ;  V06 tmp3         [V06    ] (  1,  1   )  struct (16) [rbp-0x38]  do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]>
 ;
 ; Lcl frame size = 64
 
 G_M55812_IG01:
        push     rbp
        sub      rsp, 64
        lea      rbp, [rsp+0x40]
        xor      eax, eax
        mov      qword ptr [rbp-0x20], rax
        mov      qword ptr [rbp-0x28], rax
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
 						;; size=29 bbWeight=1 PerfScore 6.00
 G_M55812_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x20], rax
-       mov      rax, gword ptr [rbp-0x20]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x20]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rax, gword ptr [rbp-0x08]
        mov      rax, gword ptr [rax+0x18]
        mov      gword ptr [rbp-0x28], rax
        xor      eax, eax
        mov      qword ptr [rbp-0x18], rax
        vxorps   xmm0, xmm0, xmm0
        vmovups  xmmword ptr [rbp-0x38], xmm0
        lea      rdi, [rbp-0x38]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        mov      rsi, qword ptr [rbp-0x18]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
        call     [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
        vmovsd   xmm0, qword ptr [rbp-0x38]
        mov      rsi, qword ptr [rbp-0x30]
        mov      rdi, gword ptr [rbp-0x28]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Remove(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Remove(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this
        nop      
-						;; size=139 bbWeight=1 PerfScore 38.58
+						;; size=80 bbWeight=1 PerfScore 25.83
 G_M55812_IG03:
        add      rsp, 64
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 174, prolog size 20, PerfScore 46.33, instruction count 40, allocated bytes for code 174 (MethodHash=9f4c25fb) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Tier0)
+; Total bytes of code 115, prolog size 20, PerfScore 33.58, instruction count 30, allocated bytes for code 115 (MethodHash=9f4c25fb) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Tier0)
-59 (-21.15 % of base) - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
 ; Assembly listing for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 arg2         [V02    ] (  1,  1   )   byref  ->  [rbp-0x18]  do-not-enreg[]
 ;  V03 loc0         [V03    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init class-hnd exact <System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]>
 ;  V04 loc1         [V04    ] (  1,  1   )  struct ( 8) [rbp-0x28]  do-not-enreg[S] ld-addr-op <System.Nullable`1[int]>
 ;  V05 loc2         [V05    ] (  1,  1   )  struct (16) [rbp-0x38]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07    ] (  1,  1   )     ref  ->  [rbp-0x40]  do-not-enreg[] must-init "Reusable Box Helper"
 ;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[] must-init class-hnd exact "impAppendStmt" <System.Collections.Generic.TreeSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]>
 ;  V09 tmp3         [V09    ] (  1,  1   )  struct (16) [rbp-0x58]  do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]>
 ;  V10 tmp4         [V10    ] (  1,  1   )  struct (16) [rbp-0x68]  do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]>
 ;
 ; Lcl frame size = 112
 
 G_M26086_IG01:
        push     rbp
        sub      rsp, 112
        lea      rbp, [rsp+0x70]
        xor      eax, eax
        mov      qword ptr [rbp-0x48], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x40], ymm8
        mov      qword ptr [rbp-0x20], rax
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
        mov      bword ptr [rbp-0x18], rsi
 						;; size=43 bbWeight=1 PerfScore 9.33
 G_M26086_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x40], rax
-       mov      rax, gword ptr [rbp-0x40]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x40]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rax, gword ptr [rbp-0x08]
        mov      rax, gword ptr [rax+0x18]
        mov      gword ptr [rbp-0x48], rax
        xor      eax, eax
        mov      qword ptr [rbp-0x28], rax
        vxorps   xmm0, xmm0, xmm0
        vmovups  xmmword ptr [rbp-0x58], xmm0
        lea      rdi, [rbp-0x58]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        mov      rsi, qword ptr [rbp-0x28]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
        call     [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this
        vmovsd   xmm0, qword ptr [rbp-0x58]
        mov      rsi, qword ptr [rbp-0x50]
        mov      rdi, gword ptr [rbp-0x48]
        mov      rax, gword ptr [rbp-0x48]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x58]
        call     [rax]System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:FindNode(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:this
        mov      gword ptr [rbp-0x20], rax
        cmp      gword ptr [rbp-0x20], 0
        jne      SHORT G_M26086_IG04
        mov      rax, bword ptr [rbp-0x18]
        xor      ecx, ecx
        mov      qword ptr [rax], rcx
        xor      eax, eax
-						;; size=159 bbWeight=1 PerfScore 46.58
+						;; size=100 bbWeight=1 PerfScore 33.83
 G_M26086_IG03:
        add      rsp, 112
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 G_M26086_IG04:
        mov      rdi, gword ptr [rbp-0x20]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:get_Item():System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:get_Item():System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:this
        vmovsd   qword ptr [rbp-0x68], xmm0
        mov      qword ptr [rbp-0x60], rax
        vmovups  xmm0, xmmword ptr [rbp-0x68]
        vmovups  xmmword ptr [rbp-0x38], xmm0
        lea      rdi, [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:get_Value():System.Nullable`1[int]:this
        call     [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:get_Value():System.Nullable`1[int]:this
        mov      rcx, bword ptr [rbp-0x18]
        mov      qword ptr [rcx], rax
        mov      eax, 1
 						;; size=65 bbWeight=1 PerfScore 19.25
 G_M26086_IG05:
        add      rsp, 112
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 279, prolog size 30, PerfScore 78.67, instruction count 67, allocated bytes for code 279 (MethodHash=fbd89a19) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0)
+; Total bytes of code 220, prolog size 30, PerfScore 65.92, instruction count 57, allocated bytes for code 220 (MethodHash=fbd89a19) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0)
-59 (-17.25 % of base) - System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this
 ; Assembly listing for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 arg2         [V02    ] (  1,  1   )  struct ( 8) [rbp-0x18]  do-not-enreg[S] <System.Nullable`1[int]>
 ;  V03 loc0         [V03    ] (  1,  1   )     int  ->  [rbp-0x1C]  do-not-enreg[]
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "Reusable Box Helper"
 ;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init class-hnd exact "impImportAndPushBox" <System.String>
 ;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[] must-init class-hnd exact "NewObj constructor temp" <System.ArgumentException>
 ;  V08 tmp4         [V08    ] (  1,  1   )     ref  ->  [rbp-0x40]  do-not-enreg[] must-init "argument with side effect"
 ;  V09 tmp5         [V09    ] (  1,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[] must-init "argument with side effect"
 ;
 ; Lcl frame size = 80
 
 G_M22574_IG01:
        push     rbp
        sub      rsp, 80
        lea      rbp, [rsp+0x50]
        xor      eax, eax
        mov      qword ptr [rbp-0x48], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x40], ymm8
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
        mov      qword ptr [rbp-0x18], rsi
 						;; size=39 bbWeight=1 PerfScore 8.33
 G_M22574_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x28], rax
-       mov      rax, gword ptr [rbp-0x28]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x28]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rax, gword ptr [rbp-0x08]
        mov      rdi, gword ptr [rax+0x08]
        mov      rax, gword ptr [rbp-0x08]
        mov      rcx, gword ptr [rax+0x18]
        mov      rax, gword ptr [rbp-0x08]
        mov      edx, dword ptr [rax+0x30]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        xor      esi, esi
        mov      rax, 0xD1FFAB1E      ; code for System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int
        call     [rax]System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int
        mov      dword ptr [rbp-0x1C], eax
        cmp      dword ptr [rbp-0x1C], 0
        jl       G_M22574_IG04
-						;; size=114 bbWeight=1 PerfScore 32.25
+						;; size=55 bbWeight=1 PerfScore 19.50
 G_M22574_IG03:
        mov      rdi, 0xD1FFAB1E      ; System.Double
        call     CORINFO_HELP_NEWSFAST
        mov      gword ptr [rbp-0x28], rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_Argument_AddingDuplicate():System.String
        call     [rax]System.SR:get_Argument_AddingDuplicate():System.String
        mov      gword ptr [rbp-0x30], rax
        mov      rax, gword ptr [rbp-0x28]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        vmovsd   qword ptr [rax+0x08], xmm0
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      gword ptr [rbp-0x38], rax
        mov      rsi, gword ptr [rbp-0x28]
        mov      rdi, gword ptr [rbp-0x30]
        mov      rax, 0xD1FFAB1E      ; code for System.SR:Format(System.String,System.Object):System.String
        call     [rax]System.SR:Format(System.String,System.Object):System.String
        mov      gword ptr [rbp-0x40], rax
        mov      edi, 0x869
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      gword ptr [rbp-0x48], rax
        mov      rsi, gword ptr [rbp-0x40]
        mov      rdx, gword ptr [rbp-0x48]
        mov      rdi, gword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, gword ptr [rbp-0x38]
        call     CORINFO_HELP_THROW
        int3     
 						;; size=150 bbWeight=0 PerfScore 0.00
 G_M22574_IG04:
        mov      eax, dword ptr [rbp-0x1C]
        mov      esi, eax
        not      esi
        mov      rdi, gword ptr [rbp-0x08]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        mov      rdx, qword ptr [rbp-0x18]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this
        call     [rax]System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this
        nop      
 						;; size=33 bbWeight=1 PerfScore 10.00
 G_M22574_IG05:
        add      rsp, 80
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 342, prolog size 26, PerfScore 52.33, instruction count 74, allocated bytes for code 342 (MethodHash=8f1ea7d1) for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
+; Total bytes of code 283, prolog size 26, PerfScore 39.58, instruction count 64, allocated bytes for code 283 (MethodHash=8f1ea7d1) for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0)
-59 (-38.06 % of base) - System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:IndexOfKey(double):int:this
 ; Assembly listing for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:IndexOfKey(double):int:this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 loc0         [V02    ] (  1,  1   )     int  ->  [rbp-0x14]  do-not-enreg[]
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "Reusable Box Helper"
 ;
 ; Lcl frame size = 32
 
 G_M20116_IG01:
        push     rbp
        sub      rsp, 32
        lea      rbp, [rsp+0x20]
        xor      eax, eax
        mov      qword ptr [rbp-0x20], rax
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
 						;; size=25 bbWeight=1 PerfScore 5.00
 G_M20116_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x20], rax
-       mov      rax, gword ptr [rbp-0x20]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x20]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rax, gword ptr [rbp-0x08]
        mov      rdi, gword ptr [rax+0x08]
        mov      rax, gword ptr [rbp-0x08]
        mov      rcx, gword ptr [rax+0x18]
        mov      rax, gword ptr [rbp-0x08]
        mov      edx, dword ptr [rax+0x30]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        xor      esi, esi
        mov      rax, 0xD1FFAB1E      ; code for System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int
        call     [rax]System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int
        mov      dword ptr [rbp-0x14], eax
        cmp      dword ptr [rbp-0x14], 0
        jge      SHORT G_M20116_IG04
        mov      eax, -1
-						;; size=115 bbWeight=1 PerfScore 32.50
+						;; size=56 bbWeight=1 PerfScore 19.75
 G_M20116_IG03:
        add      rsp, 32
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 G_M20116_IG04:
        mov      eax, dword ptr [rbp-0x14]
 						;; size=3 bbWeight=1 PerfScore 1.00
 G_M20116_IG05:
        add      rsp, 32
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 155, prolog size 16, PerfScore 42.00, instruction count 38, allocated bytes for code 155 (MethodHash=9becb16b) for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:IndexOfKey(double):int:this (Tier0)
+; Total bytes of code 96, prolog size 16, PerfScore 29.25, instruction count 28, allocated bytes for code 96 (MethodHash=9becb16b) for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:IndexOfKey(double):int:this (Tier0)
-59 (-30.10 % of base) - System.Collections.Generic.SortedList`2+KeyList[double,System.Nullable`1[int]]:IndexOf(double):int:this
 ; Assembly listing for method System.Collections.Generic.SortedList`2+KeyList[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Collections.Generic.SortedList`2+KeyList[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[]
 ;  V02 loc0         [V02    ] (  1,  1   )     int  ->  [rbp-0x14]  do-not-enreg[]
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "Reusable Box Helper"
 ;  V05 tmp2         [V05    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init class-hnd "non-inline candidate call" <double[]>
 ;  V06 tmp3         [V06    ] (  1,  1   )     int  ->  [rbp-0x2C]  do-not-enreg[] "argument with side effect"
 ;
 ; Lcl frame size = 48
 
 G_M17245_IG01:
        push     rbp
        sub      rsp, 48
        lea      rbp, [rsp+0x30]
        xor      eax, eax
        mov      qword ptr [rbp-0x20], rax
        mov      qword ptr [rbp-0x28], rax
        mov      gword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
 						;; size=29 bbWeight=1 PerfScore 6.00
 G_M17245_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x20], rax
-       mov      rax, gword ptr [rbp-0x20]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x20]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rax, gword ptr [rbp-0x08]
        mov      rax, gword ptr [rax+0x08]
        mov      rax, gword ptr [rax+0x08]
        mov      gword ptr [rbp-0x28], rax
        mov      rax, gword ptr [rbp-0x08]
        mov      rdi, gword ptr [rax+0x08]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:get_Count():int:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:get_Count():int:this
        mov      dword ptr [rbp-0x2C], eax
        mov      edx, dword ptr [rbp-0x2C]
        mov      rax, gword ptr [rbp-0x08]
        mov      rax, gword ptr [rax+0x08]
        mov      rcx, gword ptr [rax+0x18]
        mov      rdi, gword ptr [rbp-0x28]
        vmovsd   xmm0, qword ptr [rbp-0x10]
        xor      esi, esi
        mov      rax, 0xD1FFAB1E      ; code for System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int
        call     [rax]System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int
        mov      dword ptr [rbp-0x14], eax
        cmp      dword ptr [rbp-0x14], 0
        jl       SHORT G_M17245_IG04
        mov      eax, dword ptr [rbp-0x14]
-						;; size=150 bbWeight=1 PerfScore 47.50
+						;; size=91 bbWeight=1 PerfScore 34.75
 G_M17245_IG03:
        add      rsp, 48
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 G_M17245_IG04:
        mov      eax, -1
 						;; size=5 bbWeight=1 PerfScore 0.25
 G_M17245_IG05:
        add      rsp, 48
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 196, prolog size 20, PerfScore 57.25, instruction count 48, allocated bytes for code 196 (MethodHash=94dcbca2) for method System.Collections.Generic.SortedList`2+KeyList[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0)
+; Total bytes of code 137, prolog size 20, PerfScore 44.50, instruction count 38, allocated bytes for code 137 (MethodHash=94dcbca2) for method System.Collections.Generic.SortedList`2+KeyList[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0)
-59 (-9.10 % of base) - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Contains(double):ubyte:this
 ; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Contains(double):ubyte:this (Instrumented Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Instrumented Tier0 code
 ; rbp based frame
 ; fully interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] this class-hnd <System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x38]  do-not-enreg[]
 ;  V02 loc0         [V02    ] (  1,  1   )  struct (24) [rbp-0x50]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]>
 ;  V03 loc1         [V03    ] (  1,  1   )  struct ( 8) [rbp-0x58]  do-not-enreg[SR] multireg-ret <System.Nullable`1[int]>
 ;  V04 loc2         [V04    ] (  1,  1   )   ubyte  ->  [rbp-0x5C]  do-not-enreg[]
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )     ref  ->  [rbp-0x68]  do-not-enreg[] must-init "Reusable Box Helper"
 ;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [rbp-0x70]  do-not-enreg[] must-init class-hnd "non-inline candidate call" <System.Collections.Generic.IEqualityComparer`1[double]>
 ;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [rbp-0x78]  do-not-enreg[] must-init "handle histogram profile tmp"
 ;  V09 tmp4         [V09    ] (  1,  1   )     ref  ->  [rbp-0x80]  do-not-enreg[] must-init "handle histogram profile tmp"
 ;  V10 tmp5         [V10    ] (  1,  1   )     int  ->  [rbp-0x88]  do-not-enreg[X] addr-exposed "patchpoint counter"
 ;  V11 tmp6         [V11    ] (  1,  1   )     ref  ->  [rbp-0x90]  do-not-enreg[] must-init "argument with side effect"
 ;  V12 tmp7         [V12    ] (  1,  1   )     ref  ->  [rbp-0x98]  do-not-enreg[] must-init "argument with side effect"
 ;  V13 tmp8         [V13    ] (  1,  1   )     ref  ->  [rbp-0xA0]  do-not-enreg[] must-init "argument with side effect"
 ;  V14 tmp9         [V14    ] (  1,  1   )  double  ->  [rbp-0xA8]  do-not-enreg[] "argument with side effect"
 ;  V15 PSPSym       [V15    ] (  1,  1   )    long  ->  [rbp-0xB0]  do-not-enreg[V] "PSPSym"
 ;
 ; Lcl frame size = 176
 
 G_M48041_IG01:
        push     rbp
        sub      rsp, 176
        lea      rbp, [rsp+0xB0]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
        vmovdqa  xmmword ptr [rbp-0x60], xmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        xor      eax, eax
        mov      qword ptr [rbp-0x40], rax
        mov      qword ptr [rbp-0xB0], rsp
        mov      gword ptr [rbp-0x30], rdi
        vmovsd   qword ptr [rbp-0x38], xmm0
 						;; size=63 bbWeight=1 PerfScore 12.33
 G_M48041_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x68], rax
-       mov      rax, gword ptr [rbp-0x68]
-       vmovsd   xmm0, qword ptr [rbp-0x38]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x68]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      dword ptr [rbp-0x88], 0x3E8
        mov      rax, gword ptr [rbp-0x30]
        cmp      gword ptr [rax+0x18], 0
        je       SHORT G_M48041_IG04
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        mov      rax, gword ptr [rbp-0x30]
        mov      rdi, gword ptr [rax+0x18]
        vmovsd   xmm0, qword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this
        nop      
-						;; size=123 bbWeight=1 PerfScore 32.50
+						;; size=64 bbWeight=1 PerfScore 19.75
 G_M48041_IG03:
        add      rsp, 176
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 1.75
 G_M48041_IG04:
        mov      rdi, gword ptr [rbp-0x30]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
        call     [rax]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
        mov      gword ptr [rbp-0x90], rax
        mov      rdi, gword ptr [rbp-0x90]
        lea      rsi, [rbp-0x50]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.Nullable`1[int]]:GetEnumerator():System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.List`1[System.Nullable`1[int]]:GetEnumerator():System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:this
        nop      
 						;; size=49 bbWeight=1 PerfScore 13.25
 G_M48041_IG05:
        jmp      G_M48041_IG08
 						;; size=5 bbWeight=1 PerfScore 2.00
 G_M48041_IG06:
        lea      rdi, [rbp-0x50]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:get_Current():System.Nullable`1[int]:this
        call     [rax]System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:get_Current():System.Nullable`1[int]:this
        mov      qword ptr [rbp-0x58], rax
        mov      rax, gword ptr [rbp-0x30]
        mov      rax, gword ptr [rax+0x10]
        mov      gword ptr [rbp-0x70], rax
        mov      rax, gword ptr [rbp-0x70]
        mov      gword ptr [rbp-0x78], rax
        mov      rdi, gword ptr [rbp-0x78]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        mov      rax, gword ptr [rbp-0x78]
        mov      gword ptr [rbp-0xA0], rax
        mov      rax, gword ptr [rbp-0x30]
        mov      gword ptr [rbp-0x80], rax
        mov      rdi, gword ptr [rbp-0x80]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        mov      rax, gword ptr [rbp-0x80]
        mov      gword ptr [rbp-0x98], rax
        mov      rdi, gword ptr [rbp-0x98]
        mov      rsi, qword ptr [rbp-0x58]
        mov      rax, gword ptr [rbp-0x98]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x10]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:GetKeyForItem(System.Nullable`1[int]):double:this
        vmovsd   qword ptr [rbp-0xA8], xmm0
        mov      rdi, gword ptr [rbp-0xA0]
        vmovsd   xmm0, qword ptr [rbp-0xA8]
        vmovsd   xmm1, qword ptr [rbp-0x38]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
        call     [r11]System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
        test     eax, eax
        je       SHORT G_M48041_IG07
        mov      dword ptr [rbp-0x5C], 1
        jmp      SHORT G_M48041_IG13
 						;; size=190 bbWeight=1 PerfScore 46.75
 G_M48041_IG07:
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
 						;; size=15 bbWeight=0.50 PerfScore 0.62
 G_M48041_IG08:
        mov      eax, dword ptr [rbp-0x88]
        dec      eax
        mov      dword ptr [rbp-0x88], eax
        cmp      dword ptr [rbp-0x88], 0
        jg       SHORT G_M48041_IG10
 						;; size=23 bbWeight=1 PerfScore 5.25
 G_M48041_IG09:
        lea      rdi, [rbp-0x88]
        mov      esi, 84
        call     CORINFO_HELP_PATCHPOINT
 						;; size=17 bbWeight=0.01 PerfScore 0.02
 G_M48041_IG10:
        lea      rdi, [rbp-0x50]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:MoveNext():ubyte:this
        call     [rax]System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:MoveNext():ubyte:this
        test     eax, eax
        jne      G_M48041_IG06
 						;; size=24 bbWeight=1 PerfScore 5.00
 G_M48041_IG11:
        mov      rdi, rsp
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M48041_IG12:
        call     G_M48041_IG19
        jmp      SHORT G_M48041_IG15
 						;; size=7 bbWeight=1 PerfScore 3.00
 G_M48041_IG13:
        mov      rdi, rsp
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M48041_IG14:
        call     G_M48041_IG19
        jmp      SHORT G_M48041_IG17
 						;; size=7 bbWeight=1 PerfScore 3.00
 G_M48041_IG15:
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        xor      eax, eax
 						;; size=17 bbWeight=1 PerfScore 1.50
 G_M48041_IG16:
        add      rsp, 176
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 1.75
 G_M48041_IG17:
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        mov      eax, dword ptr [rbp-0x5C]
 						;; size=18 bbWeight=1 PerfScore 2.25
 G_M48041_IG18:
        add      rsp, 176
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 1.75
 G_M48041_IG19:
        push     rbp
        sub      rsp, 16
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
        lea      rbp, [rbp+0xB0]
 						;; size=19 bbWeight=1 PerfScore 4.75
 G_M48041_IG20:
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        lea      rdi, [rbp-0x50]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:Dispose():this
        call     [rax]System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:Dispose():this
        nop      
 						;; size=32 bbWeight=1 PerfScore 5.25
 G_M48041_IG21:
        add      rsp, 16
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 648, prolog size 63, PerfScore 144.98, instruction count 133, allocated bytes for code 648 (MethodHash=086e4456) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Contains(double):ubyte:this (Instrumented Tier0)
+; Total bytes of code 589, prolog size 63, PerfScore 132.23, instruction count 123, allocated bytes for code 589 (MethodHash=086e4456) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Contains(double):ubyte:this (Instrumented Tier0)
-59 (-8.73 % of base) - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this
 ; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Instrumented Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Instrumented Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] this class-hnd <System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x38]  do-not-enreg[]
 ;  V02 loc0         [V02    ] (  1,  1   )  struct ( 8) [rbp-0x40]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Nullable`1[int]>
 ;  V03 loc1         [V03    ] (  1,  1   )     int  ->  [rbp-0x44]  do-not-enreg[]
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )     ref  ->  [rbp-0x50]  do-not-enreg[] must-init "Reusable Box Helper"
 ;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [rbp-0x58]  do-not-enreg[] must-init class-hnd "non-inline candidate call" <System.Collections.Generic.IEqualityComparer`1[double]>
 ;  V07 tmp3         [V07    ] (  1,  1   )  struct ( 8) [rbp-0x60]  do-not-enreg[SR] multireg-ret "spilled call-like call argument" <System.Nullable`1[int]>
 ;  V08 tmp4         [V08    ] (  1,  1   )     ref  ->  [rbp-0x68]  do-not-enreg[] must-init "handle histogram profile tmp"
 ;  V09 tmp5         [V09    ] (  1,  1   )     ref  ->  [rbp-0x70]  do-not-enreg[] must-init "handle histogram profile tmp"
 ;  V10 tmp6         [V10    ] (  1,  1   )     ref  ->  [rbp-0x78]  do-not-enreg[] must-init "handle histogram profile tmp"
 ;  V11 tmp7         [V11    ] (  1,  1   )     int  ->  [rbp-0x80]  do-not-enreg[X] addr-exposed "patchpoint counter"
 ;  V12 tmp8         [V12    ] (  1,  1   )     ref  ->  [rbp-0x88]  do-not-enreg[] must-init "argument with side effect"
 ;  V13 tmp9         [V13    ] (  1,  1   )     ref  ->  [rbp-0x90]  do-not-enreg[] must-init "argument with side effect"
 ;  V14 tmp10        [V14    ] (  1,  1   )     ref  ->  [rbp-0x98]  do-not-enreg[] must-init "argument with side effect"
 ;  V15 tmp11        [V15    ] (  1,  1   )  double  ->  [rbp-0xA0]  do-not-enreg[] "argument with side effect"
 ;  V16 tmp12        [V16    ] (  1,  1   )     ref  ->  [rbp-0xA8]  do-not-enreg[] must-init "argument with side effect"
 ;
 ; Lcl frame size = 176
 
 G_M27692_IG01:
        push     rbp
        sub      rsp, 176
        lea      rbp, [rsp+0xB0]
        xor      eax, eax
        mov      qword ptr [rbp-0xA8], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
        vmovdqa  xmmword ptr [rbp-0x60], xmm8
        mov      qword ptr [rbp-0x50], rax
        mov      gword ptr [rbp-0x30], rdi
        vmovsd   qword ptr [rbp-0x38], xmm0
 						;; size=58 bbWeight=1 PerfScore 10.33
 G_M27692_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x50], rax
-       mov      rax, gword ptr [rbp-0x50]
-       vmovsd   xmm0, qword ptr [rbp-0x38]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x50]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      dword ptr [rbp-0x80], 0x3E8
        mov      rax, gword ptr [rbp-0x30]
        cmp      gword ptr [rax+0x18], 0
        je       SHORT G_M27692_IG06
        mov      rax, gword ptr [rbp-0x30]
        mov      rdi, gword ptr [rax+0x18]
        lea      rsi, [rbp-0x40]
        vmovsd   xmm0, qword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
        test     eax, eax
        je       SHORT G_M27692_IG04
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        mov      rdi, gword ptr [rbp-0x30]
        mov      rsi, qword ptr [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.ObjectModel.Collection`1[System.Nullable`1[int]]:Remove(System.Nullable`1[int]):ubyte:this
        call     [rax]System.Collections.ObjectModel.Collection`1[System.Nullable`1[int]]:Remove(System.Nullable`1[int]):ubyte:this
        nop      
-						;; size=148 bbWeight=1 PerfScore 39.50
+						;; size=89 bbWeight=1 PerfScore 26.75
 G_M27692_IG03:
        add      rsp, 176
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 1.75
 G_M27692_IG04:
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        xor      eax, eax
 						;; size=17 bbWeight=1 PerfScore 1.50
 G_M27692_IG05:
        add      rsp, 176
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 1.75
 G_M27692_IG06:
        xor      eax, eax
        mov      dword ptr [rbp-0x44], eax
        jmp      G_M27692_IG11
 						;; size=10 bbWeight=1 PerfScore 3.25
 G_M27692_IG07:
        mov      rax, gword ptr [rbp-0x30]
        mov      rax, gword ptr [rax+0x10]
        mov      gword ptr [rbp-0x58], rax
        mov      rdi, gword ptr [rbp-0x30]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
        call     [rax]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
        mov      gword ptr [rbp-0x88], rax
        mov      rdi, gword ptr [rbp-0x88]
        mov      esi, dword ptr [rbp-0x44]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Item(int):System.Nullable`1[int]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Item(int):System.Nullable`1[int]:this
        mov      qword ptr [rbp-0x60], rax
        mov      rax, gword ptr [rbp-0x58]
        mov      gword ptr [rbp-0x68], rax
        mov      rdi, gword ptr [rbp-0x68]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        mov      rax, gword ptr [rbp-0x68]
        mov      gword ptr [rbp-0x98], rax
        mov      rax, gword ptr [rbp-0x30]
        mov      gword ptr [rbp-0x70], rax
        mov      rdi, gword ptr [rbp-0x70]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        mov      rax, gword ptr [rbp-0x70]
        mov      gword ptr [rbp-0x90], rax
        mov      rdi, gword ptr [rbp-0x90]
        mov      rsi, qword ptr [rbp-0x60]
        mov      rax, gword ptr [rbp-0x90]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x10]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:GetKeyForItem(System.Nullable`1[int]):double:this
        vmovsd   qword ptr [rbp-0xA0], xmm0
        mov      rdi, gword ptr [rbp-0x98]
        vmovsd   xmm0, qword ptr [rbp-0xA0]
        vmovsd   xmm1, qword ptr [rbp-0x38]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
        call     [r11]System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
        test     eax, eax
        je       SHORT G_M27692_IG10
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        mov      rax, gword ptr [rbp-0x30]
        mov      gword ptr [rbp-0x78], rax
        mov      rdi, gword ptr [rbp-0x78]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        mov      rax, gword ptr [rbp-0x78]
        mov      gword ptr [rbp-0xA8], rax
        mov      rdi, gword ptr [rbp-0xA8]
        mov      esi, dword ptr [rbp-0x44]
        mov      rax, gword ptr [rbp-0xA8]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x50]
 						;; size=289 bbWeight=1 PerfScore 68.00
 G_M27692_IG08:
        call     [rax+0x10]System.Collections.ObjectModel.Collection`1[System.Nullable`1[int]]:RemoveItem(int):this
        mov      eax, 1
 						;; size=8 bbWeight=1 PerfScore 3.25
 G_M27692_IG09:
        add      rsp, 176
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 1.75
 G_M27692_IG10:
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        mov      eax, dword ptr [rbp-0x44]
        inc      eax
        mov      dword ptr [rbp-0x44], eax
 						;; size=23 bbWeight=1 PerfScore 3.50
 G_M27692_IG11:
        mov      eax, dword ptr [rbp-0x80]
        dec      eax
        mov      dword ptr [rbp-0x80], eax
        cmp      dword ptr [rbp-0x80], 0
        jg       SHORT G_M27692_IG13
 						;; size=14 bbWeight=1 PerfScore 5.25
 G_M27692_IG12:
        lea      rdi, [rbp-0x80]
        mov      esi, 99
        call     CORINFO_HELP_PATCHPOINT
 						;; size=14 bbWeight=0.01 PerfScore 0.02
 G_M27692_IG13:
        mov      rdi, gword ptr [rbp-0x30]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
        call     [rax]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Count():int:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.List`1[System.Nullable`1[int]]:get_Count():int:this
        cmp      eax, dword ptr [rbp-0x44]
        jg       G_M27692_IG07
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        xor      eax, eax
 						;; size=59 bbWeight=1 PerfScore 15.25
 G_M27692_IG14:
        add      rsp, 176
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 676, prolog size 49, PerfScore 156.85, instruction count 141, allocated bytes for code 676 (MethodHash=95f993d3) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Instrumented Tier0)
+; Total bytes of code 617, prolog size 49, PerfScore 144.10, instruction count 131, allocated bytes for code 617 (MethodHash=95f993d3) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Instrumented Tier0)
-59 (-8.75 % of base) - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
 ; Assembly listing for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Instrumented Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Instrumented Tier0 code
 ; rbp based frame
 ; fully interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] this class-hnd <System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]>
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x38]  do-not-enreg[]
 ;  V02 arg2         [V02    ] (  1,  1   )   byref  ->  [rbp-0x40]  do-not-enreg[]
 ;  V03 loc0         [V03    ] (  1,  1   )  struct (24) [rbp-0x58]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg ld-addr-op <System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]>
 ;  V04 loc1         [V04    ] (  1,  1   )  struct ( 8) [rbp-0x60]  do-not-enreg[SR] multireg-ret <System.Nullable`1[int]>
 ;  V05 loc2         [V05    ] (  1,  1   )  double  ->  [rbp-0x68]  do-not-enreg[]
 ;  V06 loc3         [V06    ] (  1,  1   )   ubyte  ->  [rbp-0x6C]  do-not-enreg[]
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08    ] (  1,  1   )     ref  ->  [rbp-0x78]  do-not-enreg[] must-init "Reusable Box Helper"
 ;  V09 tmp2         [V09    ] (  1,  1   )     ref  ->  [rbp-0x80]  do-not-enreg[] must-init "handle histogram profile tmp"
 ;  V10 tmp3         [V10    ] (  1,  1   )     ref  ->  [rbp-0x88]  do-not-enreg[] must-init "handle histogram profile tmp"
 ;  V11 tmp4         [V11    ] (  1,  1   )     int  ->  [rbp-0x90]  do-not-enreg[X] addr-exposed "patchpoint counter"
 ;  V12 tmp5         [V12    ] (  1,  1   )     ref  ->  [rbp-0x98]  do-not-enreg[] must-init "argument with side effect"
 ;  V13 tmp6         [V13    ] (  1,  1   )     ref  ->  [rbp-0xA0]  do-not-enreg[] must-init "argument with side effect"
 ;  V14 tmp7         [V14    ] (  1,  1   )     ref  ->  [rbp-0xA8]  do-not-enreg[] must-init "argument with side effect"
 ;  V15 PSPSym       [V15    ] (  1,  1   )    long  ->  [rbp-0xB0]  do-not-enreg[V] "PSPSym"
 ;
 ; Lcl frame size = 176
 
 G_M17358_IG01:
        push     rbp
        sub      rsp, 176
        lea      rbp, [rsp+0xB0]
        xor      eax, eax
        mov      qword ptr [rbp-0xA8], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
        vmovdqa  xmmword ptr [rbp-0x60], xmm8
        vmovdqa  xmmword ptr [rbp-0x50], xmm8
        mov      qword ptr [rbp-0xB0], rsp
        mov      gword ptr [rbp-0x30], rdi
        vmovsd   qword ptr [rbp-0x38], xmm0
        mov      bword ptr [rbp-0x40], rsi
 						;; size=70 bbWeight=1 PerfScore 13.33
 G_M17358_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x78], rax
-       mov      rax, gword ptr [rbp-0x78]
-       vmovsd   xmm0, qword ptr [rbp-0x38]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x78]
-       mov      rsi, 0xD1FFAB1E      ; 'key'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      dword ptr [rbp-0x90], 0x3E8
        mov      rax, gword ptr [rbp-0x30]
        cmp      gword ptr [rax+0x18], 0
        je       SHORT G_M17358_IG04
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        mov      rax, gword ptr [rbp-0x30]
        mov      rdi, gword ptr [rax+0x18]
        vmovsd   xmm0, qword ptr [rbp-0x38]
        mov      rsi, bword ptr [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this
        nop      
-						;; size=127 bbWeight=1 PerfScore 33.50
+						;; size=68 bbWeight=1 PerfScore 20.75
 G_M17358_IG03:
        add      rsp, 176
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 1.75
 G_M17358_IG04:
        mov      rdi, gword ptr [rbp-0x30]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
        call     [rax]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:get_Items():System.Collections.Generic.List`1[System.Nullable`1[int]]:this
        mov      gword ptr [rbp-0x98], rax
        mov      rdi, gword ptr [rbp-0x98]
        lea      rsi, [rbp-0x58]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.Nullable`1[int]]:GetEnumerator():System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Collections.Generic.List`1[System.Nullable`1[int]]:GetEnumerator():System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:this
        nop      
 						;; size=49 bbWeight=1 PerfScore 13.25
 G_M17358_IG05:
        jmp      G_M17358_IG08
 						;; size=5 bbWeight=1 PerfScore 2.00
 G_M17358_IG06:
        lea      rdi, [rbp-0x58]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:get_Current():System.Nullable`1[int]:this
        call     [rax]System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:get_Current():System.Nullable`1[int]:this
        mov      qword ptr [rbp-0x60], rax
        mov      rax, gword ptr [rbp-0x30]
        mov      gword ptr [rbp-0x80], rax
        mov      rdi, gword ptr [rbp-0x80]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        mov      rax, gword ptr [rbp-0x80]
        mov      gword ptr [rbp-0xA0], rax
        mov      rdi, gword ptr [rbp-0xA0]
        mov      rsi, qword ptr [rbp-0x60]
        mov      rax, gword ptr [rbp-0xA0]
        mov      rax, qword ptr [rax]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x10]System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:GetKeyForItem(System.Nullable`1[int]):double:this
        vmovsd   qword ptr [rbp-0x68], xmm0
        mov      rax, gword ptr [rbp-0x30]
        mov      rax, gword ptr [rax+0x10]
        mov      gword ptr [rbp-0x88], rax
        mov      rdi, gword ptr [rbp-0x88]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        mov      rax, gword ptr [rbp-0x88]
        mov      gword ptr [rbp-0xA8], rax
        mov      rdi, gword ptr [rbp-0xA8]
        vmovsd   xmm1, qword ptr [rbp-0x68]
        vmovsd   xmm0, qword ptr [rbp-0x38]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
        call     [r11]System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this
        test     eax, eax
        je       SHORT G_M17358_IG07
        mov      rax, bword ptr [rbp-0x40]
        mov      rcx, qword ptr [rbp-0x60]
        mov      qword ptr [rax], rcx
        mov      dword ptr [rbp-0x6C], 1
        jmp      SHORT G_M17358_IG13
 						;; size=196 bbWeight=1 PerfScore 47.75
 G_M17358_IG07:
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
 						;; size=15 bbWeight=0.50 PerfScore 0.62
 G_M17358_IG08:
        mov      eax, dword ptr [rbp-0x90]
        dec      eax
        mov      dword ptr [rbp-0x90], eax
        cmp      dword ptr [rbp-0x90], 0
        jg       SHORT G_M17358_IG10
 						;; size=23 bbWeight=1 PerfScore 5.25
 G_M17358_IG09:
        lea      rdi, [rbp-0x90]
        mov      esi, 102
        call     CORINFO_HELP_PATCHPOINT
 						;; size=17 bbWeight=0.01 PerfScore 0.02
 G_M17358_IG10:
        lea      rdi, [rbp-0x58]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:MoveNext():ubyte:this
        call     [rax]System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:MoveNext():ubyte:this
        test     eax, eax
        jne      G_M17358_IG06
 						;; size=24 bbWeight=1 PerfScore 5.00
 G_M17358_IG11:
        mov      rdi, rsp
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M17358_IG12:
        call     G_M17358_IG19
        jmp      SHORT G_M17358_IG15
 						;; size=7 bbWeight=1 PerfScore 3.00
 G_M17358_IG13:
        mov      rdi, rsp
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M17358_IG14:
        call     G_M17358_IG19
        jmp      SHORT G_M17358_IG17
 						;; size=7 bbWeight=1 PerfScore 3.00
 G_M17358_IG15:
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        mov      rax, bword ptr [rbp-0x40]
        xor      ecx, ecx
        mov      qword ptr [rax], rcx
        xor      eax, eax
 						;; size=26 bbWeight=1 PerfScore 3.75
 G_M17358_IG16:
        add      rsp, 176
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 1.75
 G_M17358_IG17:
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        mov      eax, dword ptr [rbp-0x6C]
 						;; size=18 bbWeight=1 PerfScore 2.25
 G_M17358_IG18:
        add      rsp, 176
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 1.75
 G_M17358_IG19:
        push     rbp
        sub      rsp, 16
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
        lea      rbp, [rbp+0xB0]
 						;; size=19 bbWeight=1 PerfScore 4.75
 G_M17358_IG20:
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
        lea      rdi, [rbp-0x58]
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:Dispose():this
        call     [rax]System.Collections.Generic.List`1+Enumerator[System.Nullable`1[int]]:Dispose():this
        nop      
 						;; size=32 bbWeight=1 PerfScore 5.25
 G_M17358_IG21:
        add      rsp, 16
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 674, prolog size 70, PerfScore 150.23, instruction count 139, allocated bytes for code 674 (MethodHash=e9a6bc31) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Instrumented Tier0)
+; Total bytes of code 615, prolog size 70, PerfScore 137.48, instruction count 129, allocated bytes for code 615 (MethodHash=e9a6bc31) for method System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Instrumented Tier0)
-59 (-55.14 % of base) - System.Numerics.TotalOrderIeee754Comparer`1[double]:GetHashCode(double):int:this
 ; Assembly listing for method System.Numerics.TotalOrderIeee754Comparer`1[double]:GetHashCode(double):int:this (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 this         [V00    ] (  1,  1   )   byref  ->  [rbp-0x08]  do-not-enreg[] this
 ;  V01 arg1         [V01    ] (  1,  1   )  double  ->  [rbp-0x10]  do-not-enreg[X] addr-exposed ld-addr-op
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "Reusable Box Helper"
 ;
 ; Lcl frame size = 32
 
 G_M16692_IG01:
        push     rbp
        sub      rsp, 32
        lea      rbp, [rsp+0x20]
        xor      eax, eax
        mov      qword ptr [rbp-0x18], rax
        mov      bword ptr [rbp-0x08], rdi
        vmovsd   qword ptr [rbp-0x10], xmm0
 						;; size=25 bbWeight=1 PerfScore 5.00
 G_M16692_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x18], rax
-       mov      rax, gword ptr [rbp-0x18]
-       vmovsd   xmm0, qword ptr [rbp-0x10]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x18]
-       mov      rsi, 0xD1FFAB1E      ; 'obj'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        lea      rdi, [rbp-0x10]
        mov      rax, 0xD1FFAB1E      ; code for System.Double:GetHashCode():int:this
        call     [rax]System.Double:GetHashCode():int:this
        nop      
-						;; size=76 bbWeight=1 PerfScore 16.75
+						;; size=17 bbWeight=1 PerfScore 4.00
 G_M16692_IG03:
        add      rsp, 32
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 107, prolog size 16, PerfScore 23.50, instruction count 24, allocated bytes for code 107 (MethodHash=01a1becb) for method System.Numerics.TotalOrderIeee754Comparer`1[double]:GetHashCode(double):int:this (Tier0)
+; Total bytes of code 48, prolog size 16, PerfScore 10.75, instruction count 14, allocated bytes for code 48 (MethodHash=01a1becb) for method System.Numerics.TotalOrderIeee754Comparer`1[double]:GetHashCode(double):int:this (Tier0)
-59 (-30.10 % of base) - System.Runtime.InteropServices.Marshal:SizeOf[double](double):int
 ; Assembly listing for method System.Runtime.InteropServices.Marshal:SizeOf[double](double):int (Tier0)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; Tier0 code
 ; rbp based frame
 ; partially interruptible
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00    ] (  1,  1   )  double  ->  [rbp-0x08]  do-not-enreg[] ld-addr-op
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02    ] (  1,  1   )     ref  ->  [rbp-0x10]  do-not-enreg[] must-init "Reusable Box Helper"
 ;  V03 tmp2         [V03    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "argument with side effect"
 ;  V04 tmp3         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "argument with side effect"
 ;
 ; Lcl frame size = 32
 
 G_M39432_IG01:
        push     rbp
        sub      rsp, 32
        lea      rbp, [rsp+0x20]
        vxorps   xmm8, xmm8, xmm8
        vmovdqa  xmmword ptr [rbp-0x20], xmm8
        xor      eax, eax
        mov      qword ptr [rbp-0x10], rax
        vmovsd   qword ptr [rbp-0x08], xmm0
 						;; size=31 bbWeight=1 PerfScore 6.33
 G_M39432_IG02:
-       mov      rdi, 0xD1FFAB1E      ; System.Double
-       call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x10], rax
-       mov      rax, gword ptr [rbp-0x10]
-       vmovsd   xmm0, qword ptr [rbp-0x08]
-       vmovsd   qword ptr [rax+0x08], xmm0
-       mov      rdi, gword ptr [rbp-0x10]
-       mov      rsi, 0xD1FFAB1E      ; 'structure'
-       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
-       call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rdi, 0xD1FFAB1E      ; System.Double
        call     CORINFO_HELP_NEWSFAST
        mov      gword ptr [rbp-0x10], rax
        mov      rax, gword ptr [rbp-0x10]
        vmovsd   xmm0, qword ptr [rbp-0x08]
        vmovsd   qword ptr [rax+0x08], xmm0
        mov      rdi, gword ptr [rbp-0x10]
        cmp      dword ptr [rdi], edi
        call     System.Object:GetType():System.Type:this
        mov      gword ptr [rbp-0x18], rax
        mov      rsi, gword ptr [rbp-0x18]
        mov      rdi, 0xD1FFAB1E      ; System.RuntimeType
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS
        call     [rax]CORINFO_HELP_CHKCASTCLASS
        mov      gword ptr [rbp-0x20], rax
        mov      rdi, gword ptr [rbp-0x20]
        mov      esi, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.Marshal:SizeOfHelper(System.RuntimeType,ubyte):int
        call     [rax]System.Runtime.InteropServices.Marshal:SizeOfHelper(System.RuntimeType,ubyte):int
        nop      
-						;; size=159 bbWeight=1 PerfScore 37.25
+						;; size=100 bbWeight=1 PerfScore 24.50
 G_M39432_IG03:
        add      rsp, 32
        pop      rbp
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 196, prolog size 26, PerfScore 45.33, instruction count 41, allocated bytes for code 196 (MethodHash=5ca865f7) for method System.Runtime.InteropServices.Marshal:SizeOf[double](double):int (Tier0)
+; Total bytes of code 137, prolog size 26, PerfScore 32.58, instruction count 31, allocated bytes for code 137 (MethodHash=5ca865f7) for method System.Runtime.InteropServices.Marshal:SizeOf[double](double):int (Tier0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment