* divun.cs: microbenchmark for DIV.UN opt.
authorSergey Chaban <serge@mono-cvs.ximian.com>
Fri, 3 May 2002 12:22:45 +0000 (12:22 -0000)
committerSergey Chaban <serge@mono-cvs.ximian.com>
Fri, 3 May 2002 12:22:45 +0000 (12:22 -0000)
svn path=/trunk/mono/; revision=4251

mono/benchmark/divun.cs [new file with mode: 0644]

diff --git a/mono/benchmark/divun.cs b/mono/benchmark/divun.cs
new file mode 100644 (file)
index 0000000..ba1cd1f
--- /dev/null
@@ -0,0 +1,26 @@
+using System;
+
+class X {
+
+       public static int DivUn(int x) {
+               x *= 163859;
+               x = (int) ((uint)x / 5);
+               x = (int) ((uint)x / 25);
+               x = (int) ((uint)x / 10);
+               x = (int) ((uint)x / 128);
+               x = (int) ((uint)x / 43);
+               x = (int) ((uint)x / 2);
+               x = (int) ((uint)x / 4);
+               x = (int) ((uint)x / 1);
+               return x;
+       }
+
+       public static int Main() {
+               int x = 1;
+               for (int i=0; i < 100000000; ++i) x += DivUn(12345);
+               // x |= -1; // check for overflow case
+               x = (int) ((uint)x / 1025);             
+               return x;
+       }
+
+}