Use java.lang.Long.divideUnsigned/remainderUnsigned in Java 1.8+
#KT-24876
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
// JVM_TARGET: 1.6
|
||||
// WITH_RUNTIME
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
val ua = 1234UL
|
||||
val ub = 5678UL
|
||||
val uai = ua.toUInt()
|
||||
val u = ua * ub
|
||||
|
||||
fun box(): String {
|
||||
val div = u / ua
|
||||
if (div != ub) throw AssertionError("$div")
|
||||
|
||||
val divInt = u / uai
|
||||
if (div != ub) throw AssertionError("$div")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_RUNTIME
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
val ua = 1234UL
|
||||
val ub = 5678UL
|
||||
val uai = ua.toUInt()
|
||||
val u = ua * ub
|
||||
|
||||
fun box(): String {
|
||||
val div = u / ua
|
||||
if (div != ub) throw AssertionError("$div")
|
||||
|
||||
val divInt = u / uai
|
||||
if (div != ub) throw AssertionError("$div")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
// JVM_TARGET: 1.6
|
||||
// WITH_RUNTIME
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
val ua = 1234UL
|
||||
val ub = 5678UL
|
||||
val uc = 3456UL
|
||||
val u = ua * ub + uc
|
||||
|
||||
fun box(): String {
|
||||
val rem = u % ub
|
||||
if (rem != uc) throw AssertionError("$rem")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
// JVM_TARGET: 1.8
|
||||
// WITH_RUNTIME
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
val ua = 1234UL
|
||||
val ub = 5678UL
|
||||
val uc = 3456UL
|
||||
val u = ua * ub + uc
|
||||
|
||||
fun box(): String {
|
||||
val rem = u % ub
|
||||
if (rem != uc) throw AssertionError("$rem")
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user