From 611d3395e9efc0ab8dbfa4a197fa022fbd8c7204 Mon Sep 17 00:00:00 2001 From: Scott Wakeling Date: Fri, 10 Jul 2015 11:42:06 +0100 Subject: ARM/ARM64: Implement numberOfLeadingZeros intrinsic. Change-Id: I4042fb7a0b75140475dcfca23e8f79d310f5333b --- test/082-inline-execute/src/Main.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'test/082-inline-execute/src/Main.java') diff --git a/test/082-inline-execute/src/Main.java b/test/082-inline-execute/src/Main.java index 177c5a4700..77c1a99728 100644 --- a/test/082-inline-execute/src/Main.java +++ b/test/082-inline-execute/src/Main.java @@ -45,6 +45,8 @@ public class Main { test_Long_reverseBytes(); test_Integer_reverse(); test_Long_reverse(); + test_Integer_numberOfLeadingZeros(); + test_Long_numberOfLeadingZeros(); test_StrictMath_abs_I(); test_StrictMath_abs_J(); test_StrictMath_min_I(); @@ -1041,6 +1043,24 @@ public class Main { return (r1 / i1) + (r2 / i2) + i3 + i4 + i5 + i6 + i7 + i8; } + public static void test_Integer_numberOfLeadingZeros() { + Assert.assertEquals(Integer.numberOfLeadingZeros(0), Integer.SIZE); + for (int i = 0; i < Integer.SIZE; i++) { + Assert.assertEquals(Integer.numberOfLeadingZeros(1 << i), Integer.SIZE - 1 - i); + Assert.assertEquals(Integer.numberOfLeadingZeros((1 << i) | 1), Integer.SIZE - 1 - i); + Assert.assertEquals(Integer.numberOfLeadingZeros(0xFFFFFFFF >>> i), i); + } + } + + public static void test_Long_numberOfLeadingZeros() { + Assert.assertEquals(Long.numberOfLeadingZeros(0L), Long.SIZE); + for (int i = 0; i < Long.SIZE; i++) { + Assert.assertEquals(Long.numberOfLeadingZeros(1L << i), Long.SIZE - 1 - i); + Assert.assertEquals(Long.numberOfLeadingZeros((1L << i) | 1L), Long.SIZE - 1 - i); + Assert.assertEquals(Long.numberOfLeadingZeros(0xFFFFFFFFFFFFFFFFL >>> i), i); + } + } + static Object runtime; static Method address_of; static Method new_non_movable_array; -- cgit v1.2.3-59-g8ed1b