Samples: 4K of event 'cpu-clock', 999 Hz, Event count (approx.): 5003002998, [percent: local period] bool [System.Private.CoreLib] System.Globalization.Ordinal::EqualsIgnoreCase_Vector(char&,char&,int32)[OptimizedTier1]() /tmp/jitted-42996-26612.so Percent push rbp mov rbp,rsp movsxd rcx,edx 7.66 lea rax,[rcx-0x20] mov rdx,rax xor r8d,r8d vbroadcastss zmm0,DWORD PTR [rip+0x1fd] # 298 vbroadcastss zmm1,DWORD PTR [rip+0x1f7] # 29c vbroadcastss zmm2,DWORD PTR [rip+0x1f1] # 2a0 vbroadcastss zmm3,DWORD PTR [rip+0x1eb] # 2a4 0.03 39: vmovups zmm4,ZMMWORD PTR [rdi+r8*2] 8.22 vmovups zmm5,ZMMWORD PTR [rsi+r8*2] vmovaps zmm6,zmm4 vpternlogd zmm6,zmm3,zmm5,0xc8 vmovaps zmm7,zmm6 vptest ymm7,ymm7 ↓ jne 185 0.24 vextractf32x8 ymm6,zmm6,0x1 8.84 vptest ymm6,ymm6 0.03 sete r9b 0.35 movzx r9d,r9b 0.16 test r9d,r9d 0.16 ↓ je 185 vpcmpnequw k1,zmm4,zmm5 vpmovm2w zmm6,k1 vptestmw k1,zmm6,zmm6 7.60 kortestd k1,k1 0.03 ↓ je d7 4.80 vpord zmm4,zmm4,zmm0 vpord zmm5,zmm5,zmm0 vpsubw zmm7,zmm4,zmm1 vpandd zmm6,zmm7,zmm6 vpcmpnleuw k1,zmm6,zmm2 5.93 kortestd k1,k1 0.05 ↓ jne 1d7 5.63 vpcmpeqw k1,zmm4,zmm5 kortestd k1,k1 ↓ jae 1d7 d7: add r8,0x20 5.12 cmp r8,rdx ↑ jbe 39 cmp r8,rcx ↓ je 17b mov r8,rax 3.02 vmovups zmm4,ZMMWORD PTR [rdi+r8*2] vmovups zmm5,ZMMWORD PTR [rsi+r8*2] vmovaps zmm6,zmm4 vpternlogd zmm6,zmm3,zmm5,0xc8 vmovaps zmm7,zmm6 5.23 vptest ymm7,ymm7 ↓ jne 185 3.07 vextractf32x8 ymm6,zmm6,0x1 vptest ymm6,ymm6 0.05 sete al 0.62 movzx eax,al 5.47 test eax,eax 1.19 ↓ je 185 vpcmpnequw k1,zmm4,zmm5 vpmovm2w zmm3,k1 3.13 vptestmw k1,zmm3,zmm3 0.03 kortestd k1,k1 0.81 ↓ je 17b 7.52 vpord zmm4,zmm4,zmm0 2.53 vpord zmm5,zmm5,zmm0 0.46 vpsubw zmm0,zmm4,zmm1 vpandd zmm0,zmm0,zmm3 2.13 vpcmpnleuw k1,zmm0,zmm2 kortestd k1,k1 0.05 ↓ jne 1d7 5.85 vpcmpeqw k1,zmm4,zmm5 1.89 kortestd k1,k1 0.57 ↓ jae 1d7 1.51 17b: mov eax,0x1 vzeroupper pop rbp ← ret 185: vpandd zmm0,zmm3,zmm4 vmovaps zmm1,zmm0 vptest ymm1,ymm1 ↓ jne 1ae vextractf32x8 ymm0,zmm0,0x1 vptest ymm0,ymm0 sete al movzx eax,al test eax,eax ↓ jne 1d7 1ae: vpandd zmm0,zmm3,zmm5 vmovaps zmm1,zmm0 vptest ymm1,ymm1 ↓ jne 1de vextractf32x8 ymm0,zmm0,0x1 vptest ymm0,ymm0 sete al movzx eax,al test eax,eax ↓ je 1de 1d7: xor eax,eax vzeroupper pop rbp ← ret 1de: lea rdx,[r8+r8*1] add rdi,rdx add rdx,rsi sub ecx,r8d mov esi,ecx movabs rax,0x7a2eed275080 → call QWORD PTR [rax] test eax,eax sete al movzx eax,al vzeroupper pop rbp ← ret Samples: 4K of event 'cpu-clock', 999 Hz, Event count (approx.): 5003002998, [percent: local period] instance bool [benchapp] Benchmarks::StartsWith4()[OptimizedTier1]() /tmp/jitted-42996-26605.so 54.36 push rbp mov rbp,rsp mov rdi,QWORD PTR [rdi+0x8] cmp BYTE PTR [rdi],dil movabs rsi,0x7a2eea01cce8 cmp rdi,rsi ↓ je 45 cmp DWORD PTR [rdi+0x8],0x21 ↓ jge 24 xor eax,eax 22: pop rbp ← ret 24: add rdi,0xc 45.64 movabs rsi,0x7a2eea01ccf4 mov edx,0x21 movabs rax,0x7a2eed274f60 pop rbp rex.W jmp QWORD PTR [rax] 45: mov eax,0x1 ↑ jmp 22 Samples: 4K of event 'cpu-clock', 999 Hz, Event count (approx.): 5003002998, [percent: local period] stub<18793> Allocate() /tmp/jitted-42996-24578.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: 4K of event 'cpu-clock', 999 Hz, Event count (approx.): 5003002998, [percent: local period] instance void [benchapp-Job-RTQYDZ-1Emitted] BenchmarkDotNet.Autogenerated.Runnable_0::WorkloadActionUnroll(int64)[Optimized]() /tmp/jitted-42996-25447.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] 0.63 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] 4.75 mov BYTE PTR [r13+0x4c],al 2.53 mov r13,QWORD PTR [rbx+0x40] 0.32 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 0.95 → call QWORD PTR [rax+0x18] 2.85 mov BYTE PTR [r13+0x4c],al 1.58 mov r13,QWORD PTR [rbx+0x40] 0.32 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.58 → call QWORD PTR [rax+0x18] 1.27 mov BYTE PTR [r13+0x4c],al 1.90 mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.27 → call QWORD PTR [rax+0x18] 4.11 mov BYTE PTR [r13+0x4c],al 1.90 mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.27 → call QWORD PTR [rax+0x18] 2.85 mov BYTE PTR [r13+0x4c],al 1.90 mov r13,QWORD PTR [rbx+0x40] 0.32 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.58 → call QWORD PTR [rax+0x18] 3.80 mov BYTE PTR [r13+0x4c],al 1.27 mov r13,QWORD PTR [rbx+0x40] 0.32 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.27 → call QWORD PTR [rax+0x18] 2.85 mov BYTE PTR [r13+0x4c],al 1.27 mov r13,QWORD PTR [rbx+0x40] 0.63 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.90 → call QWORD PTR [rax+0x18] 3.48 mov BYTE PTR [r13+0x4c],al 0.32 mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.27 → call QWORD PTR [rax+0x18] 1.58 mov BYTE PTR [r13+0x4c],al 1.27 mov r13,QWORD PTR [rbx+0x40] 0.95 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.27 → call QWORD PTR [rax+0x18] 2.53 mov BYTE PTR [r13+0x4c],al 1.58 mov r13,QWORD PTR [rbx+0x40] 0.63 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.58 → call QWORD PTR [rax+0x18] 1.58 mov BYTE PTR [r13+0x4c],al 1.58 mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 2.53 → call QWORD PTR [rax+0x18] 3.48 mov BYTE PTR [r13+0x4c],al 0.95 mov r13,QWORD PTR [rbx+0x40] 1.27 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.90 → call QWORD PTR [rax+0x18] 1.90 mov BYTE PTR [r13+0x4c],al 1.27 mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.90 → call QWORD PTR [rax+0x18] 2.85 mov BYTE PTR [r13+0x4c],al 1.58 mov r13,QWORD PTR [rbx+0x40] 0.63 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 2.85 → call QWORD PTR [rax+0x18] 2.22 mov BYTE PTR [r13+0x4c],al 1.58 mov r13,QWORD PTR [rbx+0x40] 0.63 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 0.95 → call QWORD PTR [rax+0x18] 2.22 mov BYTE PTR [r13+0x4c],al 2.22 inc r14 0.32 cmp r14,r15 ↑ jl 1f 15b: pop rbx pop r13 pop r14 pop r15 pop rbp ← ret