forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JitDiff X64] xtqqczze/dotnet-runtime/VectorUnsafeAccess #521
Comments
Top method regressions32 (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) Larger list of diffs: https://gist.github.com/MihuBot/cca985192c7e597c58a037127b959e09 |
Top method improvements-24 (-55.81 % of base) - System.Numerics.Vector`1[System.__Canon]:CopyTo(System.__Canon[],int):this ; Assembly listing for method System.Numerics.Vector`1[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) byref -> zero-ref this single-def
;* V01 TypeCtx [V01 ] ( 0, 0 ) long -> zero-ref single-def
-; V02 arg1 [V02,T00] ( 4, 2 ) ref -> rdx class-hnd single-def <System.__Canon[]>
-; V03 arg2 [V03,T01] ( 3, 2 ) int -> rcx single-def
+;* V02 arg1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.__Canon[]>
+;* V03 arg2 [V03 ] ( 0, 0 ) int -> zero-ref single-def
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V05 tmp1 [V05 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V06 tmp2 [V06 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V07 tmp3 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V05 tmp1 [V05 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V07 tmp3 [V07 ] ( 0, 0 ) struct (32) zero-ref "impAppendStmt" <System.Numerics.Vector`1[System.__Canon]>
+;* V08 tmp4 [V08 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V09 tmp5 [V09 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V10 tmp6 [V10 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V11 tmp7 [V11 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V12 tmp8 [V12 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V14 tmp10 [V14 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V15 tmp11 [V15 ] ( 0, 0 ) long -> zero-ref "field V07._00 (fldOffset=0x0)" P-INDEP
+;* V16 tmp12 [V16 ] ( 0, 0 ) long -> zero-ref "field V07._01 (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M1545_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M1545_IG02:
- cmp dword ptr [rdx+0x08], ecx
- jbe SHORT G_M1545_IG03
- mov edi, dword ptr [rdx+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M1545_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=eda9f9f6) for method System.Numerics.Vector`1[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=eda9f9f6) for method System.Numerics.Vector`1[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts) -24 (-55.81 % of base) - System.Numerics.Vector`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Numerics.Vector`1[System.__Canon],System.__Canon[],int) ; Assembly listing for method System.Numerics.Vector`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.CopyTo(System.Numerics.Vector`1[System.__Canon],System.__Canon[],int) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp 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 ] ( 0, 0 ) long -> zero-ref single-def
;* V01 arg0 [V01 ] ( 0, 0 ) struct (32) zero-ref ld-addr-op single-def <System.Numerics.Vector`1[System.__Canon]>
-; V02 arg1 [V02,T01] ( 4, 2 ) ref -> rsi class-hnd single-def <System.__Canon[]>
-; V03 arg2 [V03,T02] ( 3, 2 ) int -> rdx single-def
+;* V02 arg1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.__Canon[]>
+;* V03 arg2 [V03 ] ( 0, 0 ) int -> zero-ref single-def
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V07 tmp3 [V07 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V06 tmp2 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V07 tmp3 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp4 [V08 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-;* V09 tmp5 [V09 ] ( 0, 0 ) long -> zero-ref single-def "field V01._00 (fldOffset=0x0)" P-INDEP
-;* V10 tmp6 [V10 ] ( 0, 0 ) long -> zero-ref single-def "field V01._01 (fldOffset=0x8)" P-INDEP
-;* V11 tmp7 [V11 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V09 tmp5 [V09 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V10 tmp6 [V10 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V11 tmp7 [V11 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V12 tmp8 [V12 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V14 tmp10 [V14 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V15 tmp11 [V15 ] ( 0, 0 ) struct (32) zero-ref "Inlining Arg" <System.Numerics.Vector`1[System.__Canon]>
+;* V16 tmp12 [V16 ] ( 0, 0 ) long -> zero-ref single-def "field V01._00 (fldOffset=0x0)" P-INDEP
+;* V17 tmp13 [V17 ] ( 0, 0 ) long -> zero-ref single-def "field V01._01 (fldOffset=0x8)" P-INDEP
+;* V18 tmp14 [V18 ] ( 0, 0 ) long -> zero-ref "field V15._00 (fldOffset=0x0)" P-INDEP
+;* V19 tmp15 [V19 ] ( 0, 0 ) long -> zero-ref "field V15._01 (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M28338_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M28338_IG02:
- cmp dword ptr [rsi+0x08], edx
- jbe SHORT G_M28338_IG03
- mov edi, dword ptr [rsi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M28338_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=3da9914d) for method System.Numerics.Vector`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.CopyTo(System.Numerics.Vector`1[System.__Canon],System.__Canon[],int) (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=3da9914d) for method System.Numerics.Vector`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.CopyTo(System.Numerics.Vector`1[System.__Canon],System.__Canon[],int) (FullOpts) -24 (-55.81 % of base) - System.Numerics.Vector`1[System.Nullable`1[int]]:CopyTo(System.Nullable`1[int][],int):this ; Assembly listing for method System.Numerics.Vector`1[System.Nullable`1[int]]:CopyTo(System.Nullable`1[int][],int):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) byref -> zero-ref this single-def
-; V01 arg1 [V01,T00] ( 4, 2 ) ref -> rsi class-hnd single-def <System.Nullable`1[int][]>
-; V02 arg2 [V02,T01] ( 3, 2 ) int -> rdx single-def
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Nullable`1[int][]>
+;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V05 tmp2 [V05 ] ( 0, 0 ) struct (32) zero-ref "impAppendStmt" <System.Numerics.Vector`1[System.Nullable`1[int]]>
+;* V06 tmp3 [V06 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V07 tmp4 [V07 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "field V05._00 (fldOffset=0x0)" P-INDEP
+;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "field V05._01 (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M56265_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M56265_IG02:
- cmp dword ptr [rsi+0x08], edx
- jbe SHORT G_M56265_IG03
- mov edi, dword ptr [rsi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M56265_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=0f302436) for method System.Numerics.Vector`1[System.Nullable`1[int]]:CopyTo(System.Nullable`1[int][],int):this (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=0f302436) for method System.Numerics.Vector`1[System.Nullable`1[int]]:CopyTo(System.Nullable`1[int][],int):this (FullOpts) -24 (-55.81 % of base) - System.Numerics.Vector`1[System.Nullable`1[int]]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Numerics.Vector`1[System.Nullable`1[int]],System.Nullable`1[int][],int) ; Assembly listing for method System.Numerics.Vector`1[System.Nullable`1[int]]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.CopyTo(System.Numerics.Vector`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp 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 arg0 [V00 ] ( 0, 0 ) struct (32) zero-ref ld-addr-op single-def <System.Numerics.Vector`1[System.Nullable`1[int]]>
-; V01 arg1 [V01,T00] ( 4, 2 ) ref -> rdi class-hnd single-def <System.Nullable`1[int][]>
-; V02 arg2 [V02,T01] ( 3, 2 ) int -> rsi single-def
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Nullable`1[int][]>
+;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref single-def "field V00._00 (fldOffset=0x0)" P-INDEP
-;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref single-def "field V00._01 (fldOffset=0x8)" P-INDEP
-;* V07 tmp4 [V07 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V05 tmp2 [V05 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V07 tmp4 [V07 ] ( 0, 0 ) struct (32) zero-ref "Inlining Arg" <System.Numerics.Vector`1[System.Nullable`1[int]]>
+;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref single-def "field V00._00 (fldOffset=0x0)" P-INDEP
+;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref single-def "field V00._01 (fldOffset=0x8)" P-INDEP
+;* V10 tmp7 [V10 ] ( 0, 0 ) long -> zero-ref "field V07._00 (fldOffset=0x0)" P-INDEP
+;* V11 tmp8 [V11 ] ( 0, 0 ) long -> zero-ref "field V07._01 (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M30282_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M30282_IG02:
- cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M30282_IG03
- mov edi, dword ptr [rdi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M30282_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=77fd89b5) for method System.Numerics.Vector`1[System.Nullable`1[int]]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.CopyTo(System.Numerics.Vector`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=77fd89b5) for method System.Numerics.Vector`1[System.Nullable`1[int]]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.CopyTo(System.Numerics.Vector`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts) -24 (-55.81 % of base) - System.Numerics.Vector`1[System.Numerics.Vector`1[float]]:CopyTo(System.Numerics.Vector`1[float][],int):this ; Assembly listing for method System.Numerics.Vector`1[System.Numerics.Vector`1[float]]:CopyTo(System.Numerics.Vector`1[float][],int):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) byref -> zero-ref this single-def
-; V01 arg1 [V01,T00] ( 4, 2 ) ref -> rsi class-hnd single-def <System.Numerics.Vector`1[float][]>
-; V02 arg2 [V02,T01] ( 3, 2 ) int -> rdx single-def
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Numerics.Vector`1[float][]>
+;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V05 tmp2 [V05 ] ( 0, 0 ) struct (32) zero-ref "impAppendStmt" <System.Numerics.Vector`1[System.Numerics.Vector`1[float]]>
+;* V06 tmp3 [V06 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V07 tmp4 [V07 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "field V05._00 (fldOffset=0x0)" P-INDEP
+;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "field V05._01 (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M27689_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M27689_IG02:
- cmp dword ptr [rsi+0x08], edx
- jbe SHORT G_M27689_IG03
- mov edi, dword ptr [rsi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M27689_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=3c4b93d6) for method System.Numerics.Vector`1[System.Numerics.Vector`1[float]]:CopyTo(System.Numerics.Vector`1[float][],int):this (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=3c4b93d6) for method System.Numerics.Vector`1[System.Numerics.Vector`1[float]]:CopyTo(System.Numerics.Vector`1[float][],int):this (FullOpts) -24 (-55.81 % of base) - System.Numerics.Vector`1[System.Numerics.Vector`1[float]]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Numerics.Vector`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) ; Assembly listing for method System.Numerics.Vector`1[System.Numerics.Vector`1[float]]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.CopyTo(System.Numerics.Vector`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp 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 arg0 [V00 ] ( 0, 0 ) struct (32) zero-ref ld-addr-op single-def <System.Numerics.Vector`1[System.Numerics.Vector`1[float]]>
-; V01 arg1 [V01,T00] ( 4, 2 ) ref -> rdi class-hnd single-def <System.Numerics.Vector`1[float][]>
-; V02 arg2 [V02,T01] ( 3, 2 ) int -> rsi single-def
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Numerics.Vector`1[float][]>
+;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref single-def "field V00._00 (fldOffset=0x0)" P-INDEP
-;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref single-def "field V00._01 (fldOffset=0x8)" P-INDEP
-;* V07 tmp4 [V07 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V05 tmp2 [V05 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V07 tmp4 [V07 ] ( 0, 0 ) struct (32) zero-ref "Inlining Arg" <System.Numerics.Vector`1[System.Numerics.Vector`1[float]]>
+;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref single-def "field V00._00 (fldOffset=0x0)" P-INDEP
+;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref single-def "field V00._01 (fldOffset=0x8)" P-INDEP
+;* V10 tmp7 [V10 ] ( 0, 0 ) long -> zero-ref "field V07._00 (fldOffset=0x0)" P-INDEP
+;* V11 tmp8 [V11 ] ( 0, 0 ) long -> zero-ref "field V07._01 (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M18167_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M18167_IG02:
- cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M18167_IG03
- mov edi, dword ptr [rdi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M18167_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=a68fb908) for method System.Numerics.Vector`1[System.Numerics.Vector`1[float]]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.CopyTo(System.Numerics.Vector`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=a68fb908) for method System.Numerics.Vector`1[System.Numerics.Vector`1[float]]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.CopyTo(System.Numerics.Vector`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) (FullOpts) -24 (-55.81 % of base) - System.Runtime.Intrinsics.Vector128:CopyTo[System.__Canon](System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[],int) ; Assembly listing for method System.Runtime.Intrinsics.Vector128:CopyTo[System.__Canon](System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[],int) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 TypeCtx [V00,T00] ( 3, 3 ) long -> rdi single-def
+;* V00 TypeCtx [V00 ] ( 0, 0 ) long -> zero-ref single-def
;* V01 arg0 [V01 ] ( 0, 0 ) struct (16) zero-ref single-def <System.Runtime.Intrinsics.Vector128`1[System.__Canon]>
-; V02 arg1 [V02,T01] ( 4, 2 ) ref -> rsi class-hnd single-def <System.__Canon[]>
-; V03 arg2 [V03,T02] ( 3, 2 ) int -> rdx single-def
+;* V02 arg1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.__Canon[]>
+;* V03 arg2 [V03 ] ( 0, 0 ) int -> zero-ref single-def
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V07 tmp3 [V07 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V06 tmp2 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V07 tmp3 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp4 [V08 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-;* V09 tmp5 [V09 ] ( 0, 0 ) long -> zero-ref single-def "field V01._lower (fldOffset=0x0)" P-INDEP
-;* V10 tmp6 [V10 ] ( 0, 0 ) long -> zero-ref single-def "field V01._upper (fldOffset=0x8)" P-INDEP
-;* V11 tmp7 [V11 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V09 tmp5 [V09 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V10 tmp6 [V10 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V11 tmp7 [V11 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V12 tmp8 [V12 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V14 tmp10 [V14 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V15 tmp11 [V15 ] ( 0, 0 ) long -> zero-ref single-def "field V01._lower (fldOffset=0x0)" P-INDEP
+;* V16 tmp12 [V16 ] ( 0, 0 ) long -> zero-ref single-def "field V01._upper (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M57213_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M57213_IG02:
- cmp dword ptr [rsi+0x08], edx
- jbe SHORT G_M57213_IG03
- mov edi, dword ptr [rsi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M57213_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=d4002082) for method System.Runtime.Intrinsics.Vector128:CopyTo[System.__Canon](System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[],int) (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=d4002082) for method System.Runtime.Intrinsics.Vector128:CopyTo[System.__Canon](System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[],int) (FullOpts) -24 (-55.81 % of base) - System.Runtime.Intrinsics.Vector128:CopyTo[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]],System.Nullable`1[int][],int) ; Assembly listing for method System.Runtime.Intrinsics.Vector128:CopyTo[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref single-def <System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]]>
-; V01 arg1 [V01,T00] ( 4, 2 ) ref -> rdi class-hnd single-def <System.Nullable`1[int][]>
-; V02 arg2 [V02,T01] ( 3, 2 ) int -> rsi single-def
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Nullable`1[int][]>
+;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref single-def "field V00._lower (fldOffset=0x0)" P-INDEP
-;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref single-def "field V00._upper (fldOffset=0x8)" P-INDEP
-;* V07 tmp4 [V07 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V05 tmp2 [V05 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V07 tmp4 [V07 ] ( 0, 0 ) long -> zero-ref single-def "field V00._lower (fldOffset=0x0)" P-INDEP
+;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref single-def "field V00._upper (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M16325_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M16325_IG02:
- cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M16325_IG03
- mov edi, dword ptr [rdi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M16325_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=3c60c03a) for method System.Runtime.Intrinsics.Vector128:CopyTo[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=3c60c03a) for method System.Runtime.Intrinsics.Vector128:CopyTo[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts) -24 (-55.81 % of base) - System.Runtime.Intrinsics.Vector128:CopyTo[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) ; Assembly listing for method System.Runtime.Intrinsics.Vector128:CopyTo[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref single-def <System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]]>
-; V01 arg1 [V01,T00] ( 4, 2 ) ref -> rdi class-hnd single-def <System.Numerics.Vector`1[float][]>
-; V02 arg2 [V02,T01] ( 3, 2 ) int -> rsi single-def
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Numerics.Vector`1[float][]>
+;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref single-def "field V00._lower (fldOffset=0x0)" P-INDEP
-;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref single-def "field V00._upper (fldOffset=0x8)" P-INDEP
-;* V07 tmp4 [V07 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V05 tmp2 [V05 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V07 tmp4 [V07 ] ( 0, 0 ) long -> zero-ref single-def "field V00._lower (fldOffset=0x0)" P-INDEP
+;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref single-def "field V00._upper (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M56728_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M56728_IG02:
- cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M56728_IG03
- mov edi, dword ptr [rdi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M56728_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=62f22267) for method System.Runtime.Intrinsics.Vector128:CopyTo[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=62f22267) for method System.Runtime.Intrinsics.Vector128:CopyTo[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) (FullOpts) -24 (-55.81 % of base) - System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]],System.Nullable`1[int][],int) ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp 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 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref single-def <System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]]>
-; V01 arg1 [V01,T00] ( 4, 2 ) ref -> rdi class-hnd single-def <System.Nullable`1[int][]>
-; V02 arg2 [V02,T01] ( 3, 2 ) int -> rsi single-def
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Nullable`1[int][]>
+;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref single-def "field V00._lower (fldOffset=0x0)" P-INDEP
-;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref single-def "field V00._upper (fldOffset=0x8)" P-INDEP
-;* V07 tmp4 [V07 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V05 tmp2 [V05 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V07 tmp4 [V07 ] ( 0, 0 ) long -> zero-ref single-def "field V00._lower (fldOffset=0x0)" P-INDEP
+;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref single-def "field V00._upper (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M47735_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M47735_IG02:
- cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M47735_IG03
- mov edi, dword ptr [rdi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M47735_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=6c2f4588) for method System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=6c2f4588) for method System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts) -24 (-55.81 % of base) - System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp 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 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref single-def <System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]]>
-; V01 arg1 [V01,T00] ( 4, 2 ) ref -> rdi class-hnd single-def <System.Numerics.Vector`1[float][]>
-; V02 arg2 [V02,T01] ( 3, 2 ) int -> rsi single-def
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Numerics.Vector`1[float][]>
+;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref single-def "field V00._lower (fldOffset=0x0)" P-INDEP
-;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref single-def "field V00._upper (fldOffset=0x8)" P-INDEP
-;* V07 tmp4 [V07 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V05 tmp2 [V05 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V07 tmp4 [V07 ] ( 0, 0 ) long -> zero-ref single-def "field V00._lower (fldOffset=0x0)" P-INDEP
+;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref single-def "field V00._upper (fldOffset=0x8)" P-INDEP
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M2730_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M2730_IG02:
- cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M2730_IG03
- mov edi, dword ptr [rdi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M2730_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=7b18f555) for method System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=7b18f555) for method System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) (FullOpts) -24 (-55.81 % of base) - System.Runtime.Intrinsics.Vector256:CopyTo[System.__Canon](System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[],int) ; Assembly listing for method System.Runtime.Intrinsics.Vector256:CopyTo[System.__Canon](System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[],int) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 TypeCtx [V00,T00] ( 3, 3 ) long -> rdi single-def
+;* V00 TypeCtx [V00 ] ( 0, 0 ) long -> zero-ref 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] ( 4, 2 ) ref -> rsi class-hnd single-def <System.__Canon[]>
-; V03 arg2 [V03,T02] ( 3, 2 ) int -> rdx single-def
+;* V02 arg1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.__Canon[]>
+;* V03 arg2 [V03 ] ( 0, 0 ) int -> zero-ref single-def
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
-;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
-;* V07 tmp3 [V07 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V06 tmp2 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V07 tmp3 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp4 [V08 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V09 tmp5 [V09 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V10 tmp6 [V10 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V11 tmp7 [V11 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V12 tmp8 [V12 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V14 tmp10 [V14 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M31869_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M31869_IG02:
- cmp dword ptr [rsi+0x08], edx
- jbe SHORT G_M31869_IG03
- mov edi, dword ptr [rsi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M31869_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=9d238382) for method System.Runtime.Intrinsics.Vector256:CopyTo[System.__Canon](System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[],int) (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=9d238382) for method System.Runtime.Intrinsics.Vector256:CopyTo[System.__Canon](System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[],int) (FullOpts) -24 (-55.81 % of base) - System.Runtime.Intrinsics.Vector256:CopyTo[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]],System.Nullable`1[int][],int) ; Assembly listing for method System.Runtime.Intrinsics.Vector256:CopyTo[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]]>
-; V01 arg1 [V01,T00] ( 4, 2 ) ref -> rdi class-hnd single-def <System.Nullable`1[int][]>
-; V02 arg2 [V02,T01] ( 3, 2 ) int -> rsi single-def
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Nullable`1[int][]>
+;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V05 tmp2 [V05 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M42437_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M42437_IG02:
- cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M42437_IG03
- mov edi, dword ptr [rdi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M42437_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=c1f25a3a) for method System.Runtime.Intrinsics.Vector256:CopyTo[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=c1f25a3a) for method System.Runtime.Intrinsics.Vector256:CopyTo[System.Nullable`1[int]](System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts) -24 (-55.81 % of base) - System.Runtime.Intrinsics.Vector256:CopyTo[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector256`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) ; Assembly listing for method System.Runtime.Intrinsics.Vector256:CopyTo[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector256`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector256`1[System.Numerics.Vector`1[float]]>
-; V01 arg1 [V01,T00] ( 4, 2 ) ref -> rdi class-hnd single-def <System.Numerics.Vector`1[float][]>
-; V02 arg2 [V02,T01] ( 3, 2 ) int -> rsi single-def
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Numerics.Vector`1[float][]>
+;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V05 tmp2 [V05 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M61336_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M61336_IG02:
- cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M61336_IG03
- mov edi, dword ptr [rdi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M61336_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=1e771067) for method System.Runtime.Intrinsics.Vector256:CopyTo[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector256`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=1e771067) for method System.Runtime.Intrinsics.Vector256:CopyTo[System.Numerics.Vector`1[float]](System.Runtime.Intrinsics.Vector256`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][],int) (FullOpts) -24 (-55.81 % of base) - System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]],System.Nullable`1[int][],int) ; Assembly listing for method System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp 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 arg0 [V00 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]]>
-; V01 arg1 [V01,T00] ( 4, 2 ) ref -> rdi class-hnd single-def <System.Nullable`1[int][]>
-; V02 arg2 [V02,T01] ( 3, 2 ) int -> rsi single-def
+;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Nullable`1[int][]>
+;* V02 arg2 [V02 ] ( 0, 0 ) int -> zero-ref single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V05 tmp2 [V05 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M32413_IG01:
- push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ push rax
+ ;; size=1 bbWeight=0 PerfScore 0.00
G_M32413_IG02:
- cmp dword ptr [rdi+0x08], esi
- jbe SHORT G_M32413_IG03
- mov edi, dword ptr [rdi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
- ;; size=26 bbWeight=0 PerfScore 0.00
-G_M32413_IG03:
- mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- call [rax]System.ThrowHelper:ThrowStartIndexArgumentOutOfRange_ArgumentOutOfRange_IndexMustBeLess()
- int3
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 43, prolog size 4, PerfScore 0.00, instruction count 12, allocated bytes for code 43 (MethodHash=05998162) for method System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts)
+; Total bytes of code 19, prolog size 1, PerfScore 0.00, instruction count 5, allocated bytes for code 19 (MethodHash=05998162) for method System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.Nullable`1[int]],System.Nullable`1[int][],int) (FullOpts) Larger list of diffs: https://gist.github.com/MihuBot/f6cfa0bb8b43ca1a8b537ffdb4871807 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 14 minutes.
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: