Mercurial > hg > truffle
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 |
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 } |