From c31a684212cfc53bd2bcb3a918490246546328eb Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 6 Apr 2019 07:05:03 +0200 Subject: binary search from Rosetta Code --- test/monniaux/binary_search/Makefile | 26 +++++++++++++++ test/monniaux/binary_search/binary_search.c | 52 +++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 test/monniaux/binary_search/Makefile create mode 100644 test/monniaux/binary_search/binary_search.c (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/Makefile b/test/monniaux/binary_search/Makefile new file mode 100644 index 00000000..7739e4ca --- /dev/null +++ b/test/monniaux/binary_search/Makefile @@ -0,0 +1,26 @@ +include ../rules.mk + +PRODUCTS=binary_search.gcc.host.out binary_search.ccomp.host.out \ + binary_search.gcc.k1c.out binary_search.ccomp.k1c.out \ + binary_search.gcc.k1c.s binary_search.ccomp.k1c.s + +all: $(PRODUCTS) + +binary_search.gcc.host.s binary_search.ccomp.host.s binary_search.gcc.k1c.s binary_search.ccomp.k1c.s : ../clock.h + +binary_search.ccomp.host: binary_search.ccomp.host.o ../clock.gcc.host.o + $(CCOMP) $(CCOMPFLAGS) $+ -o $@ + +binary_search.gcc.host: binary_search.gcc.host.o ../clock.gcc.host.o + $(CC) $(CFLAGS) $+ -o $@ + +binary_search.gcc.k1c: binary_search.gcc.k1c.o ../clock.gcc.k1c.o + $(K1C_CC) $(K1C_CFLAGS) $+ -o $@ + +binary_search.ccomp.k1c: binary_search.ccomp.k1c.o ../clock.gcc.k1c.o + $(K1C_CCOMP) $(K1C_CCOMPFLAGS) $+ -o $@ + +clean: + -rm -f *.o *.s *.k1c + +.PHONY: clean diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c new file mode 100644 index 00000000..9b54f28d --- /dev/null +++ b/test/monniaux/binary_search/binary_search.c @@ -0,0 +1,52 @@ +#include +#include +#include +#include "../clock.h" + +typedef int data; +typedef int index; + +int my_bsearch (data *a, index n, data x) { + index i = 0, j = n - 1; + while (i <= j) { + index k = (i + j) / 2; + if (a[k] == x) { + return k; + } + else if (a[k] < x) { + i = k + 1; + } + else { + j = k - 1; + } + } + return -1; +} + +void random_ascending_fill(data *a, index n) { + unsigned r = 41; + data v = 0; + for(index i=0; i Date: Sat, 6 Apr 2019 09:07:17 +0200 Subject: no need for this to be in two_address_op --- test/monniaux/binary_search/binary_search.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index 9b54f28d..1fbc37b8 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -4,7 +4,7 @@ #include "../clock.h" typedef int data; -typedef int index; +typedef unsigned index; int my_bsearch (data *a, index n, data x) { index i = 0, j = n - 1; -- cgit From 1e6ab01a46c89dfb2d79303f69d8716cd4a5a903 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 6 Apr 2019 09:45:25 +0200 Subject: have one with specific position --- test/monniaux/binary_search/binary_search.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index 1fbc37b8..c8131c38 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -43,7 +43,7 @@ int main () { timestamp1 = get_current_cycle()-timestamp1; cycle_t timestamp2 = get_current_cycle(); - index pos = my_bsearch(buf, n, 1501); + index pos = my_bsearch(buf, n, 1502); timestamp2 = get_current_cycle()-timestamp2; printf("position: %d\nrandom fill cycles: %" PRIu64 "\nsearch cycles: %" PRIu64 "\n", pos, timestamp1, timestamp2); -- cgit From 240991557c2ca704fc2bd21373fab23da69716e0 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 6 Apr 2019 09:50:22 +0200 Subject: hand optimizations --- .../binary_search.ccomp.k1c.s.optimized01 | 204 +++++++++++++++++++++ .../binary_search.ccomp.k1c.s.optimized02 | 203 ++++++++++++++++++++ 2 files changed, 407 insertions(+) create mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized01 create mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized02 (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized01 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized01 new file mode 100644 index 00000000..7d9df872 --- /dev/null +++ b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized01 @@ -0,0 +1,204 @@ +# File generated by CompCert 3.5 +# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s + .section .rodata + .balign 1 +__stringlit_1: + .ascii "position: %d\012random fill cycles: %lu\012search cycles: %lu\012\000" + .type __stringlit_1, @object + .size __stringlit_1, . - __stringlit_1 + .text + .balign 2 + .globl my_bsearch +my_bsearch: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r4, 0 + addw $r6 = $r1, -1 +;; +.L100: + addw $r5 = $r4, $r6 +;; + srlw $r3 = $r5, 1 +;; + zxwd $r5 = $r3 +;; + slld $r8 = $r5, 2 +;; + lws $r1 = $r8[$r0] +;; + compw.eq $r32 = $r1, $r2 +;; + cb.wnez $r32? .L101 +;; + compw.lt $r32 = $r1, $r2 +;; + cb.wnez $r32? .L102 +;; + addw $r6 = $r3, -1 + goto .L103 +;; +.L102: + addw $r4 = $r3, 1 +;; +.L103: + compw.leu $r32 = $r4, $r6 +;; + cb.wnez $r32? .L100 +;; + make $r0, -1 + goto .L104 +;; +.L101: + addd $r0 = $r3, 0 +;; +.L104: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch, @function + .size my_bsearch, . - my_bsearch + .text + .balign 2 + .globl random_ascending_fill +random_ascending_fill: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r7, 41 + make $r8, 0 + make $r6, 0 +;; +.L105: + compw.geu $r32 = $r6, $r1 +;; + cb.wnez $r32? .L106 +;; + zxwd $r2 = $r6 + andw $r3 = $r7, 1073741824 +;; + slld $r4 = $r2, 2 +;; + sw $r4[$r0] = $r8 + addw $r8 = $r8, 1 + cb.weqz $r3? .L107 +;; + addw $r8 = $r8, 1 +;; +.L107: + mulw $r2 = $r7, 97 + addw $r6 = $r6, 1 +;; + addw $r7 = $r2, 5 + goto .L105 +;; +.L106: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type random_ascending_fill, @function + .size random_ascending_fill, . - random_ascending_fill + .text + .balign 2 + .globl main +main: + addd $r17 = $r12, 0 + addd $r12 = $r12, -64 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + sd 16[$r12] = $r18 + make $r0, 20000 +;; + sd 24[$r12] = $r19 +;; + sd 32[$r12] = $r20 +;; + sd 40[$r12] = $r21 +;; + sd 48[$r12] = $r22 + make $r22, 5000 + call malloc +;; + addd $r21 = $r0, 0 + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r1 = $r22, 0 + addd $r0 = $r21, 0 + call random_ascending_fill +;; + call get_current_cycle +;; + sbfd $r19 = $r18, $r0 + call get_current_cycle +;; + addd $r20 = $r0, 0 + make $r2, 1502 + addd $r1 = $r22, 0 + addd $r0 = $r21, 0 + call my_bsearch +;; + addd $r18 = $r0, 0 + call get_current_cycle +;; + sbfd $r3 = $r20, $r0 + make $r0 = __stringlit_1 + addd $r2 = $r19, 0 + addd $r1 = $r18, 0 + call printf +;; + addd $r0 = $r21, 0 + call free +;; + make $r0, 0 +;; + ld $r18 = 16[$r12] +;; + ld $r19 = 24[$r12] +;; + ld $r20 = 32[$r12] +;; + ld $r21 = 40[$r12] +;; + ld $r22 = 48[$r12] +;; + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 64 +;; + ret +;; + .type main, @function + .size main, . - main diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized02 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized02 new file mode 100644 index 00000000..b148e33f --- /dev/null +++ b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized02 @@ -0,0 +1,203 @@ +# File generated by CompCert 3.5 +# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s + .section .rodata + .balign 1 +__stringlit_1: + .ascii "position: %d\012random fill cycles: %lu\012search cycles: %lu\012\000" + .type __stringlit_1, @object + .size __stringlit_1, . - __stringlit_1 + .text + .balign 2 + .globl my_bsearch +my_bsearch: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r4, 0 + addw $r6 = $r1, -1 +;; +.L100: + addw $r5 = $r4, $r6 +;; + srlw $r3 = $r5, 1 +;; + zxwd $r5 = $r3 +;; + slld $r8 = $r5, 2 +;; + lws $r1 = $r8[$r0] +;; + compw.eq $r32 = $r1, $r2 + compw.lt $r33 = $r1, $r2 +;; + cb.wnez $r32? .L101 +;; + cb.wnez $r33? .L102 +;; + addw $r6 = $r3, -1 + goto .L103 +;; +.L102: + addw $r4 = $r3, 1 +;; +.L103: + compw.leu $r32 = $r4, $r6 +;; + cb.wnez $r32? .L100 +;; + make $r0, -1 + goto .L104 +;; +.L101: + addd $r0 = $r3, 0 +;; +.L104: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch, @function + .size my_bsearch, . - my_bsearch + .text + .balign 2 + .globl random_ascending_fill +random_ascending_fill: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r7, 41 + make $r8, 0 + make $r6, 0 +;; +.L105: + compw.geu $r32 = $r6, $r1 +;; + cb.wnez $r32? .L106 +;; + zxwd $r2 = $r6 + andw $r3 = $r7, 1073741824 +;; + slld $r4 = $r2, 2 +;; + sw $r4[$r0] = $r8 + addw $r8 = $r8, 1 + cb.weqz $r3? .L107 +;; + addw $r8 = $r8, 1 +;; +.L107: + mulw $r2 = $r7, 97 + addw $r6 = $r6, 1 +;; + addw $r7 = $r2, 5 + goto .L105 +;; +.L106: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type random_ascending_fill, @function + .size random_ascending_fill, . - random_ascending_fill + .text + .balign 2 + .globl main +main: + addd $r17 = $r12, 0 + addd $r12 = $r12, -64 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + sd 16[$r12] = $r18 + make $r0, 20000 +;; + sd 24[$r12] = $r19 +;; + sd 32[$r12] = $r20 +;; + sd 40[$r12] = $r21 +;; + sd 48[$r12] = $r22 + make $r22, 5000 + call malloc +;; + addd $r21 = $r0, 0 + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r1 = $r22, 0 + addd $r0 = $r21, 0 + call random_ascending_fill +;; + call get_current_cycle +;; + sbfd $r19 = $r18, $r0 + call get_current_cycle +;; + addd $r20 = $r0, 0 + make $r2, 1502 + addd $r1 = $r22, 0 + addd $r0 = $r21, 0 + call my_bsearch +;; + addd $r18 = $r0, 0 + call get_current_cycle +;; + sbfd $r3 = $r20, $r0 + make $r0 = __stringlit_1 + addd $r2 = $r19, 0 + addd $r1 = $r18, 0 + call printf +;; + addd $r0 = $r21, 0 + call free +;; + make $r0, 0 +;; + ld $r18 = 16[$r12] +;; + ld $r19 = 24[$r12] +;; + ld $r20 = 32[$r12] +;; + ld $r21 = 40[$r12] +;; + ld $r22 = 48[$r12] +;; + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 64 +;; + ret +;; + .type main, @function + .size main, . - main -- cgit From e37652d0419529aa86d886ea6cc2d9c06eac6186 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 6 Apr 2019 10:09:36 +0200 Subject: use of ternary operators --- test/monniaux/binary_search/binary_search.c | 31 ++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index c8131c38..73e77a6c 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -2,10 +2,12 @@ #include #include #include "../clock.h" +#include "../ternary.h" typedef int data; typedef unsigned index; +/* from Rosetta code */ int my_bsearch (data *a, index n, data x) { index i = 0, j = n - 1; while (i <= j) { @@ -23,6 +25,19 @@ int my_bsearch (data *a, index n, data x) { return -1; } +int my_bsearch2 (data *a, index n, data x) { + index i = 0, j = n - 1; + while (i <= j) { + index k = (i + j) / 2; + if (a[k] == x) { + return k; + } + i = TERNARY32(a[k] < x, k+1, i); + j = TERNARY32(a[k] > x, k-1, j); + } + return -1; +} + void random_ascending_fill(data *a, index n) { unsigned r = 41; data v = 0; @@ -36,17 +51,27 @@ void random_ascending_fill(data *a, index n) { int main () { index n=5000; + data v=1502; data *buf=malloc(n*sizeof(data)); - cycle_t timestamp1 = get_current_cycle(); + cycle_t timestamp0 = get_current_cycle(); random_ascending_fill(buf, n); + timestamp0 = get_current_cycle()-timestamp0; + + cycle_t timestamp1 = get_current_cycle(); + index pos1 = my_bsearch(buf, n, v); timestamp1 = get_current_cycle()-timestamp1; cycle_t timestamp2 = get_current_cycle(); - index pos = my_bsearch(buf, n, 1502); + index pos2 = my_bsearch(buf, n, v); timestamp2 = get_current_cycle()-timestamp2; - printf("position: %d\nrandom fill cycles: %" PRIu64 "\nsearch cycles: %" PRIu64 "\n", pos, timestamp1, timestamp2); + printf("position1: %d\n" + "position2: %d\n" + "random fill cycles: %" PRIu64 "\n" + "search1 cycles: %" PRIu64 "\n" + "search2 cycles: %" PRIu64 "\n", + pos1, pos2, timestamp0, timestamp1, timestamp2); free(buf); } -- cgit From ee711720964905a34fd78669f2f3e996287c8d33 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 6 Apr 2019 10:22:38 +0200 Subject: there seems to be some cache preload involved? --- test/monniaux/binary_search/binary_search.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index 73e77a6c..8cc6f565 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -58,12 +58,13 @@ int main () { random_ascending_fill(buf, n); timestamp0 = get_current_cycle()-timestamp0; + my_bsearch(buf, n, v); cycle_t timestamp1 = get_current_cycle(); index pos1 = my_bsearch(buf, n, v); timestamp1 = get_current_cycle()-timestamp1; cycle_t timestamp2 = get_current_cycle(); - index pos2 = my_bsearch(buf, n, v); + index pos2 = my_bsearch2(buf, n, v); timestamp2 = get_current_cycle()-timestamp2; printf("position1: %d\n" -- cgit From 4938c455062ed72a41edaddbf212086efaae7570 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 6 Apr 2019 10:46:04 +0200 Subject: goto end --- test/monniaux/binary_search/binary_search.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index 8cc6f565..0a69998d 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -38,6 +38,22 @@ int my_bsearch2 (data *a, index n, data x) { return -1; } +int my_bsearch3 (data *a, index n, data x) { + index i = 0, j = n - 1, k; + while (i <= j) { + k = (i + j) / 2; + if (a[k] == x) { + goto end; + return k; + } + i = TERNARY32(a[k] < x, k+1, i); + j = TERNARY32(a[k] > x, k-1, j); + } + k=-1; + end: + return k; +} + void random_ascending_fill(data *a, index n) { unsigned r = 41; data v = 0; @@ -67,12 +83,19 @@ int main () { index pos2 = my_bsearch2(buf, n, v); timestamp2 = get_current_cycle()-timestamp2; + cycle_t timestamp3 = get_current_cycle(); + index pos3 = my_bsearch3(buf, n, v); + timestamp3 = get_current_cycle()-timestamp3; + printf("position1: %d\n" "position2: %d\n" + "position3: %d\n" "random fill cycles: %" PRIu64 "\n" "search1 cycles: %" PRIu64 "\n" - "search2 cycles: %" PRIu64 "\n", - pos1, pos2, timestamp0, timestamp1, timestamp2); + "search2 cycles: %" PRIu64 "\n" + "search3 cycles: %" PRIu64 "\n", + pos1, pos2, pos3, + timestamp0, timestamp1, timestamp2, timestamp3); free(buf); } -- cgit From ff727c67b51dae07a2f3910ea87a11c3d82d05f9 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 6 Apr 2019 10:49:35 +0200 Subject: reoptimize by hand --- test/monniaux/binary_search/binary_search.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index 0a69998d..6be80c59 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -42,12 +42,11 @@ int my_bsearch3 (data *a, index n, data x) { index i = 0, j = n - 1, k; while (i <= j) { k = (i + j) / 2; + i = TERNARY32(a[k] < x, k+1, i); + j = TERNARY32(a[k] > x, k-1, j); if (a[k] == x) { goto end; - return k; } - i = TERNARY32(a[k] < x, k+1, i); - j = TERNARY32(a[k] > x, k-1, j); } k=-1; end: -- cgit From fcd76683e5cc5f8d4b9a2179df6ea1dc9614c39a Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 6 Apr 2019 10:54:18 +0200 Subject: various hand optimizations --- .../binary_search.ccomp.k1c.s.optimized03 | 291 ++++++++++++++++ .../binary_search.ccomp.k1c.s.optimized04 | 288 ++++++++++++++++ .../binary_search.ccomp.k1c.s.optimized05 | 287 ++++++++++++++++ .../binary_search.ccomp.k1c.s.optimized06 | 287 ++++++++++++++++ .../binary_search.ccomp.k1c.s.optimized07 | 372 +++++++++++++++++++++ 5 files changed, 1525 insertions(+) create mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized03 create mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized04 create mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized05 create mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized06 create mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized07 (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized03 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized03 new file mode 100644 index 00000000..8eabb5dd --- /dev/null +++ b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized03 @@ -0,0 +1,291 @@ +# File generated by CompCert 3.5 +# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s + .section .rodata + .balign 1 +__stringlit_1: + .ascii "position1: %d\012position2: %d\012random fill cycles: %lu\012search1 cycles: %lu\012search2 cycles: %lu\012\000" + .type __stringlit_1, @object + .size __stringlit_1, . - __stringlit_1 + .text + .balign 2 + .globl my_bsearch +my_bsearch: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r4, 0 + addw $r6 = $r1, -1 +;; +.L100: + addw $r5 = $r4, $r6 +;; + srlw $r3 = $r5, 1 +;; + zxwd $r5 = $r3 +;; + slld $r8 = $r5, 2 +;; + lws $r1 = $r8[$r0] +;; + compw.eq $r32 = $r1, $r2 +;; + cb.wnez $r32? .L101 +;; + compw.lt $r32 = $r1, $r2 +;; + cb.wnez $r32? .L102 +;; + addw $r6 = $r3, -1 + goto .L103 +;; +.L102: + addw $r4 = $r3, 1 +;; +.L103: + compw.leu $r32 = $r4, $r6 +;; + cb.wnez $r32? .L100 +;; + make $r0, -1 + goto .L104 +;; +.L101: + addd $r0 = $r3, 0 +;; +.L104: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch, @function + .size my_bsearch, . - my_bsearch + .text + .balign 2 + .globl my_bsearch2 +my_bsearch2: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r5, 0 + addw $r4 = $r1, -1 +;; +.L105: + addw $r9 = $r5, $r4 +;; + srlw $r1 = $r9, 1 +;; + lws.xs $r7 = $r1[$r0] +;; + compw.ne $r32 = $r7, $r2 +;; + cb.wnez $r32? .L106 +;; + addd $r0 = $r1, 0 + goto .L107 +;; +.L106: + compw.lt $r3 = $r7, $r2 + addw $r6 = $r1, 1 + addw $r1 = $r1, -1 +;; + cmoved.wnez $r3? $r5 = $r6 + compw.gt $r6 = $r7, $r2 +;; + cmoved.wnez $r6? $r4 = $r1 +;; + compw.leu $r32 = $r5, $r4 +;; + cb.wnez $r32? .L105 +;; + make $r0, -1 +;; +.L107: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch2, @function + .size my_bsearch2, . - my_bsearch2 + .text + .balign 2 + .globl random_ascending_fill +random_ascending_fill: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r7, 41 + make $r8, 0 + make $r6, 0 +;; +.L108: + compw.geu $r32 = $r6, $r1 +;; + cb.wnez $r32? .L109 +;; + zxwd $r2 = $r6 + andw $r3 = $r7, 1073741824 +;; + slld $r4 = $r2, 2 +;; + sw $r4[$r0] = $r8 + addw $r8 = $r8, 1 + cb.weqz $r3? .L110 +;; + addw $r8 = $r8, 1 +;; +.L110: + mulw $r2 = $r7, 97 + addw $r6 = $r6, 1 +;; + addw $r7 = $r2, 5 + goto .L108 +;; +.L109: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type random_ascending_fill, @function + .size random_ascending_fill, . - random_ascending_fill + .text + .balign 2 + .globl main +main: + addd $r17 = $r12, 0 + addd $r12 = $r12, -80 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + sd 16[$r12] = $r18 + make $r0, 20000 +;; + sd 24[$r12] = $r19 +;; + sd 32[$r12] = $r20 +;; + sd 40[$r12] = $r21 +;; + sd 48[$r12] = $r22 +;; + sd 56[$r12] = $r23 + make $r23, 1502 +;; + sd 64[$r12] = $r24 + make $r24, 5000 +;; + sd 72[$r12] = $r25 + call malloc +;; + addd $r19 = $r0, 0 + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call random_ascending_fill +;; + call get_current_cycle +;; + sbfd $r21 = $r18, $r0 + addd $r2 = $r23, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call my_bsearch +;; + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r2 = $r23, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call my_bsearch +;; + addd $r22 = $r0, 0 + call get_current_cycle +;; + sbfd $r20 = $r18, $r0 + call get_current_cycle +;; + addd $r25 = $r0, 0 + addd $r2 = $r23, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call my_bsearch2 +;; + addd $r18 = $r0, 0 + call get_current_cycle +;; + sbfd $r5 = $r25, $r0 + make $r0 = __stringlit_1 + addd $r4 = $r20, 0 + addd $r3 = $r21, 0 +;; + addd $r2 = $r18, 0 + addd $r1 = $r22, 0 + call printf +;; + addd $r0 = $r19, 0 + call free +;; + make $r0, 0 + ld $r16 = 8[$r12] +;; + ld $r18 = 16[$r12] +;; + ld $r19 = 24[$r12] +;; + ld $r20 = 32[$r12] + set $ra = $r16 +;; + ld $r21 = 40[$r12] +;; + ld $r22 = 48[$r12] +;; + ld $r23 = 56[$r12] +;; + ld $r24 = 64[$r12] +;; + ld $r25 = 72[$r12] +;; + addd $r12 = $r12, 80 +;; + ret +;; + .type main, @function + .size main, . - main diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized04 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized04 new file mode 100644 index 00000000..2e4ff5c6 --- /dev/null +++ b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized04 @@ -0,0 +1,288 @@ +# File generated by CompCert 3.5 +# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s + .section .rodata + .balign 1 +__stringlit_1: + .ascii "position1: %d\012position2: %d\012random fill cycles: %lu\012search1 cycles: %lu\012search2 cycles: %lu\012\000" + .type __stringlit_1, @object + .size __stringlit_1, . - __stringlit_1 + .text + .balign 2 + .globl my_bsearch +my_bsearch: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r4, 0 + addw $r6 = $r1, -1 +;; +.L100: + addw $r5 = $r4, $r6 +;; + srlw $r3 = $r5, 1 +;; + zxwd $r5 = $r3 +;; + slld $r8 = $r5, 2 +;; + lws $r1 = $r8[$r0] +;; + compw.eq $r32 = $r1, $r2 +;; + cb.wnez $r32? .L101 +;; + compw.lt $r32 = $r1, $r2 +;; + cb.wnez $r32? .L102 +;; + addw $r6 = $r3, -1 + goto .L103 +;; +.L102: + addw $r4 = $r3, 1 +;; +.L103: + compw.leu $r32 = $r4, $r6 +;; + cb.wnez $r32? .L100 +;; + make $r0, -1 + goto .L104 +;; +.L101: + addd $r0 = $r3, 0 +;; +.L104: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch, @function + .size my_bsearch, . - my_bsearch + .text + .balign 2 + .globl my_bsearch2 +my_bsearch2: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r5, 0 + addw $r4 = $r1, -1 +;; +.L105: + addw $r9 = $r5, $r4 +;; + srlw $r1 = $r9, 1 +;; + lws.xs $r7 = $r1[$r0] +;; + compw.ne $r32 = $r7, $r2 +;; + cb.weqz $r32? .L107 +;; + compw.lt $r3 = $r7, $r2 + addw $r6 = $r1, 1 + addw $r1 = $r1, -1 +;; + cmoved.wnez $r3? $r5 = $r6 + compw.gt $r6 = $r7, $r2 +;; + cmoved.wnez $r6? $r4 = $r1 +;; + compw.leu $r32 = $r5, $r4 +;; + cb.wnez $r32? .L105 +;; + make $r0, -1 +;; +.L107: + addd $r0 = $r1, 0 + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch2, @function + .size my_bsearch2, . - my_bsearch2 + .text + .balign 2 + .globl random_ascending_fill +random_ascending_fill: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r7, 41 + make $r8, 0 + make $r6, 0 +;; +.L108: + compw.geu $r32 = $r6, $r1 +;; + cb.wnez $r32? .L109 +;; + zxwd $r2 = $r6 + andw $r3 = $r7, 1073741824 +;; + slld $r4 = $r2, 2 +;; + sw $r4[$r0] = $r8 + addw $r8 = $r8, 1 + cb.weqz $r3? .L110 +;; + addw $r8 = $r8, 1 +;; +.L110: + mulw $r2 = $r7, 97 + addw $r6 = $r6, 1 +;; + addw $r7 = $r2, 5 + goto .L108 +;; +.L109: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type random_ascending_fill, @function + .size random_ascending_fill, . - random_ascending_fill + .text + .balign 2 + .globl main +main: + addd $r17 = $r12, 0 + addd $r12 = $r12, -80 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + sd 16[$r12] = $r18 + make $r0, 20000 +;; + sd 24[$r12] = $r19 +;; + sd 32[$r12] = $r20 +;; + sd 40[$r12] = $r21 +;; + sd 48[$r12] = $r22 +;; + sd 56[$r12] = $r23 + make $r23, 1502 +;; + sd 64[$r12] = $r24 + make $r24, 5000 +;; + sd 72[$r12] = $r25 + call malloc +;; + addd $r19 = $r0, 0 + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call random_ascending_fill +;; + call get_current_cycle +;; + sbfd $r21 = $r18, $r0 + addd $r2 = $r23, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call my_bsearch +;; + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r2 = $r23, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call my_bsearch +;; + addd $r22 = $r0, 0 + call get_current_cycle +;; + sbfd $r20 = $r18, $r0 + call get_current_cycle +;; + addd $r25 = $r0, 0 + addd $r2 = $r23, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call my_bsearch2 +;; + addd $r18 = $r0, 0 + call get_current_cycle +;; + sbfd $r5 = $r25, $r0 + make $r0 = __stringlit_1 + addd $r4 = $r20, 0 + addd $r3 = $r21, 0 +;; + addd $r2 = $r18, 0 + addd $r1 = $r22, 0 + call printf +;; + addd $r0 = $r19, 0 + call free +;; + make $r0, 0 + ld $r16 = 8[$r12] +;; + ld $r18 = 16[$r12] +;; + ld $r19 = 24[$r12] +;; + ld $r20 = 32[$r12] + set $ra = $r16 +;; + ld $r21 = 40[$r12] +;; + ld $r22 = 48[$r12] +;; + ld $r23 = 56[$r12] +;; + ld $r24 = 64[$r12] +;; + ld $r25 = 72[$r12] +;; + addd $r12 = $r12, 80 +;; + ret +;; + .type main, @function + .size main, . - main diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized05 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized05 new file mode 100644 index 00000000..9f54a967 --- /dev/null +++ b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized05 @@ -0,0 +1,287 @@ +# File generated by CompCert 3.5 +# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s + .section .rodata + .balign 1 +__stringlit_1: + .ascii "position1: %d\012position2: %d\012random fill cycles: %lu\012search1 cycles: %lu\012search2 cycles: %lu\012\000" + .type __stringlit_1, @object + .size __stringlit_1, . - __stringlit_1 + .text + .balign 2 + .globl my_bsearch +my_bsearch: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r4, 0 + addw $r6 = $r1, -1 +;; +.L100: + addw $r5 = $r4, $r6 +;; + srlw $r3 = $r5, 1 +;; + zxwd $r5 = $r3 +;; + slld $r8 = $r5, 2 +;; + lws $r1 = $r8[$r0] +;; + compw.eq $r32 = $r1, $r2 +;; + cb.wnez $r32? .L101 +;; + compw.lt $r32 = $r1, $r2 +;; + cb.wnez $r32? .L102 +;; + addw $r6 = $r3, -1 + goto .L103 +;; +.L102: + addw $r4 = $r3, 1 +;; +.L103: + compw.leu $r32 = $r4, $r6 +;; + cb.wnez $r32? .L100 +;; + make $r0, -1 + goto .L104 +;; +.L101: + addd $r0 = $r3, 0 +;; +.L104: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch, @function + .size my_bsearch, . - my_bsearch + .text + .balign 2 + .globl my_bsearch2 +my_bsearch2: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r5, 0 + addw $r4 = $r1, -1 +;; +.L105: + addw $r9 = $r5, $r4 +;; + srlw $r1 = $r9, 1 +;; + lws.xs $r7 = $r1[$r0] +;; + compw.ne $r32 = $r7, $r2 +;; + cb.weqz $r32? .L107 +;; + compw.lt $r3 = $r7, $r2 + compw.gt $r8 = $r7, $r2 + addw $r6 = $r1, 1 + addw $r1 = $r1, -1 +;; + cmoved.wnez $r3? $r5 = $r6 + cmoved.wnez $r8? $r4 = $r1 +;; + compw.leu $r32 = $r5, $r4 +;; + cb.wnez $r32? .L105 +;; + make $r0, -1 +;; +.L107: + addd $r0 = $r1, 0 + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch2, @function + .size my_bsearch2, . - my_bsearch2 + .text + .balign 2 + .globl random_ascending_fill +random_ascending_fill: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r7, 41 + make $r8, 0 + make $r6, 0 +;; +.L108: + compw.geu $r32 = $r6, $r1 +;; + cb.wnez $r32? .L109 +;; + zxwd $r2 = $r6 + andw $r3 = $r7, 1073741824 +;; + slld $r4 = $r2, 2 +;; + sw $r4[$r0] = $r8 + addw $r8 = $r8, 1 + cb.weqz $r3? .L110 +;; + addw $r8 = $r8, 1 +;; +.L110: + mulw $r2 = $r7, 97 + addw $r6 = $r6, 1 +;; + addw $r7 = $r2, 5 + goto .L108 +;; +.L109: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type random_ascending_fill, @function + .size random_ascending_fill, . - random_ascending_fill + .text + .balign 2 + .globl main +main: + addd $r17 = $r12, 0 + addd $r12 = $r12, -80 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + sd 16[$r12] = $r18 + make $r0, 20000 +;; + sd 24[$r12] = $r19 +;; + sd 32[$r12] = $r20 +;; + sd 40[$r12] = $r21 +;; + sd 48[$r12] = $r22 +;; + sd 56[$r12] = $r23 + make $r23, 1502 +;; + sd 64[$r12] = $r24 + make $r24, 5000 +;; + sd 72[$r12] = $r25 + call malloc +;; + addd $r19 = $r0, 0 + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call random_ascending_fill +;; + call get_current_cycle +;; + sbfd $r21 = $r18, $r0 + addd $r2 = $r23, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call my_bsearch +;; + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r2 = $r23, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call my_bsearch +;; + addd $r22 = $r0, 0 + call get_current_cycle +;; + sbfd $r20 = $r18, $r0 + call get_current_cycle +;; + addd $r25 = $r0, 0 + addd $r2 = $r23, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call my_bsearch2 +;; + addd $r18 = $r0, 0 + call get_current_cycle +;; + sbfd $r5 = $r25, $r0 + make $r0 = __stringlit_1 + addd $r4 = $r20, 0 + addd $r3 = $r21, 0 +;; + addd $r2 = $r18, 0 + addd $r1 = $r22, 0 + call printf +;; + addd $r0 = $r19, 0 + call free +;; + make $r0, 0 + ld $r16 = 8[$r12] +;; + ld $r18 = 16[$r12] +;; + ld $r19 = 24[$r12] +;; + ld $r20 = 32[$r12] + set $ra = $r16 +;; + ld $r21 = 40[$r12] +;; + ld $r22 = 48[$r12] +;; + ld $r23 = 56[$r12] +;; + ld $r24 = 64[$r12] +;; + ld $r25 = 72[$r12] +;; + addd $r12 = $r12, 80 +;; + ret +;; + .type main, @function + .size main, . - main diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized06 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized06 new file mode 100644 index 00000000..79005b9c --- /dev/null +++ b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized06 @@ -0,0 +1,287 @@ +# File generated by CompCert 3.5 +# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s + .section .rodata + .balign 1 +__stringlit_1: + .ascii "position1: %d\012position2: %d\012random fill cycles: %lu\012search1 cycles: %lu\012search2 cycles: %lu\012\000" + .type __stringlit_1, @object + .size __stringlit_1, . - __stringlit_1 + .text + .balign 2 + .globl my_bsearch +my_bsearch: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r4, 0 + addw $r6 = $r1, -1 +;; +.L100: + addw $r5 = $r4, $r6 +;; + srlw $r3 = $r5, 1 +;; + zxwd $r5 = $r3 +;; + slld $r8 = $r5, 2 +;; + lws $r1 = $r8[$r0] +;; + compw.eq $r32 = $r1, $r2 +;; + cb.wnez $r32? .L101 +;; + compw.lt $r32 = $r1, $r2 +;; + cb.wnez $r32? .L102 +;; + addw $r6 = $r3, -1 + goto .L103 +;; +.L102: + addw $r4 = $r3, 1 +;; +.L103: + compw.leu $r32 = $r4, $r6 +;; + cb.wnez $r32? .L100 +;; + make $r0, -1 + goto .L104 +;; +.L101: + addd $r0 = $r3, 0 +;; +.L104: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch, @function + .size my_bsearch, . - my_bsearch + .text + .balign 2 + .globl my_bsearch2 +my_bsearch2: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r5, 0 + addw $r4 = $r1, -1 +;; +.L105: + addw $r9 = $r5, $r4 +;; + srlw $r1 = $r9, 1 +;; + lws.xs $r7 = $r1[$r0] +;; + compw.ne $r32 = $r7, $r2 +;; +;; + compw.lt $r3 = $r7, $r2 + compw.gt $r8 = $r7, $r2 + addw $r6 = $r1, 1 + addw $r1 = $r1, -1 + cb.weqz $r32? .L107 +;; + cmoved.wnez $r3? $r5 = $r6 + cmoved.wnez $r8? $r4 = $r1 +;; + compw.leu $r32 = $r5, $r4 +;; + cb.wnez $r32? .L105 +;; + make $r0, -1 +;; +.L107: + addd $r0 = $r1, 0 + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch2, @function + .size my_bsearch2, . - my_bsearch2 + .text + .balign 2 + .globl random_ascending_fill +random_ascending_fill: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r7, 41 + make $r8, 0 + make $r6, 0 +;; +.L108: + compw.geu $r32 = $r6, $r1 +;; + cb.wnez $r32? .L109 +;; + zxwd $r2 = $r6 + andw $r3 = $r7, 1073741824 +;; + slld $r4 = $r2, 2 +;; + sw $r4[$r0] = $r8 + addw $r8 = $r8, 1 + cb.weqz $r3? .L110 +;; + addw $r8 = $r8, 1 +;; +.L110: + mulw $r2 = $r7, 97 + addw $r6 = $r6, 1 +;; + addw $r7 = $r2, 5 + goto .L108 +;; +.L109: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type random_ascending_fill, @function + .size random_ascending_fill, . - random_ascending_fill + .text + .balign 2 + .globl main +main: + addd $r17 = $r12, 0 + addd $r12 = $r12, -80 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + sd 16[$r12] = $r18 + make $r0, 20000 +;; + sd 24[$r12] = $r19 +;; + sd 32[$r12] = $r20 +;; + sd 40[$r12] = $r21 +;; + sd 48[$r12] = $r22 +;; + sd 56[$r12] = $r23 + make $r23, 1502 +;; + sd 64[$r12] = $r24 + make $r24, 5000 +;; + sd 72[$r12] = $r25 + call malloc +;; + addd $r19 = $r0, 0 + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call random_ascending_fill +;; + call get_current_cycle +;; + sbfd $r21 = $r18, $r0 + addd $r2 = $r23, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call my_bsearch +;; + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r2 = $r23, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call my_bsearch +;; + addd $r22 = $r0, 0 + call get_current_cycle +;; + sbfd $r20 = $r18, $r0 + call get_current_cycle +;; + addd $r25 = $r0, 0 + addd $r2 = $r23, 0 + addd $r1 = $r24, 0 + addd $r0 = $r19, 0 + call my_bsearch2 +;; + addd $r18 = $r0, 0 + call get_current_cycle +;; + sbfd $r5 = $r25, $r0 + make $r0 = __stringlit_1 + addd $r4 = $r20, 0 + addd $r3 = $r21, 0 +;; + addd $r2 = $r18, 0 + addd $r1 = $r22, 0 + call printf +;; + addd $r0 = $r19, 0 + call free +;; + make $r0, 0 + ld $r16 = 8[$r12] +;; + ld $r18 = 16[$r12] +;; + ld $r19 = 24[$r12] +;; + ld $r20 = 32[$r12] + set $ra = $r16 +;; + ld $r21 = 40[$r12] +;; + ld $r22 = 48[$r12] +;; + ld $r23 = 56[$r12] +;; + ld $r24 = 64[$r12] +;; + ld $r25 = 72[$r12] +;; + addd $r12 = $r12, 80 +;; + ret +;; + .type main, @function + .size main, . - main diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized07 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized07 new file mode 100644 index 00000000..3214c5bc --- /dev/null +++ b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized07 @@ -0,0 +1,372 @@ +# File generated by CompCert 3.5 +# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s + .section .rodata + .balign 1 +__stringlit_1: + .ascii "position1: %d\012position2: %d\012position3: %d\012random fill cycles: %lu\012search1 cycles: %lu\012search2 cycles: %lu\012search3 cycles: %lu\012\000" + .type __stringlit_1, @object + .size __stringlit_1, . - __stringlit_1 + .text + .balign 2 + .globl my_bsearch +my_bsearch: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r4, 0 + addw $r6 = $r1, -1 +;; +.L100: + addw $r5 = $r4, $r6 +;; + srlw $r3 = $r5, 1 +;; + zxwd $r5 = $r3 +;; + slld $r8 = $r5, 2 +;; + lws $r1 = $r8[$r0] +;; + compw.eq $r32 = $r1, $r2 +;; + cb.wnez $r32? .L101 +;; + compw.lt $r32 = $r1, $r2 +;; + cb.wnez $r32? .L102 +;; + addw $r6 = $r3, -1 + goto .L103 +;; +.L102: + addw $r4 = $r3, 1 +;; +.L103: + compw.leu $r32 = $r4, $r6 +;; + cb.wnez $r32? .L100 +;; + make $r0, -1 + goto .L104 +;; +.L101: + addd $r0 = $r3, 0 +;; +.L104: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch, @function + .size my_bsearch, . - my_bsearch + .text + .balign 2 + .globl my_bsearch2 +my_bsearch2: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r5, 0 + addw $r4 = $r1, -1 +;; +.L105: + addw $r9 = $r5, $r4 +;; + srlw $r1 = $r9, 1 +;; + zxwd $r10 = $r1 +;; + slld $r8 = $r10, 2 +;; + lws $r7 = $r8[$r0] +;; + compw.ne $r32 = $r7, $r2 +;; + cb.wnez $r32? .L106 +;; + addd $r0 = $r1, 0 + goto .L107 +;; +.L106: + compw.lt $r3 = $r7, $r2 + addw $r6 = $r1, 1 + addw $r1 = $r1, -1 +;; + cmoved.wnez $r3? $r5 = $r6 + compw.gt $r6 = $r7, $r2 +;; + cmoved.wnez $r6? $r4 = $r1 +;; + compw.leu $r32 = $r5, $r4 +;; + cb.wnez $r32? .L105 +;; + make $r0, -1 +;; +.L107: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch2, @function + .size my_bsearch2, . - my_bsearch2 + .text + .balign 2 + .globl my_bsearch3 +my_bsearch3: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r7, 0 + addw $r3 = $r1, -1 +;; +.L108: + addw $r11 = $r7, $r3 +;; + srlw $r6 = $r11, 1 +;; + addw $r1 = $r6, 1 + lws.xs $r4 = $r6[$r0] +;; + compw.lt $r5 = $r4, $r2 + compw.gt $r8 = $r4, $r2 + compw.eq $r32 = $r4, $r2 +;; + cmoved.wnez $r5? $r7 = $r1 + addw $r5 = $r6, -1 +;; + cmoved.wnez $r8? $r3 = $r5 + cb.wnez $r32? .L109 +;; + compw.leu $r32 = $r7, $r3 +;; + cb.wnez $r32? .L108 +;; + make $r6, -1 +;; +.L109: + addd $r0 = $r6, 0 + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type my_bsearch3, @function + .size my_bsearch3, . - my_bsearch3 + .text + .balign 2 + .globl random_ascending_fill +random_ascending_fill: + addd $r17 = $r12, 0 + addd $r12 = $r12, -16 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + make $r7, 41 + make $r8, 0 + make $r6, 0 +;; +.L110: + compw.geu $r32 = $r6, $r1 +;; + cb.wnez $r32? .L111 +;; + zxwd $r2 = $r6 + andw $r3 = $r7, 1073741824 +;; + slld $r4 = $r2, 2 +;; + sw $r4[$r0] = $r8 + addw $r8 = $r8, 1 + cb.weqz $r3? .L112 +;; + addw $r8 = $r8, 1 +;; +.L112: + mulw $r2 = $r7, 97 + addw $r6 = $r6, 1 +;; + addw $r7 = $r2, 5 + goto .L110 +;; +.L111: + ld $r16 = 8[$r12] +;; + set $ra = $r16 +;; + addd $r12 = $r12, 16 +;; + ret +;; + .type random_ascending_fill, @function + .size random_ascending_fill, . - random_ascending_fill + .text + .balign 2 + .globl main +main: + addd $r17 = $r12, 0 + addd $r12 = $r12, -96 +;; + sd 0[$r12] = $r17 +;; +;; + get $r16 = $ra +;; + sd 8[$r12] = $r16 +;; + sd 16[$r12] = $r18 + make $r0, 20000 +;; + sd 24[$r12] = $r19 + make $r19, 1502 +;; + sd 32[$r12] = $r20 + make $r20, 5000 +;; + sd 40[$r12] = $r21 +;; + sd 48[$r12] = $r22 +;; + sd 56[$r12] = $r23 +;; + sd 64[$r12] = $r24 +;; + sd 72[$r12] = $r25 +;; + sd 80[$r12] = $r26 +;; + sd 88[$r12] = $r27 + call malloc +;; + addd $r21 = $r0, 0 + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r1 = $r20, 0 + addd $r0 = $r21, 0 + call random_ascending_fill +;; + call get_current_cycle +;; + sbfd $r24 = $r18, $r0 + addd $r2 = $r19, 0 + addd $r1 = $r20, 0 + addd $r0 = $r21, 0 + call my_bsearch +;; + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r2 = $r19, 0 + addd $r1 = $r20, 0 + addd $r0 = $r21, 0 + call my_bsearch +;; + addd $r26 = $r0, 0 + call get_current_cycle +;; + sbfd $r23 = $r18, $r0 + call get_current_cycle +;; + addd $r18 = $r0, 0 + addd $r2 = $r19, 0 + addd $r1 = $r20, 0 + addd $r0 = $r21, 0 + call my_bsearch2 +;; + addd $r25 = $r0, 0 + call get_current_cycle +;; + sbfd $r22 = $r18, $r0 + call get_current_cycle +;; + addd $r27 = $r0, 0 + addd $r2 = $r19, 0 + addd $r1 = $r20, 0 + addd $r0 = $r21, 0 + call my_bsearch3 +;; + addd $r18 = $r0, 0 + call get_current_cycle +;; + sbfd $r7 = $r27, $r0 + make $r0 = __stringlit_1 + addd $r6 = $r22, 0 + addd $r5 = $r23, 0 +;; + addd $r4 = $r24, 0 + addd $r3 = $r18, 0 + addd $r2 = $r25, 0 + addd $r1 = $r26, 0 + call printf +;; + addd $r0 = $r21, 0 + call free +;; + make $r0, 0 + ld $r16 = 8[$r12] +;; + ld $r18 = 16[$r12] +;; + ld $r19 = 24[$r12] +;; + ld $r20 = 32[$r12] + set $ra = $r16 +;; + ld $r21 = 40[$r12] +;; + ld $r22 = 48[$r12] +;; + ld $r23 = 56[$r12] +;; + ld $r24 = 64[$r12] +;; + ld $r25 = 72[$r12] +;; + ld $r26 = 80[$r12] +;; + ld $r27 = 88[$r12] +;; + addd $r12 = $r12, 96 +;; + ret +;; + .type main, @function + .size main, . - main -- cgit From e56b4d2b614881e7e582614f53ed88583f2a90a7 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 6 Apr 2019 11:06:35 +0200 Subject: hand optimizations --- test/monniaux/binary_search/binary_search.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index 6be80c59..281c94c0 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -42,8 +42,10 @@ int my_bsearch3 (data *a, index n, data x) { index i = 0, j = n - 1, k; while (i <= j) { k = (i + j) / 2; - i = TERNARY32(a[k] < x, k+1, i); - j = TERNARY32(a[k] > x, k-1, j); + index kp1 = k+1, km1 = k-1; + _Bool lt = a[k] < x, gt = a[k] > x; + i = TERNARY32(lt, kp1, i); + j = TERNARY32(gt, km1, j); if (a[k] == x) { goto end; } -- cgit From 35c60ab39a84bd84079dfb0aed9cd0ef994d4901 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 6 Apr 2019 11:23:22 +0200 Subject: reoptimize the C --- test/monniaux/binary_search/binary_search.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index 281c94c0..c7462f8e 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -40,8 +40,8 @@ int my_bsearch2 (data *a, index n, data x) { int my_bsearch3 (data *a, index n, data x) { index i = 0, j = n - 1, k; + k = (i + j) / 2; while (i <= j) { - k = (i + j) / 2; index kp1 = k+1, km1 = k-1; _Bool lt = a[k] < x, gt = a[k] > x; i = TERNARY32(lt, kp1, i); @@ -49,6 +49,7 @@ int my_bsearch3 (data *a, index n, data x) { if (a[k] == x) { goto end; } + k = (i + j) / 2; } k=-1; end: -- cgit From 9674df32359b7286379ad7f95e7ff54e9cf895da Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 6 Apr 2019 12:56:51 +0200 Subject: use ternary in fill --- test/monniaux/binary_search/binary_search.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index c7462f8e..df9b7b46 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -62,7 +62,7 @@ void random_ascending_fill(data *a, index n) { for(index i=0; i Date: Mon, 8 Apr 2019 16:01:06 +0200 Subject: better intermediate point --- test/monniaux/binary_search/binary_search.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index df9b7b46..d5839955 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -29,11 +29,13 @@ int my_bsearch2 (data *a, index n, data x) { index i = 0, j = n - 1; while (i <= j) { index k = (i + j) / 2; - if (a[k] == x) { + index kp1 = k+1, km1 = k-1; + data ak = a[k]; + i = TERNARY32(ak < x, kp1, i); + j = TERNARY32(ak > x, km1, j); + if (ak == x) { return k; } - i = TERNARY32(a[k] < x, k+1, i); - j = TERNARY32(a[k] > x, k-1, j); } return -1; } @@ -43,10 +45,11 @@ int my_bsearch3 (data *a, index n, data x) { k = (i + j) / 2; while (i <= j) { index kp1 = k+1, km1 = k-1; - _Bool lt = a[k] < x, gt = a[k] > x; + data ak = a[k]; + _Bool lt = ak < x, gt = ak > x; i = TERNARY32(lt, kp1, i); j = TERNARY32(gt, km1, j); - if (a[k] == x) { + if (ak == x) { goto end; } k = (i + j) / 2; -- cgit From 5e06ed3a94dcd7f46b3e087e72e725579d3dd765 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Mon, 8 Apr 2019 16:12:04 +0200 Subject: better explanation --- test/monniaux/binary_search/binary_search.c | 30 +++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index d5839955..41638def 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -41,6 +41,22 @@ int my_bsearch2 (data *a, index n, data x) { } int my_bsearch3 (data *a, index n, data x) { + index i = 0, j = n - 1; + while (i <= j) { + index k = (i + j) / 2; + index kp1 = k+1, km1 = k-1; + data ak = a[k]; + _Bool lt = ak < x, gt = ak > x; + i = TERNARY32(lt, kp1, i); + j = TERNARY32(gt, km1, j); + if (ak == x) { + return k; + } + } + return -1; +} + +int my_bsearch4 (data *a, index n, data x) { index i = 0, j = n - 1, k; k = (i + j) / 2; while (i <= j) { @@ -71,7 +87,7 @@ void random_ascending_fill(data *a, index n) { } int main () { - index n=5000; + index n=25000; data v=1502; data *buf=malloc(n*sizeof(data)); @@ -92,15 +108,21 @@ int main () { index pos3 = my_bsearch3(buf, n, v); timestamp3 = get_current_cycle()-timestamp3; + cycle_t timestamp4 = get_current_cycle(); + index pos4 = my_bsearch4(buf, n, v); + timestamp4 = get_current_cycle()-timestamp4; + printf("position1: %d\n" "position2: %d\n" "position3: %d\n" + "position4: %d\n" "random fill cycles: %" PRIu64 "\n" "search1 cycles: %" PRIu64 "\n" "search2 cycles: %" PRIu64 "\n" - "search3 cycles: %" PRIu64 "\n", - pos1, pos2, pos3, - timestamp0, timestamp1, timestamp2, timestamp3); + "search3 cycles: %" PRIu64 "\n" + "search4 cycles: %" PRIu64 "\n", + pos1, pos2, pos3, pos4, + timestamp0, timestamp1, timestamp2, timestamp3, timestamp4); free(buf); } -- cgit From 24e97bd87918f2c487416744ba12a78aba35a9e5 Mon Sep 17 00:00:00 2001 From: Cyril SIX Date: Fri, 26 Apr 2019 16:35:30 +0200 Subject: Changes to include a -O1 -fschedule-insns2 gcc run as well --- test/monniaux/binary_search/Makefile | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/Makefile b/test/monniaux/binary_search/Makefile index 7739e4ca..ea34f1bc 100644 --- a/test/monniaux/binary_search/Makefile +++ b/test/monniaux/binary_search/Makefile @@ -2,6 +2,7 @@ include ../rules.mk PRODUCTS=binary_search.gcc.host.out binary_search.ccomp.host.out \ binary_search.gcc.k1c.out binary_search.ccomp.k1c.out \ + binary_search.gcc.o1.k1c.out \ binary_search.gcc.k1c.s binary_search.ccomp.k1c.s all: $(PRODUCTS) @@ -17,6 +18,9 @@ binary_search.gcc.host: binary_search.gcc.host.o ../clock.gcc.host.o binary_search.gcc.k1c: binary_search.gcc.k1c.o ../clock.gcc.k1c.o $(K1C_CC) $(K1C_CFLAGS) $+ -o $@ +binary_search.gcc.o1.k1c: binary_search.gcc.o1.k1c.o ../clock.gcc.k1c.o + $(K1C_CC) $(K1C_CFLAGS_O1) $+ -o $@ + binary_search.ccomp.k1c: binary_search.ccomp.k1c.o ../clock.gcc.k1c.o $(K1C_CCOMP) $(K1C_CCOMPFLAGS) $+ -o $@ -- cgit From 24442c874a0e45f6e93965919ff2b3594aca43e5 Mon Sep 17 00:00:00 2001 From: Cyril SIX Date: Fri, 3 May 2019 17:59:10 +0200 Subject: [#120] - Makefile generator + replaced binary_search/Makefile : it works --- test/monniaux/binary_search/Makefile | 30 ------------------------------ test/monniaux/binary_search/make.proto | 1 + 2 files changed, 1 insertion(+), 30 deletions(-) delete mode 100644 test/monniaux/binary_search/Makefile create mode 100644 test/monniaux/binary_search/make.proto (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/Makefile b/test/monniaux/binary_search/Makefile deleted file mode 100644 index ea34f1bc..00000000 --- a/test/monniaux/binary_search/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -include ../rules.mk - -PRODUCTS=binary_search.gcc.host.out binary_search.ccomp.host.out \ - binary_search.gcc.k1c.out binary_search.ccomp.k1c.out \ - binary_search.gcc.o1.k1c.out \ - binary_search.gcc.k1c.s binary_search.ccomp.k1c.s - -all: $(PRODUCTS) - -binary_search.gcc.host.s binary_search.ccomp.host.s binary_search.gcc.k1c.s binary_search.ccomp.k1c.s : ../clock.h - -binary_search.ccomp.host: binary_search.ccomp.host.o ../clock.gcc.host.o - $(CCOMP) $(CCOMPFLAGS) $+ -o $@ - -binary_search.gcc.host: binary_search.gcc.host.o ../clock.gcc.host.o - $(CC) $(CFLAGS) $+ -o $@ - -binary_search.gcc.k1c: binary_search.gcc.k1c.o ../clock.gcc.k1c.o - $(K1C_CC) $(K1C_CFLAGS) $+ -o $@ - -binary_search.gcc.o1.k1c: binary_search.gcc.o1.k1c.o ../clock.gcc.k1c.o - $(K1C_CC) $(K1C_CFLAGS_O1) $+ -o $@ - -binary_search.ccomp.k1c: binary_search.ccomp.k1c.o ../clock.gcc.k1c.o - $(K1C_CCOMP) $(K1C_CCOMPFLAGS) $+ -o $@ - -clean: - -rm -f *.o *.s *.k1c - -.PHONY: clean diff --git a/test/monniaux/binary_search/make.proto b/test/monniaux/binary_search/make.proto new file mode 100644 index 00000000..19501e78 --- /dev/null +++ b/test/monniaux/binary_search/make.proto @@ -0,0 +1 @@ +binary_search -- cgit From 3b21229b2d41d8434b704e886ec4ab8917954588 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Sat, 4 May 2019 10:34:40 +0200 Subject: load code into I-cache --- test/monniaux/binary_search/binary_search.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index 41638def..24d1b122 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -100,14 +100,17 @@ int main () { index pos1 = my_bsearch(buf, n, v); timestamp1 = get_current_cycle()-timestamp1; + my_bsearch2(buf, n, v); cycle_t timestamp2 = get_current_cycle(); index pos2 = my_bsearch2(buf, n, v); timestamp2 = get_current_cycle()-timestamp2; + my_bsearch3(buf, n, v); cycle_t timestamp3 = get_current_cycle(); index pos3 = my_bsearch3(buf, n, v); timestamp3 = get_current_cycle()-timestamp3; + my_bsearch4(buf, n, v); cycle_t timestamp4 = get_current_cycle(); index pos4 = my_bsearch4(buf, n, v); timestamp4 = get_current_cycle()-timestamp4; -- cgit From 76abb605749d1b8ddcc842cecb258fa755d63ccf Mon Sep 17 00:00:00 2001 From: Cyril SIX Date: Tue, 14 May 2019 18:01:28 +0200 Subject: Avancement sur la génération de Makefile des benchmarks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/monniaux/binary_search/make.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/make.proto b/test/monniaux/binary_search/make.proto index 19501e78..69f04092 100644 --- a/test/monniaux/binary_search/make.proto +++ b/test/monniaux/binary_search/make.proto @@ -1 +1 @@ -binary_search +target: binary_search -- cgit From 107c470356e76dff780c5cf197a376d5667097b8 Mon Sep 17 00:00:00 2001 From: Cyril SIX Date: Wed, 15 May 2019 15:31:20 +0200 Subject: CSV file generation for benches (only binary_search for now) --- test/monniaux/binary_search/make.proto | 1 + 1 file changed, 1 insertion(+) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/make.proto b/test/monniaux/binary_search/make.proto index 69f04092..c5c39a6b 100644 --- a/test/monniaux/binary_search/make.proto +++ b/test/monniaux/binary_search/make.proto @@ -1 +1,2 @@ target: binary_search +measures: ["random fill", "search1"] -- cgit From 4f3b7c0d75fd90ac064419d19d7af2e340d516aa Mon Sep 17 00:00:00 2001 From: Cyril SIX Date: Fri, 17 May 2019 12:03:18 +0200 Subject: Adding more measures --- test/monniaux/binary_search/make.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/make.proto b/test/monniaux/binary_search/make.proto index c5c39a6b..337751bb 100644 --- a/test/monniaux/binary_search/make.proto +++ b/test/monniaux/binary_search/make.proto @@ -1,2 +1,2 @@ target: binary_search -measures: ["random fill", "search1"] +measures: ["random fill", search1] -- cgit From 1fc26cf05b90c167d2f02599cc75b9df26e4d623 Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Tue, 4 Jun 2019 12:15:16 +0200 Subject: remove old "ternary" stuff --- test/monniaux/binary_search/binary_search.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index 24d1b122..4051ebf0 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -2,7 +2,6 @@ #include #include #include "../clock.h" -#include "../ternary.h" typedef int data; typedef unsigned index; @@ -31,8 +30,8 @@ int my_bsearch2 (data *a, index n, data x) { index k = (i + j) / 2; index kp1 = k+1, km1 = k-1; data ak = a[k]; - i = TERNARY32(ak < x, kp1, i); - j = TERNARY32(ak > x, km1, j); + i = ak < x ? kp1 : i; + j = ak > x ? km1 : j; if (ak == x) { return k; } @@ -47,8 +46,8 @@ int my_bsearch3 (data *a, index n, data x) { index kp1 = k+1, km1 = k-1; data ak = a[k]; _Bool lt = ak < x, gt = ak > x; - i = TERNARY32(lt, kp1, i); - j = TERNARY32(gt, km1, j); + i = lt ? kp1 : i; + j = gt ? km1 : j; if (ak == x) { return k; } @@ -63,8 +62,8 @@ int my_bsearch4 (data *a, index n, data x) { index kp1 = k+1, km1 = k-1; data ak = a[k]; _Bool lt = ak < x, gt = ak > x; - i = TERNARY32(lt, kp1, i); - j = TERNARY32(gt, km1, j); + i = lt ? kp1 : i; + j = gt ? km1 : j; if (ak == x) { goto end; } @@ -81,7 +80,7 @@ void random_ascending_fill(data *a, index n) { for(index i=0; i Date: Wed, 17 Jul 2019 11:22:58 +0200 Subject: Deleting junk files --- .../binary_search.ccomp.k1c.s.optimized01 | 204 ----------- .../binary_search.ccomp.k1c.s.optimized02 | 203 ----------- .../binary_search.ccomp.k1c.s.optimized03 | 291 ---------------- .../binary_search.ccomp.k1c.s.optimized04 | 288 ---------------- .../binary_search.ccomp.k1c.s.optimized05 | 287 ---------------- .../binary_search.ccomp.k1c.s.optimized06 | 287 ---------------- .../binary_search.ccomp.k1c.s.optimized07 | 372 --------------------- 7 files changed, 1932 deletions(-) delete mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized01 delete mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized02 delete mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized03 delete mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized04 delete mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized05 delete mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized06 delete mode 100644 test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized07 (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized01 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized01 deleted file mode 100644 index 7d9df872..00000000 --- a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized01 +++ /dev/null @@ -1,204 +0,0 @@ -# File generated by CompCert 3.5 -# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s - .section .rodata - .balign 1 -__stringlit_1: - .ascii "position: %d\012random fill cycles: %lu\012search cycles: %lu\012\000" - .type __stringlit_1, @object - .size __stringlit_1, . - __stringlit_1 - .text - .balign 2 - .globl my_bsearch -my_bsearch: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r4, 0 - addw $r6 = $r1, -1 -;; -.L100: - addw $r5 = $r4, $r6 -;; - srlw $r3 = $r5, 1 -;; - zxwd $r5 = $r3 -;; - slld $r8 = $r5, 2 -;; - lws $r1 = $r8[$r0] -;; - compw.eq $r32 = $r1, $r2 -;; - cb.wnez $r32? .L101 -;; - compw.lt $r32 = $r1, $r2 -;; - cb.wnez $r32? .L102 -;; - addw $r6 = $r3, -1 - goto .L103 -;; -.L102: - addw $r4 = $r3, 1 -;; -.L103: - compw.leu $r32 = $r4, $r6 -;; - cb.wnez $r32? .L100 -;; - make $r0, -1 - goto .L104 -;; -.L101: - addd $r0 = $r3, 0 -;; -.L104: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch, @function - .size my_bsearch, . - my_bsearch - .text - .balign 2 - .globl random_ascending_fill -random_ascending_fill: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r7, 41 - make $r8, 0 - make $r6, 0 -;; -.L105: - compw.geu $r32 = $r6, $r1 -;; - cb.wnez $r32? .L106 -;; - zxwd $r2 = $r6 - andw $r3 = $r7, 1073741824 -;; - slld $r4 = $r2, 2 -;; - sw $r4[$r0] = $r8 - addw $r8 = $r8, 1 - cb.weqz $r3? .L107 -;; - addw $r8 = $r8, 1 -;; -.L107: - mulw $r2 = $r7, 97 - addw $r6 = $r6, 1 -;; - addw $r7 = $r2, 5 - goto .L105 -;; -.L106: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type random_ascending_fill, @function - .size random_ascending_fill, . - random_ascending_fill - .text - .balign 2 - .globl main -main: - addd $r17 = $r12, 0 - addd $r12 = $r12, -64 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - sd 16[$r12] = $r18 - make $r0, 20000 -;; - sd 24[$r12] = $r19 -;; - sd 32[$r12] = $r20 -;; - sd 40[$r12] = $r21 -;; - sd 48[$r12] = $r22 - make $r22, 5000 - call malloc -;; - addd $r21 = $r0, 0 - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r1 = $r22, 0 - addd $r0 = $r21, 0 - call random_ascending_fill -;; - call get_current_cycle -;; - sbfd $r19 = $r18, $r0 - call get_current_cycle -;; - addd $r20 = $r0, 0 - make $r2, 1502 - addd $r1 = $r22, 0 - addd $r0 = $r21, 0 - call my_bsearch -;; - addd $r18 = $r0, 0 - call get_current_cycle -;; - sbfd $r3 = $r20, $r0 - make $r0 = __stringlit_1 - addd $r2 = $r19, 0 - addd $r1 = $r18, 0 - call printf -;; - addd $r0 = $r21, 0 - call free -;; - make $r0, 0 -;; - ld $r18 = 16[$r12] -;; - ld $r19 = 24[$r12] -;; - ld $r20 = 32[$r12] -;; - ld $r21 = 40[$r12] -;; - ld $r22 = 48[$r12] -;; - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 64 -;; - ret -;; - .type main, @function - .size main, . - main diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized02 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized02 deleted file mode 100644 index b148e33f..00000000 --- a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized02 +++ /dev/null @@ -1,203 +0,0 @@ -# File generated by CompCert 3.5 -# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s - .section .rodata - .balign 1 -__stringlit_1: - .ascii "position: %d\012random fill cycles: %lu\012search cycles: %lu\012\000" - .type __stringlit_1, @object - .size __stringlit_1, . - __stringlit_1 - .text - .balign 2 - .globl my_bsearch -my_bsearch: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r4, 0 - addw $r6 = $r1, -1 -;; -.L100: - addw $r5 = $r4, $r6 -;; - srlw $r3 = $r5, 1 -;; - zxwd $r5 = $r3 -;; - slld $r8 = $r5, 2 -;; - lws $r1 = $r8[$r0] -;; - compw.eq $r32 = $r1, $r2 - compw.lt $r33 = $r1, $r2 -;; - cb.wnez $r32? .L101 -;; - cb.wnez $r33? .L102 -;; - addw $r6 = $r3, -1 - goto .L103 -;; -.L102: - addw $r4 = $r3, 1 -;; -.L103: - compw.leu $r32 = $r4, $r6 -;; - cb.wnez $r32? .L100 -;; - make $r0, -1 - goto .L104 -;; -.L101: - addd $r0 = $r3, 0 -;; -.L104: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch, @function - .size my_bsearch, . - my_bsearch - .text - .balign 2 - .globl random_ascending_fill -random_ascending_fill: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r7, 41 - make $r8, 0 - make $r6, 0 -;; -.L105: - compw.geu $r32 = $r6, $r1 -;; - cb.wnez $r32? .L106 -;; - zxwd $r2 = $r6 - andw $r3 = $r7, 1073741824 -;; - slld $r4 = $r2, 2 -;; - sw $r4[$r0] = $r8 - addw $r8 = $r8, 1 - cb.weqz $r3? .L107 -;; - addw $r8 = $r8, 1 -;; -.L107: - mulw $r2 = $r7, 97 - addw $r6 = $r6, 1 -;; - addw $r7 = $r2, 5 - goto .L105 -;; -.L106: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type random_ascending_fill, @function - .size random_ascending_fill, . - random_ascending_fill - .text - .balign 2 - .globl main -main: - addd $r17 = $r12, 0 - addd $r12 = $r12, -64 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - sd 16[$r12] = $r18 - make $r0, 20000 -;; - sd 24[$r12] = $r19 -;; - sd 32[$r12] = $r20 -;; - sd 40[$r12] = $r21 -;; - sd 48[$r12] = $r22 - make $r22, 5000 - call malloc -;; - addd $r21 = $r0, 0 - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r1 = $r22, 0 - addd $r0 = $r21, 0 - call random_ascending_fill -;; - call get_current_cycle -;; - sbfd $r19 = $r18, $r0 - call get_current_cycle -;; - addd $r20 = $r0, 0 - make $r2, 1502 - addd $r1 = $r22, 0 - addd $r0 = $r21, 0 - call my_bsearch -;; - addd $r18 = $r0, 0 - call get_current_cycle -;; - sbfd $r3 = $r20, $r0 - make $r0 = __stringlit_1 - addd $r2 = $r19, 0 - addd $r1 = $r18, 0 - call printf -;; - addd $r0 = $r21, 0 - call free -;; - make $r0, 0 -;; - ld $r18 = 16[$r12] -;; - ld $r19 = 24[$r12] -;; - ld $r20 = 32[$r12] -;; - ld $r21 = 40[$r12] -;; - ld $r22 = 48[$r12] -;; - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 64 -;; - ret -;; - .type main, @function - .size main, . - main diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized03 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized03 deleted file mode 100644 index 8eabb5dd..00000000 --- a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized03 +++ /dev/null @@ -1,291 +0,0 @@ -# File generated by CompCert 3.5 -# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s - .section .rodata - .balign 1 -__stringlit_1: - .ascii "position1: %d\012position2: %d\012random fill cycles: %lu\012search1 cycles: %lu\012search2 cycles: %lu\012\000" - .type __stringlit_1, @object - .size __stringlit_1, . - __stringlit_1 - .text - .balign 2 - .globl my_bsearch -my_bsearch: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r4, 0 - addw $r6 = $r1, -1 -;; -.L100: - addw $r5 = $r4, $r6 -;; - srlw $r3 = $r5, 1 -;; - zxwd $r5 = $r3 -;; - slld $r8 = $r5, 2 -;; - lws $r1 = $r8[$r0] -;; - compw.eq $r32 = $r1, $r2 -;; - cb.wnez $r32? .L101 -;; - compw.lt $r32 = $r1, $r2 -;; - cb.wnez $r32? .L102 -;; - addw $r6 = $r3, -1 - goto .L103 -;; -.L102: - addw $r4 = $r3, 1 -;; -.L103: - compw.leu $r32 = $r4, $r6 -;; - cb.wnez $r32? .L100 -;; - make $r0, -1 - goto .L104 -;; -.L101: - addd $r0 = $r3, 0 -;; -.L104: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch, @function - .size my_bsearch, . - my_bsearch - .text - .balign 2 - .globl my_bsearch2 -my_bsearch2: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r5, 0 - addw $r4 = $r1, -1 -;; -.L105: - addw $r9 = $r5, $r4 -;; - srlw $r1 = $r9, 1 -;; - lws.xs $r7 = $r1[$r0] -;; - compw.ne $r32 = $r7, $r2 -;; - cb.wnez $r32? .L106 -;; - addd $r0 = $r1, 0 - goto .L107 -;; -.L106: - compw.lt $r3 = $r7, $r2 - addw $r6 = $r1, 1 - addw $r1 = $r1, -1 -;; - cmoved.wnez $r3? $r5 = $r6 - compw.gt $r6 = $r7, $r2 -;; - cmoved.wnez $r6? $r4 = $r1 -;; - compw.leu $r32 = $r5, $r4 -;; - cb.wnez $r32? .L105 -;; - make $r0, -1 -;; -.L107: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch2, @function - .size my_bsearch2, . - my_bsearch2 - .text - .balign 2 - .globl random_ascending_fill -random_ascending_fill: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r7, 41 - make $r8, 0 - make $r6, 0 -;; -.L108: - compw.geu $r32 = $r6, $r1 -;; - cb.wnez $r32? .L109 -;; - zxwd $r2 = $r6 - andw $r3 = $r7, 1073741824 -;; - slld $r4 = $r2, 2 -;; - sw $r4[$r0] = $r8 - addw $r8 = $r8, 1 - cb.weqz $r3? .L110 -;; - addw $r8 = $r8, 1 -;; -.L110: - mulw $r2 = $r7, 97 - addw $r6 = $r6, 1 -;; - addw $r7 = $r2, 5 - goto .L108 -;; -.L109: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type random_ascending_fill, @function - .size random_ascending_fill, . - random_ascending_fill - .text - .balign 2 - .globl main -main: - addd $r17 = $r12, 0 - addd $r12 = $r12, -80 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - sd 16[$r12] = $r18 - make $r0, 20000 -;; - sd 24[$r12] = $r19 -;; - sd 32[$r12] = $r20 -;; - sd 40[$r12] = $r21 -;; - sd 48[$r12] = $r22 -;; - sd 56[$r12] = $r23 - make $r23, 1502 -;; - sd 64[$r12] = $r24 - make $r24, 5000 -;; - sd 72[$r12] = $r25 - call malloc -;; - addd $r19 = $r0, 0 - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call random_ascending_fill -;; - call get_current_cycle -;; - sbfd $r21 = $r18, $r0 - addd $r2 = $r23, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call my_bsearch -;; - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r2 = $r23, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call my_bsearch -;; - addd $r22 = $r0, 0 - call get_current_cycle -;; - sbfd $r20 = $r18, $r0 - call get_current_cycle -;; - addd $r25 = $r0, 0 - addd $r2 = $r23, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call my_bsearch2 -;; - addd $r18 = $r0, 0 - call get_current_cycle -;; - sbfd $r5 = $r25, $r0 - make $r0 = __stringlit_1 - addd $r4 = $r20, 0 - addd $r3 = $r21, 0 -;; - addd $r2 = $r18, 0 - addd $r1 = $r22, 0 - call printf -;; - addd $r0 = $r19, 0 - call free -;; - make $r0, 0 - ld $r16 = 8[$r12] -;; - ld $r18 = 16[$r12] -;; - ld $r19 = 24[$r12] -;; - ld $r20 = 32[$r12] - set $ra = $r16 -;; - ld $r21 = 40[$r12] -;; - ld $r22 = 48[$r12] -;; - ld $r23 = 56[$r12] -;; - ld $r24 = 64[$r12] -;; - ld $r25 = 72[$r12] -;; - addd $r12 = $r12, 80 -;; - ret -;; - .type main, @function - .size main, . - main diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized04 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized04 deleted file mode 100644 index 2e4ff5c6..00000000 --- a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized04 +++ /dev/null @@ -1,288 +0,0 @@ -# File generated by CompCert 3.5 -# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s - .section .rodata - .balign 1 -__stringlit_1: - .ascii "position1: %d\012position2: %d\012random fill cycles: %lu\012search1 cycles: %lu\012search2 cycles: %lu\012\000" - .type __stringlit_1, @object - .size __stringlit_1, . - __stringlit_1 - .text - .balign 2 - .globl my_bsearch -my_bsearch: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r4, 0 - addw $r6 = $r1, -1 -;; -.L100: - addw $r5 = $r4, $r6 -;; - srlw $r3 = $r5, 1 -;; - zxwd $r5 = $r3 -;; - slld $r8 = $r5, 2 -;; - lws $r1 = $r8[$r0] -;; - compw.eq $r32 = $r1, $r2 -;; - cb.wnez $r32? .L101 -;; - compw.lt $r32 = $r1, $r2 -;; - cb.wnez $r32? .L102 -;; - addw $r6 = $r3, -1 - goto .L103 -;; -.L102: - addw $r4 = $r3, 1 -;; -.L103: - compw.leu $r32 = $r4, $r6 -;; - cb.wnez $r32? .L100 -;; - make $r0, -1 - goto .L104 -;; -.L101: - addd $r0 = $r3, 0 -;; -.L104: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch, @function - .size my_bsearch, . - my_bsearch - .text - .balign 2 - .globl my_bsearch2 -my_bsearch2: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r5, 0 - addw $r4 = $r1, -1 -;; -.L105: - addw $r9 = $r5, $r4 -;; - srlw $r1 = $r9, 1 -;; - lws.xs $r7 = $r1[$r0] -;; - compw.ne $r32 = $r7, $r2 -;; - cb.weqz $r32? .L107 -;; - compw.lt $r3 = $r7, $r2 - addw $r6 = $r1, 1 - addw $r1 = $r1, -1 -;; - cmoved.wnez $r3? $r5 = $r6 - compw.gt $r6 = $r7, $r2 -;; - cmoved.wnez $r6? $r4 = $r1 -;; - compw.leu $r32 = $r5, $r4 -;; - cb.wnez $r32? .L105 -;; - make $r0, -1 -;; -.L107: - addd $r0 = $r1, 0 - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch2, @function - .size my_bsearch2, . - my_bsearch2 - .text - .balign 2 - .globl random_ascending_fill -random_ascending_fill: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r7, 41 - make $r8, 0 - make $r6, 0 -;; -.L108: - compw.geu $r32 = $r6, $r1 -;; - cb.wnez $r32? .L109 -;; - zxwd $r2 = $r6 - andw $r3 = $r7, 1073741824 -;; - slld $r4 = $r2, 2 -;; - sw $r4[$r0] = $r8 - addw $r8 = $r8, 1 - cb.weqz $r3? .L110 -;; - addw $r8 = $r8, 1 -;; -.L110: - mulw $r2 = $r7, 97 - addw $r6 = $r6, 1 -;; - addw $r7 = $r2, 5 - goto .L108 -;; -.L109: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type random_ascending_fill, @function - .size random_ascending_fill, . - random_ascending_fill - .text - .balign 2 - .globl main -main: - addd $r17 = $r12, 0 - addd $r12 = $r12, -80 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - sd 16[$r12] = $r18 - make $r0, 20000 -;; - sd 24[$r12] = $r19 -;; - sd 32[$r12] = $r20 -;; - sd 40[$r12] = $r21 -;; - sd 48[$r12] = $r22 -;; - sd 56[$r12] = $r23 - make $r23, 1502 -;; - sd 64[$r12] = $r24 - make $r24, 5000 -;; - sd 72[$r12] = $r25 - call malloc -;; - addd $r19 = $r0, 0 - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call random_ascending_fill -;; - call get_current_cycle -;; - sbfd $r21 = $r18, $r0 - addd $r2 = $r23, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call my_bsearch -;; - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r2 = $r23, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call my_bsearch -;; - addd $r22 = $r0, 0 - call get_current_cycle -;; - sbfd $r20 = $r18, $r0 - call get_current_cycle -;; - addd $r25 = $r0, 0 - addd $r2 = $r23, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call my_bsearch2 -;; - addd $r18 = $r0, 0 - call get_current_cycle -;; - sbfd $r5 = $r25, $r0 - make $r0 = __stringlit_1 - addd $r4 = $r20, 0 - addd $r3 = $r21, 0 -;; - addd $r2 = $r18, 0 - addd $r1 = $r22, 0 - call printf -;; - addd $r0 = $r19, 0 - call free -;; - make $r0, 0 - ld $r16 = 8[$r12] -;; - ld $r18 = 16[$r12] -;; - ld $r19 = 24[$r12] -;; - ld $r20 = 32[$r12] - set $ra = $r16 -;; - ld $r21 = 40[$r12] -;; - ld $r22 = 48[$r12] -;; - ld $r23 = 56[$r12] -;; - ld $r24 = 64[$r12] -;; - ld $r25 = 72[$r12] -;; - addd $r12 = $r12, 80 -;; - ret -;; - .type main, @function - .size main, . - main diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized05 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized05 deleted file mode 100644 index 9f54a967..00000000 --- a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized05 +++ /dev/null @@ -1,287 +0,0 @@ -# File generated by CompCert 3.5 -# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s - .section .rodata - .balign 1 -__stringlit_1: - .ascii "position1: %d\012position2: %d\012random fill cycles: %lu\012search1 cycles: %lu\012search2 cycles: %lu\012\000" - .type __stringlit_1, @object - .size __stringlit_1, . - __stringlit_1 - .text - .balign 2 - .globl my_bsearch -my_bsearch: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r4, 0 - addw $r6 = $r1, -1 -;; -.L100: - addw $r5 = $r4, $r6 -;; - srlw $r3 = $r5, 1 -;; - zxwd $r5 = $r3 -;; - slld $r8 = $r5, 2 -;; - lws $r1 = $r8[$r0] -;; - compw.eq $r32 = $r1, $r2 -;; - cb.wnez $r32? .L101 -;; - compw.lt $r32 = $r1, $r2 -;; - cb.wnez $r32? .L102 -;; - addw $r6 = $r3, -1 - goto .L103 -;; -.L102: - addw $r4 = $r3, 1 -;; -.L103: - compw.leu $r32 = $r4, $r6 -;; - cb.wnez $r32? .L100 -;; - make $r0, -1 - goto .L104 -;; -.L101: - addd $r0 = $r3, 0 -;; -.L104: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch, @function - .size my_bsearch, . - my_bsearch - .text - .balign 2 - .globl my_bsearch2 -my_bsearch2: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r5, 0 - addw $r4 = $r1, -1 -;; -.L105: - addw $r9 = $r5, $r4 -;; - srlw $r1 = $r9, 1 -;; - lws.xs $r7 = $r1[$r0] -;; - compw.ne $r32 = $r7, $r2 -;; - cb.weqz $r32? .L107 -;; - compw.lt $r3 = $r7, $r2 - compw.gt $r8 = $r7, $r2 - addw $r6 = $r1, 1 - addw $r1 = $r1, -1 -;; - cmoved.wnez $r3? $r5 = $r6 - cmoved.wnez $r8? $r4 = $r1 -;; - compw.leu $r32 = $r5, $r4 -;; - cb.wnez $r32? .L105 -;; - make $r0, -1 -;; -.L107: - addd $r0 = $r1, 0 - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch2, @function - .size my_bsearch2, . - my_bsearch2 - .text - .balign 2 - .globl random_ascending_fill -random_ascending_fill: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r7, 41 - make $r8, 0 - make $r6, 0 -;; -.L108: - compw.geu $r32 = $r6, $r1 -;; - cb.wnez $r32? .L109 -;; - zxwd $r2 = $r6 - andw $r3 = $r7, 1073741824 -;; - slld $r4 = $r2, 2 -;; - sw $r4[$r0] = $r8 - addw $r8 = $r8, 1 - cb.weqz $r3? .L110 -;; - addw $r8 = $r8, 1 -;; -.L110: - mulw $r2 = $r7, 97 - addw $r6 = $r6, 1 -;; - addw $r7 = $r2, 5 - goto .L108 -;; -.L109: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type random_ascending_fill, @function - .size random_ascending_fill, . - random_ascending_fill - .text - .balign 2 - .globl main -main: - addd $r17 = $r12, 0 - addd $r12 = $r12, -80 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - sd 16[$r12] = $r18 - make $r0, 20000 -;; - sd 24[$r12] = $r19 -;; - sd 32[$r12] = $r20 -;; - sd 40[$r12] = $r21 -;; - sd 48[$r12] = $r22 -;; - sd 56[$r12] = $r23 - make $r23, 1502 -;; - sd 64[$r12] = $r24 - make $r24, 5000 -;; - sd 72[$r12] = $r25 - call malloc -;; - addd $r19 = $r0, 0 - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call random_ascending_fill -;; - call get_current_cycle -;; - sbfd $r21 = $r18, $r0 - addd $r2 = $r23, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call my_bsearch -;; - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r2 = $r23, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call my_bsearch -;; - addd $r22 = $r0, 0 - call get_current_cycle -;; - sbfd $r20 = $r18, $r0 - call get_current_cycle -;; - addd $r25 = $r0, 0 - addd $r2 = $r23, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call my_bsearch2 -;; - addd $r18 = $r0, 0 - call get_current_cycle -;; - sbfd $r5 = $r25, $r0 - make $r0 = __stringlit_1 - addd $r4 = $r20, 0 - addd $r3 = $r21, 0 -;; - addd $r2 = $r18, 0 - addd $r1 = $r22, 0 - call printf -;; - addd $r0 = $r19, 0 - call free -;; - make $r0, 0 - ld $r16 = 8[$r12] -;; - ld $r18 = 16[$r12] -;; - ld $r19 = 24[$r12] -;; - ld $r20 = 32[$r12] - set $ra = $r16 -;; - ld $r21 = 40[$r12] -;; - ld $r22 = 48[$r12] -;; - ld $r23 = 56[$r12] -;; - ld $r24 = 64[$r12] -;; - ld $r25 = 72[$r12] -;; - addd $r12 = $r12, 80 -;; - ret -;; - .type main, @function - .size main, . - main diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized06 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized06 deleted file mode 100644 index 79005b9c..00000000 --- a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized06 +++ /dev/null @@ -1,287 +0,0 @@ -# File generated by CompCert 3.5 -# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s - .section .rodata - .balign 1 -__stringlit_1: - .ascii "position1: %d\012position2: %d\012random fill cycles: %lu\012search1 cycles: %lu\012search2 cycles: %lu\012\000" - .type __stringlit_1, @object - .size __stringlit_1, . - __stringlit_1 - .text - .balign 2 - .globl my_bsearch -my_bsearch: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r4, 0 - addw $r6 = $r1, -1 -;; -.L100: - addw $r5 = $r4, $r6 -;; - srlw $r3 = $r5, 1 -;; - zxwd $r5 = $r3 -;; - slld $r8 = $r5, 2 -;; - lws $r1 = $r8[$r0] -;; - compw.eq $r32 = $r1, $r2 -;; - cb.wnez $r32? .L101 -;; - compw.lt $r32 = $r1, $r2 -;; - cb.wnez $r32? .L102 -;; - addw $r6 = $r3, -1 - goto .L103 -;; -.L102: - addw $r4 = $r3, 1 -;; -.L103: - compw.leu $r32 = $r4, $r6 -;; - cb.wnez $r32? .L100 -;; - make $r0, -1 - goto .L104 -;; -.L101: - addd $r0 = $r3, 0 -;; -.L104: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch, @function - .size my_bsearch, . - my_bsearch - .text - .balign 2 - .globl my_bsearch2 -my_bsearch2: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r5, 0 - addw $r4 = $r1, -1 -;; -.L105: - addw $r9 = $r5, $r4 -;; - srlw $r1 = $r9, 1 -;; - lws.xs $r7 = $r1[$r0] -;; - compw.ne $r32 = $r7, $r2 -;; -;; - compw.lt $r3 = $r7, $r2 - compw.gt $r8 = $r7, $r2 - addw $r6 = $r1, 1 - addw $r1 = $r1, -1 - cb.weqz $r32? .L107 -;; - cmoved.wnez $r3? $r5 = $r6 - cmoved.wnez $r8? $r4 = $r1 -;; - compw.leu $r32 = $r5, $r4 -;; - cb.wnez $r32? .L105 -;; - make $r0, -1 -;; -.L107: - addd $r0 = $r1, 0 - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch2, @function - .size my_bsearch2, . - my_bsearch2 - .text - .balign 2 - .globl random_ascending_fill -random_ascending_fill: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r7, 41 - make $r8, 0 - make $r6, 0 -;; -.L108: - compw.geu $r32 = $r6, $r1 -;; - cb.wnez $r32? .L109 -;; - zxwd $r2 = $r6 - andw $r3 = $r7, 1073741824 -;; - slld $r4 = $r2, 2 -;; - sw $r4[$r0] = $r8 - addw $r8 = $r8, 1 - cb.weqz $r3? .L110 -;; - addw $r8 = $r8, 1 -;; -.L110: - mulw $r2 = $r7, 97 - addw $r6 = $r6, 1 -;; - addw $r7 = $r2, 5 - goto .L108 -;; -.L109: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type random_ascending_fill, @function - .size random_ascending_fill, . - random_ascending_fill - .text - .balign 2 - .globl main -main: - addd $r17 = $r12, 0 - addd $r12 = $r12, -80 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - sd 16[$r12] = $r18 - make $r0, 20000 -;; - sd 24[$r12] = $r19 -;; - sd 32[$r12] = $r20 -;; - sd 40[$r12] = $r21 -;; - sd 48[$r12] = $r22 -;; - sd 56[$r12] = $r23 - make $r23, 1502 -;; - sd 64[$r12] = $r24 - make $r24, 5000 -;; - sd 72[$r12] = $r25 - call malloc -;; - addd $r19 = $r0, 0 - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call random_ascending_fill -;; - call get_current_cycle -;; - sbfd $r21 = $r18, $r0 - addd $r2 = $r23, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call my_bsearch -;; - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r2 = $r23, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call my_bsearch -;; - addd $r22 = $r0, 0 - call get_current_cycle -;; - sbfd $r20 = $r18, $r0 - call get_current_cycle -;; - addd $r25 = $r0, 0 - addd $r2 = $r23, 0 - addd $r1 = $r24, 0 - addd $r0 = $r19, 0 - call my_bsearch2 -;; - addd $r18 = $r0, 0 - call get_current_cycle -;; - sbfd $r5 = $r25, $r0 - make $r0 = __stringlit_1 - addd $r4 = $r20, 0 - addd $r3 = $r21, 0 -;; - addd $r2 = $r18, 0 - addd $r1 = $r22, 0 - call printf -;; - addd $r0 = $r19, 0 - call free -;; - make $r0, 0 - ld $r16 = 8[$r12] -;; - ld $r18 = 16[$r12] -;; - ld $r19 = 24[$r12] -;; - ld $r20 = 32[$r12] - set $ra = $r16 -;; - ld $r21 = 40[$r12] -;; - ld $r22 = 48[$r12] -;; - ld $r23 = 56[$r12] -;; - ld $r24 = 64[$r12] -;; - ld $r25 = 72[$r12] -;; - addd $r12 = $r12, 80 -;; - ret -;; - .type main, @function - .size main, . - main diff --git a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized07 b/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized07 deleted file mode 100644 index 3214c5bc..00000000 --- a/test/monniaux/binary_search/binary_search.ccomp.k1c.s.optimized07 +++ /dev/null @@ -1,372 +0,0 @@ -# File generated by CompCert 3.5 -# Command line: -O3 -Wall -Wno-c11-extensions -fno-unprototyped -S binary_search.c -o binary_search.ccomp.k1c.s - .section .rodata - .balign 1 -__stringlit_1: - .ascii "position1: %d\012position2: %d\012position3: %d\012random fill cycles: %lu\012search1 cycles: %lu\012search2 cycles: %lu\012search3 cycles: %lu\012\000" - .type __stringlit_1, @object - .size __stringlit_1, . - __stringlit_1 - .text - .balign 2 - .globl my_bsearch -my_bsearch: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r4, 0 - addw $r6 = $r1, -1 -;; -.L100: - addw $r5 = $r4, $r6 -;; - srlw $r3 = $r5, 1 -;; - zxwd $r5 = $r3 -;; - slld $r8 = $r5, 2 -;; - lws $r1 = $r8[$r0] -;; - compw.eq $r32 = $r1, $r2 -;; - cb.wnez $r32? .L101 -;; - compw.lt $r32 = $r1, $r2 -;; - cb.wnez $r32? .L102 -;; - addw $r6 = $r3, -1 - goto .L103 -;; -.L102: - addw $r4 = $r3, 1 -;; -.L103: - compw.leu $r32 = $r4, $r6 -;; - cb.wnez $r32? .L100 -;; - make $r0, -1 - goto .L104 -;; -.L101: - addd $r0 = $r3, 0 -;; -.L104: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch, @function - .size my_bsearch, . - my_bsearch - .text - .balign 2 - .globl my_bsearch2 -my_bsearch2: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r5, 0 - addw $r4 = $r1, -1 -;; -.L105: - addw $r9 = $r5, $r4 -;; - srlw $r1 = $r9, 1 -;; - zxwd $r10 = $r1 -;; - slld $r8 = $r10, 2 -;; - lws $r7 = $r8[$r0] -;; - compw.ne $r32 = $r7, $r2 -;; - cb.wnez $r32? .L106 -;; - addd $r0 = $r1, 0 - goto .L107 -;; -.L106: - compw.lt $r3 = $r7, $r2 - addw $r6 = $r1, 1 - addw $r1 = $r1, -1 -;; - cmoved.wnez $r3? $r5 = $r6 - compw.gt $r6 = $r7, $r2 -;; - cmoved.wnez $r6? $r4 = $r1 -;; - compw.leu $r32 = $r5, $r4 -;; - cb.wnez $r32? .L105 -;; - make $r0, -1 -;; -.L107: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch2, @function - .size my_bsearch2, . - my_bsearch2 - .text - .balign 2 - .globl my_bsearch3 -my_bsearch3: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r7, 0 - addw $r3 = $r1, -1 -;; -.L108: - addw $r11 = $r7, $r3 -;; - srlw $r6 = $r11, 1 -;; - addw $r1 = $r6, 1 - lws.xs $r4 = $r6[$r0] -;; - compw.lt $r5 = $r4, $r2 - compw.gt $r8 = $r4, $r2 - compw.eq $r32 = $r4, $r2 -;; - cmoved.wnez $r5? $r7 = $r1 - addw $r5 = $r6, -1 -;; - cmoved.wnez $r8? $r3 = $r5 - cb.wnez $r32? .L109 -;; - compw.leu $r32 = $r7, $r3 -;; - cb.wnez $r32? .L108 -;; - make $r6, -1 -;; -.L109: - addd $r0 = $r6, 0 - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type my_bsearch3, @function - .size my_bsearch3, . - my_bsearch3 - .text - .balign 2 - .globl random_ascending_fill -random_ascending_fill: - addd $r17 = $r12, 0 - addd $r12 = $r12, -16 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - make $r7, 41 - make $r8, 0 - make $r6, 0 -;; -.L110: - compw.geu $r32 = $r6, $r1 -;; - cb.wnez $r32? .L111 -;; - zxwd $r2 = $r6 - andw $r3 = $r7, 1073741824 -;; - slld $r4 = $r2, 2 -;; - sw $r4[$r0] = $r8 - addw $r8 = $r8, 1 - cb.weqz $r3? .L112 -;; - addw $r8 = $r8, 1 -;; -.L112: - mulw $r2 = $r7, 97 - addw $r6 = $r6, 1 -;; - addw $r7 = $r2, 5 - goto .L110 -;; -.L111: - ld $r16 = 8[$r12] -;; - set $ra = $r16 -;; - addd $r12 = $r12, 16 -;; - ret -;; - .type random_ascending_fill, @function - .size random_ascending_fill, . - random_ascending_fill - .text - .balign 2 - .globl main -main: - addd $r17 = $r12, 0 - addd $r12 = $r12, -96 -;; - sd 0[$r12] = $r17 -;; -;; - get $r16 = $ra -;; - sd 8[$r12] = $r16 -;; - sd 16[$r12] = $r18 - make $r0, 20000 -;; - sd 24[$r12] = $r19 - make $r19, 1502 -;; - sd 32[$r12] = $r20 - make $r20, 5000 -;; - sd 40[$r12] = $r21 -;; - sd 48[$r12] = $r22 -;; - sd 56[$r12] = $r23 -;; - sd 64[$r12] = $r24 -;; - sd 72[$r12] = $r25 -;; - sd 80[$r12] = $r26 -;; - sd 88[$r12] = $r27 - call malloc -;; - addd $r21 = $r0, 0 - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r1 = $r20, 0 - addd $r0 = $r21, 0 - call random_ascending_fill -;; - call get_current_cycle -;; - sbfd $r24 = $r18, $r0 - addd $r2 = $r19, 0 - addd $r1 = $r20, 0 - addd $r0 = $r21, 0 - call my_bsearch -;; - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r2 = $r19, 0 - addd $r1 = $r20, 0 - addd $r0 = $r21, 0 - call my_bsearch -;; - addd $r26 = $r0, 0 - call get_current_cycle -;; - sbfd $r23 = $r18, $r0 - call get_current_cycle -;; - addd $r18 = $r0, 0 - addd $r2 = $r19, 0 - addd $r1 = $r20, 0 - addd $r0 = $r21, 0 - call my_bsearch2 -;; - addd $r25 = $r0, 0 - call get_current_cycle -;; - sbfd $r22 = $r18, $r0 - call get_current_cycle -;; - addd $r27 = $r0, 0 - addd $r2 = $r19, 0 - addd $r1 = $r20, 0 - addd $r0 = $r21, 0 - call my_bsearch3 -;; - addd $r18 = $r0, 0 - call get_current_cycle -;; - sbfd $r7 = $r27, $r0 - make $r0 = __stringlit_1 - addd $r6 = $r22, 0 - addd $r5 = $r23, 0 -;; - addd $r4 = $r24, 0 - addd $r3 = $r18, 0 - addd $r2 = $r25, 0 - addd $r1 = $r26, 0 - call printf -;; - addd $r0 = $r21, 0 - call free -;; - make $r0, 0 - ld $r16 = 8[$r12] -;; - ld $r18 = 16[$r12] -;; - ld $r19 = 24[$r12] -;; - ld $r20 = 32[$r12] - set $ra = $r16 -;; - ld $r21 = 40[$r12] -;; - ld $r22 = 48[$r12] -;; - ld $r23 = 56[$r12] -;; - ld $r24 = 64[$r12] -;; - ld $r25 = 72[$r12] -;; - ld $r26 = 80[$r12] -;; - ld $r27 = 88[$r12] -;; - addd $r12 = $r12, 96 -;; - ret -;; - .type main, @function - .size main, . - main -- cgit From d7998266416f7eb35e129c25182c67441ffa2d0a Mon Sep 17 00:00:00 2001 From: Cyril SIX Date: Wed, 17 Jul 2019 11:25:29 +0200 Subject: (#141) Started to port the new Makefile to rules.mk. Ported binary_search --- test/monniaux/binary_search/binary_search.c | 2 +- test/monniaux/binary_search/make.proto | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 test/monniaux/binary_search/make.proto (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/binary_search.c b/test/monniaux/binary_search/binary_search.c index 4051ebf0..f16d15b8 100644 --- a/test/monniaux/binary_search/binary_search.c +++ b/test/monniaux/binary_search/binary_search.c @@ -118,7 +118,7 @@ int main () { "position2: %d\n" "position3: %d\n" "position4: %d\n" - "random fill cycles: %" PRIu64 "\n" + "randomfill cycles: %" PRIu64 "\n" "search1 cycles: %" PRIu64 "\n" "search2 cycles: %" PRIu64 "\n" "search3 cycles: %" PRIu64 "\n" diff --git a/test/monniaux/binary_search/make.proto b/test/monniaux/binary_search/make.proto deleted file mode 100644 index 337751bb..00000000 --- a/test/monniaux/binary_search/make.proto +++ /dev/null @@ -1,2 +0,0 @@ -target: binary_search -measures: ["random fill", search1] -- cgit From 625a93fe5ec46c7de81594b89f8cca5dd83dafc5 Mon Sep 17 00:00:00 2001 From: Cyril SIX Date: Wed, 17 Jul 2019 11:42:37 +0200 Subject: bitsliced-tea --- test/monniaux/binary_search/Makefile | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 test/monniaux/binary_search/Makefile (limited to 'test/monniaux/binary_search') diff --git a/test/monniaux/binary_search/Makefile b/test/monniaux/binary_search/Makefile new file mode 100644 index 00000000..924f4217 --- /dev/null +++ b/test/monniaux/binary_search/Makefile @@ -0,0 +1,4 @@ +TARGET=binary_search +MEASURES="randomfill search1 search2 search3 search4" + +include ../rules.mk -- cgit