annotate graal/com.oracle.graal.compiler.ptx.test/src/com/oracle/graal/compiler/ptx/test/ControlPTXTest.java @ 12503:d7f8dd4fe876

minor reformatting based on 'mx eclipseformat'
author Doug Simon <doug.simon@oracle.com>
date Mon, 21 Oct 2013 18:10:32 +0200
parents b18d4089535d
children 884bee435276
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8995
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
1 /*
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
4 *
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
7 * published by the Free Software Foundation.
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
8 *
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
13 * accompanied this code).
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
14 *
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
18 *
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
21 * questions.
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
22 */
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
23 package com.oracle.graal.compiler.ptx.test;
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
24
11485
49bb1bc983c6 Implement several missing PTX codegen features; return value capture and method args passing of java method executed on GPU.
bharadwaj
parents: 8995
diff changeset
25 import org.junit.*;
8995
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
26
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
27 import java.lang.reflect.Method;
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
28
11634
bff2b88444f5 Start of PTX array passing
Morris Meyer <morris.meyer@oracle.com>
parents: 11610
diff changeset
29 public class ControlPTXTest extends PTXTestBase {
8995
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
30
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
31 @Test
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
32 public void testControl() {
11896
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
33 Integer ret = (Integer) invoke(compile("testLoop"), 42);
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
34 if (ret != null) {
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
35 printReport("testLoop: " + ret);
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
36 } else {
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
37 printReport("testLoop: no VALUE");
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
38 }
11928
10755fbf8df8 Fix warnings in PTX code.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 11900
diff changeset
39 ret = (Integer) invoke(compile("testSwitchDefault1I"), 3);
11896
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
40 if (ret != null) {
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
41 printReport("testSwitchDefault1I: " + ret);
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
42 } else {
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
43 printReport("testSwitchDefault1I: no VALUE");
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
44 }
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
45 ret = (Integer) invoke(compile("testSwitch1I"), 2);
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
46 if (ret != null) {
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
47 printReport("testSwitch1I: " + ret);
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
48 } else {
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
49 printReport("testSwitch1I: no VALUE");
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
50 }
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
51 ret = (Integer) invoke(compile("testIfElse1I"), 222);
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
52 if (ret != null) {
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
53 printReport("testIfElse1I: " + ret);
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
54 } else {
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
55 printReport("testIfElse1I: no VALUE");
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
56 }
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
57 ret = (Integer) invoke(compile("testIfElse2I"), 19, 64);
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
58 if (ret != null) {
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
59 printReport("testIfElse2I: " + (char) ret.intValue());
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
60 } else {
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
61 printReport("testIfElse2I: no VALUE");
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
62 }
12503
d7f8dd4fe876 minor reformatting based on 'mx eclipseformat'
Doug Simon <doug.simon@oracle.com>
parents: 11929
diff changeset
63 Boolean bret = (Boolean) invoke(compile("testIntegerTestBranch2I"), 0xff00, 0x00ff);
11901
61767ccd4600 PTX boolean return value, emitIntegerTestMove, warnings
Morris Meyer <morris.meyer@oracle.com>
parents: 11900
diff changeset
64 if (bret != null) {
61767ccd4600 PTX boolean return value, emitIntegerTestMove, warnings
Morris Meyer <morris.meyer@oracle.com>
parents: 11900
diff changeset
65 printReport("testIntegerTestBranch2I: " + bret);
12503
d7f8dd4fe876 minor reformatting based on 'mx eclipseformat'
Doug Simon <doug.simon@oracle.com>
parents: 11929
diff changeset
66 printReport("testIntegerTestBranch2I: actual: " + testIntegerTestBranch2I(0xff00, 0x00ff));
11901
61767ccd4600 PTX boolean return value, emitIntegerTestMove, warnings
Morris Meyer <morris.meyer@oracle.com>
parents: 11900
diff changeset
67 } else {
61767ccd4600 PTX boolean return value, emitIntegerTestMove, warnings
Morris Meyer <morris.meyer@oracle.com>
parents: 11900
diff changeset
68 printReport("testIntegerTestBranch2I: no VALUE");
61767ccd4600 PTX boolean return value, emitIntegerTestMove, warnings
Morris Meyer <morris.meyer@oracle.com>
parents: 11900
diff changeset
69 }
11896
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
70 compile("testStatic");
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
71 compile("testCall");
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
72 compile("testLookupSwitch1I");
11634
bff2b88444f5 Start of PTX array passing
Morris Meyer <morris.meyer@oracle.com>
parents: 11610
diff changeset
73 }
bff2b88444f5 Start of PTX array passing
Morris Meyer <morris.meyer@oracle.com>
parents: 11610
diff changeset
74
11901
61767ccd4600 PTX boolean return value, emitIntegerTestMove, warnings
Morris Meyer <morris.meyer@oracle.com>
parents: 11900
diff changeset
75 public static boolean testIntegerTestBranch2I(int x, int y) {
61767ccd4600 PTX boolean return value, emitIntegerTestMove, warnings
Morris Meyer <morris.meyer@oracle.com>
parents: 11900
diff changeset
76 return (x & y) == 0;
61767ccd4600 PTX boolean return value, emitIntegerTestMove, warnings
Morris Meyer <morris.meyer@oracle.com>
parents: 11900
diff changeset
77 }
61767ccd4600 PTX boolean return value, emitIntegerTestMove, warnings
Morris Meyer <morris.meyer@oracle.com>
parents: 11900
diff changeset
78
11634
bff2b88444f5 Start of PTX array passing
Morris Meyer <morris.meyer@oracle.com>
parents: 11610
diff changeset
79 public static int testLoop(int n) {
bff2b88444f5 Start of PTX array passing
Morris Meyer <morris.meyer@oracle.com>
parents: 11610
diff changeset
80 int sum = 0;
bff2b88444f5 Start of PTX array passing
Morris Meyer <morris.meyer@oracle.com>
parents: 11610
diff changeset
81
bff2b88444f5 Start of PTX array passing
Morris Meyer <morris.meyer@oracle.com>
parents: 11610
diff changeset
82 for (int i = 0; i < n; i++) {
bff2b88444f5 Start of PTX array passing
Morris Meyer <morris.meyer@oracle.com>
parents: 11610
diff changeset
83 sum++;
bff2b88444f5 Start of PTX array passing
Morris Meyer <morris.meyer@oracle.com>
parents: 11610
diff changeset
84 }
bff2b88444f5 Start of PTX array passing
Morris Meyer <morris.meyer@oracle.com>
parents: 11610
diff changeset
85 return sum;
8995
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
86 }
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
87
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
88 public static int testIfElse1I(int n) {
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
89 if (n > 22) {
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
90 return 42;
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
91 } else {
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
92 return -42;
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
93 }
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
94 }
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
95
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
96 public static int testIfElse2I(int c, int y) {
11928
10755fbf8df8 Fix warnings in PTX code.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 11900
diff changeset
97 if (c > 19) {
11901
61767ccd4600 PTX boolean return value, emitIntegerTestMove, warnings
Morris Meyer <morris.meyer@oracle.com>
parents: 11900
diff changeset
98 return 'M'; // millenial
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
99 } else if (y > 84) {
11901
61767ccd4600 PTX boolean return value, emitIntegerTestMove, warnings
Morris Meyer <morris.meyer@oracle.com>
parents: 11900
diff changeset
100 return 'Y'; // young
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
101 } else {
11901
61767ccd4600 PTX boolean return value, emitIntegerTestMove, warnings
Morris Meyer <morris.meyer@oracle.com>
parents: 11900
diff changeset
102 return 'O'; // old
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
103 }
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
104 }
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
105
11896
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
106 public static int testSwitchDefault1I(int a) {
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
107 switch (a) {
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
108 default:
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
109 return 4;
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
110 }
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
111 }
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
112
8995
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
113 public static int testSwitch1I(int a) {
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
114 switch (a) {
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
115 case 1:
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
116 return 2;
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
117 case 2:
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
118 return 3;
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
119 default:
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
120 return 4;
8995
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
121 }
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
122 }
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
123
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
124 public static int testLookupSwitch1I(int a) {
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
125 switch (a) {
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
126 case 0:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
127 return 10;
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
128 case 1:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
129 return 11;
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
130 case 2:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
131 return 12;
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
132 case 3:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
133 return 13;
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
134 case 4:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
135 return 14;
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
136 case 5:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
137 return 15;
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
138 case 6:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
139 return 16;
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
140 case 7:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
141 return 17;
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
142 case 8:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
143 return 18;
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
144 case 9:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
145 return 19;
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
146 case 10:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
147 return 20;
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
148 case 11:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
149 return 21;
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
150 default:
11900
1f82cda83ced PTX conditional move, switch, if-else
Morris Meyer <morris.meyer@oracle.com>
parents: 11896
diff changeset
151 return 42;
8995
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
152 }
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
153 }
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
154
11610
5f532ea846fb applied changes to basic-graal that were made in a downstream repo
Doug Simon <doug.simon@oracle.com>
parents: 11485
diff changeset
155 @SuppressWarnings("unused") private static Object foo = null;
8995
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
156
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
157 public static boolean testStatic(Object o) {
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
158 foo = o;
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
159 return true;
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
160 }
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
161
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
162 private static int method(int a, int b) {
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
163 return a + b;
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
164 }
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
165
11896
280f97f13d54 Fixes to PTX control flow logic
Morris Meyer <morris.meyer@oracle.com>
parents: 11634
diff changeset
166 public static int testCall(int a, int b) {
8995
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
167 return method(a, b);
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
168 }
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
169
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
170 public static void main(String[] args) {
11634
bff2b88444f5 Start of PTX array passing
Morris Meyer <morris.meyer@oracle.com>
parents: 11610
diff changeset
171 ControlPTXTest test = new ControlPTXTest();
bff2b88444f5 Start of PTX array passing
Morris Meyer <morris.meyer@oracle.com>
parents: 11610
diff changeset
172 for (Method m : ControlPTXTest.class.getMethods()) {
8995
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
173 String name = m.getName();
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
174 if (m.getAnnotation(Test.class) == null && name.startsWith("test")) {
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
175 // CheckStyle: stop system..print check
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
176 System.out.println(name + ": \n" + new String(test.compile(name).getTargetCode()));
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
177 // CheckStyle: resume system..print check
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
178 }
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
179 }
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
180 }
585cc62fcdc5 PTX enhancements - arithmetic, control, float, integer math, control and basic switch
Morris Meyer <morris.meyer@oracle.com>
parents:
diff changeset
181 }