From 2ae43be7b9d4118335c9d2cef6e098f9b9f807fe Mon Sep 17 00:00:00 2001 From: xleroy Date: Thu, 9 Feb 2006 14:55:48 +0000 Subject: Initial import of compcert git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- test/cminor/qsort.cm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 test/cminor/qsort.cm (limited to 'test/cminor/qsort.cm') diff --git a/test/cminor/qsort.cm b/test/cminor/qsort.cm new file mode 100644 index 00000000..004f8cd7 --- /dev/null +++ b/test/cminor/qsort.cm @@ -0,0 +1,30 @@ +"quicksort"(lo, hi, a): int -> int -> int -> void +{ + var i, j, pivot, temp; + + if (! (lo < hi)) return; + i = lo; + j = hi; + pivot = int32[a + hi * 4]; + {{ loop { + if (! (i < j)) exit; + {{ loop { + if (i >= hi || int32[a + i * 4] > pivot) exit; + i = i + 1; + } }} + {{ loop { + if (j <= lo || int32[a + j * 4] < pivot) exit; + j = j - 1; + } }} + if (i < j) { + temp = int32[a + i * 4]; + int32[a + i * 4] = int32[a + j * 4]; + int32[a + j * 4] = temp; + } + } }} + temp = int32[a + i * 4]; + int32[a + i * 4] = int32[a + hi * 4]; + int32[a + hi * 4] = temp; + "quicksort"(lo, i - 1, a) : int -> int -> int -> void; + "quicksort"(i + 1, hi, a) : int -> int -> int -> void; +} -- cgit