Skip to content
Merged
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
18 changes: 9 additions & 9 deletions zerocopy/benches/ref_from_prefix_dynamic_padding.x86-64
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
bench_ref_from_prefix_dynamic_padding:
xor edx, edx
mov eax, 0
test dil, 3
je .LBB5_1
ret
.LBB5_1:
jne .LBB5_2
movabs rax, 9223372036854775804
and rsi, rax
cmp rsi, 9
jae .LBB5_3
mov edx, 1
xor eax, eax
cmp rsi, 8
ja .LBB5_3
.LBB5_2:
xor edx, edx
test dil, 3
sete dl
xor edi, edi
mov rax, rdi
ret
.LBB5_3:
add rsi, -9
Expand Down
48 changes: 24 additions & 24 deletions zerocopy/benches/ref_from_prefix_dynamic_padding.x86-64.mca
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Iterations: 100
Instructions: 1900
Total Cycles: 608
Total Cycles: 607
Total uOps: 2000

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

[1] [2] [3] [4] [5] [6] Instructions:
1 0 0.25 xor edx, edx
1 1 0.33 mov eax, 0
1 1 0.33 test dil, 3
1 1 1.00 je .LBB5_1
1 1 1.00 U ret
1 1 1.00 jne .LBB5_2
1 1 0.33 movabs rax, 9223372036854775804
1 1 0.33 and rsi, rax
1 1 0.33 cmp rsi, 9
1 1 1.00 jae .LBB5_3
1 1 0.33 mov edx, 1
1 0 0.25 xor eax, eax
1 1 0.33 cmp rsi, 8
1 1 1.00 ja .LBB5_3
1 0 0.25 xor edx, edx
1 1 0.33 test dil, 3
1 1 0.50 sete dl
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
Expand All @@ -52,26 +52,26 @@ Resources:

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

Resource pressure by instruction:
[0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
- - 0.01 0.98 - 0.01 - - test dil, 3
- - - - - 1.00 - - jne .LBB5_2
- - 0.98 0.01 - 0.01 - - movabs rax, 9223372036854775804
- - 0.01 0.99 - - - - and rsi, rax
- - 0.01 0.99 - - - - cmp rsi, 8
- - - - - 1.00 - - ja .LBB5_3
- - - - - - - - xor edx, edx
- - 0.01 0.98 - 0.01 - - mov eax, 0
- - 0.98 0.01 - 0.01 - - test dil, 3
- - - - - 1.00 - - je .LBB5_1
- - - - - 1.00 - - ret
- - 0.01 0.99 - - - - movabs rax, 9223372036854775804
- - - 1.00 - - - - and rsi, rax
- - - 1.00 - - - - cmp rsi, 9
- - - - - 1.00 - - jae .LBB5_3
- - 1.00 - - - - - mov edx, 1
- - - - - - - - xor eax, eax
- - 0.99 0.01 - - - - test dil, 3
- - 0.99 - - 0.01 - - sete dl
- - - - - - - - xor edi, edi
- - - 0.01 - 0.99 - - mov rax, rdi
- - - - - 1.00 - - ret
- - 0.02 0.02 - 0.96 - - add rsi, -9
- - 0.99 0.01 - - - - movabs rcx, -6148914691236517205
- - 0.01 0.99 - - - - mov rax, rsi
- - 0.01 0.99 - - - - add rsi, -9
- - - 1.00 - - - - movabs rcx, -6148914691236517205
- - 1.00 - - - - - mov rax, rsi
- - 1.00 1.00 - - - - mul rcx
- - 1.00 - - - - - shr rdx
- - 0.98 - - 0.02 - - mov rax, rdi
- - - 0.01 - 0.99 - - mov rax, rdi
- - - - - 1.00 - - ret
21 changes: 7 additions & 14 deletions zerocopy/benches/ref_from_prefix_dynamic_size.x86-64
Original file line number Diff line number Diff line change
@@ -1,17 +1,10 @@
bench_ref_from_prefix_dynamic_size:
xor edx, edx
mov eax, 0
test dil, 1
jne .LBB5_4
cmp rsi, 4
jae .LBB5_3
mov edx, 1
xor eax, eax
ret
.LBB5_3:
add rsi, -4
shr rsi
mov rdx, rsi
mov rax, rdi
.LBB5_4:
xor eax, eax
sub rdx, 4
mov rcx, rdi
cmovb rcx, rax
shr rdx
test dil, 1
cmove rax, rcx
ret
52 changes: 21 additions & 31 deletions zerocopy/benches/ref_from_prefix_dynamic_size.x86-64.mca
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
Iterations: 100
Instructions: 1400
Total Cycles: 405
Total uOps: 1400
Instructions: 900
Total Cycles: 339
Total uOps: 1100

Dispatch Width: 4
uOps Per Cycle: 3.46
IPC: 3.46
Block RThroughput: 4.0
uOps Per Cycle: 3.24
IPC: 2.65
Block RThroughput: 2.8


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

[1] [2] [3] [4] [5] [6] Instructions:
1 0 0.25 xor edx, edx
1 1 0.33 mov eax, 0
1 1 0.33 test dil, 1
1 1 1.00 jne .LBB5_4
1 1 0.33 cmp rsi, 4
1 1 1.00 jae .LBB5_3
1 1 0.33 mov edx, 1
1 0 0.25 xor eax, eax
1 1 1.00 U ret
1 1 0.33 add rsi, -4
1 1 0.50 shr rsi
1 1 0.33 mov rdx, rsi
1 1 0.33 mov rax, rdi
1 0 0.25 xor eax, eax
1 1 0.33 sub rdx, 4
1 1 0.33 mov rcx, rdi
2 2 0.67 cmovb rcx, rax
1 1 0.50 shr rdx
1 1 0.33 test dil, 1
2 2 0.67 cmove rax, rcx
1 1 1.00 U ret


Expand All @@ -47,21 +42,16 @@ Resources:

Resource pressure per iteration:
[0] [1] [2] [3] [4] [5] [6.0] [6.1]
- - 3.99 3.99 - 4.02 - -
- - 3.33 3.33 - 3.34 - -

Resource pressure by instruction:
[0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
- - - - - - - - xor edx, edx
- - 0.01 0.98 - 0.01 - - mov eax, 0
- - 0.98 0.02 - - - - test dil, 1
- - - - - 1.00 - - jne .LBB5_4
- - 0.02 0.98 - - - - cmp rsi, 4
- - - - - 1.00 - - jae .LBB5_3
- - 0.98 0.01 - 0.01 - - mov edx, 1
- - 0.33 0.66 - 0.01 - - mov rdx, rsi
- - - - - - - - xor eax, eax
- - - - - 1.00 - - ret
- - 0.01 0.99 - - - - add rsi, -4
- - 1.00 - - - - - shr rsi
- - - 1.00 - - - - mov rdx, rsi
- - 0.99 0.01 - - - - mov rax, rdi
- - 0.01 - - 0.99 - - sub rdx, 4
- - 0.66 0.34 - - - - mov rcx, rdi
- - 1.00 1.00 - - - - cmovb rcx, rax
- - 0.33 - - 0.67 - - shr rdx
- - - 0.33 - 0.67 - - test dil, 1
- - 1.00 1.00 - - - - cmove rax, rcx
- - - - - 1.00 - - ret
36 changes: 15 additions & 21 deletions zerocopy/benches/ref_from_suffix_with_elems_dynamic_padding.x86-64
Original file line number Diff line number Diff line change
@@ -1,27 +1,21 @@
bench_ref_from_suffix_with_elems_dynamic_padding:
movabs rax, 3074457345618258598
cmp rdx, rax
ja .LBB5_1
lea r8d, [rsi + rdi]
xor ecx, ecx
mov eax, 0
test r8b, 3
je .LBB5_3
mov rdx, rcx
ret
movabs rcx, 3074457345618258598
cmp rdx, rcx
ja .LBB5_3
mov rax, rdi
lea rcx, [rdx + 2*rdx]
or rcx, 3
add rcx, 9
add edi, esi
test dil, 3
setne dil
sub rsi, rcx
setb cl
or cl, dil
je .LBB5_4
.LBB5_3:
lea rax, [rdx + 2*rdx]
or rax, 3
add rax, 9
sub rsi, rax
jae .LBB5_4
.LBB5_1:
xor eax, eax
mov edx, 1
ret
.LBB5_4:
add rdi, rsi
mov rcx, rdx
mov rax, rdi
mov rdx, rcx
add rax, rsi
ret
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
Iterations: 100
Instructions: 2300
Total Cycles: 706
Total uOps: 2300
Instructions: 1800
Total Cycles: 572
Total uOps: 1800

Dispatch Width: 4
uOps Per Cycle: 3.26
IPC: 3.26
Block RThroughput: 6.0
uOps Per Cycle: 3.15
IPC: 3.15
Block RThroughput: 4.5


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

[1] [2] [3] [4] [5] [6] Instructions:
1 1 0.33 movabs rax, 3074457345618258598
1 1 0.33 cmp rdx, rax
1 1 1.00 ja .LBB5_1
1 1 0.50 lea r8d, [rsi + rdi]
1 0 0.25 xor ecx, ecx
1 1 0.33 mov eax, 0
1 1 0.33 test r8b, 3
1 1 1.00 je .LBB5_3
1 1 0.33 mov rdx, rcx
1 1 1.00 U ret
1 1 0.50 lea rax, [rdx + 2*rdx]
1 1 0.33 or rax, 3
1 1 0.33 add rax, 9
1 1 0.33 sub rsi, rax
1 1 1.00 jae .LBB5_4
1 1 0.33 movabs rcx, 3074457345618258598
1 1 0.33 cmp rdx, rcx
1 1 1.00 ja .LBB5_3
1 1 0.33 mov rax, rdi
1 1 0.50 lea rcx, [rdx + 2*rdx]
1 1 0.33 or rcx, 3
1 1 0.33 add rcx, 9
1 1 0.33 add edi, esi
1 1 0.33 test dil, 3
1 1 0.50 setne dil
1 1 0.33 sub rsi, rcx
1 1 0.50 setb cl
1 1 0.33 or cl, dil
1 1 1.00 je .LBB5_4
1 0 0.25 xor eax, eax
1 1 0.33 mov edx, 1
1 1 1.00 U ret
1 1 0.33 add rdi, rsi
1 1 0.33 mov rcx, rdx
1 1 0.33 mov rax, rdi
1 1 0.33 mov rdx, rcx
1 1 0.33 add rax, rsi
1 1 1.00 U ret


Expand All @@ -56,30 +51,25 @@ Resources:

Resource pressure per iteration:
[0] [1] [2] [3] [4] [5] [6.0] [6.1]
- - 6.99 7.00 - 7.01 - -
- - 5.66 5.66 - 5.68 - -

Resource pressure by instruction:
[0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
- - - 0.99 - 0.01 - - movabs rax, 3074457345618258598
- - 0.01 0.50 - 0.49 - - cmp rdx, rax
- - - - - 1.00 - - ja .LBB5_1
- - - 1.00 - - - - lea r8d, [rsi + rdi]
- - - - - - - - xor ecx, ecx
- - 0.50 0.49 - 0.01 - - mov eax, 0
- - 0.49 0.51 - - - - test r8b, 3
- - - - - 1.00 - - je .LBB5_3
- - 0.51 0.49 - - - - mov rdx, rcx
- - - - - 1.00 - - ret
- - 0.50 0.50 - - - - lea rax, [rdx + 2*rdx]
- - 1.00 - - - - - or rax, 3
- - 1.00 - - - - - add rax, 9
- - 0.99 0.01 - - - - sub rsi, rax
- - - - - 1.00 - - jae .LBB5_4
- - 0.67 - - 0.33 - - movabs rcx, 3074457345618258598
- - 0.34 - - 0.66 - - cmp rdx, rcx
- - - - - 1.00 - - ja .LBB5_3
- - 0.33 0.01 - 0.66 - - mov rax, rdi
- - 0.33 0.67 - - - - lea rcx, [rdx + 2*rdx]
- - 0.01 0.99 - - - - or rcx, 3
- - 0.01 0.99 - - - - add rcx, 9
- - 0.99 - - 0.01 - - add edi, esi
- - 0.99 0.01 - - - - test dil, 3
- - 0.99 - - 0.01 - - setne dil
- - - 1.00 - - - - sub rsi, rcx
- - 1.00 - - - - - setb cl
- - - 0.99 - 0.01 - - or cl, dil
- - - - - 1.00 - - je .LBB5_4
- - - - - - - - xor eax, eax
- - - 1.00 - - - - mov edx, 1
- - - - - 1.00 - - ret
- - 1.00 - - - - - add rdi, rsi
- - - 1.00 - - - - mov rcx, rdx
- - 0.99 0.01 - - - - mov rax, rdi
- - - 0.50 - 0.50 - - mov rdx, rcx
- - - 1.00 - - - - add rax, rsi
- - - - - 1.00 - - ret
31 changes: 13 additions & 18 deletions zerocopy/benches/ref_from_suffix_with_elems_dynamic_size.x86-64
Original file line number Diff line number Diff line change
@@ -1,23 +1,18 @@
bench_ref_from_suffix_with_elems_dynamic_size:
movabs rax, 4611686018427387901
cmp rdx, rax
ja .LBB5_1
lea r8d, [rsi + rdi]
xor ecx, ecx
mov eax, 0
test r8b, 1
jne .LBB5_5
lea rax, [2*rdx + 4]
sub rsi, rax
jae .LBB5_4
.LBB5_1:
movabs rcx, 4611686018427387901
cmp rdx, rcx
ja .LBB5_3
mov rax, rdi
lea rcx, [2*rdx + 4]
add edi, esi
sub rsi, rcx
setb cl
or cl, dil
test cl, 1
je .LBB5_4
.LBB5_3:
xor eax, eax
mov edx, 1
ret
.LBB5_4:
add rdi, rsi
mov rcx, rdx
mov rax, rdi
.LBB5_5:
mov rdx, rcx
add rax, rsi
ret
Loading
Loading