Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created March 1, 2025 23:00

Top method regressions

191 (32.21 % of base) - System.Net.IPNetwork:Contains(System.Net.IPAddress):ubyte:this
 ; Assembly listing for method System.Net.IPNetwork:Contains(System.Net.IPAddress):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 23 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  9,  6   )   byref  ->  r15         this single-def
 ;  V01 arg1         [V01,T00] (  9,  6.50)     ref  ->  rbx         class-hnd single-def <System.Net.IPAddress>
 ;  V02 loc0         [V02,T17] (  2,  1   )     int  ->  r14        
 ;  V03 loc1         [V03    ] (  4,  2   )  struct (16) [rbp-0x28]  do-not-enreg[XS] addr-exposed ld-addr-op <System.UInt128>
 ;  V04 loc2         [V04    ] (  4,  2   )  struct (16) [rbp-0x38]  do-not-enreg[XS] addr-exposed ld-addr-op <System.UInt128>
 ;  V05 loc3         [V05    ] (  2,  1   )     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V06 loc4         [V06    ] (  0,  0   )  struct (16) zero-ref    <System.UInt128>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V08 tmp1         [V08,T05] (  2,  4   )     int  ->  rdi         "impAppendStmt"
+;  V08 tmp1         [V08,T04] (  2,  4   )     int  ->  r14         "impAppendStmt"
 ;* V09 tmp2         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V10 tmp3         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[System.UInt128]>
 ;* V11 tmp4         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <System.Net.IPAddress>
 ;* V12 tmp5         [V12    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V13 tmp6         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[System.UInt128]>
 ;* V14 tmp7         [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V15 tmp8         [V15    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.UInt128>
 ;* V16 tmp9         [V16    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.UInt128>
 ;* V17 tmp10        [V17    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.UInt128>
-;  V18 tmp11        [V18,T04] (  2,  4   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V19 tmp12        [V19,T03] (  5,  5   )     ref  ->  rax        
-;  V20 tmp13        [V20,T14] (  2,  2   )     int  ->  rcx         "Inline return value spill temp"
-;  V21 tmp14        [V21,T11] (  2,  2   )     ref  ->  rdi         class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V22 tmp15        [V22,T06] (  5,  2.50)     ref  ->  rdi        
+;  V18 tmp11        [V18,T03] (  2,  4   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Net.IPAddress>
+;  V19 tmp12        [V19,T05] (  4,  3.50)     ref  ->  rax        
+;  V20 tmp13        [V20,T14] (  2,  2   )     int  ->  rdi         "Inline return value spill temp"
+;  V21 tmp14        [V21,T11] (  2,  2   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Net.IPAddress>
+;  V22 tmp15        [V22,T06] (  4,  2   )     ref  ->  rax        
 ;* V23 tmp16        [V23    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V24 tmp17        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V25 tmp18        [V25,T12] (  2,  2   )     ref  ->  rdi         class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V26 tmp19        [V26,T07] (  5,  2.50)     ref  ->  rdi        
+;  V26 tmp19        [V26,T07] (  4,  2   )     ref  ->  rdi        
 ;  V27 tmp20        [V27,T13] (  2,  2   )     ref  ->  rdi         class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V28 tmp21        [V28,T08] (  5,  2.50)     ref  ->  rdi        
+;  V28 tmp21        [V28,T08] (  4,  2   )     ref  ->  rdi        
 ;* V29 tmp22        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.UInt128]>
 ;* V30 tmp23        [V30    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V31 tmp24        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.UInt128]>
 ;* V32 tmp25        [V32    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V33 tmp26        [V33    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp27        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.UInt128]>
 ;* V35 tmp28        [V35    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V36 tmp29        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.UInt128]>
 ;* V37 tmp30        [V37    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V38 tmp31        [V38    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V39 tmp32        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.UInt128>
 ;* V40 tmp33        [V40    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.UInt128>
 ;  V41 tmp34        [V41,T02] (  6,  6   )     int  ->  rcx         "Inlining Arg"
 ;* V42 tmp35        [V42    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V43 tmp36        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.UInt128>
 ;* V44 tmp37        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.UInt128>
 ;* V45 tmp38        [V45    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp39        [V46    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp40        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.UInt128>
 ;  V48 tmp41        [V48,T15] (  2,  2   )    long  ->  rax         "impAppendStmt"
 ;* V49 tmp42        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.UInt128>
 ;* V50 tmp43        [V50    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V51 tmp44        [V51    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.UInt128>
 ;* V52 tmp45        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.UInt128>
 ;* V53 tmp46        [V53    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V54 tmp47        [V54    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V55 tmp48        [V55,T16] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
 ;  V56 tmp49        [V56    ] (  3,  1.50)    long  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed "field V03._lower (fldOffset=0x0)" P-DEP
 ;  V57 tmp50        [V57    ] (  3,  1.50)    long  ->  [rbp-0x20]  do-not-enreg[X] addr-exposed "field V03._upper (fldOffset=0x8)" P-DEP
 ;  V58 tmp51        [V58    ] (  3,  1.50)    long  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed "field V04._lower (fldOffset=0x0)" P-DEP
 ;  V59 tmp52        [V59    ] (  3,  1.50)    long  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V04._upper (fldOffset=0x8)" P-DEP
 ;* V60 tmp53        [V60    ] (  0,  0   )    long  ->  zero-ref    "field V06._lower (fldOffset=0x0)" P-INDEP
 ;* V61 tmp54        [V61    ] (  0,  0   )    long  ->  zero-ref    "field V06._upper (fldOffset=0x8)" P-INDEP
 ;* V62 tmp55        [V62,T28] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V63 tmp56        [V63    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V64 tmp57        [V64    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
 ;* V65 tmp58        [V65    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V66 tmp59        [V66,T29] (  0,  0   )   byref  ->  zero-ref    single-def "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V67 tmp60        [V67    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V68 tmp61        [V68    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V69 tmp62        [V69    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V70 tmp63        [V70    ] (  0,  0   )    long  ->  zero-ref    "field V15._lower (fldOffset=0x0)" P-INDEP
 ;* V71 tmp64        [V71    ] (  0,  0   )    long  ->  zero-ref    "field V15._upper (fldOffset=0x8)" P-INDEP
 ;  V72 tmp65        [V72,T18] (  2,  1   )    long  ->  rcx         "field V16._lower (fldOffset=0x0)" P-INDEP
 ;  V73 tmp66        [V73,T19] (  2,  1   )    long  ->  rdx         "field V16._upper (fldOffset=0x8)" P-INDEP
 ;* V74 tmp67        [V74    ] (  0,  0   )    long  ->  zero-ref    "field V17._lower (fldOffset=0x0)" P-INDEP
 ;* V75 tmp68        [V75    ] (  0,  0   )    long  ->  zero-ref    "field V17._upper (fldOffset=0x8)" P-INDEP
 ;* V76 tmp69        [V76    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V29._reference (fldOffset=0x0)" P-INDEP
 ;* V77 tmp70        [V77    ] (  0,  0   )     int  ->  zero-ref    "field V29._length (fldOffset=0x8)" P-INDEP
 ;* V78 tmp71        [V78,T30] (  0,  0   )   byref  ->  zero-ref    single-def "field V30._reference (fldOffset=0x0)" P-INDEP
 ;* V79 tmp72        [V79,T32] (  0,  0   )     int  ->  zero-ref    "field V30._length (fldOffset=0x8)" P-INDEP
 ;* V80 tmp73        [V80    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V81 tmp74        [V81    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V82 tmp75        [V82    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V83 tmp76        [V83    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
 ;* V84 tmp77        [V84,T31] (  0,  0   )   byref  ->  zero-ref    single-def "field V35._reference (fldOffset=0x0)" P-INDEP
 ;* V85 tmp78        [V85,T33] (  0,  0   )     int  ->  zero-ref    "field V35._length (fldOffset=0x8)" P-INDEP
 ;* V86 tmp79        [V86    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V36._reference (fldOffset=0x0)" P-INDEP
 ;* V87 tmp80        [V87    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x8)" P-INDEP
 ;* V88 tmp81        [V88,T34] (  0,  0   )    long  ->  zero-ref    "field V39._lower (fldOffset=0x0)" P-INDEP
 ;* V89 tmp82        [V89,T35] (  0,  0   )    long  ->  zero-ref    "field V39._upper (fldOffset=0x8)" P-INDEP
 ;  V90 tmp83        [V90,T09] (  4,  2   )    long  ->  rax         "field V40._lower (fldOffset=0x0)" P-INDEP
 ;  V91 tmp84        [V91,T10] (  4,  2   )    long  ->  rdi         "field V40._upper (fldOffset=0x8)" P-INDEP
 ;  V92 tmp85        [V92,T20] (  2,  1   )    long  ->  rax         "field V43._lower (fldOffset=0x0)" P-INDEP
 ;  V93 tmp86        [V93,T21] (  2,  1   )    long  ->  rdi         "field V43._upper (fldOffset=0x8)" P-INDEP
 ;* V94 tmp87        [V94,T36] (  0,  0   )    long  ->  zero-ref    "field V44._lower (fldOffset=0x0)" P-INDEP
 ;  V95 tmp88        [V95,T22] (  2,  1   )    long  ->  rdi         "field V44._upper (fldOffset=0x8)" P-INDEP
 ;* V96 tmp89        [V96    ] (  0,  0   )    long  ->  zero-ref    "field V47._lower (fldOffset=0x0)" P-INDEP
 ;* V97 tmp90        [V97    ] (  0,  0   )    long  ->  zero-ref    "field V47._upper (fldOffset=0x8)" P-INDEP
 ;  V98 tmp91        [V98,T23] (  2,  1   )    long  ->  rdi         "field V49._lower (fldOffset=0x0)" P-INDEP
 ;* V99 tmp92        [V99    ] (  0,  0   )    long  ->  zero-ref    "field V49._upper (fldOffset=0x8)" P-INDEP
 ;  V100 tmp93       [V100,T24] (  2,  1   )    long  ->  rsi         "field V51._lower (fldOffset=0x0)" P-INDEP
 ;  V101 tmp94       [V101,T25] (  2,  1   )    long  ->   r8         "field V51._upper (fldOffset=0x8)" P-INDEP
 ;  V102 tmp95       [V102,T26] (  2,  1   )    long  ->  rdi         "field V52._lower (fldOffset=0x0)" P-INDEP
 ;  V103 tmp96       [V103,T27] (  2,  1   )    long  ->  rax         "field V52._upper (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 40
 
 G_M43571_IG01:
        push     rbp
        push     r15
        push     r14
        push     rbx
        sub      rsp, 40
        lea      rbp, [rsp+0x40]
        mov      r15, rdi
        mov      rbx, rsi
 						;; size=21 bbWeight=1 PerfScore 5.25
 G_M43571_IG02:
        test     rbx, rbx
-       je       G_M43571_IG16
-       mov      edi, 2
-       mov      eax, 23
+       je       G_M43571_IG25
+       mov      r14d, 2
+       mov      edi, 23
        cmp      gword ptr [rbx+0x08], 0
-       cmovne   edi, eax
+       cmovne   r14d, edi
        mov      rax, gword ptr [r15]
-       mov      rcx, 0xD1FFAB1E      ; const ptr
        test     rax, rax
-       cmove    rax, gword ptr [rcx]
-       mov      ecx, 2
-       mov      edx, 23
-       cmp      gword ptr [rax+0x08], 0
-       cmovne   ecx, edx
-       cmp      edi, ecx
-       je       SHORT G_M43571_IG04
-						;; size=69 bbWeight=1 PerfScore 15.50
+       jne      SHORT G_M43571_IG05
+						;; size=37 bbWeight=1 PerfScore 8.25
 G_M43571_IG03:
-       mov      rdi, gword ptr [r15]
-       mov      rax, 0xD1FFAB1E      ; const ptr
-       test     rdi, rdi
-       cmove    rdi, gword ptr [rax]
-       cmp      gword ptr [rdi+0x08], 0
-       jne      G_M43571_IG14
-       mov      rdi, rbx
-       mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:get_IsIPv4MappedToIPv6():ubyte:this
-       call     [rax]System.Net.IPAddress:get_IsIPv4MappedToIPv6():ubyte:this
-       test     eax, eax
-       je       G_M43571_IG14
-						;; size=54 bbWeight=0.50 PerfScore 7.12
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M43571_IG26
+						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M43571_IG04:
-       cmp      dword ptr [r15+0x08], 0
-       je       G_M43571_IG12
-       cmp      gword ptr [rbx+0x08], 0
-       je       G_M43571_IG10
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rax, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M43571_IG05:
+       mov      edi, 2
+       mov      ecx, 23
+       cmp      gword ptr [rax+0x08], 0
+       cmovne   edi, ecx
+       cmp      r14d, edi
+       je       SHORT G_M43571_IG09
+						;; size=23 bbWeight=1 PerfScore 5.00
+G_M43571_IG06:
+       mov      rax, gword ptr [r15]
+       test     rax, rax
+       jne      SHORT G_M43571_IG08
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M43571_IG27
+						;; size=27 bbWeight=0.50 PerfScore 3.75
+G_M43571_IG07:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rax, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M43571_IG08:
+       cmp      gword ptr [rax+0x08], 0
+       jne      G_M43571_IG23
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:get_IsIPv4MappedToIPv6():ubyte:this
        call     [rax]System.Net.IPAddress:get_IsIPv4MappedToIPv6():ubyte:this
        test     eax, eax
-       jne      G_M43571_IG10
+       je       G_M43571_IG23
+						;; size=34 bbWeight=0.50 PerfScore 4.38
+G_M43571_IG09:
+       cmp      dword ptr [r15+0x08], 0
+       je       G_M43571_IG21
+       cmp      gword ptr [rbx+0x08], 0
+       je       G_M43571_IG17
+       mov      rdi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:get_IsIPv4MappedToIPv6():ubyte:this
+       call     [rax]System.Net.IPAddress:get_IsIPv4MappedToIPv6():ubyte:this
+       test     eax, eax
+       jne      G_M43571_IG17
        vxorps   xmm0, xmm0, xmm0
        vmovups  xmmword ptr [rbp-0x28], xmm0
        vmovups  xmmword ptr [rbp-0x38], xmm0
        mov      rdi, gword ptr [r15]
-       mov      rsi, 0xD1FFAB1E      ; const ptr
        test     rdi, rdi
-       cmove    rdi, gword ptr [rsi]
+       jne      SHORT G_M43571_IG11
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M43571_IG29
+						;; size=86 bbWeight=0.50 PerfScore 11.29
+G_M43571_IG10:
+       mov      rsi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rdi, gword ptr [rsi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M43571_IG11:
        lea      rsi, bword ptr [rbp-0x28]
        mov      edx, 16
        lea      rcx, [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this
        lea      rsi, bword ptr [rbp-0x38]
        mov      edx, 16
        lea      rcx, [rbp-0x40]
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this
        call     [rax]System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this
        mov      ecx, dword ptr [r15+0x08]
        neg      ecx
        add      ecx, 128
        and      ecx, 127
        test     cl, 64
-       jne      SHORT G_M43571_IG06
+       jne      SHORT G_M43571_IG13
        test     ecx, ecx
-       jne      SHORT G_M43571_IG05
+       jne      SHORT G_M43571_IG12
        mov      rax, -1
        mov      rdi, -1
-       jmp      SHORT G_M43571_IG07
-						;; size=180 bbWeight=0.50 PerfScore 20.29
-G_M43571_IG05:
+       jmp      SHORT G_M43571_IG14
+						;; size=101 bbWeight=0.50 PerfScore 10.00
+G_M43571_IG12:
        mov      rax, -1
        shlx     rax, rax, rcx
        mov      rdi, -1
        rol      rdi, cl
-       jmp      SHORT G_M43571_IG07
+       jmp      SHORT G_M43571_IG14
 						;; size=30 bbWeight=0.50 PerfScore 2.50
-G_M43571_IG06:
+G_M43571_IG13:
        mov      rax, -1
        shlx     rdi, rax, rcx
        xor      eax, eax
 						;; size=17 bbWeight=0.50 PerfScore 0.50
-G_M43571_IG07:
+G_M43571_IG14:
        bswap    rax
        bswap    rdi
        mov      rcx, qword ptr [rbp-0x28]
        mov      rdx, qword ptr [rbp-0x20]
        mov      rsi, qword ptr [rbp-0x38]
        mov      r8, qword ptr [rbp-0x30]
        and      rdi, rsi
        and      rax, r8
        cmp      rcx, rdi
-       je       SHORT G_M43571_IG08
+       je       SHORT G_M43571_IG15
        xor      eax, eax
-       jmp      SHORT G_M43571_IG09
+       jmp      SHORT G_M43571_IG16
 						;; size=37 bbWeight=0.50 PerfScore 5.00
-G_M43571_IG08:
+G_M43571_IG15:
        cmp      rdx, rax
        sete     al
        movzx    rax, al
 						;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M43571_IG09:
+G_M43571_IG16:
        add      rsp, 40
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M43571_IG10:
+G_M43571_IG17:
        mov      edi, dword ptr [r15+0x08]
        neg      edi
        add      edi, 32
        mov      eax, -1
        shlx     edi, eax, edi
        mov      r14d, edi
        bswap    r14d
        mov      rdi, gword ptr [r15]
-       mov      rax, 0xD1FFAB1E      ; const ptr
        test     rdi, rdi
-       cmove    rdi, gword ptr [rax]
+       jne      SHORT G_M43571_IG19
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M43571_IG28
+						;; size=52 bbWeight=0.50 PerfScore 5.75
+G_M43571_IG18:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rdi, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M43571_IG19:
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:get_PrivateIPv4Address():uint:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Net.IPAddress:get_PrivateIPv4Address():uint:this
        mov      r15d, eax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:get_PrivateIPv4Address():uint:this
        call     [rax]System.Net.IPAddress:get_PrivateIPv4Address():uint:this
        and      eax, r14d
        cmp      r15d, eax
        sete     al
        movzx    rax, al
-						;; size=89 bbWeight=0.50 PerfScore 10.62
-G_M43571_IG11:
+						;; size=44 bbWeight=0.50 PerfScore 5.88
+G_M43571_IG20:
        add      rsp, 40
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M43571_IG12:
+G_M43571_IG21:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M43571_IG13:
+G_M43571_IG22:
        add      rsp, 40
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M43571_IG14:
+G_M43571_IG23:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M43571_IG15:
+G_M43571_IG24:
        add      rsp, 40
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M43571_IG16:
+G_M43571_IG25:
        mov      edi, 0xC23
        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.50 PerfScore 2.62
+G_M43571_IG26:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M43571_IG04
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M43571_IG27:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M43571_IG07
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M43571_IG28:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M43571_IG18
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M43571_IG29:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M43571_IG10
+						;; size=27 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 593, prolog size 15, PerfScore 76.92, instruction count 152, allocated bytes for code 593 (MethodHash=7c2555cc) for method System.Net.IPNetwork:Contains(System.Net.IPAddress):ubyte:this (FullOpts)
+; Total bytes of code 784, prolog size 15, PerfScore 84.29, instruction count 184, allocated bytes for code 784 (MethodHash=7c2555cc) for method System.Net.IPNetwork:Contains(System.Net.IPAddress):ubyte:this (FullOpts)
 ; ============================================================
116 (232.00 % of base) - System.Net.IPNetwork:Equals(System.Net.IPNetwork):ubyte:this
 ; Assembly listing for method System.Net.IPNetwork:Equals(System.Net.IPNetwork):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  4,  3.50)   byref  ->  rdi         this single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Net.IPNetwork>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V03 tmp1         [V03    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <System.Net.IPAddress>
-;  V05 tmp3         [V05,T05] (  2,  2   )     ref  ->  rdi         class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V06 tmp4         [V06,T03] (  5,  2.50)     ref  ->  rdi        
+;  V05 tmp3         [V05,T05] (  2,  2   )     ref  ->  r15         class-hnd single-def "dup spill" <System.Net.IPAddress>
+;  V06 tmp4         [V06,T03] (  4,  2   )     ref  ->  r15        
 ;* V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V08 tmp6         [V08,T04] (  5,  2.50)     ref  ->  rsi        
-;  V09 tmp7         [V09,T02] (  2,  1.50)     ref  ->  rsi         single-def "field V01._baseAddress (fldOffset=0x0)" P-INDEP
+;  V08 tmp6         [V08,T04] (  4,  2   )     ref  ->  rsi        
+;  V09 tmp7         [V09,T02] (  2,  1.50)     ref  ->  rbx         single-def "field V01._baseAddress (fldOffset=0x0)" P-INDEP
 ;  V10 tmp8         [V10,T01] (  2,  2   )     int  ->  rdx         single-def "field V01.<PrefixLength>k__BackingField (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 0
 
 G_M60615_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbp
+       push     r15
+       push     rbx
+       lea      rbp, [rsp+0x10]
+       mov      rbx, rsi
+						;; size=12 bbWeight=1 PerfScore 3.75
 G_M60615_IG02:
        cmp      dword ptr [rdi+0x08], edx
        je       SHORT G_M60615_IG05
 						;; size=5 bbWeight=1 PerfScore 4.00
 G_M60615_IG03:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M60615_IG04:
+       pop      rbx
+       pop      r15
+       pop      rbp
        ret      
-						;; size=1 bbWeight=0.50 PerfScore 0.50
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M60615_IG05:
-       mov      rdi, gword ptr [rdi]
-       mov      rax, 0xD1FFAB1E      ; const ptr
-       test     rdi, rdi
-       cmove    rdi, gword ptr [rax]
+       mov      r15, gword ptr [rdi]
+       test     r15, r15
+       jne      SHORT G_M60615_IG07
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M60615_IG11
+						;; size=23 bbWeight=0.50 PerfScore 3.75
+G_M60615_IG06:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      r15, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M60615_IG07:
+       mov      rsi, rbx
        test     rsi, rsi
-       cmove    rsi, gword ptr [rax]
+       jne      SHORT G_M60615_IG09
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M60615_IG12
+						;; size=23 bbWeight=0.50 PerfScore 2.88
+G_M60615_IG08:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rsi, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M60615_IG09:
+       mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this
        cmp      dword ptr [rdi], edi
-						;; size=39 bbWeight=0.50 PerfScore 6.00
-G_M60615_IG06:
+						;; size=15 bbWeight=0.50 PerfScore 1.75
+G_M60615_IG10:
+       pop      rbx
+       pop      r15
+       pop      rbp
        tail.jmp [rax]System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this
-						;; size=3 bbWeight=0.50 PerfScore 1.00
+						;; size=7 bbWeight=0.50 PerfScore 1.75
+G_M60615_IG11:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M60615_IG06
+						;; size=24 bbWeight=0 PerfScore 0.00
+G_M60615_IG12:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M60615_IG08
+						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 50, prolog size 0, PerfScore 11.62, instruction count 13, allocated bytes for code 50 (MethodHash=da2c1338) for method System.Net.IPNetwork:Equals(System.Net.IPNetwork):ubyte:this (FullOpts)
+; Total bytes of code 166, prolog size 12, PerfScore 21.50, instruction count 43, allocated bytes for code 166 (MethodHash=da2c1338) for method System.Net.IPNetwork:Equals(System.Net.IPNetwork):ubyte:this (FullOpts)
 ; ============================================================
106 (179.66 % of base) - System.Net.IPNetwork:op_Equality(System.Net.IPNetwork,System.Net.IPNetwork):ubyte
 ; Assembly listing for method System.Net.IPNetwork:op_Equality(System.Net.IPNetwork,System.Net.IPNetwork):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; fully 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    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Net.IPNetwork>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Net.IPNetwork>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V03 tmp1         [V03    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Net.IPNetwork>
 ;* V05 tmp3         [V05    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <System.Net.IPAddress>
 ;* V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V08 tmp6         [V08,T04] (  5,  2.50)     ref  ->  rdi        
+;  V08 tmp6         [V08,T04] (  4,  2   )     ref  ->  r15        
 ;* V09 tmp7         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V10 tmp8         [V10,T05] (  5,  2.50)     ref  ->  rsi        
+;  V10 tmp8         [V10,T05] (  4,  2   )     ref  ->  rsi        
 ;  V11 tmp9         [V11,T02] (  2,  1.50)     ref  ->  rdi         single-def "field V00._baseAddress (fldOffset=0x0)" P-INDEP
 ;  V12 tmp10        [V12,T00] (  2,  2   )     int  ->  rsi         single-def "field V00.<PrefixLength>k__BackingField (fldOffset=0x8)" P-INDEP
-;  V13 tmp11        [V13,T03] (  2,  1.50)     ref  ->  rdx         single-def "field V01._baseAddress (fldOffset=0x0)" P-INDEP
+;  V13 tmp11        [V13,T03] (  2,  1.50)     ref  ->  rbx         single-def "field V01._baseAddress (fldOffset=0x0)" P-INDEP
 ;  V14 tmp12        [V14,T01] (  2,  2   )     int  ->  rcx         single-def "field V01.<PrefixLength>k__BackingField (fldOffset=0x8)" P-INDEP
 ;* V15 tmp13        [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V04._baseAddress (fldOffset=0x0)" P-INDEP
 ;* V16 tmp14        [V16    ] (  0,  0   )     int  ->  zero-ref    "field V04.<PrefixLength>k__BackingField (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 0
 
 G_M11613_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbp
+       push     r15
+       push     rbx
+       lea      rbp, [rsp+0x10]
+       mov      rbx, rdx
+						;; size=12 bbWeight=1 PerfScore 3.75
 G_M11613_IG02:
        cmp      esi, ecx
        je       SHORT G_M11613_IG05
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M11613_IG03:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M11613_IG04:
+       pop      rbx
+       pop      r15
+       pop      rbp
        ret      
-						;; size=1 bbWeight=0.50 PerfScore 0.50
+						;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M11613_IG05:
-       mov      rsi, 0xD1FFAB1E      ; const ptr
-       test     rdi, rdi
-       cmove    rdi, gword ptr [rsi]
-       mov      rsi, rdx
-       mov      rax, 0xD1FFAB1E      ; const ptr
+       mov      r15, rdi
+       test     r15, r15
+       jne      SHORT G_M11613_IG07
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M11613_IG11
+						;; size=23 bbWeight=0.50 PerfScore 2.88
+G_M11613_IG06:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      r15, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M11613_IG07:
+       mov      rsi, rbx
        test     rsi, rsi
-       cmove    rsi, gword ptr [rax]
+       jne      SHORT G_M11613_IG09
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M11613_IG12
+						;; size=23 bbWeight=0.50 PerfScore 2.88
+G_M11613_IG08:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rsi, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M11613_IG09:
+       mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this
        cmp      dword ptr [rdi], edi
-						;; size=49 bbWeight=0.50 PerfScore 5.25
-G_M11613_IG06:
+						;; size=15 bbWeight=0.50 PerfScore 1.75
+G_M11613_IG10:
+       pop      rbx
+       pop      r15
+       pop      rbp
        tail.jmp [rax]System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this
-						;; size=3 bbWeight=0.50 PerfScore 1.00
+						;; size=7 bbWeight=0.50 PerfScore 1.75
+G_M11613_IG11:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M11613_IG06
+						;; size=24 bbWeight=0 PerfScore 0.00
+G_M11613_IG12:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M11613_IG08
+						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 59, prolog size 0, PerfScore 8.12, instruction count 14, allocated bytes for code 59 (MethodHash=fc58d2a2) for method System.Net.IPNetwork:op_Equality(System.Net.IPNetwork,System.Net.IPNetwork):ubyte (FullOpts)
+; Total bytes of code 165, prolog size 12, PerfScore 17.88, instruction count 43, allocated bytes for code 165 (MethodHash=fc58d2a2) for method System.Net.IPNetwork:op_Equality(System.Net.IPNetwork,System.Net.IPNetwork):ubyte (FullOpts)
 ; ============================================================
99 (30.65 % of base) - System.Net.Sockets.UdpClient:EndReceive(System.IAsyncResult,byref):ubyte[]:this
 ; Assembly listing for method System.Net.Sockets.UdpClient:EndReceive(System.IAsyncResult,byref):ubyte[]:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 5 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  7,  7   )     ref  ->  rbx         this class-hnd single-def <System.Net.Sockets.UdpClient>
 ;  V01 arg1         [V01,T03] (  3,  3   )     ref  ->  r15         class-hnd single-def <System.IAsyncResult>
 ;  V02 arg2         [V02,T04] (  3,  3   )   byref  ->  r14         single-def
-;  V03 loc0         [V03    ] (  3,  3   )     ref  ->  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Net.EndPoint>
+;  V03 loc0         [V03    ] (  3,  3   )     ref  ->  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Net.EndPoint>
 ;  V04 loc1         [V04,T08] (  4,  2.50)     int  ->  r15        
 ;* V05 loc2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ubyte]>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V07 tmp1         [V07,T10] (  3,  2   )     ref  ->  rdi        
+;  V07 tmp1         [V07,T10] (  3,  2   )     ref  ->  r13        
 ;* V08 tmp2         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.PlatformNotSupportedException>
 ;  V09 tmp3         [V09,T02] (  4,  6   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V10 tmp4         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;  V11 tmp5         [V11,T11] (  3,  2   )     ref  ->  r14         class-hnd "Inline return value spill temp" <ubyte[]>
 ;  V12 tmp6         [V12,T07] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "NewArr temp" <ubyte[]>
 ;* V13 tmp7         [V13    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V14 tmp8         [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V15 tmp9         [V15    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp10        [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V17 tmp11        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;  V18 tmp12        [V18,T12] (  3,  1.50)   byref  ->  rbx         "field V10._reference (fldOffset=0x0)" P-INDEP
 ;  V19 tmp13        [V19,T06] (  5,  3   )     int  ->  r15         "field V10._length (fldOffset=0x8)" P-INDEP
 ;  V20 rat0         [V20,T05] (  3,  4.50)     ref  ->  rsi         "Spilling to split statement for tree"
 ;  V21 rat1         [V21,T01] (  5,  7.50)     ref  ->  rax         "replacement local"
 ;  V22 rat2         [V22,T09] (  3,  2.50)    long  ->  rdi         "CSE for expectedClsNode"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M16011_IG01:
        push     rbp
        push     r15
        push     r14
+       push     r13
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x20]
+       sub      rsp, 16
+       lea      rbp, [rsp+0x30]
        xor      eax, eax
-       mov      qword ptr [rbp-0x20], rax
+       mov      qword ptr [rbp-0x28], rax
        mov      rbx, rdi
        mov      r15, rsi
        mov      r14, rdx
-						;; size=27 bbWeight=1 PerfScore 7.50
+						;; size=32 bbWeight=1 PerfScore 7.75
 G_M16011_IG02:
        movzx    rdi, byte  ptr [rbx+0x1D]
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ObjectDisposedException:ThrowIf(ubyte,System.Object)
        call     [rax]System.ObjectDisposedException:ThrowIf(ubyte,System.Object)
        cmp      dword ptr [rbx+0x18], 2
-       jne      SHORT G_M16011_IG04
+       jne      SHORT G_M16011_IG05
 						;; size=26 bbWeight=1 PerfScore 9.50
 G_M16011_IG03:
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rdi, gword ptr [rdi]
-       jmp      SHORT G_M16011_IG05
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M16011_IG21
+						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M16011_IG04:
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rdi, gword ptr [rdi]
-						;; size=13 bbWeight=0.50 PerfScore 1.12
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPEndPointStatics:Any
+       mov      r13, gword ptr [rdi]
+       jmp      SHORT G_M16011_IG07
+						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M16011_IG05:
-       mov      gword ptr [rbp-0x20], rdi
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M16011_IG20
+						;; size=19 bbWeight=0.50 PerfScore 2.12
+G_M16011_IG06:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPEndPointStatics:IPv6Any
+       mov      r13, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M16011_IG07:
+       mov      gword ptr [rbp-0x28], r13
        mov      rdi, gword ptr [rbx+0x08]
-       lea      rdx, [rbp-0x20]
+       lea      rdx, [rbp-0x28]
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:EndReceiveFrom(System.IAsyncResult,byref):int:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Net.Sockets.Socket:EndReceiveFrom(System.IAsyncResult,byref):int:this
        mov      r15d, eax
-       mov      rsi, gword ptr [rbp-0x20]
+       mov      rsi, gword ptr [rbp-0x28]
        mov      rax, rsi
        test     rax, rax
-       je       SHORT G_M16011_IG08
+       je       SHORT G_M16011_IG10
 						;; size=44 bbWeight=1 PerfScore 12.75
-G_M16011_IG06:
+G_M16011_IG08:
        mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPoint
        cmp      qword ptr [rax], rdi
-       je       SHORT G_M16011_IG08
+       je       SHORT G_M16011_IG10
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M16011_IG07:
+G_M16011_IG09:
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
 						;; size=12 bbWeight=0.25 PerfScore 0.81
-G_M16011_IG08:
+G_M16011_IG10:
        mov      rdi, r14
        mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      rbx, gword ptr [rbx+0x10]
        test     rbx, rbx
-       je       SHORT G_M16011_IG10
+       je       SHORT G_M16011_IG12
 						;; size=20 bbWeight=1 PerfScore 4.75
-G_M16011_IG09:
+G_M16011_IG11:
        cmp      dword ptr [rbx+0x08], r15d
-       jb       SHORT G_M16011_IG17
+       jb       SHORT G_M16011_IG19
        add      rbx, 16
-       jmp      SHORT G_M16011_IG11
+       jmp      SHORT G_M16011_IG13
 						;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M16011_IG10:
+G_M16011_IG12:
        test     r15d, r15d
-       jne      SHORT G_M16011_IG17
+       jne      SHORT G_M16011_IG19
        xor      rbx, rbx
        xor      r15d, r15d
 						;; size=10 bbWeight=0.50 PerfScore 0.88
-G_M16011_IG11:
+G_M16011_IG13:
        test     r15d, r15d
-       je       SHORT G_M16011_IG13
+       je       SHORT G_M16011_IG15
 						;; size=5 bbWeight=1 PerfScore 1.25
-G_M16011_IG12:
+G_M16011_IG14:
        mov      esi, r15d
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        call     CORINFO_HELP_NEWARR_1_VC
        mov      r14, rax
        mov      edx, r15d
        lea      rdi, bword ptr [r14+0x10]
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
-       jmp      SHORT G_M16011_IG15
+       jmp      SHORT G_M16011_IG17
 						;; size=45 bbWeight=0.50 PerfScore 4.00
-G_M16011_IG13:
+G_M16011_IG15:
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
-       je       SHORT G_M16011_IG18
+       je       SHORT G_M16011_IG22
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M16011_IG14:
+G_M16011_IG16:
        mov      rax, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[ubyte]:Value
        mov      r14, gword ptr [rax]
 						;; size=13 bbWeight=0.50 PerfScore 1.12
-G_M16011_IG15:
+G_M16011_IG17:
        mov      rax, r14
 						;; size=3 bbWeight=1 PerfScore 0.25
-G_M16011_IG16:
-       add      rsp, 8
+G_M16011_IG18:
+       add      rsp, 16
        pop      rbx
+       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=1 PerfScore 3.25
-G_M16011_IG17:
+						;; size=13 bbWeight=1 PerfScore 3.75
+G_M16011_IG19:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0.50 PerfScore 1.75
-G_M16011_IG18:
+G_M16011_IG20:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPointStatics
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M16011_IG06
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M16011_IG21:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPointStatics
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M16011_IG04
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M16011_IG22:
        mov      rdi, 0xD1FFAB1E      ; System.Array+EmptyArray`1[ubyte]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
-       jmp      SHORT G_M16011_IG14
+       jmp      SHORT G_M16011_IG16
 						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 323, prolog size 18, PerfScore 58.44, instruction count 84, allocated bytes for code 323 (MethodHash=77c3c174) for method System.Net.Sockets.UdpClient:EndReceive(System.IAsyncResult,byref):ubyte[]:this (FullOpts)
+; Total bytes of code 422, prolog size 23, PerfScore 63.44, instruction count 100, allocated bytes for code 422 (MethodHash=77c3c174) for method System.Net.Sockets.UdpClient:EndReceive(System.IAsyncResult,byref):ubyte[]:this (FullOpts)
 ; ============================================================
97 (20.00 % of base) - System.Net.Sockets.UdpClient:.ctor(int,int):this
 ; Assembly listing for method System.Net.Sockets.UdpClient:.ctor(int,int):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  9,  9   )     ref  ->  rbx         this class-hnd single-def <System.Net.Sockets.UdpClient>
 ;  V01 arg1         [V01,T01] (  6,  4.50)     int  ->  r15         single-def
 ;  V02 arg2         [V02,T02] (  5,  4.50)     int  ->  r14         single-def
 ;  V03 loc0         [V03,T08] (  3,  2   )     ref  ->  r14         class-hnd <System.Net.IPEndPoint>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V05 tmp1         [V05,T05] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <ubyte[]>
-;  V06 tmp2         [V06,T07] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
-;  V07 tmp3         [V07,T04] (  4,  4   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
-;  V08 tmp4         [V08,T10] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
-;  V09 tmp5         [V09,T11] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
-;* V10 tmp6         [V10,T17] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V11 tmp7         [V11,T09] (  2,  2   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Net.IPAddress+ReadOnlyIPAddress>
-;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
-;* V13 tmp9         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V14 tmp10        [V14,T03] (  3,  6   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.Socket>
-;  V15 tmp11        [V15,T06] (  2,  4   )     int  ->  r15         "finalizable newobj spill"
-;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V17 tmp13        [V17,T12] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
-;  V18 tmp14        [V18,T13] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V19 tmp15        [V19,T14] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
-;  V20 tmp16        [V20,T15] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  V21 tmp17        [V21,T16] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V05 tmp1         [V05,T04] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <ubyte[]>
+;  V06 tmp2         [V06,T06] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
+;  V07 tmp3         [V07,T07] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
+;  V08 tmp4         [V08,T11] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+;  V09 tmp5         [V09,T12] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
+;* V10 tmp6         [V10,T18] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V11 tmp7         [V11,T03] (  3,  6   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.Socket>
+;  V12 tmp8         [V12,T05] (  2,  4   )     int  ->  r15         "finalizable newobj spill"
+;  V13 tmp9         [V13,T09] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V14 tmp10        [V14,T10] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V15 tmp11        [V15,T13] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
+;  V16 tmp12        [V16,T14] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V17 tmp13        [V17,T15] (  2,  0   )     ref  ->  r15         single-def "argument with side effect"
+;  V18 tmp14        [V18,T16] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
+;  V19 tmp15        [V19,T17] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
 ;
 ; Lcl frame size = 0
 
 G_M57935_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
        lea      rbp, [rsp+0x20]
        mov      rbx, rdi
        mov      r15d, esi
        mov      r14d, edx
 						;; size=22 bbWeight=1 PerfScore 6.25
 G_M57935_IG02:
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        mov      esi, 0x10000
        call     CORINFO_HELP_NEWARR_1_VC
        lea      rdi, bword ptr [rbx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        mov      dword ptr [rbx+0x18], 2
        test     r15d, r15d
-       jl       G_M57935_IG11
+       jl       G_M57935_IG13
 						;; size=48 bbWeight=1 PerfScore 5.50
 G_M57935_IG03:
        cmp      r15d, 0xFFFF
-       jg       G_M57935_IG11
+       jg       G_M57935_IG13
 						;; size=13 bbWeight=0.50 PerfScore 0.62
 G_M57935_IG04:
        cmp      r14d, 2
        je       SHORT G_M57935_IG06
 						;; size=6 bbWeight=1 PerfScore 1.25
 G_M57935_IG05:
        cmp      r14d, 23
-       jne      G_M57935_IG12
+       jne      G_M57935_IG14
 						;; size=10 bbWeight=0.50 PerfScore 0.62
 G_M57935_IG06:
        mov      dword ptr [rbx+0x18], r14d
        cmp      dword ptr [rbx+0x18], 2
-       je       SHORT G_M57935_IG08
+       je       SHORT G_M57935_IG09
 						;; size=10 bbWeight=1 PerfScore 5.00
 G_M57935_IG07:
        mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPoint
        call     CORINFO_HELP_NEWSFAST
        mov      r14, rax
-       mov      rsi, 0xD1FFAB1E      ; const ptr
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M57935_IG16
+						;; size=37 bbWeight=0.50 PerfScore 2.88
+G_M57935_IG08:
+       mov      rsi, 0xD1FFAB1E      ; data for System.Net.IPAddress:IPv6Any
        mov      rsi, gword ptr [rsi]
        mov      rdi, r14
        mov      edx, r15d
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
        call     [rax]System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
-       jmp      SHORT G_M57935_IG09
-						;; size=51 bbWeight=0.50 PerfScore 4.75
-G_M57935_IG08:
+       jmp      SHORT G_M57935_IG11
+						;; size=33 bbWeight=0.50 PerfScore 4.00
+G_M57935_IG09:
        mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPoint
        call     CORINFO_HELP_NEWSFAST
        mov      r14, rax
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rsi, gword ptr [rdi]
-       mov      dword ptr [r14+0x10], r15d
-       lea      rdi, bword ptr [r14+0x08]
-       call     CORINFO_HELP_ASSIGN_REF
-						;; size=44 bbWeight=0.50 PerfScore 3.12
-G_M57935_IG09:
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M57935_IG15
+						;; size=37 bbWeight=0.50 PerfScore 2.88
+G_M57935_IG10:
+       mov      rsi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rsi, gword ptr [rsi]
+       mov      rdi, r14
+       mov      edx, r15d
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
+       call     [rax]System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
+						;; size=31 bbWeight=0.50 PerfScore 3.00
+G_M57935_IG11:
        mov      r15d, dword ptr [rbx+0x18]
        mov      rdi, 0xD1FFAB1E      ; System.Net.Sockets.Socket
        call     CORINFO_HELP_NEWFAST
        mov      r13, rax
        mov      rdi, r13
        mov      esi, r15d
        mov      edx, 2
        mov      ecx, 17
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:.ctor(int,int,int):this
        call     [rax]System.Net.Sockets.Socket:.ctor(int,int,int):this
        lea      rdi, bword ptr [rbx+0x08]
        mov      rsi, r13
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, gword ptr [rbx+0x08]
        mov      rsi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:Bind(System.Net.EndPoint):this
        cmp      dword ptr [rdi], edi
 						;; size=81 bbWeight=1 PerfScore 15.00
-G_M57935_IG10:
+G_M57935_IG12:
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Net.Sockets.Socket:Bind(System.Net.EndPoint):this
 						;; size=11 bbWeight=1 PerfScore 4.50
-G_M57935_IG11:
+G_M57935_IG13:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentOutOfRangeException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      edi, 0x196D
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:.ctor(System.String):this
        call     [rax]System.ArgumentOutOfRangeException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=65 bbWeight=0 PerfScore 0.00
-G_M57935_IG12:
+G_M57935_IG14:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_net_protocol_invalid_family():System.String
        call     [rax]System.SR:get_net_protocol_invalid_family():System.String
        mov      r15, rax
        mov      edi, 0x2B06
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rsi, rax
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SR:Format(System.String,System.Object):System.String
        call     [rax]System.SR:Format(System.String,System.Object):System.String
        mov      r15, rax
        mov      edi, 0x2A6A
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdx, rax
        mov      rsi, r15
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentException:.ctor(System.String,System.String):this
        call     [rax]System.ArgumentException:.ctor(System.String,System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=124 bbWeight=0 PerfScore 0.00
+G_M57935_IG15:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M57935_IG10
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M57935_IG16:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M57935_IG08
+						;; size=27 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 485, prolog size 13, PerfScore 46.62, instruction count 106, allocated bytes for code 485 (MethodHash=a04c1db0) for method System.Net.Sockets.UdpClient:.ctor(int,int):this (FullOpts)
+; Total bytes of code 582, prolog size 13, PerfScore 51.50, instruction count 121, allocated bytes for code 582 (MethodHash=a04c1db0) for method System.Net.Sockets.UdpClient:.ctor(int,int):this (FullOpts)
 ; ============================================================
94 (97.92 % of base) - System.Net.IPNetwork:Equals(System.Object):ubyte:this
 ; Assembly listing for method System.Net.IPNetwork:Equals(System.Object):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  4,  3   )   byref  ->  rdi         this single-def
 ;  V01 arg1         [V01,T00] (  6,  4.25)     ref  ->  rsi         class-hnd single-def <System.Object>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct (16) zero-ref    <System.Net.IPNetwork>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V04 tmp1         [V04    ] (  0,  0   )     int  ->  zero-ref    "spilling qmarkNull"
 ;* V05 tmp2         [V05    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Net.IPNetwork>
 ;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V08 tmp5         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <System.Net.IPAddress>
-;  V09 tmp6         [V09,T04] (  2,  2   )     ref  ->  rdi         class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V10 tmp7         [V10,T02] (  5,  2.50)     ref  ->  rdi        
+;  V09 tmp6         [V09,T04] (  2,  2   )     ref  ->  r15         class-hnd single-def "dup spill" <System.Net.IPAddress>
+;  V10 tmp7         [V10,T02] (  4,  2   )     ref  ->  r15        
 ;* V11 tmp8         [V11    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V12 tmp9         [V12,T03] (  5,  2.50)     ref  ->  rsi        
+;  V12 tmp9         [V12,T03] (  4,  2   )     ref  ->  rsi        
 ;* V13 tmp10        [V13    ] (  0,  0   )     ref  ->  zero-ref    "field V02._baseAddress (fldOffset=0x0)" P-INDEP
 ;* V14 tmp11        [V14    ] (  0,  0   )     int  ->  zero-ref    "field V02.<PrefixLength>k__BackingField (fldOffset=0x8)" P-INDEP
-;  V15 tmp12        [V15,T05] (  2,  1   )     ref  ->  rax         single-def "field V06._baseAddress (fldOffset=0x0)" P-INDEP
-;  V16 tmp13        [V16,T06] (  2,  1   )     int  ->  rsi         "field V06.<PrefixLength>k__BackingField (fldOffset=0x8)" P-INDEP
+;  V15 tmp12        [V15,T05] (  2,  1   )     ref  ->  rbx         single-def "field V06._baseAddress (fldOffset=0x0)" P-INDEP
+;  V16 tmp13        [V16,T06] (  2,  1   )     int  ->  rax         "field V06.<PrefixLength>k__BackingField (fldOffset=0x8)" P-INDEP
 ;
 ; Lcl frame size = 0
 
 G_M37668_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=1 PerfScore 1.25
+       push     r15
+       push     rbx
+       lea      rbp, [rsp+0x10]
+						;; size=9 bbWeight=1 PerfScore 3.50
 G_M37668_IG02:
        test     rsi, rsi
-       je       SHORT G_M37668_IG06
+       je       SHORT G_M37668_IG10
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M37668_IG03:
        mov      rax, 0xD1FFAB1E      ; System.Net.IPNetwork
        cmp      qword ptr [rsi], rax
-       jne      SHORT G_M37668_IG06
+       jne      SHORT G_M37668_IG10
 						;; size=15 bbWeight=0.25 PerfScore 1.06
 G_M37668_IG04:
-       mov      rax, gword ptr [rsi+0x08]
-       mov      esi, dword ptr [rsi+0x10]
-       cmp      dword ptr [rdi+0x08], esi
+       mov      rbx, gword ptr [rsi+0x08]
+       mov      eax, dword ptr [rsi+0x10]
+       cmp      dword ptr [rdi+0x08], eax
+       jne      SHORT G_M37668_IG10
+       mov      r15, gword ptr [rdi]
+       test     r15, r15
        jne      SHORT G_M37668_IG06
-       mov      rdi, gword ptr [rdi]
-       mov      rsi, 0xD1FFAB1E      ; const ptr
-       test     rdi, rdi
-       cmove    rdi, gword ptr [rsi]
-       mov      rsi, rax
-       mov      rax, 0xD1FFAB1E      ; const ptr
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M37668_IG12
+						;; size=35 bbWeight=0.50 PerfScore 7.75
+G_M37668_IG05:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      r15, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M37668_IG06:
+       mov      rsi, rbx
        test     rsi, rsi
-       cmove    rsi, gword ptr [rax]
+       jne      SHORT G_M37668_IG08
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M37668_IG13
+						;; size=23 bbWeight=0.50 PerfScore 2.88
+G_M37668_IG07:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rsi, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M37668_IG08:
+       mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this
        cmp      dword ptr [rdi], edi
-						;; size=64 bbWeight=0.50 PerfScore 10.25
-G_M37668_IG05:
+						;; size=15 bbWeight=0.50 PerfScore 1.75
+G_M37668_IG09:
+       pop      rbx
+       pop      r15
        pop      rbp
        tail.jmp [rax]System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this
-						;; size=4 bbWeight=0.50 PerfScore 1.25
-G_M37668_IG06:
+						;; size=7 bbWeight=0.50 PerfScore 1.75
+G_M37668_IG10:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M37668_IG07:
+G_M37668_IG11:
+       pop      rbx
+       pop      r15
        pop      rbp
        ret      
-						;; size=2 bbWeight=0.50 PerfScore 0.75
+						;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M37668_IG12:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M37668_IG05
+						;; size=24 bbWeight=0 PerfScore 0.00
+G_M37668_IG13:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M37668_IG07
+						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 96, prolog size 4, PerfScore 15.94, instruction count 26, allocated bytes for code 96 (MethodHash=bd736cdb) for method System.Net.IPNetwork:Equals(System.Object):ubyte:this (FullOpts)
+; Total bytes of code 190, prolog size 9, PerfScore 23.56, instruction count 49, allocated bytes for code 190 (MethodHash=bd736cdb) for method System.Net.IPNetwork:Equals(System.Object):ubyte:this (FullOpts)
 ; ============================================================
94 (37.90 % of base) - System.Net.Sockets.UdpClient:ReceiveAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.UdpReceiveResult]:this
 ; Assembly listing for method System.Net.Sockets.UdpClient:ReceiveAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.UdpReceiveResult]:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  8,  8   )     ref  ->  rbx         this class-hnd single-def <System.Net.Sockets.UdpClient>
 ;  V01 RetBuf       [V01,T02] (  4,  4   )    long  ->  r15         single-def
 ;* V02 arg1         [V02    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Threading.CancellationToken>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
-;  V04 tmp1         [V04,T06] (  2,  4   )     ref  ->  rdi         class-hnd single-def "impAppendStmt" <System.Net.Sockets.Socket>
+;  V04 tmp1         [V04,T06] (  2,  4   )     ref  ->  r13         class-hnd single-def "impAppendStmt" <System.Net.Sockets.Socket>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Memory`1[ubyte]>
 ;* V06 tmp3         [V06    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V07 tmp4         [V07    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    <System.Memory`1[ubyte]>
 ;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp7         [V10    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V11 tmp8         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    <System.Memory`1[ubyte]>
 ;* V13 tmp10        [V13    ] (  0,  0   )     int  ->  zero-ref   
 ;  V14 tmp11        [V14,T09] (  3,  2   )     ref  ->   r9        
-;  V15 tmp12        [V15,T08] (  2,  4   )  struct (32) [rbp-0x38]  do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]>
-;  V16 tmp13        [V16,T01] (  4,  6   )     ref  ->  rdx         class-hnd single-def "Inlining Arg" <ubyte[]>
-;  V17 tmp14        [V17    ] (  8, 10   )  struct (16) [rbp-0x48]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
+;  V15 tmp12        [V15,T08] (  2,  4   )  struct (32) [rbp-0x40]  do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]>
+;  V16 tmp13        [V16,T01] (  4,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <ubyte[]>
+;  V17 tmp14        [V17    ] (  8, 10   )  struct (16) [rbp-0x50]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
 ;  V18 tmp15        [V18,T07] (  2,  2   )     ref  ->  r14         single-def "field V02._source (fldOffset=0x0)" P-INDEP
 ;* V19 tmp16        [V19    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V05._object (fldOffset=0x0)" P-INDEP
 ;* V20 tmp17        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V05._index (fldOffset=0x8)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0xc)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V08._object (fldOffset=0x0)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V08._index (fldOffset=0x8)" P-INDEP
 ;* V24 tmp21        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0xc)" P-INDEP
 ;* V25 tmp22        [V25    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V12._object (fldOffset=0x0)" P-INDEP
 ;* V26 tmp23        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x8)" P-INDEP
 ;* V27 tmp24        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0xc)" P-INDEP
-;  V28 tmp25        [V28,T03] (  4,  5   )     ref  ->  [rbp-0x48]  do-not-enreg[] "field V17._object (fldOffset=0x0)" P-DEP
-;  V29 tmp26        [V29,T04] (  4,  5   )     int  ->  [rbp-0x40]  do-not-enreg[] "field V17._index (fldOffset=0x8)" P-DEP
-;  V30 tmp27        [V30,T05] (  4,  5   )     int  ->  [rbp-0x3C]  do-not-enreg[] "field V17._length (fldOffset=0xc)" P-DEP
+;  V28 tmp25        [V28,T03] (  4,  5   )     ref  ->  [rbp-0x50]  do-not-enreg[] "field V17._object (fldOffset=0x0)" P-DEP
+;  V29 tmp26        [V29,T04] (  4,  5   )     int  ->  [rbp-0x48]  do-not-enreg[] "field V17._index (fldOffset=0x8)" P-DEP
+;  V30 tmp27        [V30,T05] (  4,  5   )     int  ->  [rbp-0x44]  do-not-enreg[] "field V17._length (fldOffset=0xc)" P-DEP
 ;
-; Lcl frame size = 88
+; Lcl frame size = 80
 
 G_M25660_IG01:
        push     rbp
        push     r15
        push     r14
+       push     r13
        push     rbx
-       sub      rsp, 88
+       sub      rsp, 80
        lea      rbp, [rsp+0x70]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x48], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x40], ymm8
-       mov      qword ptr [rbp-0x20], rax
+       vmovdqu  ymmword ptr [rbp-0x50], ymm8
+       vmovdqa  xmmword ptr [rbp-0x30], xmm8
        mov      rbx, rdi
        mov      r15, rsi
        mov      r14, rdx
-						;; size=44 bbWeight=1 PerfScore 10.08
+						;; size=41 bbWeight=1 PerfScore 10.83
 G_M25660_IG02:
        movzx    rdi, byte  ptr [rbx+0x1D]
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ObjectDisposedException:ThrowIf(ubyte,System.Object)
        call     [rax]System.ObjectDisposedException:ThrowIf(ubyte,System.Object)
-       mov      rdi, gword ptr [rbx+0x08]
-       mov      rdx, gword ptr [rbx+0x10]
-       test     rdx, rdx
+       mov      r13, gword ptr [rbx+0x08]
+       mov      rdi, gword ptr [rbx+0x10]
+       test     rdi, rdi
        je       SHORT G_M25660_IG04
 						;; size=33 bbWeight=1 PerfScore 10.75
 G_M25660_IG03:
-       mov      gword ptr [rbp-0x48], rdx
-       xor      ecx, ecx
-       mov      dword ptr [rbp-0x40], ecx
-       mov      edx, dword ptr [rdx+0x08]
-       mov      dword ptr [rbp-0x3C], edx
+       mov      gword ptr [rbp-0x50], rdi
+       xor      eax, eax
+       mov      dword ptr [rbp-0x48], eax
+       mov      edi, dword ptr [rdi+0x08]
+       mov      dword ptr [rbp-0x44], edi
        jmp      SHORT G_M25660_IG07
 						;; size=17 bbWeight=0.50 PerfScore 3.62
 G_M25660_IG04:
-       xor      rdx, rdx
-       mov      gword ptr [rbp-0x48], rdx
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x50], rdi
 						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M25660_IG05:
-       mov      dword ptr [rbp-0x40], edx
+       mov      dword ptr [rbp-0x48], edi
 						;; size=3 bbWeight=0.50 PerfScore 0.50
 G_M25660_IG06:
-       mov      dword ptr [rbp-0x3C], edx
+       mov      dword ptr [rbp-0x44], edi
 						;; size=3 bbWeight=0.50 PerfScore 0.50
 G_M25660_IG07:
        cmp      dword ptr [rbx+0x18], 2
-       jne      SHORT G_M25660_IG09
+       jne      SHORT G_M25660_IG10
 						;; size=6 bbWeight=1 PerfScore 4.00
 G_M25660_IG08:
-       mov      rdx, 0xD1FFAB1E      ; const ptr
-       mov      r9, gword ptr [rdx]
-       jmp      SHORT G_M25660_IG10
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M25660_IG15
+						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M25660_IG09:
-       mov      r9, 0xD1FFAB1E      ; const ptr
-       mov      r9, gword ptr [r9]
-						;; size=13 bbWeight=0.50 PerfScore 1.12
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPEndPointStatics:Any
+       mov      r9, gword ptr [rdi]
+       jmp      SHORT G_M25660_IG12
+						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M25660_IG10:
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M25660_IG14
+						;; size=19 bbWeight=0.50 PerfScore 2.12
+G_M25660_IG11:
+       mov      rdx, 0xD1FFAB1E      ; data for System.Net.IPEndPointStatics:IPv6Any
+       mov      r9, gword ptr [rdx]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M25660_IG12:
        mov      gword ptr [rsp], r14
-       mov      rdx, gword ptr [rbp-0x48]
-       mov      rcx, qword ptr [rbp-0x40]
-       lea      rsi, [rbp-0x38]
+       mov      rdx, gword ptr [rbp-0x50]
+       mov      rcx, qword ptr [rbp-0x48]
+       lea      rsi, [rbp-0x40]
+       mov      rdi, r13
        xor      r8d, r8d
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:ReceiveFromAsync(System.Memory`1[ubyte],int,System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Net.Sockets.Socket:ReceiveFromAsync(System.Memory`1[ubyte],int,System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]:this
        lea      rdi, [rsp]
-       lea      rsi, [rbp-0x38]
+       lea      rsi, [rbp-0x40]
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp], rcx
        add      rsi, 8
        add      rdi, 8
        movsq    
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x10], rcx
        add      rsi, 8
        add      rdi, 8
        movsq    
        mov      rdi, rbx
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.UdpClient:<ReceiveAsync>g__WaitAndWrap|62_0(System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.UdpReceiveResult]:this
        call     [rax]System.Net.Sockets.UdpClient:<ReceiveAsync>g__WaitAndWrap|62_0(System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.UdpReceiveResult]:this
        mov      rax, r15
-						;; size=97 bbWeight=1 PerfScore 24.00
-G_M25660_IG11:
-       add      rsp, 88
+						;; size=100 bbWeight=1 PerfScore 24.25
+G_M25660_IG13:
+       add      rsp, 80
        pop      rbx
+       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=1 PerfScore 3.25
+						;; size=13 bbWeight=1 PerfScore 3.75
+G_M25660_IG14:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPointStatics
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M25660_IG11
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M25660_IG15:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPointStatics
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M25660_IG09
+						;; size=27 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 248, prolog size 35, PerfScore 60.58, instruction count 70, allocated bytes for code 248 (MethodHash=0f3d9bc3) for method System.Net.Sockets.UdpClient:ReceiveAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.UdpReceiveResult]:this (FullOpts)
+; Total bytes of code 342, prolog size 32, PerfScore 66.33, instruction count 85, allocated bytes for code 342 (MethodHash=0f3d9bc3) for method System.Net.Sockets.UdpClient:ReceiveAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.UdpReceiveResult]:this (FullOpts)
 ; ============================================================
92 (27.71 % of base) - System.Net.Sockets.UdpClient:Receive(byref):ubyte[]:this
 ; Assembly listing for method System.Net.Sockets.UdpClient:Receive(byref):ubyte[]:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  8,  8   )     ref  ->  rbx         this class-hnd single-def <System.Net.Sockets.UdpClient>
 ;  V01 arg1         [V01,T04] (  3,  3   )   byref  ->  r15         single-def
 ;  V02 loc0         [V02    ] (  3,  3   )     ref  ->  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Net.EndPoint>
 ;  V03 loc1         [V03,T09] (  4,  2.50)     int  ->  r14        
 ;* V04 loc2         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[ubyte]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V06 tmp1         [V06,T11] (  3,  2   )     ref  ->   r9        
+;  V06 tmp1         [V06,T11] (  3,  2   )     ref  ->  r14        
 ;* V07 tmp2         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.PlatformNotSupportedException>
 ;  V08 tmp3         [V08,T03] (  3,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Net.Sockets.Socket>
 ;  V09 tmp4         [V09,T06] (  2,  4   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V10 tmp5         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.PlatformNotSupportedException>
 ;  V11 tmp6         [V11,T02] (  4,  6   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V12 tmp7         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;  V13 tmp8         [V13,T12] (  3,  2   )     ref  ->  r15         class-hnd "Inline return value spill temp" <ubyte[]>
 ;  V14 tmp9         [V14,T08] (  3,  3   )     ref  ->  r15         class-hnd exact single-def "NewArr temp" <ubyte[]>
 ;* V15 tmp10        [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V16 tmp11        [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp12        [V17    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp13        [V18    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V19 tmp14        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V20 tmp15        [V20,T13] (  3,  1.50)   byref  ->  rbx         "field V12._reference (fldOffset=0x0)" P-INDEP
 ;  V21 tmp16        [V21,T07] (  5,  3   )     int  ->  r14         "field V12._length (fldOffset=0x8)" P-INDEP
 ;  V22 rat0         [V22,T05] (  3,  4.50)     ref  ->  rsi         "Spilling to split statement for tree"
 ;  V23 rat1         [V23,T01] (  5,  7.50)     ref  ->  rax         "replacement local"
 ;  V24 rat2         [V24,T10] (  3,  2.50)    long  ->  rdi         "CSE for expectedClsNode"
 ;
 ; Lcl frame size = 8
 
 G_M51813_IG01:
        push     rbp
        push     r15
        push     r14
        push     rbx
        push     rax
        lea      rbp, [rsp+0x20]
        xor      eax, eax
        mov      qword ptr [rbp-0x20], rax
        mov      rbx, rdi
        mov      r15, rsi
 						;; size=24 bbWeight=1 PerfScore 7.25
 G_M51813_IG02:
        movzx    rdi, byte  ptr [rbx+0x1D]
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ObjectDisposedException:ThrowIf(ubyte,System.Object)
        call     [rax]System.ObjectDisposedException:ThrowIf(ubyte,System.Object)
        cmp      dword ptr [rbx+0x18], 2
-       jne      SHORT G_M51813_IG04
+       jne      SHORT G_M51813_IG05
 						;; size=26 bbWeight=1 PerfScore 9.50
 G_M51813_IG03:
-       mov      r9, 0xD1FFAB1E      ; const ptr
-       mov      r9, gword ptr [r9]
-       jmp      SHORT G_M51813_IG05
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M51813_IG21
+						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M51813_IG04:
-       mov      r9, 0xD1FFAB1E      ; const ptr
-       mov      r9, gword ptr [r9]
-						;; size=13 bbWeight=0.50 PerfScore 1.12
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPEndPointStatics:Any
+       mov      r14, gword ptr [rdi]
+       jmp      SHORT G_M51813_IG07
+						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M51813_IG05:
-       mov      gword ptr [rbp-0x20], r9
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M51813_IG20
+						;; size=19 bbWeight=0.50 PerfScore 2.12
+G_M51813_IG06:
+       mov      r9, 0xD1FFAB1E      ; data for System.Net.IPEndPointStatics:IPv6Any
+       mov      r14, gword ptr [r9]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M51813_IG07:
+       mov      gword ptr [rbp-0x20], r14
        mov      rdi, gword ptr [rbx+0x08]
        mov      rsi, gword ptr [rbx+0x10]
        cmp      byte  ptr [rdi], dil
        lea      r9, [rbp-0x20]
        xor      edx, edx
        mov      ecx, 0x10000
        xor      r8d, r8d
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:ReceiveFrom(ubyte[],int,int,int,byref):int:this
        call     [rax]System.Net.Sockets.Socket:ReceiveFrom(ubyte[],int,int,int,byref):int:this
        mov      r14d, eax
        mov      rsi, gword ptr [rbp-0x20]
        mov      rax, rsi
        test     rax, rax
-       je       SHORT G_M51813_IG08
+       je       SHORT G_M51813_IG10
 						;; size=56 bbWeight=1 PerfScore 15.25
-G_M51813_IG06:
+G_M51813_IG08:
        mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPoint
        cmp      qword ptr [rax], rdi
-       je       SHORT G_M51813_IG08
+       je       SHORT G_M51813_IG10
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M51813_IG07:
+G_M51813_IG09:
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
 						;; size=12 bbWeight=0.25 PerfScore 0.81
-G_M51813_IG08:
+G_M51813_IG10:
        mov      rdi, r15
        mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      rbx, gword ptr [rbx+0x10]
        test     rbx, rbx
-       je       SHORT G_M51813_IG10
+       je       SHORT G_M51813_IG12
 						;; size=20 bbWeight=1 PerfScore 4.75
-G_M51813_IG09:
+G_M51813_IG11:
        cmp      dword ptr [rbx+0x08], r14d
-       jb       SHORT G_M51813_IG17
+       jb       SHORT G_M51813_IG19
        add      rbx, 16
-       jmp      SHORT G_M51813_IG11
+       jmp      SHORT G_M51813_IG13
 						;; size=12 bbWeight=0.50 PerfScore 3.12
-G_M51813_IG10:
+G_M51813_IG12:
        test     r14d, r14d
-       jne      SHORT G_M51813_IG17
+       jne      SHORT G_M51813_IG19
        xor      rbx, rbx
        xor      r14d, r14d
 						;; size=10 bbWeight=0.50 PerfScore 0.88
-G_M51813_IG11:
+G_M51813_IG13:
        test     r14d, r14d
-       je       SHORT G_M51813_IG13
+       je       SHORT G_M51813_IG15
 						;; size=5 bbWeight=1 PerfScore 1.25
-G_M51813_IG12:
+G_M51813_IG14:
        mov      esi, r14d
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        call     CORINFO_HELP_NEWARR_1_VC
        mov      r15, rax
        mov      edx, r14d
        lea      rdi, bword ptr [r15+0x10]
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
-       jmp      SHORT G_M51813_IG15
+       jmp      SHORT G_M51813_IG17
 						;; size=45 bbWeight=0.50 PerfScore 4.00
-G_M51813_IG13:
+G_M51813_IG15:
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
-       je       SHORT G_M51813_IG18
+       je       SHORT G_M51813_IG22
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M51813_IG14:
+G_M51813_IG16:
        mov      rax, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[ubyte]:Value
        mov      r15, gword ptr [rax]
 						;; size=13 bbWeight=0.50 PerfScore 1.12
-G_M51813_IG15:
+G_M51813_IG17:
        mov      rax, r15
 						;; size=3 bbWeight=1 PerfScore 0.25
-G_M51813_IG16:
+G_M51813_IG18:
        add      rsp, 8
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=1 PerfScore 3.25
-G_M51813_IG17:
+G_M51813_IG19:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0.50 PerfScore 1.75
-G_M51813_IG18:
+G_M51813_IG20:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPointStatics
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M51813_IG06
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M51813_IG21:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPointStatics
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M51813_IG04
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M51813_IG22:
        mov      rdi, 0xD1FFAB1E      ; System.Array+EmptyArray`1[ubyte]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
-       jmp      SHORT G_M51813_IG14
+       jmp      SHORT G_M51813_IG16
 						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 332, prolog size 18, PerfScore 60.69, instruction count 86, allocated bytes for code 332 (MethodHash=8d1b359a) for method System.Net.Sockets.UdpClient:Receive(byref):ubyte[]:this (FullOpts)
+; Total bytes of code 424, prolog size 18, PerfScore 64.94, instruction count 100, allocated bytes for code 424 (MethodHash=8d1b359a) for method System.Net.Sockets.UdpClient:Receive(byref):ubyte[]:this (FullOpts)
 ; ============================================================
92 (23.59 % of base) - System.Net.Sockets.UdpClient:ReceiveAsync():System.Threading.Tasks.Task`1[System.Net.Sockets.UdpReceiveResult]:this
 ; Assembly listing for method System.Net.Sockets.UdpClient:ReceiveAsync():System.Threading.Tasks.Task`1[System.Net.Sockets.UdpReceiveResult]:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 8 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  8,  8   )     ref  ->  rbx         this class-hnd single-def <System.Net.Sockets.UdpClient>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct ( 8) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
 ;  V02 tmp1         [V02    ] (  5, 10   )  struct (16) [rbp-0x30]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ArraySegment`1[ubyte]>
 ;  V03 tmp2         [V03,T02] (  3,  6   )     ref  ->  r15         class-hnd single-def "impAppendStmt" <System.Net.Sockets.Socket>
 ;* V04 tmp3         [V04    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V05 tmp4         [V05    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V06 tmp5         [V06    ] (  0,  0   )  struct (16) zero-ref    <System.ArraySegment`1[ubyte]>
 ;* V07 tmp6         [V07    ] (  0,  0   )     int  ->  zero-ref   
 ;* V08 tmp7         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V09 tmp8         [V09    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V10 tmp9         [V10    ] (  0,  0   )  struct (16) zero-ref    <System.ArraySegment`1[ubyte]>
 ;* V11 tmp10        [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;  V12 tmp11        [V12,T12] (  3,  2   )     ref  ->  r13        
 ;  V13 tmp12        [V13,T00] (  6, 11   )     ref  ->  r14         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V14 tmp13        [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V15 tmp14        [V15    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Memory`1[ubyte]>
 ;  V16 tmp15        [V16    ] (  5,  3.50)  struct (32) [rbp-0x50]  do-not-enreg[XHS] must-init addr-exposed hidden-struct-arg ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]>
 ;* V17 tmp16        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ArraySegment`1[ubyte]>
 ;* V18 tmp17        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <ubyte[]>
 ;* V19 tmp18        [V19    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;  V20 tmp19        [V20    ] (  5, 10   )  struct (16) [rbp-0x60]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
 ;* V21 tmp20        [V21    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V22 tmp21        [V22,T11] (  4,  2.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Net.Sockets.SocketReceiveFromResult]>
 ;  V23 tmp22        [V23,T10] (  4,  3   )     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;  V24 tmp23        [V24,T14] (  3,  1.50)     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task`1[System.Net.Sockets.SocketReceiveFromResult]>
 ;* V25 tmp24        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[System.Net.Sockets.SocketReceiveFromResult]>
 ;* V26 tmp25        [V26    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Threading.Tasks.Task`1[System.Net.Sockets.SocketReceiveFromResult]>
 ;* V27 tmp26        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Net.Sockets.SocketReceiveFromResult>
 ;  V28 tmp27        [V28,T03] (  5,  5   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[System.Net.Sockets.SocketReceiveFromResult]>
 ;* V29 tmp28        [V29    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
 ;* V30 tmp29        [V30    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Net.Sockets.SocketReceiveFromResult>
 ;* V31 tmp30        [V31    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;  V32 tmp31        [V32,T04] (  3,  5   )     ref  ->  [rbp-0x30]  do-not-enreg[] "field V02._array (fldOffset=0x0)" P-DEP
 ;  V33 tmp32        [V33,T06] (  3,  5   )     int  ->  [rbp-0x28]  do-not-enreg[] "field V02._offset (fldOffset=0x8)" P-DEP
 ;  V34 tmp33        [V34,T07] (  3,  5   )     int  ->  [rbp-0x24]  do-not-enreg[] "field V02._count (fldOffset=0xc)" P-DEP
 ;* V35 tmp34        [V35    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._array (fldOffset=0x0)" P-INDEP
 ;* V36 tmp35        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V06._offset (fldOffset=0x8)" P-INDEP
 ;* V37 tmp36        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V06._count (fldOffset=0xc)" P-INDEP
 ;* V38 tmp37        [V38    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V10._array (fldOffset=0x0)" P-INDEP
 ;* V39 tmp38        [V39    ] (  0,  0   )     int  ->  zero-ref    "field V10._offset (fldOffset=0x8)" P-INDEP
 ;* V40 tmp39        [V40    ] (  0,  0   )     int  ->  zero-ref    "field V10._count (fldOffset=0xc)" P-INDEP
 ;* V41 tmp40        [V41,T17] (  0,  0   )     ref  ->  zero-ref    single-def "field V14._source (fldOffset=0x0)" P-INDEP
 ;* V42 tmp41        [V42    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V15._object (fldOffset=0x0)" P-INDEP
 ;* V43 tmp42        [V43    ] (  0,  0   )     int  ->  zero-ref    "field V15._index (fldOffset=0x8)" P-INDEP
 ;* V44 tmp43        [V44    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0xc)" P-INDEP
 ;* V45 tmp44        [V45    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V17._array (fldOffset=0x0)" P-INDEP
 ;* V46 tmp45        [V46    ] (  0,  0   )     int  ->  zero-ref    "field V17._offset (fldOffset=0x8)" P-INDEP
 ;* V47 tmp46        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V17._count (fldOffset=0xc)" P-INDEP
 ;  V48 tmp47        [V48,T05] (  3,  5   )     ref  ->  [rbp-0x60]  do-not-enreg[] "field V20._object (fldOffset=0x0)" P-DEP
 ;  V49 tmp48        [V49,T08] (  3,  5   )     int  ->  [rbp-0x58]  do-not-enreg[] "field V20._index (fldOffset=0x8)" P-DEP
 ;  V50 tmp49        [V50,T09] (  3,  5   )     int  ->  [rbp-0x54]  do-not-enreg[] "field V20._length (fldOffset=0xc)" P-DEP
 ;  V51 tmp50        [V51,T15] (  2,  1   )     ref  ->  r15         single-def "field V27.RemoteEndPoint (fldOffset=0x0)" P-INDEP
 ;  V52 tmp51        [V52,T16] (  2,  1   )     int  ->  r14         "field V27.ReceivedBytes (fldOffset=0x8)" P-INDEP
 ;* V53 tmp52        [V53    ] (  0,  0   )     ref  ->  zero-ref    "field V29._source (fldOffset=0x0)" P-INDEP
 ;* V54 tmp53        [V54    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V30.RemoteEndPoint (fldOffset=0x0)" P-INDEP
 ;* V55 tmp54        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V30.ReceivedBytes (fldOffset=0x8)" P-INDEP
 ;  V56 cse0         [V56,T13] (  2,  2   )     int  ->  rdi         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 80
 
 G_M60784_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
        sub      rsp, 80
        lea      rbp, [rsp+0x70]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu32 zmmword ptr [rbp-0x60], zmm8
        mov      rbx, rdi
 						;; size=35 bbWeight=1 PerfScore 8.33
 G_M60784_IG02:
        movzx    rdi, byte  ptr [rbx+0x1D]
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ObjectDisposedException:ThrowIf(ubyte,System.Object)
        call     [rax]System.ObjectDisposedException:ThrowIf(ubyte,System.Object)
        mov      r15, gword ptr [rbx+0x08]
        mov      r14, gword ptr [rbx+0x10]
        test     r14, r14
-       je       G_M60784_IG12
+       je       G_M60784_IG14
        mov      edi, dword ptr [r14+0x08]
        cmp      edi, 0x10000
-       jl       G_M60784_IG12
+       jl       G_M60784_IG14
        mov      gword ptr [rbp-0x30], r14
        xor      edi, edi
        mov      dword ptr [rbp-0x28], edi
        mov      dword ptr [rbp-0x24], 0x10000
        cmp      dword ptr [rbx+0x18], 2
-       jne      SHORT G_M60784_IG04
+       jne      SHORT G_M60784_IG05
 						;; size=75 bbWeight=1 PerfScore 21.25
 G_M60784_IG03:
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      r13, gword ptr [rdi]
-       jmp      SHORT G_M60784_IG05
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M60784_IG16
+						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M60784_IG04:
-       mov      rdi, 0xD1FFAB1E      ; const ptr
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPEndPointStatics:Any
+       mov      r13, gword ptr [rdi]
+       jmp      SHORT G_M60784_IG07
+						;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M60784_IG05:
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M60784_IG15
+						;; size=19 bbWeight=0.50 PerfScore 2.12
+G_M60784_IG06:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPEndPointStatics:IPv6Any
        mov      r13, gword ptr [rdi]
 						;; size=13 bbWeight=0.50 PerfScore 1.12
-G_M60784_IG05:
+G_M60784_IG07:
        cmp      byte  ptr [r15], r15b
        mov      rdi, gword ptr [rbp-0x30]
        mov      rsi, qword ptr [rbp-0x28]
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:ValidateBuffer(System.ArraySegment`1[ubyte])
        call     [rax]System.Net.Sockets.Socket:ValidateBuffer(System.ArraySegment`1[ubyte])
        mov      gword ptr [rbp-0x60], r14
        xor      edx, edx
        mov      dword ptr [rbp-0x58], edx
        mov      dword ptr [rbp-0x54], 0x10000
 						;; size=39 bbWeight=1 PerfScore 11.50
-G_M60784_IG06:
+G_M60784_IG08:
        mov      gword ptr [rsp], rdx
        mov      rdx, gword ptr [rbp-0x60]
        mov      rcx, qword ptr [rbp-0x58]
        lea      rsi, [rbp-0x50]
        mov      rdi, r15
        mov      r9, r13
        xor      r8d, r8d
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:ReceiveFromAsync(System.Memory`1[ubyte],int,System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]:this
        call     [rax]System.Net.Sockets.Socket:ReceiveFromAsync(System.Memory`1[ubyte],int,System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]:this
        mov      r14, gword ptr [rbp-0x50]
        test     r14, r14
-       je       SHORT G_M60784_IG09
+       je       SHORT G_M60784_IG11
 						;; size=46 bbWeight=1 PerfScore 9.75
-G_M60784_IG07:
+G_M60784_IG09:
        mov      rsi, r14
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.Net.Sockets.SocketReceiveFromResult]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        mov      rsi, rax
        test     rsi, rsi
-       jne      SHORT G_M60784_IG08
+       jne      SHORT G_M60784_IG10
        lea      rdi, [rbp-0x50]
        mov      rsi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]:GetTaskForValueTaskSource(System.Threading.Tasks.Sources.IValueTaskSource`1[System.Net.Sockets.SocketReceiveFromResult]):System.Threading.Tasks.Task`1[System.Net.Sockets.SocketReceiveFromResult]:this
        call     [rax]System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]:GetTaskForValueTaskSource(System.Threading.Tasks.Sources.IValueTaskSource`1[System.Net.Sockets.SocketReceiveFromResult]):System.Threading.Tasks.Task`1[System.Net.Sockets.SocketReceiveFromResult]:this
-       jmp      SHORT G_M60784_IG10
+       jmp      SHORT G_M60784_IG12
 						;; size=54 bbWeight=0.50 PerfScore 5.62
-G_M60784_IG08:
+G_M60784_IG10:
        mov      rax, rsi
-       jmp      SHORT G_M60784_IG10
+       jmp      SHORT G_M60784_IG12
 						;; size=5 bbWeight=0.50 PerfScore 1.12
-G_M60784_IG09:
+G_M60784_IG11:
        mov      r15, gword ptr [rbp-0x40]
        mov      r14d, dword ptr [rbp-0x38]
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[System.Net.Sockets.SocketReceiveFromResult]
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      dword ptr [r13+0x34], 0xD1FFAB1E
        lea      rdi, bword ptr [r13+0x38]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
        mov      dword ptr [r13+0x40], r14d
        mov      rax, r13
 						;; size=53 bbWeight=0.50 PerfScore 3.75
-G_M60784_IG10:
+G_M60784_IG12:
        mov      rdi, rbx
        mov      rsi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.UdpClient:<ReceiveAsync>g__WaitAndWrap|61_0(System.Threading.Tasks.Task`1[System.Net.Sockets.SocketReceiveFromResult]):System.Threading.Tasks.Task`1[System.Net.Sockets.UdpReceiveResult]:this
        call     [rax]System.Net.Sockets.UdpClient:<ReceiveAsync>g__WaitAndWrap|61_0(System.Threading.Tasks.Task`1[System.Net.Sockets.SocketReceiveFromResult]):System.Threading.Tasks.Task`1[System.Net.Sockets.UdpReceiveResult]:this
        nop      
 						;; size=19 bbWeight=1 PerfScore 4.00
-G_M60784_IG11:
+G_M60784_IG13:
        add      rsp, 80
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=13 bbWeight=1 PerfScore 3.75
-G_M60784_IG12:
+G_M60784_IG14:
        mov      rdi, r14
        xor      esi, esi
        mov      edx, 0x10000
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
        call     [rax]System.ThrowHelper:ThrowArraySegmentCtorValidationFailedExceptions(System.Array,int,int)
        int3     
 						;; size=23 bbWeight=0.50 PerfScore 2.12
+G_M60784_IG15:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPointStatics
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M60784_IG06
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M60784_IG16:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPointStatics
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M60784_IG04
+						;; size=27 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 390, prolog size 32, PerfScore 74.46, instruction count 96, allocated bytes for code 390 (MethodHash=518d128f) for method System.Net.Sockets.UdpClient:ReceiveAsync():System.Threading.Tasks.Task`1[System.Net.Sockets.UdpReceiveResult]:this (FullOpts)
+; Total bytes of code 482, prolog size 32, PerfScore 78.71, instruction count 110, allocated bytes for code 482 (MethodHash=518d128f) for method System.Net.Sockets.UdpClient:ReceiveAsync():System.Threading.Tasks.Task`1[System.Net.Sockets.UdpReceiveResult]:this (FullOpts)
 ; ============================================================
91 (108.33 % of base) - System.Net.IPNetwork:op_Inequality(System.Net.IPNetwork,System.Net.IPNetwork):ubyte
 ; Assembly listing for method System.Net.IPNetwork:op_Inequality(System.Net.IPNetwork,System.Net.IPNetwork):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Net.IPNetwork>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Net.IPNetwork>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Net.IPNetwork>
-;  V04 tmp2         [V04,T06] (  3,  2   )   ubyte  ->  rbx         "Inline return value spill temp"
+;  V04 tmp2         [V04,T06] (  3,  2   )   ubyte  ->  r15         "Inline return value spill temp"
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Net.IPNetwork>
 ;* V06 tmp4         [V06    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V07 tmp5         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <System.Net.IPAddress>
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V09 tmp7         [V09,T04] (  5,  2.50)     ref  ->  rdi        
+;  V09 tmp7         [V09,T04] (  4,  2   )     ref  ->  r15        
 ;* V10 tmp8         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V11 tmp9         [V11,T05] (  5,  2.50)     ref  ->  rsi        
+;  V11 tmp9         [V11,T05] (  4,  2   )     ref  ->  rsi        
 ;  V12 tmp10        [V12,T02] (  2,  1.50)     ref  ->  rdi         single-def "field V00._baseAddress (fldOffset=0x0)" P-INDEP
 ;  V13 tmp11        [V13,T00] (  2,  2   )     int  ->  rsi         single-def "field V00.<PrefixLength>k__BackingField (fldOffset=0x8)" P-INDEP
-;  V14 tmp12        [V14,T03] (  2,  1.50)     ref  ->  rdx         single-def "field V01._baseAddress (fldOffset=0x0)" P-INDEP
+;  V14 tmp12        [V14,T03] (  2,  1.50)     ref  ->  rbx         single-def "field V01._baseAddress (fldOffset=0x0)" P-INDEP
 ;  V15 tmp13        [V15,T01] (  2,  2   )     int  ->  rcx         single-def "field V01.<PrefixLength>k__BackingField (fldOffset=0x8)" P-INDEP
 ;* V16 tmp14        [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03._baseAddress (fldOffset=0x0)" P-INDEP
 ;* V17 tmp15        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V03.<PrefixLength>k__BackingField (fldOffset=0x8)" P-INDEP
 ;* V18 tmp16        [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V05._baseAddress (fldOffset=0x0)" P-INDEP
 ;* V19 tmp17        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V05.<PrefixLength>k__BackingField (fldOffset=0x8)" P-INDEP
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M22682_IG01:
        push     rbp
+       push     r15
        push     rbx
-       push     rax
        lea      rbp, [rsp+0x10]
-						;; size=8 bbWeight=1 PerfScore 3.50
+       mov      rbx, rdx
+						;; size=12 bbWeight=1 PerfScore 3.75
 G_M22682_IG02:
        cmp      esi, ecx
        je       SHORT G_M22682_IG04
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M22682_IG03:
-       xor      ebx, ebx
-       jmp      SHORT G_M22682_IG05
-						;; size=4 bbWeight=0.50 PerfScore 1.12
+       xor      r15d, r15d
+       jmp      SHORT G_M22682_IG09
+						;; size=5 bbWeight=0.50 PerfScore 1.12
 G_M22682_IG04:
-       mov      rsi, 0xD1FFAB1E      ; const ptr
-       test     rdi, rdi
-       cmove    rdi, gword ptr [rsi]
-       mov      rsi, rdx
-       mov      rax, 0xD1FFAB1E      ; const ptr
+       mov      r15, rdi
+       test     r15, r15
+       jne      SHORT G_M22682_IG06
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M22682_IG11
+						;; size=23 bbWeight=0.50 PerfScore 2.88
+G_M22682_IG05:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      r15, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M22682_IG06:
+       mov      rsi, rbx
        test     rsi, rsi
-       cmove    rsi, gword ptr [rax]
+       jne      SHORT G_M22682_IG08
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M22682_IG12
+						;; size=23 bbWeight=0.50 PerfScore 2.88
+G_M22682_IG07:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rsi, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M22682_IG08:
+       mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this
-       mov      ebx, eax
-						;; size=53 bbWeight=0.50 PerfScore 6.88
-G_M22682_IG05:
-       test     ebx, ebx
+       mov      r15d, eax
+						;; size=20 bbWeight=0.50 PerfScore 3.38
+G_M22682_IG09:
+       test     r15d, r15d
        sete     al
        movzx    rax, al
-						;; size=8 bbWeight=1 PerfScore 1.50
-G_M22682_IG06:
-       add      rsp, 8
+						;; size=9 bbWeight=1 PerfScore 1.50
+G_M22682_IG10:
        pop      rbx
+       pop      r15
        pop      rbp
        ret      
-						;; size=7 bbWeight=1 PerfScore 2.25
+						;; size=5 bbWeight=1 PerfScore 2.50
+G_M22682_IG11:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M22682_IG05
+						;; size=24 bbWeight=0 PerfScore 0.00
+G_M22682_IG12:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M22682_IG07
+						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 84, prolog size 8, PerfScore 16.50, instruction count 26, allocated bytes for code 84 (MethodHash=500ea765) for method System.Net.IPNetwork:op_Inequality(System.Net.IPNetwork,System.Net.IPNetwork):ubyte (FullOpts)
+; Total bytes of code 175, prolog size 9, PerfScore 21.50, instruction count 45, allocated bytes for code 175 (MethodHash=500ea765) for method System.Net.IPNetwork:op_Inequality(System.Net.IPNetwork,System.Net.IPNetwork):ubyte (FullOpts)
 ; ============================================================
90 (48.91 % of base) - System.Net.IPAddress:IsLoopback(System.Net.IPAddress):ubyte
 ; Assembly listing for method System.Net.IPAddress:IsLoopback(System.Net.IPAddress):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  7,  5.50)     ref  ->  rbx         class-hnd single-def <System.Net.IPAddress>
 ;* V01 loc0         [V01    ] (  0,  0   )    long  ->  zero-ref   
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V03 tmp1         [V03    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
 ;* V04 tmp2         [V04    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Net.IPAddress+ReadOnlyIPAddress>
+;* V05 tmp3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Net.IPAddress>
+;  V06 tmp4         [V06,T01] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V07 tmp5         [V07,T02] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;* V08 cse0         [V08,T04] (  0,  0   )   byref  ->  zero-ref    multi-def "CSE #02: aggressive"
+;  V09 rat0         [V09,T03] (  2,  2   )    long  ->  rbx         "Spilling to split statement for tree"
 ;
 ; Lcl frame size = 8
 
 G_M63817_IG01:
        push     rbp
        push     rbx
        push     rax
        lea      rbp, [rsp+0x10]
        mov      rbx, rdi
 						;; size=11 bbWeight=1 PerfScore 3.75
 G_M63817_IG02:
        test     rbx, rbx
-       je       G_M63817_IG09
+       je       G_M63817_IG11
        cmp      gword ptr [rbx+0x08], 0
-       jne      SHORT G_M63817_IG05
+       jne      SHORT G_M63817_IG06
 						;; size=16 bbWeight=1 PerfScore 5.25
 G_M63817_IG03:
-       mov      eax, dword ptr [rbx+0x18]
+       mov      edi, dword ptr [rbx+0x18]
+       movzx    rdi, dil
+       mov      ebx, edi
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M63817_IG13
+						;; size=28 bbWeight=0.50 PerfScore 3.38
+G_M63817_IG04:
+       mov      rax, 0xD1FFAB1E      ; data for System.Net.IPAddress:Loopback
+       mov      rax, gword ptr [rax]
+       mov      eax, dword ptr [rax+0x18]
        movzx    rax, al
-       mov      rsi, 0xD1FFAB1E      ; const ptr
-       mov      rsi, gword ptr [rsi]
-       mov      esi, dword ptr [rsi+0x18]
-       movzx    rsi, sil
-       cmp      rax, rsi
+       cmp      rbx, rax
        sete     al
        movzx    rax, al
-						;; size=35 bbWeight=0.50 PerfScore 4.12
-G_M63817_IG04:
+						;; size=28 bbWeight=0.50 PerfScore 3.00
+G_M63817_IG05:
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
 						;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M63817_IG05:
-       mov      rsi, 0xD1FFAB1E      ; const ptr
+G_M63817_IG06:
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M63817_IG12
+						;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M63817_IG07:
+       mov      rsi, 0xD1FFAB1E      ; data for System.Net.IPAddress:IPv6Loopback
        mov      rsi, gword ptr [rsi]
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this
        call     [rax]System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this
        test     eax, eax
-       je       SHORT G_M63817_IG07
+       je       SHORT G_M63817_IG09
        mov      eax, 1
 						;; size=37 bbWeight=0.50 PerfScore 3.62
-G_M63817_IG06:
+G_M63817_IG08:
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
 						;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M63817_IG07:
-       mov      rsi, 0xD1FFAB1E      ; const ptr
+G_M63817_IG09:
+       mov      rsi, 0xD1FFAB1E      ; data for System.Net.IPAddress:s_loopbackMappedToIPv6
        mov      rsi, gword ptr [rsi]
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this
 						;; size=26 bbWeight=0.50 PerfScore 1.38
-G_M63817_IG08:
+G_M63817_IG10:
        add      rsp, 8
        pop      rbx
        pop      rbp
        tail.jmp [rax]System.Net.IPAddress:Equals(System.Net.IPAddress):ubyte:this
 						;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M63817_IG09:
+G_M63817_IG11:
        mov      edi, 0xC23
        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.50 PerfScore 2.62
+G_M63817_IG12:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M63817_IG07
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M63817_IG13:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M63817_IG04
+						;; size=27 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 184, prolog size 8, PerfScore 24.62, instruction count 49, allocated bytes for code 184 (MethodHash=369f06b6) for method System.Net.IPAddress:IsLoopback(System.Net.IPAddress):ubyte (FullOpts)
+; Total bytes of code 274, prolog size 8, PerfScore 29.00, instruction count 64, allocated bytes for code 274 (MethodHash=369f06b6) for method System.Net.IPAddress:IsLoopback(System.Net.IPAddress):ubyte (FullOpts)
 ; ============================================================
89 (61.38 % of base) - System.Net.Sockets.UdpClient:BeginReceive(System.AsyncCallback,System.Object):System.IAsyncResult:this
 ; Assembly listing for method System.Net.Sockets.UdpClient:BeginReceive(System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  7,  7   )     ref  ->  rbx         this class-hnd single-def <System.Net.Sockets.UdpClient>
 ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->  r15         class-hnd single-def <System.AsyncCallback>
 ;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  r14         class-hnd single-def <System.Object>
-;  V03 loc0         [V03    ] (  2,  2   )     ref  ->  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Net.EndPoint>
+;  V03 loc0         [V03    ] (  2,  2   )     ref  ->  [rbp-0x28]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Net.EndPoint>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
-;  V05 tmp1         [V05,T03] (  3,  2   )     ref  ->  rdi        
+;  V05 tmp1         [V05,T03] (  3,  2   )     ref  ->  r13        
 ;* V06 tmp2         [V06    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.PlatformNotSupportedException>
 ;
-; Lcl frame size = 24
+; Lcl frame size = 32
 
 G_M28170_IG01:
        push     rbp
        push     r15
        push     r14
+       push     r13
        push     rbx
-       sub      rsp, 24
-       lea      rbp, [rsp+0x30]
+       sub      rsp, 32
+       lea      rbp, [rsp+0x40]
        xor      eax, eax
-       mov      qword ptr [rbp-0x20], rax
+       mov      qword ptr [rbp-0x28], rax
        mov      rbx, rdi
        mov      r15, rsi
        mov      r14, rdx
-						;; size=30 bbWeight=1 PerfScore 6.75
+						;; size=32 bbWeight=1 PerfScore 7.75
 G_M28170_IG02:
        movzx    rdi, byte  ptr [rbx+0x1D]
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ObjectDisposedException:ThrowIf(ubyte,System.Object)
        call     [rax]System.ObjectDisposedException:ThrowIf(ubyte,System.Object)
        cmp      dword ptr [rbx+0x18], 2
-       jne      SHORT G_M28170_IG04
+       jne      SHORT G_M28170_IG05
 						;; size=26 bbWeight=1 PerfScore 9.50
 G_M28170_IG03:
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rdi, gword ptr [rdi]
-       jmp      SHORT G_M28170_IG05
-						;; size=15 bbWeight=0.50 PerfScore 2.12
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M28170_IG10
+						;; size=19 bbWeight=0.50 PerfScore 2.12
 G_M28170_IG04:
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rdi, gword ptr [rdi]
-						;; size=13 bbWeight=0.50 PerfScore 1.12
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPEndPointStatics:Any
+       mov      r13, gword ptr [rdi]
+       jmp      SHORT G_M28170_IG07
+						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M28170_IG05:
-       mov      gword ptr [rbp-0x20], rdi
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M28170_IG09
+						;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M28170_IG06:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPEndPointStatics:IPv6Any
+       mov      r13, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M28170_IG07:
+       mov      gword ptr [rbp-0x28], r13
        mov      gword ptr [rsp], r15
        mov      gword ptr [rsp+0x08], r14
        mov      rdi, gword ptr [rbx+0x08]
        mov      rsi, gword ptr [rbx+0x10]
-       lea      r9, [rbp-0x20]
+       lea      r9, [rbp-0x28]
        xor      edx, edx
        mov      ecx, 0x10000
        xor      r8d, r8d
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:BeginReceiveFrom(ubyte[],int,int,int,byref,System.AsyncCallback,System.Object):System.IAsyncResult:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Net.Sockets.Socket:BeginReceiveFrom(ubyte[],int,int,int,byref,System.AsyncCallback,System.Object):System.IAsyncResult:this
        nop      
 						;; size=50 bbWeight=1 PerfScore 14.75
-G_M28170_IG06:
-       add      rsp, 24
+G_M28170_IG08:
+       add      rsp, 32
        pop      rbx
+       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=11 bbWeight=1 PerfScore 3.25
+						;; size=13 bbWeight=1 PerfScore 3.75
+G_M28170_IG09:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPointStatics
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M28170_IG06
+						;; size=24 bbWeight=0 PerfScore 0.00
+G_M28170_IG10:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPointStatics
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M28170_IG04
+						;; size=27 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 145, prolog size 21, PerfScore 37.50, instruction count 41, allocated bytes for code 145 (MethodHash=33d191f5) for method System.Net.Sockets.UdpClient:BeginReceive(System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)
+; Total bytes of code 234, prolog size 23, PerfScore 43.25, instruction count 57, allocated bytes for code 234 (MethodHash=33d191f5) for method System.Net.Sockets.UdpClient:BeginReceive(System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)
 ; ============================================================
83 (48.54 % of base) - System.Net.Sockets.Socket:IsWildcardEndPoint(System.Net.EndPoint):ubyte
 ; Assembly listing for method System.Net.Sockets.Socket:IsWildcardEndPoint(System.Net.EndPoint):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  4,  3.50)     ref  ->  rdi         class-hnd single-def <System.Net.EndPoint>
-;  V01 loc0         [V01,T02] (  3,  1.50)     ref  ->  rax         class-hnd single-def <System.Net.IPEndPoint>
-;  V02 loc1         [V02,T01] (  4,  2   )     ref  ->  rbx         class-hnd single-def <System.Net.IPAddress>
+;  V01 loc0         [V01,T05] (  3,  1.50)     ref  ->  rax         class-hnd single-def <System.Net.IPEndPoint>
+;  V02 loc1         [V02,T04] (  4,  2   )     ref  ->  rbx         class-hnd single-def <System.Net.IPAddress>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
+;  V04 tmp1         [V04,T01] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V05 tmp2         [V05,T02] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V06 tmp3         [V06,T03] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;* V07 cse0         [V07,T06] (  0,  0   )   byref  ->  zero-ref    "CSE #02: moderate"
 ;
 ; Lcl frame size = 8
 
 G_M31841_IG01:
        push     rbp
        push     rbx
        push     rax
        lea      rbp, [rsp+0x10]
 						;; size=8 bbWeight=1 PerfScore 3.50
 G_M31841_IG02:
        test     rdi, rdi
-       je       G_M31841_IG08
+       je       G_M31841_IG10
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M31841_IG03:
        mov      rsi, rdi
        mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPoint
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
-       je       SHORT G_M31841_IG08
+       je       G_M31841_IG10
        mov      rbx, gword ptr [rax+0x08]
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rdi, gword ptr [rdi]
-       mov      rsi, rbx
-       mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:Equals(System.Object):ubyte:this
-       call     [rax]System.Net.IPAddress:Equals(System.Object):ubyte:this
-       test     eax, eax
-       jne      SHORT G_M31841_IG04
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rdi, gword ptr [rdi]
-       mov      rsi, rbx
-       mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:Equals(System.Object):ubyte:this
-       call     [rax]System.Net.IPAddress:Equals(System.Object):ubyte:this
-       test     eax, eax
-       je       SHORT G_M31841_IG06
-						;; size=98 bbWeight=0.50 PerfScore 10.50
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M31841_IG12
+						;; size=57 bbWeight=0.50 PerfScore 5.62
 G_M31841_IG04:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rdi, gword ptr [rdi]
+       mov      rsi, rbx
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+0x40]
+       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       test     eax, eax
+       jne      SHORT G_M31841_IG05
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:IPv6Any
+       mov      rdi, gword ptr [rdi]
+       mov      rsi, rbx
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+0x40]
+       call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+       test     eax, eax
+       je       SHORT G_M31841_IG07
+						;; size=60 bbWeight=0.50 PerfScore 10.75
+G_M31841_IG05:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M31841_IG05:
+G_M31841_IG06:
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
 						;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M31841_IG06:
-       mov      rdi, 0xD1FFAB1E      ; const ptr
+G_M31841_IG07:
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M31841_IG13
+						;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M31841_IG08:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.Sockets.Socket:s_IPAddressAnyMapToIPv6
        mov      rdi, gword ptr [rdi]
        mov      rsi, rbx
-       mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:Equals(System.Object):ubyte:this
-						;; size=26 bbWeight=0.50 PerfScore 1.38
-G_M31841_IG07:
-       add      rsp, 8
-       pop      rbx
-       pop      rbp
-       tail.jmp [rax]System.Net.IPAddress:Equals(System.Object):ubyte:this
-						;; size=9 bbWeight=0.50 PerfScore 1.62
-G_M31841_IG08:
-       xor      eax, eax
-						;; size=2 bbWeight=0.50 PerfScore 0.12
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+0x40]
+						;; size=23 bbWeight=0.50 PerfScore 3.25
 G_M31841_IG09:
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       tail.jmp [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+						;; size=10 bbWeight=0.50 PerfScore 1.62
+G_M31841_IG10:
+       xor      eax, eax
+						;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M31841_IG11:
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
 						;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M31841_IG12:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M31841_IG04
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M31841_IG13:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.Sockets.Socket
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M31841_IG08
+						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 171, prolog size 8, PerfScore 20.75, instruction count 45, allocated bytes for code 171 (MethodHash=59b9839e) for method System.Net.Sockets.Socket:IsWildcardEndPoint(System.Net.EndPoint):ubyte (FullOpts)
+; Total bytes of code 254, prolog size 8, PerfScore 30.62, instruction count 62, allocated bytes for code 254 (MethodHash=59b9839e) for method System.Net.Sockets.Socket:IsWildcardEndPoint(System.Net.EndPoint):ubyte (FullOpts)
 ; ============================================================
59 (147.50 % of base) - System.Net.Sockets.UdpClient:IsBroadcast(System.Net.IPAddress):ubyte
 ; Assembly listing for method System.Net.Sockets.UdpClient:IsBroadcast(System.Net.IPAddress):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  rdi         class-hnd single-def <System.Net.IPAddress>
+;  V00 arg0         [V00,T00] (  5,  4   )     ref  ->  rbx         class-hnd single-def <System.Net.IPAddress>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V02 tmp1         [V02    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;  V03 tmp2         [V03,T01] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M34926_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=1 PerfScore 1.25
+       push     rbx
+       push     rax
+       lea      rbp, [rsp+0x10]
+       mov      rbx, rdi
+						;; size=11 bbWeight=1 PerfScore 3.75
 G_M34926_IG02:
-       cmp      gword ptr [rdi+0x08], 0
-       jne      SHORT G_M34926_IG05
+       cmp      gword ptr [rbx+0x08], 0
+       jne      SHORT G_M34926_IG06
 						;; size=7 bbWeight=1 PerfScore 4.00
 G_M34926_IG03:
-       mov      rsi, 0xD1FFAB1E      ; const ptr
-       mov      rsi, gword ptr [rsi]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-						;; size=20 bbWeight=0.50 PerfScore 3.12
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M34926_IG08
+						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M34926_IG04:
+       mov      rsi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Broadcast
+       mov      rsi, gword ptr [rsi]
+       mov      rdi, rbx
+       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [rax+0x40]
+						;; size=23 bbWeight=0.50 PerfScore 3.25
+G_M34926_IG05:
+       add      rsp, 8
+       pop      rbx
        pop      rbp
        tail.jmp [rax+0x10]System.Object:Equals(System.Object):ubyte:this
-						;; size=5 bbWeight=0.50 PerfScore 1.25
-G_M34926_IG05:
+						;; size=10 bbWeight=0.50 PerfScore 1.62
+G_M34926_IG06:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M34926_IG06:
+G_M34926_IG07:
+       add      rsp, 8
+       pop      rbx
        pop      rbp
        ret      
-						;; size=2 bbWeight=0.50 PerfScore 0.75
+						;; size=7 bbWeight=0.50 PerfScore 1.12
+G_M34926_IG08:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M34926_IG04
+						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 40, prolog size 4, PerfScore 10.50, instruction count 13, allocated bytes for code 40 (MethodHash=fd1f7791) for method System.Net.Sockets.UdpClient:IsBroadcast(System.Net.IPAddress):ubyte (FullOpts)
+; Total bytes of code 99, prolog size 11, PerfScore 16.00, instruction count 28, allocated bytes for code 99 (MethodHash=fd1f7791) for method System.Net.Sockets.UdpClient:IsBroadcast(System.Net.IPAddress):ubyte (FullOpts)
 ; ============================================================
57 (123.91 % of base) - System.Net.IPNetwork:GetHashCode():int:this
 ; Assembly listing for method System.Net.IPNetwork:GetHashCode():int:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  4   )   byref  ->  rdi         this single-def
+;  V00 this         [V00,T00] (  4,  4   )   byref  ->  rbx         this single-def
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Net.IPAddress>
-;  V03 tmp2         [V03,T02] (  2,  4   )     ref  ->  rsi         class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V04 tmp3         [V04,T01] (  5,  5   )     ref  ->  rsi        
+;  V03 tmp2         [V03,T01] (  2,  4   )     ref  ->  rsi         class-hnd single-def "dup spill" <System.Net.IPAddress>
+;  V04 tmp3         [V04,T02] (  4,  3.50)     ref  ->  rsi        
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M42656_IG01:
-						;; size=0 bbWeight=1 PerfScore 0.00
+       push     rbp
+       push     rbx
+       push     rax
+       lea      rbp, [rsp+0x10]
+       mov      rbx, rdi
+						;; size=11 bbWeight=1 PerfScore 3.75
 G_M42656_IG02:
-       mov      rsi, gword ptr [rdi]
-       mov      rdx, 0xD1FFAB1E      ; const ptr
+       mov      rsi, gword ptr [rbx]
        test     rsi, rsi
-       cmove    rsi, gword ptr [rdx]
-       mov      edx, dword ptr [rdi+0x08]
+       jne      SHORT G_M42656_IG05
+						;; size=8 bbWeight=1 PerfScore 3.25
+G_M42656_IG03:
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M42656_IG07
+						;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M42656_IG04:
+       mov      rdx, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rsi, gword ptr [rdx]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M42656_IG05:
+       mov      edx, dword ptr [rbx+0x08]
        mov      rdi, 0xD1FFAB1E      ; System.HashCode:Combine[System.Net.IPAddress,int](System.Net.IPAddress,int):int
        mov      rax, 0xD1FFAB1E      ; code for System.HashCode:Combine[System.__Canon,int](System.__Canon,int):int
-						;; size=43 bbWeight=1 PerfScore 8.00
-G_M42656_IG03:
+						;; size=23 bbWeight=1 PerfScore 2.50
+G_M42656_IG06:
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
        tail.jmp [rax]System.HashCode:Combine[System.__Canon,int](System.__Canon,int):int
-						;; size=3 bbWeight=1 PerfScore 2.00
+						;; size=9 bbWeight=1 PerfScore 3.25
+G_M42656_IG07:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M42656_IG04
+						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 46, prolog size 0, PerfScore 10.00, instruction count 8, allocated bytes for code 46 (MethodHash=5ab2595f) for method System.Net.IPNetwork:GetHashCode():int:this (FullOpts)
+; Total bytes of code 103, prolog size 11, PerfScore 16.00, instruction count 24, allocated bytes for code 103 (MethodHash=5ab2595f) for method System.Net.IPNetwork:GetHashCode():int:this (FullOpts)
 ; ============================================================
54 (16.62 % of base) - System.Net.Sockets.Socket:SetReceivingPacketInformation():this
 ; Assembly listing for method System.Net.Sockets.Socket:SetReceivingPacketInformation():this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 11,  7   )     ref  ->  rbx         this class-hnd single-def <System.Net.Sockets.Socket>
 ;* V01 loc0         [V01    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Net.IPAddress>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;  V03 tmp1         [V03,T02] (  3,  3   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Net.IPEndPoint>
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;  V05 tmp3         [V05,T01] (  8,  4   )     ref  ->  r15        
+;  V06 tmp4         [V06,T03] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
 ;
 ; Lcl frame size = 0
 
 G_M62002_IG01:
        push     rbp
        push     r15
        push     rbx
        lea      rbp, [rsp+0x10]
        mov      rbx, rdi
 						;; size=12 bbWeight=1 PerfScore 3.75
 G_M62002_IG02:
        cmp      byte  ptr [rbx+0x66], 0
-       jne      G_M62002_IG12
+       jne      G_M62002_IG13
 						;; size=10 bbWeight=1 PerfScore 4.00
 G_M62002_IG03:
        mov      rsi, gword ptr [rbx+0x10]
        mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPoint
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
        je       SHORT G_M62002_IG04
        mov      r15, gword ptr [rax+0x08]
        jmp      SHORT G_M62002_IG05
 						;; size=37 bbWeight=0.50 PerfScore 5.38
 G_M62002_IG04:
        xor      r15, r15
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M62002_IG05:
        cmp      dword ptr [rbx+0x50], 2
        jne      SHORT G_M62002_IG06
        mov      rdi, rbx
        xor      esi, esi
        mov      edx, 19
        mov      ecx, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:SetSocketOption(int,int,int):this
        call     [rax]System.Net.Sockets.Socket:SetSocketOption(int,int,int):this
 						;; size=33 bbWeight=0.50 PerfScore 4.12
 G_M62002_IG06:
        test     r15, r15
-       je       G_M62002_IG09
+       je       G_M62002_IG10
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:get_IsDualMode():ubyte:this
        call     [rax]System.Net.Sockets.Socket:get_IsDualMode():ubyte:this
        test     eax, eax
-       je       SHORT G_M62002_IG09
+       je       G_M62002_IG10
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:get_IsIPv4MappedToIPv6():ubyte:this
        call     [rax]System.Net.IPAddress:get_IsIPv4MappedToIPv6():ubyte:this
        test     eax, eax
-       jne      SHORT G_M62002_IG07
-       mov      rsi, 0xD1FFAB1E      ; const ptr
+       jne      SHORT G_M62002_IG08
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M62002_IG14
+						;; size=70 bbWeight=0.50 PerfScore 7.50
+G_M62002_IG07:
+       mov      rsi, 0xD1FFAB1E      ; data for System.Net.IPAddress:IPv6Any
        mov      rsi, gword ptr [rsi]
        mov      rdi, r15
        mov      rax, qword ptr [r15]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x10]System.Object:Equals(System.Object):ubyte:this
        test     eax, eax
-       je       SHORT G_M62002_IG09
-						;; size=77 bbWeight=0.50 PerfScore 10.75
-G_M62002_IG07:
+       je       SHORT G_M62002_IG10
+						;; size=30 bbWeight=0.50 PerfScore 5.38
+G_M62002_IG08:
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
-       je       SHORT G_M62002_IG13
-						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M62002_IG08:
+       je       G_M62002_IG15
+						;; size=19 bbWeight=0.50 PerfScore 2.12
+G_M62002_IG09:
        mov      rdi, 0xD1FFAB1E      ; data for System.Net.Sockets.SocketPal:SupportsDualModeIPv4PacketInfo
        cmp      byte  ptr [rdi], 0
-       je       SHORT G_M62002_IG09
+       je       SHORT G_M62002_IG10
        mov      rdi, rbx
        xor      esi, esi
        mov      edx, 19
        mov      ecx, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:SetSocketOption(int,int,int):this
        call     [rax]System.Net.Sockets.Socket:SetSocketOption(int,int,int):this
 						;; size=42 bbWeight=0.50 PerfScore 4.25
-G_M62002_IG09:
+G_M62002_IG10:
        cmp      dword ptr [rbx+0x50], 23
-       jne      SHORT G_M62002_IG11
+       jne      SHORT G_M62002_IG12
        test     r15, r15
-       je       SHORT G_M62002_IG10
+       je       SHORT G_M62002_IG11
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Net.IPAddress:get_IsIPv4MappedToIPv6():ubyte:this
        call     [rax]System.Net.IPAddress:get_IsIPv4MappedToIPv6():ubyte:this
        test     eax, eax
-       jne      SHORT G_M62002_IG11
+       jne      SHORT G_M62002_IG12
 						;; size=30 bbWeight=0.50 PerfScore 5.00
-G_M62002_IG10:
+G_M62002_IG11:
        mov      rdi, rbx
        mov      esi, 41
        mov      edx, 19
        mov      ecx, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:SetSocketOption(int,int,int):this
        call     [rax]System.Net.Sockets.Socket:SetSocketOption(int,int,int):this
 						;; size=30 bbWeight=0.50 PerfScore 2.12
-G_M62002_IG11:
+G_M62002_IG12:
        mov      byte  ptr [rbx+0x66], 1
 						;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M62002_IG12:
+G_M62002_IG13:
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=5 bbWeight=1 PerfScore 2.50
-G_M62002_IG13:
+G_M62002_IG14:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M62002_IG07
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M62002_IG15:
        mov      rdi, 0xD1FFAB1E      ; System.Net.Sockets.SocketPal
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_NONGCSTATIC_BASE
        call     [rax]CORINFO_HELP_GET_NONGCSTATIC_BASE
-       jmp      G_M62002_IG08
+       jmp      G_M62002_IG09
 						;; size=27 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 325, prolog size 9, PerfScore 44.62, instruction count 80, allocated bytes for code 325 (MethodHash=5fed0dcd) for method System.Net.Sockets.Socket:SetReceivingPacketInformation():this (FullOpts)
+; Total bytes of code 379, prolog size 9, PerfScore 46.75, instruction count 87, allocated bytes for code 379 (MethodHash=5fed0dcd) for method System.Net.Sockets.Socket:SetReceivingPacketInformation():this (FullOpts)
 ; ============================================================
51 (20.73 % of base) - System.Net.IPNetwork:TryFormat(System.Span`1[ubyte],byref):ubyte:this
 ; Assembly listing for method System.Net.IPNetwork:TryFormat(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 7 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  4,  3   )   byref  ->  rbx         this single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
 ;  V02 arg2         [V02,T01] (  4,  3   )   byref  ->  r15         single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ubyte]>
 ;  V04 loc1         [V04,T11] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def <System.Globalization.CultureInfo>
 ;  V05 loc2         [V05    ] ( 16, 11.50)  struct (32) [rbp-0x30]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler>
 ;  V06 loc3         [V06,T13] (  2,  2   )   ubyte  ->  rcx         ld-addr-op
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V08 tmp1         [V08    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ubyte]>
 ;* V10 tmp3         [V10    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ubyte]>
 ;* V12 tmp5         [V12    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V13 tmp6         [V13    ] (  0,  0   )     int  ->  zero-ref   
 ;* V14 tmp7         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;  V15 tmp8         [V15,T06] (  2,  4   )     int  ->  rax         "dup spill"
 ;  V16 tmp9         [V16,T07] (  3,  3   )   ubyte  ->  rax         "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V18 tmp11        [V18    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V19 tmp12        [V19    ] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp13        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V21 tmp14        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Object>
 ;  V22 tmp15        [V22,T12] (  2,  2   )     ref  ->  rdx         class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V23 tmp16        [V23,T09] (  5,  2.50)     ref  ->  rdx        
+;  V23 tmp16        [V23,T09] (  4,  2   )     ref  ->  rdx        
 ;* V24 tmp17        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V25 tmp18        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
 ;* V26 tmp19        [V26,T17] (  0,  0   )   byref  ->  zero-ref    single-def "impAppendStmt"
 ;  V27 tmp20        [V27,T15] (  3,  1.50)     int  ->  rsi         "Inline stloc first use temp"
 ;  V28 tmp21        [V28,T03] (  4,  4   )     int  ->  rsi         "Inlining Arg"
 ;* V29 tmp22        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;  V30 tmp23        [V30,T08] (  2,  3   )   byref  ->  rax         single-def "Inlining Arg"
 ;  V31 tmp24        [V31,T14] (  2,  2   )     int  ->  rdi         "Inlining Arg"
 ;* V32 tmp25        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;  V33 tmp26        [V33,T10] (  3,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V34 tmp27        [V34,T05] (  2,  2   )   byref  ->  rsi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
 ;  V35 tmp28        [V35,T02] (  3,  3   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V36 tmp29        [V36    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;* V37 tmp30        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
 ;* V38 tmp31        [V38    ] (  0,  0   )   byref  ->  zero-ref    "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V39 tmp32        [V39    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V40 tmp33        [V40    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V41 tmp34        [V41    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V42 tmp35        [V42    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V43 tmp36        [V43    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V44 tmp37        [V44    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V25._reference (fldOffset=0x0)" P-INDEP
 ;* V45 tmp38        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x8)" P-INDEP
 ;* V46 tmp39        [V46    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V29._reference (fldOffset=0x0)" P-INDEP
 ;* V47 tmp40        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V29._length (fldOffset=0x8)" P-INDEP
 ;* V48 tmp41        [V48    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V50 tmp43        [V50    ] (  0,  0   )     ref  ->  zero-ref    single-def "V08.[000..008)"
 ;* V51 tmp44        [V51    ] (  0,  0   )     int  ->  zero-ref    "V08.[008..012)"
 ;* V52 tmp45        [V52    ] (  0,  0   )   ubyte  ->  zero-ref    "V08.[012..013)"
 ;* V53 tmp46        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "V08.[013..014)"
 ;* V54 tmp47        [V54    ] (  0,  0   )   byref  ->  zero-ref    single-def "V08.[016..024)"
 ;* V55 tmp48        [V55    ] (  0,  0   )     int  ->  zero-ref    "V08.[024..028)"
 ;  V56 cse0         [V56,T16] (  3,  1.50)     int  ->  rdi         "CSE #01: moderate"
 ;  V57 rat0         [V57,T04] (  3,  4   )     int  ->  rsi         "replacement local"
 ;
 ; Lcl frame size = 32
 
 G_M2960_IG01:
        push     rbp
        push     r15
        push     rbx
        sub      rsp, 32
        lea      rbp, [rsp+0x30]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x30], ymm8
        mov      rbx, rdi
        mov      r15, rcx
 						;; size=29 bbWeight=1 PerfScore 6.58
 G_M2960_IG02:
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rdi, gword ptr [rdi]
        test     edx, edx
        setg     al
        movzx    rax, al
        mov      ecx, eax
        mov      gword ptr [rbp-0x30], rdi
        xor      edi, edi
        mov      dword ptr [rbp-0x28], edi
        mov      byte  ptr [rbp-0x24], al
        mov      byte  ptr [rbp-0x23], 0
        mov      bword ptr [rbp-0x20], rsi
        mov      dword ptr [rbp-0x18], edx
        test     ecx, ecx
-       je       SHORT G_M2960_IG07
-						;; size=50 bbWeight=1 PerfScore 11.50
+       je       G_M2960_IG09
+						;; size=54 bbWeight=1 PerfScore 11.50
 G_M2960_IG03:
        mov      rdx, gword ptr [rbx]
-       mov      rdi, 0xD1FFAB1E      ; const ptr
        test     rdx, rdx
-       cmove    rdx, gword ptr [rdi]
+       jne      SHORT G_M2960_IG05
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M2960_IG15
+						;; size=27 bbWeight=0.50 PerfScore 3.75
+G_M2960_IG04:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rdx, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M2960_IG05:
        lea      rdi, [rbp-0x30]
        mov      rsi, 0xD1FFAB1E      ; System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:AppendFormatted[System.Net.IPAddress](System.Net.IPAddress):ubyte:this
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):ubyte:this
        call     [rax]System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):ubyte:this
        test     eax, eax
-       je       SHORT G_M2960_IG07
+       je       SHORT G_M2960_IG09
        mov      esi, dword ptr [rbp-0x28]
        mov      edi, dword ptr [rbp-0x18]
        cmp      esi, edi
-       ja       SHORT G_M2960_IG12
+       ja       SHORT G_M2960_IG14
        mov      eax, esi
        add      rax, bword ptr [rbp-0x20]
        sub      edi, esi
        mov      esi, -1
        cmp      edi, 1
-       jl       SHORT G_M2960_IG05
-						;; size=78 bbWeight=0.50 PerfScore 9.00
-G_M2960_IG04:
+       jl       SHORT G_M2960_IG07
+						;; size=58 bbWeight=0.50 PerfScore 6.25
+G_M2960_IG06:
        mov      byte  ptr [rax], 47
        mov      esi, 1
 						;; size=8 bbWeight=1 PerfScore 1.25
-G_M2960_IG05:
+G_M2960_IG07:
        test     esi, esi
-       jl       SHORT G_M2960_IG06
+       jl       SHORT G_M2960_IG08
        add      esi, dword ptr [rbp-0x28]
        mov      dword ptr [rbp-0x28], esi
        mov      esi, dword ptr [rbx+0x08]
        lea      rdi, [rbp-0x30]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:AppendFormatted[uint](uint):ubyte:this
        call     [rax]System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:AppendFormatted[uint](uint):ubyte:this
-       jmp      SHORT G_M2960_IG07
+       jmp      SHORT G_M2960_IG09
 						;; size=31 bbWeight=0.50 PerfScore 6.00
-G_M2960_IG06:
+G_M2960_IG08:
        mov      byte  ptr [rbp-0x24], 0
 						;; size=4 bbWeight=0.50 PerfScore 0.50
-G_M2960_IG07:
+G_M2960_IG09:
        cmp      byte  ptr [rbp-0x24], 0
-       jne      SHORT G_M2960_IG10
+       jne      SHORT G_M2960_IG12
 						;; size=6 bbWeight=1 PerfScore 3.00
-G_M2960_IG08:
+G_M2960_IG10:
        xor      eax, eax
        mov      dword ptr [r15], eax
 						;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M2960_IG09:
-       jmp      SHORT G_M2960_IG11
+G_M2960_IG11:
+       jmp      SHORT G_M2960_IG13
 						;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M2960_IG10:
+G_M2960_IG12:
        mov      eax, dword ptr [rbp-0x28]
        mov      dword ptr [r15], eax
        mov      eax, 1
 						;; size=11 bbWeight=0.50 PerfScore 1.12
-G_M2960_IG11:
+G_M2960_IG13:
        add      rsp, 32
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 2.75
-G_M2960_IG12:
+G_M2960_IG14:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0.50 PerfScore 1.75
+G_M2960_IG15:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M2960_IG04
+						;; size=27 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 246, prolog size 23, PerfScore 45.08, instruction count 72, allocated bytes for code 246 (MethodHash=3b27f46f) for method System.Net.IPNetwork:TryFormat(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
+; Total bytes of code 297, prolog size 23, PerfScore 47.21, instruction count 80, allocated bytes for code 297 (MethodHash=3b27f46f) for method System.Net.IPNetwork:TryFormat(System.Span`1[ubyte],byref):ubyte:this (FullOpts)
 ; ============================================================
51 (21.52 % of base) - System.Net.IPNetwork:TryFormat(System.Span`1[ushort],byref):ubyte:this
 ; Assembly listing for method System.Net.IPNetwork:TryFormat(System.Span`1[ushort],byref):ubyte:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 5 single block inlinees; 9 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  4,  3   )   byref  ->  rbx         this single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ushort]>
 ;  V02 arg2         [V02,T01] (  4,  3   )   byref  ->  r15         single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;  V04 loc1         [V04,T09] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def <System.Globalization.CultureInfo>
 ;  V05 loc2         [V05    ] ( 16, 11.50)  struct (32) [rbp-0x30]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.MemoryExtensions+TryWriteInterpolatedStringHandler>
 ;  V06 loc3         [V06,T12] (  2,  2   )   ubyte  ->  rcx         ld-addr-op
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V08 tmp1         [V08    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.MemoryExtensions+TryWriteInterpolatedStringHandler>
 ;* V09 tmp2         [V09    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;* V10 tmp3         [V10    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V11 tmp4         [V11    ] (  0,  0   )  struct (16) zero-ref    <System.Span`1[ushort]>
 ;* V12 tmp5         [V12    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V13 tmp6         [V13    ] (  0,  0   )     int  ->  zero-ref   
 ;* V14 tmp7         [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V15 tmp8         [V15,T05] (  2,  4   )     int  ->  rax         "dup spill"
 ;  V16 tmp9         [V16,T06] (  3,  3   )   ubyte  ->  rax         "Inline stloc first use temp"
 ;* V17 tmp10        [V17    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V18 tmp11        [V18    ] (  0,  0   )   byref  ->  zero-ref   
 ;* V19 tmp12        [V19    ] (  0,  0   )     int  ->  zero-ref   
 ;* V20 tmp13        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V21 tmp14        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Object>
 ;  V22 tmp15        [V22,T10] (  2,  2   )     ref  ->  rdx         class-hnd single-def "dup spill" <System.Net.IPAddress>
-;  V23 tmp16        [V23,T07] (  5,  2.50)     ref  ->  rdx        
+;  V23 tmp16        [V23,T07] (  4,  2   )     ref  ->  rdx        
 ;* V24 tmp17        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V25 tmp18        [V25    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ushort]>
 ;  V26 tmp19        [V26,T03] (  4,  4   )     int  ->  rsi         "Inlining Arg"
 ;* V27 tmp20        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;  V28 tmp21        [V28,T11] (  2,  2   )   byref  ->  rax         single-def "Inlining Arg"
 ;  V29 tmp22        [V29,T13] (  2,  2   )     int  ->  rdi         "Inlining Arg"
 ;* V30 tmp23        [V30,T15] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V31 tmp24        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V32 tmp25        [V32    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V33 tmp26        [V33    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V34 tmp27        [V34,T08] (  3,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V35 tmp28        [V35,T04] (  2,  2   )   byref  ->  rsi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
 ;  V36 tmp29        [V36,T02] (  3,  3   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V37 tmp30        [V37    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V03._reference (fldOffset=0x0)" P-INDEP
 ;* V38 tmp31        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
 ;* V39 tmp32        [V39    ] (  0,  0   )   byref  ->  zero-ref    "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V40 tmp33        [V40    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
 ;* V41 tmp34        [V41    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V42 tmp35        [V42    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V43 tmp36        [V43    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V44 tmp37        [V44    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V45 tmp38        [V45    ] (  0,  0   )   byref  ->  zero-ref    "field V25._reference (fldOffset=0x0)" P-INDEP
 ;* V46 tmp39        [V46    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x8)" P-INDEP
 ;* V47 tmp40        [V47    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V27._reference (fldOffset=0x0)" P-INDEP
 ;* V48 tmp41        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V27._length (fldOffset=0x8)" P-INDEP
 ;* V49 tmp42        [V49    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V50 tmp43        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
 ;* V51 tmp44        [V51    ] (  0,  0   )     ref  ->  zero-ref    single-def "V08.[000..008)"
 ;* V52 tmp45        [V52    ] (  0,  0   )     int  ->  zero-ref    "V08.[008..012)"
 ;* V53 tmp46        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "V08.[012..013)"
 ;* V54 tmp47        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "V08.[013..014)"
 ;* V55 tmp48        [V55    ] (  0,  0   )   byref  ->  zero-ref    single-def "V08.[016..024)"
 ;* V56 tmp49        [V56    ] (  0,  0   )     int  ->  zero-ref    "V08.[024..028)"
 ;  V57 cse0         [V57,T14] (  3,  1.50)     int  ->  rdi         "CSE #01: moderate"
 ;
 ; Lcl frame size = 32
 
 G_M47208_IG01:
        push     rbp
        push     r15
        push     rbx
        sub      rsp, 32
        lea      rbp, [rsp+0x30]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x30], ymm8
        mov      rbx, rdi
        mov      r15, rcx
 						;; size=29 bbWeight=1 PerfScore 6.58
 G_M47208_IG02:
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rdi, gword ptr [rdi]
        test     edx, edx
        setg     al
        movzx    rax, al
        mov      ecx, eax
        mov      gword ptr [rbp-0x30], rdi
        xor      edi, edi
        mov      dword ptr [rbp-0x28], edi
        mov      byte  ptr [rbp-0x24], al
        mov      byte  ptr [rbp-0x23], 0
        mov      bword ptr [rbp-0x20], rsi
        mov      dword ptr [rbp-0x18], edx
        test     ecx, ecx
-       je       SHORT G_M47208_IG05
-						;; size=50 bbWeight=1 PerfScore 11.50
+       je       G_M47208_IG07
+						;; size=54 bbWeight=1 PerfScore 11.50
 G_M47208_IG03:
        mov      rdx, gword ptr [rbx]
-       mov      rdi, 0xD1FFAB1E      ; const ptr
        test     rdx, rdx
-       cmove    rdx, gword ptr [rdi]
+       jne      SHORT G_M47208_IG05
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M47208_IG13
+						;; size=27 bbWeight=0.50 PerfScore 3.75
+G_M47208_IG04:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rdx, gword ptr [rdi]
+						;; size=13 bbWeight=0.50 PerfScore 1.12
+G_M47208_IG05:
        lea      rdi, [rbp-0x30]
        mov      rsi, 0xD1FFAB1E      ; System.MemoryExtensions+TryWriteInterpolatedStringHandler:AppendFormatted[System.Net.IPAddress](System.Net.IPAddress):ubyte:this
        mov      rax, 0xD1FFAB1E      ; code for System.MemoryExtensions+TryWriteInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):ubyte:this
        call     [rax]System.MemoryExtensions+TryWriteInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):ubyte:this
        test     eax, eax
-       je       SHORT G_M47208_IG05
+       je       SHORT G_M47208_IG07
        mov      esi, dword ptr [rbp-0x28]
        mov      edi, dword ptr [rbp-0x18]
        cmp      esi, edi
-       ja       SHORT G_M47208_IG10
+       ja       SHORT G_M47208_IG12
        mov      rax, bword ptr [rbp-0x20]
        mov      ecx, esi
        lea      rax, bword ptr [rax+2*rcx]
        sub      edi, esi
-       jne      SHORT G_M47208_IG04
+       jne      SHORT G_M47208_IG06
        mov      byte  ptr [rbp-0x24], 0
-       jmp      SHORT G_M47208_IG05
-						;; size=80 bbWeight=0.50 PerfScore 10.00
-G_M47208_IG04:
+       jmp      SHORT G_M47208_IG07
+						;; size=60 bbWeight=0.50 PerfScore 7.25
+G_M47208_IG06:
        mov      word  ptr [rax], 47
        mov      esi, dword ptr [rbp-0x28]
        inc      esi
        mov      dword ptr [rbp-0x28], esi
        mov      esi, dword ptr [rbx+0x08]
        lea      rdi, [rbp-0x30]
        mov      rax, 0xD1FFAB1E      ; code for System.MemoryExtensions+TryWriteInterpolatedStringHandler:AppendFormatted[uint](uint):ubyte:this
        call     [rax]System.MemoryExtensions+TryWriteInterpolatedStringHandler:AppendFormatted[uint](uint):ubyte:this
 						;; size=32 bbWeight=0.50 PerfScore 4.50
-G_M47208_IG05:
+G_M47208_IG07:
        cmp      byte  ptr [rbp-0x24], 0
-       jne      SHORT G_M47208_IG08
+       jne      SHORT G_M47208_IG10
 						;; size=6 bbWeight=1 PerfScore 3.00
-G_M47208_IG06:
+G_M47208_IG08:
        xor      eax, eax
        mov      dword ptr [r15], eax
 						;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M47208_IG07:
-       jmp      SHORT G_M47208_IG09
+G_M47208_IG09:
+       jmp      SHORT G_M47208_IG11
 						;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M47208_IG08:
+G_M47208_IG10:
        mov      eax, dword ptr [rbp-0x28]
        mov      dword ptr [r15], eax
        mov      eax, 1
 						;; size=11 bbWeight=0.50 PerfScore 1.12
-G_M47208_IG09:
+G_M47208_IG11:
        add      rsp, 32
        pop      rbx
        pop      r15
        pop      rbp
        ret      
 						;; size=9 bbWeight=1 PerfScore 2.75
-G_M47208_IG10:
+G_M47208_IG12:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0.50 PerfScore 1.75
+G_M47208_IG13:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M47208_IG04
+						;; size=27 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 237, prolog size 23, PerfScore 42.83, instruction count 69, allocated bytes for code 237 (MethodHash=49b44797) for method System.Net.IPNetwork:TryFormat(System.Span`1[ushort],byref):ubyte:this (FullOpts)
+; Total bytes of code 288, prolog size 23, PerfScore 44.96, instruction count 77, allocated bytes for code 288 (MethodHash=49b44797) for method System.Net.IPNetwork:TryFormat(System.Span`1[ushort],byref):ubyte:this (FullOpts)
 ; ============================================================
51 (60.71 % of base) - System.Net.Sockets.MulticastOption:.ctor(System.Net.IPAddress):this
 ; Assembly listing for method System.Net.Sockets.MulticastOption:.ctor(System.Net.IPAddress):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  5,  5   )     ref  ->  rbx         this class-hnd single-def <System.Net.Sockets.MulticastOption>
 ;  V01 arg1         [V01,T01] (  4,  4   )     ref  ->  rsi         class-hnd single-def <System.Net.IPAddress>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Net.IPAddress+ReadOnlyIPAddress>
+;  V03 tmp1         [V03,T02] (  2,  4   )     ref  ->  rsi         class-hnd single-def "Inlining Arg" <System.Net.IPAddress>
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M59009_IG01:
+       push     rbp
        push     rbx
+       push     rax
+       lea      rbp, [rsp+0x10]
        mov      rbx, rdi
-						;; size=4 bbWeight=1 PerfScore 1.25
+						;; size=11 bbWeight=1 PerfScore 3.75
 G_M59009_IG02:
        test     rsi, rsi
-       je       SHORT G_M59009_IG04
+       je       SHORT G_M59009_IG05
        lea      rdi, bword ptr [rbx+0x08]
        call     CORINFO_HELP_ASSIGN_REF
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       SHORT G_M59009_IG06
+						;; size=29 bbWeight=1 PerfScore 7.00
+G_M59009_IG03:
+       mov      rdi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rsi, gword ptr [rdi]
        xor      edi, edi
        mov      dword ptr [rbx+0x18], edi
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rsi, gword ptr [rdi]
        lea      rdi, bword ptr [rbx+0x10]
        call     CORINFO_HELP_ASSIGN_REF
        nop      
-						;; size=42 bbWeight=1 PerfScore 8.00
-G_M59009_IG03:
-       pop      rbx
-       ret      
-						;; size=2 bbWeight=1 PerfScore 1.50
+						;; size=28 bbWeight=1 PerfScore 5.25
 G_M59009_IG04:
+       add      rsp, 8
+       pop      rbx
+       pop      rbp
+       ret      
+						;; size=7 bbWeight=1 PerfScore 2.25
+G_M59009_IG05:
        mov      edi, 0x137D
        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.50 PerfScore 2.62
+G_M59009_IG06:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      SHORT G_M59009_IG03
+						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 84, prolog size 1, PerfScore 13.38, instruction count 22, allocated bytes for code 84 (MethodHash=c5ce197e) for method System.Net.Sockets.MulticastOption:.ctor(System.Net.IPAddress):this (FullOpts)
+; Total bytes of code 135, prolog size 8, PerfScore 20.88, instruction count 34, allocated bytes for code 135 (MethodHash=c5ce197e) for method System.Net.Sockets.MulticastOption:.ctor(System.Net.IPAddress):this (FullOpts)
 ; ============================================================
51 (20.56 % of base) - System.Net.Sockets.TcpListener:.ctor(int):this
 ; Assembly listing for method System.Net.Sockets.TcpListener:.ctor(int):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  5,  5   )     ref  ->  rbx         this class-hnd single-def <System.Net.Sockets.TcpListener>
-;  V01 arg1         [V01,T02] (  5,  4.50)     int  ->  r15         single-def
+;  V00 this         [V00,T00] (  5,  5   )     ref  ->  rbx         this class-hnd single-def <System.Net.Sockets.TcpListener>
+;  V01 arg1         [V01,T01] (  5,  4.50)     int  ->  r15         single-def
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-;  V03 tmp1         [V03,T00] (  4,  8   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
+;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
 ;  V04 tmp2         [V04,T03] (  3,  6   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.Socket>
 ;  V05 tmp3         [V05,T06] (  2,  4   )     int  ->  r15         "finalizable newobj spill"
 ;  V06 tmp4         [V06,T07] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
 ;* V07 tmp5         [V07,T09] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V08 tmp6         [V08,T05] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Net.IPAddress+ReadOnlyIPAddress>
-;* V09 tmp7         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
-;* V10 tmp8         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V11 tmp9         [V11,T04] (  3,  6   )     ref  ->  rdi         single-def "argument with side effect"
-;* V12 tmp10        [V12    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V13 tmp11        [V13,T08] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V08 tmp6         [V08,T05] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
+;  V09 tmp7         [V09,T04] (  3,  6   )     ref  ->  rdi         single-def "argument with side effect"
+;  V10 tmp8         [V10,T08] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
 ;
 ; Lcl frame size = 8
 
 G_M21329_IG01:
        push     rbp
        push     r15
        push     r14
        push     rbx
        push     rax
        lea      rbp, [rsp+0x20]
        mov      rbx, rdi
        mov      r15d, esi
 						;; size=18 bbWeight=1 PerfScore 6.00
 G_M21329_IG02:
        test     r15d, r15d
-       jl       G_M21329_IG06
+       jl       G_M21329_IG07
 						;; size=9 bbWeight=1 PerfScore 1.25
 G_M21329_IG03:
        cmp      r15d, 0xFFFF
-       jg       G_M21329_IG06
+       jg       G_M21329_IG07
 						;; size=13 bbWeight=0.50 PerfScore 0.62
 G_M21329_IG04:
        mov      rdi, 0xD1FFAB1E      ; System.Net.IPEndPoint
        call     CORINFO_HELP_NEWSFAST
        mov      r14, rax
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rsi, gword ptr [rdi]
-       mov      dword ptr [r14+0x10], r15d
-       lea      rdi, bword ptr [r14+0x08]
-       call     CORINFO_HELP_ASSIGN_REF
+       mov      rdi, 0xD1FFAB1E      ; global ptr
+       test     byte  ptr [rdi], 1
+       je       G_M21329_IG08
+						;; size=37 bbWeight=1 PerfScore 5.75
+G_M21329_IG05:
+       mov      rsi, 0xD1FFAB1E      ; data for System.Net.IPAddress:Any
+       mov      rsi, gword ptr [rsi]
+       mov      rdi, r14
+       mov      edx, r15d
+       mov      rax, 0xD1FFAB1E      ; code for System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
+       call     [rax]System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
        lea      rdi, bword ptr [rbx+0x08]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, gword ptr [rbx+0x08]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x20]System.Net.EndPoint:get_AddressFamily():int:this
        mov      r15d, eax
        mov      rdi, 0xD1FFAB1E      ; System.Net.Sockets.Socket
        call     CORINFO_HELP_NEWFAST
        mov      r14, rax
        mov      rdi, r14
        mov      esi, r15d
        mov      edx, 1
        mov      ecx, 6
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket:.ctor(int,int,int):this
        call     [rax]System.Net.Sockets.Socket:.ctor(int,int,int):this
        lea      rdi, bword ptr [rbx+0x10]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        nop      
-						;; size=132 bbWeight=1 PerfScore 25.00
-G_M21329_IG05:
+						;; size=119 bbWeight=1 PerfScore 24.75
+G_M21329_IG06:
        add      rsp, 8
        pop      rbx
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=11 bbWeight=1 PerfScore 3.25
-G_M21329_IG06:
+G_M21329_IG07:
        mov      rdi, 0xD1FFAB1E      ; System.ArgumentOutOfRangeException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      edi, 0x196D
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentOutOfRangeException:.ctor(System.String):this
        call     [rax]System.ArgumentOutOfRangeException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=65 bbWeight=0 PerfScore 0.00
+G_M21329_IG08:
+       mov      rdi, 0xD1FFAB1E      ; System.Net.IPAddress
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
+       call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
+       jmp      G_M21329_IG05
+						;; size=27 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 248, prolog size 12, PerfScore 36.12, instruction count 60, allocated bytes for code 248 (MethodHash=5810acae) for method System.Net.Sockets.TcpListener:.ctor(int):this (FullOpts)
+; Total bytes of code 299, prolog size 12, PerfScore 41.62, instruction count 68, allocated bytes for code 299 (MethodHash=5810acae) for method System.Net.Sockets.TcpListener:.ctor(int):this (FullOpts)
 ; ============================================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment