diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-04-06 11:06:35 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-04-06 11:06:35 +0200 |
commit | e56b4d2b614881e7e582614f53ed88583f2a90a7 (patch) | |
tree | a3266a1872fb9766dd942164c3666a786e72ede8 /test/monniaux/binary_search/binary_search.c | |
parent | fcd76683e5cc5f8d4b9a2179df6ea1dc9614c39a (diff) | |
download | compcert-kvx-e56b4d2b614881e7e582614f53ed88583f2a90a7.tar.gz compcert-kvx-e56b4d2b614881e7e582614f53ed88583f2a90a7.zip |
hand optimizations
Diffstat (limited to 'test/monniaux/binary_search/binary_search.c')
-rw-r--r-- | test/monniaux/binary_search/binary_search.c | 6 |
1 files changed, 4 insertions, 2 deletions
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; } |