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-43415-26629.so Percent push rbp mov rbp,rsp movsxd rcx,edx 7.54 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 39: vmovups zmm4,ZMMWORD PTR [rdi+r8*2] 8.60 vmovups zmm5,ZMMWORD PTR [rsi+r8*2] vmovaps zmm6,zmm4 vpternlogd zmm6,zmm3,zmm5,0xc8 vmovaps zmm7,zmm6 vptest ymm7,ymm7 0.08 ↓ jne 185 0.24 vextractf32x8 ymm6,zmm6,0x1 7.35 vptest ymm6,ymm6 sete r9b 0.37 movzx r9d,r9b 0.24 test r9d,r9d 0.24 ↓ je 185 vpcmpnequw k1,zmm4,zmm5 vpmovm2w zmm6,k1 vptestmw k1,zmm6,zmm6 7.83 kortestd k1,k1 0.08 ↓ je d7 4.14 vpord zmm4,zmm4,zmm0 vpord zmm5,zmm5,zmm0 0.05 vpsubw zmm7,zmm4,zmm1 vpandd zmm6,zmm7,zmm6 vpcmpnleuw k1,zmm6,zmm2 6.19 kortestd k1,k1 0.19 ↓ jne 1d7 6.93 vpcmpeqw k1,zmm4,zmm5 kortestd k1,k1 0.08 ↓ jae 1d7 d7: add r8,0x20 4.73 cmp r8,rdx ↑ jbe 39 cmp r8,rcx ↓ je 17b mov r8,rax 3.45 vmovups zmm4,ZMMWORD PTR [rdi+r8*2] vmovups zmm5,ZMMWORD PTR [rsi+r8*2] 0.05 vmovaps zmm6,zmm4 vpternlogd zmm6,zmm3,zmm5,0xc8 vmovaps zmm7,zmm6 4.49 vptest ymm7,ymm7 ↓ jne 185 3.16 vextractf32x8 ymm6,zmm6,0x1 vptest ymm6,ymm6 0.03 sete al 0.58 movzx eax,al 5.52 test eax,eax 0.90 ↓ je 185 vpcmpnequw k1,zmm4,zmm5 vpmovm2w zmm3,k1 2.97 vptestmw k1,zmm3,zmm3 0.03 kortestd k1,k1 0.66 ↓ je 17b 7.49 vpord zmm4,zmm4,zmm0 2.44 vpord zmm5,zmm5,zmm0 0.37 vpsubw zmm0,zmm4,zmm1 vpandd zmm0,zmm0,zmm3 1.99 vpcmpnleuw k1,zmm0,zmm2 kortestd k1,k1 0.03 ↓ jne 1d7 6.24 vpcmpeqw k1,zmm4,zmm5 2.04 kortestd k1,k1 0.48 ↓ jae 1d7 2.18 17b: mov eax,0x1 vzeroupper 0.03 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,0x74aa15a75038 → 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-43415-26623.so 49.04 push rbp mov rbp,rsp mov rdi,QWORD PTR [rdi+0x8] cmp BYTE PTR [rdi],dil 0.16 movabs rsi,0x74aa1281cce8 cmp rdi,rsi ↓ je 45 cmp DWORD PTR [rdi+0x8],0x21 ↓ jge 24 xor eax,eax 22: pop rbp ← ret 24: add rdi,0xc 50.80 movabs rsi,0x74aa1281ccf4 mov edx,0x21 movabs rax,0x74aa15a74f18 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<18805> Allocate() /tmp/jitted-43415-24596.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-43415-25465.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] 1.00 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] → call QWORD PTR [rax+0x18] 2.33 mov BYTE PTR [r13+0x4c],al 1.66 mov r13,QWORD PTR [rbx+0x40] 0.66 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.66 → call QWORD PTR [rax+0x18] 2.99 mov BYTE PTR [r13+0x4c],al 0.66 mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 0.66 → call QWORD PTR [rax+0x18] 1.66 mov BYTE PTR [r13+0x4c],al 2.33 mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 0.33 → call QWORD PTR [rax+0x18] 2.66 mov BYTE PTR [r13+0x4c],al 2.66 mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 2.33 → call QWORD PTR [rax+0x18] 4.32 mov BYTE PTR [r13+0x4c],al 2.66 mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.33 → call QWORD PTR [rax+0x18] 3.99 mov BYTE PTR [r13+0x4c],al 1.33 mov r13,QWORD PTR [rbx+0x40] 0.33 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 0.66 → call QWORD PTR [rax+0x18] 3.99 mov BYTE PTR [r13+0x4c],al 2.66 mov r13,QWORD PTR [rbx+0x40] 0.33 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.66 → call QWORD PTR [rax+0x18] 2.66 mov BYTE PTR [r13+0x4c],al 1.66 mov r13,QWORD PTR [rbx+0x40] 0.66 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.99 → call QWORD PTR [rax+0x18] 3.65 mov BYTE PTR [r13+0x4c],al 0.33 mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.99 → call QWORD PTR [rax+0x18] 2.99 mov BYTE PTR [r13+0x4c],al 1.00 mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.00 → call QWORD PTR [rax+0x18] 3.32 mov BYTE PTR [r13+0x4c],al 1.00 mov r13,QWORD PTR [rbx+0x40] 0.33 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.00 → call QWORD PTR [rax+0x18] 2.99 mov BYTE PTR [r13+0x4c],al 1.66 mov r13,QWORD PTR [rbx+0x40] 0.66 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 0.66 → call QWORD PTR [rax+0x18] 3.65 mov BYTE PTR [r13+0x4c],al 0.66 mov r13,QWORD PTR [rbx+0x40] 0.33 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 1.33 → call QWORD PTR [rax+0x18] 4.65 mov BYTE PTR [r13+0x4c],al 1.66 mov r13,QWORD PTR [rbx+0x40] 1.33 mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 0.66 → call QWORD PTR [rax+0x18] 2.99 mov BYTE PTR [r13+0x4c],al 1.66 mov r13,QWORD PTR [rbx+0x40] mov rax,QWORD PTR [rbx+0x38] mov rdi,QWORD PTR [rax+0x8] 0.33 → call QWORD PTR [rax+0x18] 3.32 mov BYTE PTR [r13+0x4c],al 1.00 inc r14 cmp r14,r15 ↑ jl 1f 15b: pop rbx pop r13 pop r14 pop r15 pop rbp ← ret