summaryrefslogtreecommitdiff
path: root/test/082-inline-execute/src/Main.java
diff options
context:
space:
mode:
author Andra Danciu <andradanciu@google.com> 2020-07-07 14:28:56 +0000
committer Vladimir Marko <vmarko@google.com> 2020-07-09 09:44:58 +0000
commitdc787f488ce151478af1149c04a10b21b2b9fc6e (patch)
tree38d402813c9c3f541630255e9f9890a9c6842c45 /test/082-inline-execute/src/Main.java
parent9a09e7cf11b2653e6da2b179ac03bc6bb71c81e3 (diff)
Make Integer.divideUnsigned intrinsic for x86.
Bug: 156736938 Test: Added a test to 082-inline-execute. Test: art/test.py --host --32 -r -t 082-inline-execute Change-Id: Id516126fce10f2fa52b95c1b2b107ca7bf45e347
Diffstat (limited to 'test/082-inline-execute/src/Main.java')
-rw-r--r--test/082-inline-execute/src/Main.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/082-inline-execute/src/Main.java b/test/082-inline-execute/src/Main.java
index 072f0e68ee..81afee1caf 100644
--- a/test/082-inline-execute/src/Main.java
+++ b/test/082-inline-execute/src/Main.java
@@ -82,6 +82,7 @@ public class Main {
test_Memory_pokeShort();
test_Memory_pokeInt();
test_Memory_pokeLong();
+ test_Integer_divideUnsigned();
test_Integer_numberOfTrailingZeros();
test_Long_numberOfTrailingZeros();
test_Integer_rotateRight();
@@ -1376,6 +1377,31 @@ public class Main {
return 0;
}
+ public static void test_Integer_divideUnsigned() {
+ Assert.assertEquals(Integer.divideUnsigned(100, 10), 10);
+ Assert.assertEquals(Integer.divideUnsigned(100, 1), 100);
+ Assert.assertEquals(Integer.divideUnsigned(1024, 128), 8);
+ Assert.assertEquals(Integer.divideUnsigned(12345678, 264), 46763);
+ Assert.assertEquals(Integer.divideUnsigned(13, 5), 2);
+ Assert.assertEquals(Integer.divideUnsigned(-2, 2), Integer.MAX_VALUE);
+ Assert.assertEquals(Integer.divideUnsigned(-1, 2), Integer.MAX_VALUE);
+ Assert.assertEquals(Integer.divideUnsigned(100000, -1), 0);
+ Assert.assertEquals(Integer.divideUnsigned(Integer.MAX_VALUE, -1), 0);
+ Assert.assertEquals(Integer.divideUnsigned(-2, -1), 0);
+ Assert.assertEquals(Integer.divideUnsigned(-173448, 13), 330368757);
+ Assert.assertEquals(Integer.divideUnsigned(Integer.MIN_VALUE, 2), (1 << 30));
+ Assert.assertEquals(Integer.divideUnsigned(-1, Integer.MIN_VALUE), 1);
+ Assert.assertEquals(Integer.divideUnsigned(Integer.MAX_VALUE, Integer.MIN_VALUE), 0);
+ Assert.assertEquals(Integer.divideUnsigned(Integer.MIN_VALUE, Integer.MAX_VALUE), 1);
+
+ try {
+ Integer.divideUnsigned(1, 0);
+ } catch (ArithmeticException e) {
+ return;
+ }
+ Assert.fail("Unreachable");
+ }
+
public static void test_Integer_numberOfLeadingZeros() {
Assert.assertEquals(Integer.numberOfLeadingZeros(0), Integer.SIZE);
Assert.assertEquals(Integer.numberOfLeadingZeros(1), Integer.SIZE - 1);