Sorted summary for file /box/solution-bin ---------------------------------------------- 61.53 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/iter/traits/accum.rs:53 23.89 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/slice/iter/macros.rs:279 13.18 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/slice/iter/macros.rs:284 1.31 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/iter/adapters/filter.rs:138 Samples | Source code & Disassembly of /box/solution-bin for cpu_core/cycles/P (1008 samples, percent: local period) -------------------------------------------------------------------------------------------------------------------------- : : : : 3 Disassembly of section .text: : : 5 0000000000014a60 : : 6 use std::io::Read; : : 8 fn main() { 0 : 14a60: push rbp 0 : 14a61: mov rbp,rsp 0 : 14a64: push rbx 0 : 14a65: sub rsp,0x38 0 : 14a69: mov QWORD PTR [rbp-0x20],0x0 0 : 14a71: mov QWORD PTR [rbp-0x18],0x1 0 : 14a79: mov QWORD PTR [rbp-0x10],0x0 : 16 let mut input = Vec::new(); : 17 std::io::stdin().read_to_end(&mut input).unwrap(); 0 : 14a81: call QWORD PTR [rip+0x414e1] # 55f68 <_DYNAMIC+0x238> 0 : 14a87: mov QWORD PTR [rbp-0x28],rax 0 : 14a8b: lea rbx,[rbp-0x28] 0 : 14a8f: lea rsi,[rbp-0x20] 0 : 14a93: mov rdi,rbx 0 : 14a96: call QWORD PTR [rip+0x414d4] # 55f70 <_DYNAMIC+0x240> 0 : 14a9c: cmp rax,0x1 0 : 14aa0: je 14c09 0 : 14aa6: mov rax,QWORD PTR [rbp-0x10] 0 : 14aaa: test rax,rax 0 : 14aad: je 14ac2 0 : 14aaf: mov rcx,QWORD PTR [rbp-0x18] 0 : 14ab3: cmp rax,0x4 0 : 14ab7: jae 14ac9 0 : 14ab9: xor edx,edx 0 : 14abb: xor esi,esi 0 : 14abd: jmp 14c73 0 : 14ac2: xor esi,esi 0 : 14ac4: jmp 14c88 0 : 14ac9: cmp rax,0x10 0 : 14acd: jae 14ad8 0 : 14acf: xor edx,edx 0 : 14ad1: xor esi,esi 0 : 14ad3: jmp 14ba9 0 : 14ad8: mov rdx,rax 0 : 14adb: and rdx,0xfffffffffffffff0 0 : 14adf: vpxor xmm0,xmm0,xmm0 0 : 14ae3: xor esi,esi 0 : 14ae5: vpbroadcastd xmm1,DWORD PTR [rip+0xffffffffffff3016] # 7b04 0 : 14aee: vpbroadcastq ymm2,QWORD PTR [rip+0xffffffffffff2fa1] # 7a98 0 : 14af7: vpxor xmm3,xmm3,xmm3 0 : 14afb: vpxor xmm4,xmm4,xmm4 0 : 14aff: vpxor xmm5,xmm5,xmm5 0 : 14b03: data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] 102 : 14b10: vmovd xmm6,DWORD PTR [rcx+rsi*1] // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/slice/iter/macros.rs:279 0 : 14b15: vmovd xmm7,DWORD PTR [rcx+rsi*1+0x4] 0 : 14b1b: vmovd xmm8,DWORD PTR [rcx+rsi*1+0x8] 139 : 14b21: vmovd xmm9,DWORD PTR [rcx+rsi*1+0xc] 6 : 14b27: vpcmpeqb xmm6,xmm6,xmm1 // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/iter/adapters/filter.rs:138 0 : 14b2b: vpmovzxbq ymm6,xmm6 7 : 14b30: vpand ymm6,ymm6,ymm2 181 : 14b34: vpaddq ymm0,ymm0,ymm6 // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/iter/traits/accum.rs:53 1 : 14b38: vpcmpeqb xmm6,xmm7,xmm1 0 : 14b3c: vpmovzxbq ymm6,xmm6 0 : 14b41: vpand ymm6,ymm6,ymm2 147 : 14b45: vpaddq ymm3,ymm3,ymm6 0 : 14b49: vpcmpeqb xmm6,xmm8,xmm1 0 : 14b4d: vpmovzxbq ymm6,xmm6 0 : 14b52: vpand ymm6,ymm6,ymm2 163 : 14b56: vpaddq ymm4,ymm4,ymm6 0 : 14b5a: vpcmpeqb xmm6,xmm9,xmm1 0 : 14b5e: vpmovzxbq ymm6,xmm6 0 : 14b63: vpand ymm6,ymm6,ymm2 129 : 14b67: vpaddq ymm5,ymm5,ymm6 0 : 14b6b: add rsi,0x10 0 : 14b6f: cmp rdx,rsi 133 : 14b72: jne 14b10 // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/slice/iter/macros.rs:284 0 : 14b74: vpaddq ymm0,ymm3,ymm0 0 : 14b78: vpaddq ymm0,ymm4,ymm0 0 : 14b7c: vpaddq ymm0,ymm5,ymm0 0 : 14b80: vextracti128 xmm1,ymm0,0x1 0 : 14b86: vpaddq xmm0,xmm0,xmm1 0 : 14b8a: vpshufd xmm1,xmm0,0xee 0 : 14b8f: vpaddq xmm0,xmm0,xmm1 0 : 14b93: vmovq rsi,xmm0 0 : 14b98: cmp rax,rdx 0 : 14b9b: je 14c88 0 : 14ba1: test al,0xc 0 : 14ba3: je 14c73 0 : 14ba9: mov rdi,rdx 0 : 14bac: mov rdx,rax 0 : 14baf: and rdx,0xfffffffffffffffc 0 : 14bb3: vmovq xmm0,rsi 0 : 14bb8: vpbroadcastd xmm1,DWORD PTR [rip+0xffffffffffff2f43] # 7b04 0 : 14bc1: vpbroadcastq ymm2,QWORD PTR [rip+0xffffffffffff2ece] # 7a98 0 : 14bca: nop WORD PTR [rax+rax*1+0x0] 0 : 14bd0: vmovd xmm3,DWORD PTR [rcx+rdi*1] 0 : 14bd5: vpcmpeqb xmm3,xmm3,xmm1 0 : 14bd9: vpmovzxbq ymm3,xmm3 0 : 14bde: vpand ymm3,ymm3,ymm2 0 : 14be2: vpaddq ymm0,ymm0,ymm3 0 : 14be6: add rdi,0x4 0 : 14bea: cmp rdx,rdi 0 : 14bed: jne 14bd0 0 : 14bef: vextracti128 xmm1,ymm0,0x1 0 : 14bf5: vpaddq xmm0,xmm0,xmm1 0 : 14bf9: vpshufd xmm1,xmm0,0xee 0 : 14bfe: vpaddq xmm0,xmm0,xmm1 0 : 14c02: vmovq rsi,xmm0 0 : 14c07: jmp 14c83 0 : 14c09: mov QWORD PTR [rbp-0x38],rdx 0 : 14c0d: lea rdi,[rip+0xffffffffffff2f00] # 7b14 0 : 14c14: lea rcx,[rip+0x3f3ad] # 53fc8 <__frame_dummy_init_array_entry+0x38> 0 : 14c1b: lea r8,[rip+0x3f3c6] # 53fe8 <__frame_dummy_init_array_entry+0x58> 0 : 14c22: lea rdx,[rbp-0x38] 0 : 14c26: mov esi,0x2b 0 : 14c2b: call QWORD PTR [rip+0x41347] # 55f78 <_DYNAMIC+0x248> 0 : 14c31: ud2 0 : 14c33: mov rbx,rax 0 : 14c36: lea rdi,[rbp-0x38] 0 : 14c3a: call 149b0 > : 119 let count = input.iter().filter(|&&byte| byte == 127).count(); : 120 print!("{count}"); 0 : 14c3f: mov rsi,QWORD PTR [rbp-0x20] 0 : 14c43: test rsi,rsi 0 : 14c46: je 14c57 0 : 14c48: mov rdi,QWORD PTR [rbp-0x18] 0 : 14c4c: mov edx,0x1 0 : 14c51: call QWORD PTR [rip+0x41309] # 55f60 <_DYNAMIC+0x230> 0 : 14c57: mov rdi,rbx 0 : 14c5a: call 52f50 <_Unwind_Resume@plt> 0 : 14c5f: call QWORD PTR [rip+0x4131b] # 55f80 <_DYNAMIC+0x250> 0 : 14c65: mov rbx,rax 0 : 14c68: mov rsi,QWORD PTR [rbp-0x20] 0 : 14c6c: test rsi,rsi 0 : 14c6f: jne 14c48 0 : 14c71: jmp 14c57 : 135 let count = input.iter().filter(|&&byte| byte == 127).count(); 0 : 14c73: xor edi,edi 0 : 14c75: cmp BYTE PTR [rcx+rdx*1],0x7f 0 : 14c79: sete dil 0 : 14c7d: add rsi,rdi 0 : 14c80: inc rdx 0 : 14c83: cmp rax,rdx 0 : 14c86: jne 14c73 0 : 14c88: mov QWORD PTR [rbp-0x28],rsi : 144 print!("{count}"); 0 : 14c8c: mov QWORD PTR [rbp-0x38],rbx 0 : 14c90: mov rax,QWORD PTR [rip+0x412f1] # 55f88 <_DYNAMIC+0x258> 0 : 14c97: mov QWORD PTR [rbp-0x30],rax 0 : 14c9b: lea rdi,[rip+0xffffffffffff35a4] # 8246 0 : 14ca2: lea rsi,[rbp-0x38] 0 : 14ca6: vzeroupper 0 : 14ca9: call QWORD PTR [rip+0x412e1] # 55f90 <_DYNAMIC+0x260> 0 : 14caf: mov rsi,QWORD PTR [rbp-0x20] 0 : 14cb3: test rsi,rsi 0 : 14cb6: je 14cc7 0 : 14cb8: mov rdi,QWORD PTR [rbp-0x18] 0 : 14cbc: mov edx,0x1 0 : 14cc1: call QWORD PTR [rip+0x41299] # 55f60 <_DYNAMIC+0x230> 0 : 14cc7: add rsp,0x38 0 : 14ccb: pop rbx 0 : 14ccc: pop rbp 0 : 14ccd: ret Sorted summary for file /box/solution-bin ---------------------------------------------- 100.00 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/alloc/src/raw_vec/mod.rs:542 Samples | Source code & Disassembly of /box/solution-bin for cpu_core/cycles/P (1 samples, percent: local period) ----------------------------------------------------------------------------------------------------------------------- : : : : 3 Disassembly of section .text: : : 5 000000000002fab0 <::finish_grow>: 1 : 2fab0: push rbp // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/alloc/src/raw_vec/mod.rs:542 0 : 2fab1: mov rbp,rsp 0 : 2fab4: push r15 0 : 2fab6: push r14 0 : 2fab8: push r12 0 : 2faba: push rbx 0 : 2fabb: mov r15,r8 0 : 2fabe: mov r8,rdx 0 : 2fac1: mov rbx,rdi 0 : 2fac4: mov rax,r9 0 : 2fac7: mul rcx 0 : 2faca: mov r14,rax 0 : 2facd: seto al 0 : 2fad0: movabs rcx,0x8000000000000000 0 : 2fada: sub rcx,r15 0 : 2fadd: cmp r14,rcx 0 : 2fae0: seta cl 0 : 2fae3: or cl,al 0 : 2fae5: mov r12d,0x1 0 : 2faeb: je 2faf7 <::finish_grow+0x47> 0 : 2faed: mov eax,0x8 0 : 2faf2: xor r14d,r14d 0 : 2faf5: jmp 2fb4f <::finish_grow+0x9f> 0 : 2faf7: test rsi,rsi 0 : 2fafa: je 2fb19 <::finish_grow+0x69> 0 : 2fafc: imul r9,rsi 0 : 2fb00: mov rdi,r8 0 : 2fb03: mov rsi,r9 0 : 2fb06: mov rdx,r15 0 : 2fb09: mov rcx,r14 0 : 2fb0c: call QWORD PTR [rip+0x26496] # 55fa8 <_DYNAMIC+0x278> 0 : 2fb12: test rax,rax 0 : 2fb15: jne 2fb43 <::finish_grow+0x93> 0 : 2fb17: jmp 2fb35 <::finish_grow+0x85> 0 : 2fb19: test r14,r14 0 : 2fb1c: je 2fb40 <::finish_grow+0x90> 0 : 2fb1e: call QWORD PTR [rip+0x26494] # 55fb8 <_DYNAMIC+0x288> 0 : 2fb24: mov rdi,r14 0 : 2fb27: mov rsi,r15 0 : 2fb2a: call QWORD PTR [rip+0x26470] # 55fa0 <_DYNAMIC+0x270> 0 : 2fb30: test rax,rax 0 : 2fb33: jne 2fb43 <::finish_grow+0x93> 0 : 2fb35: mov QWORD PTR [rbx+0x8],r15 0 : 2fb39: mov eax,0x10 0 : 2fb3e: jmp 2fb4f <::finish_grow+0x9f> 0 : 2fb40: mov rax,r15 0 : 2fb43: mov QWORD PTR [rbx+0x8],rax 0 : 2fb47: mov eax,0x10 0 : 2fb4c: xor r12d,r12d 0 : 2fb4f: mov QWORD PTR [rbx+rax*1],r14 0 : 2fb53: mov QWORD PTR [rbx],r12 0 : 2fb56: pop rbx 0 : 2fb57: pop r12 0 : 2fb59: pop r14 0 : 2fb5b: pop r15 0 : 2fb5d: pop rbp 0 : 2fb5e: ret