Samples: 5K of event 'cpu-clock', 999 Hz, Event count (approx.): 5076076071, [percent: local period] instance int32 [benchapp] Benchmarks::Medium()[OptimizedTier1]() /tmp/jitted-41637-26792.so 7.63 push rbp mov rbp,rsp mov rax,QWORD PTR [rdi+0x8] test rax,rax ↓ je 110 lea rcx,[rax+0x10] mov eax,DWORD PTR [rax+0x8] 18: movabs rdx,0x726bcfc02d18 mov rdx,QWORD PTR [rdx] mov rdi,rcx 8.08 mov esi,eax add rdx,0x8 mov r8,rdi cmp esi,0x8 ↓ jl 119 cmp esi,0x10 ↓ jle 18a vmovups ymm0,YMMWORD PTR [rdx] cmp esi,0x20 ↓ jle 96 lea edx,[rsi-0x20] mov eax,edx 7.06 add rax,rdi vbroadcastss ymm1,DWORD PTR [rip+0x1b7] # 294 vbroadcastsd ymm2,QWORD PTR [rip+0x1b2] # 298 66: vmovups ymm3,YMMWORD PTR [r8] vpshufb ymm4,ymm0,ymm3 vpsrld ymm3,ymm3,0x4 vpand ymm3,ymm3,ymm1 5.35 vpshufb ymm3,ymm2,ymm3 0.09 vpand ymm3,ymm3,ymm4 6.83 vptest ymm3,ymm3 2.91 ↓ jne 158 6.62 add r8,0x20 cmp r8,rax ↑ jb 66 96: add esi,0xfffffff0 mov eax,esi 4.10 add rax,rdi cmp r8,rax cmova r8,rax vmovdqu xmm1,XMMWORD PTR [r8] 1.05 vinserti128 ymm2,ymm1,XMMWORD PTR [rax],0x1 vpshufb ymm0,ymm0,ymm2 1.32 vpsrld ymm1,ymm2,0x4 vbroadcastss ymm2,DWORD PTR [rip+0x151] # 294 vpand ymm1,ymm1,ymm2 3.78 vbroadcastsd ymm2,QWORD PTR [rip+0x150] # 2a0 vpshufb ymm1,ymm2,ymm1 0.02 vpand ymm0,ymm1,ymm0 1.25 vptest ymm0,ymm0 2.80 ↓ je 183 18.64 vptestmb k1,ymm0,ymm0 kmovd ecx,k1 1.05 tzcnt ecx,ecx 1.59 mov edx,0xffffffff 6.51 cmp ecx,0x20 cmove ecx,edx 6.58 mov edx,ecx 6.42 cmp edx,0x10 0.07 ↓ jge 17b 104: sub r8,rdi lea eax,[r8+rdx*1] 10b: vzeroupper 0.07 pop rbp 0.18 ← ret 110: xor ecx,ecx xor eax,eax ↑ jmp 18 119: mov eax,eax add rax,rdi cmp rdi,rax ↓ je 183 123: movzx ecx,BYTE PTR [r8] lea rsi,[rdx+0x20] mov r9d,ecx sar r9d,0x5 mov r10d,0x1 shlx ecx,r10d,ecx cmp BYTE PTR [rsi],sil test DWORD PTR [rsi+r9*4],ecx ↓ jne 150 inc r8 cmp r8,rax ↑ jne 123 ↓ jmp 183 150: mov rax,r8 sub rax,rdi ↑ jmp 10b 158: vptestmb k1,ymm3,ymm3 kmovd esi,k1 xor eax,eax tzcnt eax,esi mov ecx,0xffffffff cmp eax,0x20 cmove eax,ecx sub r8,rdi add eax,r8d ↑ jmp 10b 17b: mov r8,rax lea edx,[rcx-0x10] ↑ jmp 104 183: mov eax,0xffffffff ↑ jmp 10b 18a: vmovups xmm0,XMMWORD PTR [rdx] add eax,0xfffffff8 add rax,rcx cmp rcx,rax mov rdi,rcx cmova rdi,rax vmovq xmm1,QWORD PTR [rdi] vpinsrq xmm1,xmm1,QWORD PTR [rax],0x1 vpsrld xmm2,xmm1,0x4 vpandd xmm2,xmm2,DWORD BCST [rip+0x5d] # 294 vpshufb xmm0,xmm0,xmm1 vmovsd xmm1,QWORD PTR [rip+0x64] vpshufb xmm1,xmm1,xmm2 vpand xmm0,xmm1,xmm0 vptest xmm0,xmm0 ↑ je 183 vptestmb k1,xmm0,xmm0 kmovw edx,k1 tzcnt edx,edx mov esi,0xffffffff cmp edx,0x20 cmove edx,esi mov esi,edx cmp esi,0x8 ↓ jl 1fa mov rdi,rax lea esi,[rdx-0x8] 1fa: sub rdi,rcx lea eax,[rdi+rsi*1] ↑ jmp 10b Samples: 5K of event 'cpu-clock', 999 Hz, Event count (approx.): 5076076071, [percent: local period] stub<18830> Allocate() /tmp/jitted-41637-24621.so 100.00 → jmp QWORD PTR [rip+0x3ffa] # 4080 Allocate+0x4000> mov r10,QWORD PTR [rip+0x3ffb] → jmp QWORD PTR [rip+0x3ffd] # 4090 Allocate+0x4010> nop data16 cs .byte 0xf (bad) Samples: 5K of event 'cpu-clock', 999 Hz, Event count (approx.): 5076076071, [percent: local period] instance void [benchapp-Job-RTQYDZ-1Emitted] BenchmarkDotNet.Autogenerated.Runnable_0::WorkloadActionUnroll(int64)[Optimized]() /tmp/jitted-41637-25580.so Percent push rbp push r15 push r14 push r13 push rbx lea rbp,[rsp+0x20] mov rbx,rdi mov r15,rsi xor r14d,r14d cmp r14,r15 ↓ jge 15b 1f: mov r13,QWORD PTR [rbx+0x40] 5.82 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 7.53 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] 0.34 mov rax,QWORD PTR [rbx+0x38] 7.19 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 5.82 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 7.53 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 7.53 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 7.19 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 5.14 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 5.48 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] 0.34 mov rax,QWORD PTR [rbx+0x38] 7.19 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] 0.34 mov rax,QWORD PTR [rbx+0x38] 4.79 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 4.11 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 5.14 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 4.79 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 5.82 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 7.53 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] mov DWORD PTR [r13+0x38],eax inc r14 0.34 cmp r14,r15 ↑ jl 1f 15b: pop rbx pop r13 pop r14 pop r15 pop rbp ← ret