* libjava.compile/OperatorBenchmark.java: New file.
authorAnthony Green <green@cygnus.com>
Thu, 22 Apr 1999 14:22:11 +0000 (14:22 +0000)
committerAnthony Green <green@gcc.gnu.org>
Thu, 22 Apr 1999 14:22:11 +0000 (14:22 +0000)
From-SVN: r26583

libjava/testsuite/ChangeLog
libjava/testsuite/libjava.compile/OperatorBenchmark.java [new file with mode: 0644]

index b3bfc60..3aad268 100644 (file)
@@ -1,3 +1,7 @@
+Thu Apr 22 14:19:35 1999  Anthony Green  <green@cygnus.com>
+
+       * libjava.compile/OperatorBenchmark.java: New file.
+
 1999-04-09  Warren Levy  <warrenl@cygnus.com>
 
        * libjava.mauve/mauve.exp (KEYS): Default to libgcj.
diff --git a/libjava/testsuite/libjava.compile/OperatorBenchmark.java b/libjava/testsuite/libjava.compile/OperatorBenchmark.java
new file mode 100644 (file)
index 0000000..03f660d
--- /dev/null
@@ -0,0 +1,886 @@
+\r
+/*\r
+ * Copyright (c) 1996, 1997 by Doug Bell <dbell@shvn.com>.  All Rights Reserved.\r
+ * \r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
+ * SUCH DAMAGE.\r
+ */\r
+\r
+\r
+// This file has been hacked to compile without the rest of the\r
+// benchmark code.\r
+\r
+class OperatorBenchmark {\r
+\r
+  public int getSampleCount() { return 0; }\r
+  public int getSampleMillis() { return 0; }\r
+  public boolean go;\r
+  public int useint[];\r
+  public void startTest () { }\r
+  public long finishTest () { return 0; }\r
+  public void startTimer (boolean b) { }\r
+  public void stopTimer (int a, int b) { }\r
+  public void report  (String s) { }\r
+  public void println  (String s) { }\r
+\r
+       public int getTestTime () {\r
+               return (int) (100 * getSampleCount() * getSampleMillis()) / 1000;\r
+       }\r
+\r
+       public int getRunningTime () {\r
+               return (int) (1.1 * getTestTime());\r
+       }\r
+\r
+       public long     runTest () {\r
+               int                     dummy1 = 0, dummy2 = 0, dummy3 = 0;  // occupy implicit index slots\r
+               int                     cnt, ii;\r
+               byte            b1 = 1, b2 = 2, b3 = 3;\r
+               short           s1 = 1, s2 = 2, s3 = 3;\r
+               int                     i1 = 1, i2 = 2, i3 = 3;\r
+               long            l1 = 1, l2 = 2, l3 = 3;\r
+               float           f1 = 1, f2 = 2, f3 = 3;\r
+               double          d1 = 1, d2 = 2, d3 = 3;\r
+\r
+               startTest();\r
+\r
+               println("--- byte operators, local vars");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1++;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte++");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 += b2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte += byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 = (byte) (b2 + b3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte = byte + byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 *= b2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte *= byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 = (byte) (b2 * b3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte = byte * byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 *= 2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte *= 2");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 <<= 1;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte <<= 1");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 %= b2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte %= byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 = (byte) (b2 % b3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte = byte % byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 /= b2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte /= byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 = (byte) (b2 / b3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte = byte / byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 /= 2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte /= 2");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 >>= 1;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte >>= 1");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 >>= i2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte >>= int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 = (byte) (b2 >> i3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte = byte >> int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 |= b2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte |= byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 = (byte) (b2 | b3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte = byte | byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 &= b2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte &= byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 = (byte) (b2 & b3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte = byte & byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 ^= b2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte ^= byte");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               b1 = (byte) (b2 ^ b3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("byte = byte ^ byte");\r
+\r
+\r
+               println("--- short operators, local vars");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1++;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short++");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 += s2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short += short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 = (short) (s2 + s3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short = short + short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 *= s2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short *= short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 = (short) (s2 * s3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short = short * short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 *= 2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short *= 2");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 <<= 1;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short <<= 1");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 %= s2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short %= short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 = (short) (s2 % s3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short = short % short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 /= s2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short /= short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 = (short) (s2 / s3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short = short / short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 /= 2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short /= 2");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 >>= 1;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short >>= 1");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 >>= i2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short >>= int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 = (short) (s2 >> i3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short = short >> int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 |= s2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short |= short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 = (short) (s2 | s3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short = short | short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 &= s2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short &= short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 = (short) (s2 & s3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short = short & short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 ^= s2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short ^= short");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               s1 = (short) (s2 ^ s3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("short = short ^ short");\r
+\r
+\r
+               println("--- int operators, local vars");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1++;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int++");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 += i2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int += int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 = (i2 + i3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int = int + int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 *= i2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int *= int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 = (i2 * i3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int = int * int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 *= 2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int *= 2");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 <<= 1;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int <<= 1");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 %= i2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int %= int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 = (i2 % i3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int = int % int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 /= i2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int /= int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 = (i2 / i3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int = int / int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 /= 2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int /= 2");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 >>= 1;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int >>= 1");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 >>= i2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int >>= int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 = i2 >> i3;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int = int >> int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 |= i2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int |= int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 = i2 | i3;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int = int | int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 &= i2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int &= int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 = i2 & i3;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int = int & int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 ^= i2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int ^= int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               i1 = i2 ^ i3;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("int = int ^ int");\r
+\r
+\r
+               println("--- long operators, local vars");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1++;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long++");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 += l2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long += long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 = (l2 + l3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long = long + long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 *= l2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long *= long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 = (l2 * l3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long = long * long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 *= 2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long *= 2");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 <<= 1;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long <<= 1");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 %= l2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long %= long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 = (l2 % l3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long = long % long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 /= l2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long /= long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 = (l2 / l3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long = long / long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 /= 2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long /= 2");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 >>= 1;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long >>= 1");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 >>= i2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long >>= int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 = l2 >> i3;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long = long >> int");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 |= l2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long |= long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 = l2 | l3;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long = long | long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 &= l2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long &= long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 = l2 & l3;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long = long & long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 ^= l2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long ^= long");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               l1 = l2 ^ l3;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("long = long ^ long");\r
+\r
+\r
+               println("--- float operators, local vars");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               f1 += f2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("float += float");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               f1 = (float) (f2 + f3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("float = float + float");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               f1 *= f2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("float *= float");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               f1 = (float) (f2 * f3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("float = float * float");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               f1 %= f2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("float %= float");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               f1 = (float) (f2 % f3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("float = float % float");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               f1 /= f2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("float /= float");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               f1 = (float) (f2 / f3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("float = float / float");\r
+\r
+\r
+               println("--- double operators, local vars");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               d1 += d2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("double += double");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               d1 = (d2 + d3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("double = double + double");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               d1 *= d2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("double *= double");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               d1 = (d2 * d3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("double = double * double");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               d1 %= d2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("double %= double");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               d1 = (d2 % d3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("double = double % double");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               d1 /= d2;\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("double /= double");\r
+\r
+               for (cnt = getSampleCount();  --cnt >= 0; ) {\r
+                       startTimer(true);\r
+                       for (ii = 0;  go;  ii++)\r
+                               d1 = (d2 / d3);\r
+                       stopTimer(cnt, ii);\r
+               }\r
+               report("double = double / double");\r
+\r
+               useint[0] = dummy1;  useint[1] = dummy2;  useint[2] = dummy3;\r
+               return finishTest();\r
+       }\r
+}  // class OperatorBenchmark\r
+\r
+// EOF\r