hotspot/test/compiler/codegen/6431242/Test.java
changeset 27699 9913b19c0948
parent 22234 da823d78ad65
equal deleted inserted replaced
27698:123470911257 27699:9913b19c0948
       
     1 /*
       
     2  * Copyright (c) 2006, 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  *
       
    23  */
       
    24 
       
    25 /*
       
    26  * @test
       
    27  * @bug 6431242
       
    28  * @run main Test
       
    29  */
       
    30 
       
    31 public class Test{
       
    32 
       
    33   int    _len      = 8;
       
    34   int[]  _arr_i    = new int[_len];
       
    35   long[] _arr_l    = new long[_len];
       
    36 
       
    37   int[]  _arr_i_cp = new int [_len];
       
    38   long[] _arr_l_cp = new long [_len];
       
    39 
       
    40   int _k     = 0x12345678;
       
    41   int _j     = 0;
       
    42   int _ir    = 0x78563412;
       
    43   int _ir1   = 0x78563413;
       
    44   int _ir2   = 0x79563412;
       
    45 
       
    46   long _m    = 0x123456789abcdef0L;
       
    47   long _l    = 0L;
       
    48   long _lr   = 0xf0debc9a78563412L;
       
    49   long _lr1  = 0xf0debc9a78563413L;
       
    50   long _lr2  = 0xf1debc9a78563412L;
       
    51 
       
    52   void init() {
       
    53     for (int i=0; i<_arr_i.length; i++) {
       
    54       _arr_i[i] = _k;
       
    55       _arr_l[i] = _m;
       
    56     }
       
    57   }
       
    58 
       
    59   public int test_int_reversed(int i) {
       
    60     return Integer.reverseBytes(i);
       
    61   }
       
    62 
       
    63   public long test_long_reversed(long i) {
       
    64     return Long.reverseBytes(i);
       
    65   }
       
    66 
       
    67   public void test_copy_ints(int[] dst, int[] src) {
       
    68     for(int i=0; i<src.length; i++) {
       
    69       dst[i] = Integer.reverseBytes(src[i]);
       
    70     }
       
    71   }
       
    72 
       
    73   public void test_copy_ints_reversed(int[] dst, int[] src) {
       
    74     for (int i=0; i<src.length; i++) {
       
    75       dst[i] = 1 + Integer.reverseBytes(src[i]);
       
    76     }
       
    77   }
       
    78 
       
    79   public void test_copy_ints_store_reversed(int[] dst, int[] src) {
       
    80     for(int i=0; i<src.length; i++) {
       
    81       dst[i] = Integer.reverseBytes(1 + src[i]);
       
    82     }
       
    83   }
       
    84 
       
    85   public void test_copy_longs(long[] dst, long[] src) {
       
    86     for(int i=0; i<src.length; i++) {
       
    87       dst[i] = Long.reverseBytes(src[i]);
       
    88     }
       
    89   }
       
    90 
       
    91   public void test_copy_longs_reversed(long[] dst, long[] src) {
       
    92     for (int i=0; i<src.length; i++) {
       
    93       dst[i] = 1 + Long.reverseBytes(src[i]);
       
    94     }
       
    95   }
       
    96 
       
    97   public void test_copy_longs_store_reversed(long[] dst, long[] src) {
       
    98     for(int i=0; i<src.length; i++) {
       
    99       dst[i] = Long.reverseBytes(1 + src[i]);
       
   100     }
       
   101   }
       
   102 
       
   103   public void test() throws Exception {
       
   104     int up_limit=90000;
       
   105 
       
   106 
       
   107     //test single
       
   108 
       
   109     for (int loop=0; loop<up_limit; loop++) {
       
   110       _j = test_int_reversed(_k);
       
   111       if (_j != _ir ) {
       
   112         throw new Exception("Interger.reverseBytes failed " + _j + " iter " + loop);
       
   113       }
       
   114       _l = test_long_reversed(_m);
       
   115       if (_l != _lr ) {
       
   116         throw new Exception("Long.reverseBytes failed " + _l + " iter " + loop);
       
   117       }
       
   118     }
       
   119 
       
   120     // test scalar load/store
       
   121     for (int loop=0; loop<up_limit; loop++) {
       
   122 
       
   123       test_copy_ints(_arr_i_cp, _arr_i);
       
   124       for (int j=0; j< _arr_i.length; j++) {
       
   125         if (_arr_i_cp[j] != _ir) {
       
   126           throw new Exception("Interger.reverseBytes failed test_copy_ints iter " + loop);
       
   127         }
       
   128       }
       
   129 
       
   130       test_copy_ints_reversed(_arr_i_cp, _arr_i);
       
   131       for (int j=0; j< _arr_i.length; j++) {
       
   132         if (_arr_i_cp[j] != _ir1) {
       
   133           throw new Exception("Interger.reverseBytes failed test_copy_ints_reversed iter " + loop);
       
   134         }
       
   135       }
       
   136       test_copy_ints_store_reversed(_arr_i_cp, _arr_i);
       
   137       for (int j=0; j< _arr_i.length; j++) {
       
   138         if (_arr_i_cp[j] != _ir2) {
       
   139           throw new Exception("Interger.reverseBytes failed test_copy_ints_store_reversed iter " + loop);
       
   140         }
       
   141       }
       
   142 
       
   143       test_copy_longs(_arr_l_cp, _arr_l);
       
   144       for (int j=0; j< _arr_i.length; j++) {
       
   145         if (_arr_l_cp[j] != _lr) {
       
   146           throw new Exception("Long.reverseBytes failed test_copy_longs iter " + loop);
       
   147         }
       
   148       }
       
   149       test_copy_longs_reversed(_arr_l_cp, _arr_l);
       
   150       for (int j=0; j< _arr_i.length; j++) {
       
   151         if (_arr_l_cp[j] != _lr1) {
       
   152           throw new Exception("Long.reverseBytes failed test_copy_longs_reversed iter " + loop);
       
   153         }
       
   154       }
       
   155       test_copy_longs_store_reversed(_arr_l_cp, _arr_l);
       
   156       for (int j=0; j< _arr_i.length; j++) {
       
   157         if (_arr_l_cp[j] != _lr2) {
       
   158           throw new Exception("Long.reverseBytes failed test_copy_longs_store_reversed iter " + loop);
       
   159         }
       
   160       }
       
   161 
       
   162     }
       
   163   }
       
   164 
       
   165   public static void main(String args[]) {
       
   166     try {
       
   167       Test t = new Test();
       
   168       t.init();
       
   169       t.test();
       
   170       System.out.println("Passed");
       
   171     }catch (Exception e) {
       
   172       e.printStackTrace();
       
   173       System.out.println("Failed");
       
   174     }
       
   175   }
       
   176 }