1*c3739801SMiguel OjedaIterations: 100 2*c3739801SMiguel OjedaInstructions: 7200 3*c3739801SMiguel OjedaTotal Cycles: 7648 4*c3739801SMiguel OjedaTotal uOps: 9300 5*c3739801SMiguel Ojeda 6*c3739801SMiguel OjedaDispatch Width: 4 7*c3739801SMiguel OjedauOps Per Cycle: 1.22 8*c3739801SMiguel OjedaIPC: 0.94 9*c3739801SMiguel OjedaBlock RThroughput: 23.3 10*c3739801SMiguel Ojeda 11*c3739801SMiguel Ojeda 12*c3739801SMiguel OjedaInstruction Info: 13*c3739801SMiguel Ojeda[1]: #uOps 14*c3739801SMiguel Ojeda[2]: Latency 15*c3739801SMiguel Ojeda[3]: RThroughput 16*c3739801SMiguel Ojeda[4]: MayLoad 17*c3739801SMiguel Ojeda[5]: MayStore 18*c3739801SMiguel Ojeda[6]: HasSideEffects (U) 19*c3739801SMiguel Ojeda 20*c3739801SMiguel Ojeda[1] [2] [3] [4] [5] [6] Instructions: 21*c3739801SMiguel Ojeda 2 5 1.00 * push rbp 22*c3739801SMiguel Ojeda 2 5 1.00 * push r15 23*c3739801SMiguel Ojeda 2 5 1.00 * push r14 24*c3739801SMiguel Ojeda 2 5 1.00 * push r13 25*c3739801SMiguel Ojeda 2 5 1.00 * push r12 26*c3739801SMiguel Ojeda 2 5 1.00 * push rbx 27*c3739801SMiguel Ojeda 1 1 0.33 sub rsp, 24 28*c3739801SMiguel Ojeda 1 5 0.50 * mov r12, qword ptr [rdi + 16] 29*c3739801SMiguel Ojeda 1 1 0.33 mov r13, r12 30*c3739801SMiguel Ojeda 1 1 0.33 sub r13, rsi 31*c3739801SMiguel Ojeda 1 1 1.00 jb .LBB6_10 32*c3739801SMiguel Ojeda 1 1 0.33 mov rbx, rdi 33*c3739801SMiguel Ojeda 1 5 0.50 * mov rax, qword ptr [rdi] 34*c3739801SMiguel Ojeda 1 1 0.33 mov rcx, rax 35*c3739801SMiguel Ojeda 1 1 0.33 sub rcx, r12 36*c3739801SMiguel Ojeda 1 1 0.33 cmp rdx, rcx 37*c3739801SMiguel Ojeda 1 1 1.00 jbe .LBB6_4 38*c3739801SMiguel Ojeda 1 1 0.33 add r12, rdx 39*c3739801SMiguel Ojeda 1 1 1.00 jae .LBB6_7 40*c3739801SMiguel Ojeda 1 0 0.25 xor eax, eax 41*c3739801SMiguel Ojeda 1 1 1.00 jmp .LBB6_6 42*c3739801SMiguel Ojeda 1 5 0.50 * mov rax, qword ptr [rbx + 8] 43*c3739801SMiguel Ojeda 1 1 0.33 add r12, rdx 44*c3739801SMiguel Ojeda 1 1 0.50 lea rcx, [rsi + 2*rsi] 45*c3739801SMiguel Ojeda 1 1 0.50 lea r14, [rax + 2*rcx] 46*c3739801SMiguel Ojeda 1 1 0.33 add rdx, rdx 47*c3739801SMiguel Ojeda 1 1 0.50 lea r15, [rdx + 2*rdx] 48*c3739801SMiguel Ojeda 1 1 0.50 lea rdi, [r14 + r15] 49*c3739801SMiguel Ojeda 1 1 0.33 add r13, r13 50*c3739801SMiguel Ojeda 1 1 0.50 lea rdx, [2*r13] 51*c3739801SMiguel Ojeda 1 1 0.33 add rdx, r13 52*c3739801SMiguel Ojeda 1 1 0.33 mov rsi, r14 53*c3739801SMiguel Ojeda 4 7 1.00 * call qword ptr [rip + memmove@GOTPCREL] 54*c3739801SMiguel Ojeda 1 1 0.33 mov rdi, r14 55*c3739801SMiguel Ojeda 1 0 0.25 xor esi, esi 56*c3739801SMiguel Ojeda 1 1 0.33 mov rdx, r15 57*c3739801SMiguel Ojeda 4 7 1.00 * call qword ptr [rip + memset@GOTPCREL] 58*c3739801SMiguel Ojeda 1 1 1.00 * mov qword ptr [rbx + 16], r12 59*c3739801SMiguel Ojeda 1 1 0.33 mov al, 1 60*c3739801SMiguel Ojeda 1 1 0.33 add rsp, 24 61*c3739801SMiguel Ojeda 1 6 0.50 * pop rbx 62*c3739801SMiguel Ojeda 1 6 0.50 * pop r12 63*c3739801SMiguel Ojeda 1 6 0.50 * pop r13 64*c3739801SMiguel Ojeda 1 6 0.50 * pop r14 65*c3739801SMiguel Ojeda 1 6 0.50 * pop r15 66*c3739801SMiguel Ojeda 1 6 0.50 * pop rbp 67*c3739801SMiguel Ojeda 1 1 1.00 U ret 68*c3739801SMiguel Ojeda 1 1 0.33 mov r15, rsi 69*c3739801SMiguel Ojeda 1 1 0.33 mov rbp, rdx 70*c3739801SMiguel Ojeda 1 1 0.50 lea rcx, [rax + rax] 71*c3739801SMiguel Ojeda 1 1 0.33 cmp r12, rcx 72*c3739801SMiguel Ojeda 3 3 1.00 cmova rcx, r12 73*c3739801SMiguel Ojeda 1 1 0.33 cmp rcx, 5 74*c3739801SMiguel Ojeda 1 1 0.33 mov r14d, 4 75*c3739801SMiguel Ojeda 2 2 0.67 cmovae r14, rcx 76*c3739801SMiguel Ojeda 1 5 0.50 * mov rdx, qword ptr [rbx + 8] 77*c3739801SMiguel Ojeda 1 1 0.33 mov rdi, rsp 78*c3739801SMiguel Ojeda 1 1 0.33 mov rsi, rax 79*c3739801SMiguel Ojeda 1 1 0.33 mov rcx, r14 80*c3739801SMiguel Ojeda 3 5 1.00 call <alloc::raw_vec::RawVecInner>::finish_grow 81*c3739801SMiguel Ojeda 2 6 0.50 * cmp dword ptr [rsp], 1 82*c3739801SMiguel Ojeda 1 1 1.00 je .LBB6_3 83*c3739801SMiguel Ojeda 1 5 0.50 * mov rax, qword ptr [rsp + 8] 84*c3739801SMiguel Ojeda 1 1 1.00 * mov qword ptr [rbx + 8], rax 85*c3739801SMiguel Ojeda 1 1 1.00 * mov qword ptr [rbx], r14 86*c3739801SMiguel Ojeda 1 1 0.33 mov rdx, rbp 87*c3739801SMiguel Ojeda 1 1 0.33 mov rsi, r15 88*c3739801SMiguel Ojeda 1 1 1.00 jmp .LBB6_5 89*c3739801SMiguel Ojeda 1 1 0.50 lea rdi, [rip + .Lanon.HASH.1] 90*c3739801SMiguel Ojeda 1 1 0.50 lea rdx, [rip + .Lanon.HASH.3] 91*c3739801SMiguel Ojeda 1 1 0.33 mov esi, 37 92*c3739801SMiguel Ojeda 4 7 1.00 * call qword ptr [rip + core::panicking::panic@GOTPCREL] 93*c3739801SMiguel Ojeda 94*c3739801SMiguel Ojeda 95*c3739801SMiguel OjedaResources: 96*c3739801SMiguel Ojeda[0] - SBDivider 97*c3739801SMiguel Ojeda[1] - SBFPDivider 98*c3739801SMiguel Ojeda[2] - SBPort0 99*c3739801SMiguel Ojeda[3] - SBPort1 100*c3739801SMiguel Ojeda[4] - SBPort4 101*c3739801SMiguel Ojeda[5] - SBPort5 102*c3739801SMiguel Ojeda[6.0] - SBPort23 103*c3739801SMiguel Ojeda[6.1] - SBPort23 104*c3739801SMiguel Ojeda 105*c3739801SMiguel Ojeda 106*c3739801SMiguel OjedaResource pressure per iteration: 107*c3739801SMiguel Ojeda[0] [1] [2] [3] [4] [5] [6.0] [6.1] 108*c3739801SMiguel Ojeda - - 17.02 16.50 13.00 19.48 14.00 14.00 109*c3739801SMiguel Ojeda 110*c3739801SMiguel OjedaResource pressure by instruction: 111*c3739801SMiguel Ojeda[0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: 112*c3739801SMiguel Ojeda - - - - 1.00 - 0.98 0.02 push rbp 113*c3739801SMiguel Ojeda - - - - 1.00 - 0.02 0.98 push r15 114*c3739801SMiguel Ojeda - - - - 1.00 - 0.99 0.01 push r14 115*c3739801SMiguel Ojeda - - - - 1.00 - 0.01 0.99 push r13 116*c3739801SMiguel Ojeda - - - - 1.00 - 0.99 0.01 push r12 117*c3739801SMiguel Ojeda - - - - 1.00 - 0.01 0.99 push rbx 118*c3739801SMiguel Ojeda - - 0.49 0.51 - - - - sub rsp, 24 119*c3739801SMiguel Ojeda - - - - - - 0.04 0.96 mov r12, qword ptr [rdi + 16] 120*c3739801SMiguel Ojeda - - 0.49 0.50 - 0.01 - - mov r13, r12 121*c3739801SMiguel Ojeda - - 0.48 0.51 - 0.01 - - sub r13, rsi 122*c3739801SMiguel Ojeda - - - - - 1.00 - - jb .LBB6_10 123*c3739801SMiguel Ojeda - - 0.49 0.49 - 0.02 - - mov rbx, rdi 124*c3739801SMiguel Ojeda - - - - - - 0.97 0.03 mov rax, qword ptr [rdi] 125*c3739801SMiguel Ojeda - - 0.51 0.49 - - - - mov rcx, rax 126*c3739801SMiguel Ojeda - - 0.49 0.02 - 0.49 - - sub rcx, r12 127*c3739801SMiguel Ojeda - - 0.49 0.50 - 0.01 - - cmp rdx, rcx 128*c3739801SMiguel Ojeda - - - - - 1.00 - - jbe .LBB6_4 129*c3739801SMiguel Ojeda - - 0.02 0.49 - 0.49 - - add r12, rdx 130*c3739801SMiguel Ojeda - - - - - 1.00 - - jae .LBB6_7 131*c3739801SMiguel Ojeda - - - - - - - - xor eax, eax 132*c3739801SMiguel Ojeda - - - - - 1.00 - - jmp .LBB6_6 133*c3739801SMiguel Ojeda - - - - - - 0.97 0.03 mov rax, qword ptr [rbx + 8] 134*c3739801SMiguel Ojeda - - 0.51 0.49 - - - - add r12, rdx 135*c3739801SMiguel Ojeda - - 0.49 0.51 - - - - lea rcx, [rsi + 2*rsi] 136*c3739801SMiguel Ojeda - - 0.50 0.50 - - - - lea r14, [rax + 2*rcx] 137*c3739801SMiguel Ojeda - - 0.51 0.49 - - - - add rdx, rdx 138*c3739801SMiguel Ojeda - - 0.50 0.50 - - - - lea r15, [rdx + 2*rdx] 139*c3739801SMiguel Ojeda - - 0.49 0.51 - - - - lea rdi, [r14 + r15] 140*c3739801SMiguel Ojeda - - 0.50 0.49 - 0.01 - - add r13, r13 141*c3739801SMiguel Ojeda - - 0.51 0.49 - - - - lea rdx, [2*r13] 142*c3739801SMiguel Ojeda - - 0.01 0.01 - 0.98 - - add rdx, r13 143*c3739801SMiguel Ojeda - - 0.01 - - 0.99 - - mov rsi, r14 144*c3739801SMiguel Ojeda - - - - 1.00 1.00 1.98 0.02 call qword ptr [rip + memmove@GOTPCREL] 145*c3739801SMiguel Ojeda - - 0.49 0.50 - 0.01 - - mov rdi, r14 146*c3739801SMiguel Ojeda - - - - - - - - xor esi, esi 147*c3739801SMiguel Ojeda - - 0.50 0.50 - - - - mov rdx, r15 148*c3739801SMiguel Ojeda - - - - 1.00 1.00 1.96 0.04 call qword ptr [rip + memset@GOTPCREL] 149*c3739801SMiguel Ojeda - - - - 1.00 - 0.01 0.99 mov qword ptr [rbx + 16], r12 150*c3739801SMiguel Ojeda - - 0.50 - - 0.50 - - mov al, 1 151*c3739801SMiguel Ojeda - - 0.51 0.49 - - - - add rsp, 24 152*c3739801SMiguel Ojeda - - - - - - 0.02 0.98 pop rbx 153*c3739801SMiguel Ojeda - - - - - - 0.03 0.97 pop r12 154*c3739801SMiguel Ojeda - - - - - - 0.03 0.97 pop r13 155*c3739801SMiguel Ojeda - - - - - - 0.97 0.03 pop r14 156*c3739801SMiguel Ojeda - - - - - - 0.03 0.97 pop r15 157*c3739801SMiguel Ojeda - - - - - - 0.01 0.99 pop rbp 158*c3739801SMiguel Ojeda - - - - - 1.00 - - ret 159*c3739801SMiguel Ojeda - - 0.49 0.51 - - - - mov r15, rsi 160*c3739801SMiguel Ojeda - - 0.51 0.49 - - - - mov rbp, rdx 161*c3739801SMiguel Ojeda - - 0.49 0.51 - - - - lea rcx, [rax + rax] 162*c3739801SMiguel Ojeda - - 0.49 0.50 - 0.01 - - cmp r12, rcx 163*c3739801SMiguel Ojeda - - 1.04 0.50 - 1.46 - - cmova rcx, r12 164*c3739801SMiguel Ojeda - - 0.49 0.49 - 0.02 - - cmp rcx, 5 165*c3739801SMiguel Ojeda - - 0.50 - - 0.50 - - mov r14d, 4 166*c3739801SMiguel Ojeda - - 0.50 0.51 - 0.99 - - cmovae r14, rcx 167*c3739801SMiguel Ojeda - - - - - - 0.97 0.03 mov rdx, qword ptr [rbx + 8] 168*c3739801SMiguel Ojeda - - - 0.51 - 0.49 - - mov rdi, rsp 169*c3739801SMiguel Ojeda - - 0.01 0.50 - 0.49 - - mov rsi, rax 170*c3739801SMiguel Ojeda - - 0.49 0.50 - 0.01 - - mov rcx, r14 171*c3739801SMiguel Ojeda - - - - 1.00 1.00 0.99 0.01 call <alloc::raw_vec::RawVecInner>::finish_grow 172*c3739801SMiguel Ojeda - - 0.51 0.49 - - 0.50 0.50 cmp dword ptr [rsp], 1 173*c3739801SMiguel Ojeda - - - - - 1.00 - - je .LBB6_3 174*c3739801SMiguel Ojeda - - - - - - 0.50 0.50 mov rax, qword ptr [rsp + 8] 175*c3739801SMiguel Ojeda - - - - 1.00 - 0.99 0.01 mov qword ptr [rbx + 8], rax 176*c3739801SMiguel Ojeda - - - - 1.00 - 0.01 0.99 mov qword ptr [rbx], r14 177*c3739801SMiguel Ojeda - - 0.49 0.50 - 0.01 - - mov rdx, rbp 178*c3739801SMiguel Ojeda - - 0.50 0.01 - 0.49 - - mov rsi, r15 179*c3739801SMiguel Ojeda - - - - - 1.00 - - jmp .LBB6_5 180*c3739801SMiguel Ojeda - - 0.01 0.99 - - - - lea rdi, [rip + .Lanon.HASH.1] 181*c3739801SMiguel Ojeda - - 0.99 0.01 - - - - lea rdx, [rip + .Lanon.HASH.3] 182*c3739801SMiguel Ojeda - - 0.02 0.49 - 0.49 - - mov esi, 37 183*c3739801SMiguel Ojeda - - - - 1.00 1.00 0.02 1.98 call qword ptr [rip + core::panicking::panic@GOTPCREL] 184