test/compiler/intrinsics/mathexact/CondTest.java

Fri, 27 Sep 2013 08:39:19 +0200

author
rbackman
date
Fri, 27 Sep 2013 08:39:19 +0200
changeset 5791
c9ccd7b85f20
permissions
-rw-r--r--

8024924: Intrinsify java.lang.Math.addExact
Reviewed-by: kvn, twisti

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@5791 28 * @compile CondTest.java Verify.java
rbackman@5791 29 * @run main CondTest
rbackman@5791 30 *
rbackman@5791 31 */
rbackman@5791 32
rbackman@5791 33 import java.lang.ArithmeticException;
rbackman@5791 34
rbackman@5791 35 public class CondTest {
rbackman@5791 36 public static int result = 0;
rbackman@5791 37
rbackman@5791 38 public static void main(String[] args) {
rbackman@5791 39 for (int i = 0; i < 50000; ++i) {
rbackman@5791 40 runTest();
rbackman@5791 41 }
rbackman@5791 42 }
rbackman@5791 43
rbackman@5791 44 public static void runTest() {
rbackman@5791 45 int i = 7;
rbackman@5791 46 while (java.lang.Math.addExact(i, result) < 89361) {
rbackman@5791 47 if ((java.lang.Math.addExact(i, i) & 1) == 1) {
rbackman@5791 48 i += 3;
rbackman@5791 49 } else if ((i & 5) == 4) {
rbackman@5791 50 i += 7;
rbackman@5791 51 } else if ((i & 0xf) == 6) {
rbackman@5791 52 i += 2;
rbackman@5791 53 } else {
rbackman@5791 54 i += 1;
rbackman@5791 55 }
rbackman@5791 56 result += 2;
rbackman@5791 57 }
rbackman@5791 58 }
rbackman@5791 59 }

mercurial