Mercurial > hg > graal-compiler
annotate graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/BitOpNodesTest.java @ 18187:9619ba4daf4c
Rename Constant to JavaConstant.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Thu, 30 Oct 2014 12:21:07 +0100 |
parents | 1668de777c42 |
children | 6dc4f0be9a70 |
rev | line source |
---|---|
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
1 /* |
18187
9619ba4daf4c
Rename Constant to JavaConstant.
Roland Schatz <roland.schatz@oracle.com>
parents:
16714
diff
changeset
|
2 * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
4 * |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
7 * published by the Free Software Foundation. |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
8 * |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
13 * accompanied this code). |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
14 * |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License version |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
18 * |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
21 * questions. |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
22 */ |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
23 package com.oracle.graal.replacements.test; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
24 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
25 import org.junit.*; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
26 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
27 import com.oracle.graal.api.code.*; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
28 import com.oracle.graal.api.meta.*; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
29 import com.oracle.graal.compiler.common.type.*; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
30 import com.oracle.graal.compiler.test.*; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
31 import com.oracle.graal.nodes.*; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
32 import com.oracle.graal.phases.*; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
33 import com.oracle.graal.phases.common.*; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
34 import com.oracle.graal.phases.common.inlining.*; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
35 import com.oracle.graal.phases.tiers.*; |
16591
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
36 import com.oracle.graal.replacements.nodes.*; |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
37 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
38 public class BitOpNodesTest extends GraalCompilerTest { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
39 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
40 private static final int INT_CONSTANT_1 = 0x80100010; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
41 private static final int INT_CONSTANT_2 = 0x00011110; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
42 private static final int INT_CONSTANT_3 = 0x00000000; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
43 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
44 private static final long LONG_CONSTANT_1 = 0x8000000000100010L; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
45 private static final long LONG_CONSTANT_2 = 0x0000000000011110L; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
46 private static final long LONG_CONSTANT_3 = 0x0000000000000000L; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
47 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
48 public static long dummyField; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
49 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
50 /* |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
51 * Tests for BitCountNode canonicalizations. |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
52 */ |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
53 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
54 public static int bitCountIntConstantSnippet() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
55 return Integer.bitCount(INT_CONSTANT_1) + Integer.bitCount(INT_CONSTANT_2) + Integer.bitCount(INT_CONSTANT_3); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
56 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
57 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
58 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
59 public void testBitCountIntConstant() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
60 ValueNode result = parseAndInline("bitCountIntConstantSnippet"); |
18187
9619ba4daf4c
Rename Constant to JavaConstant.
Roland Schatz <roland.schatz@oracle.com>
parents:
16714
diff
changeset
|
61 Assert.assertEquals(7, result.asJavaConstant().asInt()); |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
62 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
63 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
64 public static int bitCountLongConstantSnippet() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
65 return Long.bitCount(LONG_CONSTANT_1) + Long.bitCount(LONG_CONSTANT_2) + Long.bitCount(LONG_CONSTANT_3); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
66 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
67 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
68 public static int bitCountIntSnippet(int v) { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
69 return Integer.bitCount(v & 0xFFFFFF | 0xFF); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
70 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
71 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
72 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
73 public void testBitCountInt() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
74 ValueNode result = parseAndInline("bitCountIntSnippet"); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
75 Assert.assertEquals(StampFactory.forInteger(Kind.Int, 8, 24), result.stamp()); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
76 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
77 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
78 public static int bitCountIntEmptySnippet(int v) { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
79 return Integer.bitCount(v & 0xFFFFFF); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
80 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
81 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
82 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
83 public void testBitCountIntEmpty() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
84 ValueNode result = parseAndInline("bitCountIntEmptySnippet"); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
85 Assert.assertEquals(StampFactory.forInteger(Kind.Int, 0, 24), result.stamp()); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
86 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
87 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
88 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
89 public void testBitCountLongConstant() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
90 ValueNode result = parseAndInline("bitCountLongConstantSnippet"); |
18187
9619ba4daf4c
Rename Constant to JavaConstant.
Roland Schatz <roland.schatz@oracle.com>
parents:
16714
diff
changeset
|
91 Assert.assertEquals(7, result.asJavaConstant().asInt()); |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
92 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
93 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
94 public static int bitCountLongSnippet(long v) { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
95 return Long.bitCount(v & 0xFFFFFFFFFFL | 0xFFL); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
96 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
97 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
98 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
99 public void testBitCountLong() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
100 ValueNode result = parseAndInline("bitCountLongSnippet"); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
101 Assert.assertEquals(StampFactory.forInteger(Kind.Int, 8, 40), result.stamp()); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
102 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
103 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
104 public static int bitCountLongEmptySnippet(long v) { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
105 return Long.bitCount(v & 0xFFFFFFFFFFL); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
106 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
107 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
108 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
109 public void testBitCountLongEmpty() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
110 ValueNode result = parseAndInline("bitCountLongEmptySnippet"); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
111 Assert.assertEquals(StampFactory.forInteger(Kind.Int, 0, 40), result.stamp()); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
112 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
113 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
114 /* |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
115 * Tests for BitScanForwardNode |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
116 */ |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
117 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
118 public static int scanForwardIntConstantSnippet() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
119 return Integer.numberOfTrailingZeros(INT_CONSTANT_1) + Integer.numberOfTrailingZeros(INT_CONSTANT_2) + Integer.numberOfTrailingZeros(INT_CONSTANT_3); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
120 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
121 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
122 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
123 public void testScanForwardIntConstant() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
124 ValueNode result = parseAndInline("scanForwardIntConstantSnippet"); |
18187
9619ba4daf4c
Rename Constant to JavaConstant.
Roland Schatz <roland.schatz@oracle.com>
parents:
16714
diff
changeset
|
125 Assert.assertEquals(40, result.asJavaConstant().asInt()); |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
126 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
127 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
128 public static int scanForwardIntSnippet(int v) { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
129 return Integer.numberOfTrailingZeros(v & 0xFFF0 | 0xFF00); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
130 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
131 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
132 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
133 public void testScanForwardInt() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
134 ValueNode result = parseAndInline("scanForwardIntSnippet"); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
135 Assert.assertEquals(StampFactory.forInteger(Kind.Int, 4, 8), result.stamp()); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
136 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
137 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
138 public static int scanForwardLongConstantSnippet() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
139 return Long.numberOfTrailingZeros(LONG_CONSTANT_1) + Long.numberOfTrailingZeros(LONG_CONSTANT_2) + Long.numberOfTrailingZeros(LONG_CONSTANT_3); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
140 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
141 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
142 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
143 public void testScanForwardLongConstant() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
144 ValueNode result = parseAndInline("scanForwardLongConstantSnippet"); |
18187
9619ba4daf4c
Rename Constant to JavaConstant.
Roland Schatz <roland.schatz@oracle.com>
parents:
16714
diff
changeset
|
145 Assert.assertEquals(72, result.asJavaConstant().asInt()); |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
146 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
147 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
148 public static int scanForwardLongSnippet(long v) { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
149 return Long.numberOfTrailingZeros(v & 0xFFFF000000L | 0xFF00000000L); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
150 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
151 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
152 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
153 public void testScanForwardLong() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
154 ValueNode result = parseAndInline("scanForwardLongSnippet"); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
155 Assert.assertEquals(StampFactory.forInteger(Kind.Int, 24, 32), result.stamp()); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
156 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
157 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
158 public static int scanForwardLongEmptySnippet(long v) { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
159 int result = Long.numberOfTrailingZeros(v & 0xFFFF000000L); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
160 dummyField = result; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
161 return result; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
162 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
163 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
164 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
165 public void testScanForwardLongEmpty() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
166 ValueNode result = parseAndInline("scanForwardLongEmptySnippet"); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
167 Assert.assertEquals(StampFactory.forInteger(Kind.Int, -1, 64), result.stamp()); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
168 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
169 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
170 /* |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
171 * Tests for BitScanReverseNode |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
172 */ |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
173 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
174 public static int scanReverseIntConstantSnippet() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
175 return Integer.numberOfLeadingZeros(INT_CONSTANT_1) + Integer.numberOfLeadingZeros(INT_CONSTANT_2) + Integer.numberOfLeadingZeros(INT_CONSTANT_3); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
176 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
177 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
178 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
179 public void testScanReverseIntConstant() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
180 ValueNode result = parseAndInline("scanReverseIntConstantSnippet"); |
18187
9619ba4daf4c
Rename Constant to JavaConstant.
Roland Schatz <roland.schatz@oracle.com>
parents:
16714
diff
changeset
|
181 Assert.assertEquals(47, result.asJavaConstant().asInt()); |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
182 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
183 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
184 public static int scanReverseIntSnippet(int v) { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
185 return Integer.numberOfLeadingZeros(v & 0xFFF0 | 0xFF0); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
186 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
187 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
188 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
189 public void testScanReverseInt() { |
16618
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
190 /* This test isn't valid unless the BitScanReverseNode intrinsic is used. */ |
16591
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
191 ValueNode result = parseAndInline("scanReverseIntSnippet", BitScanReverseNode.class); |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
192 if (result != null) { |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
193 Assert.assertEquals(StampFactory.forInteger(Kind.Int, 16, 20), result.stamp()); |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
194 } |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
195 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
196 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
197 public static int scanReverseLongConstantSnippet() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
198 return Long.numberOfLeadingZeros(LONG_CONSTANT_1) + Long.numberOfLeadingZeros(LONG_CONSTANT_2) + Long.numberOfLeadingZeros(LONG_CONSTANT_3); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
199 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
200 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
201 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
202 public void testScanReverseLongConstant() { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
203 ValueNode result = parseAndInline("scanReverseLongConstantSnippet"); |
18187
9619ba4daf4c
Rename Constant to JavaConstant.
Roland Schatz <roland.schatz@oracle.com>
parents:
16714
diff
changeset
|
204 Assert.assertEquals(111, result.asJavaConstant().asInt()); |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
205 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
206 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
207 public static int scanReverseLongSnippet(long v) { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
208 int result = Long.numberOfLeadingZeros(v & 0xFFF0); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
209 dummyField = result; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
210 return result; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
211 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
212 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
213 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
214 public void testScanReverseLong() { |
16618
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
215 /* This test isn't valid unless the BitScanReverseNode intrinsic is used. */ |
16591
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
216 ValueNode result = parseAndInline("scanReverseLongSnippet", BitScanReverseNode.class); |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
217 if (result != null) { |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
218 Assert.assertEquals(StampFactory.forInteger(Kind.Int, 48, 64), result.stamp()); |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
219 } |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
220 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
221 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
222 public static int scanReverseLongEmptySnippet(long v) { |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
223 int result = Long.numberOfLeadingZeros(v & 0xFFFF000000L); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
224 dummyField = result; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
225 return result; |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
226 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
227 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
228 @Test |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
229 public void testScanReverseLongEmpty() { |
16618
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
230 /* This test isn't valid unless the BitScanReverseNode intrinsic is used. */ |
16591
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
231 ValueNode result = parseAndInline("scanReverseLongEmptySnippet", BitScanReverseNode.class); |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
232 if (result != null) { |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
233 Assert.assertEquals(StampFactory.forInteger(Kind.Int, 24, 64), result.stamp()); |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
234 } |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
235 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
236 |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
237 private ValueNode parseAndInline(String name) { |
16591
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
238 return parseAndInline(name, null); |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
239 } |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
240 |
16618
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
241 /** |
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
242 * Parse and optimize {@code name}. If {@code expectedClass} is non-null and a node of that type |
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
243 * isn't found simply return null. Otherwise return the node returned by the graph. |
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
244 * |
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
245 * @param name |
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
246 * @param expectedClass |
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
247 * @return the returned value or null if {@code expectedClass} is not found in the graph. |
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
248 */ |
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
249 private ValueNode parseAndInline(String name, Class<? extends ValueNode> expectedClass) { |
16714
1668de777c42
renamed GraalCompilerTest.parse to GraalCompilerTest.parseEager and improved javadoc for all parse* methods
Doug Simon <doug.simon@oracle.com>
parents:
16618
diff
changeset
|
250 StructuredGraph graph = parseEager(name); |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
251 HighTierContext context = new HighTierContext(getProviders(), new Assumptions(false), null, getDefaultGraphBuilderSuite(), OptimisticOptimizations.NONE); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
252 CanonicalizerPhase canonicalizer = new CanonicalizerPhase(true); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
253 canonicalizer.apply(graph, context); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
254 new InliningPhase(canonicalizer).apply(graph, context); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
255 canonicalizer.apply(graph, context); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
256 Assert.assertEquals(1, graph.getNodes(ReturnNode.class).count()); |
16618
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
257 if (expectedClass != null) { |
0b0726730fbd
add some comments to BitOpNodesTest.java
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16591
diff
changeset
|
258 if (graph.getNodes().filter(expectedClass).count() == 0) { |
16591
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
259 return null; |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
260 } |
86eee6794713
BitScanReverseNode stamp tests should only be used with BitScanReverseNode
Tom Rodriguez <tom.rodriguez@oracle.com>
parents:
16163
diff
changeset
|
261 } |
16163
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
262 return graph.getNodes(ReturnNode.class).first().result(); |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
263 } |
d5e66f2adf8f
tests for bit operations
Lukas Stadler <lukas.stadler@oracle.com>
parents:
diff
changeset
|
264 } |