147
148 public static int scanForwardLongSnippet(long v) {
149 return Long.numberOfTrailingZeros(v & 0xFFFF000000L | 0xFF00000000L);
150 }
151
152 @Test
153 public void testScanForwardLong() {
154 ValueNode result = parseAndInline("scanForwardLongSnippet");
155 Assert.assertEquals(StampFactory.forInteger(Kind.Int, 24, 32), result.stamp());
156 }
157
158 public static int scanForwardLongEmptySnippet(long v) {
159 int result = Long.numberOfTrailingZeros(v & 0xFFFF000000L);
160 dummyField = result;
161 return result;
162 }
163
164 @Test
165 public void testScanForwardLongEmpty() {
166 ValueNode result = parseAndInline("scanForwardLongEmptySnippet");
167 Assert.assertEquals(StampFactory.forInteger(Kind.Int, -1, 64), result.stamp());
168 }
169
170 /*
171 * Tests for BitScanReverseNode
172 */
173
174 public static int scanReverseIntConstantSnippet() {
175 return Integer.numberOfLeadingZeros(INT_CONSTANT_1) + Integer.numberOfLeadingZeros(INT_CONSTANT_2) + Integer.numberOfLeadingZeros(INT_CONSTANT_3);
176 }
177
178 @Test
179 public void testScanReverseIntConstant() {
180 ValueNode result = parseAndInline("scanReverseIntConstantSnippet");
181 Assert.assertEquals(47, result.asJavaConstant().asInt());
182 }
183
184 public static int scanReverseIntSnippet(int v) {
185 return Integer.numberOfLeadingZeros(v & 0xFFF0 | 0xFF0);
186 }
187
|
147
148 public static int scanForwardLongSnippet(long v) {
149 return Long.numberOfTrailingZeros(v & 0xFFFF000000L | 0xFF00000000L);
150 }
151
152 @Test
153 public void testScanForwardLong() {
154 ValueNode result = parseAndInline("scanForwardLongSnippet");
155 Assert.assertEquals(StampFactory.forInteger(Kind.Int, 24, 32), result.stamp());
156 }
157
158 public static int scanForwardLongEmptySnippet(long v) {
159 int result = Long.numberOfTrailingZeros(v & 0xFFFF000000L);
160 dummyField = result;
161 return result;
162 }
163
164 @Test
165 public void testScanForwardLongEmpty() {
166 ValueNode result = parseAndInline("scanForwardLongEmptySnippet");
167 Assert.assertEquals(StampFactory.forInteger(Kind.Int, 24, 64), result.stamp());
168 }
169
170 /*
171 * Tests for BitScanReverseNode
172 */
173
174 public static int scanReverseIntConstantSnippet() {
175 return Integer.numberOfLeadingZeros(INT_CONSTANT_1) + Integer.numberOfLeadingZeros(INT_CONSTANT_2) + Integer.numberOfLeadingZeros(INT_CONSTANT_3);
176 }
177
178 @Test
179 public void testScanReverseIntConstant() {
180 ValueNode result = parseAndInline("scanReverseIntConstantSnippet");
181 Assert.assertEquals(47, result.asJavaConstant().asInt());
182 }
183
184 public static int scanReverseIntSnippet(int v) {
185 return Integer.numberOfLeadingZeros(v & 0xFFF0 | 0xFF0);
186 }
187
|