Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created June 17, 2024 16:08
Show Gist options
  • Save MihuBot/5a1979d1bbdc8f9a26f70401db7c7bf6 to your computer and use it in GitHub Desktop.
Save MihuBot/5a1979d1bbdc8f9a26f70401db7c7bf6 to your computer and use it in GitHub Desktop.

Top method improvements

-148 (-18.50 % of base) - System.Text.Json.Serialization.Metadata.JsonTypeInfo:CreateJsonTypeInfo[System.Numerics.Vector`1[float]](System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Numerics.Vector`1[float]]
 ; Assembly listing for method System.Text.Json.Serialization.Metadata.JsonTypeInfo:CreateJsonTypeInfo[System.Numerics.Vector`1[float]](System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Numerics.Vector`1[float]] (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 3 single block inlinees; 12 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T04] (  6,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.Json.JsonSerializerOptions>
+;  V00 arg0         [V00,T03] (  6,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.Json.JsonSerializerOptions>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T03] (  4,  8   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Numerics.Vector`1[float]]>
+;  V02 tmp1         [V02,T02] (  4,  8   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Numerics.Vector`1[float]]>
 ;* V03 tmp2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline return value spill temp" <System.Text.Json.Serialization.JsonConverter>
 ;  V04 tmp3         [V04,T01] ( 13, 10   )     ref  ->  r14         class-hnd "Inline stloc first use temp" <System.Text.Json.Serialization.JsonConverter>
 ;* V05 tmp4         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.JsonConverter>
-;  V06 tmp5         [V06,T05] (  4,  7   )     ref  ->  r14         class-hnd "Inlining Arg" <System.Text.Json.Serialization.JsonConverter>
+;  V06 tmp5         [V06,T04] (  4,  7   )     ref  ->  r14         class-hnd "Inlining Arg" <System.Text.Json.Serialization.JsonConverter>
 ;  V07 tmp6         [V07,T07] (  6,  3   )     ref  ->  r13         class-hnd single-def "Inline stloc first use temp" <System.Text.Json.Serialization.JsonConverterFactory>
 ;* V08 tmp7         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.JsonConverter>
-;  V09 tmp8         [V09,T11] (  4,  2   )     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <System.Text.Json.Serialization.JsonConverter>
-;  V10 tmp9         [V10,T16] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V11 tmp10        [V11,T00] ( 12, 13   )     ref  ->  r12         class-hnd single-def "Inlining Arg" <System.Type>
-;  V12 tmp11        [V12,T12] (  3,  2   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V09 tmp8         [V09,T10] (  4,  2   )     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <System.Text.Json.Serialization.JsonConverter>
+;  V10 tmp9         [V10,T13] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V11 tmp10        [V11,T00] (  9, 12   )     ref  ->  r12         class-hnd single-def "Inlining Arg" <System.Type>
+;  V12 tmp11        [V12,T12] (  2,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V13 tmp12        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V14 tmp13        [V14,T17] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;  V14 tmp13        [V14,T14] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
 ;* V15 tmp14        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "non-inline candidate call" <System.RuntimeType>
-;* V16 tmp15        [V16,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V17 tmp16        [V17,T20] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;* V16 tmp15        [V16,T17] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V17 tmp16        [V17,T16] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V18 tmp17        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.RuntimeType>
-;  V19 tmp18        [V19,T15] (  2,  2   )     int  ->  r12         "non-inline candidate call"
-;  V20 tmp19        [V20,T18] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;* V19 tmp18        [V19    ] (  0,  0   )     int  ->  zero-ref    "non-inline candidate call"
+;* V20 tmp19        [V20,T18] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V21 tmp20        [V21,T06] (  5,  5   )     ref  ->  r13         class-hnd single-def "Inlining Arg" <System.Type>
-;  V22 tmp21        [V22,T08] (  3,  3   )     ref  ->  rax         single-def "arr expr"
-;  V23 tmp22        [V23,T13] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V24 tmp23        [V24,T09] (  3,  3   )     ref  ->  rax         single-def "arr expr"
-;  V25 tmp24        [V25,T14] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V26 tmp25        [V26,T22] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V27 cse0         [V27,T19] (  3,  1.50)    long  ->  [rbp-0x30]  "CSE #06: moderate"
-;  V28 cse1         [V28,T10] (  3,  2.50)    long  ->  r13         "CSE #08: moderate"
-;  V29 cse2         [V29,T02] ( 14,  8   )     ref  ->  r15         "CSE #01: aggressive"
+;* V22 tmp21        [V22    ] (  0,  0   )     ref  ->  zero-ref    "arr expr"
+;* V23 tmp22        [V23    ] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
+;  V24 tmp23        [V24,T08] (  3,  3   )     ref  ->  rax         single-def "arr expr"
+;  V25 tmp24        [V25,T11] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V26 tmp25        [V26,T19] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V27 cse0         [V27,T15] (  3,  1.50)    long  ->  [rbp-0x30]  "CSE #04: moderate"
+;  V28 cse1         [V28,T09] (  3,  2.50)    long  ->  r13         "CSE #06: moderate"
+;  V29 cse2         [V29,T05] ( 11,  6.50)     ref  ->  r15         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M50242_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        lea      rbp, [rsp+0x30]
        mov      rbx, rdi
 						;; size=19 bbWeight=1 PerfScore 7.75
 G_M50242_IG02:
        test     rbx, rbx
-       je       G_M50242_IG25
+       je       G_M50242_IG19
        mov      rdi, rbx
        mov      r15, 0xD1FFAB1E      ; 'System.Numerics.Vector`1[System.Single]'
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializerOptions:GetConverterFromList(System.Type):System.Text.Json.Serialization.JsonConverter:this
        call     [rax]System.Text.Json.JsonSerializerOptions:GetConverterFromList(System.Type):System.Text.Json.Serialization.JsonConverter:this
        mov      r14, rax
        test     r14, r14
        jne      SHORT G_M50242_IG04
 						;; size=45 bbWeight=1 PerfScore 6.75
 G_M50242_IG03:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter
        call     [rax]System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter
        mov      r14, rax
 						;; size=18 bbWeight=0.50 PerfScore 1.88
 G_M50242_IG04:
        mov      rsi, r14
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Serialization.JsonConverterFactory
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        mov      r13, rax
        test     r13, r13
        je       SHORT G_M50242_IG06
 						;; size=33 bbWeight=1 PerfScore 5.25
 G_M50242_IG05:
        mov      rdi, r13
        mov      rdx, rbx
        mov      rsi, r15
        mov      rax, qword ptr [r13]
        mov      rax, qword ptr [rax+0x60]
        call     [rax]System.Text.Json.Serialization.JsonConverterFactory:CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.JsonConverter:this
        mov      r14, rax
        test     r14, r14
-       je       G_M50242_IG21
+       je       G_M50242_IG15
        mov      rsi, r14
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Serialization.JsonConverterFactory
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
-       jne      G_M50242_IG24
+       jne      G_M50242_IG18
 						;; size=65 bbWeight=0.50 PerfScore 7.12
 G_M50242_IG06:
        mov      rdi, r14
        mov      rax, qword ptr [r14]
        mov      r13, qword ptr [rax+0x40]
        call     [r13+0x20]System.Text.Json.Serialization.JsonConverter:get_Type():System.Type:this
        mov      r12, rax
-       mov      rdi, r15
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       call     [rax]System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
-       cmp      rax, rdi
-       jne      SHORT G_M50242_IG08
-						;; size=47 bbWeight=1 PerfScore 12.50
-G_M50242_IG07:
-       mov      rdi, r12
-       mov      rax, 0xD1FFAB1E      ; code for System.Type:get_IsInterface():ubyte:this
-       cmp      dword ptr [rdi], edi
-       call     [rax]System.Type:get_IsInterface():ubyte:this
-       test     eax, eax
-       jne      SHORT G_M50242_IG09
-						;; size=21 bbWeight=0.50 PerfScore 3.88
-G_M50242_IG08:
        mov      rdi, r12
        mov      rsi, r15
        mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0xB0]
        call     [rax+0x20]System.Type:IsAssignableFrom(System.Type):ubyte:this
-       jmp      SHORT G_M50242_IG10
-						;; size=22 bbWeight=0.50 PerfScore 4.75
-G_M50242_IG09:
-       mov      rdi, r15
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericArguments():System.Type[]:this
-       call     [rax]System.RuntimeType:GetGenericArguments():System.Type[]:this
-       cmp      dword ptr [rax+0x08], 0
-       jbe      G_M50242_IG26
-       mov      rsi, gword ptr [rax+0x10]
-       mov      rdi, r12
-       mov      rax, qword ptr [r12]
-       mov      rax, qword ptr [rax+0xB0]
-       call     [rax+0x20]System.Type:IsAssignableFrom(System.Type):ubyte:this
-						;; size=46 bbWeight=0.50 PerfScore 8.38
-G_M50242_IG10:
        test     eax, eax
-       jne      G_M50242_IG15
-						;; size=8 bbWeight=1 PerfScore 1.25
-G_M50242_IG11:
+       jne      G_M50242_IG11
+						;; size=45 bbWeight=1 PerfScore 16.25
+G_M50242_IG07:
        mov      rdi, r12
        mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x08]System.Type:get_IsGenericType():ubyte:this
        test     eax, eax
-       je       SHORT G_M50242_IG12
+       je       SHORT G_M50242_IG08
        mov      rdi, r12
        mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0x68]
        mov      qword ptr [rbp-0x30], rax
        call     [rax+0x18]System.Type:GetGenericTypeDefinition():System.Type:this
        mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
        cmp      rax, rdi
-       jne      SHORT G_M50242_IG12
+       jne      SHORT G_M50242_IG08
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_IsInterface():ubyte:this
        call     [rax]System.RuntimeType:get_IsInterface():ubyte:this
        test     eax, eax
-       jne      SHORT G_M50242_IG13
+       jne      SHORT G_M50242_IG09
 						;; size=70 bbWeight=0.50 PerfScore 11.50
-G_M50242_IG12:
+G_M50242_IG08:
        mov      rsi, r12
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
        call     [rax]System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
-       jmp      SHORT G_M50242_IG14
+       jmp      SHORT G_M50242_IG10
 						;; size=20 bbWeight=0.50 PerfScore 2.88
-G_M50242_IG13:
+G_M50242_IG09:
        mov      rax, qword ptr [rbp-0x30]
        mov      rdi, r12
        call     [rax+0x28]System.Type:GetGenericArguments():System.Type[]:this
        cmp      dword ptr [rax+0x08], 0
-       jbe      G_M50242_IG26
+       jbe      G_M50242_IG20
        mov      rsi, gword ptr [rax+0x10]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
        call     [rax]System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
 						;; size=39 bbWeight=0.50 PerfScore 6.88
-G_M50242_IG14:
+G_M50242_IG10:
        test     eax, eax
-       je       G_M50242_IG23
+       je       G_M50242_IG17
 						;; size=8 bbWeight=0.50 PerfScore 0.62
-G_M50242_IG15:
+G_M50242_IG11:
        cmp      byte  ptr [r14+0x17], 0
-       je       SHORT G_M50242_IG19
+       je       SHORT G_M50242_IG13
 						;; size=7 bbWeight=1 PerfScore 4.00
-G_M50242_IG16:
-       mov      rdi, r15
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       call     [rax]System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
-       cmp      rax, rdi
-       sete     r12b
-       movzx    r12, r12b
+G_M50242_IG12:
        mov      rdi, r14
        call     [r13+0x20]System.Text.Json.Serialization.JsonConverter:get_Type():System.Type:this
        mov      r13, rax
        mov      rdi, r13
        mov      rax, qword ptr [r13]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x08]System.Type:get_IsGenericType():ubyte:this
        test     eax, eax
