Skip to content

Commit

Permalink
add tight loop
Browse files Browse the repository at this point in the history
  • Loading branch information
travisdowns committed May 29, 2018
1 parent 59e0b6c commit 6cef046
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 1 deletion.
12 changes: 11 additions & 1 deletion misc-benches.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ bench2_f indirect_dense_call_pred;
bench2_f indirect_dense_call_unpred;
bench2_f loop_weirdness_fast;

bench2_f tight_loop1;
bench2_f tight_loop2;
bench2_f tight_loop3;

bench2_f dep_add_noloop_128;
}

Expand Down Expand Up @@ -72,7 +76,13 @@ void register_misc(GroupList& list) {
default_maker::template make_bench<misc_flag_merge_3>(misc_group.get(), "flag-merge-3", "Flag merge 3", 128,
null_provider, iters),
default_maker::template make_bench<misc_flag_merge_4>(misc_group.get(), "flag-merge-4", "Flag merge 4", 128,
null_provider, iters),
null_provider, iters),
default_maker::template make_bench<tight_loop1>(misc_group.get(), "tight-loop1", "Tight dec loop", 1,
null_provider, iters * 10),
default_maker::template make_bench<tight_loop2>(misc_group.get(), "tight-loop2", "Tight dec loop taken jmp", 1,
null_provider, iters * 10),
default_maker::template make_bench<tight_loop3>(misc_group.get(), "tight-loop3", "Tight dec loop untaken jmp", 1,
null_provider, iters * 10),

// https://news.ycombinator.com/item?id=15935283
default_maker::template make_bench<loop_weirdness_fast>(misc_group.get(), "loop-weirdness-fast", "Loop weirdness fast", 1,
Expand Down
27 changes: 27 additions & 0 deletions x86_methods.asm
Original file line number Diff line number Diff line change
Expand Up @@ -916,6 +916,33 @@ dec rdi
jne .top
rep ret

define_bench tight_loop1
.top:
dec rdi
jne .top
rep ret


define_bench tight_loop2
.top:
xor eax, eax
jz .l1
nop
.l1:
dec rdi
jne .top
rep ret

define_bench tight_loop3
.top:
xor eax, eax
jnz .l1
nop
.l1:
dec rdi
jne .top
rep ret

%macro fwd_lat_with_delay 1
define_bench fwd_lat_delay_%1
lea rdx, [rsp - 8]
Expand Down

0 comments on commit 6cef046

Please sign in to comment.