test/compiler/6934604/TestByteBoxing.java

Mon, 28 Jul 2014 15:06:38 -0700

author
fzhinkin
date
Mon, 28 Jul 2014 15:06:38 -0700
changeset 6997
dbb05f6d93c4
parent 0
f90c822e73f8
permissions
-rw-r--r--

8051344: JVM crashed in Compile::start() during method parsing w/ UseRTMDeopt turned on
Summary: call rtm_deopt() only if there were no compilation bailouts before.
Reviewed-by: kvn

     1 /*
     2  * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     8  *
     9  * This code is distributed in the hope that it will be useful, but WITHOUT
    10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    12  * version 2 for more details (a copy is included in the LICENSE file that
    13  * accompanied this code).
    14  *
    15  * You should have received a copy of the GNU General Public License version
    16  * 2 along with this work; if not, write to the Free Software Foundation,
    17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    18  *
    19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    22  */
    24 /*
    25  * @test
    26  * @bug 6934604
    27  * @summary enable parts of EliminateAutoBox by default
    28  * @run main/othervm -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:+EliminateAutoBox TestByteBoxing
    29  * @run main/othervm -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:+EliminateAutoBox
    30  * -XX:CompileCommand=exclude,TestByteBoxing.dummy -XX:CompileCommand=exclude,TestByteBoxing.foo -XX:CompileCommand=exclude,TestByteBoxing.foob TestByteBoxing
    31  * @run main/othervm -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:-EliminateAutoBox
    32  * -XX:CompileCommand=exclude,TestByteBoxing.dummy -XX:CompileCommand=exclude,TestByteBoxing.foo -XX:CompileCommand=exclude,TestByteBoxing.foob TestByteBoxing
    33  *
    34  */
    36 public class TestByteBoxing {
    38   static final Byte ibc = new Byte((byte)1);
    40   //===============================================
    41   // Non-inlined methods to test deoptimization info
    42   static void dummy()      { }
    43   static byte foo(byte i)  { return i; }
    44   static Byte foob(byte i) { return Byte.valueOf(i); }
    47   static byte simple(byte i) {
    48     Byte ib = new Byte(i);
    49     return ib;
    50   }
    52   static byte simpleb(byte i) {
    53     Byte ib = Byte.valueOf(i);
    54     return ib;
    55   }
    57   static byte simplec() {
    58     Byte ib = ibc;
    59     return ib;
    60   }
    62   static byte simplef(byte i) {
    63     Byte ib = foob(i);
    64     return ib;
    65   }
    67   static byte simplep(Byte ib) {
    68     return ib;
    69   }
    71   static byte simple2(byte i) {
    72     Byte ib1 = new Byte(i);
    73     Byte ib2 = new Byte((byte)(i+1));
    74     return (byte)(ib1 + ib2);
    75   }
    77   static byte simpleb2(byte i) {
    78     Byte ib1 = Byte.valueOf(i);
    79     Byte ib2 = Byte.valueOf((byte)(i+1));
    80     return (byte)(ib1 + ib2);
    81   }
    83   static byte simplem2(byte i) {
    84     Byte ib1 = new Byte(i);
    85     Byte ib2 = Byte.valueOf((byte)(i+1));
    86     return (byte)(ib1 + ib2);
    87   }
    89   static byte simplep2(byte i, Byte ib1) {
    90     Byte ib2 = Byte.valueOf((byte)(i+1));
    91     return (byte)(ib1 + ib2);
    92   }
    94   static byte simplec2(byte i) {
    95     Byte ib1 = ibc;
    96     Byte ib2 = Byte.valueOf((byte)(i+1));
    97     return (byte)(ib1 + ib2);
    98   }
   100   //===============================================
   101   static byte test(byte i) {
   102     Byte ib = new Byte(i);
   103     if ((i&1) == 0)
   104       ib = (byte)(i+1);
   105     return ib;
   106   }
   108   static byte testb(byte i) {
   109     Byte ib = i;
   110     if ((i&1) == 0)
   111       ib = (byte)(i+1);
   112     return ib;
   113   }
   115   static byte testm(byte i) {
   116     Byte ib = i;
   117     if ((i&1) == 0)
   118       ib = new Byte((byte)(i+1));
   119     return ib;
   120   }
   122   static byte testp(byte i, Byte ib) {
   123     if ((i&1) == 0)
   124       ib = new Byte((byte)(i+1));
   125     return ib;
   126   }
   128   static byte testc(byte i) {
   129     Byte ib = ibc;
   130     if ((i&1) == 0)
   131       ib = new Byte((byte)(i+1));
   132     return ib;
   133   }
   135   static byte test2(byte i) {
   136     Byte ib1 = new Byte(i);
   137     Byte ib2 = new Byte((byte)(i+1));
   138     if ((i&1) == 0) {
   139       ib1 = new Byte((byte)(i+1));
   140       ib2 = new Byte((byte)(i+2));
   141     }
   142     return (byte)(ib1+ib2);
   143   }
   145   static byte testb2(byte i) {
   146     Byte ib1 = i;
   147     Byte ib2 = (byte)(i+1);
   148     if ((i&1) == 0) {
   149       ib1 = (byte)(i+1);
   150       ib2 = (byte)(i+2);
   151     }
   152     return (byte)(ib1 + ib2);
   153   }
   155   static byte testm2(byte i) {
   156     Byte ib1 = new Byte(i);
   157     Byte ib2 = (byte)(i+1);
   158     if ((i&1) == 0) {
   159       ib1 = new Byte((byte)(i+1));
   160       ib2 = (byte)(i+2);
   161     }
   162     return (byte)(ib1 + ib2);
   163   }
   165   static byte testp2(byte i, Byte ib1) {
   166     Byte ib2 = (byte)(i+1);
   167     if ((i&1) == 0) {
   168       ib1 = new Byte((byte)(i+1));
   169       ib2 = (byte)(i+2);
   170     }
   171     return (byte)(ib1 + ib2);
   172   }
   174   static byte testc2(byte i) {
   175     Byte ib1 = ibc;
   176     Byte ib2 = (byte)(i+1);
   177     if ((i&1) == 0) {
   178       ib1 = (byte)(ibc+1);
   179       ib2 = (byte)(i+2);
   180     }
   181     return (byte)(ib1 + ib2);
   182   }
   184   //===============================================
   185   static byte sum(byte[] a) {
   186     byte result = 1;
   187     for (Byte i : a)
   188         result += i;
   189     return result;
   190   }
   192   static byte sumb(byte[] a) {
   193     Byte result = 1;
   194     for (Byte i : a)
   195         result = (byte)(result + i);
   196     return result;
   197   }
   199   static byte sumc(byte[] a) {
   200     Byte result = ibc;
   201     for (Byte i : a)
   202         result = (byte)(result + i);
   203     return result;
   204   }
   206   static byte sumf(byte[] a) {
   207     Byte result = foob((byte)1);
   208     for (Byte i : a)
   209         result = (byte)(result + i);
   210     return result;
   211   }
   213   static byte sump(byte[] a, Byte result) {
   214     for (Byte i : a)
   215         result = (byte)(result + i);
   216     return result;
   217   }
   219   static byte sum2(byte[] a) {
   220     byte result1 = 1;
   221     byte result2 = 1;
   222     for (Byte i : a) {
   223         result1 += i;
   224         result2 += i + 1;
   225     }
   226     return (byte)(result1 + result2);
   227   }
   229   static byte sumb2(byte[] a) {
   230     Byte result1 = 1;
   231     Byte result2 = 1;
   232     for (Byte i : a) {
   233         result1 = (byte)(result1 + i);
   234         result2 = (byte)(result2 + i + 1);
   235     }
   236     return (byte)(result1 + result2);
   237   }
   239   static byte summ2(byte[] a) {
   240     Byte result1 = 1;
   241     Byte result2 = new Byte((byte)1);
   242     for (Byte i : a) {
   243         result1 = (byte)(result1 + i);
   244         result2 = (byte)(result2 + new Byte((byte)(i + 1)));
   245     }
   246     return (byte)(result1 + result2);
   247   }
   249   static byte sump2(byte[] a, Byte result2) {
   250     Byte result1 = 1;
   251     for (Byte i : a) {
   252         result1 = (byte)(result1 + i);
   253         result2 = (byte)(result2 + i + 1);
   254     }
   255     return (byte)(result1 + result2);
   256   }
   258   static byte sumc2(byte[] a) {
   259     Byte result1 = 1;
   260     Byte result2 = ibc;
   261     for (Byte i : a) {
   262         result1 = (byte)(result1 + i);
   263         result2 = (byte)(result2 + i + ibc);
   264     }
   265     return (byte)(result1 + result2);
   266   }
   268   //===============================================
   269   static byte remi_sum() {
   270     Byte j = new Byte((byte)1);
   271     for (int i = 0; i< 1000; i++) {
   272       j = new Byte((byte)(j + 1));
   273     }
   274     return j;
   275   }
   277   static byte remi_sumb() {
   278     Byte j = Byte.valueOf((byte)1);
   279     for (int i = 0; i< 1000; i++) {
   280       j = (byte)(j + 1);
   281     }
   282     return j;
   283   }
   285   static byte remi_sumf() {
   286     Byte j = foob((byte)1);
   287     for (int i = 0; i< 1000; i++) {
   288       j = (byte)(j + 1);
   289     }
   290     return j;
   291   }
   293   static byte remi_sump(Byte j) {
   294     for (int i = 0; i< 1000; i++) {
   295       j = new Byte((byte)(j + 1));
   296     }
   297     return j;
   298   }
   300   static byte remi_sumc() {
   301     Byte j = ibc;
   302     for (int i = 0; i< 1000; i++) {
   303       j = (byte)(j + ibc);
   304     }
   305     return j;
   306   }
   308   static byte remi_sum2() {
   309     Byte j1 = new Byte((byte)1);
   310     Byte j2 = new Byte((byte)1);
   311     for (int i = 0; i< 1000; i++) {
   312       j1 = new Byte((byte)(j1 + 1));
   313       j2 = new Byte((byte)(j2 + 2));
   314     }
   315     return (byte)(j1 + j2);
   316   }
   318   static byte remi_sumb2() {
   319     Byte j1 = Byte.valueOf((byte)1);
   320     Byte j2 = Byte.valueOf((byte)1);
   321     for (int i = 0; i< 1000; i++) {
   322       j1 = (byte)(j1 + 1);
   323       j2 = (byte)(j2 + 2);
   324     }
   325     return (byte)(j1 + j2);
   326   }
   328   static byte remi_summ2() {
   329     Byte j1 = new Byte((byte)1);
   330     Byte j2 = Byte.valueOf((byte)1);
   331     for (int i = 0; i< 1000; i++) {
   332       j1 = new Byte((byte)(j1 + 1));
   333       j2 = (byte)(j2 + 2);
   334     }
   335     return (byte)(j1 + j2);
   336   }
   338   static byte remi_sump2(Byte j1) {
   339     Byte j2 = Byte.valueOf((byte)1);
   340     for (int i = 0; i< 1000; i++) {
   341       j1 = new Byte((byte)(j1 + 1));
   342       j2 = (byte)(j2 + 2);
   343     }
   344     return (byte)(j1 + j2);
   345   }
   347   static byte remi_sumc2() {
   348     Byte j1 = ibc;
   349     Byte j2 = Byte.valueOf((byte)1);
   350     for (int i = 0; i< 1000; i++) {
   351       j1 = (byte)(j1 + ibc);
   352       j2 = (byte)(j2 + 2);
   353     }
   354     return (byte)(j1 + j2);
   355   }
   358   //===============================================
   359   // Safepointa and debug info for deoptimization
   360   static byte simple_deop(byte i) {
   361     Byte ib = new Byte(foo(i));
   362     dummy();
   363     return ib;
   364   }
   366   static byte simpleb_deop(byte i) {
   367     Byte ib = Byte.valueOf(foo(i));
   368     dummy();
   369     return ib;
   370   }
   372   static byte simplef_deop(byte i) {
   373     Byte ib = foob(i);
   374     dummy();
   375     return ib;
   376   }
   378   static byte simplep_deop(Byte ib) {
   379     dummy();
   380     return ib;
   381   }
   383   static byte simplec_deop(byte i) {
   384     Byte ib = ibc;
   385     dummy();
   386     return ib;
   387   }
   389   static byte test_deop(byte i) {
   390     Byte ib = new Byte(foo(i));
   391     if ((i&1) == 0)
   392       ib = foo((byte)(i+1));
   393     dummy();
   394     return ib;
   395   }
   397   static byte testb_deop(byte i) {
   398     Byte ib = foo(i);
   399     if ((i&1) == 0)
   400       ib = foo((byte)(i+1));
   401     dummy();
   402     return ib;
   403   }
   405   static byte testf_deop(byte i) {
   406     Byte ib = foob(i);
   407     if ((i&1) == 0)
   408       ib = foo((byte)(i+1));
   409     dummy();
   410     return ib;
   411   }
   413   static byte testp_deop(byte i, Byte ib) {
   414     if ((i&1) == 0)
   415       ib = foo((byte)(i+1));
   416     dummy();
   417     return ib;
   418   }
   420   static byte testc_deop(byte i) {
   421     Byte ib = ibc;
   422     if ((i&1) == 0)
   423       ib = foo((byte)(i+1));
   424     dummy();
   425     return ib;
   426   }
   428   static byte sum_deop(byte[] a) {
   429     byte result = 1;
   430     for (Byte i : a)
   431         result += foo(i);
   432     dummy();
   433     return result;
   434   }
   436   static byte sumb_deop(byte[] a) {
   437     Byte result = 1;
   438     for (Byte i : a)
   439         result = (byte)(result + foo(i));
   440     dummy();
   441     return result;
   442   }
   444   static byte sumf_deop(byte[] a) {
   445     Byte result = 1;
   446     for (Byte i : a)
   447         result = (byte)(result + foob(i));
   448     dummy();
   449     return result;
   450   }
   452   static byte sump_deop(byte[] a, Byte result) {
   453     for (Byte i : a)
   454         result = (byte)(result + foob(i));
   455     dummy();
   456     return result;
   457   }
   459   static byte sumc_deop(byte[] a) {
   460     Byte result = ibc;
   461     for (Byte i : a)
   462         result = (byte)(result + foo(i));
   463     dummy();
   464     return result;
   465   }
   467   static byte remi_sum_deop() {
   468     Byte j = new Byte(foo((byte)1));
   469     for (int i = 0; i< 1000; i++) {
   470       j = new Byte(foo((byte)(j + 1)));
   471     }
   472     dummy();
   473     return j;
   474   }
   476   static byte remi_sumb_deop() {
   477     Byte j = Byte.valueOf(foo((byte)1));
   478     for (int i = 0; i< 1000; i++) {
   479       j = foo((byte)(j + 1));
   480     }
   481     dummy();
   482     return j;
   483   }
   485   static byte remi_sumf_deop() {
   486     Byte j = foob((byte)1);
   487     for (int i = 0; i< 1000; i++) {
   488       j = foo((byte)(j + 1));
   489     }
   490     dummy();
   491     return j;
   492   }
   494   static byte remi_sump_deop(Byte j) {
   495     for (int i = 0; i< 1000; i++) {
   496       j = foo((byte)(j + 1));
   497     }
   498     dummy();
   499     return j;
   500   }
   502   static byte remi_sumc_deop() {
   503     Byte j = ibc;
   504     for (int i = 0; i< 1000; i++) {
   505       j = foo((byte)(j + 1));
   506     }
   507     dummy();
   508     return j;
   509   }
   511   //===============================================
   512   // Conditional increment
   513   static byte remi_sum_cond() {
   514     Byte j = new Byte((byte)1);
   515     for (int i = 0; i< 1000; i++) {
   516       if ((i&1) == 0) {
   517         j = new Byte((byte)(j + 1));
   518       }
   519     }
   520     return j;
   521   }
   523   static byte remi_sumb_cond() {
   524     Byte j = Byte.valueOf((byte)1);
   525     for (int i = 0; i< 1000; i++) {
   526       if ((i&1) == 0) {
   527         j = (byte)(j + 1);
   528       }
   529     }
   530     return j;
   531   }
   533   static byte remi_sumf_cond() {
   534     Byte j = foob((byte)1);
   535     for (int i = 0; i< 1000; i++) {
   536       if ((i&1) == 0) {
   537         j = (byte)(j + 1);
   538       }
   539     }
   540     return j;
   541   }
   543   static byte remi_sump_cond(Byte j) {
   544     for (int i = 0; i< 1000; i++) {
   545       if ((i&1) == 0) {
   546         j = (byte)(j + 1);
   547       }
   548     }
   549     return j;
   550   }
   552   static byte remi_sumc_cond() {
   553     Byte j = ibc;
   554     for (int i = 0; i< 1000; i++) {
   555       if ((i&1) == 0) {
   556         j = (byte)(j + ibc);
   557       }
   558     }
   559     return j;
   560   }
   562   static byte remi_sum2_cond() {
   563     Byte j1 = new Byte((byte)1);
   564     Byte j2 = new Byte((byte)1);
   565     for (int i = 0; i< 1000; i++) {
   566       if ((i&1) == 0) {
   567         j1 = new Byte((byte)(j1 + 1));
   568       } else {
   569         j2 = new Byte((byte)(j2 + 2));
   570       }
   571     }
   572     return (byte)(j1 + j2);
   573   }
   575   static byte remi_sumb2_cond() {
   576     Byte j1 = Byte.valueOf((byte)1);
   577     Byte j2 = Byte.valueOf((byte)1);
   578     for (int i = 0; i< 1000; i++) {
   579       if ((i&1) == 0) {
   580         j1 = (byte)(j1 + 1);
   581       } else {
   582         j2 = (byte)(j2 + 2);
   583       }
   584     }
   585     return (byte)(j1 + j2);
   586   }
   588   static byte remi_summ2_cond() {
   589     Byte j1 = new Byte((byte)1);
   590     Byte j2 = Byte.valueOf((byte)1);
   591     for (int i = 0; i< 1000; i++) {
   592       if ((i&1) == 0) {
   593         j1 = new Byte((byte)(j1 + 1));
   594       } else {
   595         j2 = (byte)(j2 + 2);
   596       }
   597     }
   598     return (byte)(j1 + j2);
   599   }
   601   static byte remi_sump2_cond(Byte j1) {
   602     Byte j2 = Byte.valueOf((byte)1);
   603     for (int i = 0; i< 1000; i++) {
   604       if ((i&1) == 0) {
   605         j1 = new Byte((byte)(j1 + 1));
   606       } else {
   607         j2 = (byte)(j2 + 2);
   608       }
   609     }
   610     return (byte)(j1 + j2);
   611   }
   613   static byte remi_sumc2_cond() {
   614     Byte j1 = ibc;
   615     Byte j2 = Byte.valueOf((byte)1);
   616     for (int i = 0; i< 1000; i++) {
   617       if ((i&1) == 0) {
   618         j1 = (byte)(j1 + ibc);
   619       } else {
   620         j2 = (byte)(j2 + 2);
   621       }
   622     }
   623     return (byte)(j1 + j2);
   624   }
   627   public static void main(String[] args) {
   628     final int ntests = 70;
   630     String[] test_name = new String[] {
   631         "simple",      "simpleb",      "simplec",      "simplef",      "simplep",
   632         "simple2",     "simpleb2",     "simplec2",     "simplem2",     "simplep2",
   633         "simple_deop", "simpleb_deop", "simplec_deop", "simplef_deop", "simplep_deop",
   634         "test",        "testb",        "testc",        "testm",        "testp",
   635         "test2",       "testb2",       "testc2",       "testm2",       "testp2",
   636         "test_deop",   "testb_deop",   "testc_deop",   "testf_deop",   "testp_deop",
   637         "sum",         "sumb",         "sumc",         "sumf",         "sump",
   638         "sum2",        "sumb2",        "sumc2",        "summ2",        "sump2",
   639         "sum_deop",    "sumb_deop",    "sumc_deop",    "sumf_deop",    "sump_deop",
   640         "remi_sum",       "remi_sumb",       "remi_sumc",       "remi_sumf",       "remi_sump",
   641         "remi_sum2",      "remi_sumb2",      "remi_sumc2",      "remi_summ2",      "remi_sump2",
   642         "remi_sum_deop",  "remi_sumb_deop",  "remi_sumc_deop",  "remi_sumf_deop",  "remi_sump_deop",
   643         "remi_sum_cond",  "remi_sumb_cond",  "remi_sumc_cond",  "remi_sumf_cond",  "remi_sump_cond",
   644         "remi_sum2_cond", "remi_sumb2_cond", "remi_sumc2_cond", "remi_summ2_cond", "remi_sump2_cond"
   645     };
   647     final int[] val = new int[] {
   648       -5488, -5488, 12000, -5488, -5488,
   649        1024,  1024, -5552,  1024,  1024,
   650       -5488, -5488, 12000, -5488, -5488,
   651         512,   512,  6256,   512,   512,
   652       13024, 13024, -5584, 13024, 13024,
   653         512,   512,  6256,   512,   512,
   654          45,    45,    45,    45,    45,
   655          66,    66,    66,    66,    66,
   656          45,    45,    45,    45,    45,
   657         -23,   -23,   -23,   -23,   -23,
   658         -70,   -70,   -70,   -70,   -70,
   659         -23,   -23,   -23,   -23,   -23,
   660         -11,   -11,   -11,   -11,   -11,
   661         -34,   -34,   -34,   -34,   -34
   662     };
   664     int[] res = new int[ntests];
   665     for (int i = 0; i < ntests; i++) {
   666       res[i] = 0;
   667     }
   670     for (int i = 0; i < 12000; i++) {
   671       res[0] += simple((byte)i);
   672       res[1] += simpleb((byte)i);
   673       res[2] += simplec();
   674       res[3] += simplef((byte)i);
   675       res[4] += simplep((byte)i);
   677       res[5] += simple2((byte)i);
   678       res[6] += simpleb2((byte)i);
   679       res[7] += simplec2((byte)i);
   680       res[8] += simplem2((byte)i);
   681       res[9] += simplep2((byte)i, (byte)i);
   683       res[10] += simple_deop((byte)i);
   684       res[11] += simpleb_deop((byte)i);
   685       res[12] += simplec_deop((byte)i);
   686       res[13] += simplef_deop((byte)i);
   687       res[14] += simplep_deop((byte)i);
   689       res[15] += test((byte)i);
   690       res[16] += testb((byte)i);
   691       res[17] += testc((byte)i);
   692       res[18] += testm((byte)i);
   693       res[19] += testp((byte)i, (byte)i);
   695       res[20] += test2((byte)i);
   696       res[21] += testb2((byte)i);
   697       res[22] += testc2((byte)i);
   698       res[23] += testm2((byte)i);
   699       res[24] += testp2((byte)i, (byte)i);
   701       res[25] += test_deop((byte)i);
   702       res[26] += testb_deop((byte)i);
   703       res[27] += testc_deop((byte)i);
   704       res[28] += testf_deop((byte)i);
   705       res[29] += testp_deop((byte)i, (byte)i);
   706     }
   708     byte[] ia = new byte[1000];
   709     for (int i = 0; i < 1000; i++) {
   710       ia[i] = (byte)i;
   711     }
   713     for (int i = 0; i < 100; i++) {
   714       res[30] = sum(ia);
   715       res[31] = sumb(ia);
   716       res[32] = sumc(ia);
   717       res[33] = sumf(ia);
   718       res[34] = sump(ia, (byte)1);
   720       res[35] = sum2(ia);
   721       res[36] = sumb2(ia);
   722       res[37] = sumc2(ia);
   723       res[38] = summ2(ia);
   724       res[39] = sump2(ia, (byte)1);
   726       res[40] = sum_deop(ia);
   727       res[41] = sumb_deop(ia);
   728       res[42] = sumc_deop(ia);
   729       res[43] = sumf_deop(ia);
   730       res[44] = sump_deop(ia, (byte)1);
   732       res[45] = remi_sum();
   733       res[46] = remi_sumb();
   734       res[47] = remi_sumc();
   735       res[48] = remi_sumf();
   736       res[49] = remi_sump((byte)1);
   738       res[50] = remi_sum2();
   739       res[51] = remi_sumb2();
   740       res[52] = remi_sumc2();
   741       res[53] = remi_summ2();
   742       res[54] = remi_sump2((byte)1);
   744       res[55] = remi_sum_deop();
   745       res[56] = remi_sumb_deop();
   746       res[57] = remi_sumc_deop();
   747       res[58] = remi_sumf_deop();
   748       res[59] = remi_sump_deop((byte)1);
   750       res[60] = remi_sum_cond();
   751       res[61] = remi_sumb_cond();
   752       res[62] = remi_sumc_cond();
   753       res[63] = remi_sumf_cond();
   754       res[64] = remi_sump_cond((byte)1);
   756       res[65] = remi_sum2_cond();
   757       res[66] = remi_sumb2_cond();
   758       res[67] = remi_sumc2_cond();
   759       res[68] = remi_summ2_cond();
   760       res[69] = remi_sump2_cond((byte)1);
   761     }
   763     int failed = 0;
   764     for (int i = 0; i < ntests; i++) {
   765       if (res[i] != val[i]) {
   766         System.err.println(test_name[i] + ": " + res[i] + " != " + val[i]);
   767         failed++;
   768       }
   769     }
   770     if (failed > 0) {
   771       System.err.println("Failed " + failed + " tests.");
   772       throw new InternalError();
   773     } else {
   774       System.out.println("Passed.");
   775     }
   776   }
   777 }

mercurial