# Wydruki llvm-mca - Dla $(0)$ ```= Iterations: 100000 Instructions: 2200000 Total Cycles: 1275037 Total uOps: 2800000 Dispatch Width: 6 uOps Per Cycle: 2.20 IPC: 1.73 Block RThroughput: 4.7 Instruction Info: [1]: #uOps [2]: Latency [3]: RThroughput [4]: MayLoad [5]: MayStore [6]: HasSideEffects (U) [1] [2] [3] [4] [5] [6] Instructions: 1 100 0.25 U endbr64 1 1 0.25 testq %rsi, %rsi 1 1 0.50 jle .L5 1 0 0.17 xorl %eax, %eax 1 1 0.50 jmp .L4 1 1 0.17 nopl (%rax) 1 1 0.50 setl %cl 1 1 0.25 movzbl %cl, %ecx 1 1 0.50 leaq 1(%rcx,%rax,2), %rax 1 1 0.25 cmpq %rax, %rsi 1 1 0.50 jle .L5 1 5 0.50 * movl (%rdi,%rax,4), %ecx 1 1 0.25 cmpl %edx, %ecx 1 1 0.50 jne .L10 1 1 0.25 movl $1, %eax 3 7 1.00 U retq 1 1 0.17 nopl (%rax) 1 0 0.17 xorl %eax, %eax 3 7 1.00 U retq 1 1 0.17 U data16 1 1 0.17 nopw %cs:(%rax,%rax) 3 2 0.75 xchgw %ax, %ax Resources: [0] - SKLDivider [1] - SKLFPDivider [2] - SKLPort0 [3] - SKLPort1 [4] - SKLPort2 [5] - SKLPort3 [6] - SKLPort4 [7] - SKLPort5 [8] - SKLPort6 [9] - SKLPort7 Resource pressure per iteration: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] - - 5.00 4.25 1.50 1.50 - 4.25 5.50 - Resource pressure by instruction: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: - - 0.13 0.38 - - - 0.12 0.38 - endbr64 - - - 0.25 - - - 0.25 0.50 - testq %rsi, %rsi - - 0.50 - - - - - 0.50 - jle .L5 - - - - - - - - - - xorl %eax, %eax - - 0.50 - - - - - 0.50 - jmp .L4 - - - - - - - - - - nopl (%rax) - - 0.25 - - - - - 0.75 - setl %cl - - - - - - - 1.00 - - movzbl %cl, %ecx - - - 0.25 - - - 0.75 - - leaq 1(%rcx,%rax,2), %rax - - 0.13 0.38 - - - 0.50 - - cmpq %rax, %rsi - - 0.75 - - - - - 0.25 - jle .L5 - - - - 0.50 0.50 - - - - movl (%rdi,%rax,4), %ecx - - 0.25 0.13 - - - 0.38 0.25 - cmpl %edx, %ecx - - 0.62 - - - - - 0.38 - jne .L10 - - - 0.87 - - - 0.13 - - movl $1, %eax - - 0.25 0.62 0.50 0.50 - 0.13 1.00 - retq - - - - - - - - - - nopl (%rax) - - - - - - - - - - xorl %eax, %eax - - 0.13 0.62 0.50 0.50 - 0.25 1.00 - retq - - - - - - - - - - data16 - - - - - - - - - - nopw %cs:(%rax,%rax) - - 1.50 0.75 - - - 0.75 - - xchgw %ax, %ax ``` - Dla $(1)$ ```= Iterations: 100000 Instructions: 2400000 Total Cycles: 1312540 Total uOps: 3000000 Dispatch Width: 6 uOps Per Cycle: 2.29 IPC: 1.83 Block RThroughput: 5.0 Instruction Info: [1]: #uOps [2]: Latency [3]: RThroughput [4]: MayLoad [5]: MayStore [6]: HasSideEffects (U) [1] [2] [3] [4] [5] [6] Instructions: 1 100 0.25 U endbr64 1 1 0.25 testq %rsi, %rsi 1 1 0.50 jle .L16 1 0 0.17 xorl %eax, %eax 1 1 0.50 jmp .L14 1 1 0.17 nopl (%rax) 1 1 0.25 addq $1, %rax 1 1 0.25 cmpl %edx, %ecx 1 1 0.50 je .L17 1 1 0.25 cmpq %rax, %rsi 1 1 0.50 jle .L16 1 5 0.50 * movl (%rdi,%rax,4), %ecx 1 1 0.25 addq %rax, %rax 1 1 0.25 cmpl %edx, %ecx 1 1 0.50 jge .L19 1 1 0.25 addq $2, %rax 1 1 0.25 cmpq %rax, %rsi 1 1 0.50 jg .L14 1 0 0.17 xorl %eax, %eax 3 7 1.00 U retq 1 1 0.17 nopl (%rax,%rax) 1 1 0.25 movl $1, %eax 3 7 1.00 U retq 3 2 0.75 xchgw %ax, %ax Resources: [0] - SKLDivider [1] - SKLFPDivider [2] - SKLPort0 [3] - SKLPort1 [4] - SKLPort2 [5] - SKLPort3 [6] - SKLPort4 [7] - SKLPort5 [8] - SKLPort6 [9] - SKLPort7 Resource pressure per iteration: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] - - 6.00 5.25 1.50 1.50 - 5.75 6.00 - Resource pressure by instruction: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: - - 0.50 - - - - 0.50 - - endbr64 - - 0.13 0.50 - - - - 0.38 - testq %rsi, %rsi - - 0.25 - - - - - 0.75 - jle .L16 - - - - - - - - - - xorl %eax, %eax - - 0.50 - - - - - 0.50 - jmp .L14 - - - - - - - - - - nopl (%rax) - - - 0.37 - - - 0.38 0.25 - addq $1, %rax - - - 0.37 - - - 0.62 - - cmpl %edx, %ecx - - 1.00 - - - - - - - je .L17 - - - 0.62 - - - 0.38 - - cmpq %rax, %rsi - - - - - - - - 1.00 - jle .L16 - - - - 0.50 0.50 - - - - movl (%rdi,%rax,4), %ecx - - - - - - - 0.37 0.62 - addq %rax, %rax - - 0.37 0.13 - - - 0.50 - - cmpl %edx, %ecx - - 1.00 - - - - - - - jge .L19 - - - 0.25 - - - 0.75 - - addq $2, %rax - - - 0.37 - - - 0.63 - - cmpq %rax, %rsi - - 0.50 - - - - - 0.50 - jg .L14 - - - - - - - - - - xorl %eax, %eax - - - 0.63 0.50 0.50 - 0.37 1.00 - retq - - - - - - - - - - nopl (%rax,%rax) - - 0.62 0.38 - - - - - - movl $1, %eax - - - 0.13 0.50 0.50 - 0.87 1.00 - retq - - 1.12 1.50 - - - 0.38 - - xchgw %ax, %ax ``` - Dla $(2)$ ```= Iterations: 100000 Instructions: 1900000 Total Cycles: 1040040 Total uOps: 2400000 Dispatch Width: 6 uOps Per Cycle: 2.31 IPC: 1.83 Block RThroughput: 4.0 Instruction Info: [1]: #uOps [2]: Latency [3]: RThroughput [4]: MayLoad [5]: MayStore [6]: HasSideEffects (U) [1] [2] [3] [4] [5] [6] Instructions: 1 100 0.25 U endbr64 1 1 0.25 testq %rsi, %rsi 1 1 0.50 jle .L24 1 0 0.17 xorl %eax, %eax 1 1 0.50 jmp .L23 1 1 0.17 nopl (%rax) 1 1 0.50 setl %al 1 1 0.25 movzbl %al, %eax 1 1 0.50 leaq 1(%rax,%rcx), %rax 1 1 0.25 cmpq %rax, %rsi 1 1 0.50 jle .L24 1 1 0.50 leaq (%rax,%rax), %rcx 2 6 0.50 * cmpl %edx, (%rdi,%rax,4) 1 1 0.50 jne .L28 1 1 0.25 movl $1, %eax 3 7 1.00 U retq 1 1 0.17 nop 1 0 0.17 xorl %eax, %eax 3 7 1.00 U retq Resources: [0] - SKLDivider [1] - SKLFPDivider [2] - SKLPort0 [3] - SKLPort1 [4] - SKLPort2 [5] - SKLPort3 [6] - SKLPort4 [7] - SKLPort5 [8] - SKLPort6 [9] - SKLPort7 Resource pressure per iteration: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] - - 4.70 3.70 1.50 1.50 - 3.90 4.70 - Resource pressure by instruction: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: - - 0.40 0.40 - - - - 0.20 - endbr64 - - 0.20 0.40 - - - 0.40 - - testq %rsi, %rsi - - 0.70 - - - - - 0.30 - jle .L24 - - - - - - - - - - xorl %eax, %eax - - 0.60 - - - - - 0.40 - jmp .L23 - - - - - - - - - - nopl (%rax) - - 0.20 - - - - - 0.80 - setl %al - - - 0.40 - - - 0.50 0.10 - movzbl %al, %eax - - - 0.80 - - - 0.20 - - leaq 1(%rax,%rcx), %rax - - - 0.10 - - - 0.90 - - cmpq %rax, %rsi - - 0.50 - - - - - 0.50 - jle .L24 - - - 0.90 - - - 0.10 - - leaq (%rax,%rax), %rcx - - 0.80 - 0.60 0.40 - - 0.20 - cmpl %edx, (%rdi,%rax,4) - - 0.90 - - - - - 0.10 - jne .L28 - - - 0.30 - - - 0.60 0.10 - movl $1, %eax - - 0.40 0.20 0.50 0.50 - 0.40 1.00 - retq - - - - - - - - - - nop - - - - - - - - - - xorl %eax, %eax - - - 0.20 0.40 0.60 - 0.80 1.00 - retq ``` ###### tags: `ask`