/*
* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
/**
* @test
* @bug 6909839
* @summary missing unsigned compare cases for some cmoves in sparc.ad
*
* @run main/othervm -XX:+AggressiveOpts -Xbatch Test6909839
*/
public class Test6909839 {
public static void main(String[] args) {
testi();
testi();
testi();
testui();
testui();
testui();
testdi();
testdi();
testdi();
testfi();
testfi();
testfi();
testl();
testl();
testl();
testul();
testul();
testul();
testdl();
testdl();
testdl();
testfl();
testfl();
testfl();
testf();
testf();
testf();
testuf();
testuf();
testuf();
testdf();
testdf();
testdf();
testff();
testff();
testff();
testd();
testd();
testd();
testud();
testud();
testud();
testdd();
testdd();
testdd();
testfd();
testfd();
testfd();
testp();
testp();
testp();
testup();
testup();
testup();
testdp();
testdp();
testdp();
testfp();
testfp();
testfp();
}
static void testui() {
int total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += ((v >= 1 && v < 3) ? 1 : 2);
}
System.out.println(total);
}
static void testdi() {
int total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += (v > 1.0) ? 1 : 2;
}
System.out.println(total);
}
static void testfi() {
int total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += (v > 1.0f) ? 1 : 2;
}
System.out.println(total);
}
static void testi() {
int total = 0;
for (int i = 0 ; i < 10000; i++) {
total += (i % 4 != 0) ? 1 : 2;
}
System.out.println(total);
}
static void testul() {
long total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += ((v >= 1 && v < 3) ? 1L : 2L);
}
System.out.println(total);
}
static void testdl() {
long total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += (v > 1.0) ? 1L : 2L;
}
System.out.println(total);
}
static void testfl() {
long total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += (v > 1.0f) ? 1L : 2L;
}
System.out.println(total);
}
static void testl() {
long total = 0;
for (int i = 0 ; i < 10000; i++) {
total += (i % 4 != 0) ? 1L : 2L;
}
System.out.println(total);
}
static void testuf() {
float total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += ((v >= 1 && v < 3) ? 1.0f : 2.0f);
}
System.out.println(total);
}
static void testdf() {
float total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += (v > 0.0) ? 1.0f : 2.0f;
}
System.out.println(total);
}
static void testff() {
float total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += (v > 0.0f) ? 1.0f : 2.0f;
}
System.out.println(total);
}
static void testf() {
float total = 0;
for (int i = 0 ; i < 10000; i++) {
total += (i % 4 != 0) ? 1.0f : 2.0f;
}
System.out.println(total);
}
static void testud() {
double total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += ((v >= 1 && v < 3) ? 1.0d : 2.0d);
}
System.out.println(total);
}
static void testdd() {
double total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += (v > 1.0) ? 1.0d : 2.0d;
}
System.out.println(total);
}
static void testfd() {
double total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += (v > 1.0f) ? 1.0d : 2.0d;
}
System.out.println(total);
}
static void testd() {
double total = 0;
for (int i = 0 ; i < 10000; i++) {
total += (i % 4 != 0) ? 1.0d : 2.0d;
}
System.out.println(total);
}
static void testp() {
Object a = new Object();
Object b = new Object();;
int total = 0;
for (int i = 0 ; i < 10000; i++) {
total += ((i % 4 != 0) ? a : b).hashCode();
}
System.out.println(total);
}
static void testup() {
Object a = new Object();
Object b = new Object();;
int total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += ((v >= 1 && v < 3) ? a : b).hashCode();
}
System.out.println(total);
}
static void testdp() {
Object a = new Object();
Object b = new Object();;
int total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += ((v > 1.0) ? a : b).hashCode();
}
System.out.println(total);
}
static void testfp() {
Object a = new Object();
Object b = new Object();;
int total = 0;
for (int i = 0 ; i < 10000; i++) {
int v = i % 4;
total += ((v > 1.0f) ? a : b).hashCode();
}
System.out.println(total);
}
}