GenericComparer-double

Creado El diff nunca expira
10 eliminaciones
140 líneas
9 adiciones
140 líneas
; Assembly listing for method System.Collections.Generic.GenericEqualityComparer`1[Double][System.Double]:IndexOf(System.Double[],double,int,int):int:this
; Assembly listing for method System.Collections.Generic.GenericEqualityComparer`1[Double][System.Double]:IndexOf(System.Double[],double,int,int):int:this
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rsp based frame
; rsp based frame
; fully interruptible
; fully interruptible
; discarded IBC profile data due to mismatch in ILSize
; discarded IBC profile data due to mismatch in ILSize
; Final local variable assignments
; Final local variable assignments
;
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd
; V01 arg1 [V01,T02] ( 7, 16 ) ref -> rdx class-hnd
; V01 arg1 [V01,T02] ( 7, 16 ) ref -> rdx class-hnd
; V02 arg2 [V02,T11] ( 8, 14 ) double -> mm2
; V02 arg2 [V02,T11] ( 8, 14 ) double -> mm2
; V03 arg3 [V03,T08] ( 5, 5 ) int -> r9
; V03 arg3 [V03,T08] ( 5, 5 ) int -> r9
; V04 arg4 [V04,T09] ( 1, 1 ) int -> [rsp+0x50]
; V04 arg4 [V04,T09] ( 1, 1 ) int -> [rsp+0x50]
; V05 loc0 [V05,T05] ( 6, 12 ) int -> rcx
; V05 loc0 [V05,T05] ( 6, 12 ) int -> rcx
;* V06 loc1 [V06 ] ( 0, 0 ) int -> zero-ref
;* V06 loc1 [V06 ] ( 0, 0 ) int -> zero-ref
; V07 loc2 [V07,T00] ( 13, 42.50) int -> rax
; V07 loc2 [V07,T00] ( 13, 42.50) int -> rax
; V08 OutArgs [V08 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V08 OutArgs [V08 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
;* V09 tmp1 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper"
;* V09 tmp1 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper"
; V10 tmp2 [V10,T03] ( 4, 8 ) bool -> registers "Inline return value spill temp"
; V10 tmp2 [V10,T03] ( 4, 8 ) bool -> registers "Inline return value spill temp"
; V11 tmp3 [V11,T01] ( 6, 40 ) byref -> r8 "Inlining Arg"
; V11 tmp3 [V11,T01] ( 6, 40 ) byref -> r8 "Inlining Arg"
; V12 tmp4 [V12,T10] ( 6, 24 ) double -> mm0 "Inlining Arg"
; V12 tmp4 [V12,T10] ( 6, 24 ) double -> mm0 "Inlining Arg"
; V13 cse0 [V13,T04] ( 5, 14 ) int -> r9 "CSE - aggressive"
; V13 cse0 [V13,T04] ( 5, 14 ) int -> r9 "CSE - aggressive"
; V14 cse1 [V14,T06] ( 2, 8 ) long -> r8 "CSE - aggressive"
; V14 cse1 [V14,T06] ( 2, 8 ) long -> r8 "CSE - aggressive"
; V15 cse2 [V15,T07] ( 2, 8 ) long -> r9 "CSE - aggressive"
; V15 cse2 [V15,T07] ( 2, 8 ) long -> r9 "CSE - aggressive"
;
;
; Lcl frame size = 40
; Lcl frame size = 40


G_M47595_IG01:
G_M47595_IG01:
sub rsp, 40
sub rsp, 40
vzeroupper
vzeroupper
;; bbWeight=1 PerfScore 1.25
;; bbWeight=1 PerfScore 1.25
G_M47595_IG02:
G_M47595_IG02:
mov ecx, r9d
mov ecx, r9d
add ecx, dword ptr [rsp+50H]
add ecx, dword ptr [rsp+50H]
mov eax, r9d
mov eax, r9d
cmp r9d, ecx
cmp r9d, ecx
jge G_M47595_IG13
jge G_M47595_IG13
test rdx, rdx
test rdx, rdx
je SHORT G_M47595_IG09
je SHORT G_M47595_IG09
;; NOP compensation instructions of 4 bytes.
;; bbWeight=1 PerfScore 4.00
;; bbWeight=1 PerfScore 4.00
G_M47595_IG03:
G_M47595_IG03:
mov r8d, eax
mov r8d, eax
not r8d
not r8d
shr r8d, 31
shr r8d, 31
mov r9d, ecx
mov r9d, ecx
not r9d
not r9d
shr r9d, 31
shr r9d, 31
and r8d, r9d
and r8d, r9d
mov r9d, dword ptr [rdx+8]
mov r9d, dword ptr [rdx+8]
cmp r9d, ecx
cmp r9d, ecx
setge r10b
setge r10b
movzx r10, r10b
movzx r10, r10b
test r8d, r10d
test r8d, r10d
je SHORT G_M47595_IG09
je SHORT G_M47595_IG09
align [0 bytes]
align [2 bytes]
;; bbWeight=1 PerfScore 10.25
;; bbWeight=1 PerfScore 10.25
G_M47595_IG04:
G_M47595_IG04:
movsxd r8, eax
movsxd r8, eax
cmp eax, r9d
cmp eax, r9d
jae G_M47595_IG16
jae G_M47595_IG16
lea r8, bword ptr [rdx+8*r8+16]
lea r8, bword ptr [rdx+8*r8+16]
vucomisd xmm2, qword ptr [r8]
vucomisd xmm2, qword ptr [r8]
jp SHORT G_M47595_IG05
jp SHORT G_M47595_IG05
je SHORT G_M47595_IG15
je SHORT G_M47595_IG15
;; bbWeight=4 PerfScore 26.00
;; bbWeight=4 PerfScore 26.00
G_M47595_IG05:
G_M47595_IG05:
vucomisd xmm2, xmm2
vucomisd xmm2, xmm2
jp SHORT G_M47595_IG06
jp SHORT G_M47595_IG06
je SHORT G_M47595_IG07
je SHORT G_M47595_IG07
;; bbWeight=1 PerfScore 3.00
;; bbWeight=1 PerfScore 3.00
G_M47595_IG06:
G_M47595_IG06:
vmovsd xmm0, qword ptr [r8]
vmovsd xmm0, qword ptr [r8]
vucomisd xmm0, xmm0
vucomisd xmm0, xmm0
setp r8b
setp r8b
movzx r8, r8b
movzx r8, r8b
test r8d, r8d
test r8d, r8d
jne SHORT G_M47595_IG15
jne SHORT G_M47595_IG15
;; bbWeight=2 PerfScore 11.00
;; bbWeight=2 PerfScore 11.00
G_M47595_IG07:
G_M47595_IG07:
inc eax
inc eax
cmp eax, ecx
cmp eax, ecx
jl SHORT G_M47595_IG04
jl SHORT G_M47595_IG04
;; bbWeight=4 PerfScore 6.00
;; bbWeight=4 PerfScore 6.00
G_M47595_IG08:
G_M47595_IG08:
jmp SHORT G_M47595_IG13
jmp SHORT G_M47595_IG13
align [0 bytes]
;; bbWeight=1 PerfScore 2.00
;; bbWeight=1 PerfScore 2.25
G_M47595_IG09:
G_M47595_IG09:
mov r9d, dword ptr [rdx+8]
mov r9d, dword ptr [rdx+8]
cmp eax, r9d
cmp eax, r9d
jae SHORT G_M47595_IG16
jae SHORT G_M47595_IG16
movsxd r9, eax
movsxd r9, eax
lea r8, bword ptr [rdx+8*r9+16]
lea r8, bword ptr [rdx+8*r9+16]
vucomisd xmm2, qword ptr [r8]
vucomisd xmm2, qword ptr [r8]
jp SHORT G_M47595_IG10
jp SHORT G_M47595_IG10
je SHORT G_M47595_IG15
je SHORT G_M47595_IG15
;; bbWeight=4 PerfScore 34.00
;; bbWeight=4 PerfScore 34.00
G_M47595_IG10:
G_M47595_IG10:
vucomisd xmm2, xmm2
vucomisd xmm2, xmm2
jp SHORT G_M47595_IG11
jp SHORT G_M47595_IG11
je SHORT G_M47595_IG12
je SHORT G_M47595_IG12
;; bbWeight=1 PerfScore 3.00
;; bbWeight=1 PerfScore 3.00
G_M47595_IG11:
G_M47595_IG11:
vmovsd xmm0, qword ptr [r8]
vmovsd xmm0, qword ptr [r8]
vucomisd xmm0, xmm0
vucomisd xmm0, xmm0
setp r9b
setp r9b
movzx r9, r9b
movzx r9, r9b
test r9d, r9d
test r9d, r9d
jne SHORT G_M47595_IG15
jne SHORT G_M47595_IG15
;; bbWeight=2 PerfScore 11.00
;; bbWeight=2 PerfScore 11.00
G_M47595_IG12:
G_M47595_IG12:
inc eax
inc eax
cmp eax, ecx
cmp eax, ecx
jl SHORT G_M47595_IG09
jl SHORT G_M47595_IG09
;; bbWeight=4 PerfScore 6.00
;; bbWeight=4 PerfScore 6.00
G_M47595_IG13:
G_M47595_IG13:
mov eax, -1
mov eax, -1
;; bbWeight=0.50 PerfScore 0.12
;; bbWeight=0.50 PerfScore 0.12
G_M47595_IG14:
G_M47595_IG14:
add rsp, 40
add rsp, 40
ret
ret
;; bbWeight=0.50 PerfScore 0.62
;; bbWeight=0.50 PerfScore 0.62
G_M47595_IG15:
G_M47595_IG15:
add rsp, 40
add rsp, 40
ret
ret
;; bbWeight=0.50 PerfScore 0.62
;; bbWeight=0.50 PerfScore 0.62
G_M47595_IG16:
G_M47595_IG16:
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
int3
int3
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00


; Total bytes of code 221, prolog size 7, PerfScore 142.43, instruction count 71, allocated bytes for code 233 (MethodHash=02534614) for method System.Collections.Generic.GenericEqualityComparer`1[Double][System.Double]:IndexOf(System.Double[],double,int,int):int:this
; Total bytes of code 227, prolog size 7, PerfScore 141.98, instruction count 70, allocated bytes for code 231 (MethodHash=02534614) for method System.Collections.Generic.GenericEqualityComparer`1[Double][System.Double]:IndexOf(System.Double[],double,int,int):int:this
; ============================================================
; ============================================================


Using jit(D:\git\runtime\artifacts\tests\coreclr\windows.x64.Checked\tests\Core_Root\clrjit.dll) with input (D:\git\runtime\artifacts\spmi\mch\af37688b-d4e5-4a41-a7ee-701728a470aa.windows.x64\libraries.pmi.windows.x64.checked.mch)
Using jit(D:\git\runtime\artifacts\tests\coreclr\windows.x64.Checked\tests\Core_Root\clrjit.dll) with input (D:\git\runtime\artifacts\spmi\mch\af37688b-d4e5-4a41-a7ee-701728a470aa.windows.x64\libraries.pmi.windows.x64.checked.mch)
indexCount=1 (19387)
indexCount=1 (19387)
Jit startup took 6.405800ms
Jit startup took 25.268000ms
Loaded 1 Jitted 1 FailedCompile 0 Excluded 0
Loaded 1 Jitted 1 FailedCompile 0 Excluded 0
Total time: 28.366700ms
Total time: 49.322200ms