Samples: 5K of event 'cpu-clock', 999 Hz, Event count (approx.): 5081081076, [percent: local period] instance int32 [benchapp] Benchmarks::Medium()[OptimizedTier1]() /tmp/jitted-41706-26785.so 7.16 push rbp mov rbp,rsp mov rax,QWORD PTR [rdi+0x8] test rax,rax ↓ je 107 lea rcx,[rax+0x10] mov eax,DWORD PTR [rax+0x8] 18: movabs rdx,0x7dee87c02d18 mov rdx,QWORD PTR [rdx] mov rdi,rcx 7.12 mov esi,eax add rdx,0x8 mov r8,rdi cmp esi,0x8 ↓ jl 110 cmp esi,0x10 ↓ jle 17c vmovups ymm0,YMMWORD PTR [rdx] 0.02 cmp esi,0x20 0.02 ↓ jle 96 lea edx,[rsi-0x20] mov eax,edx 7.60 add rax,rdi vbroadcastss ymm1,DWORD PTR [rip+0x193] # 270 vbroadcastsd ymm2,QWORD PTR [rip+0x192] # 278 66: vmovups ymm3,YMMWORD PTR [r8] 0.05 vpshufb ymm4,ymm0,ymm3 0.02 vpsrld ymm3,ymm3,0x4 0.05 vpand ymm3,ymm3,ymm1 3.35 vpshufb ymm3,ymm2,ymm3 0.09 vpand ymm3,ymm3,ymm4 7.07 vptest ymm3,ymm3 5.86 ↓ jne 14f 14.67 add r8,0x20 cmp r8,rax ↑ jb 66 96: add esi,0xfffffff0 mov eax,esi 1.70 add rax,rdi cmp r8,rax cmova r8,rax vmovdqu xmm2,XMMWORD PTR [r8] 1.06 vinserti128 ymm1,ymm2,XMMWORD PTR [rax],0x1 0.02 vpshufb ymm0,ymm0,ymm1 3.21 vpsrld ymm1,ymm1,0x4 vbroadcastss ymm2,DWORD PTR [rip+0x12d] # 270 vpand ymm1,ymm1,ymm2 3.03 vbroadcastsd ymm2,QWORD PTR [rip+0x130] # 280 vpshufb ymm1,ymm2,ymm1 vpand ymm0,ymm1,ymm0 1.26 vptest ymm0,ymm0 5.51 ↓ je 175 20.83 vxorps ymm1,ymm1,ymm1 vpcmpeqb ymm0,ymm1,ymm0 0.41 vpmovmskb ecx,ymm0 not ecx 0.94 tzcnt ecx,ecx 8.91 cmp ecx,0x10 ↓ jge 16d fb: sub r8,rdi lea eax,[r8+rcx*1] 102: vzeroupper 0.02 pop rbp ← ret 107: xor ecx,ecx xor eax,eax ↑ jmp 18 110: mov eax,eax add rax,rdi cmp rdi,rax ↓ je 175 11a: 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 147 inc r8 cmp r8,rax ↑ jne 11a ↓ jmp 175 147: mov rax,r8 sub rax,rdi ↑ jmp 102 14f: vxorps ymm0,ymm0,ymm0 vpcmpeqb ymm1,ymm0,ymm3 vpmovmskb esi,ymm1 mov ecx,esi not ecx xor eax,eax tzcnt eax,ecx sub r8,rdi add eax,r8d ↑ jmp 102 16d: mov r8,rax add ecx,0xfffffff0 ↑ jmp fb 175: mov eax,0xffffffff ↑ jmp 102 17c: 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+0x47] # 270 vpshufb xmm0,xmm0,xmm1 vmovsd xmm1,QWORD PTR [rip+0x52] vpshufb xmm1,xmm1,xmm2 vpand xmm0,xmm1,xmm0 vptest xmm0,xmm0 ↑ je 175 vxorps xmm1,xmm1,xmm1 vpcmpeqb xmm0,xmm1,xmm0 vpmovmskb edx,xmm0 not edx tzcnt edx,edx cmp edx,0x8 ↓ jl 1e3 mov rdi,rax add edx,0xfffffff8 1e3: sub rdi,rcx lea eax,[rdi+rdx*1] ↑ jmp 102 Samples: 5K of event 'cpu-clock', 999 Hz, Event count (approx.): 5081081076, [percent: local period] instance void [benchapp-Job-RTQYDZ-1Emitted] BenchmarkDotNet.Autogenerated.Runnable_0::WorkloadActionUnroll(int64)[Optimized]() /tmp/jitted-41706-25577.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] 7.06 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] 0.31 mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 3.07 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] 0.92 mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 3.37 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] 0.31 mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 7.36 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] 0.31 mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 6.44 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.06 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.36 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.36 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] 0.31 mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 7.06 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.60 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.60 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] 0.31 mov DWORD PTR [r13+0x38],eax mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] 7.98 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.60 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.83 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.67 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.83 mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] 0.31 mov DWORD PTR [r13+0x38],eax inc r14 cmp r14,r15 ↑ jl 1f 15b: pop rbx pop r13 pop r14 pop r15 pop rbp ← ret Samples: 5K of event 'cpu-clock', 999 Hz, Event count (approx.): 5081081076, [percent: local period] stub<18828> Allocate() /tmp/jitted-41706-24618.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)