diff options
Diffstat (limited to 'test/files/run/t9516.scala')
-rw-r--r-- | test/files/run/t9516.scala | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/test/files/run/t9516.scala b/test/files/run/t9516.scala new file mode 100644 index 0000000000..b3068dd1ff --- /dev/null +++ b/test/files/run/t9516.scala @@ -0,0 +1,52 @@ +object Test { + def main(args: Array[String]): Unit = { + intShiftLeftLongConstantFolded() + intShiftLeftLongAtRuntime() + intShiftLogicalRightLongConstantFolded() + intShiftLogicalRightLongAtRuntime() + intShiftArithmeticRightLongConstantFolded() + intShiftArithmeticRightLongAtRuntime() + } + + def intShiftLeftLongConstantFolded(): Unit = { + assert(0x01030507 << 36L == 271601776) + val r = 0x01030507 << 36L + assert(r == 271601776) + } + + def intShiftLeftLongAtRuntime(): Unit = { + var x: Int = 0x01030507 + var y: Long = 36L + assert(x << y == 271601776) + val r = x << y + assert(r == 271601776) + } + + def intShiftLogicalRightLongConstantFolded(): Unit = { + assert(0x90503010 >>> 36L == 151323393) + val r = 0x90503010 >>> 36L + assert(r == 151323393) + } + + def intShiftLogicalRightLongAtRuntime(): Unit = { + var x: Int = 0x90503010 + var y: Long = 36L + assert(x >>> y == 151323393) + val r = x >>> y + assert(r == 151323393) + } + + def intShiftArithmeticRightLongConstantFolded(): Unit = { + assert(0x90503010 >> 36L == -117112063) + val r = 0x90503010 >> 36L + assert(r == -117112063) + } + + def intShiftArithmeticRightLongAtRuntime(): Unit = { + var x: Int = 0x90503010 + var y: Long = 36L + assert(x >> y == -117112063) + val r = x >> y + assert(r == -117112063) + } +} |