test/compiler/intrinsics/mathexact/AddExactICondTest.java

Fri, 22 Nov 2013 14:14:26 +0100

author
rbackman
date
Fri, 22 Nov 2013 14:14:26 +0100
changeset 6152
9949533a8623
parent 5997
59e8ad757e19
child 6375
085b304a1cc5
permissions
-rw-r--r--

8028997: mathexact intrinsics are unstable
Reviewed-by: iveresov, kvn

rbackman@5791 1 /*
rbackman@5791 2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
rbackman@5791 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
rbackman@5791 4 *
rbackman@5791 5 * This code is free software; you can redistribute it and/or modify it
rbackman@5791 6 * under the terms of the GNU General Public License version 2 only, as
rbackman@5791 7 * published by the Free Software Foundation.
rbackman@5791 8 *
rbackman@5791 9 * This code is distributed in the hope that it will be useful, but WITHOUT
rbackman@5791 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
rbackman@5791 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
rbackman@5791 12 * version 2 for more details (a copy is included in the LICENSE file that
rbackman@5791 13 * accompanied this code).
rbackman@5791 14 *
rbackman@5791 15 * You should have received a copy of the GNU General Public License version
rbackman@5791 16 * 2 along with this work; if not, write to the Free Software Foundation,
rbackman@5791 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
rbackman@5791 18 *
rbackman@5791 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
rbackman@5791 20 * or visit www.oracle.com if you need additional information or have any
rbackman@5791 21 * questions.
rbackman@5791 22 */
rbackman@5791 23
rbackman@5791 24 /*
rbackman@5791 25 * @test
rbackman@5791 26 * @bug 8024924
rbackman@5791 27 * @summary Test non constant addExact
rbackman@5997 28 * @compile AddExactICondTest.java
rbackman@6152 29 * @run main AddExactICondTest -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseMathExactIntrinsics
rbackman@5791 30 *
rbackman@5791 31 */
rbackman@5791 32
rbackman@5997 33 public class AddExactICondTest {
rbackman@5791 34 public static int result = 0;
rbackman@5791 35
rbackman@5791 36 public static void main(String[] args) {
rbackman@5791 37 for (int i = 0; i < 50000; ++i) {
rbackman@5791 38 runTest();
rbackman@5791 39 }
rbackman@5791 40 }
rbackman@5791 41
rbackman@5791 42 public static void runTest() {
rbackman@5791 43 int i = 7;
rbackman@5791 44 while (java.lang.Math.addExact(i, result) < 89361) {
rbackman@5791 45 if ((java.lang.Math.addExact(i, i) & 1) == 1) {
rbackman@5791 46 i += 3;
rbackman@5791 47 } else if ((i & 5) == 4) {
rbackman@5791 48 i += 7;
rbackman@5791 49 } else if ((i & 0xf) == 6) {
rbackman@5791 50 i += 2;
rbackman@5791 51 } else {
rbackman@5791 52 i += 1;
rbackman@5791 53 }
rbackman@5791 54 result += 2;
rbackman@5791 55 }
rbackman@5791 56 }
rbackman@5791 57 }

mercurial