Untitled Diff

Created Diff never expires
53 removals
119 lines
26 additions
95 lines
; Assembly listing for method CSharpx.MaybeExtensions:ToMaybe[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float]):CSharpx.Maybe`1[System.Numerics.Vector`1[float]]
; Assembly listing for method CSharpx.MaybeExtensions:ToMaybe[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float]):CSharpx.Maybe`1[System.Numerics.Vector`1[float]]


G_M22442_IG01:
G_M22442_IG01:
push rsi
push rsi
sub rsp, 208
sub rsp, 144
vzeroupper
vzeroupper
vmovaps xmmword ptr [rsp+C0H], xmm6
vmovaps xmmword ptr [rsp+80H], xmm6
vmovaps xmmword ptr [rsp+B0H], xmm7
vmovaps xmmword ptr [rsp+70H], xmm7
vmovaps xmmword ptr [rsp+A0H], xmm8
;; size=26 bbWeight=1 PerfScore 6.25
vmovaps xmmword ptr [rsp+90H], xmm9
vmovaps xmmword ptr [rsp+80H], xmm10
vmovaps xmmword ptr [rsp+70H], xmm11
;; size=62 bbWeight=1 PerfScore 14.25
G_M22442_IG02:
G_M22442_IG02:
vmovupd ymm6, ymmword ptr[rcx]
vmovupd ymm6, ymmword ptr[rcx]
mov rcx, 0xD1FFAB1E ; System.Numerics.Vector`1[float]
mov rcx, 0xD1FFAB1E ; System.Numerics.Vector`1[float]
vextractf128 xmm7, ymm6, 1
vextractf128 xmm7, ymm6, 1
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
mov rsi, rax
mov rsi, rax
vinsertf128 ymm6, ymm6, xmm7, 1
vinsertf128 ymm6, ymm6, xmm7, 1
vmovupd ymmword ptr[rsi+08H], ymm6
vmovupd ymmword ptr[rsi+08H], ymm6
mov rcx, 0xD1FFAB1E ; System.Numerics.Vector`1[float]
mov rcx, 0xD1FFAB1E ; System.Numerics.Vector`1[float]
vextractf128 xmm7, ymm6, 1
vextractf128 xmm7, ymm6, 1
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
vxorps ymm0, ymm0, ymm0
vxorps ymm0, ymm0, ymm0
vmovupd ymmword ptr[rax+08H], ymm0
vmovupd ymmword ptr[rax+08H], ymm0
cmp rsi, rax
cmp rsi, rax
vinsertf128 ymm6, ymm6, xmm7, 1
vinsertf128 ymm6, ymm6, xmm7, 1
je G_M22442_IG06
je G_M22442_IG05
;; size=84 bbWeight=1 PerfScore 21.33
;; size=84 bbWeight=1 PerfScore 21.33
G_M22442_IG03:
G_M22442_IG03:
add rsi, 8
add rsi, 8
vmovupd ymm0, ymmword ptr[rax+08H]
vmovupd ymm0, ymmword ptr[rax+08H]
vmovupd ymm1, ymmword ptr[rsi]
vmovupd ymm1, ymmword ptr[rsi]
vcmpps ymm8, ymm1, ymm0, 0
vcmpps ymm2, ymm1, ymm0, 0
vcmpps ymm1, ymm1, ymm1, 0
vcmpps ymm1, ymm1, ymm1, 0
vcmpps ymm0, ymm0, ymm0, 0
vcmpps ymm0, ymm0, ymm0, 0
vorps ymm9, ymm1, ymm0
vorps ymm0, ymm1, ymm0
vextractf128 xmm10, ymm8, 1
vmovupd ymmword ptr[rsp+20H], ymm0
vextractf128 xmm11, ymm9, 1
vextractf128 xmm7, ymm6, 1
call [System.Numerics.Vector`1[float]:get_IsSupported():bool]
test eax, eax
vinsertf128 ymm8, ymm8, xmm10, 1
vinsertf128 ymm9, ymm9, xmm11, 1
vinsertf128 ymm6, ymm6, xmm7, 1
je G_M22442_IG08
;; size=82 bbWeight=0.50 PerfScore 17.92
G_M22442_IG04:
vmovupd ymmword ptr[rsp+20H], ymm9
lea rcx, bword ptr [rsp+20H]
lea rcx, bword ptr [rsp+20H]
mov rax, qword ptr [rcx]
mov rax, qword ptr [rcx]
mov rdx, rax
mov rdx, rax
not rdx
not rdx
lea r8, bword ptr [rsp+40H]
lea r8, bword ptr [rsp+40H]
mov qword ptr [r8], rdx
mov qword ptr [r8], rdx
lea rcx, bword ptr [rsp+20H]
lea rcx, bword ptr [rsp+20H]
mov rax, qword ptr [rcx+08H]
mov rax, qword ptr [rcx+08H]
mov rdx, rax
mov rdx, rax
not rdx
not rdx
lea r8, bword ptr [rsp+40H]
lea r8, bword ptr [rsp+40H]
mov qword ptr [r8+08H], rdx
mov qword ptr [r8+08H], rdx
lea rcx, bword ptr [rsp+20H]
lea rcx, bword ptr [rsp+20H]
mov rax, qword ptr [rcx+10H]
mov rax, qword ptr [rcx+10H]
mov rdx, rax
mov rdx, rax
not rdx
not rdx
lea r8, bword ptr [rsp+40H]
lea r8, bword ptr [rsp+40H]
mov qword ptr [r8+10H], rdx
mov qword ptr [r8+10H], rdx
lea rcx, bword ptr [rsp+20H]
lea rcx, bword ptr [rsp+20H]
mov rax, qword ptr [rcx+18H]
mov rax, qword ptr [rcx+18H]
mov rdx, rax
mov rdx, rax
not rdx
not rdx
lea r8, bword ptr [rsp+40H]
lea r8, bword ptr [rsp+40H]
mov qword ptr [r8+18H], rdx
mov qword ptr [r8+18H], rdx
vorps ymm0, ymm8, ymmword ptr[rsp+40H]
vorps ymm0, ymm2, ymmword ptr[rsp+40H]
vpcmpeqd ymm1, ymm1, ymm1
vpcmpeqd ymm1, ymm1, ymm1
vpcmpeqd ymm0, ymm0, ymm1
vpcmpeqd ymm0, ymm0, ymm1
vpmovmskb ecx, ymm0
vpmovmskb ecx, ymm0
cmp ecx, -1
cmp ecx, -1
sete cl
sete cl
movzx rcx, cl
movzx rcx, cl
test ecx, ecx
test ecx, ecx
jne SHORT G_M22442_IG06
jne SHORT G_M22442_IG05
;; size=131 bbWeight=4 PerfScore 111.00
;; size=163 bbWeight=4 PerfScore 189.33
G_M22442_IG05:
G_M22442_IG04:
mov rcx, 0xD1FFAB1E ; CSharpx.Just`1[System.Numerics.Vector`1[float]]
mov rcx, 0xD1FFAB1E ; CSharpx.Just`1[System.Numerics.Vector`1[float]]
vextractf128 xmm7, ymm6, 1
vextractf128 xmm7, ymm6, 1
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
xor ecx, ecx
xor ecx, ecx
mov dword ptr [rax+08H], ecx
mov dword ptr [rax+08H], ecx
vinsertf128 ymm6, ymm6, xmm7, 1
vinsertf128 ymm6, ymm6, xmm7, 1
vmovupd ymmword ptr[rax+10H], ymm6
vmovupd ymmword ptr[rax+10H], ymm6
jmp SHORT G_M22442_IG07
jmp SHORT G_M22442_IG06
;; size=39 bbWeight=0.50 PerfScore 5.25
;; size=39 bbWeight=0.50 PerfScore 5.25
G_M22442_IG06:
G_M22442_IG05:
mov rcx, 0xD1FFAB1E ; CSharpx.Nothing`1[System.Numerics.Vector`1[float]]
mov rcx, 0xD1FFAB1E ; CSharpx.Nothing`1[System.Numerics.Vector`1[float]]
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
mov dword ptr [rax+08H], 1
mov dword ptr [rax+08H], 1
;; size=22 bbWeight=0.50 PerfScore 1.12
;; size=22 bbWeight=0.50 PerfScore 1.12
G_M22442_IG07:
G_M22442_IG06:
vmovaps xmm6, xmmword ptr [rsp+C0H]
vmovaps xmm6, xmmword ptr [rsp+80H]
vmovaps xmm7, xmmword ptr [rsp+B0H]
vmovaps xmm7, xmmword ptr [rsp+70H]
vmovaps xmm8, xmmword ptr [rsp+A0H]
vmovaps xmm9, xmmword ptr [rsp+90H]
vmovaps xmm10, xmmword ptr [rsp+80H]
vmovaps xmm11, xmmword ptr [rsp+70H]
vzeroupper
vzeroupper
add rsp, 208
add rsp, 144
pop rsi
pop rsi
ret
ret
;; size=63 bbWeight=1 PerfScore 26.75
;; size=27 bbWeight=1 PerfScore 10.75
G_M22442_IG08:
mov ecx, 66
call [System.ThrowHelper:ThrowNotSupportedException(int)]
int3
;; size=12 bbWeight=0 PerfScore 0.00


; Total bytes of code 495, prolog size 62, PerfScore 249.93, instruction count 98, allocated bytes for code 523 (MethodHash=2c05a855) for method CSharpx.MaybeExtensions:ToMaybe[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float]):CSharpx.Maybe`1[System.Numerics.Vector`1[float]]
; Total bytes of code 361, prolog size 26, PerfScore 272.14, instruction count 78, allocated bytes for code 381 (MethodHash=2c05a855) for method CSharpx.MaybeExtensions:ToMaybe[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float]):CSharpx.Maybe`1[System.Numerics.Vector`1[float]]
; ============================================================
; ============================================================