Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created June 15, 2024 11:30
Show Gist options
  • Save MihuBot/ad630092d1a245f85d23c6989c35e9b1 to your computer and use it in GitHub Desktop.
Save MihuBot/ad630092d1a245f85d23c6989c35e9b1 to your computer and use it in GitHub Desktop.

Top method regressions

8 (0.72 % of base) - System.IO.Packaging.PackageRelationshipSelector:Select(System.IO.Packaging.Package):System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:this
 ; Assembly listing for method System.IO.Packaging.PackageRelationshipSelector:Select(System.IO.Packaging.Package):System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:this (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 18 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T04] ( 15,  9   )     ref  ->  rbx         this class-hnd single-def <System.IO.Packaging.PackageRelationshipSelector>
 ;  V01 arg1         [V01,T07] ( 12,  7.50)     ref  ->  r15         class-hnd single-def <System.IO.Packaging.Package>
 ;  V02 loc0         [V02,T00] ( 26, 48   )     ref  ->  r14         class-hnd exact single-def <System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]>
-;  V03 loc1         [V03,T15] (  3,  2.50)     int  ->  r13         single-def
-;  V04 loc2         [V04,T16] (  4,  2   )     ref  ->  r15         class-hnd single-def <System.IO.Packaging.PackagePart>
+;  V03 loc1         [V03,T13] (  3,  2.50)     int  ->  r13         single-def
+;  V04 loc2         [V04,T14] (  4,  2   )     ref  ->  r15         class-hnd single-def <System.IO.Packaging.PackagePart>
 ;  V05 loc3         [V05,T01] ( 14, 19   )     ref  ->  [rbp-0x28]  do-not-enreg[M] class-hnd EH-live <System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]>
 ;  V06 loc4         [V06,T08] (  3,  8   )     ref  ->  rax         class-hnd <System.IO.Packaging.PackageRelationship>
 ;  V07 loc5         [V07,T09] (  3,  8   )     ref  ->  rax         class-hnd <System.IO.Packaging.PackageRelationship>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V09 tmp1         [V09,T10] (  3,  6   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]>
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Uri>
 ;* V11 tmp3         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Uri>
 ;* V12 tmp4         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.IO.Packaging.PackagePart>
-;  V13 tmp5         [V13,T25] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
-;  V14 tmp6         [V14,T19] (  2,  2   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V15 tmp7         [V15,T22] (  3,  1.50)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
-;  V16 tmp8         [V16,T17] (  4,  2   )     int  ->  r13         single-def "Inline stloc first use temp"
+;  V13 tmp5         [V13,T23] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
+;  V14 tmp6         [V14,T17] (  2,  2   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V15 tmp7         [V15,T20] (  3,  1.50)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
+;  V16 tmp8         [V16,T15] (  4,  2   )     int  ->  r13         single-def "Inline stloc first use temp"
 ;  V17 tmp9         [V17,T11] (  3,  3   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.IO.Packaging.PackageRelationship>
-;  V18 tmp10        [V18,T20] (  2,  2   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V19 tmp11        [V19,T23] (  3,  1.50)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
-;  V20 tmp12        [V20,T18] (  4,  2   )     int  ->  rbx         single-def "Inline stloc first use temp"
+;  V18 tmp10        [V18,T18] (  2,  2   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V19 tmp11        [V19,T21] (  3,  1.50)     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
+;  V20 tmp12        [V20,T16] (  4,  2   )     int  ->  rbx         single-def "Inline stloc first use temp"
 ;  V21 tmp13        [V21,T12] (  3,  3   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.IO.Packaging.PackageRelationship>
 ;  V22 tmp14        [V22,T05] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
 ;  V23 tmp15        [V23,T02] (  4, 12   )     int  ->  rbx         "Inline stloc first use temp"
 ;  V24 tmp16        [V24,T06] (  3, 10   )     ref  ->  rdi         class-hnd "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
 ;  V25 tmp17        [V25,T03] (  4, 12   )     int  ->  rbx         "Inline stloc first use temp"
-;  V26 tmp18        [V26,T13] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V27 tmp19        [V27,T14] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V28 tmp20        [V28,T21] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V29 tmp21        [V29,T26] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V30 PSPSym       [V30,T24] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
+;  V26 tmp18        [V26,T19] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V27 tmp19        [V27,T24] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V28 PSPSym       [V28,T22] (  1,  1   )    long  ->  [rbp-0x30]  do-not-enreg[V] "PSPSym"
 ;
 ; Lcl frame size = 16
 
 G_M14552_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
        sub      rsp, 16
        lea      rbp, [rsp+0x30]
        mov      qword ptr [rbp-0x30], rsp
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=27 bbWeight=1 PerfScore 7.25
 G_M14552_IG02:
        test     r15, r15
        je       G_M14552_IG25
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]
        call     CORINFO_HELP_NEWSFAST
        mov      r14, rax
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
        je       G_M14552_IG24
 						;; size=46 bbWeight=1 PerfScore 7.00
 G_M14552_IG03:
        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:s_emptyArray
        mov      rsi, gword ptr [rdi]
        lea      rdi, bword ptr [r14+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        mov      r13d, dword ptr [rbx+0x18]
        test     r13d, r13d
        jne      G_M14552_IG08
 						;; size=35 bbWeight=1 PerfScore 7.00
 G_M14552_IG04:
        mov      rdi, gword ptr [rbx+0x08]
        mov      rsi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rsi]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Uri:Equals(System.Uri):ubyte:this
        test     eax, eax
        jne      G_M14552_IG06
        mov      rsi, gword ptr [rbx+0x08]
        mov      rdi, r15
        mov      rax, qword ptr [r15]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x20]System.IO.Packaging.Package:PartExists(System.Uri):ubyte:this
        test     eax, eax
        je       G_M14552_IG15
        mov      rsi, gword ptr [rbx+0x08]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.Package:GetPart(System.Uri):System.IO.Packaging.PackagePart:this
        call     [rax]System.IO.Packaging.Package:GetPart(System.Uri):System.IO.Packaging.PackagePart:this
        mov      r15, rax
        mov      rsi, gword ptr [rbx+0x10]
        cmp      byte  ptr [r15], r15b
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.PackagePart:GetRelationshipHelper(System.String):System.IO.Packaging.PackageRelationship:this
        call     [rax]System.IO.Packaging.PackagePart:GetRelationshipHelper(System.String):System.IO.Packaging.PackageRelationship:this
        test     rax, rax
        je       G_M14552_IG15
        mov      rsi, gword ptr [rbx+0x10]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.PackagePart:GetRelationship(System.String):System.IO.Packaging.PackageRelationship:this
        call     [rax]System.IO.Packaging.PackagePart:GetRelationship(System.String):System.IO.Packaging.PackageRelationship:this
        inc      dword ptr [r14+0x14]
        mov      rdi, gword ptr [r14+0x08]
        mov      ebx, dword ptr [r14+0x10]
        cmp      dword ptr [rdi+0x08], ebx
        ja       SHORT G_M14552_IG05
        mov      rdi, r14
        mov      rsi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        jmp      G_M14552_IG15
-						;; size=172 bbWeight=0.50 PerfScore 30.38
+						;; size=176 bbWeight=0.50 PerfScore 30.00
 G_M14552_IG05:
        lea      esi, [rbx+0x01]
        mov      dword ptr [r14+0x10], esi
        movsxd   rsi, ebx
        mov      rdx, rax
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rax]CORINFO_HELP_ARRADDR_ST
        jmp      G_M14552_IG15
 						;; size=30 bbWeight=0.50 PerfScore 3.62
 G_M14552_IG06:
        mov      rsi, gword ptr [rbx+0x10]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.Package:GetRelationshipHelper(System.String):System.IO.Packaging.PackageRelationship:this
        call     [rax]System.IO.Packaging.Package:GetRelationshipHelper(System.String):System.IO.Packaging.PackageRelationship:this
        test     rax, rax
        je       G_M14552_IG15
        mov      rsi, gword ptr [rbx+0x10]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.Package:GetRelationship(System.String):System.IO.Packaging.PackageRelationship:this
        call     [rax]System.IO.Packaging.Package:GetRelationship(System.String):System.IO.Packaging.PackageRelationship:this
        inc      dword ptr [r14+0x14]
        mov      rdi, gword ptr [r14+0x08]
        mov      r13d, dword ptr [r14+0x10]
        cmp      dword ptr [rdi+0x08], r13d
        ja       SHORT G_M14552_IG07
        mov      rdi, r14
        mov      rsi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        jmp      G_M14552_IG15
 						;; size=88 bbWeight=0.50 PerfScore 14.50
 G_M14552_IG07:
        lea      esi, [r13+0x01]
        mov      dword ptr [r14+0x10], esi
        movsxd   rsi, r13d
        mov      rdx, rax
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rax]CORINFO_HELP_ARRADDR_ST
        jmp      G_M14552_IG15
 						;; size=31 bbWeight=0.50 PerfScore 3.62
 G_M14552_IG08:
        cmp      r13d, 1
        jne      G_M14552_IG15
        mov      rdi, gword ptr [rbx+0x08]
        mov      rsi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rsi]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Uri:Equals(System.Uri):ubyte:this
        test     eax, eax
        jne      G_M14552_IG23
        mov      rsi, gword ptr [rbx+0x08]
        mov      rdi, r15
        mov      rax, qword ptr [r15]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x20]System.IO.Packaging.Package:PartExists(System.Uri):ubyte:this
        test     eax, eax
        je       G_M14552_IG15
        mov      rsi, gword ptr [rbx+0x08]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.Package:GetPart(System.Uri):System.IO.Packaging.PackagePart:this
        call     [rax]System.IO.Packaging.Package:GetPart(System.Uri):System.IO.Packaging.PackagePart:this
        mov      rdi, rax
        mov      rsi, gword ptr [rbx+0x10]
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.PackagePart:GetRelationshipsByType(System.String):System.IO.Packaging.PackageRelationshipCollection:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.IO.Packaging.PackagePart:GetRelationshipsByType(System.String):System.IO.Packaging.PackageRelationshipCollection:this
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.PackageRelationshipCollection:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.IO.Packaging.PackageRelationshipCollection:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]:this
        mov      gword ptr [rbp-0x28], rax
        jmp      G_M14552_IG17
-						;; size=136 bbWeight=0.50 PerfScore 23.88
+						;; size=140 bbWeight=0.50 PerfScore 23.50
 G_M14552_IG09:
        mov      rdi, gword ptr [rbp-0x28]
        mov      r11, 0xD1FFAB1E      ; function address
        call     [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
        test     eax, eax
        je       SHORT G_M14552_IG14
 						;; size=21 bbWeight=0.50 PerfScore 2.75
 G_M14552_IG10:
        mov      rdi, gword ptr [rbp-0x28]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
        call     [r11]System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
        inc      dword ptr [r14+0x14]
        mov      rdi, gword ptr [r14+0x08]
        mov      ebx, dword ptr [r14+0x10]
        cmp      dword ptr [rdi+0x08], ebx
        ja       SHORT G_M14552_IG12
 						;; size=34 bbWeight=4 PerfScore 61.00
 G_M14552_IG11:
        mov      rdi, r14
        mov      rsi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        jmp      SHORT G_M14552_IG13
 						;; size=20 bbWeight=2 PerfScore 11.50
 G_M14552_IG12:
        lea      esi, [rbx+0x01]
        mov      dword ptr [r14+0x10], esi
        movsxd   rsi, ebx
        mov      rdx, rax
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rax]CORINFO_HELP_ARRADDR_ST
 						;; size=25 bbWeight=2 PerfScore 10.50
 G_M14552_IG13:
        mov      rdi, gword ptr [rbp-0x28]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
        call     [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
        test     eax, eax
        jne      SHORT G_M14552_IG10
 						;; size=21 bbWeight=4 PerfScore 22.00
 G_M14552_IG14:
        mov      rdi, gword ptr [rbp-0x28]
        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this
        call     [r11]System.IDisposable:Dispose():this
 						;; size=17 bbWeight=0.50 PerfScore 2.12
 G_M14552_IG15:
        mov      rax, r14
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M14552_IG16:
        add      rsp, 16
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=13 bbWeight=1 PerfScore 3.75
 G_M14552_IG17:
        mov      rdi, gword ptr [rbp-0x28]
        mov      r11, 0xD1FFAB1E      ; function address
        call     [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
        test     eax, eax
        je       SHORT G_M14552_IG22
 						;; size=21 bbWeight=0.50 PerfScore 2.75
 G_M14552_IG18:
        mov      rdi, gword ptr [rbp-0x28]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
        call     [r11]System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
        inc      dword ptr [r14+0x14]
        mov      rdi, gword ptr [r14+0x08]
        mov      ebx, dword ptr [r14+0x10]
        cmp      dword ptr [rdi+0x08], ebx
        ja       SHORT G_M14552_IG20
 						;; size=34 bbWeight=4 PerfScore 61.00
 G_M14552_IG19:
        mov      rdi, r14
        mov      rsi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
        jmp      SHORT G_M14552_IG21
 						;; size=20 bbWeight=2 PerfScore 11.50
 G_M14552_IG20:
        lea      esi, [rbx+0x01]
        mov      dword ptr [r14+0x10], esi
        movsxd   rsi, ebx
        mov      rdx, rax
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rax]CORINFO_HELP_ARRADDR_ST
 						;; size=25 bbWeight=2 PerfScore 10.50
 G_M14552_IG21:
        mov      rdi, gword ptr [rbp-0x28]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
        call     [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
        test     eax, eax
        jne      SHORT G_M14552_IG18
 						;; size=21 bbWeight=4 PerfScore 22.00
 G_M14552_IG22:
        mov      rdi, gword ptr [rbp-0x28]
        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this
        call     [r11]System.IDisposable:Dispose():this
        jmp      G_M14552_IG15
 						;; size=22 bbWeight=0.50 PerfScore 3.12
 G_M14552_IG23:
        mov      rsi, gword ptr [rbx+0x10]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.Package:GetRelationshipsByType(System.String):System.IO.Packaging.PackageRelationshipCollection:this
        call     [rax]System.IO.Packaging.Package:GetRelationshipsByType(System.String):System.IO.Packaging.PackageRelationshipCollection:this
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.PackageRelationshipCollection:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.IO.Packaging.PackageRelationshipCollection:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]:this
        mov      gword ptr [rbp-0x28], rax
        jmp      G_M14552_IG09
 						;; size=45 bbWeight=0.50 PerfScore 7.50
 G_M14552_IG24:
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]
        call     CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      G_M14552_IG03
 						;; size=20 bbWeight=0 PerfScore 0.00
 G_M14552_IG25:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      edi, 0x1867
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this
        call     [rax]System.ArgumentNullException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=65 bbWeight=0 PerfScore 0.00
 G_M14552_IG26:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
        sub      rsp, 16
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
        lea      rbp, [rbp+0x30]
 						;; size=23 bbWeight=0 PerfScore 0.00
 G_M14552_IG27:
        cmp      gword ptr [rbp-0x28], 0
        je       SHORT G_M14552_IG28
        mov      rdi, gword ptr [rbp-0x28]
        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this
        call     [r11]System.IDisposable:Dispose():this
 						;; size=24 bbWeight=0 PerfScore 0.00
 G_M14552_IG28:
        nop      
 						;; size=1 bbWeight=0 PerfScore 0.00
 G_M14552_IG29:
        add      rsp, 16
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M14552_IG30:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
        sub      rsp, 16
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
        lea      rbp, [rbp+0x30]
 						;; size=23 bbWeight=0 PerfScore 0.00
 G_M14552_IG31:
        cmp      gword ptr [rbp-0x28], 0
        je       SHORT G_M14552_IG32
        mov      rdi, gword ptr [rbp-0x28]
        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this
        call     [r11]System.IDisposable:Dispose():this
 						;; size=24 bbWeight=0 PerfScore 0.00
 G_M14552_IG32:
        nop      
 						;; size=1 bbWeight=0 PerfScore 0.00
 G_M14552_IG33:
        add      rsp, 16
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1114, prolog size 27, PerfScore 329.50, instruction count 275, allocated bytes for code 1114 (MethodHash=14f6c727) for method System.IO.Packaging.PackageRelationshipSelector:Select(System.IO.Packaging.Package):System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:this (FullOpts)
+; Total bytes of code 1122, prolog size 27, PerfScore 328.75, instruction count 275, allocated bytes for code 1122 (MethodHash=14f6c727) for method System.IO.Packaging.PackageRelationshipSelector:Select(System.IO.Packaging.Package):System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:this (FullOpts)
4 (1.15 % of base) - System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this
 ; Assembly listing for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  6,  4   )     ref  ->  r15         this class-hnd single-def <System.Net.CredentialCacheKey>
 ;  V01 arg1         [V01,T00] (  6,  4.50)     ref  ->  rbx         class-hnd single-def <System.Net.CredentialCacheKey>
-;  V02 loc0         [V02,T08] (  3,  1.50)   ubyte  ->  r14        
+;  V02 loc0         [V02,T07] (  3,  1.50)   ubyte  ->  r14        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T09] (  3,  1.50)     int  ->  r14        
+;  V04 tmp1         [V04,T08] (  3,  1.50)     int  ->  r14        
 ;  V05 tmp2         [V05,T02] (  5,  5   )     ref  ->  r12         class-hnd exact single-def "dup spill" <System.Object[]>
 ;  V06 tmp3         [V06,T03] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
 ;* V08 tmp5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Net.NetEventSource>
 ;  V09 tmp6         [V09,T04] (  3,  3   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.FormattableString>
-;  V10 tmp7         [V10,T10] (  2,  1   )     ref  ->  r13         single-def
-;  V11 tmp8         [V11,T11] (  2,  1   )     ref  ->  r15         single-def
+;  V10 tmp7         [V10,T09] (  2,  1   )     ref  ->  r13         single-def
+;  V11 tmp8         [V11,T10] (  2,  1   )     ref  ->  r15         single-def
 ;* V12 tmp9         [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V13 tmp10        [V13    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V14 tmp11        [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V16 tmp13        [V16,T06] (  3,  1.50)     ref  ->  rax        
-;  V17 tmp14        [V17,T12] (  2,  1   )     ref  ->  rdi         single-def
-;* V18 tmp15        [V18,T15] (  0,  0   )     int  ->  zero-ref   
-;  V19 tmp16        [V19,T13] (  2,  1   )     ref  ->  rdx         single-def
-;* V20 tmp17        [V20,T14] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V21 tmp18        [V21,T05] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V22 cse0         [V22,T07] (  3,  1.50)     ref  ->  r13         "CSE #01: moderate"
+;  V16 tmp13        [V16,T05] (  3,  1.50)     ref  ->  rax        
+;  V17 tmp14        [V17,T11] (  2,  1   )     ref  ->  rdi         single-def
+;* V18 tmp15        [V18,T14] (  0,  0   )     int  ->  zero-ref   
+;  V19 tmp16        [V19,T12] (  2,  1   )     ref  ->  rdx         single-def
+;* V20 tmp17        [V20,T13] (  0,  0   )     ref  ->  zero-ref    single-def
+;  V21 cse0         [V21,T06] (  3,  1.50)     ref  ->  r13         "CSE #01: moderate"
 ;
 ; Lcl frame size = 8
 
 G_M30951_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        lea      rbp, [rsp+0x30]
        mov      r15, rdi
        mov      rbx, rsi
 						;; size=22 bbWeight=1 PerfScore 8.00
 G_M30951_IG02:
        test     rbx, rbx
        je       G_M30951_IG10
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M30951_IG03:
        mov      rdi, gword ptr [r15+0x10]
        mov      rsi, gword ptr [rbx+0x10]
        mov      edx, 5
        mov      rax, 0xD1FFAB1E      ; code for System.String:Equals(System.String,System.String,int):ubyte
        call     [rax]System.String:Equals(System.String,System.String,int):ubyte
        test     eax, eax
        jne      SHORT G_M30951_IG04
        xor      r14d, r14d
        jmp      SHORT G_M30951_IG05
 						;; size=34 bbWeight=0.50 PerfScore 5.50
 G_M30951_IG04:
        mov      rdi, gword ptr [r15+0x08]
        mov      rsi, gword ptr [rbx+0x08]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Uri:Equals(System.Uri):ubyte:this
        mov      r14d, eax
-						;; size=21 bbWeight=0.50 PerfScore 5.62
+						;; size=25 bbWeight=0.50 PerfScore 5.25
 G_M30951_IG05:
        movzx    r14, r14b
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r13, gword ptr [rdi]
        cmp      byte  ptr [r13+0x9D], 0
        je       G_M30951_IG08
        mov      rdi, 0xD1FFAB1E      ; System.Object[]
        mov      esi, 3
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      r12, rax
        lea      rdi, bword ptr [r12+0x10]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [r12+0x18]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, 0xD1FFAB1E      ; System.Boolean
        call     CORINFO_HELP_NEWSFAST
        mov      byte  ptr [rax+0x08], r14b
        lea      rdi, bword ptr [r12+0x20]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, r12
        mov      rdi, 0xD1FFAB1E      ; 'Equals({0},{1}) returns {2}'
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
        call     [rax]System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
        mov      rbx, rax
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Net.NetEventSource:IdOf(System.Object):System.String
        call     [rax]System.Net.NetEventSource:IdOf(System.Object):System.String
        mov      r15, rax
        test     rbx, rbx
        je       SHORT G_M30951_IG06
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Net.NetEventSource:Format(System.FormattableString):System.String
        call     [rax]System.Net.NetEventSource:Format(System.FormattableString):System.String
        jmp      SHORT G_M30951_IG07
 						;; size=180 bbWeight=0.50 PerfScore 15.12
 G_M30951_IG06:
        mov      rax, 0xD1FFAB1E      ; ''
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M30951_IG07:
        mov      rdi, r13
        mov      rdx, r15
        mov      esi, 1
        mov      rcx, 0xD1FFAB1E      ; 'Equals'
        mov      r8, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
        call     [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
 						;; size=36 bbWeight=0.50 PerfScore 2.25
 G_M30951_IG08:
        mov      eax, r14d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M30951_IG09:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M30951_IG10:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M30951_IG11:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 
-; Total bytes of code 347, prolog size 16, PerfScore 42.38, instruction count 89, allocated bytes for code 347 (MethodHash=bef78718) for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
+; Total bytes of code 351, prolog size 16, PerfScore 42.00, instruction count 89, allocated bytes for code 351 (MethodHash=bef78718) for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
4 (1.15 % of base) - System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this
 ; Assembly listing for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  6,  4   )     ref  ->  r15         this class-hnd single-def <System.Net.CredentialCacheKey>
 ;  V01 arg1         [V01,T00] (  6,  4.50)     ref  ->  rbx         class-hnd single-def <System.Net.CredentialCacheKey>
-;  V02 loc0         [V02,T08] (  3,  1.50)   ubyte  ->  r14        
+;  V02 loc0         [V02,T07] (  3,  1.50)   ubyte  ->  r14        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T09] (  3,  1.50)     int  ->  r14        
+;  V04 tmp1         [V04,T08] (  3,  1.50)     int  ->  r14        
 ;  V05 tmp2         [V05,T02] (  5,  5   )     ref  ->  r12         class-hnd exact single-def "dup spill" <System.Object[]>
 ;  V06 tmp3         [V06,T03] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
 ;* V08 tmp5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.Net.NetEventSource>
 ;  V09 tmp6         [V09,T04] (  3,  3   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.FormattableString>
-;  V10 tmp7         [V10,T10] (  2,  1   )     ref  ->  r13         single-def
-;  V11 tmp8         [V11,T11] (  2,  1   )     ref  ->  r15         single-def
+;  V10 tmp7         [V10,T09] (  2,  1   )     ref  ->  r13         single-def
+;  V11 tmp8         [V11,T10] (  2,  1   )     ref  ->  r15         single-def
 ;* V12 tmp9         [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V13 tmp10        [V13    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V14 tmp11        [V14    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V16 tmp13        [V16,T06] (  3,  1.50)     ref  ->  rax        
-;  V17 tmp14        [V17,T12] (  2,  1   )     ref  ->  rdi         single-def
-;* V18 tmp15        [V18,T15] (  0,  0   )     int  ->  zero-ref   
-;  V19 tmp16        [V19,T13] (  2,  1   )     ref  ->  rdx         single-def
-;* V20 tmp17        [V20,T14] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V21 tmp18        [V21,T05] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V22 cse0         [V22,T07] (  3,  1.50)     ref  ->  r13         "CSE #01: moderate"
+;  V16 tmp13        [V16,T05] (  3,  1.50)     ref  ->  rax        
+;  V17 tmp14        [V17,T11] (  2,  1   )     ref  ->  rdi         single-def
+;* V18 tmp15        [V18,T14] (  0,  0   )     int  ->  zero-ref   
+;  V19 tmp16        [V19,T12] (  2,  1   )     ref  ->  rdx         single-def
+;* V20 tmp17        [V20,T13] (  0,  0   )     ref  ->  zero-ref    single-def
+;  V21 cse0         [V21,T06] (  3,  1.50)     ref  ->  r13         "CSE #01: moderate"
 ;
 ; Lcl frame size = 8
 
 G_M30951_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        lea      rbp, [rsp+0x30]
        mov      r15, rdi
        mov      rbx, rsi
 						;; size=22 bbWeight=1 PerfScore 8.00
 G_M30951_IG02:
        test     rbx, rbx
        je       G_M30951_IG10
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M30951_IG03:
        mov      rdi, gword ptr [r15+0x10]
        mov      rsi, gword ptr [rbx+0x10]
        mov      edx, 5
        mov      rax, 0xD1FFAB1E      ; code for System.String:Equals(System.String,System.String,int):ubyte
        call     [rax]System.String:Equals(System.String,System.String,int):ubyte
        test     eax, eax
        jne      SHORT G_M30951_IG04
        xor      r14d, r14d
        jmp      SHORT G_M30951_IG05
 						;; size=34 bbWeight=0.50 PerfScore 5.50
 G_M30951_IG04:
        mov      rdi, gword ptr [r15+0x08]
        mov      rsi, gword ptr [rbx+0x08]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Uri:Equals(System.Uri):ubyte:this
        mov      r14d, eax
-						;; size=21 bbWeight=0.50 PerfScore 5.62
+						;; size=25 bbWeight=0.50 PerfScore 5.25
 G_M30951_IG05:
        movzx    r14, r14b
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r13, gword ptr [rdi]
        cmp      byte  ptr [r13+0x9D], 0
        je       G_M30951_IG08
        mov      rdi, 0xD1FFAB1E      ; System.Object[]
        mov      esi, 3
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      r12, rax
        lea      rdi, bword ptr [r12+0x10]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [r12+0x18]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, 0xD1FFAB1E      ; System.Boolean
        call     CORINFO_HELP_NEWSFAST
        mov      byte  ptr [rax+0x08], r14b
        lea      rdi, bword ptr [r12+0x20]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, r12
        mov      rdi, 0xD1FFAB1E      ; 'Equals({0},{1}) returns {2}'
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
        call     [rax]System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
        mov      rbx, rax
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Net.NetEventSource:IdOf(System.Object):System.String
        call     [rax]System.Net.NetEventSource:IdOf(System.Object):System.String
        mov      r15, rax
        test     rbx, rbx
        je       SHORT G_M30951_IG06
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Net.NetEventSource:Format(System.FormattableString):System.String
        call     [rax]System.Net.NetEventSource:Format(System.FormattableString):System.String
        jmp      SHORT G_M30951_IG07
 						;; size=180 bbWeight=0.50 PerfScore 15.12
 G_M30951_IG06:
        mov      rax, 0xD1FFAB1E      ; ''
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M30951_IG07:
        mov      rdi, r13
        mov      rdx, r15
        mov      esi, 1
        mov      rcx, 0xD1FFAB1E      ; 'Equals'
        mov      r8, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
        call     [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
 						;; size=36 bbWeight=0.50 PerfScore 2.25
 G_M30951_IG08:
        mov      eax, r14d
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M30951_IG09:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M30951_IG10:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M30951_IG11:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 
-; Total bytes of code 347, prolog size 16, PerfScore 42.38, instruction count 89, allocated bytes for code 347 (MethodHash=bef78718) for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
+; Total bytes of code 351, prolog size 16, PerfScore 42.00, instruction count 89, allocated bytes for code 351 (MethodHash=bef78718) for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
4 (2.55 % of base) - System.Xml.Schema.ChameleonKey:Equals(System.Object):ubyte:this
 ; Assembly listing for method System.Xml.Schema.ChameleonKey:Equals(System.Object):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  6,  4.50)     ref  ->  rbx         this class-hnd single-def <System.Xml.Schema.ChameleonKey>
 ;  V01 arg1         [V01,T01] (  6,  4.25)     ref  ->  rsi         class-hnd single-def <System.Object>
-;  V02 loc0         [V02,T05] (  4,  2   )     ref  ->  r15         class-hnd exact <System.Xml.Schema.ChameleonKey>
+;  V02 loc0         [V02,T04] (  4,  2   )     ref  ->  r15         class-hnd exact <System.Xml.Schema.ChameleonKey>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling qmarkNull" <System.Xml.Schema.ChameleonKey>
-;  V05 tmp2         [V05,T06] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V05 tmp2         [V05,T05] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V06 tmp3         [V06,T02] (  5,  5   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V07 tmp4         [V07,T03] (  5,  5   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
-;  V08 tmp5         [V08,T07] (  2,  2   )   byref  ->  rdi         single-def "impAppendStmt"
-;  V09 tmp6         [V09,T04] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V10 cse0         [V10,T08] (  3,  1.50)     int  ->  rdx         "CSE #01: moderate"
+;  V08 tmp5         [V08,T06] (  2,  2   )   byref  ->  rdi         single-def "impAppendStmt"
+;  V09 cse0         [V09,T07] (  3,  1.50)     int  ->  rdx         "CSE #01: moderate"
 ;
 ; Lcl frame size = 0
 
 G_M47687_IG01:
        push     rbp
        push     r15
        push     rbx
        lea      rbp, [rsp+0x10]
        mov      rbx, rdi
 						;; size=12 bbWeight=1 PerfScore 3.75
 G_M47687_IG02:
        cmp      rbx, rsi
        je       G_M47687_IG10
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M47687_IG03:
        test     rsi, rsi
        je       SHORT G_M47687_IG08
 						;; size=5 bbWeight=0.50 PerfScore 0.62
 G_M47687_IG04:
        mov      rdx, 0xD1FFAB1E      ; System.Xml.Schema.ChameleonKey
        cmp      qword ptr [rsi], rdx
        jne      SHORT G_M47687_IG08
 						;; size=15 bbWeight=0.25 PerfScore 1.06
 G_M47687_IG05:
        mov      r15, rsi
        mov      rdi, gword ptr [rbx+0x08]
        mov      rsi, gword ptr [r15+0x08]
        cmp      byte  ptr [rdi], dil
        cmp      rdi, rsi
        je       SHORT G_M47687_IG06
        test     rsi, rsi
        je       SHORT G_M47687_IG08
        mov      edx, dword ptr [rdi+0x08]
        cmp      edx, dword ptr [rsi+0x08]
        jne      SHORT G_M47687_IG08
        add      rdi, 12
        add      edx, edx
        add      rsi, 12
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        test     eax, eax
        je       SHORT G_M47687_IG08
 						;; size=58 bbWeight=0.50 PerfScore 10.50
 G_M47687_IG06:
        mov      rdi, gword ptr [rbx+0x10]
        mov      rsi, gword ptr [r15+0x10]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Uri:Equals(System.Uri):ubyte:this
        test     eax, eax
        je       SHORT G_M47687_IG08
        mov      rax, gword ptr [rbx+0x18]
        cmp      rax, gword ptr [r15+0x18]
        sete     al
        movzx    rax, al
-						;; size=36 bbWeight=0.50 PerfScore 9.25
+						;; size=40 bbWeight=0.50 PerfScore 8.88
 G_M47687_IG07:
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M47687_IG08:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M47687_IG09:
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M47687_IG10:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M47687_IG11:
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=5 bbWeight=0.50 PerfScore 1.25
 
-; Total bytes of code 157, prolog size 9, PerfScore 30.44, instruction count 55, allocated bytes for code 157 (MethodHash=423645b8) for method System.Xml.Schema.ChameleonKey:Equals(System.Object):ubyte:this (FullOpts)
+; Total bytes of code 161, prolog size 9, PerfScore 30.06, instruction count 55, allocated bytes for code 161 (MethodHash=423645b8) for method System.Xml.Schema.ChameleonKey:Equals(System.Object):ubyte:this (FullOpts)
4 (3.25 % of base) - System.Xml.Schema.Datatype_anyURI:Compare(System.Object,System.Object):int:this
 ; Assembly listing for method System.Xml.Schema.Datatype_anyURI:Compare(System.Object,System.Object):int:this (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <System.Xml.Schema.Datatype_anyURI>
-;  V01 arg1         [V01,T03] (  4,  3.25)     ref  ->  rsi         class-hnd single-def <System.Object>
-;  V02 arg2         [V02,T04] (  4,  3.25)     ref  ->  rbx         class-hnd single-def <System.Object>
+;  V01 arg1         [V01,T02] (  4,  3.25)     ref  ->  rsi         class-hnd single-def <System.Object>
+;  V02 arg2         [V02,T03] (  4,  3.25)     ref  ->  rbx         class-hnd single-def <System.Object>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T02] (  3,  6   )     ref  ->  r15         single-def "argument with side effect"
+;  V04 tmp1         [V04,T04] (  2,  4   )     ref  ->  r15         single-def "argument with side effect"
 ;  V05 tmp2         [V05,T05] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V06 rat0         [V06,T00] (  5,  7.50)     ref  ->  r15         "replacement local"
 ;  V07 rat1         [V07,T06] (  3,  2.50)    long  ->  rdi         "CSE for expectedClsNode"
 ;  V08 rat2         [V08,T01] (  5,  7.50)     ref  ->  rsi         "replacement local"
 ;  V09 rat3         [V09,T07] (  3,  2.50)    long  ->  rdi         "CSE for expectedClsNode"
 ;
 ; Lcl frame size = 0
 
 G_M61907_IG01:
        push     rbp
        push     r15
        push     rbx
        lea      rbp, [rsp+0x10]
        mov      rbx, rdx
 						;; size=12 bbWeight=1 PerfScore 3.75
 G_M61907_IG02:
        mov      r15, rsi
        test     r15, r15
        je       SHORT G_M61907_IG05
 						;; size=8 bbWeight=1 PerfScore 1.50
 G_M61907_IG03:
        mov      rdi, 0xD1FFAB1E      ; System.Uri
        cmp      qword ptr [r15], rdi
        je       SHORT G_M61907_IG05
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M61907_IG04:
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
        mov      r15, rax
 						;; size=15 bbWeight=0.25 PerfScore 0.88
 G_M61907_IG05:
        mov      rsi, rbx
        test     rsi, rsi
        je       SHORT G_M61907_IG08
 						;; size=8 bbWeight=1 PerfScore 1.50
 G_M61907_IG06:
        mov      rdi, 0xD1FFAB1E      ; System.Uri
        cmp      qword ptr [rsi], rdi
        je       SHORT G_M61907_IG08
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M61907_IG07:
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
        mov      rsi, rax
 						;; size=18 bbWeight=0.25 PerfScore 0.94
 G_M61907_IG08:
        mov      rdi, r15
-       mov      rax, qword ptr [r15]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Uri:Equals(System.Uri):ubyte:this
        xor      ecx, ecx
        mov      edx, -1
        test     eax, eax
        mov      eax, edx
        cmovne   eax, ecx
-						;; size=27 bbWeight=1 PerfScore 8.50
+						;; size=31 bbWeight=1 PerfScore 7.75
 G_M61907_IG09:
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=5 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 123, prolog size 9, PerfScore 23.81, instruction count 37, allocated bytes for code 123 (MethodHash=9b560e2c) for method System.Xml.Schema.Datatype_anyURI:Compare(System.Object,System.Object):int:this (FullOpts)
+; Total bytes of code 127, prolog size 9, PerfScore 23.06, instruction count 37, allocated bytes for code 127 (MethodHash=9b560e2c) for method System.Xml.Schema.Datatype_anyURI:Compare(System.Object,System.Object):int:this (FullOpts)
4 (0.48 % of base) - System.Xml.Schema.XmlSchemaSet:RemoveSchemaFromCaches(System.Xml.Schema.XmlSchema):this
 ; Assembly listing for method System.Xml.Schema.XmlSchemaSet:RemoveSchemaFromCaches(System.Xml.Schema.XmlSchema):this (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 11 single block inlinees; 8 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T16] (  5, 24   )     ref  ->  rbx         this class-hnd single-def <System.Xml.Schema.XmlSchemaSet>
 ;  V01 arg1         [V01,T33] (  3,  3   )     ref  ->  r15         class-hnd single-def <System.Xml.Schema.XmlSchema>
 ;  V02 loc0         [V02,T10] ( 10, 63   )     ref  ->  r14         class-hnd exact single-def <System.Collections.Generic.List`1[System.Xml.Schema.XmlSchema]>
 ;* V03 loc1         [V03,T37] (  0,  0   )     int  ->  zero-ref   
 ;  V04 loc2         [V04,T00] ( 13,112   )     ref  ->  r13         class-hnd exact <System.Collections.ArrayList>
 ;  V05 loc3         [V05,T13] (  6, 44   )     ref  ->  [rbp-0x30]  do-not-enreg[Z] class-hnd EH-live <System.Collections.IEnumerator>
 ;  V06 loc4         [V06,T11] (  4, 48   )     ref  ->  r12         class-hnd exact <System.Xml.Schema.ChameleonKey>
 ;  V07 loc5         [V07,T28] (  6, 10   )     ref  ->  rax         class-hnd <System.IDisposable>
-;  V08 loc6         [V08,T06] (  5, 68   )     int  ->  r12        
+;  V08 loc6         [V08,T05] (  5, 68   )     int  ->  r12        
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V10 tmp1         [V10,T32] (  3,  6   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Xml.Schema.XmlSchema]>
 ;  V11 tmp2         [V11,T17] (  3, 24   )     ref  ->  r13         class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
 ;  V12 tmp3         [V12,T22] (  2, 16   )     ref  ->  r12         class-hnd "impAppendStmt" <System.Collections.ICollection>
-;  V13 tmp4         [V13,T03] (  3, 96   )     ref  ->  rdi         class-hnd "impAppendStmt" <System.Uri>
+;  V13 tmp4         [V13,T07] (  2, 64   )     ref  ->  rdi         class-hnd "impAppendStmt" <System.Uri>
 ;  V14 tmp5         [V14,T15] (  2, 32   )     ref  ->  rsi         class-hnd "impAppendStmt" <System.Xml.Schema.XmlSchema>
 ;* V15 tmp6         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Collections.Hashtable>
 ;  V16 tmp7         [V16,T26] (  3, 12   )     ref  ->  rdi         class-hnd "impAppendStmt" <System.Collections.Hashtable>
 ;* V17 tmp8         [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;* V18 tmp9         [V18,T34] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V19 tmp10        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Uri>
 ;* V20 tmp11        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;  V21 tmp12        [V21,T27] (  3, 12   )     ref  ->  rdi         class-hnd "Inlining Arg" <System.Uri>
 ;  V22 tmp13        [V22,T30] (  2,  8   )     ref  ->  rax         class-hnd exact "dup spill" <System.String>
 ;  V23 tmp14        [V23,T29] (  4,  8   )     ref  ->  rax        
 ;* V24 tmp15        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon>
 ;  V26 tmp17        [V26,T23] (  2, 16   )     int  ->  rdi         "Inline stloc first use temp"
 ;  V27 tmp18        [V27,T18] (  3, 24   )     ref  ->  rsi         "arr expr"
 ;* V28 tmp19        [V28,T35] (  0,  0   )     ref  ->  zero-ref    "arr expr"
 ;* V29 tmp20        [V29,T36] (  0,  0   )     ref  ->  zero-ref    "arr expr"
 ;  V30 tmp21        [V30,T31] (  2,  8   )     ref  ->  rsi         "argument with side effect"
 ;  V31 tmp22        [V31,T19] (  3, 24   )     ref  ->  rdi         "argument with side effect"
-;  V32 tmp23        [V32,T07] (  3, 64   )     ref  ->  rax         "argument with side effect"
-;  V33 tmp24        [V33,T04] (  3, 96   )     ref  ->  rsi         "arr expr"
+;  V32 tmp23        [V32,T06] (  3, 64   )     ref  ->  rax         "argument with side effect"
+;  V33 tmp24        [V33,T03] (  3, 96   )     ref  ->  rsi         "arr expr"
 ;  V34 tmp25        [V34,T08] (  2, 64   )     ref  ->  rsi         "argument with side effect"
 ;  V35 tmp26        [V35,T12] (  3, 48   )     ref  ->  rdi         "arr expr"
 ;  V36 tmp27        [V36,T09] (  2, 64   )     ref  ->  rsi         "argument with side effect"
-;  V37 tmp28        [V37,T05] (  3, 96   )     ref  ->  [rbp-0x38]  spill-single-def "argument with side effect"
+;  V37 tmp28        [V37,T04] (  3, 96   )     ref  ->  [rbp-0x38]  spill-single-def "argument with side effect"
 ;  V38 PSPSym       [V38,T38] (  1,  1   )    long  ->  [rbp-0x40]  do-not-enreg[V] "PSPSym"
 ;  V39 cse0         [V39,T24] (  4, 12   )     ref  ->  rsi         "CSE #06: moderate"
 ;  V40 cse1         [V40,T20] (  3, 24   )     ref  ->  rsi         "CSE #07: moderate"
 ;  V41 cse2         [V41,T21] (  3, 24   )     int  ->  rsi         "CSE #08: moderate"
 ;  V42 cse3         [V42,T25] (  2,  8   )     ref  ->  rsi         "CSE #02: moderate"
 ;  V43 rat0         [V43,T02] ( 13, 97   )    long  ->  r15         "Widened IV V03"
 ;  V44 rat1         [V44,T01] (  4,112   )     ref  ->  r12         "replacement local"
 ;  V45 rat2         [V45,T14] (  3, 32   )    long  ->  rdi         "CSE for expectedClsNode"
 ;
 ; Lcl frame size = 24
 
 G_M28801_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 24
        lea      rbp, [rsp+0x40]
        mov      qword ptr [rbp-0x40], rsp
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=29 bbWeight=1 PerfScore 8.25
 G_M28801_IG02:
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.Xml.Schema.XmlSchema]
        call     CORINFO_HELP_NEWSFAST
        mov      r14, rax
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
        je       G_M28801_IG25
 						;; size=37 bbWeight=1 PerfScore 5.75
 G_M28801_IG03:
        mov      rdi, 0xD1FFAB1E      ; data for System.Collections.Generic.List`1[System.Xml.Schema.XmlSchema]:s_emptyArray
        mov      rsi, gword ptr [rdi]
        lea      rdi, bword ptr [r14+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, r14
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Schema.XmlSchema:GetExternalSchemasList(System.Collections.IList,System.Xml.Schema.XmlSchema)
        call     [rax]System.Xml.Schema.XmlSchema:GetExternalSchemasList(System.Collections.IList,System.Xml.Schema.XmlSchema)
        xor      r15d, r15d
        cmp      dword ptr [r14+0x10], 0
        jle      G_M28801_IG24
 						;; size=54 bbWeight=1 PerfScore 11.75
 G_M28801_IG04:
        cmp      r15d, dword ptr [r14+0x10]
        jae      G_M28801_IG26
        mov      rsi, gword ptr [r14+0x08]
        cmp      r15d, dword ptr [rsi+0x08]
        jae      G_M28801_IG27
        mov      rsi, gword ptr [rsi+8*r15+0x10]
        cmp      gword ptr [rsi+0xA8], 0
        je       SHORT G_M28801_IG07
 						;; size=39 bbWeight=4 PerfScore 64.00
 G_M28801_IG05:
        mov      rdi, gword ptr [rsi+0xA8]
        mov      rax, gword ptr [rdi+0x10]
        test     rax, rax
        jne      SHORT G_M28801_IG06
        mov      rax, gword ptr [rdi+0x08]
 						;; size=20 bbWeight=2 PerfScore 14.50
 G_M28801_IG06:
        cmp      dword ptr [rax+0x08], 0
        je       SHORT G_M28801_IG07
        mov      rdi, gword ptr [rbx+0x30]
        mov      rsi, gword ptr [rsi+0xA8]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x50]
        call     [rax+0x38]System.Collections.Hashtable:Remove(System.Object):this
 						;; size=27 bbWeight=2 PerfScore 30.00
 G_M28801_IG07:
        mov      rdi, 0xD1FFAB1E      ; System.Collections.ArrayList
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      rdi, gword ptr [rbx+0x38]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x50]
        call     [rax+0x28]System.Collections.Hashtable:get_Keys():System.Collections.ICollection:this
        mov      r12, rax
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rdi]
        lea      rdi, bword ptr [r13+0x08]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, r12
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this
        call     [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this
        mov      gword ptr [rbp-0x30], rax
 						;; size=77 bbWeight=4 PerfScore 76.00
 G_M28801_IG08:
        mov      rdi, gword ptr [rbp-0x30]
        mov      r11, 0xD1FFAB1E      ; function address
        call     [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
        test     eax, eax
        je       G_M28801_IG19
 						;; size=25 bbWeight=4 PerfScore 22.00
 G_M28801_IG09:
        mov      rdi, gword ptr [rbp-0x30]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:get_Current():System.Object:this
        call     [r11]System.Collections.IEnumerator:get_Current():System.Object:this
        mov      r12, rax
        test     r12, r12
        je       SHORT G_M28801_IG11
 						;; size=25 bbWeight=16 PerfScore 92.00
 G_M28801_IG10:
        mov      rdi, 0xD1FFAB1E      ; System.Xml.Schema.ChameleonKey
        cmp      qword ptr [r12], rdi
        jne      G_M28801_IG17
 						;; size=20 bbWeight=8 PerfScore 34.00
 G_M28801_IG11:
        mov      rdi, gword ptr [r12+0x10]
        cmp      r15d, dword ptr [r14+0x10]
        jae      G_M28801_IG16
        mov      rsi, gword ptr [r14+0x08]
        cmp      r15d, dword ptr [rsi+0x08]
        jae      G_M28801_IG18
        mov      rsi, gword ptr [rsi+8*r15+0x10]
        mov      rsi, gword ptr [rsi+0xA8]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Uri:Equals(System.Uri):ubyte:this
        test     eax, eax
        je       SHORT G_M28801_IG15
-						;; size=55 bbWeight=16 PerfScore 388.00
+						;; size=59 bbWeight=16 PerfScore 376.00
 G_M28801_IG12:
        mov      rsi, gword ptr [r12+0x18]
        test     rsi, rsi
        je       SHORT G_M28801_IG13
        cmp      r15d, dword ptr [r14+0x10]
        jae      SHORT G_M28801_IG16
        mov      rdi, gword ptr [r14+0x08]
        cmp      r15d, dword ptr [rdi+0x08]
        jae      G_M28801_IG18
        cmp      gword ptr [rdi+8*r15+0x10], rsi
        jne      SHORT G_M28801_IG15
 						;; size=37 bbWeight=8 PerfScore 138.00
 G_M28801_IG13:
        mov      esi, dword ptr [r13+0x10]
        mov      rdi, gword ptr [r13+0x08]
        cmp      esi, dword ptr [rdi+0x08]
        jne      SHORT G_M28801_IG14
        inc      esi
        mov      rdi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.ArrayList:EnsureCapacity(int):this
        call     [rax]System.Collections.ArrayList:EnsureCapacity(int):this
 						;; size=30 bbWeight=8 PerfScore 94.00
 G_M28801_IG14:
        movsxd   rsi, dword ptr [r13+0x10]
        mov      rdi, gword ptr [r13+0x08]
        mov      rdx, r12
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
        call     [rax]CORINFO_HELP_ARRADDR_ST
        inc      dword ptr [r13+0x14]
        mov      edi, dword ptr [r13+0x10]
        inc      edi
        mov      dword ptr [r13+0x10], edi
 						;; size=37 bbWeight=8 PerfScore 126.00
 G_M28801_IG15:
        mov      rdi, gword ptr [rbp-0x30]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
        call     [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
        test     eax, eax
        jne      G_M28801_IG09
        jmp      SHORT G_M28801_IG19
 						;; size=27 bbWeight=16 PerfScore 120.00
 G_M28801_IG16:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M28801_IG17:
        mov      rsi, rax
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS
        call     [rax]CORINFO_HELP_CHKCASTCLASS
        int3     
 						;; size=16 bbWeight=0 PerfScore 0.00
 G_M28801_IG18:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M28801_IG19:
        mov      rsi, gword ptr [rbp-0x30]
        mov      rdi, 0xD1FFAB1E      ; System.IDisposable
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
        test     rax, rax
        je       SHORT G_M28801_IG21
 						;; size=31 bbWeight=4 PerfScore 23.00
 G_M28801_IG20:
        mov      rdi, rax
        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this
        call     [r11]System.IDisposable:Dispose():this
 						;; size=16 bbWeight=2 PerfScore 7.00
 G_M28801_IG21:
        xor      r12d, r12d
        cmp      dword ptr [r13+0x10], 0
        jle      SHORT G_M28801_IG23
 						;; size=10 bbWeight=4 PerfScore 17.00
 G_M28801_IG22:
        mov      rax, gword ptr [rbx+0x38]
        mov      gword ptr [rbp-0x38], rax
        mov      rdi, r13
        mov      esi, r12d
        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.ArrayList:get_Item(int):System.Object:this
        call     [rcx]System.Collections.ArrayList:get_Item(int):System.Object:this
        mov      rsi, rax
        mov      rdi, gword ptr [rbp-0x38]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x50]
        call     [rax+0x38]System.Collections.Hashtable:Remove(System.Object):this
        inc      r12d
        cmp      r12d, dword ptr [r13+0x10]
        jl       SHORT G_M28801_IG22
 						;; size=52 bbWeight=16 PerfScore 308.00
 G_M28801_IG23:
        inc      r15d
        cmp      r15d, dword ptr [r14+0x10]
        jl       G_M28801_IG04
 						;; size=13 bbWeight=4 PerfScore 17.00
 G_M28801_IG24:
        add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M28801_IG25:
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.Xml.Schema.XmlSchema]
        call     CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      G_M28801_IG03
 						;; size=20 bbWeight=0 PerfScore 0.00
 G_M28801_IG26:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M28801_IG27:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M28801_IG28:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
        lea      rbp, [rbp+0x40]
 						;; size=22 bbWeight=0 PerfScore 0.00
 G_M28801_IG29:
        mov      rsi, gword ptr [rbp-0x30]
        mov      rdi, 0xD1FFAB1E      ; System.IDisposable
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
        call     [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
        test     rax, rax
        je       SHORT G_M28801_IG30
        mov      rdi, rax
        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this
        call     [r11]System.IDisposable:Dispose():this
 						;; size=47 bbWeight=0 PerfScore 0.00
 G_M28801_IG30:
        nop      
 						;; size=1 bbWeight=0 PerfScore 0.00
 G_M28801_IG31:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 835, prolog size 29, PerfScore 1600.50, instruction count 206, allocated bytes for code 835 (MethodHash=d65d8f7e) for method System.Xml.Schema.XmlSchemaSet:RemoveSchemaFromCaches(System.Xml.Schema.XmlSchema):this (FullOpts)
+; Total bytes of code 839, prolog size 29, PerfScore 1588.50, instruction count 206, allocated bytes for code 839 (MethodHash=d65d8f7e) for method System.Xml.Schema.XmlSchemaSet:RemoveSchemaFromCaches(System.Xml.Schema.XmlSchema):this (FullOpts)
4 (2.42 % of base) - System.Xml.XmlTextReaderImpl:UriEqual(System.Uri,System.String,System.String,System.Xml.XmlResolver):ubyte
 ; Assembly listing for method System.Xml.XmlTextReaderImpl:UriEqual(System.Uri,System.String,System.String,System.Xml.XmlResolver):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T03] (  6,  4   )     ref  ->  r14         class-hnd <System.Uri>
+;  V00 arg0         [V00,T03] (  5,  3.50)     ref  ->  r14         class-hnd <System.Uri>
 ;  V01 arg1         [V01,T01] (  7,  4.50)     ref  ->  rsi         class-hnd single-def <System.String>
 ;  V02 arg2         [V02,T02] (  7,  4.50)     ref  ->  r15         class-hnd single-def <System.String>
 ;  V03 arg3         [V03,T00] (  7,  5   )     ref  ->  rbx         class-hnd single-def <System.Xml.XmlResolver>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Uri>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06,T04] (  4,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V07 tmp2         [V07,T05] (  2,  2   )   byref  ->  rdi         single-def "impAppendStmt"
 ;  V08 tmp3         [V08,T06] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V09 cse0         [V09,T07] (  3,  1.50)     int  ->  rdx         "CSE #01: moderate"
 ;
 ; Lcl frame size = 8
 
 G_M21065_IG01:
        push     rbp
        push     r15
        push     r14
        push     rbx
        push     rax
        lea      rbp, [rsp+0x20]
        mov      r14, rdi
        mov      r15, rdx
        mov      rbx, rcx
 						;; size=21 bbWeight=1 PerfScore 6.25
 G_M21065_IG02:
        test     rbx, rbx
        je       SHORT G_M21065_IG06
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M21065_IG03:
        test     r14, r14
        jne      SHORT G_M21065_IG04
        mov      rdi, rbx
        mov      rdx, rsi
        xor      rsi, rsi
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x30]System.Xml.XmlResolver:ResolveUri(System.Uri,System.String):System.Uri:this
        mov      r14, rax
 						;; size=26 bbWeight=0.50 PerfScore 4.62
 G_M21065_IG04:
        mov      rdi, rbx
        mov      rdx, r15
        xor      rsi, rsi
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x30]System.Xml.XmlResolver:ResolveUri(System.Uri,System.String):System.Uri:this
        mov      rsi, rax
        mov      rdi, r14
-       mov      rax, qword ptr [r14]
-       mov      rax, qword ptr [rax+0x40]
-						;; size=31 bbWeight=0.50 PerfScore 6.12
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       cmp      dword ptr [rdi], edi
+						;; size=36 bbWeight=0.50 PerfScore 5.75
 G_M21065_IG05:
        add      rsp, 8
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
-       tail.jmp [rax+0x10]System.Object:Equals(System.Object):ubyte:this
-						;; size=14 bbWeight=0.50 PerfScore 2.12
+       tail.jmp [rax]System.Uri:Equals(System.Uri):ubyte:this
+						;; size=13 bbWeight=0.50 PerfScore 2.12
 G_M21065_IG06:
        cmp      rsi, r15
        je       SHORT G_M21065_IG08
        test     rsi, rsi
        je       SHORT G_M21065_IG07
        test     r15, r15
        je       SHORT G_M21065_IG07
        mov      edx, dword ptr [rsi+0x08]
        cmp      edx, dword ptr [r15+0x08]
        jne      SHORT G_M21065_IG07
        lea      rdi, bword ptr [rsi+0x0C]
        lea      rsi, bword ptr [r15+0x0C]
        add      edx, edx
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        jmp      SHORT G_M21065_IG09
 						;; size=48 bbWeight=0.50 PerfScore 8.12
 G_M21065_IG07:
        xor      eax, eax
        jmp      SHORT G_M21065_IG09
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M21065_IG08:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M21065_IG09:
        add      rsp, 8
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=0.50 PerfScore 1.62
 
-; Total bytes of code 165, prolog size 12, PerfScore 31.38, instruction count 60, allocated bytes for code 165 (MethodHash=a2a4adb6) for method System.Xml.XmlTextReaderImpl:UriEqual(System.Uri,System.String,System.String,System.Xml.XmlResolver):ubyte (FullOpts)
+; Total bytes of code 169, prolog size 12, PerfScore 31.00, instruction count 60, allocated bytes for code 169 (MethodHash=a2a4adb6) for method System.Xml.XmlTextReaderImpl:UriEqual(System.Uri,System.String,System.String,System.Xml.XmlResolver):ubyte (FullOpts)
2 (0.35 % of base) - System.IO.Packaging.PackUriHelper:ResolvePartUri(System.Uri,System.Uri):System.Uri
 ; Assembly listing for method System.IO.Packaging.PackUriHelper:ResolvePartUri(System.Uri,System.Uri):System.Uri (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  8,  6.50)     ref  ->  rbx         class-hnd single-def <System.Uri>
+;  V00 arg0         [V00,T00] (  7,  6   )     ref  ->  rbx         class-hnd single-def <System.Uri>
 ;  V01 arg1         [V01,T01] (  6,  5   )     ref  ->  r15         class-hnd single-def <System.Uri>
 ;  V02 loc0         [V02,T08] (  3,  2   )     ref  ->  rbx         class-hnd <System.Uri>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T11] (  2,  2   )     ref  ->  r14         class-hnd exact single-def "impAppendStmt" <System.Uri>
 ;  V05 tmp2         [V05,T05] (  3,  3   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Uri>
 ;  V06 tmp3         [V06,T06] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Uri>
 ;  V07 tmp4         [V07,T02] (  3,  6   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Uri>
 ;  V08 tmp5         [V08,T07] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.Uri>
 ;  V09 tmp6         [V09,T14] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
 ;  V10 tmp7         [V10,T15] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
 ;  V11 tmp8         [V11,T09] (  3,  2   )     ref  ->  rax         class-hnd single-def "Inline stloc first use temp" <System.ArgumentException>
 ;  V12 tmp9         [V12,T10] (  3,  2   )     ref  ->  rax         class-hnd single-def "Inline stloc first use temp" <System.ArgumentException>
 ;  V13 tmp10        [V13,T13] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V14 tmp11        [V14,T04] (  3,  5   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Uri>
 ;  V15 tmp12        [V15,T03] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V16 tmp13        [V16    ] (  2,  2   )  struct ( 8) [rbp-0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.UriCreationOptions>
 ;  V17 tmp14        [V17    ] (  2,  2   )   ubyte  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed "field V16._disablePathAndQueryCanonicalization (fldOffset=0x0)" P-DEP
 ;  V18 tmp15        [V18,T12] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
 ;  V19 tmp16        [V19,T16] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V20 tmp17        [V20,T17] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M24892_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
        sub      rsp, 16
        lea      rbp, [rsp+0x30]
        xor      eax, eax
        mov      qword ptr [rbp-0x28], rax
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=29 bbWeight=1 PerfScore 7.50
 G_M24892_IG02:
        test     rbx, rbx
        je       G_M24892_IG11
        test     r15, r15
        je       G_M24892_IG10
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.PackUriHelper:GetExceptionIfAbsoluteUri(System.Uri):System.ArgumentException
        call     [rax]System.IO.Packaging.PackUriHelper:GetExceptionIfAbsoluteUri(System.Uri):System.ArgumentException
        test     rax, rax
        jne      G_M24892_IG09
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.PackUriHelper:GetExceptionIfAbsoluteUri(System.Uri):System.ArgumentException
        call     [rax]System.IO.Packaging.PackUriHelper:GetExceptionIfAbsoluteUri(System.Uri):System.ArgumentException
        test     rax, rax
        jne      G_M24892_IG08
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rdi]
        cmp      rbx, rsi
        je       G_M24892_IG04
 						;; size=88 bbWeight=1 PerfScore 15.50
 G_M24892_IG03:
        mov      rdi, rbx
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       call     [rax]System.Uri:Equals(System.Uri):ubyte:this
        test     eax, eax
        jne      SHORT G_M24892_IG04
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r14, gword ptr [rdi]
        mov      rdi, 0xD1FFAB1E      ; System.Uri
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.IO.Packaging.PackUriHelper:ValidatePartUri(System.Uri):System.IO.Packaging.PackUriHelper+ValidatedPartUri
        call     [rax]System.IO.Packaging.PackUriHelper:ValidatePartUri(System.Uri):System.IO.Packaging.PackUriHelper+ValidatedPartUri
        mov      rdx, rax
        mov      rsi, r14
        mov      rdi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.Uri:.ctor(System.Uri,System.Uri):this
        call     [rax]System.Uri:.ctor(System.Uri,System.Uri):this
        mov      rdi, 0xD1FFAB1E      ; System.Uri
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rdi, rbx
        mov      rsi, r13
        mov      rdx, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Uri:.ctor(System.Uri,System.Uri):this
        call     [rax]System.Uri:.ctor(System.Uri,System.Uri):this
        jmp      SHORT G_M24892_IG05
-						;; size=125 bbWeight=0.50 PerfScore 13.62
+						;; size=127 bbWeight=0.50 PerfScore 11.75
 G_M24892_IG04:
        mov      rdi, 0xD1FFAB1E      ; System.Uri
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rsi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rsi]
        mov      rdi, rbx
        mov      rdx, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Uri:.ctor(System.Uri,System.Uri):this
        call     [rax]System.Uri:.ctor(System.Uri,System.Uri):this
 						;; size=49 bbWeight=0.50 PerfScore 3.75
 G_M24892_IG05:
        mov      rdi, 0xD1FFAB1E      ; System.Uri
        call     CORINFO_HELP_NEWSFAST
        mov      r15, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Uri:get_AbsolutePath():System.String:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Uri:get_AbsolutePath():System.String:this
        test     rax, rax
        je       SHORT G_M24892_IG07
        mov      byte  ptr [rbp-0x28], 0
        lea      r8, [rbp-0x28]
        mov      rdi, r15
        mov      rsi, rax
        xor      edx, edx
        mov      ecx, 2
        mov      rax, 0xD1FFAB1E      ; code for System.Uri:CreateThis(System.String,ubyte,int,byref):this
        call     [rax]System.Uri:CreateThis(System.String,ubyte,int,byref):this
        mov      rax, r15
 						;; size=76 bbWeight=1 PerfScore 15.25
 G_M24892_IG06:
        add      rsp, 16
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=13 bbWeight=1 PerfScore 3.75
 G_M24892_IG07:
        mov      edi, 501
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
        call     [rax]System.ArgumentNullException:Throw(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
 G_M24892_IG08:
        mov      rdi, rax
        call     CORINFO_HELP_THROW
        int3     
 						;; size=9 bbWeight=0 PerfScore 0.00
 G_M24892_IG09:
        mov      rdi, rax
        call     CORINFO_HELP_THROW
        int3     
 						;; size=9 bbWeight=0 PerfScore 0.00
 G_M24892_IG10:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      edi, 0x178B
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this
        call     [rax]System.ArgumentNullException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=65 bbWeight=0 PerfScore 0.00
 G_M24892_IG11:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentNullException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      edi, 0x1C8E
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:.ctor(System.String):this
        call     [rax]System.ArgumentNullException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=65 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 564, prolog size 23, PerfScore 59.38, instruction count 130, allocated bytes for code 564 (MethodHash=257b9ec3) for method System.IO.Packaging.PackUriHelper:ResolvePartUri(System.Uri,System.Uri):System.Uri (FullOpts)
+; Total bytes of code 566, prolog size 23, PerfScore 57.50, instruction count 129, allocated bytes for code 566 (MethodHash=257b9ec3) for method System.IO.Packaging.PackUriHelper:ResolvePartUri(System.Uri,System.Uri):System.Uri (FullOpts)
2 (0.73 % of base) - System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey):ubyte:this
 ; Assembly listing for method System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  8,  5.50)   byref  ->  rbx         this single-def
 ;  V01 arg1         [V01,T09] (  6,  3.50)  struct (40) [rbp+0x10]  do-not-enreg[SF] single-def <System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T01] (  5,  5   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;  V05 tmp3         [V05,T10] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V06 tmp4         [V06,T02] (  5,  5   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V07 tmp5         [V07,T14] (  2,  2   )   byref  ->  rdi         single-def "impAppendStmt"
 ;  V08 tmp6         [V08,T11] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V09 tmp7         [V09,T03] (  5,  5   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Uri>
+;  V09 tmp7         [V09,T07] (  4,  4   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Uri>
 ;  V10 tmp8         [V10,T08] (  4,  4   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <System.Uri>
-;  V11 tmp9         [V11,T04] (  5,  5   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V11 tmp9         [V11,T03] (  5,  5   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V12 tmp10        [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;  V13 tmp11        [V13,T12] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V14 tmp12        [V14,T05] (  5,  5   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V14 tmp12        [V14,T04] (  5,  5   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V15 tmp13        [V15,T15] (  2,  2   )   byref  ->  rdi         single-def "impAppendStmt"
-;  V16 tmp14        [V16,T06] (  5,  5   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V16 tmp14        [V16,T05] (  5,  5   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V17 tmp15        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;  V18 tmp16        [V18,T13] (  4,  2   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V19 tmp17        [V19,T07] (  5,  5   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V19 tmp17        [V19,T06] (  5,  5   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V20 tmp18        [V20,T16] (  2,  2   )   byref  ->  rdi         single-def "impAppendStmt"
 ;  V21 cse0         [V21,T17] (  3,  1.50)     int  ->  rdx         "CSE #01: moderate"
 ;  V22 cse1         [V22,T18] (  3,  1.50)     int  ->  rdx         "CSE #02: moderate"
 ;  V23 cse2         [V23,T19] (  3,  1.50)     int  ->  rdx         "CSE #03: moderate"
 ;
 ; Lcl frame size = 8
 
 G_M11847_IG01:
        push     rbp
        push     rbx
        push     rax
        lea      rbp, [rsp+0x10]
        mov      rbx, rdi
 						;; size=11 bbWeight=1 PerfScore 3.75
 G_M11847_IG02:
        movzx    rdx, byte  ptr [rbx+0x24]
        cmp      dl, byte  ptr [rbp+0x34]
        jne      G_M11847_IG06
 						;; size=13 bbWeight=1 PerfScore 5.00
 G_M11847_IG03:
        mov      rdi, gword ptr [rbx]
        mov      rsi, gword ptr [rbp+0x10]
        cmp      rdi, rsi
        je       SHORT G_M11847_IG04
        test     rdi, rdi
        je       G_M11847_IG06
        test     rsi, rsi
        je       G_M11847_IG06
        mov      edx, dword ptr [rdi+0x08]
        cmp      edx, dword ptr [rsi+0x08]
        jne      G_M11847_IG06
        add      rdi, 12
        add      edx, edx
        add      rsi, 12
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        test     eax, eax
        je       SHORT G_M11847_IG06
 						;; size=68 bbWeight=0.50 PerfScore 9.00
 G_M11847_IG04:
        mov      edi, dword ptr [rbx+0x20]
        cmp      edi, dword ptr [rbp+0x30]
        jne      SHORT G_M11847_IG06
        mov      rdi, gword ptr [rbx+0x10]
        mov      rsi, gword ptr [rbp+0x20]
        cmp      rdi, rsi
        je       SHORT G_M11847_IG05
        test     rdi, rdi
        je       SHORT G_M11847_IG06
        test     rsi, rsi
        je       SHORT G_M11847_IG06
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       call     [rax]System.Uri:Equals(System.Uri):ubyte:this
        test     eax, eax
        je       SHORT G_M11847_IG06
-						;; size=45 bbWeight=0.50 PerfScore 10.00
+						;; size=47 bbWeight=0.50 PerfScore 8.12
 G_M11847_IG05:
        mov      rdi, gword ptr [rbx+0x08]
        mov      rsi, gword ptr [rbp+0x18]
        cmp      rdi, rsi
        je       SHORT G_M11847_IG08
        test     rdi, rdi
        je       SHORT G_M11847_IG06
        test     rsi, rsi
        je       SHORT G_M11847_IG06
        mov      edx, dword ptr [rdi+0x08]
        cmp      edx, dword ptr [rsi+0x08]
        jne      SHORT G_M11847_IG06
        add      rdi, 12
        add      edx, edx
        add      rsi, 12
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        test     eax, eax
        jne      SHORT G_M11847_IG08
 						;; size=57 bbWeight=0.50 PerfScore 9.00
 G_M11847_IG06:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M11847_IG07:
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
 						;; size=7 bbWeight=0.50 PerfScore 1.12
 G_M11847_IG08:
        mov      rdi, gword ptr [rbx+0x18]
        mov      rsi, gword ptr [rbp+0x28]
        cmp      rdi, rsi
        je       SHORT G_M11847_IG10
        test     rdi, rdi
        je       SHORT G_M11847_IG09
        test     rsi, rsi
        je       SHORT G_M11847_IG09
        mov      edx, dword ptr [rdi+0x08]
        cmp      edx, dword ptr [rsi+0x08]
        jne      SHORT G_M11847_IG09
        add      rdi, 12
        add      edx, edx
        add      rsi, 12
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        jmp      SHORT G_M11847_IG11
 						;; size=55 bbWeight=0.50 PerfScore 9.38
 G_M11847_IG09:
        xor      eax, eax
        jmp      SHORT G_M11847_IG11
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M11847_IG10:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M11847_IG11:
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
 						;; size=7 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 274, prolog size 8, PerfScore 49.75, instruction count 89, allocated bytes for code 274 (MethodHash=fa6bd1b8) for method System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey):ubyte:this (FullOpts)
+; Total bytes of code 276, prolog size 8, PerfScore 47.88, instruction count 88, allocated bytes for code 276 (MethodHash=fa6bd1b8) for method System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey):ubyte:this (FullOpts)
2 (0.58 % of base) - System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Object):ubyte:this
 ; Assembly listing for method System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Object):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 12 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  8,  5   )   byref  ->  rbx         this single-def
 ;  V01 arg1         [V01,T00] ( 10,  6.25)     ref  ->  rsi         class-hnd single-def <System.Object>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (40) zero-ref    do-not-enreg[SF] <System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04,T17] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling qmarkNull" <System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey>
 ;  V05 tmp2         [V05,T18] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
 ;  V06 tmp3         [V06,T02] (  5,  5   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;  V08 tmp5         [V08,T10] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V09 tmp6         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V10 tmp7         [V10,T14] (  2,  2   )   byref  ->  rdi         single-def "impAppendStmt"
 ;  V11 tmp8         [V11,T11] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V12 tmp9         [V12,T03] (  5,  5   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Uri>
+;  V12 tmp9         [V12,T05] (  4,  4   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Uri>
 ;* V13 tmp10        [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Uri>
-;  V14 tmp11        [V14,T04] (  5,  5   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V14 tmp11        [V14,T03] (  5,  5   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;  V16 tmp13        [V16,T12] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V17 tmp14        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V18 tmp15        [V18,T15] (  2,  2   )   byref  ->  rdi         single-def "impAppendStmt"
-;  V19 tmp16        [V19,T05] (  5,  5   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V19 tmp16        [V19,T04] (  5,  5   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V20 tmp17        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;  V21 tmp18        [V21,T13] (  4,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V22 tmp19        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inlining Arg" <System.String>
 ;  V23 tmp20        [V23,T16] (  2,  2   )   byref  ->  rdi         single-def "impAppendStmt"
 ;  V24 tmp21        [V24,T06] (  5,  2.50)     ref  ->  rdx         single-def "V02.[000..008)"
 ;  V25 tmp22        [V25,T07] (  5,  2.50)     ref  ->  r15         single-def "V02.[008..016)"
 ;  V26 tmp23        [V26,T09] (  4,  2   )     ref  ->  r14         single-def "V02.[016..024)"
 ;  V27 tmp24        [V27,T08] (  5,  2.50)     ref  ->  r13         single-def "V02.[024..032)"
 ;  V28 tmp25        [V28,T22] (  2,  1   )     int  ->  r12         "V02.[032..036)"
 ;  V29 tmp26        [V29,T23] (  2,  1   )   ubyte  ->  rsi         "V02.[036..037)"
 ;  V30 cse0         [V30,T24] (  2,  0.50)    long  ->  rdi         "CSE #02: moderate"
 ;  V31 cse1         [V31,T25] (  2,  0.50)    long  ->  rdx         "CSE #01: moderate"
 ;  V32 cse2         [V32,T19] (  3,  1.50)     int  ->  rax         "CSE #03: moderate"
 ;  V33 cse3         [V33,T20] (  3,  1.50)     int  ->  rdx         "CSE #04: moderate"
 ;  V34 cse4         [V34,T21] (  3,  1.50)     int  ->  rdx         "CSE #05: moderate"
 ;
 ; Lcl frame size = 8
 
 G_M50630_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        lea      rbp, [rsp+0x30]
        mov      rbx, rdi
 						;; size=19 bbWeight=1 PerfScore 7.75
 G_M50630_IG02:
        test     rsi, rsi
        je       G_M50630_IG12
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M50630_IG03:
        mov      rdx, qword ptr [rsi]
        mov      rdi, 0xD1FFAB1E      ; System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey
        cmp      rdx, rdi
        jne      G_M50630_IG12
 						;; size=22 bbWeight=0.25 PerfScore 0.88
 G_M50630_IG04:
        mov      rdx, gword ptr [rsi+0x08]
        mov      r15, gword ptr [rsi+0x10]
        mov      r14, gword ptr [rsi+0x18]
        mov      r13, gword ptr [rsi+0x20]
        mov      r12d, dword ptr [rsi+0x28]
        movzx    rsi, byte  ptr [rsi+0x2C]
        cmp      byte  ptr [rbx+0x24], sil
        jne      G_M50630_IG07
        mov      rdi, gword ptr [rbx]
        cmp      rdi, rdx
        je       SHORT G_M50630_IG05
        test     rdi, rdi
        je       G_M50630_IG07
        test     rdx, rdx
        je       G_M50630_IG07
        mov      eax, dword ptr [rdi+0x08]
        cmp      eax, dword ptr [rdx+0x08]
        jne      G_M50630_IG07
        add      rdi, 12
        lea      rsi, bword ptr [rdx+0x0C]
        add      eax, eax
        mov      edx, eax
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        test     eax, eax
        je       SHORT G_M50630_IG07
 						;; size=101 bbWeight=0.50 PerfScore 16.75
 G_M50630_IG05:
        cmp      dword ptr [rbx+0x20], r12d
        jne      SHORT G_M50630_IG07
        mov      rdi, gword ptr [rbx+0x10]
        cmp      rdi, r14
        je       SHORT G_M50630_IG06
        test     rdi, rdi
        je       SHORT G_M50630_IG07
        test     r14, r14
        je       SHORT G_M50630_IG07
        mov      rsi, r14
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       call     [rax]System.Uri:Equals(System.Uri):ubyte:this
        test     eax, eax
        je       SHORT G_M50630_IG07
-						;; size=42 bbWeight=0.50 PerfScore 9.12
+						;; size=44 bbWeight=0.50 PerfScore 7.25
 G_M50630_IG06:
        mov      rdi, gword ptr [rbx+0x08]
        cmp      rdi, r15
        je       SHORT G_M50630_IG08
        test     rdi, rdi
        je       SHORT G_M50630_IG07
        test     r15, r15
        je       SHORT G_M50630_IG07
        mov      edx, dword ptr [rdi+0x08]
        cmp      edx, dword ptr [r15+0x08]
        jne      SHORT G_M50630_IG07
        add      rdi, 12
        lea      rsi, bword ptr [r15+0x0C]
        add      edx, edx
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        test     eax, eax
        jne      SHORT G_M50630_IG08
 						;; size=54 bbWeight=0.50 PerfScore 8.62
 G_M50630_IG07:
        xor      eax, eax
        jmp      SHORT G_M50630_IG11
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M50630_IG08:
        mov      rdi, gword ptr [rbx+0x18]
        cmp      rdi, r13
        je       SHORT G_M50630_IG10
        test     rdi, rdi
        je       SHORT G_M50630_IG09
        test     r13, r13
        je       SHORT G_M50630_IG09
        mov      edx, dword ptr [rdi+0x08]
        cmp      edx, dword ptr [r13+0x08]
        jne      SHORT G_M50630_IG09
        add      rdi, 12
        lea      rsi, bword ptr [r13+0x0C]
        add      edx, edx
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        call     [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
        jmp      SHORT G_M50630_IG11
 						;; size=52 bbWeight=0.50 PerfScore 9.00
 G_M50630_IG09:
        xor      eax, eax
        jmp      SHORT G_M50630_IG11
 						;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M50630_IG10:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M50630_IG11:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M50630_IG12:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M50630_IG13:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 
-; Total bytes of code 344, prolog size 16, PerfScore 60.12, instruction count 111, allocated bytes for code 344 (MethodHash=aba03a39) for method System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Object):ubyte:this (FullOpts)
+; Total bytes of code 346, prolog size 16, PerfScore 58.25, instruction count 110, allocated bytes for code 346 (MethodHash=aba03a39) for method System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Object):ubyte:this (FullOpts)
2 (1.56 % of base) - System.ServiceModel.Syndication.FeedUtils:GetBaseUriToWrite(System.Uri,System.Uri):System.Uri
 ; Assembly listing for method System.ServiceModel.Syndication.FeedUtils:GetBaseUriToWrite(System.Uri,System.Uri):System.Uri (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] ( 10,  6.50)     ref  ->  rbx         class-hnd single-def <System.Uri>
-;  V01 arg1         [V01,T01] ( 10,  6.50)     ref  ->  r15         class-hnd single-def <System.Uri>
+;  V00 arg0         [V00,T01] (  9,  6   )     ref  ->  r15         class-hnd single-def <System.Uri>
+;  V01 arg1         [V01,T00] ( 10,  6.50)     ref  ->  rbx         class-hnd single-def <System.Uri>
 ;  V02 loc0         [V02,T02] (  4,  2.50)     ref  ->  rax         class-hnd <System.Uri>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T03] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V05 tmp2         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V06 tmp3         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;
 ; Lcl frame size = 0
 
 G_M1506_IG01:
        push     rbp
        push     r15
        push     rbx
        lea      rbp, [rsp+0x10]
-       mov      rbx, rdi
-       mov      r15, rsi
+       mov      r15, rdi
+       mov      rbx, rsi
 						;; size=15 bbWeight=1 PerfScore 4.00
 G_M1506_IG02:
-       cmp      rbx, r15
+       cmp      r15, rbx
        je       SHORT G_M1506_IG06
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M1506_IG03:
-       test     rbx, rbx
-       je       SHORT G_M1506_IG04
        test     r15, r15
        je       SHORT G_M1506_IG04
-       mov      rdi, rbx
-       mov      rsi, r15
-       mov      rax, qword ptr [rbx]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       test     rbx, rbx
+       je       SHORT G_M1506_IG04
+       mov      rdi, r15
+       mov      rsi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       call     [rax]System.Uri:Equals(System.Uri):ubyte:this
        test     eax, eax
        jne      SHORT G_M1506_IG06
-						;; size=30 bbWeight=0.50 PerfScore 5.62
+						;; size=32 bbWeight=0.50 PerfScore 3.75
 G_M1506_IG04:
-       test     r15, r15
-       je       SHORT G_M1506_IG06
        test     rbx, rbx
-       je       SHORT G_M1506_IG05
-       cmp      gword ptr [rbx+0x18], 0
+       je       SHORT G_M1506_IG06
+       test     r15, r15
        je       SHORT G_M1506_IG05
        cmp      gword ptr [r15+0x18], 0
        je       SHORT G_M1506_IG05
-       mov      rdi, rbx
-       mov      rsi, r15
+       cmp      gword ptr [rbx+0x18], 0
+       je       SHORT G_M1506_IG05
+       mov      rdi, r15
+       mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Uri:IsBaseOf(System.Uri):ubyte:this
        call     [rax]System.Uri:IsBaseOf(System.Uri):ubyte:this
        test     eax, eax
        je       SHORT G_M1506_IG05
-       mov      rdi, rbx
-       mov      rsi, r15
+       mov      rdi, r15
+       mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Uri:MakeRelativeUri(System.Uri):System.Uri:this
        call     [rax]System.Uri:MakeRelativeUri(System.Uri):System.Uri:this
        jmp      SHORT G_M1506_IG07
 						;; size=66 bbWeight=0.50 PerfScore 10.62
 G_M1506_IG05:
-       mov      rax, r15
+       mov      rax, rbx
        jmp      SHORT G_M1506_IG07
 						;; size=5 bbWeight=0.50 PerfScore 1.12
 G_M1506_IG06:
        xor      rax, rax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M1506_IG07:
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=5 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 128, prolog size 9, PerfScore 25.25, instruction count 45, allocated bytes for code 128 (MethodHash=c307fa1d) for method System.ServiceModel.Syndication.FeedUtils:GetBaseUriToWrite(System.Uri,System.Uri):System.Uri (FullOpts)
+; Total bytes of code 130, prolog size 9, PerfScore 23.38, instruction count 44, allocated bytes for code 130 (MethodHash=c307fa1d) for method System.ServiceModel.Syndication.FeedUtils:GetBaseUriToWrite(System.Uri,System.Uri):System.Uri (FullOpts)
2 (4.76 % of base) - System.Uri:op_Equality(System.Uri,System.Uri):ubyte
 ; Assembly listing for method System.Uri:op_Equality(System.Uri,System.Uri):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4.50)     ref  ->  rdi         class-hnd single-def <System.Uri>
+;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  rdi         class-hnd single-def <System.Uri>
 ;  V01 arg1         [V01,T01] (  5,  4   )     ref  ->  rsi         class-hnd single-def <System.Uri>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 0
 
 G_M40005_IG01:
        push     rbp
        mov      rbp, rsp
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M40005_IG02:
        cmp      rdi, rsi
        je       SHORT G_M40005_IG07
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M40005_IG03:
        test     rdi, rdi
        je       SHORT G_M40005_IG05
        test     rsi, rsi
        je       SHORT G_M40005_IG05
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-						;; size=17 bbWeight=0.50 PerfScore 3.25
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+						;; size=20 bbWeight=0.50 PerfScore 1.38
 G_M40005_IG04:
        pop      rbp
-       tail.jmp [rax+0x10]System.Object:Equals(System.Object):ubyte:this
-						;; size=5 bbWeight=0.50 PerfScore 1.25
+       tail.jmp [rax]System.Uri:Equals(System.Uri):ubyte:this
+						;; size=4 bbWeight=0.50 PerfScore 1.25
 G_M40005_IG05:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M40005_IG06:
        pop      rbp
        ret      
 						;; size=2 bbWeight=0.50 PerfScore 0.75
 G_M40005_IG07:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M40005_IG08:
        pop      rbp
        ret      
 						;; size=2 bbWeight=0.50 PerfScore 0.75
 
-; Total bytes of code 42, prolog size 4, PerfScore 8.75, instruction count 18, allocated bytes for code 42 (MethodHash=f9b863ba) for method System.Uri:op_Equality(System.Uri,System.Uri):ubyte (FullOpts)
+; Total bytes of code 44, prolog size 4, PerfScore 6.88, instruction count 17, allocated bytes for code 44 (MethodHash=f9b863ba) for method System.Uri:op_Equality(System.Uri,System.Uri):ubyte (FullOpts)
2 (4.00 % of base) - System.Uri:op_Inequality(System.Uri,System.Uri):ubyte
 ; Assembly listing for method System.Uri:op_Inequality(System.Uri,System.Uri):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  6,  4.50)     ref  ->  rdi         class-hnd single-def <System.Uri>
+;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  rdi         class-hnd single-def <System.Uri>
 ;  V01 arg1         [V01,T01] (  5,  4   )     ref  ->  rsi         class-hnd single-def <System.Uri>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;
 ; Lcl frame size = 0
 
 G_M37314_IG01:
        push     rbp
        mov      rbp, rsp
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M37314_IG02:
        cmp      rdi, rsi
        je       SHORT G_M37314_IG07
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M37314_IG03:
        test     rdi, rdi
        je       SHORT G_M37314_IG05
        test     rsi, rsi
        je       SHORT G_M37314_IG05
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       mov      rax, 0xD1FFAB1E      ; code for System.Uri:Equals(System.Uri):ubyte:this
+       call     [rax]System.Uri:Equals(System.Uri):ubyte:this
        test     eax, eax
        sete     al
        movzx    rax, al
-						;; size=28 bbWeight=0.50 PerfScore 5.50
+						;; size=30 bbWeight=0.50 PerfScore 3.62
 G_M37314_IG04:
        pop      rbp
        ret      
 						;; size=2 bbWeight=0.50 PerfScore 0.75
 G_M37314_IG05:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M37314_IG06:
        pop      rbp
        ret      
 						;; size=2 bbWeight=0.50 PerfScore 0.75
 G_M37314_IG07:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M37314_IG08:
        pop      rbp
        ret      
 						;; size=2 bbWeight=0.50 PerfScore 0.75
 
-; Total bytes of code 50, prolog size 4, PerfScore 10.50, instruction count 22, allocated bytes for code 50 (MethodHash=637e6e3d) for method System.Uri:op_Inequality(System.Uri,System.Uri):ubyte (FullOpts)
+; Total bytes of code 52, prolog size 4, PerfScore 8.62, instruction count 21, allocated bytes for code 52 (MethodHash=637e6e3d) for method System.Uri:op_Inequality(System.Uri,System.Uri):ubyte (FullOpts)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment