summaryrefslogtreecommitdiff
path: root/test/082-inline-execute/src/Main.java
diff options
context:
space:
mode:
author Scott Wakeling <scott.wakeling@linaro.org> 2015-07-10 11:42:06 +0100
committer Scott Wakeling <scott.wakeling@linaro.org> 2015-08-04 09:02:56 +0100
commit611d3395e9efc0ab8dbfa4a197fa022fbd8c7204 (patch)
tree9a0a3b6750caae13b963b244719e03b8cfb49c44 /test/082-inline-execute/src/Main.java
parent0c9c5bbdd6976c21602b92d9b455e6fe5d769fb0 (diff)
ARM/ARM64: Implement numberOfLeadingZeros intrinsic.
Change-Id: I4042fb7a0b75140475dcfca23e8f79d310f5333b
Diffstat (limited to 'test/082-inline-execute/src/Main.java')
-rw-r--r--test/082-inline-execute/src/Main.java20
1 files changed, 20 insertions, 0 deletions
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;