-       jne      SHORT G_M50242_IG17
-       xor      eax, eax
-       jmp      SHORT G_M50242_IG18
-						;; size=68 bbWeight=0.50 PerfScore 9.75
-G_M50242_IG17:
+       je       SHORT G_M50242_IG13
        mov      rdi, r13
        mov      rax, qword ptr [r13]
        mov      rax, qword ptr [rax+0x68]
        call     [rax+0x18]System.Type:GetGenericTypeDefinition():System.Type:this
        mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
        cmp      rax, rdi
-       sete     al
-       movzx    rax, al
-						;; size=33 bbWeight=0.50 PerfScore 4.50
-G_M50242_IG18:
-       xor      eax, r12d
-       jne      SHORT G_M50242_IG22
-						;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M50242_IG19:
+       je       SHORT G_M50242_IG16
+						;; size=57 bbWeight=0.50 PerfScore 10.38
+G_M50242_IG13:
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Numerics.Vector`1[float]]
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      rdi, r13
        mov      rcx, rbx
        mov      rdx, r14
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.JsonTypeInfo:.ctor(System.Type,System.Text.Json.Serialization.JsonConverter,System.Text.Json.JsonSerializerOptions):this
        call     [rax]System.Text.Json.Serialization.Metadata.JsonTypeInfo:.ctor(System.Type,System.Text.Json.Serialization.JsonConverter,System.Text.Json.JsonSerializerOptions):this
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Numerics.Vector`1[float]]():System.Text.Json.Serialization.JsonConverter`1[System.Numerics.Vector`1[float]]:this
        call     [rax]System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Numerics.Vector`1[float]]():System.Text.Json.Serialization.JsonConverter`1[System.Numerics.Vector`1[float]]:this
        lea      rdi, bword ptr [r13+0x140]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        mov      rax, r13
 						;; size=75 bbWeight=1 PerfScore 11.25
-G_M50242_IG20:
+G_M50242_IG14:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
-G_M50242_IG21:
+G_M50242_IG15:
        mov      rdi, r13
        call     System.Object:GetType():System.Type:this
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializerConverterFactoryReturnsNull(System.Type)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializerConverterFactoryReturnsNull(System.Type)
        int3     
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M50242_IG22:
+G_M50242_IG16:
        mov      rsi, r14
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_ConverterCanConvertMultipleTypes(System.Type,System.Text.Json.Serialization.JsonConverter)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_ConverterCanConvertMultipleTypes(System.Type,System.Text.Json.Serialization.JsonConverter)
        int3     
 						;; size=19 bbWeight=0 PerfScore 0.00
-G_M50242_IG23:
+G_M50242_IG17:
        mov      rdi, r14
        call     System.Object:GetType():System.Type:this
        mov      rdi, rax
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializationConverterNotCompatible(System.Type,System.Type)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializationConverterNotCompatible(System.Type,System.Type)
        int3     
 						;; size=27 bbWeight=0 PerfScore 0.00
-G_M50242_IG24:
+G_M50242_IG18:
        mov      rdi, r13
        call     System.Object:GetType():System.Type:this
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializerConverterFactoryReturnsJsonConverterFactorty(System.Type)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializerConverterFactoryReturnsJsonConverterFactorty(System.Type)
        int3     
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M50242_IG25:
+G_M50242_IG19:
        mov      edi, 0x3958
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowArgumentNullException(System.String)
        call     [rax]System.Text.Json.ThrowHelper:ThrowArgumentNullException(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M50242_IG26:
+G_M50242_IG20:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 800, prolog size 16, PerfScore 115.75, instruction count 202, allocated bytes for code 800 (MethodHash=3ef43bbd) for method System.Text.Json.Serialization.Metadata.JsonTypeInfo:CreateJsonTypeInfo[System.Numerics.Vector`1[float]](System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Numerics.Vector`1[float]] (FullOpts)
+; Total bytes of code 652, prolog size 16, PerfScore 96.75, instruction count 167, allocated bytes for code 652 (MethodHash=3ef43bbd) for method System.Text.Json.Serialization.Metadata.JsonTypeInfo:CreateJsonTypeInfo[System.Numerics.Vector`1[float]](System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Numerics.Vector`1[float]] (FullOpts)
-79 (-30.38 % of base) - System.Data.DataRowExtensions+UnboxT`1[System.Numerics.Vector`1[float]]:g__CreateWhenDynamicCodeSupported|1_0():System.Func`2[System.Object,System.Numerics.Vector`1[float]]
 ; Assembly listing for method System.Data.DataRowExtensions+UnboxT`1[System.Numerics.Vector`1[float]]:<Create>g__CreateWhenDynamicCodeSupported|1_0():System.Func`2[System.Object,System.Numerics.Vector`1[float]] (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 OutArgs      [V00    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V01 tmp1         [V01,T00] (  3,  6   )     ref  ->  r15         class-hnd exact single-def "dup spill" <System.Type[]>
 ;  V02 tmp2         [V02,T01] (  3,  6   )     ref  ->  rbx         class-hnd single-def "impAppendStmt" <System.Reflection.MethodInfo>
-;  V03 tmp3         [V03,T02] (  3,  4   )     ref  ->  rsi         class-hnd "Strict ordering of exceptions for Array store" <System.Type>
-;  V04 tmp4         [V04,T05] (  3,  3   )     ref  ->  rax         single-def "arr expr"
-;  V05 tmp5         [V05,T03] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
-;  V06 cse0         [V06,T04] (  4,  3   )     ref  ->  r14         "CSE #01: aggressive"
+;* V03 tmp3         [V03,T03] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Strict ordering of exceptions for Array store" <System.Type>
+;* V04 tmp4         [V04    ] (  0,  0   )     ref  ->  zero-ref    "arr expr"
+;  V05 tmp5         [V05,T02] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 16
 
 G_M14670_IG01:
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       sub      rsp, 24
-       lea      rbp, [rsp+0x30]
-						;; size=15 bbWeight=1 PerfScore 4.75
+       sub      rsp, 16
+       lea      rbp, [rsp+0x20]
+						;; size=13 bbWeight=1 PerfScore 3.75
 G_M14670_IG02:
        xor      rdi, rdi
        mov      gword ptr [rsp], rdi
 						;; size=6 bbWeight=1 PerfScore 1.25
 G_M14670_IG03:
        mov      gword ptr [rsp+0x08], rdi
        mov      rdi, 0xD1FFAB1E      ; 'UnboxT`1[System.Numerics.Vector`1[System.Single]]'
        mov      rsi, 0xD1FFAB1E      ; 'NullableField'
        mov      edx, -1
        mov      ecx, 40
        xor      r8, r8
        mov      r9d, 3
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        call     [rax]System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        mov      rbx, rax
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      r15, rax
-       mov      r14, 0xD1FFAB1E      ; 'System.Numerics.Vector`1[System.Single]'
-       mov      rdi, r14
+       mov      rdi, 0xD1FFAB1E      ; 'System.Numerics.Vector`1[System.Single]'
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_IsGenericTypeDefinition():ubyte:this
        call     [rax]System.RuntimeType:get_IsGenericTypeDefinition():ubyte:this
-       test     eax, eax
-       jne      SHORT G_M14670_IG05
-						;; size=111 bbWeight=1 PerfScore 12.75
-G_M14670_IG04:
-       mov      rdi, r14
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       call     [rax]System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
-       cmp      rax, rdi
-       je       SHORT G_M14670_IG06
-						;; size=30 bbWeight=0.50 PerfScore 2.50
-G_M14670_IG05:
-       xor      rsi, rsi
-       jmp      SHORT G_M14670_IG07
-						;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M14670_IG06:
-       mov      rdi, r14
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericArguments():System.Type[]:this
-       call     [rax]System.RuntimeType:GetGenericArguments():System.Type[]:this
-       cmp      dword ptr [rax+0x08], 0
-       jbe      SHORT G_M14670_IG09
-       mov      rsi, gword ptr [rax+0x10]
-						;; size=25 bbWeight=0.50 PerfScore 4.75
-G_M14670_IG07:
-       lea      rdi, bword ptr [r15+0x10]
-       call     CORINFO_HELP_ASSIGN_REF
+       xor      rdi, rdi
+       mov      gword ptr [r15+0x10], rdi
        mov      rdi, rbx
        mov      rsi, r15
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x38]System.Reflection.MethodInfo:MakeGenericMethod(System.Type[]):System.Reflection.MethodInfo:this
        mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; System.Reflection.MethodInfo:CreateDelegate[System.Func`2[System.Object,System.Numerics.Vector`1[float]]]():System.Func`2[System.Object,System.Numerics.Vector`1[float]]:this
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.MethodInfo:CreateDelegate[System.__Canon]():System.__Canon:this
        cmp      dword ptr [rdi], edi
-						;; size=50 bbWeight=1 PerfScore 12.75
-G_M14670_IG08:
-       add      rsp, 24
+						;; size=151 bbWeight=1 PerfScore 23.75
+G_M14670_IG04:
+       add      rsp, 16
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Reflection.MethodInfo:CreateDelegate[System.__Canon]():System.__Canon:this
-						;; size=13 bbWeight=1 PerfScore 4.25
-G_M14670_IG09:
-       call     CORINFO_HELP_RNGCHKFAIL
-       int3     
-						;; size=6 bbWeight=0 PerfScore 0.00
+						;; size=11 bbWeight=1 PerfScore 3.75
 
-; Total bytes of code 260, prolog size 15, PerfScore 44.12, instruction count 61, allocated bytes for code 260 (MethodHash=fe9dc6b1) for method System.Data.DataRowExtensions+UnboxT`1[System.Numerics.Vector`1[float]]:<Create>g__CreateWhenDynamicCodeSupported|1_0():System.Func`2[System.Object,System.Numerics.Vector`1[float]] (FullOpts)
+; Total bytes of code 181, prolog size 13, PerfScore 32.50, instruction count 40, allocated bytes for code 181 (MethodHash=fe9dc6b1) for method System.Data.DataRowExtensions+UnboxT`1[System.Numerics.Vector`1[float]]:<Create>g__CreateWhenDynamicCodeSupported|1_0():System.Func`2[System.Object,System.Numerics.Vector`1[float]] (FullOpts)
-75 (-12.71 % of base) - System.Data.DataRowExtensions+UnboxT`1[System.Numerics.Vector`1[float]]:NullableFieldUsingReflection(System.Object):System.Numerics.Vector`1[float]
 ; Assembly listing for method System.Data.DataRowExtensions+UnboxT`1[System.Numerics.Vector`1[float]]:NullableFieldUsingReflection(System.Object):System.Numerics.Vector`1[float] (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 4 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 RetBuf       [V00,T01] (  8,  5   )   byref  ->  r15         single-def
 ;  V01 arg0         [V01,T00] ( 13,  7.50)     ref  ->  rbx         class-hnd <System.Object>
 ;* V02 loc0         [V02    ] (  0,  0   )  simd32  ->  zero-ref    <System.Numerics.Vector`1[float]>
-;  V03 loc1         [V03,T03] (  6,  3   )     ref  ->  r14         class-hnd exact single-def <System.RuntimeType>
+;  V03 loc1         [V03,T02] (  6,  3   )     ref  ->  r14         class-hnd exact single-def <System.RuntimeType>
 ;* V04 loc2         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Type>
 ;* V05 loc3         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Type>
 ;* V06 loc4         [V06    ] (  0,  0   )  simd32  ->  zero-ref    ld-addr-op <System.Numerics.Vector`1[float]>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V08 tmp1         [V08,T10] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling qmarkNull" <System.Numerics.Vector`1[float]>
-;  V09 tmp2         [V09,T11] (  3,  1.50)     ref  ->  r13        
+;* V08 tmp1         [V08,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling qmarkNull" <System.Numerics.Vector`1[float]>
+;  V09 tmp2         [V09,T08] (  3,  1.50)     ref  ->  r13        
 ;* V10 tmp3         [V10    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V11 tmp4         [V11    ] (  0,  0   )     ref  ->  zero-ref   
-;  V12 tmp5         [V12,T12] (  3,  1.50)     ref  ->  rax        
-;  V13 tmp6         [V13,T13] (  3,  1.50)     ref  ->  rax        
-;  V14 tmp7         [V14,T02] ( 10,  5   )     ref  ->  r12         class-hnd "Inline return value spill temp" <System.Type>
+;* V12 tmp5         [V12,T12] (  0,  0   )     ref  ->  zero-ref   
+;  V13 tmp6         [V13,T09] (  3,  1.50)     ref  ->  rax        
+;* V14 tmp7         [V14,T13] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline return value spill temp" <System.Type>
 ;* V15 tmp8         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.RuntimeType[]>
-;  V16 tmp9         [V16,T08] (  2,  2   )     ref  ->  r13         class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
-;  V17 tmp10        [V17,T04] (  3,  3   )     ref  ->  rax         single-def "arr expr"
-;  V18 tmp11        [V18,T05] (  3,  3   )     ref  ->  r13         single-def "arr expr"
-;  V19 tmp12        [V19,T06] (  3,  3   )     int  ->  rax         "index expr"
-;  V20 cse0         [V20,T14] (  3,  1.50)    long  ->  r14         "CSE #05: moderate"
-;  V21 cse1         [V21,T07] (  4,  2   )     ref  ->  r13         "CSE #03: moderate"
-;  V22 cse2         [V22,T09] (  5,  1.75)    long  ->  rdi         multi-def "CSE #02: moderate"
-;  V23 cse3         [V23,T15] (  2,  0.50)    long  ->  rax         "CSE #01: conservative"
+;  V16 tmp9         [V16,T05] (  2,  2   )     ref  ->  r13         class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+;* V17 tmp10        [V17    ] (  0,  0   )     ref  ->  zero-ref    "arr expr"
+;  V18 tmp11        [V18,T03] (  3,  3   )     ref  ->  r13         single-def "arr expr"
+;  V19 tmp12        [V19,T04] (  3,  3   )     int  ->  rax         "index expr"
+;  V20 cse0         [V20,T10] (  3,  1.50)    long  ->  r14         "CSE #04: moderate"
+;  V21 cse1         [V21,T06] (  5,  1.75)    long  ->  rdi         multi-def "CSE #02: moderate"
+;  V22 cse2         [V22,T11] (  2,  0.50)    long  ->  rax         "CSE #01: conservative"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 0
 
 G_M40660_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
-       push     r12
        push     rbx
-       push     rax
-       lea      rbp, [rsp+0x30]
+       lea      rbp, [rsp+0x20]
        mov      r15, rdi
        mov      rbx, rsi
-						;; size=22 bbWeight=1 PerfScore 8.00
+						;; size=19 bbWeight=1 PerfScore 6.00
 G_M40660_IG02:
        mov      rax, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rax], 1
-       je       G_M40660_IG25
+       je       G_M40660_IG20
 						;; size=19 bbWeight=1 PerfScore 4.25
 G_M40660_IG03:
        mov      rax, 0xD1FFAB1E      ; data for System.DBNull:Value
        cmp      rbx, gword ptr [rax]
-       je       G_M40660_IG23
+       je       G_M40660_IG18
 						;; size=19 bbWeight=1 PerfScore 4.25
 G_M40660_IG04:
        test     rbx, rbx
        je       SHORT G_M40660_IG08
 						;; size=5 bbWeight=0.50 PerfScore 0.62
 G_M40660_IG05:
        mov      rax, qword ptr [rbx]
        mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector`1[float]
        cmp      rax, rdi
        jne      SHORT G_M40660_IG08
 						;; size=18 bbWeight=0.25 PerfScore 0.88
 G_M40660_IG06:
        vmovups  ymm0, ymmword ptr [rbx+0x08]
        vmovups  ymmword ptr [r15], ymm0
        mov      rax, r15
 						;; size=13 bbWeight=0.50 PerfScore 3.62
 G_M40660_IG07:
        vzeroupper 
-       add      rsp, 8
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=0.50 PerfScore 2.62
+						;; size=12 bbWeight=0.50 PerfScore 2.25
 G_M40660_IG08:
        mov      rdi, rbx
        call     System.Object:GetType():System.Type:this
        mov      r14, rax
-       mov      r13, 0xD1FFAB1E      ; 'System.Numerics.Vector`1[System.Single]'
-       mov      rdi, r13
+       mov      rdi, 0xD1FFAB1E      ; 'System.Numerics.Vector`1[System.Single]'
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_IsGenericTypeDefinition():ubyte:this
        call     [rax]System.RuntimeType:get_IsGenericTypeDefinition():ubyte:this
-       test     eax, eax
-       jne      SHORT G_M40660_IG09
-       mov      rdi, r13
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       call     [rax]System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
-       cmp      rax, rdi
-       je       SHORT G_M40660_IG10
-						;; size=70 bbWeight=0.50 PerfScore 5.75
-G_M40660_IG09:
-       xor      r12, r12
-       jmp      SHORT G_M40660_IG11
-						;; size=5 bbWeight=0.50 PerfScore 1.12
-G_M40660_IG10:
-       mov      rdi, r13
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericArguments():System.Type[]:this
-       call     [rax]System.RuntimeType:GetGenericArguments():System.Type[]:this
-       cmp      dword ptr [rax+0x08], 0
-       jbe      G_M40660_IG28
-       mov      r12, gword ptr [rax+0x10]
-						;; size=29 bbWeight=0.50 PerfScore 4.75
-G_M40660_IG11:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_IsEnum():ubyte:this
        call     [rax]System.RuntimeType:get_IsEnum():ubyte:this
        test     eax, eax
-       je       SHORT G_M40660_IG13
+       je       SHORT G_M40660_IG10
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_IsActualEnum():ubyte:this
        call     [rax]System.RuntimeType:get_IsActualEnum():ubyte:this
        test     eax, eax
-       je       G_M40660_IG27
+       je       G_M40660_IG22
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
-       je       G_M40660_IG26
-						;; size=61 bbWeight=0.50 PerfScore 6.88
-G_M40660_IG12:
+       je       G_M40660_IG21
+						;; size=94 bbWeight=0.50 PerfScore 9.38
+G_M40660_IG09:
        mov      rdi, 0xD1FFAB1E      ; data for System.Enum:s_underlyingTypes
        mov      r13, gword ptr [rdi]
        mov      rdi, qword ptr [r14+0x18]
        call     System.Enum:InternalGetCorElementType(ulong):ubyte
        cmp      eax, dword ptr [r13+0x08]
-       jae      G_M40660_IG28
+       jae      G_M40660_IG24
        mov      edi, eax
        mov      r13, gword ptr [r13+8*rdi+0x10]
-       jmp      SHORT G_M40660_IG14
+       jmp      SHORT G_M40660_IG11
 						;; size=41 bbWeight=0.50 PerfScore 6.75
-G_M40660_IG13:
+G_M40660_IG10:
        mov      r13, r14
 						;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M40660_IG14:
-       mov      rdi, r12
-       mov      rax, qword ptr [r12]
+G_M40660_IG11:
+       xor      rdi, rdi
+       mov      rax, qword ptr [0x0000]
        mov      r14, qword ptr [rax+0x70]
        call     [r14+0x30]System.Type:get_IsEnum():ubyte:this
        test     eax, eax
-       je       SHORT G_M40660_IG15
-       mov      rdi, r12
-       mov      rax, qword ptr [r12]
-       mov      rax, qword ptr [rax+0xA0]
-       call     [rax+0x18]System.Type:GetEnumUnderlyingType():System.Type:this
-       jmp      SHORT G_M40660_IG16
-						;; size=38 bbWeight=0.50 PerfScore 8.88
-G_M40660_IG15:
-       mov      rax, r12
-						;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M40660_IG16:
+       jne      G_M40660_IG23
        mov      rdi, r13
-       mov      rsi, rax
+       xor      rsi, rsi
        mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
        call     [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
        test     eax, eax
-       je       SHORT G_M40660_IG19
-       mov      rdi, r12
+       je       SHORT G_M40660_IG14
+       xor      rdi, rdi
        call     [r14+0x30]System.Type:get_IsEnum():ubyte:this
        test     eax, eax
-       je       SHORT G_M40660_IG17
-       mov      rdi, r12
+       je       SHORT G_M40660_IG12
+       xor      rdi, rdi
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Enum:ToObject(System.Type,System.Object):System.Object
        call     [rax]System.Enum:ToObject(System.Type,System.Object):System.Object
-       jmp      SHORT G_M40660_IG18
-						;; size=53 bbWeight=0.50 PerfScore 7.62
-G_M40660_IG17:
+       jmp      SHORT G_M40660_IG13
+						;; size=76 bbWeight=0.50 PerfScore 11.88
+G_M40660_IG12:
        mov      rdi, rbx
-       mov      rsi, r12
+       xor      rsi, rsi
        xor      rdx, rdx
        mov      rax, 0xD1FFAB1E      ; code for System.Convert:ChangeType(System.Object,System.Type,System.IFormatProvider):System.Object
        call     [rax]System.Convert:ChangeType(System.Object,System.Type,System.IFormatProvider):System.Object
-						;; size=20 bbWeight=0.50 PerfScore 2.00
-G_M40660_IG18:
+						;; size=19 bbWeight=0.50 PerfScore 2.00
+G_M40660_IG13:
        mov      rbx, rax
 						;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M40660_IG19:
+G_M40660_IG14:
        mov      rdi, 0xD1FFAB1E      ; System.Numerics.Vector`1[float]
        cmp      qword ptr [rbx], rdi
-       je       SHORT G_M40660_IG21
+       je       SHORT G_M40660_IG16
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M40660_IG20:
+G_M40660_IG15:
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
 						;; size=15 bbWeight=0.25 PerfScore 0.88
-G_M40660_IG21:
+G_M40660_IG16:
        vmovups  ymm0, ymmword ptr [rbx+0x08]
        vmovups  ymmword ptr [r15], ymm0
        mov      rax, r15
 						;; size=13 bbWeight=0.50 PerfScore 3.62
-G_M40660_IG22:
+G_M40660_IG17:
        vzeroupper 
-       add      rsp, 8
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M40660_IG23:
+						;; size=12 bbWeight=0.50 PerfScore 2.25
+G_M40660_IG18:
        vxorps   ymm0, ymm0, ymm0
        vmovups  ymmword ptr [r15], ymm0
        mov      rax, r15
 						;; size=12 bbWeight=0.50 PerfScore 1.29
-G_M40660_IG24:
+G_M40660_IG19:
        vzeroupper 
-       add      rsp, 8
        pop      rbx
-       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=0.50 PerfScore 2.62
-G_M40660_IG25:
+						;; size=12 bbWeight=0.50 PerfScore 2.25
+G_M40660_IG20:
        mov      rdi, 0xD1FFAB1E      ; System.DBNull
        call     CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      G_M40660_IG03
 						;; size=20 bbWeight=0 PerfScore 0.00
-G_M40660_IG26:
+G_M40660_IG21:
        mov      rdi, 0xD1FFAB1E      ; System.Enum
        call     CORINFO_HELP_GET_GCSTATIC_BASE
-       jmp      G_M40660_IG12
+       jmp      G_M40660_IG09
 						;; size=20 bbWeight=0 PerfScore 0.00
-G_M40660_IG27:
+G_M40660_IG22:
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:ThrowMustBeEnum()
        call     [rax]System.RuntimeType:ThrowMustBeEnum()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M40660_IG28:
+G_M40660_IG23:
+       mov      edi, 0x4C5
+       mov      rsi, 0xD1FFAB1E
+       call     CORINFO_HELP_STRCNS
+       mov      rdi, rax
+       mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:Throw(System.String)
+       call     [rax]System.ArgumentNullException:Throw(System.String)
+       int3     
+						;; size=36 bbWeight=0 PerfScore 0.00
+G_M40660_IG24:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 590, prolog size 16, PerfScore 81.54, instruction count 154, allocated bytes for code 590 (MethodHash=3a1e612b) for method System.Data.DataRowExtensions+UnboxT`1[System.Numerics.Vector`1[float]]:NullableFieldUsingReflection(System.Object):System.Numerics.Vector`1[float] (FullOpts)
+; Total bytes of code 515, prolog size 13, PerfScore 64.54, instruction count 130, allocated bytes for code 515 (MethodHash=3a1e612b) for method System.Data.DataRowExtensions+UnboxT`1[System.Numerics.Vector`1[float]]:NullableFieldUsingReflection(System.Object):System.Numerics.Vector`1[float] (FullOpts)
-71 (-23.59 % of base) - System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Numerics.Vector`1[float]]():System.Text.Json.Serialization.JsonConverter`1[System.Numerics.Vector`1[float]]:this
 ; Assembly listing for method System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Numerics.Vector`1[float]]():System.Text.Json.Serialization.JsonConverter`1[System.Numerics.Vector`1[float]]:this (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 10,  6   )     ref  ->  rbx         this class-hnd single-def <System.Text.Json.Serialization.JsonConverter>
 ;  V01 loc0         [V01,T04] (  3,  2.50)     ref  ->  rax         class-hnd single-def <System.Text.Json.Serialization.JsonConverter`1[System.Numerics.Vector`1[float]]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  3   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Text.Json.Serialization.JsonConverter>
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V05 tmp3         [V05,T07] (  3,  1.50)     ref  ->  rax        
+;  V05 tmp3         [V05,T06] (  3,  1.50)     ref  ->  rax        
 ;  V06 tmp4         [V06,T05] (  4,  2   )     ref  ->  rax        
 ;  V07 tmp5         [V07,T03] (  3,  3   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Text.Json.Serialization.Converters.CastingConverter`1[System.Numerics.Vector`1[float]]>
-;  V08 tmp6         [V08,T06] (  2,  2   )     int  ->  r15         "non-inline candidate call"
-;  V09 tmp7         [V09,T08] (  3,  1.50)   ubyte  ->  r13         "Inline return value spill temp"
-;  V10 tmp8         [V10,T01] (  5,  5   )     ref  ->  r14         class-hnd single-def "Inlining Arg" <System.Type>
+;* V08 tmp6         [V08    ] (  0,  0   )     int  ->  zero-ref    "non-inline candidate call"
+;* V09 tmp7         [V09,T07] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V10 tmp8         [V10,T01] (  5,  5   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Type>
 ;
 ; Lcl frame size = 0
 
 G_M27543_IG01:
        push     rbp
        push     r15
-       push     r14
-       push     r13
        push     rbx
-       lea      rbp, [rsp+0x20]
+       lea      rbp, [rsp+0x10]
        mov      rbx, rdi
-						;; size=16 bbWeight=1 PerfScore 5.75
+						;; size=12 bbWeight=1 PerfScore 3.75
 G_M27543_IG02:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Serialization.JsonConverter`1[System.Numerics.Vector`1[float]]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
-       jne      G_M27543_IG10
+       jne      G_M27543_IG08
 						;; size=34 bbWeight=1 PerfScore 5.00
 G_M27543_IG03:
        cmp      byte  ptr [rbx+0x17], 0
-       je       SHORT G_M27543_IG06
-       mov      rdi, 0xD1FFAB1E      ; 'System.Numerics.Vector`1[System.Single]'
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       call     [rax]System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
-       cmp      rax, rdi
-       sete     r15b
-       movzx    r15, r15b
+       je       SHORT G_M27543_IG04
        mov      rdi, rbx
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x20]System.Text.Json.Serialization.JsonConverter:get_Type():System.Type:this
-       mov      r14, rax
-       mov      rdi, r14
-       mov      rax, qword ptr [r14]
+       mov      r15, rax
+       mov      rdi, r15
+       mov      rax, qword ptr [r15]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x08]System.Type:get_IsGenericType():ubyte:this
        test     eax, eax
-       jne      SHORT G_M27543_IG04
-       xor      r13d, r13d
-       jmp      SHORT G_M27543_IG05
-						;; size=87 bbWeight=0.50 PerfScore 13.75
-G_M27543_IG04:
-       mov      rdi, r14
-       mov      rax, qword ptr [r14]
+       je       SHORT G_M27543_IG04
+       mov      rdi, r15
+       mov      rax, qword ptr [r15]
        mov      rax, qword ptr [rax+0x68]
        call     [rax+0x18]System.Type:GetGenericTypeDefinition():System.Type:this
        mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
        cmp      rax, rdi
-       sete     r13b
-       movzx    r13, r13b
-						;; size=34 bbWeight=0.50 PerfScore 4.50
-G_M27543_IG05:
-       xor      r15d, r13d
-       jne      SHORT G_M27543_IG11
-						;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M27543_IG06:
+       je       SHORT G_M27543_IG09
+						;; size=67 bbWeight=0.50 PerfScore 14.38
+G_M27543_IG04:
        mov      rdi, rbx
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x20]System.Text.Json.Serialization.JsonConverter:get_SourceConverterForCastingConverter():System.Text.Json.Serialization.JsonConverter:this
        test     rax, rax
-       je       SHORT G_M27543_IG07
+       je       SHORT G_M27543_IG05
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Numerics.Vector`1[float]]():System.Text.Json.Serialization.JsonConverter`1[System.Numerics.Vector`1[float]]:this
        call     [rax]System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Numerics.Vector`1[float]]():System.Text.Json.Serialization.JsonConverter`1[System.Numerics.Vector`1[float]]:this
-       jmp      SHORT G_M27543_IG08
+       jmp      SHORT G_M27543_IG06
 						;; size=35 bbWeight=0.50 PerfScore 7.00
-G_M27543_IG07:
+G_M27543_IG05:
        xor      rax, rax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M27543_IG08:
+G_M27543_IG06:
        test     rax, rax
-       jne      SHORT G_M27543_IG09
+       jne      SHORT G_M27543_IG07
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Serialization.Converters.CastingConverter`1[System.Numerics.Vector`1[float]]
        call     CORINFO_HELP_NEWSFAST
        mov      r15, rax
        mov      rdi, r15
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Converters.CastingConverter`1[System.Numerics.Vector`1[float]]:.ctor(System.Text.Json.Serialization.JsonConverter):this
        call     [rax]System.Text.Json.Serialization.Converters.CastingConverter`1[System.Numerics.Vector`1[float]]:.ctor(System.Text.Json.Serialization.JsonConverter):this
        mov      rax, r15
 						;; size=44 bbWeight=0.50 PerfScore 3.38
