JVM_IR KT-43721 coerce intrinsic result to corresponding unsigned type
This commit is contained in:
+14
@@ -0,0 +1,14 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
val ua = 1234U
|
||||
val ub = 5678U
|
||||
|
||||
fun box(): String {
|
||||
if (ua.compareTo(ub) > 0) {
|
||||
throw AssertionError()
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
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"
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
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"
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
fun box(): String {
|
||||
val min = 0U.toString()
|
||||
if ("0" != min) throw AssertionError(min)
|
||||
|
||||
val middle = 2_147_483_647U.toString()
|
||||
if ("2147483647" != middle) throw AssertionError(middle)
|
||||
|
||||
val max = 4_294_967_295U.toString()
|
||||
if ("4294967295" != max) throw AssertionError(max)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
val ua = 1234UL
|
||||
val ub = 5678UL
|
||||
|
||||
fun box(): String {
|
||||
if (ua.compareTo(ub) > 0) {
|
||||
throw AssertionError()
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
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"
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
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"
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// JVM_TARGET: 1.8
|
||||
|
||||
fun box(): String {
|
||||
val min = 0UL.toString()
|
||||
if ("0" != min) throw AssertionError(min)
|
||||
|
||||
val middle = 9_223_372_036_854_775_807UL.toString()
|
||||
if ("9223372036854775807" != middle) throw AssertionError(middle)
|
||||
|
||||
val max = 18_446_744_073_709_551_615UL.toString()
|
||||
if ("18446744073709551615" != max) throw AssertionError(max)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user