Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 9 additions & 10 deletions zerocopy/benches/ref_from_bytes_dynamic_padding.x86-64
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
bench_ref_from_bytes_dynamic_padding:
test dil, 3
jne .LBB5_1
movabs rax, 9223372036854775804
and rax, rsi
cmp rax, 9
setb al
test sil, 3
setne cl
setne al
cmp rsi, 9
setb cl
or cl, al
jne .LBB5_1
je .LBB5_3
.LBB5_1:
xor edi, edi
mov rax, rdi
ret
.LBB5_3:
add rsi, -9
movabs rcx, -6148914691236517205
mov rax, rsi
mul rcx
shr rdx
mov rax, rdi
ret
.LBB5_1:
xor edi, edi
mov rax, rdi
ret
58 changes: 27 additions & 31 deletions zerocopy/benches/ref_from_bytes_dynamic_padding.x86-64.mca
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
Iterations: 100
Instructions: 2000
Total Cycles: 673
Total uOps: 2100
Instructions: 1800
Total Cycles: 607
Total uOps: 1900

Dispatch Width: 4
uOps Per Cycle: 3.12
uOps Per Cycle: 3.13
IPC: 2.97
Block RThroughput: 5.3
Block RThroughput: 4.8


Instruction Info:
Expand All @@ -20,24 +20,22 @@ Instruction Info:
[1] [2] [3] [4] [5] [6] Instructions:
1 1 0.33 test dil, 3
1 1 1.00 jne .LBB5_1
1 1 0.33 movabs rax, 9223372036854775804
1 1 0.33 and rax, rsi
1 1 0.33 cmp rax, 9
1 1 0.50 setb al
1 1 0.33 test sil, 3
1 1 0.50 setne cl
1 1 0.50 setne al
1 1 0.33 cmp rsi, 9
1 1 0.50 setb cl
1 1 0.33 or cl, al
1 1 1.00 jne .LBB5_1
1 1 1.00 je .LBB5_3
1 0 0.25 xor edi, edi
1 1 0.33 mov rax, rdi
1 1 1.00 U ret
1 1 0.33 add rsi, -9
1 1 0.33 movabs rcx, -6148914691236517205
1 1 0.33 mov rax, rsi
2 4 1.00 mul rcx
1 1 0.50 shr rdx
1 1 0.33 mov rax, rdi
1 1 1.00 U ret
1 0 0.25 xor edi, edi
1 1 0.33 mov rax, rdi
1 1 1.00 U ret


Resources:
Expand All @@ -53,27 +51,25 @@ Resources:

Resource pressure per iteration:
[0] [1] [2] [3] [4] [5] [6.0] [6.1]
- - 6.66 6.66 - 6.68 - -
- - 6.00 6.00 - 6.00 - -

Resource pressure by instruction:
[0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
- - 0.66 0.33 - 0.01 - - test dil, 3
- - - - - 1.00 - - jne .LBB5_1
- - 0.33 0.67 - - - - movabs rax, 9223372036854775804
- - 1.00 - - - - - and rax, rsi
- - 0.67 - - 0.33 - - cmp rax, 9
- - 0.34 - - 0.66 - - setb al
- - - 1.00 - - - - test sil, 3
- - 0.33 - - 0.67 - - setne cl
- - 1.00 - - - - - or cl, al
- - 0.50 0.49 - 0.01 - - test dil, 3
- - - - - 1.00 - - jne .LBB5_1
- - - 1.00 - - - - add rsi, -9
- - - 0.99 - 0.01 - - movabs rcx, -6148914691236517205
- - - 0.34 - 0.66 - - mov rax, rsi
- - 0.49 0.01 - 0.50 - - test sil, 3
- - 1.00 - - - - - setne al
- - - 1.00 - - - - cmp rsi, 9
- - 0.51 - - 0.49 - - setb cl
- - 0.50 - - 0.50 - - or cl, al
- - - - - 1.00 - - je .LBB5_3
- - - - - - - - xor edi, edi
- - - 0.51 - 0.49 - - mov rax, rdi
- - - - - 1.00 - - ret
- - - 0.99 - 0.01 - - add rsi, -9
- - - 1.00 - - - - movabs rcx, -6148914691236517205
- - 0.51 0.49 - - - - mov rax, rsi
- - 1.00 1.00 - - - - mul rcx
- - 1.00 - - - - - shr rdx
- - - 0.66 - 0.34 - - mov rax, rdi
- - - - - 1.00 - - ret
- - - - - - - - xor edi, edi
- - 0.33 0.67 - - - - mov rax, rdi
- - 0.49 0.51 - - - - mov rax, rdi
- - - - - 1.00 - - ret
13 changes: 7 additions & 6 deletions zerocopy/benches/ref_from_bytes_dynamic_size.x86-64
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@ bench_ref_from_bytes_dynamic_size:
mov rdx, rsi
cmp rsi, 4
setb cl
or sil, cl
test sil, 1
jne .LBB5_1
add rdx, -4
shr rdx
ret
or cl, dl
test cl, 1
je .LBB5_3
.LBB5_1:
xor eax, eax
ret
.LBB5_3:
add rdx, -4
shr rdx
ret
24 changes: 12 additions & 12 deletions zerocopy/benches/ref_from_bytes_dynamic_size.x86-64.mca
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@ Instruction Info:
1 1 0.33 mov rdx, rsi
1 1 0.33 cmp rsi, 4
1 1 0.50 setb cl
1 1 0.33 or sil, cl
1 1 0.33 test sil, 1
1 1 1.00 jne .LBB5_1
1 1 0.33 or cl, dl
1 1 0.33 test cl, 1
1 1 1.00 je .LBB5_3
1 0 0.25 xor eax, eax
1 1 1.00 U ret
1 1 0.33 add rdx, -4
1 1 0.50 shr rdx
1 1 1.00 U ret
1 0 0.25 xor eax, eax
1 1 1.00 U ret


Resources:
Expand All @@ -54,14 +54,14 @@ Resource pressure by instruction:
- - 0.33 0.66 - 0.01 - - mov rax, rdi
- - 0.67 0.33 - - - - test al, 1
- - - - - 1.00 - - jne .LBB5_1
- - 0.66 0.34 - - - - mov rdx, rsi
- - 0.33 0.34 - 0.33 - - mov rdx, rsi
- - 0.33 0.66 - 0.01 - - cmp rsi, 4
- - 1.00 - - - - - setb cl
- - - 1.00 - - - - or sil, cl
- - - 1.00 - - - - test sil, 1
- - - - - 1.00 - - jne .LBB5_1
- - 0.66 0.34 - - - - add rdx, -4
- - 0.67 - - 0.33 - - shr rdx
- - - - - 1.00 - - ret
- - - 1.00 - - - - or cl, dl
- - - 1.00 - - - - test cl, 1
- - - - - 1.00 - - je .LBB5_3
- - - - - - - - xor eax, eax
- - - - - 1.00 - - ret
- - 0.66 0.34 - - - - add rdx, -4
- - 1.00 - - - - - shr rdx
- - - - - 1.00 - - ret
24 changes: 11 additions & 13 deletions zerocopy/benches/try_ref_from_bytes_dynamic_padding.x86-64
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
bench_try_ref_from_bytes_dynamic_padding:
movabs rax, 9223372036854775804
and rax, rsi
cmp rax, 9
setae al
mov ecx, esi
or ecx, edi
test cl, 3
sete cl
and cl, al
cmp cl, 1
test dil, 3
jne .LBB5_1
test sil, 3
setne al
cmp rsi, 9
setb cl
or cl, al
je .LBB5_3
.LBB5_1:
xor eax, eax
ret
.LBB5_3:
add rsi, -9
movabs rcx, -6148914691236517205
mov rax, rsi
Expand All @@ -19,6 +20,3 @@ bench_try_ref_from_bytes_dynamic_padding:
cmp word ptr [rdi], -16192
cmove rax, rdi
ret
.LBB5_1:
xor eax, eax
ret
64 changes: 29 additions & 35 deletions zerocopy/benches/try_ref_from_bytes_dynamic_padding.x86-64.mca
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
Iterations: 100
Instructions: 2200
Total Cycles: 742
Total uOps: 2500
Instructions: 1900
Total Cycles: 641
Total uOps: 2200

Dispatch Width: 4
uOps Per Cycle: 3.37
uOps Per Cycle: 3.43
IPC: 2.96
Block RThroughput: 6.3
Block RThroughput: 5.5


Instruction Info:
Expand All @@ -18,17 +18,16 @@ Instruction Info:
[6]: HasSideEffects (U)

[1] [2] [3] [4] [5] [6] Instructions:
1 1 0.33 movabs rax, 9223372036854775804
1 1 0.33 and rax, rsi
1 1 0.33 cmp rax, 9
1 1 0.50 setae al
1 1 0.33 mov ecx, esi
1 1 0.33 or ecx, edi
1 1 0.33 test cl, 3
1 1 0.50 sete cl
1 1 0.33 and cl, al
1 1 0.33 cmp cl, 1
1 1 0.33 test dil, 3
1 1 1.00 jne .LBB5_1
1 1 0.33 test sil, 3
1 1 0.50 setne al
1 1 0.33 cmp rsi, 9
1 1 0.50 setb cl
1 1 0.33 or cl, al
1 1 1.00 je .LBB5_3
1 0 0.25 xor eax, eax
1 1 1.00 U ret
1 1 0.33 add rsi, -9
1 1 0.33 movabs rcx, -6148914691236517205
1 1 0.33 mov rax, rsi
Expand All @@ -38,8 +37,6 @@ Instruction Info:
2 6 0.50 * cmp word ptr [rdi], -16192
2 2 0.67 cmove rax, rdi
1 1 1.00 U ret
1 0 0.25 xor eax, eax
1 1 1.00 U ret


Resources:
Expand All @@ -55,29 +52,26 @@ Resources:

Resource pressure per iteration:
[0] [1] [2] [3] [4] [5] [6.0] [6.1]
- - 7.32 7.33 - 7.35 0.50 0.50
- - 6.33 6.33 - 6.34 0.50 0.50

Resource pressure by instruction:
[0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
- - - 0.99 - 0.01 - - movabs rax, 9223372036854775804
- - 0.02 0.98 - - - - and rax, rsi
- - 0.67 0.32 - 0.01 - - cmp rax, 9
- - 0.99 - - 0.01 - - setae al
- - 0.01 0.34 - 0.65 - - mov ecx, esi
- - 0.32 0.02 - 0.66 - - or ecx, edi
- - 0.32 0.67 - 0.01 - - test cl, 3
- - 0.33 - - 0.67 - - sete cl
- - 0.99 - - 0.01 - - and cl, al
- - 0.98 0.01 - 0.01 - - cmp cl, 1
- - 0.66 0.33 - 0.01 - - test dil, 3
- - - - - 1.00 - - jne .LBB5_1
- - 0.01 0.99 - - - - add rsi, -9
- - 0.01 0.35 - 0.64 - - movabs rcx, -6148914691236517205
- - - 0.98 - 0.02 - - mov rax, rsi
- - 1.00 1.00 - - - - mul rcx
- - 1.00 - - - - - shr rdx
- - 0.33 0.67 - - - - test sil, 3
- - 0.99 - - 0.01 - - setne al
- - 0.66 0.34 - - - - cmp rsi, 9
- - 0.99 - - 0.01 - - setb cl
- - 0.33 0.33 - 0.34 - - or cl, al
- - - - - 1.00 - - je .LBB5_3
- - - - - - - - xor eax, eax
- - 0.01 0.34 - 0.65 0.50 0.50 cmp word ptr [rdi], -16192
- - 0.66 0.34 - 1.00 - - cmove rax, rdi
- - - - - 1.00 - - ret
- - - 1.00 - - - - add rsi, -9
- - 0.33 0.66 - 0.01 - - movabs rcx, -6148914691236517205
- - 0.33 0.67 - - - - mov rax, rsi
- - 1.00 1.00 - - - - mul rcx
- - 0.02 - - 0.98 - - shr rdx
- - - - - - - - xor eax, eax
- - 0.67 0.33 - - 0.50 0.50 cmp word ptr [rdi], -16192
- - 0.02 1.00 - 0.98 - - cmove rax, rdi
- - - - - 1.00 - - ret
21 changes: 9 additions & 12 deletions zerocopy/benches/try_ref_from_bytes_dynamic_size.x86-64
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
bench_try_ref_from_bytes_dynamic_size:
mov rax, rdi
test al, 1
jne .LBB5_1
mov rdx, rsi
cmp rsi, 4
setae al
mov ecx, esi
or ecx, edi
setb cl
or cl, dl
test cl, 1
sete cl
and cl, al
cmp cl, 1
jne .LBB5_1
lea rdx, [rsi - 4]
cmp word ptr [rax], -16192
jne .LBB5_1
add rdx, -4
shr rdx
movzx ecx, word ptr [rdi]
xor eax, eax
cmp ecx, 49344
cmovne rdx, rsi
cmove rax, rdi
ret
.LBB5_1:
xor eax, eax
Expand Down
Loading
Loading