1 /* 2 * Copyright (c) 2008, 2018, 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 * @test 26 * 27 * @summary converted from VM Testbase jit/t/t029. 28 * VM Testbase keywords: [jit, quick] 29 * 30 * @library /vmTestbase 31 * /test/lib 32 * @run driver jdk.test.lib.FileInstaller . . 33 * @build jit.t.t029.t029 34 * @run driver ExecDriver --java jit.t.t029.t029 35 */ 36 37 package jit.t.t029; 38 39 import nsk.share.TestFailure; 40 import nsk.share.GoldChecker; 41 42 // opc_drem, opc_frem, opc_dreturn opc_freturn 43 44 class t029 45 { 46 public static final GoldChecker goldChecker = new GoldChecker( "t029" ); 47 frem(float f, float g)48 static float frem(float f, float g) 49 { 50 return f % g; 51 } 52 drem(double d, double e)53 static double drem(double d, double e) 54 { 55 return d % e; 56 } 57 main(String argv[])58 public static void main(String argv[]) 59 { 60 double d = 39.12345, e = 402.001; 61 float f = 39.12345f, g = 402.001f; 62 double x; 63 float y; 64 65 // Both pos. 66 67 t029.goldChecker.println(); 68 t029.goldChecker.println(d%e); 69 t029.goldChecker.println(e%(x=d)); 70 t029.goldChecker.println(f%g); 71 t029.goldChecker.println(g%(y=f)); 72 73 d = -d; 74 f = -f; 75 76 // First neg; second pos. 77 78 t029.goldChecker.println(); 79 t029.goldChecker.println(d%e); 80 t029.goldChecker.println(e%(x=d)); 81 t029.goldChecker.println(f%g); 82 t029.goldChecker.println(g%(y=f)); 83 84 e = -e; 85 g = -g; 86 87 // Both neg. 88 89 t029.goldChecker.println(); 90 t029.goldChecker.println(d%e); 91 t029.goldChecker.println(e%(x=d)); 92 t029.goldChecker.println(f%g); 93 t029.goldChecker.println(g%(y=f)); 94 95 d = -d; 96 f = -f; 97 98 // First pos; second neg; 99 100 t029.goldChecker.println(); 101 t029.goldChecker.println(d%e); 102 t029.goldChecker.println(e%(x=d)); 103 t029.goldChecker.println(f%g); 104 t029.goldChecker.println(g%(y=f)); 105 106 e = -e; 107 g = -g; 108 109 // Both pos. 110 111 t029.goldChecker.println(); 112 t029.goldChecker.println(drem(d,e)); 113 t029.goldChecker.println(drem(e, x=d)); 114 t029.goldChecker.println(frem(f, g)); 115 t029.goldChecker.println(frem(g, y=f)); 116 117 d = -d; 118 f = -f; 119 120 // First neg; second pos. 121 122 t029.goldChecker.println(); 123 t029.goldChecker.println(drem(d,e)); 124 t029.goldChecker.println(drem(e, x=d)); 125 t029.goldChecker.println(frem(f, g)); 126 t029.goldChecker.println(frem(g, y=f)); 127 128 e = -e; 129 g = -g; 130 131 // Both neg. 132 133 t029.goldChecker.println(); 134 t029.goldChecker.println(drem(d,e)); 135 t029.goldChecker.println(drem(e, x=d)); 136 t029.goldChecker.println(frem(f, g)); 137 t029.goldChecker.println(frem(g, y=f)); 138 139 d = -d; 140 f = -f; 141 142 // First pos; second neg. 143 144 t029.goldChecker.println(); 145 t029.goldChecker.println(drem(d,e)); 146 t029.goldChecker.println(drem(e, x=d)); 147 t029.goldChecker.println(frem(f, g)); 148 t029.goldChecker.println(frem(g, y=f)); 149 t029.goldChecker.check(); 150 } 151 } 152