handle kotlin shifts like bitwise binary ops

This commit is contained in:
Kevin Bierhoff
2019-11-25 12:28:06 -08:00
committed by xiexed
parent a9baec4727
commit e8252ea874
5 changed files with 158 additions and 1 deletions
+30
View File
@@ -0,0 +1,30 @@
fun foo(): Int {
val mask: Int = 0x7f
val x: Int = 0b1010_1010_1010_1010_1010_1010_1010_1010
val pos = x and mask
val max = x or mask
val zebra = x xor mask
val signed = x shr 2
val one = x ushr 31
val zero = x shl 32
return pos + zero - zebra * signed / one
}
fun bar(): Long {
val mask: Long = 0x7f
val x: Long = 0x5555555555555555
val pos = x and mask
val max = x or mask
val zebra = x xor mask
val signed = x shr 2
val one = x ushr 63
val zero = x shl 64
return pos + zero - zebra * signed / one
}