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] Use GetArrayDataReference
in Vector*
#503
Comments
Top method regressions29 (116.00 % of base) - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 TypeCtx [V00,T00] ( 3, 3 ) long -> rdi single-def
+; V00 TypeCtx [V00,T00] ( 4, 3 ) long -> rdi single-def
;* V01 arg0 [V01 ] ( 0, 0 ) struct (16) zero-ref single-def <System.Runtime.Intrinsics.Vector128`1[System.__Canon]>
; V02 arg1 [V02,T01] ( 3, 2 ) ref -> rsi class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V10 tmp7 [V10 ] ( 0, 0 ) long -> zero-ref single-def "field V01._lower (fldOffset=0x0)" P-INDEP
;* V11 tmp8 [V11 ] ( 0, 0 ) long -> zero-ref single-def "field V01._upper (fldOffset=0x8)" P-INDEP
-;* V12 tmp9 [V12 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V12 tmp9 [V12,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V13 tmp10 [V13 ] ( 0, 0 ) byref -> zero-ref "BlockOp address local"
+;* V14 rat0 [V14,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V15 rat1 [V15,T04] ( 2, 0 ) long -> rdi "fgMakeTemp is creating a new local variable"
+;* V16 rat2 [V16,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V17 rat3 [V17,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M23152_IG01:
push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ sub rsp, 16
+ lea rbp, [rsp+0x10]
+ mov qword ptr [rbp-0x08], rdi
+ ;; size=14 bbWeight=0 PerfScore 0.00
G_M23152_IG02:
+ mov rdi, qword ptr [rdi+0x30]
+ mov rdi, qword ptr [rdi]
+ mov rdi, qword ptr [rdi+0xA0]
+ test rdi, rdi
+ je SHORT G_M23152_IG03
+ ;; size=19 bbWeight=0 PerfScore 0.00
+G_M23152_IG03:
mov edi, dword ptr [rsi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
;; size=21 bbWeight=0 PerfScore 0.00
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=fb03a58f) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=fb03a58f) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector128`1[System.__Canon],System.__Canon[]) (FullOpts) 29 (116.00 % of base) - System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
; 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,T01] ( 3, 2 ) ref -> rdx class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 loc1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V10 tmp7 [V10,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V11 rat0 [V11,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V12 rat1 [V12,T04] ( 2, 0 ) long -> rdi "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V14 rat3 [V14,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M59324_IG01:
push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ sub rsp, 16
+ lea rbp, [rsp+0x10]
+ mov qword ptr [rbp-0x08], rsi
+ ;; size=14 bbWeight=0 PerfScore 0.00
G_M59324_IG02:
+ mov rdi, qword ptr [rsi+0x30]
+ mov rdi, qword ptr [rdi]
+ mov rdi, qword ptr [rdi+0xB8]
+ test rdi, rdi
+ je SHORT G_M59324_IG03
+ ;; size=19 bbWeight=0 PerfScore 0.00
+G_M59324_IG03:
mov edi, dword ptr [rdx+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
;; size=21 bbWeight=0 PerfScore 0.00
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=ec911843) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=ec911843) for method System.Runtime.Intrinsics.Vector128`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector128`1[System.__Canon] (FullOpts) 29 (116.00 % of base) - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) ; Assembly listing for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 TypeCtx [V00,T00] ( 3, 3 ) long -> rdi single-def
+; V00 TypeCtx [V00,T00] ( 4, 3 ) long -> rdi single-def
;* V01 arg0 [V01 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector256`1[System.__Canon]>
; V02 arg1 [V02,T01] ( 3, 2 ) ref -> rsi class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V10 tmp7 [V10,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V11 rat0 [V11,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V12 rat1 [V12,T04] ( 2, 0 ) long -> rdi "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V14 rat3 [V14,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M9626_IG01:
push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ sub rsp, 16
+ lea rbp, [rsp+0x10]
+ mov qword ptr [rbp-0x08], rdi
+ ;; size=14 bbWeight=0 PerfScore 0.00
G_M9626_IG02:
+ mov rdi, qword ptr [rdi+0x30]
+ mov rdi, qword ptr [rdi]
+ mov rdi, qword ptr [rdi+0x98]
+ test rdi, rdi
+ je SHORT G_M9626_IG03
+ ;; size=19 bbWeight=0 PerfScore 0.00
+G_M9626_IG03:
mov edi, dword ptr [rsi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
;; size=21 bbWeight=0 PerfScore 0.00
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=57a4da65) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=57a4da65) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector256`1[System.__Canon],System.__Canon[]) (FullOpts) 29 (116.00 % of base) - System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] ; Assembly listing for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
; 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,T01] ( 3, 2 ) ref -> rdx class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 loc1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V10 tmp7 [V10,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V11 rat0 [V11,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V12 rat1 [V12,T04] ( 2, 0 ) long -> rdi "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V14 rat3 [V14,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M1942_IG01:
push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ sub rsp, 16
+ lea rbp, [rsp+0x10]
+ mov qword ptr [rbp-0x08], rsi
+ ;; size=14 bbWeight=0 PerfScore 0.00
G_M1942_IG02:
+ mov rdi, qword ptr [rsi+0x30]
+ mov rdi, qword ptr [rdi]
+ mov rdi, qword ptr [rdi+0xB0]
+ test rdi, rdi
+ je SHORT G_M1942_IG03
+ ;; size=19 bbWeight=0 PerfScore 0.00
+G_M1942_IG03:
mov edi, dword ptr [rdx+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
;; size=21 bbWeight=0 PerfScore 0.00
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=f020f869) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=f020f869) for method System.Runtime.Intrinsics.Vector256`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector256`1[System.__Canon] (FullOpts) 29 (116.00 % of base) - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) ; Assembly listing for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 TypeCtx [V00,T00] ( 3, 3 ) long -> rdi single-def
+; V00 TypeCtx [V00,T00] ( 4, 3 ) long -> rdi single-def
;* V01 arg0 [V01 ] ( 0, 0 ) struct (64) zero-ref do-not-enreg[S] single-def <System.Runtime.Intrinsics.Vector512`1[System.__Canon]>
; V02 arg1 [V02,T01] ( 3, 2 ) ref -> rsi class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V10 tmp7 [V10,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V11 rat0 [V11,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V12 rat1 [V12,T04] ( 2, 0 ) long -> rdi "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V14 rat3 [V14,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M25821_IG01:
push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ sub rsp, 16
+ lea rbp, [rsp+0x10]
+ mov qword ptr [rbp-0x08], rdi
+ ;; size=14 bbWeight=0 PerfScore 0.00
G_M25821_IG02:
+ mov rdi, qword ptr [rdi+0x30]
+ mov rdi, qword ptr [rdi]
+ mov rdi, qword ptr [rdi+0x98]
+ test rdi, rdi
+ je SHORT G_M25821_IG03
+ ;; size=19 bbWeight=0 PerfScore 0.00
+G_M25821_IG03:
mov edi, dword ptr [rsi+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
;; size=21 bbWeight=0 PerfScore 0.00
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=fed49b22) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=fed49b22) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector512`1[System.__Canon],System.__Canon[]) (FullOpts) 29 (116.00 % of base) - System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] ; Assembly listing for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
; 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,T01] ( 3, 2 ) ref -> rdx class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 loc1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V10 tmp7 [V10,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V11 rat0 [V11,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V12 rat1 [V12,T04] ( 2, 0 ) long -> rdi "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V14 rat3 [V14,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M49233_IG01:
push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=0 PerfScore 0.00
+ sub rsp, 16
+ lea rbp, [rsp+0x10]
+ mov qword ptr [rbp-0x08], rsi
+ ;; size=14 bbWeight=0 PerfScore 0.00
G_M49233_IG02:
+ mov rdi, qword ptr [rsi+0x30]
+ mov rdi, qword ptr [rdi]
+ mov rdi, qword ptr [rdi+0xB0]
+ test rdi, rdi
+ je SHORT G_M49233_IG03
+ ;; size=19 bbWeight=0 PerfScore 0.00
+G_M49233_IG03:
mov edi, dword ptr [rdx+0x08]
mov edi, 67
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
;; size=21 bbWeight=0 PerfScore 0.00
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=19413fae) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=19413fae) for method System.Runtime.Intrinsics.Vector512`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector512`1[System.__Canon] (FullOpts) 29 (116.00 % of base) - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[]) ; Assembly listing for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[]) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
; 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,T01] ( 3, 2 ) ref -> rsi class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V10 tmp7 [V10 ] ( 0, 0 ) long -> zero-ref single-def "field V01._00 (fldOffset=0x0)" P-INDEP
+;* V11 tmp8 [V11,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V12 rat0 [V12,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V13 rat1 [V13,T04] ( 2, 0 ) long -> rdi "fgMakeTemp is creating a new local variable"
+;* V14 rat2 [V14,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V15 rat3 [V15,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M28585_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_M28585_IG02:
+ mov rdi, qword ptr [rdi+0x30]
+ mov rdi, qword ptr [rdi]
+ mov rdi, qword ptr [rdi+0x80]
+ test rdi, rdi
+ je SHORT G_M28585_IG03
+ ;; size=19 bbWeight=0 PerfScore 0.00
+G_M28585_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=21 bbWeight=0 PerfScore 0.00
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=da809056) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[]) (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=da809056) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.CopyTo(System.Runtime.Intrinsics.Vector64`1[System.__Canon],System.__Canon[]) (FullOpts) 29 (116.00 % of base) - System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] ; Assembly listing for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 2 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,T01] ( 3, 2 ) ref -> rdx class-hnd single-def <System.__Canon[]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 loc1 [V04 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V05 tmp2 [V05 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
+;* V10 tmp7 [V10,T02] ( 0, 0 ) long -> zero-ref "argument with side effect"
+;* V11 rat0 [V11,T03] ( 0, 0 ) long -> zero-ref "runtime lookup"
+; V12 rat1 [V12,T04] ( 2, 0 ) long -> rdi "fgMakeTemp is creating a new local variable"
+;* V13 rat2 [V13,T06] ( 0, 0 ) long -> zero-ref "runtime lookup"
+;* V14 rat3 [V14,T05] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M52357_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_M52357_IG02:
+ mov rdi, qword ptr [rsi+0x30]
+ mov rdi, qword ptr [rdi]
+ mov rdi, qword ptr [rdi+0x98]
+ test rdi, rdi
+ je SHORT G_M52357_IG03
+ ;; size=19 bbWeight=0 PerfScore 0.00
+G_M52357_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=21 bbWeight=0 PerfScore 0.00
-; Total bytes of code 25, prolog size 4, PerfScore 0.00, instruction count 7, allocated bytes for code 25 (MethodHash=631a337a) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts)
+; Total bytes of code 54, prolog size 14, PerfScore 0.00, instruction count 15, allocated bytes for code 54 (MethodHash=631a337a) for method System.Runtime.Intrinsics.Vector64`1[System.__Canon]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector64<T>,T>.Create(System.__Canon[]):System.Runtime.Intrinsics.Vector64`1[System.__Canon] (FullOpts) |
Top method improvements-12 (-20.00 % of base) - System.Numerics.Vector`1[double]:.ctor(double[],int):this ; Assembly listing for method System.Numerics.Vector`1[double]:.ctor(double[],int):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 3, 3 ) byref -> rdi this single-def
; V01 arg1 [V01,T01] ( 4, 4 ) ref -> rsi class-hnd single-def <double[]>
-; V02 arg2 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg2 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M23699_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M23699_IG02:
test edx, edx
jl SHORT G_M23699_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 4
+ sub eax, edx
+ cmp eax, 4
jl SHORT G_M23699_IG04
- cmp edx, eax
- jae SHORT G_M23699_IG05
mov eax, edx
vmovups ymm0, ymmword ptr [rsi+8*rax+0x10]
vmovups ymmword ptr [rdi], ymm0
- ;; size=32 bbWeight=1 PerfScore 13.50
+ ;; size=26 bbWeight=1 PerfScore 12.00
G_M23699_IG03:
vzeroupper
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
G_M23699_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M23699_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 17.25, instruction count 22, allocated bytes for code 60 (MethodHash=a32ea36c) for method System.Numerics.Vector`1[double]:.ctor(double[],int):this (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 15.75, instruction count 17, allocated bytes for code 48 (MethodHash=a32ea36c) for method System.Numerics.Vector`1[double]:.ctor(double[],int):this (FullOpts) -12 (-19.05 % of base) - System.Numerics.Vector`1[double]:System.Runtime.Intrinsics.ISimdVector,T>.Create(double[],int):System.Numerics.Vector`1[double] ; Assembly listing for method System.Numerics.Vector`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(double[],int):System.Numerics.Vector`1[double] (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <double[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op "NewObj constructor temp" <System.Numerics.Vector`1[double]>
-; V05 cse0 [V05,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M47021_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M47021_IG02:
test edx, edx
jl SHORT G_M47021_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 4
+ sub eax, edx
+ cmp eax, 4
jl SHORT G_M47021_IG04
- cmp edx, eax
- jae SHORT G_M47021_IG05
mov eax, edx
vmovups ymm0, ymmword ptr [rsi+8*rax+0x10]
vmovups ymmword ptr [rdi], ymm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 13.75
+ ;; size=29 bbWeight=1 PerfScore 12.25
G_M47021_IG03:
vzeroupper
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
G_M47021_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M47021_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 63, prolog size 4, PerfScore 17.50, instruction count 23, allocated bytes for code 63 (MethodHash=a7574852) for method System.Numerics.Vector`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(double[],int):System.Numerics.Vector`1[double] (FullOpts)
+; Total bytes of code 51, prolog size 4, PerfScore 16.00, instruction count 18, allocated bytes for code 51 (MethodHash=a7574852) for method System.Numerics.Vector`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(double[],int):System.Numerics.Vector`1[double] (FullOpts) -12 (-20.00 % of base) - System.Numerics.Vector`1[int]:.ctor(int[],int):this ; Assembly listing for method System.Numerics.Vector`1[int]:.ctor(int[],int):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 3, 3 ) byref -> rdi this single-def
; V01 arg1 [V01,T01] ( 4, 4 ) ref -> rsi class-hnd single-def <int[]>
-; V02 arg2 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg2 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M59667_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M59667_IG02:
test edx, edx
jl SHORT G_M59667_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 8
+ sub eax, edx
+ cmp eax, 8
jl SHORT G_M59667_IG04
- cmp edx, eax
- jae SHORT G_M59667_IG05
mov eax, edx
vmovups ymm0, ymmword ptr [rsi+4*rax+0x10]
vmovups ymmword ptr [rdi], ymm0
- ;; size=32 bbWeight=1 PerfScore 13.50
+ ;; size=26 bbWeight=1 PerfScore 12.00
G_M59667_IG03:
vzeroupper
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
G_M59667_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M59667_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 17.25, instruction count 22, allocated bytes for code 60 (MethodHash=a79d16ec) for method System.Numerics.Vector`1[int]:.ctor(int[],int):this (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 15.75, instruction count 17, allocated bytes for code 48 (MethodHash=a79d16ec) for method System.Numerics.Vector`1[int]:.ctor(int[],int):this (FullOpts) -12 (-19.05 % of base) - System.Numerics.Vector`1[int]:System.Runtime.Intrinsics.ISimdVector,T>.Create(int[],int):System.Numerics.Vector`1[int] ; Assembly listing for method System.Numerics.Vector`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(int[],int):System.Numerics.Vector`1[int] (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <int[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op "NewObj constructor temp" <System.Numerics.Vector`1[int]>
-; V05 cse0 [V05,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M35627_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M35627_IG02:
test edx, edx
jl SHORT G_M35627_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 8
+ sub eax, edx
+ cmp eax, 8
jl SHORT G_M35627_IG04
- cmp edx, eax
- jae SHORT G_M35627_IG05
mov eax, edx
vmovups ymm0, ymmword ptr [rsi+4*rax+0x10]
vmovups ymmword ptr [rdi], ymm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 13.75
+ ;; size=29 bbWeight=1 PerfScore 12.25
G_M35627_IG03:
vzeroupper
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
G_M35627_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M35627_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 63, prolog size 4, PerfScore 17.50, instruction count 23, allocated bytes for code 63 (MethodHash=145774d4) for method System.Numerics.Vector`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(int[],int):System.Numerics.Vector`1[int] (FullOpts)
+; Total bytes of code 51, prolog size 4, PerfScore 16.00, instruction count 18, allocated bytes for code 51 (MethodHash=145774d4) for method System.Numerics.Vector`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(int[],int):System.Numerics.Vector`1[int] (FullOpts) -12 (-20.00 % of base) - System.Numerics.Vector`1[long]:.ctor(long[],int):this ; Assembly listing for method System.Numerics.Vector`1[long]:.ctor(long[],int):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 3, 3 ) byref -> rdi this single-def
; V01 arg1 [V01,T01] ( 4, 4 ) ref -> rsi class-hnd single-def <long[]>
-; V02 arg2 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg2 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M14611_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M14611_IG02:
test edx, edx
jl SHORT G_M14611_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 4
+ sub eax, edx
+ cmp eax, 4
jl SHORT G_M14611_IG04
- cmp edx, eax
- jae SHORT G_M14611_IG05
mov eax, edx
vmovups ymm0, ymmword ptr [rsi+8*rax+0x10]
vmovups ymmword ptr [rdi], ymm0
- ;; size=32 bbWeight=1 PerfScore 13.50
+ ;; size=26 bbWeight=1 PerfScore 12.00
G_M14611_IG03:
vzeroupper
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
G_M14611_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M14611_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 17.25, instruction count 22, allocated bytes for code 60 (MethodHash=504ac6ec) for method System.Numerics.Vector`1[long]:.ctor(long[],int):this (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 15.75, instruction count 17, allocated bytes for code 48 (MethodHash=504ac6ec) for method System.Numerics.Vector`1[long]:.ctor(long[],int):this (FullOpts) -12 (-19.05 % of base) - System.Numerics.Vector`1[long]:System.Runtime.Intrinsics.ISimdVector,T>.Create(long[],int):System.Numerics.Vector`1[long] ; Assembly listing for method System.Numerics.Vector`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(long[],int):System.Numerics.Vector`1[long] (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <long[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op "NewObj constructor temp" <System.Numerics.Vector`1[long]>
-; V05 cse0 [V05,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M3186_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M3186_IG02:
test edx, edx
jl SHORT G_M3186_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 4
+ sub eax, edx
+ cmp eax, 4
jl SHORT G_M3186_IG04
- cmp edx, eax
- jae SHORT G_M3186_IG05
mov eax, edx
vmovups ymm0, ymmword ptr [rsi+8*rax+0x10]
vmovups ymmword ptr [rdi], ymm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 13.75
+ ;; size=29 bbWeight=1 PerfScore 12.25
G_M3186_IG03:
vzeroupper
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
G_M3186_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M3186_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 63, prolog size 4, PerfScore 17.50, instruction count 23, allocated bytes for code 63 (MethodHash=2033f38d) for method System.Numerics.Vector`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(long[],int):System.Numerics.Vector`1[long] (FullOpts)
+; Total bytes of code 51, prolog size 4, PerfScore 16.00, instruction count 18, allocated bytes for code 51 (MethodHash=2033f38d) for method System.Numerics.Vector`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(long[],int):System.Numerics.Vector`1[long] (FullOpts) -12 (-20.00 % of base) - System.Numerics.Vector`1[short]:.ctor(short[],int):this ; Assembly listing for method System.Numerics.Vector`1[short]:.ctor(short[],int):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 3, 3 ) byref -> rdi this single-def
; V01 arg1 [V01,T01] ( 4, 4 ) ref -> rsi class-hnd single-def <short[]>
-; V02 arg2 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg2 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M49907_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M49907_IG02:
test edx, edx
jl SHORT G_M49907_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 16
+ sub eax, edx
+ cmp eax, 16
jl SHORT G_M49907_IG04
- cmp edx, eax
- jae SHORT G_M49907_IG05
mov eax, edx
vmovups ymm0, ymmword ptr [rsi+2*rax+0x10]
vmovups ymmword ptr [rdi], ymm0
- ;; size=32 bbWeight=1 PerfScore 13.50
+ ;; size=26 bbWeight=1 PerfScore 12.00
G_M49907_IG03:
vzeroupper
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
G_M49907_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M49907_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 17.25, instruction count 22, allocated bytes for code 60 (MethodHash=058a3d0c) for method System.Numerics.Vector`1[short]:.ctor(short[],int):this (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 15.75, instruction count 17, allocated bytes for code 48 (MethodHash=058a3d0c) for method System.Numerics.Vector`1[short]:.ctor(short[],int):this (FullOpts) -12 (-19.05 % of base) - System.Numerics.Vector`1[short]:System.Runtime.Intrinsics.ISimdVector,T>.Create(short[],int):System.Numerics.Vector`1[short] ; Assembly listing for method System.Numerics.Vector`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(short[],int):System.Numerics.Vector`1[short] (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <short[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op "NewObj constructor temp" <System.Numerics.Vector`1[short]>
-; V05 cse0 [V05,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M25130_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M25130_IG02:
test edx, edx
jl SHORT G_M25130_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 16
+ sub eax, edx
+ cmp eax, 16
jl SHORT G_M25130_IG04
- cmp edx, eax
- jae SHORT G_M25130_IG05
mov eax, edx
vmovups ymm0, ymmword ptr [rsi+2*rax+0x10]
vmovups ymmword ptr [rdi], ymm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 13.75
+ ;; size=29 bbWeight=1 PerfScore 12.25
G_M25130_IG03:
vzeroupper
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
G_M25130_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M25130_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 63, prolog size 4, PerfScore 17.50, instruction count 23, allocated bytes for code 63 (MethodHash=4bc99dd5) for method System.Numerics.Vector`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(short[],int):System.Numerics.Vector`1[short] (FullOpts)
+; Total bytes of code 51, prolog size 4, PerfScore 16.00, instruction count 18, allocated bytes for code 51 (MethodHash=4bc99dd5) for method System.Numerics.Vector`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(short[],int):System.Numerics.Vector`1[short] (FullOpts) -12 (-20.00 % of base) - System.Numerics.Vector`1[ubyte]:.ctor(ubyte[],int):this ; Assembly listing for method System.Numerics.Vector`1[ubyte]:.ctor(ubyte[],int):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 3, 3 ) byref -> rdi this single-def
; V01 arg1 [V01,T01] ( 4, 4 ) ref -> rsi class-hnd single-def <ubyte[]>
-; V02 arg2 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg2 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M12179_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M12179_IG02:
test edx, edx
jl SHORT G_M12179_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 32
+ sub eax, edx
+ cmp eax, 32
jl SHORT G_M12179_IG04
- cmp edx, eax
- jae SHORT G_M12179_IG05
mov eax, edx
vmovups ymm0, ymmword ptr [rsi+rax+0x10]
vmovups ymmword ptr [rdi], ymm0
- ;; size=32 bbWeight=1 PerfScore 13.50
+ ;; size=26 bbWeight=1 PerfScore 12.00
G_M12179_IG03:
vzeroupper
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
G_M12179_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M12179_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 17.25, instruction count 22, allocated bytes for code 60 (MethodHash=43a6d06c) for method System.Numerics.Vector`1[ubyte]:.ctor(ubyte[],int):this (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 15.75, instruction count 17, allocated bytes for code 48 (MethodHash=43a6d06c) for method System.Numerics.Vector`1[ubyte]:.ctor(ubyte[],int):this (FullOpts) -12 (-19.05 % of base) - System.Numerics.Vector`1[ubyte]:System.Runtime.Intrinsics.ISimdVector,T>.Create(ubyte[],int):System.Numerics.Vector`1[ubyte] ; Assembly listing for method System.Numerics.Vector`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(ubyte[],int):System.Numerics.Vector`1[ubyte] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <ubyte[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op "NewObj constructor temp" <System.Numerics.Vector`1[ubyte]>
-; V05 cse0 [V05,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M40743_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M40743_IG02:
test edx, edx
jl SHORT G_M40743_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 32
+ sub eax, edx
+ cmp eax, 32
jl SHORT G_M40743_IG04
- cmp edx, eax
- jae SHORT G_M40743_IG05
mov eax, edx
vmovups ymm0, ymmword ptr [rsi+rax+0x10]
vmovups ymmword ptr [rdi], ymm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 13.75
+ ;; size=29 bbWeight=1 PerfScore 12.25
G_M40743_IG03:
vzeroupper
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
G_M40743_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M40743_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 63, prolog size 4, PerfScore 17.50, instruction count 23, allocated bytes for code 63 (MethodHash=57b560d8) for method System.Numerics.Vector`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(ubyte[],int):System.Numerics.Vector`1[ubyte] (FullOpts)
+; Total bytes of code 51, prolog size 4, PerfScore 16.00, instruction count 18, allocated bytes for code 51 (MethodHash=57b560d8) for method System.Numerics.Vector`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Numerics.Vector<T>,T>.Create(ubyte[],int):System.Numerics.Vector`1[ubyte] (FullOpts) -12 (-20.00 % of base) - System.Runtime.Intrinsics.Vector128:Create[double](double[],int):System.Runtime.Intrinsics.Vector128`1[double] ; Assembly listing for method System.Runtime.Intrinsics.Vector128:Create[double](double[],int):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <double[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M20514_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M20514_IG02:
test edx, edx
jl SHORT G_M20514_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 2
+ sub eax, edx
+ cmp eax, 2
jl SHORT G_M20514_IG04
- cmp edx, eax
- jae SHORT G_M20514_IG05
mov eax, edx
vmovups xmm0, xmmword ptr [rsi+8*rax+0x10]
vmovups xmmword ptr [rdi], xmm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 12.75
+ ;; size=29 bbWeight=1 PerfScore 11.25
G_M20514_IG03:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M20514_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M20514_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 15.50, instruction count 22, allocated bytes for code 60 (MethodHash=8a69afdd) for method System.Runtime.Intrinsics.Vector128:Create[double](double[],int):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 14.00, instruction count 17, allocated bytes for code 48 (MethodHash=8a69afdd) for method System.Runtime.Intrinsics.Vector128:Create[double](double[],int):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts) -12 (-20.00 % of base) - System.Runtime.Intrinsics.Vector128:Create[int](int[],int):System.Runtime.Intrinsics.Vector128`1[int] ; Assembly listing for method System.Runtime.Intrinsics.Vector128:Create[int](int[],int):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <int[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M58180_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M58180_IG02:
test edx, edx
jl SHORT G_M58180_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 4
+ sub eax, edx
+ cmp eax, 4
jl SHORT G_M58180_IG04
- cmp edx, eax
- jae SHORT G_M58180_IG05
mov eax, edx
vmovups xmm0, xmmword ptr [rsi+4*rax+0x10]
vmovups xmmword ptr [rdi], xmm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 12.75
+ ;; size=29 bbWeight=1 PerfScore 11.25
G_M58180_IG03:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M58180_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M58180_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 15.50, instruction count 22, allocated bytes for code 60 (MethodHash=68c01cbb) for method System.Runtime.Intrinsics.Vector128:Create[int](int[],int):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 14.00, instruction count 17, allocated bytes for code 48 (MethodHash=68c01cbb) for method System.Runtime.Intrinsics.Vector128:Create[int](int[],int):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts) -12 (-20.00 % of base) - System.Runtime.Intrinsics.Vector128:Create[long](long[],int):System.Runtime.Intrinsics.Vector128`1[long] ; Assembly listing for method System.Runtime.Intrinsics.Vector128:Create[long](long[],int):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <long[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M63869_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M63869_IG02:
test edx, edx
jl SHORT G_M63869_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 2
+ sub eax, edx
+ cmp eax, 2
jl SHORT G_M63869_IG04
- cmp edx, eax
- jae SHORT G_M63869_IG05
mov eax, edx
vmovups xmm0, xmmword ptr [rsi+8*rax+0x10]
vmovups xmmword ptr [rdi], xmm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 12.75
+ ;; size=29 bbWeight=1 PerfScore 11.25
G_M63869_IG03:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M63869_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M63869_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 15.50, instruction count 22, allocated bytes for code 60 (MethodHash=2d870682) for method System.Runtime.Intrinsics.Vector128:Create[long](long[],int):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 14.00, instruction count 17, allocated bytes for code 48 (MethodHash=2d870682) for method System.Runtime.Intrinsics.Vector128:Create[long](long[],int):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts) -12 (-20.00 % of base) - System.Runtime.Intrinsics.Vector128:Create[short](short[],int):System.Runtime.Intrinsics.Vector128`1[short] ; Assembly listing for method System.Runtime.Intrinsics.Vector128:Create[short](short[],int):System.Runtime.Intrinsics.Vector128`1[short] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <short[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M40837_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M40837_IG02:
test edx, edx
jl SHORT G_M40837_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 8
+ sub eax, edx
+ cmp eax, 8
jl SHORT G_M40837_IG04
- cmp edx, eax
- jae SHORT G_M40837_IG05
mov eax, edx
vmovups xmm0, xmmword ptr [rsi+2*rax+0x10]
vmovups xmmword ptr [rdi], xmm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 12.75
+ ;; size=29 bbWeight=1 PerfScore 11.25
G_M40837_IG03:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M40837_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M40837_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 15.50, instruction count 22, allocated bytes for code 60 (MethodHash=1bac607a) for method System.Runtime.Intrinsics.Vector128:Create[short](short[],int):System.Runtime.Intrinsics.Vector128`1[short] (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 14.00, instruction count 17, allocated bytes for code 48 (MethodHash=1bac607a) for method System.Runtime.Intrinsics.Vector128:Create[short](short[],int):System.Runtime.Intrinsics.Vector128`1[short] (FullOpts) -12 (-20.00 % of base) - System.Runtime.Intrinsics.Vector128:Create[ubyte](ubyte[],int):System.Runtime.Intrinsics.Vector128`1[ubyte] ; Assembly listing for method System.Runtime.Intrinsics.Vector128:Create[ubyte](ubyte[],int):System.Runtime.Intrinsics.Vector128`1[ubyte] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <ubyte[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M59976_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M59976_IG02:
test edx, edx
jl SHORT G_M59976_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 16
+ sub eax, edx
+ cmp eax, 16
jl SHORT G_M59976_IG04
- cmp edx, eax
- jae SHORT G_M59976_IG05
mov eax, edx
vmovups xmm0, xmmword ptr [rsi+rax+0x10]
vmovups xmmword ptr [rdi], xmm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 12.75
+ ;; size=29 bbWeight=1 PerfScore 11.25
G_M59976_IG03:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M59976_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M59976_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 15.50, instruction count 22, allocated bytes for code 60 (MethodHash=e27615b7) for method System.Runtime.Intrinsics.Vector128:Create[ubyte](ubyte[],int):System.Runtime.Intrinsics.Vector128`1[ubyte] (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 14.00, instruction count 17, allocated bytes for code 48 (MethodHash=e27615b7) for method System.Runtime.Intrinsics.Vector128:Create[ubyte](ubyte[],int):System.Runtime.Intrinsics.Vector128`1[ubyte] (FullOpts) -12 (-20.00 % of base) - System.Runtime.Intrinsics.Vector128`1[double]:System.Runtime.Intrinsics.ISimdVector,T>.Create(double[],int):System.Runtime.Intrinsics.Vector128`1[double] ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(double[],int):System.Runtime.Intrinsics.Vector128`1[double] (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <double[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M56304_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M56304_IG02:
test edx, edx
jl SHORT G_M56304_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 2
+ sub eax, edx
+ cmp eax, 2
jl SHORT G_M56304_IG04
- cmp edx, eax
- jae SHORT G_M56304_IG05
mov eax, edx
vmovups xmm0, xmmword ptr [rsi+8*rax+0x10]
vmovups xmmword ptr [rdi], xmm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 12.75
+ ;; size=29 bbWeight=1 PerfScore 11.25
G_M56304_IG03:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M56304_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M56304_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 15.50, instruction count 22, allocated bytes for code 60 (MethodHash=e4c0240f) for method System.Runtime.Intrinsics.Vector128`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(double[],int):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 14.00, instruction count 17, allocated bytes for code 48 (MethodHash=e4c0240f) for method System.Runtime.Intrinsics.Vector128`1[double]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(double[],int):System.Runtime.Intrinsics.Vector128`1[double] (FullOpts) -12 (-20.00 % of base) - System.Runtime.Intrinsics.Vector128`1[int]:System.Runtime.Intrinsics.ISimdVector,T>.Create(int[],int):System.Runtime.Intrinsics.Vector128`1[int] ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(int[],int):System.Runtime.Intrinsics.Vector128`1[int] (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <int[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M7414_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M7414_IG02:
test edx, edx
jl SHORT G_M7414_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 4
+ sub eax, edx
+ cmp eax, 4
jl SHORT G_M7414_IG04
- cmp edx, eax
- jae SHORT G_M7414_IG05
mov eax, edx
vmovups xmm0, xmmword ptr [rsi+4*rax+0x10]
vmovups xmmword ptr [rdi], xmm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 12.75
+ ;; size=29 bbWeight=1 PerfScore 11.25
G_M7414_IG03:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M7414_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M7414_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 15.50, instruction count 22, allocated bytes for code 60 (MethodHash=7571e309) for method System.Runtime.Intrinsics.Vector128`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(int[],int):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 14.00, instruction count 17, allocated bytes for code 48 (MethodHash=7571e309) for method System.Runtime.Intrinsics.Vector128`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(int[],int):System.Runtime.Intrinsics.Vector128`1[int] (FullOpts) -12 (-20.00 % of base) - System.Runtime.Intrinsics.Vector128`1[long]:System.Runtime.Intrinsics.ISimdVector,T>.Create(long[],int):System.Runtime.Intrinsics.Vector128`1[long] ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(long[],int):System.Runtime.Intrinsics.Vector128`1[long] (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <long[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M16591_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M16591_IG02:
test edx, edx
jl SHORT G_M16591_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 2
+ sub eax, edx
+ cmp eax, 2
jl SHORT G_M16591_IG04
- cmp edx, eax
- jae SHORT G_M16591_IG05
mov eax, edx
vmovups xmm0, xmmword ptr [rsi+8*rax+0x10]
vmovups xmmword ptr [rdi], xmm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 12.75
+ ;; size=29 bbWeight=1 PerfScore 11.25
G_M16591_IG03:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M16591_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M16591_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 15.50, instruction count 22, allocated bytes for code 60 (MethodHash=59a5bf30) for method System.Runtime.Intrinsics.Vector128`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(long[],int):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 14.00, instruction count 17, allocated bytes for code 48 (MethodHash=59a5bf30) for method System.Runtime.Intrinsics.Vector128`1[long]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(long[],int):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts) -12 (-20.00 % of base) - System.Runtime.Intrinsics.Vector128`1[short]:System.Runtime.Intrinsics.ISimdVector,T>.Create(short[],int):System.Runtime.Intrinsics.Vector128`1[short] ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(short[],int):System.Runtime.Intrinsics.Vector128`1[short] (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <short[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M26327_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M26327_IG02:
test edx, edx
jl SHORT G_M26327_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 8
+ sub eax, edx
+ cmp eax, 8
jl SHORT G_M26327_IG04
- cmp edx, eax
- jae SHORT G_M26327_IG05
mov eax, edx
vmovups xmm0, xmmword ptr [rsi+2*rax+0x10]
vmovups xmmword ptr [rdi], xmm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 12.75
+ ;; size=29 bbWeight=1 PerfScore 11.25
G_M26327_IG03:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M26327_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M26327_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 15.50, instruction count 22, allocated bytes for code 60 (MethodHash=1acb9928) for method System.Runtime.Intrinsics.Vector128`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(short[],int):System.Runtime.Intrinsics.Vector128`1[short] (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 14.00, instruction count 17, allocated bytes for code 48 (MethodHash=1acb9928) for method System.Runtime.Intrinsics.Vector128`1[short]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(short[],int):System.Runtime.Intrinsics.Vector128`1[short] (FullOpts) -12 (-20.00 % of base) - System.Runtime.Intrinsics.Vector128`1[ubyte]:System.Runtime.Intrinsics.ISimdVector,T>.Create(ubyte[],int):System.Runtime.Intrinsics.Vector128`1[ubyte] ; Assembly listing for method System.Runtime.Intrinsics.Vector128`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(ubyte[],int):System.Runtime.Intrinsics.Vector128`1[ubyte] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rdi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rsi class-hnd single-def <ubyte[]>
-; V02 arg1 [V02,T00] ( 6, 6 ) int -> rdx single-def
+; V02 arg1 [V02,T00] ( 5, 5 ) int -> rdx single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 cse0 [V04,T03] ( 3, 3 ) int -> rax "CSE #01: aggressive"
;
; Lcl frame size = 0
G_M54138_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M54138_IG02:
test edx, edx
jl SHORT G_M54138_IG04
mov eax, dword ptr [rsi+0x08]
- mov ecx, eax
- sub ecx, edx
- cmp ecx, 16
+ sub eax, edx
+ cmp eax, 16
jl SHORT G_M54138_IG04
- cmp edx, eax
- jae SHORT G_M54138_IG05
mov eax, edx
vmovups xmm0, xmmword ptr [rsi+rax+0x10]
vmovups xmmword ptr [rdi], xmm0
mov rax, rdi
- ;; size=35 bbWeight=1 PerfScore 12.75
+ ;; size=29 bbWeight=1 PerfScore 11.25
G_M54138_IG03:
pop rbp
ret
;; size=2 bbWeight=1 PerfScore 1.50
G_M54138_IG04:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessOrEqualException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M54138_IG05:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 60, prolog size 4, PerfScore 15.50, instruction count 22, allocated bytes for code 60 (MethodHash=768e2c85) for method System.Runtime.Intrinsics.Vector128`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(ubyte[],int):System.Runtime.Intrinsics.Vector128`1[ubyte] (FullOpts)
+; Total bytes of code 48, prolog size 4, PerfScore 14.00, instruction count 17, allocated bytes for code 48 (MethodHash=768e2c85) for method System.Runtime.Intrinsics.Vector128`1[ubyte]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector128<T>,T>.Create(ubyte[],int):System.Runtime.Intrinsics.Vector128`1[ubyte] (FullOpts) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 15 minutes.
dotnet/runtime#104532
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: