Skip to content

Instantly share code, notes, and snippets.

@MihuBot
Created July 13, 2024 23:21
Show Gist options
  • Save MihuBot/cca985192c7e597c58a037127b959e09 to your computer and use it in GitHub Desktop.
Save MihuBot/cca985192c7e597c58a037127b959e09 to your computer and use it in GitHub Desktop.

Top method regressions

32 (168.42 % of base) - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.TryCopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.Span`1[System.__Canon]):ubyte
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.TryCopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.Span`1[System.__Canon]):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (16) zero-ref    single-def <System.Runtime.Intrinsics.Vector128`1[System.__Canon]>
 ;* V02 arg1         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;* V14 tmp11        [V14    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._lower (fldOffset=0x0)" P-INDEP
-;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._upper (fldOffset=0x8)" P-INDEP
-;  V16 tmp13        [V16,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V17 tmp14        [V17,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V19 tmp16        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
-;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
-;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V14 tmp11        [V14    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V15 tmp12        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V17 tmp14        [V17    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V19 tmp16        [V19    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._lower (fldOffset=0x0)" P-INDEP
+;* V20 tmp17        [V20    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._upper (fldOffset=0x8)" P-INDEP
+;  V21 tmp18        [V21,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V22 tmp19        [V22,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp21        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
+;* V25 tmp22        [V25    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V26 tmp23        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
+;* V27 tmp24        [V27,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V28 rat0         [V28,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V29 rat1         [V29,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V30 rat2         [V30,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V31 rat3         [V31,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M24828_IG01:
-       push     rax
-						;; size=1 bbWeight=0 PerfScore 0.00
+       push     rbp
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M24828_IG02:
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x228]
+       test     rdi, rdi
+       je       SHORT G_M24828_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M24828_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=53719f03) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.TryCopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.Span`1[System.__Canon]):ubyte (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=53719f03) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.TryCopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.Span`1[System.__Canon]):ubyte (FullOpts)
32 (168.42 % of base) - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.TryCopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.Span`1[System.__Canon]):ubyte
 ; Assembly listing for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.TryCopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.Span`1[System.__Canon]):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector256`1[System.__Canon]>
 ;* V02 arg1         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;  V14 tmp11        [V14,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V15 tmp12        [V15,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V16 tmp13        [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V17 tmp14        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
-;* V19 tmp16        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V14 tmp11        [V14    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V15 tmp12        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V17 tmp14        [V17    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V19 tmp16        [V19,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V20 tmp17        [V20,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V21 tmp18        [V21    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp21        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
+;* V25 tmp22        [V25,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V26 rat0         [V26,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V27 rat1         [V27,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V28 rat2         [V28,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V29 rat3         [V29,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M38998_IG01:
-       push     rax
-						;; size=1 bbWeight=0 PerfScore 0.00
+       push     rbp
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M38998_IG02:
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x228]
+       test     rdi, rdi
+       je       SHORT G_M38998_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M38998_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=3d3467a9) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.TryCopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.Span`1[System.__Canon]):ubyte (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=3d3467a9) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.TryCopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.Span`1[System.__Canon]):ubyte (FullOpts)
32 (168.42 % of base) - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.TryCopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.Span`1[System.__Canon]):ubyte
 ; Assembly listing for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.TryCopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.Span`1[System.__Canon]):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (64) zero-ref    do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector512`1[System.__Canon]>
 ;* V02 arg1         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;  V14 tmp11        [V14,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V15 tmp12        [V15,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V16 tmp13        [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V17 tmp14        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
-;* V19 tmp16        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V14 tmp11        [V14    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V15 tmp12        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V17 tmp14        [V17    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V19 tmp16        [V19,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V20 tmp17        [V20,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V21 tmp18        [V21    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp21        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
+;* V25 tmp22        [V25,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V26 rat0         [V26,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V27 rat1         [V27,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V28 rat2         [V28,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V29 rat3         [V29,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M37873_IG01:
-       push     rax
-						;; size=1 bbWeight=0 PerfScore 0.00
+       push     rbp
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M37873_IG02:
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x228]
+       test     rdi, rdi
+       je       SHORT G_M37873_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M37873_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=68d26c0e) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.TryCopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.Span`1[System.__Canon]):ubyte (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=68d26c0e) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.TryCopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.Span`1[System.__Canon]):ubyte (FullOpts)
32 (168.42 % of base) - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.TryCopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.Span`1[System.__Canon]):ubyte
 ; Assembly listing for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.TryCopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.Span`1[System.__Canon]):ubyte (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
-; rsp based frame
+; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Runtime.Intrinsics.Vector64`1[System.__Canon]>
 ;* V02 arg1         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V08 tmp5         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;* V14 tmp11        [V14    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._00 (fldOffset=0x0)" P-INDEP
-;  V15 tmp12        [V15,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V16 tmp13        [V16,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
-;* V19 tmp16        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
-;* V20 tmp17        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V14 tmp11        [V14    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V15 tmp12        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V17 tmp14        [V17    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V19 tmp16        [V19    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._00 (fldOffset=0x0)" P-INDEP
+;  V20 tmp17        [V20,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V21 tmp18        [V21,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V08._reference (fldOffset=0x0)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
+;* V24 tmp21        [V24    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V25 tmp22        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
+;* V26 tmp23        [V26,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V27 rat0         [V27,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V28 rat1         [V28,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V29 rat2         [V29,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V30 rat3         [V30,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 8
+; Lcl frame size = 16
 
 G_M48357_IG01:
-       push     rax
-						;; size=1 bbWeight=0 PerfScore 0.00
+       push     rbp
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M48357_IG02:
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x210]
+       test     rdi, rdi
+       je       SHORT G_M48357_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M48357_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=4db2431a) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.TryCopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.Span`1[System.__Canon]):ubyte (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=4db2431a) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.TryCopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.Span`1[System.__Canon]):ubyte (FullOpts)
29 (131.82 % of base) - System.Numerics.Vector`1[System.__Canon]:.ctor(System.Span`1[System.__Canon]):this
 ; Assembly listing for method System.Numerics.Vector`1[System.__Canon]:.ctor(System.Span`1[System.__Canon]):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 5 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )   byref  ->  zero-ref    this single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
 ;* V02 arg1         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[System.__Canon]>
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.__Canon]>
 ;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V10 tmp7         [V10    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
+;* V10 tmp7         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp8         [V11    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
-;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V14 tmp11        [V14    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
+;* V15 tmp12        [V15    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V17 tmp14        [V17    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V18 tmp15        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
-;  V19 tmp16        [V19,T01] (  1,  1   )   byref  ->  rdx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V20 tmp17        [V20,T02] (  1,  1   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V21 tmp18        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;* V23 tmp20        [V23    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-;* V24 tmp21        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
-;* V25 tmp22        [V25    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V26 tmp23        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
-;* V27 tmp24        [V27    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V28 tmp25        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
-;* V29 tmp26        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V30 tmp27        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
+;* V18 tmp15        [V18    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V19 tmp16        [V19    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V20 tmp17        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
+;* V21 tmp18        [V21    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V22 tmp19        [V22    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V23 tmp20        [V23    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V24 tmp21        [V24,T01] (  1,  1   )   byref  ->  rdx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp22        [V25,T02] (  1,  1   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V26 tmp23        [V26    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V27 tmp24        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
+;* V28 tmp25        [V28    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
+;* V29 tmp26        [V29    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
+;* V30 tmp27        [V30    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V31 tmp28        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;* V32 tmp29        [V32    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V33 tmp30        [V33    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
+;* V34 tmp31        [V34    ] (  0,  0   )   byref  ->  zero-ref    "field V20._reference (fldOffset=0x0)" P-INDEP
+;* V35 tmp32        [V35    ] (  0,  0   )     int  ->  zero-ref    "field V20._length (fldOffset=0x8)" P-INDEP
+;* V36 tmp33        [V36,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V37 rat0         [V37,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V38 rat1         [V38,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V39 rat2         [V39,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V40 rat3         [V40,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M16570_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M16570_IG02:
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x2A8]
+       test     rdi, rdi
+       je       SHORT G_M16570_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M16570_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=0a67bf45) for method System.Numerics.Vector`1[System.__Canon]:.ctor(System.Span`1[System.__Canon]):this (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=0a67bf45) for method System.Numerics.Vector`1[System.__Canon]:.ctor(System.Span`1[System.__Canon]):this (FullOpts)
29 (131.82 % of base) - System.Numerics.Vector`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon]
 ; Assembly listing for method System.Numerics.Vector`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 RetBuf       [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
 ;* V02 arg0         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
-;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
+;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
-;  V13 tmp10        [V13,T01] (  1,  1   )   byref  ->  rdx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V14 tmp11        [V14,T02] (  1,  1   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V15 tmp12        [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V16 tmp13        [V16    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
+;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V18 tmp15        [V18,T01] (  1,  1   )   byref  ->  rdx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V19 tmp16        [V19,T02] (  1,  1   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
+;* V24 tmp21        [V24,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V25 rat0         [V25,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V26 rat1         [V26,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V27 rat2         [V27,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V28 rat3         [V28,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M48017_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M48017_IG02:
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x110]
+       test     rdi, rdi
+       je       SHORT G_M48017_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M48017_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=6c88446e) for method System.Numerics.Vector`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=6c88446e) for method System.Numerics.Vector`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Numerics.Vector`1[System.__Canon] (FullOpts)
29 (131.82 % of base) - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.Span`1[System.__Canon])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (16) zero-ref    single-def <System.Runtime.Intrinsics.Vector128`1[System.__Canon]>
 ;* V02 arg1         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._lower (fldOffset=0x0)" P-INDEP
-;* V14 tmp11        [V14    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._upper (fldOffset=0x8)" P-INDEP
-;  V15 tmp12        [V15,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V16 tmp13        [V16,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;* V19 tmp16        [V19    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V20 tmp17        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V18 tmp15        [V18    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._lower (fldOffset=0x0)" P-INDEP
+;* V19 tmp16        [V19    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._upper (fldOffset=0x8)" P-INDEP
+;  V20 tmp17        [V20,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V21 tmp18        [V21,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;* V24 tmp21        [V24    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V25 tmp22        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
+;* V26 tmp23        [V26,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V27 rat0         [V27,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V28 rat1         [V28,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V29 rat2         [V29,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V30 rat3         [V30,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M13830_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M13830_IG02:
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0xB0]
+       test     rdi, rdi
+       je       SHORT G_M13830_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M13830_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=8b87c9f9) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=8b87c9f9) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
29 (131.82 % of base) - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector128`1[System.__Canon]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 RetBuf       [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
 ;* V02 arg0         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
-;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
+;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
-;  V13 tmp10        [V13,T01] (  1,  1   )   byref  ->  rdx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V14 tmp11        [V14,T02] (  1,  1   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V15 tmp12        [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V16 tmp13        [V16    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
+;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V18 tmp15        [V18,T01] (  1,  1   )   byref  ->  rdx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V19 tmp16        [V19,T02] (  1,  1   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
+;* V24 tmp21        [V24,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V25 rat0         [V25,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V26 rat1         [V26,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V27 rat2         [V27,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V28 rat3         [V28,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M45836_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M45836_IG02:
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0xC8]
+       test     rdi, rdi
+       je       SHORT G_M45836_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M45836_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=9e2a4cf3) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=9e2a4cf3) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
29 (131.82 % of base) - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.Span`1[System.__Canon])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector256`1[System.__Canon]>
 ;* V02 arg1         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;  V13 tmp10        [V13,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V14 tmp11        [V14,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V15 tmp12        [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V16 tmp13        [V16    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V18 tmp15        [V18,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V19 tmp16        [V19,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
+;* V24 tmp21        [V24,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V25 rat0         [V25,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V26 rat1         [V26,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V27 rat2         [V27,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V28 rat3         [V28,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M18860_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M18860_IG02:
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0xA8]
+       test     rdi, rdi
+       je       SHORT G_M18860_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M18860_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=949ab653) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=949ab653) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
29 (131.82 % of base) - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector256`1[System.__Canon]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 RetBuf       [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
 ;* V02 arg0         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
-;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
+;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
-;  V13 tmp10        [V13,T01] (  1,  1   )   byref  ->  rdx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V14 tmp11        [V14,T02] (  1,  1   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V15 tmp12        [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V16 tmp13        [V16    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
+;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V18 tmp15        [V18,T01] (  1,  1   )   byref  ->  rdx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V19 tmp16        [V19,T02] (  1,  1   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
+;* V24 tmp21        [V24,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V25 rat0         [V25,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V26 rat1         [V26,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V27 rat2         [V27,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V28 rat3         [V28,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M35686_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M35686_IG02:
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0xC0]
+       test     rdi, rdi
+       je       SHORT G_M35686_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M35686_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=0eca7499) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=0eca7499) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
29 (131.82 % of base) - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.Span`1[System.__Canon])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (64) zero-ref    do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector512`1[System.__Canon]>
 ;* V02 arg1         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;  V13 tmp10        [V13,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V14 tmp11        [V14,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V15 tmp12        [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V16 tmp13        [V16    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V18 tmp15        [V18,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V19 tmp16        [V19,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
+;* V24 tmp21        [V24,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V25 rat0         [V25,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V26 rat1         [V26,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V27 rat2         [V27,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V28 rat3         [V28,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M5003_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M5003_IG02:
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0xA8]
+       test     rdi, rdi
+       je       SHORT G_M5003_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M5003_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=856aec74) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=856aec74) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
29 (131.82 % of base) - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector512`1[System.__Canon]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 RetBuf       [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
 ;* V02 arg0         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
-;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
+;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
-;  V13 tmp10        [V13,T01] (  1,  1   )   byref  ->  rdx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V14 tmp11        [V14,T02] (  1,  1   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V15 tmp12        [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V16 tmp13        [V16    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
+;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V18 tmp15        [V18,T01] (  1,  1   )   byref  ->  rdx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V19 tmp16        [V19,T02] (  1,  1   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
+;* V24 tmp21        [V24,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V25 rat0         [V25,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V26 rat1         [V26,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V27 rat2         [V27,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V28 rat3         [V28,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M4385_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M4385_IG02:
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0xC0]
+       test     rdi, rdi
+       je       SHORT G_M4385_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M4385_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=411eeede) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=411eeede) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
29 (131.82 % of base) - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.Span`1[System.__Canon])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Runtime.Intrinsics.Vector64`1[System.__Canon]>
 ;* V02 arg1         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
-;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._00 (fldOffset=0x0)" P-INDEP
-;  V14 tmp11        [V14,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V15 tmp12        [V15,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V16 tmp13        [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V17 tmp14        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V19 tmp16        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[System.__Canon]>
+;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V18 tmp15        [V18    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._00 (fldOffset=0x0)" P-INDEP
+;  V19 tmp16        [V19,T01] (  1,  1   )   byref  ->  rsi         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V20 tmp17        [V20,T02] (  1,  1   )     int  ->  rdx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V21 tmp18        [V21    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V24 tmp21        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
+;* V25 tmp22        [V25,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V26 rat0         [V26,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V27 rat1         [V27,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V28 rat2         [V28,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V29 rat3         [V29,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M39743_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M39743_IG02:
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x90]
+       test     rdi, rdi
+       je       SHORT G_M39743_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M39743_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=564d64c0) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=564d64c0) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
29 (131.82 % of base) - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector64`1[System.__Canon]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 2 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 RetBuf       [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
 ;* V02 arg0         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
-;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V07 tmp4         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
+;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
-;  V13 tmp10        [V13,T01] (  1,  1   )   byref  ->  rdx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V14 tmp11        [V14,T02] (  1,  1   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
-;* V15 tmp12        [V15    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V16 tmp13        [V16    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
-;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V12._reference (fldOffset=0x0)" P-INDEP
-;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0x8)" P-INDEP
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[System.__Canon]>
+;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V18 tmp15        [V18,T01] (  1,  1   )   byref  ->  rdx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+;  V19 tmp16        [V19,T02] (  1,  1   )     int  ->  rcx         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
+;* V22 tmp19        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
+;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
+;* V24 tmp21        [V24,T03] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V25 rat0         [V25,T04] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V26 rat1         [V26,T05] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V27 rat2         [V27,T07] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V28 rat3         [V28,T06] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M37109_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M37109_IG02:
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0xA8]
+       test     rdi, rdi
+       je       SHORT G_M37109_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M37109_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 22, prolog size 4, PerfScore 0.00, instruction count 6, allocated bytes for code 22 (MethodHash=b4646f0a) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=b4646f0a) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.ReadOnlySpan`1[System.__Canon]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts)
26 (104.00 % of base) - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (16) zero-ref    single-def <System.Runtime.Intrinsics.Vector128`1[System.__Canon]>
-;  V02 arg1         [V02,T01] (  3,  2   )     ref  ->  rsi         class-hnd single-def <System.__Canon[]>
+;* V02 arg1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._lower (fldOffset=0x0)" P-INDEP
-;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._upper (fldOffset=0x8)" P-INDEP
-;* V12 tmp9         [V12    ] (  0,  0   )   byref  ->  zero-ref    "BlockOp address local"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V15 tmp12        [V15    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._lower (fldOffset=0x0)" P-INDEP
+;* V16 tmp13        [V16    ] (  0,  0   )    long  ->  zero-ref    single-def "field V01._upper (fldOffset=0x8)" P-INDEP
+;* V17 tmp14        [V17,T01] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V18 rat0         [V18,T02] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V19 rat1         [V19,T03] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V20 rat2         [V20,T05] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V21 rat3         [V21,T04] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M23152_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M23152_IG02:
-       mov      edi, dword ptr [rsi+0x08]
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0xA0]
+       test     rdi, rdi
+       je       SHORT G_M23152_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M23152_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
-						;; size=21 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=fb03a58f) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=fb03a58f) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts)
26 (104.00 % of base) - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 RetBuf       [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
-;  V02 arg0         [V02,T01] (  3,  2   )     ref  ->  rdx         class-hnd single-def <System.__Canon[]>
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
+;* V02 arg0         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V15 tmp12        [V15,T01] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V16 rat0         [V16,T02] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V17 rat1         [V17,T03] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V18 rat2         [V18,T05] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V19 rat3         [V19,T04] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M59324_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M59324_IG02:
-       mov      edi, dword ptr [rdx+0x08]
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0xB8]
+       test     rdi, rdi
+       je       SHORT G_M59324_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M59324_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
-						;; size=21 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=ec911843) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=ec911843) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
26 (104.00 % of base) - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (32) zero-ref    do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector256`1[System.__Canon]>
-;  V02 arg1         [V02,T01] (  3,  2   )     ref  ->  rsi         class-hnd single-def <System.__Canon[]>
+;* V02 arg1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V15 tmp12        [V15,T01] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V16 rat0         [V16,T02] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V17 rat1         [V17,T03] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V18 rat2         [V18,T05] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V19 rat3         [V19,T04] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M9626_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M9626_IG02:
-       mov      edi, dword ptr [rsi+0x08]
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x98]
+       test     rdi, rdi
+       je       SHORT G_M9626_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M9626_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
-						;; size=21 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=57a4da65) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=57a4da65) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts)
26 (104.00 % of base) - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 RetBuf       [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
-;  V02 arg0         [V02,T01] (  3,  2   )     ref  ->  rdx         class-hnd single-def <System.__Canon[]>
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
+;* V02 arg0         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V15 tmp12        [V15,T01] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V16 rat0         [V16,T02] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V17 rat1         [V17,T03] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V18 rat2         [V18,T05] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V19 rat3         [V19,T04] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M1942_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M1942_IG02:
-       mov      edi, dword ptr [rdx+0x08]
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0xB0]
+       test     rdi, rdi
+       je       SHORT G_M1942_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M1942_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
-						;; size=21 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=f020f869) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=f020f869) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
26 (104.00 % of base) - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[])
 ; Assembly listing for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 TypeCtx      [V00,T00] (  3,  3   )    long  ->  rdi         single-def
+;  V00 TypeCtx      [V00,T00] (  4,  3   )    long  ->  rdi         single-def
 ;* V01 arg0         [V01    ] (  0,  0   )  struct (64) zero-ref    do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector512`1[System.__Canon]>
-;  V02 arg1         [V02,T01] (  3,  2   )     ref  ->  rsi         class-hnd single-def <System.__Canon[]>
+;* V02 arg1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V15 tmp12        [V15,T01] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V16 rat0         [V16,T02] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V17 rat1         [V17,T03] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V18 rat2         [V18,T05] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V19 rat3         [V19,T04] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M25821_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rdi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M25821_IG02:
-       mov      edi, dword ptr [rsi+0x08]
+       mov      rdi, qword ptr [rdi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0x98]
+       test     rdi, rdi
+       je       SHORT G_M25821_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M25821_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
-						;; size=21 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=fed49b22) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=fed49b22) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts)
26 (104.00 % of base) - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon]
 ; Assembly listing for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;* V00 RetBuf       [V00    ] (  0,  0   )   byref  ->  zero-ref    single-def
-;  V01 TypeCtx      [V01,T00] (  3,  3   )    long  ->  rsi         single-def
-;  V02 arg0         [V02,T01] (  3,  2   )     ref  ->  rdx         class-hnd single-def <System.__Canon[]>
+;  V01 TypeCtx      [V01,T00] (  4,  3   )    long  ->  rsi         single-def
+;* V02 arg0         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.__Canon[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 loc1         [V04    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
 ;* V05 tmp2         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp3         [V06    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;* V07 tmp4         [V07    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V07 tmp4         [V07    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V08 tmp5         [V08    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V09 tmp6         [V09    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V12 tmp9         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V13 tmp10        [V13    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
+;* V14 tmp11        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V15 tmp12        [V15,T01] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
+;* V16 rat0         [V16,T02] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;  V17 rat1         [V17,T03] (  2,  0   )    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;* V18 rat2         [V18,T05] (  0,  0   )    long  ->  zero-ref    "runtime lookup"
+;* V19 rat3         [V19,T04] (  0,  0   )    long  ->  zero-ref    "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 16
 
 G_M49233_IG01:
        push     rbp
-       mov      rbp, rsp
-						;; size=4 bbWeight=0 PerfScore 0.00
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       mov      qword ptr [rbp-0x08], rsi
+						;; size=14 bbWeight=0 PerfScore 0.00
 G_M49233_IG02:
-       mov      edi, dword ptr [rdx+0x08]
+       mov      rdi, qword ptr [rsi+0x30]
+       mov      rdi, qword ptr [rdi]
+       mov      rdi, qword ptr [rdi+0xB0]
+       test     rdi, rdi
+       je       SHORT G_M49233_IG03
+						;; size=19 bbWeight=0 PerfScore 0.00
+G_M49233_IG03:
        mov      edi, 67
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowNotSupportedException(int)
        call     [rax]System.ThrowHelper:ThrowNotSupportedException(int)
        int3     
-						;; size=21 bbWeight=0 PerfScore 0.00
+						;; size=18 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=19413fae) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
+; Total bytes of code 51, prolog size 14, PerfScore 0.00, instruction count 14, allocated bytes for code 51 (MethodHash=19413fae) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment