Skip to content
Open
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
28 changes: 15 additions & 13 deletions benches/ref_from_bytes_dynamic_padding.x86-64
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
bench_ref_from_bytes_dynamic_padding:
test dil, 3
jne .LBB5_3
movabs rax, 9223372036854775804
and rax, rsi
cmp rax, 9
jb .LBB5_3
setb cl
test dil, 3
setne dl
or dl, cl
jne .LBB5_1
add rax, -9
movabs rcx, -6148914691236517205
mul rcx
shr rdx
lea rax, [rdx + 2*rdx]
or rax, 3
add rax, 9
cmp rsi, rax
je .LBB5_4
.LBB5_3:
xor edi, edi
mov rdx, rsi
.LBB5_4:
mov rax, rdi
lea rcx, [rdx + 2*rdx]
or rcx, 3
add rcx, 9
xor eax, eax
cmp rsi, rcx
cmovne rdx, rsi
cmove rax, rdi
ret
.LBB5_1:
xor eax, eax
ret
76 changes: 41 additions & 35 deletions 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: 1900
Total Cycles: 645
Total uOps: 2000
Instructions: 2200
Total Cycles: 783
Total uOps: 2500

Dispatch Width: 4
uOps Per Cycle: 3.10
IPC: 2.95
Block RThroughput: 5.0
uOps Per Cycle: 3.19
IPC: 2.81
Block RThroughput: 6.3


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

[1] [2] [3] [4] [5] [6] Instructions:
1 1 0.33 test dil, 3
1 1 1.00 jne .LBB5_3
1 1 0.33 movabs rax, 9223372036854775804
1 1 0.33 and rax, rsi
1 1 0.33 cmp rax, 9
1 1 1.00 jb .LBB5_3
1 1 0.50 setb cl
1 1 0.33 test dil, 3
1 1 0.50 setne dl
1 1 0.33 or dl, cl
1 1 1.00 jne .LBB5_1
1 1 0.33 add rax, -9
1 1 0.33 movabs rcx, -6148914691236517205
2 4 1.00 mul rcx
1 1 0.50 shr rdx
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 cmp rsi, rax
1 1 1.00 je .LBB5_4
1 0 0.25 xor edi, edi
1 1 0.33 mov rdx, rsi
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 0 0.25 xor eax, eax
1 1 0.33 cmp rsi, rcx
2 2 0.67 cmovne rdx, rsi
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


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

Resource pressure per iteration:
[0] [1] [2] [3] [4] [5] [6.0] [6.1]
- - 6.32 6.33 - 6.35 - -
- - 7.65 7.67 - 7.68 - -

Resource pressure by instruction:
[0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
- - 0.64 0.35 - 0.01 - - test dil, 3
- - - - - 1.00 - - jne .LBB5_3
- - 0.34 0.65 - 0.01 - - movabs rax, 9223372036854775804
- - 0.35 0.65 - - - - and rax, rsi
- - 0.33 0.34 - 0.33 - - cmp rax, 9
- - - - - 1.00 - - jb .LBB5_3
- - 0.35 - - 0.65 - - add rax, -9
- - 0.97 0.01 - 0.02 - - movabs rcx, -6148914691236517205
- - - 0.99 - 0.01 - - movabs rax, 9223372036854775804
- - 0.04 0.95 - 0.01 - - and rax, rsi
- - 0.09 0.85 - 0.06 - - cmp rax, 9
- - 0.50 - - 0.50 - - setb cl
- - 0.01 0.95 - 0.04 - - test dil, 3
- - 0.36 - - 0.64 - - setne dl
- - 0.47 0.12 - 0.41 - - or dl, cl
- - - - - 1.00 - - jne .LBB5_1
- - - 0.95 - 0.05 - - add rax, -9
- - - 0.81 - 0.19 - - movabs rcx, -6148914691236517205
- - 1.00 1.00 - - - - mul rcx
- - 0.99 - - 0.01 - - shr rdx
- - 0.33 0.67 - - - - lea rax, [rdx + 2*rdx]
- - 0.34 0.66 - - - - or rax, 3
- - 0.33 0.66 - 0.01 - - add rax, 9
- - 0.01 0.99 - - - - cmp rsi, rax
- - - - - 1.00 - - je .LBB5_4
- - - - - - - - xor edi, edi
- - 0.32 0.01 - 0.67 - - mov rdx, rsi
- - 0.02 0.34 - 0.64 - - mov rax, rdi
- - 0.62 - - 0.38 - - shr rdx
- - 0.62 0.38 - - - - lea rcx, [rdx + 2*rdx]
- - 0.59 0.17 - 0.24 - - or rcx, 3
- - 0.61 0.19 - 0.20 - - add rcx, 9
- - - - - - - - xor eax, eax
- - 0.75 0.24 - 0.01 - - cmp rsi, rcx
- - 1.00 0.03 - 0.97 - - cmovne rdx, rsi
- - 0.99 0.04 - 0.97 - - cmove rax, rdi
- - - - - 1.00 - - ret
- - - - - - - - xor eax, eax
- - - - - 1.00 - - ret
26 changes: 13 additions & 13 deletions benches/ref_from_bytes_dynamic_size.x86-64
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
bench_ref_from_bytes_dynamic_size:
mov rdx, rsi
cmp rsi, 4
setb al
or al, dil
test al, 1
je .LBB5_2
mov ecx, edi
or cl, al
test cl, 1
jne .LBB5_1
lea rcx, [rsi - 4]
mov rdx, rcx
shr rdx
and rcx, -2
add rcx, 4
xor eax, eax
cmp rsi, rcx
cmovne rdx, rsi
cmove rax, rdi
ret
.LBB5_2:
lea rcx, [rdx - 4]
mov rsi, rcx
and rsi, -2
add rsi, 4
shr rcx
.LBB5_1:
xor eax, eax
cmp rdx, rsi
cmove rdx, rcx
cmove rax, rdi
ret
60 changes: 30 additions & 30 deletions benches/ref_from_bytes_dynamic_size.x86-64.mca
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
Iterations: 100
Instructions: 1800
Total Cycles: 704
Total Cycles: 606
Total uOps: 2000

Dispatch Width: 4
uOps Per Cycle: 2.84
IPC: 2.56
uOps Per Cycle: 3.30
IPC: 2.97
Block RThroughput: 5.0


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

[1] [2] [3] [4] [5] [6] Instructions:
1 1 0.33 mov rdx, rsi
1 1 0.33 cmp rsi, 4
1 1 0.50 setb al
1 1 0.33 or al, dil
1 1 0.33 test al, 1
1 1 1.00 je .LBB5_2
1 1 0.33 mov ecx, edi
1 1 0.33 or cl, al
1 1 0.33 test cl, 1
1 1 1.00 jne .LBB5_1
1 1 0.50 lea rcx, [rsi - 4]
1 1 0.33 mov rdx, rcx
1 1 0.50 shr rdx
1 1 0.33 and rcx, -2
1 1 0.33 add rcx, 4
1 0 0.25 xor eax, eax
1 1 0.33 cmp rsi, rcx
2 2 0.67 cmovne rdx, rsi
2 2 0.67 cmove rax, rdi
1 1 1.00 U ret
1 1 0.50 lea rcx, [rdx - 4]
1 1 0.33 mov rsi, rcx
1 1 0.33 and rsi, -2
1 1 0.33 add rsi, 4
1 1 0.50 shr rcx
1 0 0.25 xor eax, eax
1 1 0.33 cmp rdx, rsi
2 2 0.67 cmove rdx, rcx
2 2 0.67 cmove rax, rdi
1 1 1.00 U ret


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

Resource pressure per iteration:
[0] [1] [2] [3] [4] [5] [6.0] [6.1]
- - 5.97 5.98 - 6.05 - -
- - 6.00 6.00 - 6.00 - -

Resource pressure by instruction:
[0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
- - 0.97 0.01 - 0.02 - - mov rdx, rsi
- - 0.01 0.02 - 0.97 - - cmp rsi, 4
- - 0.03 - - 0.97 - - setb al
- - 0.01 0.02 - 0.97 - - or al, dil
- - - 0.98 - 0.02 - - test al, 1
- - - - - 1.00 - - je .LBB5_2
- - 0.99 - - 0.01 - - cmp rsi, 4
- - 1.00 - - - - - setb al
- - 0.98 0.02 - - - - mov ecx, edi
- - 0.98 0.01 - 0.01 - - or cl, al
- - 0.01 0.99 - - - - test cl, 1
- - - - - 1.00 - - jne .LBB5_1
- - 0.99 0.01 - - - - lea rcx, [rsi - 4]
- - 0.02 0.98 - - - - mov rdx, rcx
- - - - - 1.00 - - shr rdx
- - 0.99 0.01 - - - - and rcx, -2
- - - 1.00 - - - - add rcx, 4
- - - - - - - - xor eax, eax
- - 0.02 0.98 - - - - cmp rsi, rcx
- - 0.01 1.00 - 0.99 - - cmovne rdx, rsi
- - 0.01 1.00 - 0.99 - - cmove rax, rdi
- - - - - 1.00 - - ret
- - 0.98 0.02 - - - - lea rcx, [rdx - 4]
- - 0.01 0.99 - - - - mov rsi, rcx
- - - 0.98 - 0.02 - - and rsi, -2
- - 0.98 0.01 - 0.01 - - add rsi, 4
- - 0.99 - - 0.01 - - shr rcx
- - - - - - - - xor eax, eax
- - 0.02 0.97 - 0.01 - - cmp rdx, rsi
- - 0.99 0.99 - 0.02 - - cmove rdx, rcx
- - 0.98 0.99 - 0.03 - - cmove rax, rdi
- - - - - 1.00 - - ret
16 changes: 7 additions & 9 deletions benches/ref_from_bytes_with_elems_dynamic_padding.x86-64
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
bench_ref_from_bytes_with_elems_dynamic_padding:
movabs rax, 3074457345618258598
cmp rdx, rax
seta cl
movabs rcx, 3074457345618258598
cmp rdx, rcx
ja .LBB5_3
mov rax, rdi
test al, 3
setne dil
or dil, cl
jne .LBB5_2
jne .LBB5_3
lea rcx, [rdx + 2*rdx]
or rcx, 3
add rcx, 9
cmp rsi, rcx
je .LBB5_3
.LBB5_2:
jne .LBB5_3
ret
.LBB5_3:
xor eax, eax
mov rdx, rsi
.LBB5_3:
ret
52 changes: 25 additions & 27 deletions benches/ref_from_bytes_with_elems_dynamic_padding.x86-64.mca
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
Iterations: 100
Instructions: 1600
Total Cycles: 539
Total uOps: 1700
Instructions: 1500
Total Cycles: 505
Total uOps: 1500

Dispatch Width: 4
uOps Per Cycle: 3.15
uOps Per Cycle: 2.97
IPC: 2.97
Block RThroughput: 4.3
Block RThroughput: 5.0


Instruction Info:
Expand All @@ -18,19 +18,18 @@ 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
2 2 1.00 seta cl
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.33 test al, 3
1 1 0.50 setne dil
1 1 0.33 or dil, cl
1 1 1.00 jne .LBB5_2
1 1 1.00 jne .LBB5_3
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 cmp rsi, rcx
1 1 1.00 je .LBB5_3
1 1 1.00 jne .LBB5_3
1 1 1.00 U ret
1 0 0.25 xor eax, eax
1 1 0.33 mov rdx, rsi
1 1 1.00 U ret
Expand All @@ -49,23 +48,22 @@ Resources:

Resource pressure per iteration:
[0] [1] [2] [3] [4] [5] [6.0] [6.1]
- - 5.33 5.32 - 5.35 - -
- - 4.49 4.49 - 5.02 - -

Resource pressure by instruction:
[0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
- - 0.01 0.98 - 0.01 - - movabs rax, 3074457345618258598
- - - 1.00 - - - - cmp rdx, rax
- - 1.98 - - 0.02 - - seta cl
- - 0.02 0.98 - - - - mov rax, rdi
- - - 0.67 - 0.33 - - test al, 3
- - 0.67 - - 0.33 - - setne dil
- - 0.99 - - 0.01 - - or dil, cl
- - - - - 1.00 - - jne .LBB5_2
- - 0.01 0.99 - - - - lea rcx, [rdx + 2*rdx]
- - - 0.01 - 0.99 - - or rcx, 3
- - 0.65 0.02 - 0.33 - - add rcx, 9
- - 0.99 0.01 - - - - cmp rsi, rcx
- - - - - 1.00 - - je .LBB5_3
- - 0.97 0.02 - 0.01 - - movabs rcx, 3074457345618258598
- - 0.50 0.50 - - - - cmp rdx, rcx
- - - - - 1.00 - - ja .LBB5_3
- - 0.50 0.50 - - - - mov rax, rdi
- - 0.02 0.97 - 0.01 - - test al, 3
- - - - - 1.00 - - jne .LBB5_3
- - 0.97 0.03 - - - - lea rcx, [rdx + 2*rdx]
- - 0.50 0.50 - - - - or rcx, 3
- - 0.03 0.97 - - - - add rcx, 9
- - 0.03 0.97 - - - - cmp rsi, rcx
- - - - - 1.00 - - jne .LBB5_3
- - - - - 1.00 - - ret
- - - - - - - - xor eax, eax
- - 0.01 0.66 - 0.33 - - mov rdx, rsi
- - 0.97 0.03 - - - - mov rdx, rsi
- - - - - 1.00 - - ret
13 changes: 6 additions & 7 deletions benches/ref_from_bytes_with_elems_dynamic_size.x86-64
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
bench_ref_from_bytes_with_elems_dynamic_size:
movabs rax, 4611686018427387901
cmp rdx, rax
seta cl
movabs rcx, 4611686018427387901
cmp rdx, rcx
ja .LBB5_2
mov rax, rdi
or dil, cl
test dil, 1
jne .LBB5_2
lea rcx, [2*rdx + 4]
cmp rsi, rcx
and edi, 1
xor rcx, rsi
or rcx, rdi
je .LBB5_3
.LBB5_2:
xor eax, eax
Expand Down
Loading
Loading