-G_M27543_IG09:
+G_M27543_IG07:
        pop      rbx
-       pop      r13
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=0.50 PerfScore 1.75
-G_M27543_IG10:
+						;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M27543_IG08:
        pop      rbx
-       pop      r13
-       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=0.50 PerfScore 1.75
-G_M27543_IG11:
+						;; size=5 bbWeight=0.50 PerfScore 1.25
+G_M27543_IG09:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; 'System.Numerics.Vector`1[System.Single]'
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_ConverterCanConvertMultipleTypes(System.Type,System.Text.Json.Serialization.JsonConverter)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_ConverterCanConvertMultipleTypes(System.Type,System.Text.Json.Serialization.JsonConverter)
        int3     
 						;; size=26 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 301, prolog size 13, PerfScore 43.62, instruction count 83, allocated bytes for code 301 (MethodHash=a5569468) for method System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Numerics.Vector`1[float]]():System.Text.Json.Serialization.JsonConverter`1[System.Numerics.Vector`1[float]]:this (FullOpts)
+; Total bytes of code 230, prolog size 9, PerfScore 36.12, instruction count 65, allocated bytes for code 230 (MethodHash=a5569468) for method System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Numerics.Vector`1[float]]():System.Text.Json.Serialization.JsonConverter`1[System.Numerics.Vector`1[float]]:this (FullOpts)
-62 (-7.75 % of base) - System.Text.Json.Serialization.Metadata.JsonTypeInfo:CreateJsonTypeInfo[System.Nullable`1[int]](System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[int]]
 ; Assembly listing for method System.Text.Json.Serialization.Metadata.JsonTypeInfo:CreateJsonTypeInfo[System.Nullable`1[int]](System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[int]] (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 3 single block inlinees; 12 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T04] (  6,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.Json.JsonSerializerOptions>
+;  V00 arg0         [V00,T03] (  6,  5.50)     ref  ->  rbx         class-hnd single-def <System.Text.Json.JsonSerializerOptions>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T03] (  4,  8   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[int]]>
+;  V02 tmp1         [V02,T02] (  4,  8   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[int]]>
 ;* V03 tmp2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline return value spill temp" <System.Text.Json.Serialization.JsonConverter>
 ;  V04 tmp3         [V04,T01] ( 13, 10   )     ref  ->  r14         class-hnd "Inline stloc first use temp" <System.Text.Json.Serialization.JsonConverter>
 ;* V05 tmp4         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.JsonConverter>
-;  V06 tmp5         [V06,T05] (  4,  7   )     ref  ->  r14         class-hnd "Inlining Arg" <System.Text.Json.Serialization.JsonConverter>
+;  V06 tmp5         [V06,T04] (  4,  7   )     ref  ->  r14         class-hnd "Inlining Arg" <System.Text.Json.Serialization.JsonConverter>
 ;  V07 tmp6         [V07,T07] (  6,  3   )     ref  ->  r13         class-hnd single-def "Inline stloc first use temp" <System.Text.Json.Serialization.JsonConverterFactory>
 ;* V08 tmp7         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <System.Text.Json.Serialization.JsonConverter>
 ;  V09 tmp8         [V09,T11] (  4,  2   )     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <System.Text.Json.Serialization.JsonConverter>
-;  V10 tmp9         [V10,T16] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
-;  V11 tmp10        [V11,T00] ( 12, 13   )     ref  ->  r12         class-hnd single-def "Inlining Arg" <System.Type>
+;  V10 tmp9         [V10,T15] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;  V11 tmp10        [V11,T00] ( 12, 14   )     ref  ->  r12         class-hnd single-def "Inlining Arg" <System.Type>
 ;  V12 tmp11        [V12,T12] (  3,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V13 tmp12        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V14 tmp13        [V14,T17] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;  V14 tmp13        [V14,T16] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
 ;* V15 tmp14        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "non-inline candidate call" <System.RuntimeType>
-;* V16 tmp15        [V16,T21] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V17 tmp16        [V17,T20] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
+;* V16 tmp15        [V16,T20] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V17 tmp16        [V17,T19] (  2,  1   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V18 tmp17        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <System.RuntimeType>
-;  V19 tmp18        [V19,T15] (  2,  2   )     int  ->  r12         "non-inline candidate call"
-;  V20 tmp19        [V20,T18] (  3,  1.50)   ubyte  ->  rax         "Inline return value spill temp"
+;* V19 tmp18        [V19    ] (  0,  0   )     int  ->  zero-ref    "non-inline candidate call"
+;  V20 tmp19        [V20,T17] (  3,  1.50)   ubyte  ->  r12         "Inline return value spill temp"
 ;  V21 tmp20        [V21,T06] (  5,  5   )     ref  ->  r13         class-hnd single-def "Inlining Arg" <System.Type>
 ;  V22 tmp21        [V22,T08] (  3,  3   )     ref  ->  rax         single-def "arr expr"
 ;  V23 tmp22        [V23,T13] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V24 tmp23        [V24,T09] (  3,  3   )     ref  ->  rax         single-def "arr expr"
 ;  V25 tmp24        [V25,T14] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V26 tmp25        [V26,T22] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
-;  V27 cse0         [V27,T19] (  3,  1.50)    long  ->  [rbp-0x30]  "CSE #06: moderate"
-;  V28 cse1         [V28,T10] (  3,  2.50)    long  ->  r13         "CSE #08: moderate"
-;  V29 cse2         [V29,T02] ( 14,  8   )     ref  ->  r15         "CSE #01: aggressive"
+;  V26 tmp25        [V26,T21] (  2,  0   )     ref  ->  rdi         single-def "argument with side effect"
+;  V27 cse0         [V27,T18] (  3,  1.50)    long  ->  [rbp-0x30]  "CSE #05: moderate"
+;  V28 cse1         [V28,T10] (  3,  2.50)    long  ->  r13         "CSE #07: moderate"
+;  V29 cse2         [V29,T05] ( 12,  6.50)     ref  ->  r15         "CSE #01: aggressive"
 ;
 ; Lcl frame size = 8
 
 G_M62242_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        lea      rbp, [rsp+0x30]
        mov      rbx, rdi
 						;; size=19 bbWeight=1 PerfScore 7.75
 G_M62242_IG02:
        test     rbx, rbx
-       je       G_M62242_IG25
+       je       G_M62242_IG24
        mov      rdi, rbx
        mov      r15, 0xD1FFAB1E      ; 'System.Nullable`1[System.Int32]'
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.JsonSerializerOptions:GetConverterFromList(System.Type):System.Text.Json.Serialization.JsonConverter:this
        call     [rax]System.Text.Json.JsonSerializerOptions:GetConverterFromList(System.Type):System.Text.Json.Serialization.JsonConverter:this
        mov      r14, rax
        test     r14, r14
        jne      SHORT G_M62242_IG04
 						;; size=45 bbWeight=1 PerfScore 6.75
 G_M62242_IG03:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter
        call     [rax]System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetBuiltInConverter(System.Type):System.Text.Json.Serialization.JsonConverter
        mov      r14, rax
 						;; size=18 bbWeight=0.50 PerfScore 1.88
 G_M62242_IG04:
        mov      rsi, r14
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Serialization.JsonConverterFactory
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        mov      r13, rax
        test     r13, r13
        je       SHORT G_M62242_IG06
 						;; size=33 bbWeight=1 PerfScore 5.25
 G_M62242_IG05:
        mov      rdi, r13
        mov      rdx, rbx
        mov      rsi, r15
        mov      rax, qword ptr [r13]
        mov      rax, qword ptr [rax+0x60]
        call     [rax]System.Text.Json.Serialization.JsonConverterFactory:CreateConverter(System.Type,System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.JsonConverter:this
        mov      r14, rax
        test     r14, r14
-       je       G_M62242_IG21
+       je       G_M62242_IG20
        mov      rsi, r14
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Serialization.JsonConverterFactory
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
-       jne      G_M62242_IG24
+       jne      G_M62242_IG23
 						;; size=65 bbWeight=0.50 PerfScore 7.12
 G_M62242_IG06:
        mov      rdi, r14
        mov      rax, qword ptr [r14]
        mov      r13, qword ptr [rax+0x40]
        call     [r13+0x20]System.Text.Json.Serialization.JsonConverter:get_Type():System.Type:this
        mov      r12, rax
-       mov      rdi, r15
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       call     [rax]System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
-       cmp      rax, rdi
-       jne      SHORT G_M62242_IG08
-						;; size=47 bbWeight=1 PerfScore 12.50
-G_M62242_IG07:
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.Type:get_IsInterface():ubyte:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Type:get_IsInterface():ubyte:this
        test     eax, eax
-       jne      SHORT G_M62242_IG09
-						;; size=21 bbWeight=0.50 PerfScore 3.88
-G_M62242_IG08:
+       jne      SHORT G_M62242_IG08
+						;; size=38 bbWeight=1 PerfScore 15.25
+G_M62242_IG07:
        mov      rdi, r12
        mov      rsi, r15
        mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0xB0]
        call     [rax+0x20]System.Type:IsAssignableFrom(System.Type):ubyte:this
-       jmp      SHORT G_M62242_IG10
+       jmp      SHORT G_M62242_IG09
 						;; size=22 bbWeight=0.50 PerfScore 4.75
-G_M62242_IG09:
+G_M62242_IG08:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericArguments():System.Type[]:this
        call     [rax]System.RuntimeType:GetGenericArguments():System.Type[]:this
        cmp      dword ptr [rax+0x08], 0
-       jbe      G_M62242_IG26
+       jbe      G_M62242_IG25
        mov      rsi, gword ptr [rax+0x10]
        mov      rdi, r12
        mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0xB0]
        call     [rax+0x20]System.Type:IsAssignableFrom(System.Type):ubyte:this
 						;; size=46 bbWeight=0.50 PerfScore 8.38
-G_M62242_IG10:
+G_M62242_IG09:
        test     eax, eax
-       jne      G_M62242_IG15
+       jne      G_M62242_IG14
 						;; size=8 bbWeight=1 PerfScore 1.25
-G_M62242_IG11:
+G_M62242_IG10:
        mov      rdi, r12
        mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x08]System.Type:get_IsGenericType():ubyte:this
        test     eax, eax
-       je       SHORT G_M62242_IG12
+       je       SHORT G_M62242_IG11
        mov      rdi, r12
        mov      rax, qword ptr [r12]
        mov      rax, qword ptr [rax+0x68]
        mov      qword ptr [rbp-0x30], rax
        call     [rax+0x18]System.Type:GetGenericTypeDefinition():System.Type:this
        mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
        cmp      rax, rdi
-       jne      SHORT G_M62242_IG12
+       jne      SHORT G_M62242_IG11
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_IsInterface():ubyte:this
        call     [rax]System.RuntimeType:get_IsInterface():ubyte:this
        test     eax, eax
-       jne      SHORT G_M62242_IG13
+       jne      SHORT G_M62242_IG12
 						;; size=70 bbWeight=0.50 PerfScore 11.50
-G_M62242_IG12:
+G_M62242_IG11:
        mov      rsi, r12
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
        call     [rax]System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
-       jmp      SHORT G_M62242_IG14
+       jmp      SHORT G_M62242_IG13
 						;; size=20 bbWeight=0.50 PerfScore 2.88
-G_M62242_IG13:
+G_M62242_IG12:
        mov      rax, qword ptr [rbp-0x30]
        mov      rdi, r12
        call     [rax+0x28]System.Type:GetGenericArguments():System.Type[]:this
        cmp      dword ptr [rax+0x08], 0
-       jbe      G_M62242_IG26
+       jbe      G_M62242_IG25
        mov      rsi, gword ptr [rax+0x10]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
        call     [rax]System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
 						;; size=39 bbWeight=0.50 PerfScore 6.88
-G_M62242_IG14:
+G_M62242_IG13:
        test     eax, eax
-       je       G_M62242_IG23
+       je       G_M62242_IG22
 						;; size=8 bbWeight=0.50 PerfScore 0.62
-G_M62242_IG15:
+G_M62242_IG14:
        cmp      byte  ptr [r14+0x17], 0
-       je       SHORT G_M62242_IG19
+       je       SHORT G_M62242_IG18
 						;; size=7 bbWeight=1 PerfScore 4.00
-G_M62242_IG16:
-       mov      rdi, r15
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       call     [rax]System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
-       cmp      rax, rdi
-       sete     r12b
-       movzx    r12, r12b
+G_M62242_IG15:
        mov      rdi, r14
        call     [r13+0x20]System.Text.Json.Serialization.JsonConverter:get_Type():System.Type:this
        mov      r13, rax
        mov      rdi, r13
        mov      rax, qword ptr [r13]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x08]System.Type:get_IsGenericType():ubyte:this
        test     eax, eax
-       jne      SHORT G_M62242_IG17
-       xor      eax, eax
-       jmp      SHORT G_M62242_IG18
-						;; size=68 bbWeight=0.50 PerfScore 9.75
-G_M62242_IG17:
+       jne      SHORT G_M62242_IG16
+       xor      r12d, r12d
+       jmp      SHORT G_M62242_IG17
+						;; size=33 bbWeight=0.50 PerfScore 7.12
+G_M62242_IG16:
        mov      rdi, r13
        mov      rax, qword ptr [r13]
        mov      rax, qword ptr [rax+0x68]
        call     [rax+0x18]System.Type:GetGenericTypeDefinition():System.Type:this
        mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
        cmp      rax, rdi
-       sete     al
-       movzx    rax, al
-						;; size=33 bbWeight=0.50 PerfScore 4.50
+       sete     r12b
+       movzx    r12, r12b
+						;; size=35 bbWeight=0.50 PerfScore 4.50
+G_M62242_IG17:
+       xor      r12d, 1
+       jne      SHORT G_M62242_IG21
+						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M62242_IG18:
-       xor      eax, r12d
-       jne      SHORT G_M62242_IG22
-						;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M62242_IG19:
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[int]]
        call     CORINFO_HELP_NEWSFAST
        mov      r13, rax
        mov      rdi, r13
        mov      rcx, rbx
        mov      rdx, r14
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Metadata.JsonTypeInfo:.ctor(System.Type,System.Text.Json.Serialization.JsonConverter,System.Text.Json.JsonSerializerOptions):this
        call     [rax]System.Text.Json.Serialization.Metadata.JsonTypeInfo:.ctor(System.Type,System.Text.Json.Serialization.JsonConverter,System.Text.Json.JsonSerializerOptions):this
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Nullable`1[int]]():System.Text.Json.Serialization.JsonConverter`1[System.Nullable`1[int]]:this
        call     [rax]System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Nullable`1[int]]():System.Text.Json.Serialization.JsonConverter`1[System.Nullable`1[int]]:this
        lea      rdi, bword ptr [r13+0x140]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        mov      rax, r13
 						;; size=75 bbWeight=1 PerfScore 11.25
-G_M62242_IG20:
+G_M62242_IG19:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
-G_M62242_IG21:
+G_M62242_IG20:
        mov      rdi, r13
        call     System.Object:GetType():System.Type:this
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializerConverterFactoryReturnsNull(System.Type)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializerConverterFactoryReturnsNull(System.Type)
        int3     
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M62242_IG22:
+G_M62242_IG21:
        mov      rsi, r14
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_ConverterCanConvertMultipleTypes(System.Type,System.Text.Json.Serialization.JsonConverter)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_ConverterCanConvertMultipleTypes(System.Type,System.Text.Json.Serialization.JsonConverter)
        int3     
 						;; size=19 bbWeight=0 PerfScore 0.00
-G_M62242_IG23:
+G_M62242_IG22:
        mov      rdi, r14
        call     System.Object:GetType():System.Type:this
        mov      rdi, rax
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializationConverterNotCompatible(System.Type,System.Type)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializationConverterNotCompatible(System.Type,System.Type)
        int3     
 						;; size=27 bbWeight=0 PerfScore 0.00
-G_M62242_IG24:
+G_M62242_IG23:
        mov      rdi, r13
        call     System.Object:GetType():System.Type:this
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializerConverterFactoryReturnsJsonConverterFactorty(System.Type)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializerConverterFactoryReturnsJsonConverterFactorty(System.Type)
        int3     
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M62242_IG25:
+G_M62242_IG24:
        mov      edi, 0x3958
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowArgumentNullException(System.String)
        call     [rax]System.Text.Json.ThrowHelper:ThrowArgumentNullException(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M62242_IG26:
+G_M62242_IG25:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 800, prolog size 16, PerfScore 115.75, instruction count 202, allocated bytes for code 800 (MethodHash=17d10cdd) for method System.Text.Json.Serialization.Metadata.JsonTypeInfo:CreateJsonTypeInfo[System.Nullable`1[int]](System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[int]] (FullOpts)
+; Total bytes of code 738, prolog size 16, PerfScore 112.00, instruction count 189, allocated bytes for code 738 (MethodHash=17d10cdd) for method System.Text.Json.Serialization.Metadata.JsonTypeInfo:CreateJsonTypeInfo[System.Nullable`1[int]](System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[int]] (FullOpts)
-39 (-12.96 % of base) - System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Nullable`1[int]]():System.Text.Json.Serialization.JsonConverter`1[System.Nullable`1[int]]:this
 ; Assembly listing for method System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Nullable`1[int]]():System.Text.Json.Serialization.JsonConverter`1[System.Nullable`1[int]]:this (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 1 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 10,  6   )     ref  ->  rbx         this class-hnd single-def <System.Text.Json.Serialization.JsonConverter>
 ;  V01 loc0         [V01,T04] (  3,  2.50)     ref  ->  rax         class-hnd single-def <System.Text.Json.Serialization.JsonConverter`1[System.Nullable`1[int]]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T02] (  3,  3   )     ref  ->  rax         class-hnd single-def "dup spill" <System.Text.Json.Serialization.JsonConverter>
 ;* V04 tmp2         [V04    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V05 tmp3         [V05,T07] (  3,  1.50)     ref  ->  rax        
+;  V05 tmp3         [V05,T06] (  3,  1.50)     ref  ->  rax        
 ;  V06 tmp4         [V06,T05] (  4,  2   )     ref  ->  rax        
 ;  V07 tmp5         [V07,T03] (  3,  3   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.Text.Json.Serialization.Converters.CastingConverter`1[System.Nullable`1[int]]>
-;  V08 tmp6         [V08,T06] (  2,  2   )     int  ->  r15         "non-inline candidate call"
-;  V09 tmp7         [V09,T08] (  3,  1.50)   ubyte  ->  r13         "Inline return value spill temp"
-;  V10 tmp8         [V10,T01] (  5,  5   )     ref  ->  r14         class-hnd single-def "Inlining Arg" <System.Type>
+;* V08 tmp6         [V08    ] (  0,  0   )     int  ->  zero-ref    "non-inline candidate call"
+;  V09 tmp7         [V09,T07] (  3,  1.50)   ubyte  ->  r14         "Inline return value spill temp"
+;  V10 tmp8         [V10,T01] (  5,  5   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Type>
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M61975_IG01:
        push     rbp
        push     r15
        push     r14
-       push     r13
        push     rbx
+       push     rax
        lea      rbp, [rsp+0x20]
        mov      rbx, rdi
-						;; size=16 bbWeight=1 PerfScore 5.75
+						;; size=15 bbWeight=1 PerfScore 5.75
 G_M61975_IG02:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Serialization.JsonConverter`1[System.Nullable`1[int]]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
        jne      G_M61975_IG10
 						;; size=34 bbWeight=1 PerfScore 5.00
 G_M61975_IG03:
        cmp      byte  ptr [rbx+0x17], 0
        je       SHORT G_M61975_IG06
-       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[System.Int32]'
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       call     [rax]System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
-       cmp      rax, rdi
-       sete     r15b
-       movzx    r15, r15b
        mov      rdi, rbx
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x20]System.Text.Json.Serialization.JsonConverter:get_Type():System.Type:this
-       mov      r14, rax
-       mov      rdi, r14
-       mov      rax, qword ptr [r14]
+       mov      r15, rax
+       mov      rdi, r15
+       mov      rax, qword ptr [r15]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x08]System.Type:get_IsGenericType():ubyte:this
        test     eax, eax
        jne      SHORT G_M61975_IG04
-       xor      r13d, r13d
+       xor      r14d, r14d
        jmp      SHORT G_M61975_IG05
-						;; size=87 bbWeight=0.50 PerfScore 13.75
+						;; size=44 bbWeight=0.50 PerfScore 11.12
 G_M61975_IG04:
-       mov      rdi, r14
-       mov      rax, qword ptr [r14]
+       mov      rdi, r15
+       mov      rax, qword ptr [r15]
        mov      rax, qword ptr [rax+0x68]
        call     [rax+0x18]System.Type:GetGenericTypeDefinition():System.Type:this
        mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
        cmp      rax, rdi
-       sete     r13b
-       movzx    r13, r13b
+       sete     r14b
+       movzx    r14, r14b
 						;; size=34 bbWeight=0.50 PerfScore 4.50
 G_M61975_IG05:
-       xor      r15d, r13d
+       xor      r14d, 1
        jne      SHORT G_M61975_IG11
-						;; size=5 bbWeight=0.50 PerfScore 0.62
+						;; size=6 bbWeight=0.50 PerfScore 0.62
 G_M61975_IG06:
        mov      rdi, rbx
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x20]System.Text.Json.Serialization.JsonConverter:get_SourceConverterForCastingConverter():System.Text.Json.Serialization.JsonConverter:this
        test     rax, rax
        je       SHORT G_M61975_IG07
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Nullable`1[int]]():System.Text.Json.Serialization.JsonConverter`1[System.Nullable`1[int]]:this
        call     [rax]System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Nullable`1[int]]():System.Text.Json.Serialization.JsonConverter`1[System.Nullable`1[int]]:this
        jmp      SHORT G_M61975_IG08
 						;; size=35 bbWeight=0.50 PerfScore 7.00
 G_M61975_IG07:
        xor      rax, rax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M61975_IG08:
        test     rax, rax
        jne      SHORT G_M61975_IG09
        mov      rdi, 0xD1FFAB1E      ; System.Text.Json.Serialization.Converters.CastingConverter`1[System.Nullable`1[int]]
        call     CORINFO_HELP_NEWSFAST
        mov      r15, rax
        mov      rdi, r15
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Serialization.Converters.CastingConverter`1[System.Nullable`1[int]]:.ctor(System.Text.Json.Serialization.JsonConverter):this
        call     [rax]System.Text.Json.Serialization.Converters.CastingConverter`1[System.Nullable`1[int]]:.ctor(System.Text.Json.Serialization.JsonConverter):this
        mov      rax, r15
 						;; size=44 bbWeight=0.50 PerfScore 3.38
 G_M61975_IG09:
+       add      rsp, 8
        pop      rbx
-       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=0.50 PerfScore 1.75
+						;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M61975_IG10:
+       add      rsp, 8
        pop      rbx
-       pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=0.50 PerfScore 1.75
+						;; size=11 bbWeight=0.50 PerfScore 1.62
 G_M61975_IG11:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[System.Int32]'
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_ConverterCanConvertMultipleTypes(System.Type,System.Text.Json.Serialization.JsonConverter)
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_ConverterCanConvertMultipleTypes(System.Type,System.Text.Json.Serialization.JsonConverter)
        int3     
 						;; size=26 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 301, prolog size 13, PerfScore 43.62, instruction count 83, allocated bytes for code 301 (MethodHash=f7610de8) for method System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Nullable`1[int]]():System.Text.Json.Serialization.JsonConverter`1[System.Nullable`1[int]]:this (FullOpts)
+; Total bytes of code 262, prolog size 12, PerfScore 40.75, instruction count 76, allocated bytes for code 262 (MethodHash=f7610de8) for method System.Text.Json.Serialization.JsonConverter:CreateCastingConverter[System.Nullable`1[int]]():System.Text.Json.Serialization.JsonConverter`1[System.Nullable`1[int]]:this (FullOpts)
-32 (-29.36 % of base) - System.Xml.Serialization.TypeScope:IsOptionalValue(System.Type):ubyte
 ; Assembly listing for method System.Xml.Serialization.TypeScope:IsOptionalValue(System.Type):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] (  6,  5   )     ref  ->  rbx         class-hnd single-def <System.Type>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Type>
-;  V03 tmp2         [V03,T01] (  2,  2   )     ref  ->  rbx         single-def "argument with side effect"
-;  V04 tmp3         [V04,T02] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
 ;
 ; Lcl frame size = 8
 
 G_M27238_IG01:
        push     rbp
        push     rbx
        push     rax
        lea      rbp, [rsp+0x10]
        mov      rbx, rdi
 						;; size=11 bbWeight=1 PerfScore 3.75
 G_M27238_IG02:
        mov      rdi, rbx
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x08]System.Type:get_IsGenericType():ubyte:this
        test     eax, eax
        je       SHORT G_M27238_IG04
 						;; size=17 bbWeight=1 PerfScore 8.50
 G_M27238_IG03:
        mov      rdi, rbx
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x68]
        call     [rax+0x18]System.Type:GetGenericTypeDefinition():System.Type:this
-       mov      rbx, rax
-       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       call     [rax]System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       mov      rsi, rax
-       mov      rdi, rbx
-       mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
-       call     [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
-       test     eax, eax
-       jne      SHORT G_M27238_IG06
-						;; size=60 bbWeight=0.50 PerfScore 8.00
+       mov      rcx, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
+       cmp      rax, rcx
+       je       SHORT G_M27238_IG06
+						;; size=28 bbWeight=0.50 PerfScore 4.38
 G_M27238_IG04:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M27238_IG05:
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
 						;; size=7 bbWeight=0.50 PerfScore 1.12
 G_M27238_IG06:
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M27238_IG07:
        add      rsp, 8
        pop      rbx
        pop      rbp
        ret      
 						;; size=7 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 109, prolog size 8, PerfScore 22.75, instruction count 35, allocated bytes for code 109 (MethodHash=14419599) for method System.Xml.Serialization.TypeScope:IsOptionalValue(System.Type):ubyte (FullOpts)
+; Total bytes of code 77, prolog size 8, PerfScore 19.12, instruction count 28, allocated bytes for code 77 (MethodHash=14419599) for method System.Xml.Serialization.TypeScope:IsOptionalValue(System.Type):ubyte (FullOpts)
-30 (-11.54 % of base) - System.Data.DataRowExtensions+UnboxT`1[System.Nullable`1[int]]:g__CreateWhenDynamicCodeSupported|1_0():System.Func`2[System.Object,System.Nullable`1[int]]
 ; Assembly listing for method System.Data.DataRowExtensions+UnboxT`1[System.Nullable`1[int]]:<Create>g__CreateWhenDynamicCodeSupported|1_0():System.Func`2[System.Object,System.Nullable`1[int]] (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 OutArgs      [V00    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V01 tmp1         [V01,T00] (  3,  6   )     ref  ->  r15         class-hnd exact single-def "dup spill" <System.Type[]>
 ;  V02 tmp2         [V02,T01] (  3,  6   )     ref  ->  rbx         class-hnd single-def "impAppendStmt" <System.Reflection.MethodInfo>
 ;  V03 tmp3         [V03,T02] (  3,  4   )     ref  ->  rsi         class-hnd "Strict ordering of exceptions for Array store" <System.Type>
-;  V04 tmp4         [V04,T05] (  3,  3   )     ref  ->  rax         single-def "arr expr"
+;  V04 tmp4         [V04,T04] (  3,  3   )     ref  ->  rax         single-def "arr expr"
 ;  V05 tmp5         [V05,T03] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
-;  V06 cse0         [V06,T04] (  4,  3   )     ref  ->  r14         "CSE #01: aggressive"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 16
 
 G_M40398_IG01:
        push     rbp
        push     r15
-       push     r14
        push     rbx
-       sub      rsp, 24
-       lea      rbp, [rsp+0x30]
-						;; size=15 bbWeight=1 PerfScore 4.75
+       sub      rsp, 16
+       lea      rbp, [rsp+0x20]
+						;; size=13 bbWeight=1 PerfScore 3.75
 G_M40398_IG02:
        xor      rdi, rdi
        mov      gword ptr [rsp], rdi
 						;; size=6 bbWeight=1 PerfScore 1.25
 G_M40398_IG03:
        mov      gword ptr [rsp+0x08], rdi
        mov      rdi, 0xD1FFAB1E      ; 'UnboxT`1[System.Nullable`1[System.Int32]]'
        mov      rsi, 0xD1FFAB1E      ; 'NullableField'
        mov      edx, -1
        mov      ecx, 40
        xor      r8, r8
        mov      r9d, 3
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        call     [rax]System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        mov      rbx, rax
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      r15, rax
-       mov      r14, 0xD1FFAB1E      ; 'System.Nullable`1[System.Int32]'
-       mov      rdi, r14
+       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[System.Int32]'
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_IsGenericTypeDefinition():ubyte:this
        call     [rax]System.RuntimeType:get_IsGenericTypeDefinition():ubyte:this
        test     eax, eax
-       jne      SHORT G_M40398_IG05
-						;; size=111 bbWeight=1 PerfScore 12.75
+       je       SHORT G_M40398_IG05
+						;; size=108 bbWeight=1 PerfScore 12.50
 G_M40398_IG04:
-       mov      rdi, r14
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       call     [rax]System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
-       cmp      rax, rdi
-       je       SHORT G_M40398_IG06
-						;; size=30 bbWeight=0.50 PerfScore 2.50
-G_M40398_IG05:
        xor      rsi, rsi
-       jmp      SHORT G_M40398_IG07
+       jmp      SHORT G_M40398_IG06
 						;; size=4 bbWeight=0.50 PerfScore 1.12
-G_M40398_IG06:
-       mov      rdi, r14
+G_M40398_IG05:
+       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[System.Int32]'
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericArguments():System.Type[]:this
        call     [rax]System.RuntimeType:GetGenericArguments():System.Type[]:this
        cmp      dword ptr [rax+0x08], 0
-       jbe      SHORT G_M40398_IG09
+       jbe      SHORT G_M40398_IG08
        mov      rsi, gword ptr [rax+0x10]
-						;; size=25 bbWeight=0.50 PerfScore 4.75
-G_M40398_IG07:
+						;; size=32 bbWeight=0.50 PerfScore 4.75
+G_M40398_IG06:
        lea      rdi, bword ptr [r15+0x10]
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, rbx
        mov      rsi, r15
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x38]System.Reflection.MethodInfo:MakeGenericMethod(System.Type[]):System.Reflection.MethodInfo:this
        mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; System.Reflection.MethodInfo:CreateDelegate[System.Func`2[System.Object,System.Nullable`1[int]]]():System.Func`2[System.Object,System.Nullable`1[int]]:this
        mov      rax, 0xD1FFAB1E      ; code for System.Reflection.MethodInfo:CreateDelegate[System.__Canon]():System.__Canon:this
        cmp      dword ptr [rdi], edi
 						;; size=50 bbWeight=1 PerfScore 12.75
-G_M40398_IG08:
-       add      rsp, 24
+G_M40398_IG07:
+       add      rsp, 16
        pop      rbx
-       pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Reflection.MethodInfo:CreateDelegate[System.__Canon]():System.__Canon:this
-						;; size=13 bbWeight=1 PerfScore 4.25
-G_M40398_IG09:
+						;; size=11 bbWeight=1 PerfScore 3.75
+G_M40398_IG08:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 260, prolog size 15, PerfScore 44.12, instruction count 61, allocated bytes for code 260 (MethodHash=9e046231) for method System.Data.DataRowExtensions+UnboxT`1[System.Nullable`1[int]]:<Create>g__CreateWhenDynamicCodeSupported|1_0():System.Func`2[System.Object,System.Nullable`1[int]] (FullOpts)
+; Total bytes of code 230, prolog size 13, PerfScore 39.88, instruction count 52, allocated bytes for code 230 (MethodHash=9e046231) for method System.Data.DataRowExtensions+UnboxT`1[System.Nullable`1[int]]:<Create>g__CreateWhenDynamicCodeSupported|1_0():System.Func`2[System.Object,System.Nullable`1[int]] (FullOpts)
-30 (-5.40 % of base) - System.Data.DataRowExtensions+UnboxT`1[System.Nullable`1[int]]:NullableFieldUsingReflection(System.Object):System.Nullable`1[int]
 ; Assembly listing for method System.Data.DataRowExtensions+UnboxT`1[System.Nullable`1[int]]:NullableFieldUsingReflection(System.Object):System.Nullable`1[int] (FullOpts)
 ; Emitting BLENDED_CODE for X86 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 4 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] ( 11,  6.75)     ref  ->  rbx         class-hnd <System.Object>
 ;  V01 loc0         [V01    ] (  2,  1   )  struct ( 8) [rbp-0x28]  do-not-enreg[XS] addr-exposed <System.Nullable`1[int]>
 ;  V02 loc1         [V02,T02] (  6,  3   )     ref  ->  r15         class-hnd exact single-def <System.RuntimeType>
 ;* V03 loc2         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Type>
 ;* V04 loc3         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.Type>
 ;* V05 loc4         [V05    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] ld-addr-op <System.Nullable`1[int]>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V07 tmp1         [V07,T08] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling qmarkNull" <System.Int32>
-;  V08 tmp2         [V08,T09] (  3,  1.50)     ref  ->  r14        
+;* V07 tmp1         [V07,T07] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling qmarkNull" <System.Int32>
+;  V08 tmp2         [V08,T08] (  3,  1.50)     ref  ->  r14        
 ;* V09 tmp3         [V09    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V10 tmp4         [V10    ] (  0,  0   )     ref  ->  zero-ref   
-;  V11 tmp5         [V11,T10] (  3,  1.50)     ref  ->  rax        
+;  V11 tmp5         [V11,T09] (  3,  1.50)     ref  ->  rax        
 ;  V12 tmp6         [V12    ] (  2,  2   )  struct ( 8) [rbp-0x30]  do-not-enreg[XS] addr-exposed "pseudo return buffer" <System.Nullable`1[int]>
-;  V13 tmp7         [V13,T11] (  3,  1.50)     ref  ->  rax        
+;  V13 tmp7         [V13,T10] (  3,  1.50)     ref  ->  rax        
 ;  V14 tmp8         [V14,T01] ( 10,  5   )     ref  ->  r13         class-hnd "Inline return value spill temp" <System.Type>
 ;* V15 tmp9         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.RuntimeType[]>
-;  V16 tmp10        [V16,T07] (  2,  2   )     ref  ->  r14         class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+;  V16 tmp10        [V16,T06] (  2,  2   )     ref  ->  r14         class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;  V17 tmp11        [V17    ] (  2,  1   )   ubyte  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed "field V01.hasValue (fldOffset=0x0)" P-DEP
 ;  V18 tmp12        [V18    ] (  2,  1   )     int  ->  [rbp-0x24]  do-not-enreg[X] addr-exposed "field V01.value (fldOffset=0x4)" P-DEP
 ;* V19 tmp13        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[] "field V05.hasValue (fldOffset=0x0)" P-DEP
 ;* V20 tmp14        [V20    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[] "field V05.value (fldOffset=0x4)" P-DEP
 ;  V21 tmp15        [V21    ] (  2,  2   )   ubyte  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V12.hasValue (fldOffset=0x0)" P-DEP
 ;  V22 tmp16        [V22    ] (  2,  2   )     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V12.value (fldOffset=0x4)" P-DEP
 ;  V23 tmp17        [V23,T03] (  3,  3   )     ref  ->  rax         single-def "arr expr"
 ;  V24 tmp18        [V24,T04] (  3,  3   )     ref  ->  r14         single-def "arr expr"
 ;  V25 tmp19        [V25,T05] (  3,  3   )     int  ->  rax         "index expr"
 ;  V26 cse0         [V26,T12] (  3,  1.50)    long  ->  r15         "CSE #03: moderate"
-;  V27 cse1         [V27,T06] (  4,  2   )     ref  ->  r14         "CSE #01: moderate"
+;  V27 cse1         [V27,T11] (  3,  1.50)     ref  ->  r14         "CSE #01: moderate"
 ;
 ; Lcl frame size = 16
 
 G_M38004_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
        sub      rsp, 16
        lea      rbp, [rsp+0x30]
        mov      rbx, rdi
 						;; size=20 bbWeight=1 PerfScore 6.00
 G_M38004_IG02:
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
-       je       G_M38004_IG23
+       je       G_M38004_IG22
 						;; size=19 bbWeight=1 PerfScore 4.25
 G_M38004_IG03:
        mov      rdi, 0xD1FFAB1E      ; data for System.DBNull:Value
        cmp      rbx, gword ptr [rdi]
-       je       G_M38004_IG21
+       je       G_M38004_IG20
 						;; size=19 bbWeight=1 PerfScore 4.25
 G_M38004_IG04:
        test     rbx, rbx
        je       SHORT G_M38004_IG08
 						;; size=5 bbWeight=0.50 PerfScore 0.62
 G_M38004_IG05:
        mov      rdi, 0xD1FFAB1E      ; System.Int32
        cmp      qword ptr [rbx], rdi
        jne      SHORT G_M38004_IG08
 						;; size=15 bbWeight=0.25 PerfScore 1.06
 G_M38004_IG06:
        lea      rdi, [rbp-0x28]
        mov      rdx, rbx
        mov      rsi, 0xD1FFAB1E      ; System.Nullable`1[int]
        call     CORINFO_HELP_UNBOX_NULLABLE
        mov      rax, qword ptr [rbp-0x28]
 						;; size=26 bbWeight=0.50 PerfScore 1.50
 G_M38004_IG07:
        add      rsp, 16
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M38004_IG08:
        mov      rdi, rbx
        call     System.Object:GetType():System.Type:this
        mov      r15, rax
        mov      r14, 0xD1FFAB1E      ; 'System.Nullable`1[System.Int32]'
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_IsGenericTypeDefinition():ubyte:this
        call     [rax]System.RuntimeType:get_IsGenericTypeDefinition():ubyte:this
        test     eax, eax
-       jne      SHORT G_M38004_IG09
-       mov      rdi, r14
-       mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       call     [rax]System.RuntimeType:GetGenericTypeDefinition():System.Type:this
-       mov      rdi, 0xD1FFAB1E      ; 'System.Nullable`1[T]'
-       cmp      rax, rdi
-       je       SHORT G_M38004_IG10
-						;; size=70 bbWeight=0.50 PerfScore 5.75
-G_M38004_IG09:
+       je       SHORT G_M38004_IG09
        xor      r13, r13
-       jmp      SHORT G_M38004_IG11
-						;; size=5 bbWeight=0.50 PerfScore 1.12
-G_M38004_IG10:
+       jmp      SHORT G_M38004_IG10
+						;; size=45 bbWeight=0.50 PerfScore 4.38
+G_M38004_IG09:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetGenericArguments():System.Type[]:this
        call     [rax]System.RuntimeType:GetGenericArguments():System.Type[]:this
        cmp      dword ptr [rax+0x08], 0
-       jbe      G_M38004_IG26
+       jbe      G_M38004_IG25
        mov      r13, gword ptr [rax+0x10]
 						;; size=29 bbWeight=0.50 PerfScore 4.75
-G_M38004_IG11:
+G_M38004_IG10:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_IsEnum():ubyte:this
        call     [rax]System.RuntimeType:get_IsEnum():ubyte:this
        test     eax, eax
-       je       SHORT G_M38004_IG13
+       je       SHORT G_M38004_IG12
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_IsActualEnum():ubyte:this
        call     [rax]System.RuntimeType:get_IsActualEnum():ubyte:this
        test     eax, eax
-       je       G_M38004_IG25
+       je       G_M38004_IG24
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
-       je       G_M38004_IG24
+       je       G_M38004_IG23
 						;; size=61 bbWeight=0.50 PerfScore 6.88
-G_M38004_IG12:
+G_M38004_IG11:
        mov      rdi, 0xD1FFAB1E      ; data for System.Enum:s_underlyingTypes
        mov      r14, gword ptr [rdi]
        mov      rdi, qword ptr [r15+0x18]
        call     System.Enum:InternalGetCorElementType(ulong):ubyte
        cmp      eax, dword ptr [r14+0x08]
-       jae      G_M38004_IG26
+       jae      G_M38004_IG25
        mov      edi, eax
        mov      r14, gword ptr [r14+8*rdi+0x10]
-       jmp      SHORT G_M38004_IG14
+       jmp      SHORT G_M38004_IG13
 						;; size=41 bbWeight=0.50 PerfScore 6.75
-G_M38004_IG13:
+G_M38004_IG12:
        mov      r14, r15
 						;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M38004_IG14:
+G_M38004_IG13:
        mov      rdi, r13
        mov      rax, qword ptr [r13]
        mov      r15, qword ptr [rax+0x70]
        call     [r15+0x30]System.Type:get_IsEnum():ubyte:this
        test     eax, eax
-       je       SHORT G_M38004_IG15
+       je       SHORT G_M38004_IG14
        mov      rdi, r13
        mov      rax, qword ptr [r13]
        mov      rax, qword ptr [rax+0xA0]
        call     [rax+0x18]System.Type:GetEnumUnderlyingType():System.Type:this
-       jmp      SHORT G_M38004_IG16
+       jmp      SHORT G_M38004_IG15
 						;; size=38 bbWeight=0.50 PerfScore 8.88
-G_M38004_IG15:
+G_M38004_IG14:
        mov      rax, r13
 						;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M38004_IG16:
+G_M38004_IG15:
        mov      rdi, r14
        mov      rsi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Type:op_Equality(System.Type,System.Type):ubyte
        call     [rax]System.Type:op_Equality(System.Type,System.Type):ubyte
        test     eax, eax
-       je       SHORT G_M38004_IG19
+       je       SHORT G_M38004_IG18
        mov      rdi, r13
        call     [r15+0x30]System.Type:get_IsEnum():ubyte:this
        test     eax, eax
-       je       SHORT G_M38004_IG17
+       je       SHORT G_M38004_IG16
        mov      rdi, r13
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Enum:ToObject(System.Type,System.Object):System.Object
        call     [rax]System.Enum:ToObject(System.Type,System.Object):System.Object
-       jmp      SHORT G_M38004_IG18
+       jmp      SHORT G_M38004_IG17
 						;; size=53 bbWeight=0.50 PerfScore 7.62
-G_M38004_IG17:
+G_M38004_IG16:
        mov      rdi, rbx
        mov      rsi, r13
        xor      rdx, rdx
        mov      rax, 0xD1FFAB1E      ; code for System.Convert:ChangeType(System.Object,System.Type,System.IFormatProvider):System.Object
        call     [rax]System.Convert:ChangeType(System.Object,System.Type,System.IFormatProvider):System.Object
 						;; size=20 bbWeight=0.50 PerfScore 2.00
-G_M38004_IG18:
+G_M38004_IG17:
        mov      rbx, rax
 						;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M38004_IG19:
+G_M38004_IG18:
        lea      rdi, [rbp-0x30]
        mov      rdx, rbx
        mov      rsi, 0xD1FFAB1E      ; System.Nullable`1[int]
        call     CORINFO_HELP_UNBOX_NULLABLE
        mov      rax, qword ptr [rbp-0x30]
 						;; size=26 bbWeight=0.50 PerfScore 1.50
-G_M38004_IG20:
+G_M38004_IG19:
        add      rsp, 16
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M38004_IG21:
+G_M38004_IG20:
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M38004_IG22:
+G_M38004_IG21:
        add      rsp, 16
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=13 bbWeight=0.50 PerfScore 1.88
-G_M38004_IG23:
+G_M38004_IG22:
        mov      rdi, 0xD1FFAB1E      ; System.DBNull
        call     CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      G_M38004_IG03
 						;; size=20 bbWeight=0 PerfScore 0.00
-G_M38004_IG24:
+G_M38004_IG23:
        mov      rdi, 0xD1FFAB1E      ; System.Enum
        call     CORINFO_HELP_GET_GCSTATIC_BASE
-       jmp      G_M38004_IG12
+       jmp      G_M38004_IG11
 						;; size=20 bbWeight=0 PerfScore 0.00
-G_M38004_IG25:
+G_M38004_IG24:
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:ThrowMustBeEnum()
        call     [rax]System.RuntimeType:ThrowMustBeEnum()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M38004_IG26:
+G_M38004_IG25:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 556, prolog size 17, PerfScore 69.06, instruction count 141, allocated bytes for code 556 (MethodHash=b9ca6b8b) for method System.Data.DataRowExtensions+UnboxT`1[System.Nullable`1[int]]:NullableFieldUsingReflection(System.Object):System.Nullable`1[int] (FullOpts)
+; Total bytes of code 526, prolog size 17, PerfScore 66.56, instruction count 135, allocated bytes for code 526 (MethodHash=b9ca6b8b) for method System.Data.DataRowExtensions+UnboxT`1[System.Nullable`1[int]]:NullableFieldUsingReflection(System.Object):System.Nullable`1[int] (FullOpts)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment