Add ULong.compareTo and UInt.div/rem/compareTo intrinsics for Java 8

This commit is contained in:
Jake Wharton
2019-04-18 22:56:53 -04:00
committed by max-kammerer
parent e6362661d1
commit 373424f430
25 changed files with 587 additions and 9 deletions
@@ -0,0 +1,16 @@
// JVM_TARGET: 1.6
// WITH_RUNTIME
// IGNORE_BACKEND: JVM_IR
val ua = 1234U
val ub = 5678U
fun box(): String {
if (ua.compareTo(ub) > 0) {
throw AssertionError()
}
return "OK"
}
// 1 INVOKESTATIC kotlin/UnsignedKt.uintCompare
@@ -0,0 +1,17 @@
// JVM_TARGET: 1.8
// WITH_RUNTIME
// IGNORE_BACKEND: JVM_IR
val ua = 1234U
val ub = 5678U
fun box(): String {
if (ua.compareTo(ub) > 0) {
throw AssertionError()
}
return "OK"
}
// 0 kotlin/UnsignedKt.uintCompare
// 1 INVOKESTATIC java/lang/Integer.compareUnsigned \(II\)I
@@ -0,0 +1,16 @@
// JVM_TARGET: 1.6
// WITH_RUNTIME
// IGNORE_BACKEND: JVM_IR
val ua = 1234U
val ub = 5678U
val u = ua * ub
fun box(): String {
val div = u / ua
if (div != ub) throw AssertionError("$div")
return "OK"
}
// 1 INVOKESTATIC kotlin/UnsignedKt.uintDivide
@@ -0,0 +1,17 @@
// JVM_TARGET: 1.8
// WITH_RUNTIME
// IGNORE_BACKEND: JVM_IR
val ua = 1234U
val ub = 5678U
val u = ua * ub
fun box(): String {
val div = u / ua
if (div != ub) throw AssertionError("$div")
return "OK"
}
// 0 kotlin/UnsignedKt.uintDivide
// 1 INVOKESTATIC java/lang/Integer.divideUnsigned \(II\)I
@@ -0,0 +1,17 @@
// JVM_TARGET: 1.6
// WITH_RUNTIME
// IGNORE_BACKEND: JVM_IR
val ua = 1234U
val ub = 5678U
val uc = 3456U
val u = ua * ub + uc
fun box(): String {
val rem = u % ub
if (rem != uc) throw AssertionError("$rem")
return "OK"
}
// 1 kotlin/UnsignedKt.uintRemainder
@@ -0,0 +1,18 @@
// JVM_TARGET: 1.8
// WITH_RUNTIME
// IGNORE_BACKEND: JVM_IR
val ua = 1234U
val ub = 5678U
val uc = 3456U
val u = ua * ub + uc
fun box(): String {
val rem = u % ub
if (rem != uc) throw AssertionError("$rem")
return "OK"
}
// 0 kotlin/UnsignedKt.uintRemainder
// 1 INVOKESTATIC java/lang/Integer.remainderUnsigned \(II\)I
@@ -0,0 +1,16 @@
// JVM_TARGET: 1.6
// WITH_RUNTIME
// IGNORE_BACKEND: JVM_IR
val ua = 1234UL
val ub = 5678UL
fun box(): String {
if (ua.compareTo(ub) > 0) {
throw AssertionError()
}
return "OK"
}
// 1 INVOKESTATIC kotlin/UnsignedKt.ulongCompare
@@ -0,0 +1,17 @@
// JVM_TARGET: 1.8
// WITH_RUNTIME
// IGNORE_BACKEND: JVM_IR
val ua = 1234UL
val ub = 5678UL
fun box(): String {
if (ua.compareTo(ub) > 0) {
throw AssertionError()
}
return "OK"
}
// 0 kotlin/UnsignedKt.ulongCompare
// 1 INVOKESTATIC java/lang/Long.compareUnsigned \(JJ\)I