Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Real-time editor
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Syntax highlighting
Choose syntax
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
FannkuchRedux-9
Created
5 years ago
Diff never expires
Clear
Export
Share
Explain
95 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
476 lines
Copy
106 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
478 lines
Copy
; Assembly listing for method MiniBench.FannkuchRedux_9:Run(int,int)
; Assembly listing for method MiniBench.FannkuchRedux_9:Run(int,int)
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; fully interruptible
; fully interruptible
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T30] ( 15, 47.50) int -> rcx
; V00 arg0 [V00,T30] ( 15, 47.50) int -> rcx
; V01 arg1 [V01,T40] ( 5, 22 ) int -> r8
; V01 arg1 [V01,T40] ( 5, 22 ) int -> r8
; V02 loc0 [V02,T23] ( 4, 89 ) long -> r9
; V02 loc0 [V02,T23] ( 4, 89 ) long -> r9
; V03 loc1 [V03,T45] ( 4, 19 ) int -> rbx
; V03 loc1 [V03,T45] ( 4, 19 ) int -> rbx
; V04 loc2 [V04,T42] ( 6, 22 ) int -> r10
; V04 loc2 [V04,T42] ( 6, 22 ) int -> r10
; V05 loc3 [V05,T43] ( 6, 22 ) int -> r11
; V05 loc3 [V05,T43] ( 6, 22 ) int -> r11
; V06 loc4 [V06,T03] ( 22,517 ) long -> rsi
; V06 loc4 [V06,T03] ( 22,517 ) long -> rsi
; V07 loc5 [V07,T11] ( 17,265 ) long -> rdi
; V07 loc5 [V07,T11] ( 17,265 ) long -> rdi
; V08 loc6 [V08,T46] ( 4, 8 ) int -> rax
; V08 loc6 [V08,T46] ( 4, 8 ) int -> rax
; V09 loc7 [V09,T27] ( 5, 58 ) int -> rax
; V09 loc7 [V09,T27] ( 5, 58 ) int -> rax
; V10 loc8 [V10,T37] ( 4, 32 ) int -> rdx
; V10 loc8 [V10,T37] ( 4, 32 ) int -> rdx
; V11 OutArgs [V11 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V11 OutArgs [V11 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace"
; V12 tmp1 [V12,T38] ( 2, 32 ) int -> rbx "dup spill"
; V12 tmp1 [V12,T38] ( 2, 32 ) int -> rbx "dup spill"
; V13 tmp2 [V13,T34] ( 6, 42 ) int -> rax "Inline stloc first use temp"
; V13 tmp2 [V13,T34] ( 6, 42 ) int -> rax "Inline stloc first use temp"
; V14 tmp3 [V14,T21] ( 14,102 ) int -> r14 "Inline stloc first use temp"
; V14 tmp3 [V14,T21] ( 14,102 ) int -> r14 "Inline stloc first use temp"
; V15 tmp4 [V15,T35] ( 4, 36 ) int -> registers "Inlining Arg"
; V15 tmp4 [V15,T35] ( 4, 36 ) int -> registers "Inlining Arg"
; V16 tmp5 [V16,T29] ( 4, 56 ) int -> r15 "Inline stloc first use temp"
; V16 tmp5 [V16,T29] ( 4, 56 ) int -> r15 "Inline stloc first use temp"
; V17 tmp6 [V17,T15] ( 7,168 ) int -> rax "Inline stloc first use temp"
; V17 tmp6 [V17,T15] ( 7,168 ) int -> rax "Inline stloc first use temp"
; V18 tmp7 [V18,T16] ( 6,164 ) int -> registers "Inline stloc first use temp"
; V18 tmp7 [V18,T16] ( 6,164 ) int -> registers "Inline stloc first use temp"
; V19 tmp8 [V19,T44] ( 4, 20 ) int -> rdx "Inline stloc first use temp"
; V19 tmp8 [V19,T44] ( 4, 20 ) int -> rdx "Inline stloc first use temp"
; V20 tmp9 [V20,T28] ( 9, 56 ) int -> rax "Inline stloc first use temp"
; V20 tmp9 [V20,T28] ( 9, 56 ) int -> rax "Inline stloc first use temp"
; V21 tmp10 [V21,T24] ( 4, 80 ) short -> r15 "Inline stloc first use temp"
; V21 tmp10 [V21,T24] ( 4, 80 ) short -> r15 "Inline stloc first use temp"
; V22 tmp11 [V22,T17] ( 6,164 ) long -> rbx "Inline stloc first use temp"
; V22 tmp11 [V22,T17] ( 6,164 ) long -> rbx "Inline stloc first use temp"
; V23 tmp12 [V23,T18] ( 6,164 ) long -> r14 "Inline stloc first use temp"
; V23 tmp12 [V23,T18] ( 6,164 ) long -> r14 "Inline stloc first use temp"
; V24 tmp13 [V24,T19] ( 2,128 ) long -> rbx "dup spill"
; V24 tmp13 [V24,T19] ( 2,128 ) long -> rbx "dup spill"
; V25 tmp14 [V25,T20] ( 2,128 ) long -> r14 "dup spill"
; V25 tmp14 [V25,T20] ( 2,128 ) long -> r14 "dup spill"
;* V26 tmp15 [V26,T56] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V26 tmp15 [V26,T56] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V27 tmp16 [V27,T57] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V27 tmp16 [V27,T57] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V28 tmp17 [V28,T47] ( 4, 6.50) int -> rbx "Inline stloc first use temp"
; V28 tmp17 [V28,T47] ( 4, 6.50) int -> rbx "Inline stloc first use temp"
; V29 tmp18 [V29,T33] ( 13, 42 ) int -> r14 "Inline stloc first use temp"
; V29 tmp18 [V29,T33] ( 13, 42 ) int -> r14 "Inline stloc first use temp"
; V30 tmp19 [V30,T26] ( 4, 64 ) short -> rdx "Inline stloc first use temp"
; V30 tmp19 [V30,T26] ( 4, 64 ) short -> rdx "Inline stloc first use temp"
; V31 tmp20 [V31,T09] ( 8,336 ) int -> registers "Inline stloc first use temp"
; V31 tmp20 [V31,T09] ( 8,336 ) int -> registers "Inline stloc first use temp"
; V32 tmp21 [V32,T08] ( 3,384 ) long -> r14 "dup spill"
; V32 tmp21 [V32,T08] ( 3,384 ) long -> r14 "dup spill"
; V33 tmp22 [V33,T13] ( 3,192 ) int -> r15 "Inline stloc first use temp"
; V33 tmp22 [V33,T13] ( 3,192 ) int -> r15 "Inline stloc first use temp"
; V34 tmp23 [V34,T22] ( 3, 96 ) int -> rbx "impSpillLclRefs"
; V34 tmp23 [V34,T22] ( 3, 96 ) int -> rbx "impSpillLclRefs"
; V35 tmp24 [V35,T32] ( 3, 48 ) short -> rbx "Inline stloc first use temp"
; V35 tmp24 [V35,T32] ( 3, 48 ) short -> rbx "Inline stloc first use temp"
; V36 tmp25 [V36,T00] ( 6,656 ) int -> registers "Inline stloc first use temp"
; V36 tmp25 [V36,T00] ( 6,656 ) int -> registers "Inline stloc first use temp"
; V37 tmp26 [V37,T04] ( 2,512 ) int -> r12 "dup spill"
; V37 tmp26 [V37,T04] ( 2,512 ) int -> r12 "dup spill"
; V38 tmp27 [V38,T05] ( 2,512 ) long -> r15 "impSpillLclRefs"
; V38 tmp27 [V38,T05] ( 2,512 ) long -> r15 "impSpillLclRefs"
; V39 tmp28 [V39,T25] ( 4, 80 ) int -> rdx "Inline stloc first use temp"
; V39 tmp28 [V39,T25] ( 4, 80 ) int -> rdx "Inline stloc first use temp"
; V40 tmp29 [V40,T12] ( 9,224 ) int -> rbx "Inline stloc first use temp"
; V40 tmp29 [V40,T12] ( 9,224 ) int -> rbx "Inline stloc first use temp"
; V41 tmp30 [V41,T10] ( 4,320 ) short -> r12 "Inline stloc first use temp"
; V41 tmp30 [V41,T10] ( 4,320 ) short -> r12 "Inline stloc first use temp"
; V42 tmp31 [V42,T01] ( 6,656 ) long -> r14 "Inline stloc first use temp"
; V42 tmp31 [V42,T01] ( 6,656 ) long -> r14 "Inline stloc first use temp"
; V43 tmp32 [V43,T02] ( 6,656 ) long -> r15 "Inline stloc first use temp"
; V43 tmp32 [V43,T02] ( 6,656 ) long -> r15 "Inline stloc first use temp"
; V44 tmp33 [V44,T06] ( 2,512 ) long -> r14 "dup spill"
; V44 tmp33 [V44,T06] ( 2,512 ) long -> r14 "dup spill"
; V45 tmp34 [V45,T07] ( 2,512 ) long -> r15 "dup spill"
; V45 tmp34 [V45,T07] ( 2,512 ) long -> r15 "dup spill"
;* V46 tmp35 [V46,T52] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V46 tmp35 [V46,T52] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V47 tmp36 [V47,T53] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V47 tmp36 [V47,T53] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V48 tmp37 [V48,T39] ( 4, 26 ) int -> r14 "Inline stloc first use temp"
; V48 tmp37 [V48,T39] ( 4, 26 ) int -> r14 "Inline stloc first use temp"
; V49 tmp38 [V49,T14] ( 13,168 ) int -> r15 "Inline stloc first use temp"
; V49 tmp38 [V49,T14] ( 13,168 ) int -> r15 "Inline stloc first use temp"
; V50 tmp39 [V50,T31] ( 3, 48 ) ref -> r15 "arr expr"
; V50 tmp39 [V50,T31] ( 3, 48 ) ref -> r15 "arr expr"
; V51 tmp40 [V51,T41] ( 3, 24 ) ref -> r12 "arr expr"
; V51 tmp40 [V51,T41] ( 3, 24 ) ref -> r12 "arr expr"
; V52 tmp41 [V52,T48] ( 3, 6 ) ref -> rax "arr expr"
; V52 tmp41 [V52,T48] ( 3, 6 ) ref -> rax "arr expr"
; V53 tmp42 [V53,T49] ( 3, 6 ) ref -> rax "arr expr"
; V53 tmp42 [V53,T49] ( 3, 6 ) ref -> rax "arr expr"
; V54 GsCookie [V54 ] ( 1, 1 ) long -> [rbp+0x00] do-not-enreg[X] must-init addr-exposed "GSSecurityCookie"
; V54 GsCookie [V54 ] ( 1, 1 ) long -> [rbp+0x00] do-not-enreg[X] must-init addr-exposed "GSSecurityCookie"
; V55 cse0 [V55,T54] ( 3, 3 ) long -> rax "CSE - conservative"
; V55 cse0 [V55,T54] ( 3, 3 ) long -> rax "CSE - conservative"
; V56 cse1 [V56,T55] ( 3, 3 ) long -> r9 "CSE - conservative"
; V56 cse1 [V56,T55] ( 3, 3 ) long -> r9 "CSE - conservative"
; V57 cse2 [V57,T51] ( 4, 4 ) int -> rdx "CSE - conservative"
; V57 cse2 [V57,T51] ( 4, 4 ) int -> rdx "CSE - conservative"
; V58 cse3 [V58,T50] ( 3, 6 ) int -> rax "CSE - conservative"
; V58 cse3 [V58,T50] ( 3, 6 ) int -> rax "CSE - conservative"
; V59 cse4 [V59,T36] ( 2, 36 ) int -> r13 "CSE - moderate"
; V59 cse4 [V59,T36] ( 2, 36 ) int -> r13 "CSE - moderate"
;
;
; Lcl frame size = 40
; Lcl frame size = 40
G_M39841_IG01: ;; offset=0000H
G_M39841_IG01: ;; offset=0000H
55 push rbp
55 push rbp
4157 push r15
4157 push r15
4156 push r14
4156 push r14
4155 push r13
4155 push r13
4154 push r12
4154 push r12
57 push rdi
57 push rdi
56 push rsi
56 push rsi
53 push rbx
53 push rbx
4883EC28 sub rsp, 40
4883EC28 sub rsp, 40
488D6C2420 lea rbp, [rsp+20H]
488D6C2420 lea rbp, [rsp+20H]
33C0 xor rax, rax
33C0 xor rax, rax
48894500 mov qword ptr [rbp], rax
48894500 mov qword ptr [rbp], rax
48B878563412F0DEBC9A mov rax, 0x9ABCDEF012345678
48B878563412F0DEBC9A mov rax, 0x9ABCDEF012345678
48894500 mov qword ptr [rbp], rax
48894500 mov qword ptr [rbp], rax
448BC2 mov r8d, edx
448BC2 mov r8d, edx
;; bbWeight=1 PerfScore 11.50
;; bbWeight=1 PerfScore 11.50
G_M39841_IG02: ;; offset=002CH
G_M39841_IG02: ;; offset=002CH
8BC1 mov eax, ecx
8BC1 mov eax, ecx
41B904000000 mov r9d, 4
41B904000000 mov r9d, 4
49F7E1 mul rdx:rax, r9
49F7E1 mul rdx:rax, r9
Copy
Copied
Copy
Copied
0F82
24
040000 jb G_M39841_IG51
0F82
72
040000 jb G_M39841_IG51
4C8BC8 mov r9, rax
4C8BC8 mov r9, rax
4D85C9 test r9, r9
4D85C9 test r9, r9
741E je SHORT G_M39841_IG04
741E je SHORT G_M39841_IG04
4983C10F add r9, 15
4983C10F add r9, 15
49C1E904 shr r9, 4
49C1E904 shr r9, 4
4883C420 add rsp, 32
4883C420 add rsp, 32
;; bbWeight=1 PerfScore 7.50
;; bbWeight=1 PerfScore 7.50
G_M39841_IG03: ;; offset=0051H
G_M39841_IG03: ;; offset=0051H
6A00 push 0
6A00 push 0
6A00 push 0
6A00 push 0
49FFC9 dec r9
49FFC9 dec r9
75F7 jne SHORT G_M39841_IG03
75F7 jne SHORT G_M39841_IG03
4883EC20 sub rsp, 32
4883EC20 sub rsp, 32
4C8D4C2420 lea r9, [rsp+20H]
4C8D4C2420 lea r9, [rsp+20H]
;; bbWeight=1 PerfScore 4.00
;; bbWeight=1 PerfScore 4.00
G_M39841_IG04: ;; offset=0063H
G_M39841_IG04: ;; offset=0063H
4533D2 xor r10d, r10d
4533D2 xor r10d, r10d
4533DB xor r11d, r11d
4533DB xor r11d, r11d
8BC1 mov eax, ecx
8BC1 mov eax, ecx
BA02000000 mov edx, 2
BA02000000 mov edx, 2
48F7E2 mul rdx:rax, rdx
48F7E2 mul rdx:rax, rdx
Copy
Copied
Copy
Copied
0F82
E803
0000 jb G_M39841_IG51
0F82
3604
0000 jb G_M39841_IG51
488BF0 mov rsi, rax
488BF0 mov rsi, rax
4885F6 test rsi, rsi
4885F6 test rsi, rsi
741E je SHORT G_M39841_IG06
741E je SHORT G_M39841_IG06
4883C60F add rsi, 15
4883C60F add rsi, 15
48C1EE04 shr rsi, 4
48C1EE04 shr rsi, 4
4883C420 add rsp, 32
4883C420 add rsp, 32
;; bbWeight=1 PerfScore 8.00
;; bbWeight=1 PerfScore 8.00
G_M39841_IG05: ;; offset=008DH
G_M39841_IG05: ;; offset=008DH
6A00 push 0
6A00 push 0
6A00 push 0
6A00 push 0
48FFCE dec rsi
48FFCE dec rsi
75F7 jne SHORT G_M39841_IG05
75F7 jne SHORT G_M39841_IG05
4883EC20 sub rsp, 32
4883EC20 sub rsp, 32
488D742420 lea rsi, [rsp+20H]
488D742420 lea rsi, [rsp+20H]
;; bbWeight=1 PerfScore 4.00
;; bbWeight=1 PerfScore 4.00
G_M39841_IG06: ;; offset=009FH
G_M39841_IG06: ;; offset=009FH
488BF8 mov rdi, rax
488BF8 mov rdi, rax
4885FF test rdi, rdi
4885FF test rdi, rdi
741E je SHORT G_M39841_IG08
741E je SHORT G_M39841_IG08
4883C70F add rdi, 15
4883C70F add rdi, 15
48C1EF04 shr rdi, 4
48C1EF04 shr rdi, 4
4883C420 add rsp, 32
4883C420 add rsp, 32
;; bbWeight=1 PerfScore 4.00
;; bbWeight=1 PerfScore 4.00
G_M39841_IG07: ;; offset=00B3H
G_M39841_IG07: ;; offset=00B3H
6A00 push 0
6A00 push 0
6A00 push 0
6A00 push 0
48FFCF dec rdi
48FFCF dec rdi
75F7 jne SHORT G_M39841_IG07
75F7 jne SHORT G_M39841_IG07
4883EC20 sub rsp, 32
4883EC20 sub rsp, 32
488D7C2420 lea rdi, [rsp+20H]
488D7C2420 lea rdi, [rsp+20H]
;; bbWeight=1 PerfScore 4.00
;; bbWeight=1 PerfScore 4.00
G_M39841_IG08: ;; offset=00C5H
G_M39841_IG08: ;; offset=00C5H
Copy
Copied
Copy
Copied
E9
1A
030000 jmp G_M39841_IG47
E9
68
030000 jmp G_M39841_IG47
;; bbWeight=1 PerfScore 2.00
;; bbWeight=1 PerfScore 2.00
G_M39841_IG09: ;; offset=00CAH
G_M39841_IG09: ;; offset=00CAH
410FAFD8 imul ebx, r8d
410FAFD8 imul ebx, r8d
33C0 xor eax, eax
33C0 xor eax, eax
85C9 test ecx, ecx
85C9 test ecx, ecx
Copy
Copied
Copy
Copied
7E1
1
jle SHORT G_M39841_IG11
7E1
D
jle SHORT G_M39841_IG11
;; bbWeight=2 PerfScore 7.
00
0F1F40000F1F840000000000 align
G_M39841_IG10: ;; offset=
00D4H
;; bbWeight=2 PerfScore 7.
50
G_M39841_IG10: ;; offset=
00E0H
0FB6D0 movzx rdx, al
0FB6D0 movzx rdx, al
4C63F0 movsxd r14, eax
4C63F0 movsxd r14, eax
6642891476 mov word ptr [rsi+2*r14], dx
6642891476 mov word ptr [rsi+2*r14], dx
FFC0 inc eax
FFC0 inc eax
3BC1 cmp eax, ecx
3BC1 cmp eax, ecx
7CEF jl SHORT G_M39841_IG10
7CEF jl SHORT G_M39841_IG10
;; bbWeight=8 PerfScore 24.00
;; bbWeight=8 PerfScore 24.00
Copy
Copied
Copy
Copied
G_M39841_IG11: ;; offset=
00E5H
G_M39841_IG11: ;; offset=
00F1H
448D71FF lea r14d, [rcx-1]
448D71FF lea r14d, [rcx-1]
4585F6 test r14d, r14d
4585F6 test r14d, r14d
Copy
Copied
Copy
Copied
0F8EB
0
000000 jle G_M39841_IG18
0F8EB
D
000000 jle G_M39841_IG18
;; bbWeight=1 PerfScore 1.75
;; bbWeight=1 PerfScore 1.75
Copy
Copied
Copy
Copied
G_M39841_IG12: ;; offset=00F
2
H
G_M39841_IG12: ;; offset=00F
E
H
48B8A873
51C7B101
0000 mov rax,
0x1B1C75173A8
48B8A873
B4A85902
0000 mov rax,
0x259A8B473A8
4C8B38 mov r15, gword ptr [rax]
4C8B38 mov r15, gword ptr [rax]
453B7708 cmp r14d, dword ptr [r15+8]
453B7708 cmp r14d, dword ptr [r15+8]
Copy
Copied
Copy
Copied
0F83
5D
030000 jae G_M39841_IG52
0F83
9F
030000 jae G_M39841_IG52
4D63E6 movsxd r12, r14d
4D63E6 movsxd r12, r14d
8BC3 mov eax, ebx
8BC3 mov eax, ebx
99 cdq
99 cdq
43F77CA710 idiv edx:eax, dword ptr [r15+4*r12+16]
43F77CA710 idiv edx:eax, dword ptr [r15+4*r12+16]
448BF8 mov r15d, eax
448BF8 mov r15d, eax
4963C6 movsxd rax, r14d
4963C6 movsxd rax, r14d
45893C81 mov dword ptr [r9+4*rax], r15d
45893C81 mov dword ptr [r9+4*rax], r15d
4585FF test r15d, r15d
4585FF test r15d, r15d
Copy
Copied
Copy
Copied
7E73
jle
SHORT
G_M39841_IG17
0F8E7C000000
jle
G_M39841_IG17
;; bbWeight=8 PerfScore 284.00
;; bbWeight=8 PerfScore 284.00
Copy
Copied
Copy
Copied
G_M39841_IG13: ;; offset=01
2
3H
G_M39841_IG13: ;; offset=01
3
3H
48B8A873
51C7B101
0000 mov rax,
0x1B1C75173A8
48B8A873
B4A85902
0000 mov rax,
0x259A8B473A8
4C8B20 mov r12, gword ptr [rax]
4C8B20 mov r12, gword ptr [rax]
453B742408 cmp r14d, dword ptr [r12+8]
453B742408 cmp r14d, dword ptr [r12+8]
Copy
Copied
Copy
Copied
0F83
2B
030000 jae G_M39841_IG52
0F83
69
030000 jae G_M39841_IG52
4D63EE movsxd r13, r14d
4D63EE movsxd r13, r14d
8BC3 mov eax, ebx
8BC3 mov eax, ebx
99 cdq
99 cdq
43F77CAC10 idiv edx:eax, dword ptr [r12+4*r13+16]
43F77CAC10 idiv edx:eax, dword ptr [r12+4*r13+16]
418BC6 mov eax, r14d
418BC6 mov eax, r14d
85C0 test eax, eax
85C0 test eax, eax
Copy
Copied
Copy
Copied
7C1
6
jl SHORT G_M39841_IG15
7C1
9
jl SHORT G_M39841_IG15
;; bbWeight=4 PerfScore 13
7
.00
0F1F00 align
G_M39841_IG14: ;; offset=
014DH
;; bbWeight=4 PerfScore 13
8
.00
G_M39841_IG14: ;; offset=
0160H
4863D8 movsxd rbx, eax
4863D8 movsxd rbx, eax
480FBF1C5E movsx rbx, word ptr [rsi+2*rbx]
480FBF1C5E movsx rbx, word ptr [rsi+2*rbx]
4C63E0 movsxd r12, eax
4C63E0 movsxd r12, eax
6642891C67 mov word ptr [rdi+2*r12], bx
6642891C67 mov word ptr [rdi+2*r12], bx
FFC8 dec eax
FFC8 dec eax
85C0 test eax, eax
85C0 test eax, eax
7DEA jge SHORT G_M39841_IG14
7DEA jge SHORT G_M39841_IG14
;; bbWeight=32 PerfScore 160.00
;; bbWeight=32 PerfScore 160.00
Copy
Copied
Copy
Copied
G_M39841_IG15: ;; offset=01
63
H
G_M39841_IG15: ;; offset=01
76
H
33DB xor ebx, ebx
33DB xor ebx, ebx
4585F6 test r14d, r14d
4585F6 test r14d, r14d
Copy
Copied
Copy
Copied
0F8C
21
010000 jl G_M39841_IG30
0F8C
3B
010000 jl G_M39841_IG30
448BE3 mov r12d, ebx
448BE3 mov r12d, ebx
8BDA mov ebx, edx
8BDA mov ebx, edx
458D6E01 lea r13d, [r14+1]
458D6E01 lea r13d, [r14+1]
Copy
Copied
Copy
Copied
;; bbWeight=4 PerfScore
10
.00
660F1F440000 align
G_M39841_IG16: ;; offset=
0177H
;; bbWeight=4 PerfScore
11
.00
G_M39841_IG16: ;; offset=
0190H
438D043C lea eax, [r12+r15]
438D043C lea eax, [r12+r15]
99 cdq
99 cdq
41F7FD idiv edx:eax, r13d
41F7FD idiv edx:eax, r13d
4863C2 movsxd rax, edx
4863C2 movsxd rax, edx
480FBF0447 movsx rax, word ptr [rdi+2*rax]
480FBF0447 movsx rax, word ptr [rdi+2*rax]
4963D4 movsxd rdx, r12d
4963D4 movsxd rdx, r12d
66890456 mov word ptr [rsi+2*rdx], ax
66890456 mov word ptr [rsi+2*rdx], ax
41FFC4 inc r12d
41FFC4 inc r12d
453BE6 cmp r12d, r14d
453BE6 cmp r12d, r14d
7EE1 jle SHORT G_M39841_IG16
7EE1 jle SHORT G_M39841_IG16
;; bbWeight=32 PerfScore 1040.00
;; bbWeight=32 PerfScore 1040.00
Copy
Copied
Copy
Copied
G_M39841_IG17: ;; offset=
0196H
G_M39841_IG17: ;; offset=
01AFH
41FFCE dec r14d
41FFCE dec r14d
4585F6 test r14d, r14d
4585F6 test r14d, r14d
Copy
Copied
Copy
Copied
0F8F
50
FFFFFF jg G_M39841_IG12
0F8F
43
FFFFFF jg G_M39841_IG12
;; bbWeight=8 PerfScore 12.00
;; bbWeight=8 PerfScore 12.00
Copy
Copied
Copy
Copied
G_M39841_IG18: ;; offset=
01A2H
G_M39841_IG18: ;; offset=
01BBH
480FBF06 movsx rax, word ptr [rsi]
480FBF06 movsx rax, word ptr [rsi]
85C0 test eax, eax
85C0 test eax, eax
Copy
Copied
Copy
Copied
0F84
BB
000000 je G_M39841_IG28
0F84
CF
000000 je G_M39841_IG28
BA01000000 mov edx, 1
BA01000000 mov edx, 1
4C63F0 movsxd r14, eax
4C63F0 movsxd r14, eax
6642833C7600 cmp word ptr [rsi+2*r14], 0
6642833C7600 cmp word ptr [rsi+2*r14], 0
Copy
Copied
Copy
Copied
0F84
9A
000000 je G_M39841_IG27
0F84
AE
000000 je G_M39841_IG27
;; bbWeight=2 PerfScore 13.50
;; bbWeight=2 PerfScore 13.50
Copy
Copied
Copy
Copied
G_M39841_IG19: ;; offset=
01C2H
G_M39841_IG19: ;; offset=
01DBH
8BD9 mov ebx, ecx
8BD9 mov ebx, ecx
C1FB1F sar ebx, 31
C1FB1F sar ebx, 31
83E303 and ebx, 3
83E303 and ebx, 3
03D9 add ebx, ecx
03D9 add ebx, ecx
C1FB02 sar ebx, 2
C1FB02 sar ebx, 2
4533F6 xor r14d, r14d
4533F6 xor r14d, r14d
85DB test ebx, ebx
85DB test ebx, ebx
Copy
Copied
Copy
Copied
7E1
6
jle SHORT G_M39841_IG21
7E1
7
jle SHORT G_M39841_IG21
;; bbWeight=1 PerfScore 6.
25
90 align
G_M39841_IG20: ;; offset=
01D6H
;; bbWeight=1 PerfScore 6.
50
G_M39841_IG20: ;; offset=
01F0H
4D63FE movsxd r15, r14d
4D63FE movsxd r15, r14d
4E8B3CFE mov r15, qword ptr [rsi+8*r15]
4E8B3CFE mov r15, qword ptr [rsi+8*r15]
4D63E6 movsxd r12, r14d
4D63E6 movsxd r12, r14d
4E893CE7 mov qword ptr [rdi+8*r12], r15
4E893CE7 mov qword ptr [rdi+8*r12], r15
41FFC6 inc r14d
41FFC6 inc r14d
443BF3 cmp r14d, ebx
443BF3 cmp r14d, ebx
7CEA jl SHORT G_M39841_IG20
7CEA jl SHORT G_M39841_IG20
;; bbWeight=4 PerfScore 20.00
;; bbWeight=4 PerfScore 20.00
Copy
Copied
Copy
Copied
G_M39841_IG21: ;; offset=
01ECH
G_M39841_IG21: ;; offset=
0206H
448BF3 mov r14d, ebx
448BF3 mov r14d, ebx
41C1E602 shl r14d, 2
41C1E602 shl r14d, 2
443BF1 cmp r14d, ecx
443BF1 cmp r14d, ecx
Copy
Copied
Copy
Copied
7D18
jge SHORT G_M39841_IG23
7D26
jge SHORT G_M39841_IG23
;; bbWeight=0.50 PerfScore 1.
75
0F1F80000000000F1F8000000000 align
G_M39841_IG22: ;; offset=
01F8H
;; bbWeight=0.50 PerfScore 1.
88
G_M39841_IG22: ;; offset=
0220H
4963DE movsxd rbx, r14d
4963DE movsxd rbx, r14d
480FBF1C5E movsx rbx, word ptr [rsi+2*rbx]
480FBF1C5E movsx rbx, word ptr [rsi+2*rbx]
4D63FE movsxd r15, r14d
4D63FE movsxd r15, r14d
6642891C7F mov word ptr [rdi+2*r15], bx
6642891C7F mov word ptr [rdi+2*r15], bx
41FFC6 inc r14d
41FFC6 inc r14d
443BF1 cmp r14d, ecx
443BF1 cmp r14d, ecx
7CE8 jl SHORT G_M39841_IG22
7CE8 jl SHORT G_M39841_IG22
;; bbWeight=4 PerfScore 20.00
;; bbWeight=4 PerfScore 20.00
Copy
Copied
Copy
Copied
G_M39841_IG23: ;; offset=
0210H
G_M39841_IG23: ;; offset=
0238H
FFC2 inc edx
FFC2 inc edx
83F802 cmp eax, 2
83F802 cmp eax, 2
Copy
Copied
Copy
Copied
7E2
9
jle SHORT G_M39841_IG26
7E2
E
jle SHORT G_M39841_IG26
;; bbWeight=8 PerfScore 12.00
;; bbWeight=8 PerfScore 12.00
Copy
Copied
Copy
Copied
G_M39841_IG24: ;; offset=
0217H
G_M39841_IG24: ;; offset=
023FH
488D5F02 lea rbx, [rdi+2]
488D5F02 lea rbx, [rdi+2]
4C63F0 movsxd r14, eax
4C63F0 movsxd r14, eax
4E8D7477FE lea r14, [rdi+2*r14-2]
4E8D7477FE lea r14, [rdi+2*r14-2]
Copy
Copied
Copy
Copied
;; bbWeight=4 PerfScore
7
.00
0F1F440000 align
G_M39841_IG25: ;; offset=
0223H
;; bbWeight=4 PerfScore
8
.00
G_M39841_IG25: ;; offset=
0250H
4C0FBF3B movsx r15, word ptr [rbx]
4C0FBF3B movsx r15, word ptr [rbx]
4D0FBF26 movsx r12, word ptr [r14]
4D0FBF26 movsx r12, word ptr [r14]
66448923 mov word ptr [rbx], r12w
66448923 mov word ptr [rbx], r12w
6645893E mov word ptr [r14], r15w
6645893E mov word ptr [r14], r15w
4883C302 add rbx, 2
4883C302 add rbx, 2
4983C6FE add r14, -2
4983C6FE add r14, -2
493BDE cmp rbx, r14
493BDE cmp rbx, r14
72E3 jb SHORT G_M39841_IG25
72E3 jb SHORT G_M39841_IG25
;; bbWeight=32 PerfScore 248.00
;; bbWeight=32 PerfScore 248.00
Copy
Copied
Copy
Copied
G_M39841_IG26: ;; offset=
0240H
G_M39841_IG26: ;; offset=
026DH
4C63F8 movsxd r15, eax
4C63F8 movsxd r15, eax
4E0FBF3C7F movsx r15, word ptr [rdi+2*r15]
4E0FBF3C7F movsx r15, word ptr [rdi+2*r15]
4863D8 movsxd rbx, eax
4863D8 movsxd rbx, eax
6689045F mov word ptr [rdi+2*rbx], ax
6689045F mov word ptr [rdi+2*rbx], ax
418BC7 mov eax, r15d
418BC7 mov eax, r15d
4863D8 movsxd rbx, eax
4863D8 movsxd rbx, eax
66833C5F00 cmp word ptr [rdi+2*rbx], 0
66833C5F00 cmp word ptr [rdi+2*rbx], 0
Copy
Copied
Copy
Copied
75B4
jne SHORT G_M39841_IG23
75AF
jne SHORT G_M39841_IG23
;; bbWeight=8 PerfScore 56.00
;; bbWeight=8 PerfScore 56.00
Copy
Copied
Copy
Copied
G_M39841_IG27: ;; offset=
025CH
G_M39841_IG27: ;; offset=
0289H
8BC2 mov eax, edx
8BC2 mov eax, edx
4403D0 add r10d, eax
4403D0 add r10d, eax
413BC3 cmp eax, r11d
413BC3 cmp eax, r11d
7E03 jle SHORT G_M39841_IG28
7E03 jle SHORT G_M39841_IG28
448BD8 mov r11d, eax
448BD8 mov r11d, eax
;; bbWeight=2 PerfScore 4.00
;; bbWeight=2 PerfScore 4.00
Copy
Copied
Copy
Copied
G_M39841_IG28: ;; offset=02
69
H
G_M39841_IG28: ;; offset=02
96
H
B801000000 mov eax, 1
B801000000 mov eax, 1
4183F801 cmp r8d, 1
4183F801 cmp r8d, 1
Copy
Copied
Copy
Copied
0F8E
6C
010000 jle G_M39841_IG47
0F8E
8D
010000 jle G_M39841_IG47
;; bbWeight=2 PerfScore 3.00
;; bbWeight=2 PerfScore 3.00
Copy
Copied
Copy
Copied
G_M39841_IG29: ;; offset=
0278H
G_M39841_IG29: ;; offset=
02A5H
480FBF5602 movsx rdx, word ptr [rsi+2]
480FBF5602 movsx rdx, word ptr [rsi+2]
480FBF1E movsx rbx, word ptr [rsi]
480FBF1E movsx rbx, word ptr [rsi]
66895E02 mov word ptr [rsi+2], bx
66895E02 mov word ptr [rsi+2], bx
668916 mov word ptr [rsi], dx
668916 mov word ptr [rsi], dx
BB01000000 mov ebx, 1
BB01000000 mov ebx, 1
Copy
Copied
Copy
Copied
EB55
jmp SHORT G_M39841_IG34
EB60
jmp SHORT G_M39841_IG34
;; bbWeight=16 PerfScore 132.00
;; bbWeight=16 PerfScore 132.00
Copy
Copied
Copy
Copied
G_M39841_IG30: ;; offset=
028FH
G_M39841_IG30: ;; offset=
02BCH
8BDA mov ebx, edx
8BDA mov ebx, edx
Copy
Copied
Copy
Copied
E9
00FF
FFFF jmp G_M39841_IG17
E9
ECFE
FFFF jmp G_M39841_IG17
;; bbWeight=2 PerfScore 4.50
;; bbWeight=2 PerfScore 4.50
Copy
Copied
Copy
Copied
G_M39841_IG31: ;; offset=
0296H
G_M39841_IG31: ;; offset=
02C3H
448D7301 lea r14d, [rbx+1]
448D7301 lea r14d, [rbx+1]
4863DB movsxd rbx, ebx
4863DB movsxd rbx, ebx
4533FF xor r15d, r15d
4533FF xor r15d, r15d
45893C99 mov dword ptr [r9+4*rbx], r15d
45893C99 mov dword ptr [r9+4*rbx], r15d
480FBF5E02 movsx rbx, word ptr [rsi+2]
480FBF5E02 movsx rbx, word ptr [rsi+2]
66891E mov word ptr [rsi], bx
66891E mov word ptr [rsi], bx
41BF01000000 mov r15d, 1
41BF01000000 mov r15d, 1
4183FE01 cmp r14d, 1
4183FE01 cmp r14d, 1
Copy
Copied
Copy
Copied
7E1F
jle SHORT G_M39841_IG33
7E2A
jle SHORT G_M39841_IG33
;; bbWeight=16 PerfScore 10
4
.00
6666660F1F840000000000 align
G_M39841_IG32: ;; offset=
02B8H
;; bbWeight=16 PerfScore 10
8
.00
G_M39841_IG32: ;; offset=
02F0H
458D6701 lea r12d, [r15+1]
458D6701 lea r12d, [r15+1]
4D63FF movsxd r15, r15d
4D63FF movsxd r15, r15d
4E8D3C7E lea r15, [rsi+2*r15]
4E8D3C7E lea r15, [rsi+2*r15]
4D63EC movsxd r13, r12d
4D63EC movsxd r13, r12d
4E0FBF2C6E movsx r13, word ptr [rsi+2*r13]
4E0FBF2C6E movsx r13, word ptr [rsi+2*r13]
6645892F mov word ptr [r15], r13w
6645892F mov word ptr [r15], r13w
453BE6 cmp r12d, r14d
453BE6 cmp r12d, r14d
458BFC mov r15d, r12d
458BFC mov r15d, r12d
7CE1 jl SHORT G_M39841_IG32
7CE1 jl SHORT G_M39841_IG32
;; bbWeight=128 PerfScore 768.00
;; bbWeight=128 PerfScore 768.00
Copy
Copied
Copy
Copied
G_M39841_IG33: ;; offset=
02D7H
G_M39841_IG33: ;; offset=
030FH
4D63FE movsxd r15, r14d
4D63FE movsxd r15, r14d
664289147E mov word ptr [rsi+2*r15], dx
664289147E mov word ptr [rsi+2*r15], dx
8BD3 mov edx, ebx
8BD3 mov edx, ebx
418BDE mov ebx, r14d
418BDE mov ebx, r14d
;; bbWeight=16 PerfScore 28.00
;; bbWeight=16 PerfScore 28.00
Copy
Copied
Copy
Copied
G_M39841_IG34: ;; offset=
02E4H
G_M39841_IG34: ;; offset=
031CH
4C63F3 movsxd r14, ebx
4C63F3 movsxd r14, ebx
4F8D34B1 lea r14, [r9+4*r14]
4F8D34B1 lea r14, [r9+4*r14]
458B3E mov r15d, dword ptr [r14]
458B3E mov r15d, dword ptr [r14]
41FFC7 inc r15d
41FFC7 inc r15d
45893E mov dword ptr [r14], r15d
45893E mov dword ptr [r14], r15d
443BFB cmp r15d, ebx
443BFB cmp r15d, ebx
Copy
Copied
Copy
Copied
7F9
D
jg SHORT G_M39841_IG31
7F9
2
jg SHORT G_M39841_IG31
;; bbWeight=64 PerfScore 336.00
;; bbWeight=64 PerfScore 336.00
Copy
Copied
Copy
Copied
G_M39841_IG35: ;; offset=
02F9H
G_M39841_IG35: ;; offset=
0331H
66833E00 cmp word ptr [rsi], 0
66833E00 cmp word ptr [rsi], 0
Copy
Copied
Copy
Copied
0F84
D6
000000 je G_M39841_IG46
0F84
EC
000000 je G_M39841_IG46
;; bbWeight=16 PerfScore 48.00
;; bbWeight=16 PerfScore 48.00
Copy
Copied
Copy
Copied
G_M39841_IG36: ;; offset=03
03
H
G_M39841_IG36: ;; offset=03
3B
H
BA01000000 mov edx, 1
BA01000000 mov edx, 1
480FBF1E movsx rbx, word ptr [rsi]
480FBF1E movsx rbx, word ptr [rsi]
4C63F3 movsxd r14, ebx
4C63F3 movsxd r14, ebx
6642833C7600 cmp word ptr [rsi+2*r14], 0
6642833C7600 cmp word ptr [rsi+2*r14], 0
Copy
Copied
Copy
Copied
0F84
A2
000000 je G_M39841_IG45
0F84
B8
000000 je G_M39841_IG45
;; bbWeight=8 PerfScore 44.00
;; bbWeight=8 PerfScore 44.00
Copy
Copied
Copy
Copied
G_M39841_IG37: ;; offset=
031BH
G_M39841_IG37: ;; offset=
0353H
448BF1 mov r14d, ecx
448BF1 mov r14d, ecx
41C1FE1F sar r14d, 31
41C1FE1F sar r14d, 31
4183E603 and r14d, 3
4183E603 and r14d, 3
4403F1 add r14d, ecx
4403F1 add r14d, ecx
41C1FE02 sar r14d, 2
41C1FE02 sar r14d, 2
4533FF xor r15d, r15d
4533FF xor r15d, r15d
4585F6 test r14d, r14d
4585F6 test r14d, r14d
Copy
Copied
Copy
Copied
7E1
6
jle SHORT G_M39841_IG39
7E1
9
jle SHORT G_M39841_IG39
;; bbWeight=4 PerfScore
25
.00
0F1F00 align
G_M39841_IG38: ;; offset=
0335H
;; bbWeight=4 PerfScore
26
.00
G_M39841_IG38: ;; offset=
0370H
4D63E7 movsxd r12, r15d
4D63E7 movsxd r12, r15d
4E8B24E6 mov r12, qword ptr [rsi+8*r12]
4E8B24E6 mov r12, qword ptr [rsi+8*r12]
4D63EF movsxd r13, r15d
4D63EF movsxd r13, r15d
4E8924EF mov qword ptr [rdi+8*r13], r12
4E8924EF mov qword ptr [rdi+8*r13], r12
41FFC7 inc r15d
41FFC7 inc r15d
453BFE cmp r15d, r14d
453BFE cmp r15d, r14d
7CEA jl SHORT G_M39841_IG38
7CEA jl SHORT G_M39841_IG38
;; bbWeight=16 PerfScore 80.00
;; bbWeight=16 PerfScore 80.00
Copy
Copied
Copy
Copied
G_M39841_IG39: ;; offset=
034BH
G_M39841_IG39: ;; offset=
0386H
458BFE mov r15d, r14d
458BFE mov r15d, r14d
41C1E702 shl r15d, 2
41C1E702 shl r15d, 2
443BF9 cmp r15d, ecx
443BF9 cmp r15d, ecx
Copy
Copied
Copy
Copied
7D18
jge SHORT G_M39841_IG41
7D26
jge SHORT G_M39841_IG41
;; bbWeight=2 PerfScore 7.
00
0F1F80000000000F1F8000000000 align
G_M39841_IG40: ;; offset=
0357H
;; bbWeight=2 PerfScore 7.
50
G_M39841_IG40: ;; offset=
03A0H
4D63F7 movsxd r14, r15d
4D63F7 movsxd r14, r15d
4E0FBF3476 movsx r14, word ptr [rsi+2*r14]
4E0FBF3476 movsx r14, word ptr [rsi+2*r14]
4D63E7 movsxd r12, r15d
4D63E7 movsxd r12, r15d
6646893467 mov word ptr [rdi+2*r12], r14w
6646893467 mov word ptr [rdi+2*r12], r14w
41FFC7 inc r15d
41FFC7 inc r15d
443BF9 cmp r15d, ecx
443BF9 cmp r15d, ecx
7CE8 jl SHORT G_M39841_IG40
7CE8 jl SHORT G_M39841_IG40
;; bbWeight=16 PerfScore 80.00
;; bbWeight=16 PerfScore 80.00
Copy
Copied
Copy
Copied
G_M39841_IG41: ;; offset=
036FH
G_M39841_IG41: ;; offset=
03B8H
FFC2 inc edx
FFC2 inc edx
83FB02 cmp ebx, 2
83FB02 cmp ebx, 2
Copy
Copied
Copy
Copied
7E2
9
jle SHORT G_M39841_IG44
7E2
E
jle SHORT G_M39841_IG44
;; bbWeight=32 PerfScore 48.00
;; bbWeight=32 PerfScore 48.00
Copy
Copied
Copy
Copied
G_M39841_IG42: ;; offset=
0376H
G_M39841_IG42: ;; offset=
03BFH
4C8D7702 lea r14, [rdi+2]
4C8D7702 lea r14, [rdi+2]
4C63FB movsxd r15, ebx
4C63FB movsxd r15, ebx
4E8D7C7FFE lea r15, [rdi+2*r15-2]
4E8D7C7FFE lea r15, [rdi+2*r15-2]
Copy
Copied
Copy
Copied
;; bbWeight=16 PerfScore
28
.00
0F1F440000 align
G_M39841_IG43: ;; offset=
0382H
;; bbWeight=16 PerfScore
32
.00
G_M39841_IG43: ;; offset=
03D0H
4D0FBF26 movsx r12, word ptr [r14]
4D0FBF26 movsx r12, word ptr [r14]
4D0FBF2F movsx r13, word ptr [r15]
4D0FBF2F movsx r13, word ptr [r15]
6645892E mov word ptr [r14], r13w
6645892E mov word ptr [r14], r13w
66458927 mov word ptr [r15], r12w
66458927 mov word ptr [r15], r12w
4983C602 add r14, 2
4983C602 add r14, 2
4983C7FE add r15, -2
4983C7FE add r15, -2
4D3BF7 cmp r14, r15
4D3BF7 cmp r14, r15
72E3 jb SHORT G_M39841_IG43
72E3 jb SHORT G_M39841_IG43
;; bbWeight=128 PerfScore 992.00
;; bbWeight=128 PerfScore 992.00
Copy
Copied
Copy
Copied
G_M39841_IG44: ;; offset=
039FH
G_M39841_IG44: ;; offset=
03EDH
4C63E3 movsxd r12, ebx
4C63E3 movsxd r12, ebx
4E0FBF2467 movsx r12, word ptr [rdi+2*r12]
4E0FBF2467 movsx r12, word ptr [rdi+2*r12]
4C63F3 movsxd r14, ebx
4C63F3 movsxd r14, ebx
6642891C77 mov word ptr [rdi+2*r14], bx
6642891C77 mov word ptr [rdi+2*r14], bx
418BDC mov ebx, r12d
418BDC mov ebx, r12d
4C63F3 movsxd r14, ebx
4C63F3 movsxd r14, ebx
6642833C7700 cmp word ptr [rdi+2*r14], 0
6642833C7700 cmp word ptr [rdi+2*r14], 0
Copy
Copied
Copy
Copied
75B2
jne SHORT G_M39841_IG41
75AD
jne SHORT G_M39841_IG41
;; bbWeight=32 PerfScore 224.00
;; bbWeight=32 PerfScore 224.00
Copy
Copied
Copy
Copied
G_M39841_IG45: ;; offset=
03BDH
G_M39841_IG45: ;; offset=
040BH
8BD8 mov ebx, eax
8BD8 mov ebx, eax
83E301 and ebx, 1
83E301 and ebx, 1
03DB add ebx, ebx
03DB add ebx, ebx
F7DB neg ebx
F7DB neg ebx
FFC3 inc ebx
FFC3 inc ebx
0FAFDA imul ebx, edx
0FAFDA imul ebx, edx
4103DA add ebx, r10d
4103DA add ebx, r10d
448BD3 mov r10d, ebx
448BD3 mov r10d, ebx
413BD3 cmp edx, r11d
413BD3 cmp edx, r11d
7E03 jle SHORT G_M39841_IG46
7E03 jle SHORT G_M39841_IG46
448BDA mov r11d, edx
448BDA mov r11d, edx
;; bbWeight=8 PerfScore 42.00
;; bbWeight=8 PerfScore 42.00
Copy
Copied
Copy
Copied
G_M39841_IG46: ;; offset=
03D9H
G_M39841_IG46: ;; offset=
0427H
FFC0 inc eax
FFC0 inc eax
413BC0 cmp eax, r8d
413BC0 cmp eax, r8d
Copy
Copied
Copy
Copied
0F8C
94
FEFFFF jl G_M39841_IG29
0F8C
73
FEFFFF jl G_M39841_IG29
;; bbWeight=16 PerfScore 24.00
;; bbWeight=16 PerfScore 24.00
Copy
Copied
Copy
Copied
G_M39841_IG47: ;; offset=
03E4H
G_M39841_IG47: ;; offset=
0432H
48B8F026B
F
64FA7F0000 mov rax, 0x7FFA64B
F
26F0
48B8F026B
E
64FA7F0000 mov rax, 0x7FFA64B
E
26F0
BAFFFFFFFF mov edx, -1
BAFFFFFFFF mov edx, -1
8BDA mov ebx, edx
8BDA mov ebx, edx
F0 lock
F0 lock
0FC118 xadd dword ptr [rax], ebx
0FC118 xadd dword ptr [rax], ebx
FFCB dec ebx
FFCB dec ebx
85DB test ebx, ebx
85DB test ebx, ebx
Copy
Copied
Copy
Copied
0F8D
C7
FCFFFF jge G_M39841_IG09
0F8D
79
FCFFFF jge G_M39841_IG09
;; bbWeight=8 PerfScore 162.00
;; bbWeight=8 PerfScore 162.00
Copy
Copied
Copy
Copied
G_M39841_IG48: ;; offset=
0403H
G_M39841_IG48: ;; offset=
0451H
48B8B07351C7B1010000 mov rax, 0x1B1C75173B0
48B8B073
488B00 mov rax, gword ptr [rax]
8BD3 mov edx, ebx
F7DA neg edx
FFCA dec edx
3B5008 cmp edx, dword ptr [rax+8]
734B jae SHORT G_M39841_IG52
4C63CA movsxd r9, edx
Saved diffs
Original text
Open file
; Assembly listing for method MiniBench.FannkuchRedux_9:Run(int,int) ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rbp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T30] ( 15, 47.50) int -> rcx ; V01 arg1 [V01,T40] ( 5, 22 ) int -> r8 ; V02 loc0 [V02,T23] ( 4, 89 ) long -> r9 ; V03 loc1 [V03,T45] ( 4, 19 ) int -> rbx ; V04 loc2 [V04,T42] ( 6, 22 ) int -> r10 ; V05 loc3 [V05,T43] ( 6, 22 ) int -> r11 ; V06 loc4 [V06,T03] ( 22,517 ) long -> rsi ; V07 loc5 [V07,T11] ( 17,265 ) long -> rdi ; V08 loc6 [V08,T46] ( 4, 8 ) int -> rax ; V09 loc7 [V09,T27] ( 5, 58 ) int -> rax ; V10 loc8 [V10,T37] ( 4, 32 ) int -> rdx ; V11 OutArgs [V11 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace" ; V12 tmp1 [V12,T38] ( 2, 32 ) int -> rbx "dup spill" ; V13 tmp2 [V13,T34] ( 6, 42 ) int -> rax "Inline stloc first use temp" ; V14 tmp3 [V14,T21] ( 14,102 ) int -> r14 "Inline stloc first use temp" ; V15 tmp4 [V15,T35] ( 4, 36 ) int -> registers "Inlining Arg" ; V16 tmp5 [V16,T29] ( 4, 56 ) int -> r15 "Inline stloc first use temp" ; V17 tmp6 [V17,T15] ( 7,168 ) int -> rax "Inline stloc first use temp" ; V18 tmp7 [V18,T16] ( 6,164 ) int -> registers "Inline stloc first use temp" ; V19 tmp8 [V19,T44] ( 4, 20 ) int -> rdx "Inline stloc first use temp" ; V20 tmp9 [V20,T28] ( 9, 56 ) int -> rax "Inline stloc first use temp" ; V21 tmp10 [V21,T24] ( 4, 80 ) short -> r15 "Inline stloc first use temp" ; V22 tmp11 [V22,T17] ( 6,164 ) long -> rbx "Inline stloc first use temp" ; V23 tmp12 [V23,T18] ( 6,164 ) long -> r14 "Inline stloc first use temp" ; V24 tmp13 [V24,T19] ( 2,128 ) long -> rbx "dup spill" ; V25 tmp14 [V25,T20] ( 2,128 ) long -> r14 "dup spill" ;* V26 tmp15 [V26,T56] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V27 tmp16 [V27,T57] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V28 tmp17 [V28,T47] ( 4, 6.50) int -> rbx "Inline stloc first use temp" ; V29 tmp18 [V29,T33] ( 13, 42 ) int -> r14 "Inline stloc first use temp" ; V30 tmp19 [V30,T26] ( 4, 64 ) short -> rdx "Inline stloc first use temp" ; V31 tmp20 [V31,T09] ( 8,336 ) int -> registers "Inline stloc first use temp" ; V32 tmp21 [V32,T08] ( 3,384 ) long -> r14 "dup spill" ; V33 tmp22 [V33,T13] ( 3,192 ) int -> r15 "Inline stloc first use temp" ; V34 tmp23 [V34,T22] ( 3, 96 ) int -> rbx "impSpillLclRefs" ; V35 tmp24 [V35,T32] ( 3, 48 ) short -> rbx "Inline stloc first use temp" ; V36 tmp25 [V36,T00] ( 6,656 ) int -> registers "Inline stloc first use temp" ; V37 tmp26 [V37,T04] ( 2,512 ) int -> r12 "dup spill" ; V38 tmp27 [V38,T05] ( 2,512 ) long -> r15 "impSpillLclRefs" ; V39 tmp28 [V39,T25] ( 4, 80 ) int -> rdx "Inline stloc first use temp" ; V40 tmp29 [V40,T12] ( 9,224 ) int -> rbx "Inline stloc first use temp" ; V41 tmp30 [V41,T10] ( 4,320 ) short -> r12 "Inline stloc first use temp" ; V42 tmp31 [V42,T01] ( 6,656 ) long -> r14 "Inline stloc first use temp" ; V43 tmp32 [V43,T02] ( 6,656 ) long -> r15 "Inline stloc first use temp" ; V44 tmp33 [V44,T06] ( 2,512 ) long -> r14 "dup spill" ; V45 tmp34 [V45,T07] ( 2,512 ) long -> r15 "dup spill" ;* V46 tmp35 [V46,T52] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V47 tmp36 [V47,T53] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V48 tmp37 [V48,T39] ( 4, 26 ) int -> r14 "Inline stloc first use temp" ; V49 tmp38 [V49,T14] ( 13,168 ) int -> r15 "Inline stloc first use temp" ; V50 tmp39 [V50,T31] ( 3, 48 ) ref -> r15 "arr expr" ; V51 tmp40 [V51,T41] ( 3, 24 ) ref -> r12 "arr expr" ; V52 tmp41 [V52,T48] ( 3, 6 ) ref -> rax "arr expr" ; V53 tmp42 [V53,T49] ( 3, 6 ) ref -> rax "arr expr" ; V54 GsCookie [V54 ] ( 1, 1 ) long -> [rbp+0x00] do-not-enreg[X] must-init addr-exposed "GSSecurityCookie" ; V55 cse0 [V55,T54] ( 3, 3 ) long -> rax "CSE - conservative" ; V56 cse1 [V56,T55] ( 3, 3 ) long -> r9 "CSE - conservative" ; V57 cse2 [V57,T51] ( 4, 4 ) int -> rdx "CSE - conservative" ; V58 cse3 [V58,T50] ( 3, 6 ) int -> rax "CSE - conservative" ; V59 cse4 [V59,T36] ( 2, 36 ) int -> r13 "CSE - moderate" ; ; Lcl frame size = 40 G_M39841_IG01: ;; offset=0000H 55 push rbp 4157 push r15 4156 push r14 4155 push r13 4154 push r12 57 push rdi 56 push rsi 53 push rbx 4883EC28 sub rsp, 40 488D6C2420 lea rbp, [rsp+20H] 33C0 xor rax, rax 48894500 mov qword ptr [rbp], rax 48B878563412F0DEBC9A mov rax, 0x9ABCDEF012345678 48894500 mov qword ptr [rbp], rax 448BC2 mov r8d, edx ;; bbWeight=1 PerfScore 11.50 G_M39841_IG02: ;; offset=002CH 8BC1 mov eax, ecx 41B904000000 mov r9d, 4 49F7E1 mul rdx:rax, r9 0F8224040000 jb G_M39841_IG51 4C8BC8 mov r9, rax 4D85C9 test r9, r9 741E je SHORT G_M39841_IG04 4983C10F add r9, 15 49C1E904 shr r9, 4 4883C420 add rsp, 32 ;; bbWeight=1 PerfScore 7.50 G_M39841_IG03: ;; offset=0051H 6A00 push 0 6A00 push 0 49FFC9 dec r9 75F7 jne SHORT G_M39841_IG03 4883EC20 sub rsp, 32 4C8D4C2420 lea r9, [rsp+20H] ;; bbWeight=1 PerfScore 4.00 G_M39841_IG04: ;; offset=0063H 4533D2 xor r10d, r10d 4533DB xor r11d, r11d 8BC1 mov eax, ecx BA02000000 mov edx, 2 48F7E2 mul rdx:rax, rdx 0F82E8030000 jb G_M39841_IG51 488BF0 mov rsi, rax 4885F6 test rsi, rsi 741E je SHORT G_M39841_IG06 4883C60F add rsi, 15 48C1EE04 shr rsi, 4 4883C420 add rsp, 32 ;; bbWeight=1 PerfScore 8.00 G_M39841_IG05: ;; offset=008DH 6A00 push 0 6A00 push 0 48FFCE dec rsi 75F7 jne SHORT G_M39841_IG05 4883EC20 sub rsp, 32 488D742420 lea rsi, [rsp+20H] ;; bbWeight=1 PerfScore 4.00 G_M39841_IG06: ;; offset=009FH 488BF8 mov rdi, rax 4885FF test rdi, rdi 741E je SHORT G_M39841_IG08 4883C70F add rdi, 15 48C1EF04 shr rdi, 4 4883C420 add rsp, 32 ;; bbWeight=1 PerfScore 4.00 G_M39841_IG07: ;; offset=00B3H 6A00 push 0 6A00 push 0 48FFCF dec rdi 75F7 jne SHORT G_M39841_IG07 4883EC20 sub rsp, 32 488D7C2420 lea rdi, [rsp+20H] ;; bbWeight=1 PerfScore 4.00 G_M39841_IG08: ;; offset=00C5H E91A030000 jmp G_M39841_IG47 ;; bbWeight=1 PerfScore 2.00 G_M39841_IG09: ;; offset=00CAH 410FAFD8 imul ebx, r8d 33C0 xor eax, eax 85C9 test ecx, ecx 7E11 jle SHORT G_M39841_IG11 ;; bbWeight=2 PerfScore 7.00 G_M39841_IG10: ;; offset=00D4H 0FB6D0 movzx rdx, al 4C63F0 movsxd r14, eax 6642891476 mov word ptr [rsi+2*r14], dx FFC0 inc eax 3BC1 cmp eax, ecx 7CEF jl SHORT G_M39841_IG10 ;; bbWeight=8 PerfScore 24.00 G_M39841_IG11: ;; offset=00E5H 448D71FF lea r14d, [rcx-1] 4585F6 test r14d, r14d 0F8EB0000000 jle G_M39841_IG18 ;; bbWeight=1 PerfScore 1.75 G_M39841_IG12: ;; offset=00F2H 48B8A87351C7B1010000 mov rax, 0x1B1C75173A8 4C8B38 mov r15, gword ptr [rax] 453B7708 cmp r14d, dword ptr [r15+8] 0F835D030000 jae G_M39841_IG52 4D63E6 movsxd r12, r14d 8BC3 mov eax, ebx 99 cdq 43F77CA710 idiv edx:eax, dword ptr [r15+4*r12+16] 448BF8 mov r15d, eax 4963C6 movsxd rax, r14d 45893C81 mov dword ptr [r9+4*rax], r15d 4585FF test r15d, r15d 7E73 jle SHORT G_M39841_IG17 ;; bbWeight=8 PerfScore 284.00 G_M39841_IG13: ;; offset=0123H 48B8A87351C7B1010000 mov rax, 0x1B1C75173A8 4C8B20 mov r12, gword ptr [rax] 453B742408 cmp r14d, dword ptr [r12+8] 0F832B030000 jae G_M39841_IG52 4D63EE movsxd r13, r14d 8BC3 mov eax, ebx 99 cdq 43F77CAC10 idiv edx:eax, dword ptr [r12+4*r13+16] 418BC6 mov eax, r14d 85C0 test eax, eax 7C16 jl SHORT G_M39841_IG15 ;; bbWeight=4 PerfScore 137.00 G_M39841_IG14: ;; offset=014DH 4863D8 movsxd rbx, eax 480FBF1C5E movsx rbx, word ptr [rsi+2*rbx] 4C63E0 movsxd r12, eax 6642891C67 mov word ptr [rdi+2*r12], bx FFC8 dec eax 85C0 test eax, eax 7DEA jge SHORT G_M39841_IG14 ;; bbWeight=32 PerfScore 160.00 G_M39841_IG15: ;; offset=0163H 33DB xor ebx, ebx 4585F6 test r14d, r14d 0F8C21010000 jl G_M39841_IG30 448BE3 mov r12d, ebx 8BDA mov ebx, edx 458D6E01 lea r13d, [r14+1] ;; bbWeight=4 PerfScore 10.00 G_M39841_IG16: ;; offset=0177H 438D043C lea eax, [r12+r15] 99 cdq 41F7FD idiv edx:eax, r13d 4863C2 movsxd rax, edx 480FBF0447 movsx rax, word ptr [rdi+2*rax] 4963D4 movsxd rdx, r12d 66890456 mov word ptr [rsi+2*rdx], ax 41FFC4 inc r12d 453BE6 cmp r12d, r14d 7EE1 jle SHORT G_M39841_IG16 ;; bbWeight=32 PerfScore 1040.00 G_M39841_IG17: ;; offset=0196H 41FFCE dec r14d 4585F6 test r14d, r14d 0F8F50FFFFFF jg G_M39841_IG12 ;; bbWeight=8 PerfScore 12.00 G_M39841_IG18: ;; offset=01A2H 480FBF06 movsx rax, word ptr [rsi] 85C0 test eax, eax 0F84BB000000 je G_M39841_IG28 BA01000000 mov edx, 1 4C63F0 movsxd r14, eax 6642833C7600 cmp word ptr [rsi+2*r14], 0 0F849A000000 je G_M39841_IG27 ;; bbWeight=2 PerfScore 13.50 G_M39841_IG19: ;; offset=01C2H 8BD9 mov ebx, ecx C1FB1F sar ebx, 31 83E303 and ebx, 3 03D9 add ebx, ecx C1FB02 sar ebx, 2 4533F6 xor r14d, r14d 85DB test ebx, ebx 7E16 jle SHORT G_M39841_IG21 ;; bbWeight=1 PerfScore 6.25 G_M39841_IG20: ;; offset=01D6H 4D63FE movsxd r15, r14d 4E8B3CFE mov r15, qword ptr [rsi+8*r15] 4D63E6 movsxd r12, r14d 4E893CE7 mov qword ptr [rdi+8*r12], r15 41FFC6 inc r14d 443BF3 cmp r14d, ebx 7CEA jl SHORT G_M39841_IG20 ;; bbWeight=4 PerfScore 20.00 G_M39841_IG21: ;; offset=01ECH 448BF3 mov r14d, ebx 41C1E602 shl r14d, 2 443BF1 cmp r14d, ecx 7D18 jge SHORT G_M39841_IG23 ;; bbWeight=0.50 PerfScore 1.75 G_M39841_IG22: ;; offset=01F8H 4963DE movsxd rbx, r14d 480FBF1C5E movsx rbx, word ptr [rsi+2*rbx] 4D63FE movsxd r15, r14d 6642891C7F mov word ptr [rdi+2*r15], bx 41FFC6 inc r14d 443BF1 cmp r14d, ecx 7CE8 jl SHORT G_M39841_IG22 ;; bbWeight=4 PerfScore 20.00 G_M39841_IG23: ;; offset=0210H FFC2 inc edx 83F802 cmp eax, 2 7E29 jle SHORT G_M39841_IG26 ;; bbWeight=8 PerfScore 12.00 G_M39841_IG24: ;; offset=0217H 488D5F02 lea rbx, [rdi+2] 4C63F0 movsxd r14, eax 4E8D7477FE lea r14, [rdi+2*r14-2] ;; bbWeight=4 PerfScore 7.00 G_M39841_IG25: ;; offset=0223H 4C0FBF3B movsx r15, word ptr [rbx] 4D0FBF26 movsx r12, word ptr [r14] 66448923 mov word ptr [rbx], r12w 6645893E mov word ptr [r14], r15w 4883C302 add rbx, 2 4983C6FE add r14, -2 493BDE cmp rbx, r14 72E3 jb SHORT G_M39841_IG25 ;; bbWeight=32 PerfScore 248.00 G_M39841_IG26: ;; offset=0240H 4C63F8 movsxd r15, eax 4E0FBF3C7F movsx r15, word ptr [rdi+2*r15] 4863D8 movsxd rbx, eax 6689045F mov word ptr [rdi+2*rbx], ax 418BC7 mov eax, r15d 4863D8 movsxd rbx, eax 66833C5F00 cmp word ptr [rdi+2*rbx], 0 75B4 jne SHORT G_M39841_IG23 ;; bbWeight=8 PerfScore 56.00 G_M39841_IG27: ;; offset=025CH 8BC2 mov eax, edx 4403D0 add r10d, eax 413BC3 cmp eax, r11d 7E03 jle SHORT G_M39841_IG28 448BD8 mov r11d, eax ;; bbWeight=2 PerfScore 4.00 G_M39841_IG28: ;; offset=0269H B801000000 mov eax, 1 4183F801 cmp r8d, 1 0F8E6C010000 jle G_M39841_IG47 ;; bbWeight=2 PerfScore 3.00 G_M39841_IG29: ;; offset=0278H 480FBF5602 movsx rdx, word ptr [rsi+2] 480FBF1E movsx rbx, word ptr [rsi] 66895E02 mov word ptr [rsi+2], bx 668916 mov word ptr [rsi], dx BB01000000 mov ebx, 1 EB55 jmp SHORT G_M39841_IG34 ;; bbWeight=16 PerfScore 132.00 G_M39841_IG30: ;; offset=028FH 8BDA mov ebx, edx E900FFFFFF jmp G_M39841_IG17 ;; bbWeight=2 PerfScore 4.50 G_M39841_IG31: ;; offset=0296H 448D7301 lea r14d, [rbx+1] 4863DB movsxd rbx, ebx 4533FF xor r15d, r15d 45893C99 mov dword ptr [r9+4*rbx], r15d 480FBF5E02 movsx rbx, word ptr [rsi+2] 66891E mov word ptr [rsi], bx 41BF01000000 mov r15d, 1 4183FE01 cmp r14d, 1 7E1F jle SHORT G_M39841_IG33 ;; bbWeight=16 PerfScore 104.00 G_M39841_IG32: ;; offset=02B8H 458D6701 lea r12d, [r15+1] 4D63FF movsxd r15, r15d 4E8D3C7E lea r15, [rsi+2*r15] 4D63EC movsxd r13, r12d 4E0FBF2C6E movsx r13, word ptr [rsi+2*r13] 6645892F mov word ptr [r15], r13w 453BE6 cmp r12d, r14d 458BFC mov r15d, r12d 7CE1 jl SHORT G_M39841_IG32 ;; bbWeight=128 PerfScore 768.00 G_M39841_IG33: ;; offset=02D7H 4D63FE movsxd r15, r14d 664289147E mov word ptr [rsi+2*r15], dx 8BD3 mov edx, ebx 418BDE mov ebx, r14d ;; bbWeight=16 PerfScore 28.00 G_M39841_IG34: ;; offset=02E4H 4C63F3 movsxd r14, ebx 4F8D34B1 lea r14, [r9+4*r14] 458B3E mov r15d, dword ptr [r14] 41FFC7 inc r15d 45893E mov dword ptr [r14], r15d 443BFB cmp r15d, ebx 7F9D jg SHORT G_M39841_IG31 ;; bbWeight=64 PerfScore 336.00 G_M39841_IG35: ;; offset=02F9H 66833E00 cmp word ptr [rsi], 0 0F84D6000000 je G_M39841_IG46 ;; bbWeight=16 PerfScore 48.00 G_M39841_IG36: ;; offset=0303H BA01000000 mov edx, 1 480FBF1E movsx rbx, word ptr [rsi] 4C63F3 movsxd r14, ebx 6642833C7600 cmp word ptr [rsi+2*r14], 0 0F84A2000000 je G_M39841_IG45 ;; bbWeight=8 PerfScore 44.00 G_M39841_IG37: ;; offset=031BH 448BF1 mov r14d, ecx 41C1FE1F sar r14d, 31 4183E603 and r14d, 3 4403F1 add r14d, ecx 41C1FE02 sar r14d, 2 4533FF xor r15d, r15d 4585F6 test r14d, r14d 7E16 jle SHORT G_M39841_IG39 ;; bbWeight=4 PerfScore 25.00 G_M39841_IG38: ;; offset=0335H 4D63E7 movsxd r12, r15d 4E8B24E6 mov r12, qword ptr [rsi+8*r12] 4D63EF movsxd r13, r15d 4E8924EF mov qword ptr [rdi+8*r13], r12 41FFC7 inc r15d 453BFE cmp r15d, r14d 7CEA jl SHORT G_M39841_IG38 ;; bbWeight=16 PerfScore 80.00 G_M39841_IG39: ;; offset=034BH 458BFE mov r15d, r14d 41C1E702 shl r15d, 2 443BF9 cmp r15d, ecx 7D18 jge SHORT G_M39841_IG41 ;; bbWeight=2 PerfScore 7.00 G_M39841_IG40: ;; offset=0357H 4D63F7 movsxd r14, r15d 4E0FBF3476 movsx r14, word ptr [rsi+2*r14] 4D63E7 movsxd r12, r15d 6646893467 mov word ptr [rdi+2*r12], r14w 41FFC7 inc r15d 443BF9 cmp r15d, ecx 7CE8 jl SHORT G_M39841_IG40 ;; bbWeight=16 PerfScore 80.00 G_M39841_IG41: ;; offset=036FH FFC2 inc edx 83FB02 cmp ebx, 2 7E29 jle SHORT G_M39841_IG44 ;; bbWeight=32 PerfScore 48.00 G_M39841_IG42: ;; offset=0376H 4C8D7702 lea r14, [rdi+2] 4C63FB movsxd r15, ebx 4E8D7C7FFE lea r15, [rdi+2*r15-2] ;; bbWeight=16 PerfScore 28.00 G_M39841_IG43: ;; offset=0382H 4D0FBF26 movsx r12, word ptr [r14] 4D0FBF2F movsx r13, word ptr [r15] 6645892E mov word ptr [r14], r13w 66458927 mov word ptr [r15], r12w 4983C602 add r14, 2 4983C7FE add r15, -2 4D3BF7 cmp r14, r15 72E3 jb SHORT G_M39841_IG43 ;; bbWeight=128 PerfScore 992.00 G_M39841_IG44: ;; offset=039FH 4C63E3 movsxd r12, ebx 4E0FBF2467 movsx r12, word ptr [rdi+2*r12] 4C63F3 movsxd r14, ebx 6642891C77 mov word ptr [rdi+2*r14], bx 418BDC mov ebx, r12d 4C63F3 movsxd r14, ebx 6642833C7700 cmp word ptr [rdi+2*r14], 0 75B2 jne SHORT G_M39841_IG41 ;; bbWeight=32 PerfScore 224.00 G_M39841_IG45: ;; offset=03BDH 8BD8 mov ebx, eax 83E301 and ebx, 1 03DB add ebx, ebx F7DB neg ebx FFC3 inc ebx 0FAFDA imul ebx, edx 4103DA add ebx, r10d 448BD3 mov r10d, ebx 413BD3 cmp edx, r11d 7E03 jle SHORT G_M39841_IG46 448BDA mov r11d, edx ;; bbWeight=8 PerfScore 42.00 G_M39841_IG46: ;; offset=03D9H FFC0 inc eax 413BC0 cmp eax, r8d 0F8C94FEFFFF jl G_M39841_IG29 ;; bbWeight=16 PerfScore 24.00 G_M39841_IG47: ;; offset=03E4H 48B8F026BF64FA7F0000 mov rax, 0x7FFA64BF26F0 BAFFFFFFFF mov edx, -1 8BDA mov ebx, edx F0 lock 0FC118 xadd dword ptr [rax], ebx FFCB dec ebx 85DB test ebx, ebx 0F8DC7FCFFFF jge G_M39841_IG09 ;; bbWeight=8 PerfScore 162.00 G_M39841_IG48: ;; offset=0403H 48B8B07351C7B1010000 mov rax, 0x1B1C75173B0 488B00 mov rax, gword ptr [rax] 8BD3 mov edx, ebx F7DA neg edx FFCA dec edx 3B5008 cmp edx, dword ptr [rax+8] 734B jae SHORT G_M39841_IG52 4C63CA movsxd r9, edx 4689548810 mov dword ptr [rax+4*r9+16], r10d 48B8B87351C7B1010000 mov rax, 0x1B1C75173B8 488B00 mov rax, gword ptr [rax] 3B5008 cmp edx, dword ptr [rax+8] 7331 jae SHORT G_M39841_IG52 46895C8810 mov dword ptr [rax+4*r9+16], r11d 48B978563412F0DEBC9A mov rcx, 0x9ABCDEF012345678 48394D00 cmp qword ptr [rbp], rcx 7405 je SHORT G_M39841_IG49 E821D0065F call CORINFO_HELP_FAIL_FAST ;; bbWeight=1 PerfScore 16.75 G_M39841_IG49: ;; offset=044FH 90 nop ;; bbWeight=1 PerfScore 0.25 G_M39841_IG50: ;; offset=0450H 488D6508 lea rsp, [rbp+08H] 5B pop rbx 5E pop rsi 5F pop rdi 415C pop r12 415D pop r13 415E pop r14 415F pop r15 5D pop rbp C3 ret ;; bbWeight=1 PerfScore 5.50 G_M39841_IG51: ;; offset=0461H E84A07075F call CORINFO_HELP_OVERFLOW ;; bbWeight=0 PerfScore 0.00 G_M39841_IG52: ;; offset=0466H E815F3065F call CORINFO_HELP_RNGCHKFAIL CC int3 ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 1132, prolog size 44, PerfScore 5424.45, instruction count 334, allocated bytes for code 1132 (MethodHash=d555645e) for method MiniBench.FannkuchRedux_9:Run(int,int) ; ============================================================
Changed text
Open file
; Assembly listing for method MiniBench.FannkuchRedux_9:Run(int,int) ; Emitting BLENDED_CODE for X64 CPU with AVX - Windows ; optimized code ; rbp based frame ; fully interruptible ; Final local variable assignments ; ; V00 arg0 [V00,T30] ( 15, 47.50) int -> rcx ; V01 arg1 [V01,T40] ( 5, 22 ) int -> r8 ; V02 loc0 [V02,T23] ( 4, 89 ) long -> r9 ; V03 loc1 [V03,T45] ( 4, 19 ) int -> rbx ; V04 loc2 [V04,T42] ( 6, 22 ) int -> r10 ; V05 loc3 [V05,T43] ( 6, 22 ) int -> r11 ; V06 loc4 [V06,T03] ( 22,517 ) long -> rsi ; V07 loc5 [V07,T11] ( 17,265 ) long -> rdi ; V08 loc6 [V08,T46] ( 4, 8 ) int -> rax ; V09 loc7 [V09,T27] ( 5, 58 ) int -> rax ; V10 loc8 [V10,T37] ( 4, 32 ) int -> rdx ; V11 OutArgs [V11 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] "OutgoingArgSpace" ; V12 tmp1 [V12,T38] ( 2, 32 ) int -> rbx "dup spill" ; V13 tmp2 [V13,T34] ( 6, 42 ) int -> rax "Inline stloc first use temp" ; V14 tmp3 [V14,T21] ( 14,102 ) int -> r14 "Inline stloc first use temp" ; V15 tmp4 [V15,T35] ( 4, 36 ) int -> registers "Inlining Arg" ; V16 tmp5 [V16,T29] ( 4, 56 ) int -> r15 "Inline stloc first use temp" ; V17 tmp6 [V17,T15] ( 7,168 ) int -> rax "Inline stloc first use temp" ; V18 tmp7 [V18,T16] ( 6,164 ) int -> registers "Inline stloc first use temp" ; V19 tmp8 [V19,T44] ( 4, 20 ) int -> rdx "Inline stloc first use temp" ; V20 tmp9 [V20,T28] ( 9, 56 ) int -> rax "Inline stloc first use temp" ; V21 tmp10 [V21,T24] ( 4, 80 ) short -> r15 "Inline stloc first use temp" ; V22 tmp11 [V22,T17] ( 6,164 ) long -> rbx "Inline stloc first use temp" ; V23 tmp12 [V23,T18] ( 6,164 ) long -> r14 "Inline stloc first use temp" ; V24 tmp13 [V24,T19] ( 2,128 ) long -> rbx "dup spill" ; V25 tmp14 [V25,T20] ( 2,128 ) long -> r14 "dup spill" ;* V26 tmp15 [V26,T56] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V27 tmp16 [V27,T57] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V28 tmp17 [V28,T47] ( 4, 6.50) int -> rbx "Inline stloc first use temp" ; V29 tmp18 [V29,T33] ( 13, 42 ) int -> r14 "Inline stloc first use temp" ; V30 tmp19 [V30,T26] ( 4, 64 ) short -> rdx "Inline stloc first use temp" ; V31 tmp20 [V31,T09] ( 8,336 ) int -> registers "Inline stloc first use temp" ; V32 tmp21 [V32,T08] ( 3,384 ) long -> r14 "dup spill" ; V33 tmp22 [V33,T13] ( 3,192 ) int -> r15 "Inline stloc first use temp" ; V34 tmp23 [V34,T22] ( 3, 96 ) int -> rbx "impSpillLclRefs" ; V35 tmp24 [V35,T32] ( 3, 48 ) short -> rbx "Inline stloc first use temp" ; V36 tmp25 [V36,T00] ( 6,656 ) int -> registers "Inline stloc first use temp" ; V37 tmp26 [V37,T04] ( 2,512 ) int -> r12 "dup spill" ; V38 tmp27 [V38,T05] ( 2,512 ) long -> r15 "impSpillLclRefs" ; V39 tmp28 [V39,T25] ( 4, 80 ) int -> rdx "Inline stloc first use temp" ; V40 tmp29 [V40,T12] ( 9,224 ) int -> rbx "Inline stloc first use temp" ; V41 tmp30 [V41,T10] ( 4,320 ) short -> r12 "Inline stloc first use temp" ; V42 tmp31 [V42,T01] ( 6,656 ) long -> r14 "Inline stloc first use temp" ; V43 tmp32 [V43,T02] ( 6,656 ) long -> r15 "Inline stloc first use temp" ; V44 tmp33 [V44,T06] ( 2,512 ) long -> r14 "dup spill" ; V45 tmp34 [V45,T07] ( 2,512 ) long -> r15 "dup spill" ;* V46 tmp35 [V46,T52] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V47 tmp36 [V47,T53] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V48 tmp37 [V48,T39] ( 4, 26 ) int -> r14 "Inline stloc first use temp" ; V49 tmp38 [V49,T14] ( 13,168 ) int -> r15 "Inline stloc first use temp" ; V50 tmp39 [V50,T31] ( 3, 48 ) ref -> r15 "arr expr" ; V51 tmp40 [V51,T41] ( 3, 24 ) ref -> r12 "arr expr" ; V52 tmp41 [V52,T48] ( 3, 6 ) ref -> rax "arr expr" ; V53 tmp42 [V53,T49] ( 3, 6 ) ref -> rax "arr expr" ; V54 GsCookie [V54 ] ( 1, 1 ) long -> [rbp+0x00] do-not-enreg[X] must-init addr-exposed "GSSecurityCookie" ; V55 cse0 [V55,T54] ( 3, 3 ) long -> rax "CSE - conservative" ; V56 cse1 [V56,T55] ( 3, 3 ) long -> r9 "CSE - conservative" ; V57 cse2 [V57,T51] ( 4, 4 ) int -> rdx "CSE - conservative" ; V58 cse3 [V58,T50] ( 3, 6 ) int -> rax "CSE - conservative" ; V59 cse4 [V59,T36] ( 2, 36 ) int -> r13 "CSE - moderate" ; ; Lcl frame size = 40 G_M39841_IG01: ;; offset=0000H 55 push rbp 4157 push r15 4156 push r14 4155 push r13 4154 push r12 57 push rdi 56 push rsi 53 push rbx 4883EC28 sub rsp, 40 488D6C2420 lea rbp, [rsp+20H] 33C0 xor rax, rax 48894500 mov qword ptr [rbp], rax 48B878563412F0DEBC9A mov rax, 0x9ABCDEF012345678 48894500 mov qword ptr [rbp], rax 448BC2 mov r8d, edx ;; bbWeight=1 PerfScore 11.50 G_M39841_IG02: ;; offset=002CH 8BC1 mov eax, ecx 41B904000000 mov r9d, 4 49F7E1 mul rdx:rax, r9 0F8272040000 jb G_M39841_IG51 4C8BC8 mov r9, rax 4D85C9 test r9, r9 741E je SHORT G_M39841_IG04 4983C10F add r9, 15 49C1E904 shr r9, 4 4883C420 add rsp, 32 ;; bbWeight=1 PerfScore 7.50 G_M39841_IG03: ;; offset=0051H 6A00 push 0 6A00 push 0 49FFC9 dec r9 75F7 jne SHORT G_M39841_IG03 4883EC20 sub rsp, 32 4C8D4C2420 lea r9, [rsp+20H] ;; bbWeight=1 PerfScore 4.00 G_M39841_IG04: ;; offset=0063H 4533D2 xor r10d, r10d 4533DB xor r11d, r11d 8BC1 mov eax, ecx BA02000000 mov edx, 2 48F7E2 mul rdx:rax, rdx 0F8236040000 jb G_M39841_IG51 488BF0 mov rsi, rax 4885F6 test rsi, rsi 741E je SHORT G_M39841_IG06 4883C60F add rsi, 15 48C1EE04 shr rsi, 4 4883C420 add rsp, 32 ;; bbWeight=1 PerfScore 8.00 G_M39841_IG05: ;; offset=008DH 6A00 push 0 6A00 push 0 48FFCE dec rsi 75F7 jne SHORT G_M39841_IG05 4883EC20 sub rsp, 32 488D742420 lea rsi, [rsp+20H] ;; bbWeight=1 PerfScore 4.00 G_M39841_IG06: ;; offset=009FH 488BF8 mov rdi, rax 4885FF test rdi, rdi 741E je SHORT G_M39841_IG08 4883C70F add rdi, 15 48C1EF04 shr rdi, 4 4883C420 add rsp, 32 ;; bbWeight=1 PerfScore 4.00 G_M39841_IG07: ;; offset=00B3H 6A00 push 0 6A00 push 0 48FFCF dec rdi 75F7 jne SHORT G_M39841_IG07 4883EC20 sub rsp, 32 488D7C2420 lea rdi, [rsp+20H] ;; bbWeight=1 PerfScore 4.00 G_M39841_IG08: ;; offset=00C5H E968030000 jmp G_M39841_IG47 ;; bbWeight=1 PerfScore 2.00 G_M39841_IG09: ;; offset=00CAH 410FAFD8 imul ebx, r8d 33C0 xor eax, eax 85C9 test ecx, ecx 7E1D jle SHORT G_M39841_IG11 0F1F40000F1F840000000000 align ;; bbWeight=2 PerfScore 7.50 G_M39841_IG10: ;; offset=00E0H 0FB6D0 movzx rdx, al 4C63F0 movsxd r14, eax 6642891476 mov word ptr [rsi+2*r14], dx FFC0 inc eax 3BC1 cmp eax, ecx 7CEF jl SHORT G_M39841_IG10 ;; bbWeight=8 PerfScore 24.00 G_M39841_IG11: ;; offset=00F1H 448D71FF lea r14d, [rcx-1] 4585F6 test r14d, r14d 0F8EBD000000 jle G_M39841_IG18 ;; bbWeight=1 PerfScore 1.75 G_M39841_IG12: ;; offset=00FEH 48B8A873B4A859020000 mov rax, 0x259A8B473A8 4C8B38 mov r15, gword ptr [rax] 453B7708 cmp r14d, dword ptr [r15+8] 0F839F030000 jae G_M39841_IG52 4D63E6 movsxd r12, r14d 8BC3 mov eax, ebx 99 cdq 43F77CA710 idiv edx:eax, dword ptr [r15+4*r12+16] 448BF8 mov r15d, eax 4963C6 movsxd rax, r14d 45893C81 mov dword ptr [r9+4*rax], r15d 4585FF test r15d, r15d 0F8E7C000000 jle G_M39841_IG17 ;; bbWeight=8 PerfScore 284.00 G_M39841_IG13: ;; offset=0133H 48B8A873B4A859020000 mov rax, 0x259A8B473A8 4C8B20 mov r12, gword ptr [rax] 453B742408 cmp r14d, dword ptr [r12+8] 0F8369030000 jae G_M39841_IG52 4D63EE movsxd r13, r14d 8BC3 mov eax, ebx 99 cdq 43F77CAC10 idiv edx:eax, dword ptr [r12+4*r13+16] 418BC6 mov eax, r14d 85C0 test eax, eax 7C19 jl SHORT G_M39841_IG15 0F1F00 align ;; bbWeight=4 PerfScore 138.00 G_M39841_IG14: ;; offset=0160H 4863D8 movsxd rbx, eax 480FBF1C5E movsx rbx, word ptr [rsi+2*rbx] 4C63E0 movsxd r12, eax 6642891C67 mov word ptr [rdi+2*r12], bx FFC8 dec eax 85C0 test eax, eax 7DEA jge SHORT G_M39841_IG14 ;; bbWeight=32 PerfScore 160.00 G_M39841_IG15: ;; offset=0176H 33DB xor ebx, ebx 4585F6 test r14d, r14d 0F8C3B010000 jl G_M39841_IG30 448BE3 mov r12d, ebx 8BDA mov ebx, edx 458D6E01 lea r13d, [r14+1] 660F1F440000 align ;; bbWeight=4 PerfScore 11.00 G_M39841_IG16: ;; offset=0190H 438D043C lea eax, [r12+r15] 99 cdq 41F7FD idiv edx:eax, r13d 4863C2 movsxd rax, edx 480FBF0447 movsx rax, word ptr [rdi+2*rax] 4963D4 movsxd rdx, r12d 66890456 mov word ptr [rsi+2*rdx], ax 41FFC4 inc r12d 453BE6 cmp r12d, r14d 7EE1 jle SHORT G_M39841_IG16 ;; bbWeight=32 PerfScore 1040.00 G_M39841_IG17: ;; offset=01AFH 41FFCE dec r14d 4585F6 test r14d, r14d 0F8F43FFFFFF jg G_M39841_IG12 ;; bbWeight=8 PerfScore 12.00 G_M39841_IG18: ;; offset=01BBH 480FBF06 movsx rax, word ptr [rsi] 85C0 test eax, eax 0F84CF000000 je G_M39841_IG28 BA01000000 mov edx, 1 4C63F0 movsxd r14, eax 6642833C7600 cmp word ptr [rsi+2*r14], 0 0F84AE000000 je G_M39841_IG27 ;; bbWeight=2 PerfScore 13.50 G_M39841_IG19: ;; offset=01DBH 8BD9 mov ebx, ecx C1FB1F sar ebx, 31 83E303 and ebx, 3 03D9 add ebx, ecx C1FB02 sar ebx, 2 4533F6 xor r14d, r14d 85DB test ebx, ebx 7E17 jle SHORT G_M39841_IG21 90 align ;; bbWeight=1 PerfScore 6.50 G_M39841_IG20: ;; offset=01F0H 4D63FE movsxd r15, r14d 4E8B3CFE mov r15, qword ptr [rsi+8*r15] 4D63E6 movsxd r12, r14d 4E893CE7 mov qword ptr [rdi+8*r12], r15 41FFC6 inc r14d 443BF3 cmp r14d, ebx 7CEA jl SHORT G_M39841_IG20 ;; bbWeight=4 PerfScore 20.00 G_M39841_IG21: ;; offset=0206H 448BF3 mov r14d, ebx 41C1E602 shl r14d, 2 443BF1 cmp r14d, ecx 7D26 jge SHORT G_M39841_IG23 0F1F80000000000F1F8000000000 align ;; bbWeight=0.50 PerfScore 1.88 G_M39841_IG22: ;; offset=0220H 4963DE movsxd rbx, r14d 480FBF1C5E movsx rbx, word ptr [rsi+2*rbx] 4D63FE movsxd r15, r14d 6642891C7F mov word ptr [rdi+2*r15], bx 41FFC6 inc r14d 443BF1 cmp r14d, ecx 7CE8 jl SHORT G_M39841_IG22 ;; bbWeight=4 PerfScore 20.00 G_M39841_IG23: ;; offset=0238H FFC2 inc edx 83F802 cmp eax, 2 7E2E jle SHORT G_M39841_IG26 ;; bbWeight=8 PerfScore 12.00 G_M39841_IG24: ;; offset=023FH 488D5F02 lea rbx, [rdi+2] 4C63F0 movsxd r14, eax 4E8D7477FE lea r14, [rdi+2*r14-2] 0F1F440000 align ;; bbWeight=4 PerfScore 8.00 G_M39841_IG25: ;; offset=0250H 4C0FBF3B movsx r15, word ptr [rbx] 4D0FBF26 movsx r12, word ptr [r14] 66448923 mov word ptr [rbx], r12w 6645893E mov word ptr [r14], r15w 4883C302 add rbx, 2 4983C6FE add r14, -2 493BDE cmp rbx, r14 72E3 jb SHORT G_M39841_IG25 ;; bbWeight=32 PerfScore 248.00 G_M39841_IG26: ;; offset=026DH 4C63F8 movsxd r15, eax 4E0FBF3C7F movsx r15, word ptr [rdi+2*r15] 4863D8 movsxd rbx, eax 6689045F mov word ptr [rdi+2*rbx], ax 418BC7 mov eax, r15d 4863D8 movsxd rbx, eax 66833C5F00 cmp word ptr [rdi+2*rbx], 0 75AF jne SHORT G_M39841_IG23 ;; bbWeight=8 PerfScore 56.00 G_M39841_IG27: ;; offset=0289H 8BC2 mov eax, edx 4403D0 add r10d, eax 413BC3 cmp eax, r11d 7E03 jle SHORT G_M39841_IG28 448BD8 mov r11d, eax ;; bbWeight=2 PerfScore 4.00 G_M39841_IG28: ;; offset=0296H B801000000 mov eax, 1 4183F801 cmp r8d, 1 0F8E8D010000 jle G_M39841_IG47 ;; bbWeight=2 PerfScore 3.00 G_M39841_IG29: ;; offset=02A5H 480FBF5602 movsx rdx, word ptr [rsi+2] 480FBF1E movsx rbx, word ptr [rsi] 66895E02 mov word ptr [rsi+2], bx 668916 mov word ptr [rsi], dx BB01000000 mov ebx, 1 EB60 jmp SHORT G_M39841_IG34 ;; bbWeight=16 PerfScore 132.00 G_M39841_IG30: ;; offset=02BCH 8BDA mov ebx, edx E9ECFEFFFF jmp G_M39841_IG17 ;; bbWeight=2 PerfScore 4.50 G_M39841_IG31: ;; offset=02C3H 448D7301 lea r14d, [rbx+1] 4863DB movsxd rbx, ebx 4533FF xor r15d, r15d 45893C99 mov dword ptr [r9+4*rbx], r15d 480FBF5E02 movsx rbx, word ptr [rsi+2] 66891E mov word ptr [rsi], bx 41BF01000000 mov r15d, 1 4183FE01 cmp r14d, 1 7E2A jle SHORT G_M39841_IG33 6666660F1F840000000000 align ;; bbWeight=16 PerfScore 108.00 G_M39841_IG32: ;; offset=02F0H 458D6701 lea r12d, [r15+1] 4D63FF movsxd r15, r15d 4E8D3C7E lea r15, [rsi+2*r15] 4D63EC movsxd r13, r12d 4E0FBF2C6E movsx r13, word ptr [rsi+2*r13] 6645892F mov word ptr [r15], r13w 453BE6 cmp r12d, r14d 458BFC mov r15d, r12d 7CE1 jl SHORT G_M39841_IG32 ;; bbWeight=128 PerfScore 768.00 G_M39841_IG33: ;; offset=030FH 4D63FE movsxd r15, r14d 664289147E mov word ptr [rsi+2*r15], dx 8BD3 mov edx, ebx 418BDE mov ebx, r14d ;; bbWeight=16 PerfScore 28.00 G_M39841_IG34: ;; offset=031CH 4C63F3 movsxd r14, ebx 4F8D34B1 lea r14, [r9+4*r14] 458B3E mov r15d, dword ptr [r14] 41FFC7 inc r15d 45893E mov dword ptr [r14], r15d 443BFB cmp r15d, ebx 7F92 jg SHORT G_M39841_IG31 ;; bbWeight=64 PerfScore 336.00 G_M39841_IG35: ;; offset=0331H 66833E00 cmp word ptr [rsi], 0 0F84EC000000 je G_M39841_IG46 ;; bbWeight=16 PerfScore 48.00 G_M39841_IG36: ;; offset=033BH BA01000000 mov edx, 1 480FBF1E movsx rbx, word ptr [rsi] 4C63F3 movsxd r14, ebx 6642833C7600 cmp word ptr [rsi+2*r14], 0 0F84B8000000 je G_M39841_IG45 ;; bbWeight=8 PerfScore 44.00 G_M39841_IG37: ;; offset=0353H 448BF1 mov r14d, ecx 41C1FE1F sar r14d, 31 4183E603 and r14d, 3 4403F1 add r14d, ecx 41C1FE02 sar r14d, 2 4533FF xor r15d, r15d 4585F6 test r14d, r14d 7E19 jle SHORT G_M39841_IG39 0F1F00 align ;; bbWeight=4 PerfScore 26.00 G_M39841_IG38: ;; offset=0370H 4D63E7 movsxd r12, r15d 4E8B24E6 mov r12, qword ptr [rsi+8*r12] 4D63EF movsxd r13, r15d 4E8924EF mov qword ptr [rdi+8*r13], r12 41FFC7 inc r15d 453BFE cmp r15d, r14d 7CEA jl SHORT G_M39841_IG38 ;; bbWeight=16 PerfScore 80.00 G_M39841_IG39: ;; offset=0386H 458BFE mov r15d, r14d 41C1E702 shl r15d, 2 443BF9 cmp r15d, ecx 7D26 jge SHORT G_M39841_IG41 0F1F80000000000F1F8000000000 align ;; bbWeight=2 PerfScore 7.50 G_M39841_IG40: ;; offset=03A0H 4D63F7 movsxd r14, r15d 4E0FBF3476 movsx r14, word ptr [rsi+2*r14] 4D63E7 movsxd r12, r15d 6646893467 mov word ptr [rdi+2*r12], r14w 41FFC7 inc r15d 443BF9 cmp r15d, ecx 7CE8 jl SHORT G_M39841_IG40 ;; bbWeight=16 PerfScore 80.00 G_M39841_IG41: ;; offset=03B8H FFC2 inc edx 83FB02 cmp ebx, 2 7E2E jle SHORT G_M39841_IG44 ;; bbWeight=32 PerfScore 48.00 G_M39841_IG42: ;; offset=03BFH 4C8D7702 lea r14, [rdi+2] 4C63FB movsxd r15, ebx 4E8D7C7FFE lea r15, [rdi+2*r15-2] 0F1F440000 align ;; bbWeight=16 PerfScore 32.00 G_M39841_IG43: ;; offset=03D0H 4D0FBF26 movsx r12, word ptr [r14] 4D0FBF2F movsx r13, word ptr [r15] 6645892E mov word ptr [r14], r13w 66458927 mov word ptr [r15], r12w 4983C602 add r14, 2 4983C7FE add r15, -2 4D3BF7 cmp r14, r15 72E3 jb SHORT G_M39841_IG43 ;; bbWeight=128 PerfScore 992.00 G_M39841_IG44: ;; offset=03EDH 4C63E3 movsxd r12, ebx 4E0FBF2467 movsx r12, word ptr [rdi+2*r12] 4C63F3 movsxd r14, ebx 6642891C77 mov word ptr [rdi+2*r14], bx 418BDC mov ebx, r12d 4C63F3 movsxd r14, ebx 6642833C7700 cmp word ptr [rdi+2*r14], 0 75AD jne SHORT G_M39841_IG41 ;; bbWeight=32 PerfScore 224.00 G_M39841_IG45: ;; offset=040BH 8BD8 mov ebx, eax 83E301 and ebx, 1 03DB add ebx, ebx F7DB neg ebx FFC3 inc ebx 0FAFDA imul ebx, edx 4103DA add ebx, r10d 448BD3 mov r10d, ebx 413BD3 cmp edx, r11d 7E03 jle SHORT G_M39841_IG46 448BDA mov r11d, edx ;; bbWeight=8 PerfScore 42.00 G_M39841_IG46: ;; offset=0427H FFC0 inc eax 413BC0 cmp eax, r8d 0F8C73FEFFFF jl G_M39841_IG29 ;; bbWeight=16 PerfScore 24.00 G_M39841_IG47: ;; offset=0432H 48B8F026BE64FA7F0000 mov rax, 0x7FFA64BE26F0 BAFFFFFFFF mov edx, -1 8BDA mov ebx, edx F0 lock 0FC118 xadd dword ptr [rax], ebx FFCB dec ebx 85DB test ebx, ebx 0F8D79FCFFFF jge G_M39841_IG09 ;; bbWeight=8 PerfScore 162.00 G_M39841_IG48: ;; offset=0451H 48B8B073B4A859020000 mov rax, 0x259A8B473B0 488B00 mov rax, gword ptr [rax] 8BD3 mov edx, ebx F7DA neg edx FFCA dec edx 3B5008 cmp edx, dword ptr [rax+8] 734B jae SHORT G_M39841_IG52 4C63CA movsxd r9, edx 4689548810 mov dword ptr [rax+4*r9+16], r10d 48B8B873B4A859020000 mov rax, 0x259A8B473B8 488B00 mov rax, gword ptr [rax] 3B5008 cmp edx, dword ptr [rax+8] 7331 jae SHORT G_M39841_IG52 46895C8810 mov dword ptr [rax+4*r9+16], r11d 48B978563412F0DEBC9A mov rcx, 0x9ABCDEF012345678 48394D00 cmp qword ptr [rbp], rcx 7405 je SHORT G_M39841_IG49 E8D3CF075F call CORINFO_HELP_FAIL_FAST ;; bbWeight=1 PerfScore 16.75 G_M39841_IG49: ;; offset=049DH 90 nop ;; bbWeight=1 PerfScore 0.25 G_M39841_IG50: ;; offset=049EH 488D6508 lea rsp, [rbp+08H] 5B pop rbx 5E pop rsi 5F pop rdi 415C pop r12 415D pop r13 415E pop r14 415F pop r15 5D pop rbp C3 ret ;; bbWeight=1 PerfScore 5.50 G_M39841_IG51: ;; offset=04AFH E8FC06085F call CORINFO_HELP_OVERFLOW ;; bbWeight=0 PerfScore 0.00 G_M39841_IG52: ;; offset=04B4H E8C7F2075F call CORINFO_HELP_RNGCHKFAIL CC int3 ;; bbWeight=0 PerfScore 0.00 ; Total bytes of code 1210, prolog size 44, PerfScore 5445.63, instruction count 344, allocated bytes for code 1210 (MethodHash=d555645e) for method MiniBench.FannkuchRedux_9:Run(int,int) ; ============================================================
Find difference