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 package org.graalvm.compiler.core.test;
26
27 import org.graalvm.compiler.debug.DebugContext;
28 import org.graalvm.compiler.nodes.StructuredGraph;
29 import org.graalvm.compiler.nodes.ValueNode;
30 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext;
31 import org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin;
32 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
33 import org.graalvm.compiler.phases.tiers.PhaseContext;
34 import org.junit.Test;
35
36 import jdk.vm.ci.meta.ResolvedJavaMethod;
37
38 public class ConditionalEliminationTest13 extends ConditionalEliminationTestBase {
39
40 @Override
41 protected InlineInvokePlugin.InlineInfo bytecodeParserShouldInlineInvoke(GraphBuilderContext b, ResolvedJavaMethod method, ValueNode[] args) {
42 return InlineInvokePlugin.InlineInfo.createStandardInlineInfo(method);
43 }
44
45 public static void referenceSnippet1(int a) {
46 if (Integer.compareUnsigned(a, a + 1) < 0) {
47 sink1 = 0;
48 } else {
49 sink0 = -1;
50 }
51 }
52
53 public static void testSnippet1(int a) {
265 @Test
266 public void test6() {
267 testConditionalElimination("testSnippet6", "referenceSnippet6");
268 }
269
270 @Test
271 public void test7() {
272 testConditionalElimination("testSnippet7", "referenceSnippet2");
273 }
274
275 @Test
276 public void test8() {
277 testConditionalElimination("testSnippet8", "referenceSnippet4");
278 }
279
280 @Test
281 public void test9() {
282 testConditionalElimination("testSnippet9", "referenceSnippet9");
283 }
284
285 @Test
286 public void test10() {
287 testConditionalElimination("testSnippet10", "referenceSnippet4");
288 }
289
290 @Test
291 public void test11() {
292 testConditionalElimination("testSnippet11", "referenceSnippet11");
293 }
294
295 @Test
296 public void test12() {
297 testConditionalElimination("testSnippet12", "referenceSnippet12");
298 }
299
300 @Test
301 public void test13() {
302 testConditionalElimination("testSnippet13", "testSnippet13");
303 }
304
|
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 package org.graalvm.compiler.core.test;
26
27 import org.graalvm.compiler.debug.DebugContext;
28 import org.graalvm.compiler.nodes.StructuredGraph;
29 import org.graalvm.compiler.nodes.ValueNode;
30 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext;
31 import org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin;
32 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
33 import org.graalvm.compiler.phases.tiers.PhaseContext;
34 import org.junit.Ignore;
35 import org.junit.Test;
36
37 import jdk.vm.ci.meta.ResolvedJavaMethod;
38
39 public class ConditionalEliminationTest13 extends ConditionalEliminationTestBase {
40
41 @Override
42 protected InlineInvokePlugin.InlineInfo bytecodeParserShouldInlineInvoke(GraphBuilderContext b, ResolvedJavaMethod method, ValueNode[] args) {
43 return InlineInvokePlugin.InlineInfo.createStandardInlineInfo(method);
44 }
45
46 public static void referenceSnippet1(int a) {
47 if (Integer.compareUnsigned(a, a + 1) < 0) {
48 sink1 = 0;
49 } else {
50 sink0 = -1;
51 }
52 }
53
54 public static void testSnippet1(int a) {
266 @Test
267 public void test6() {
268 testConditionalElimination("testSnippet6", "referenceSnippet6");
269 }
270
271 @Test
272 public void test7() {
273 testConditionalElimination("testSnippet7", "referenceSnippet2");
274 }
275
276 @Test
277 public void test8() {
278 testConditionalElimination("testSnippet8", "referenceSnippet4");
279 }
280
281 @Test
282 public void test9() {
283 testConditionalElimination("testSnippet9", "referenceSnippet9");
284 }
285
286 @Ignore("Need better unsigned stamps for this conditional elimination to work.")
287 @Test
288 public void test10() {
289 testConditionalElimination("testSnippet10", "referenceSnippet4");
290 }
291
292 @Test
293 public void test11() {
294 testConditionalElimination("testSnippet11", "referenceSnippet11");
295 }
296
297 @Test
298 public void test12() {
299 testConditionalElimination("testSnippet12", "referenceSnippet12");
300 }
301
302 @Test
303 public void test13() {
304 testConditionalElimination("testSnippet13", "testSnippet13");
305 }
306
|