mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-31 02:12:11 +00:00
47 lines
1016 B
Nim
47 lines
1016 B
Nim
discard """
|
|
output: ''''''
|
|
targets: '''c js'''
|
|
"""
|
|
|
|
# issue #6255, feature request
|
|
# arithmetic right shift
|
|
|
|
var x1 = -123'i8
|
|
var x2 = -123'i16
|
|
var x3 = -123'i32
|
|
var x4 = -123'i64
|
|
var x5 = -123
|
|
|
|
block codegen_test:
|
|
doAssert ashr(x1, 1) == -62
|
|
doAssert ashr(x2, 1) == -62
|
|
doAssert ashr(x3, 1) == -62
|
|
doAssert ashr(x4, 1) == -62
|
|
doAssert ashr(x5, 1) == -62
|
|
|
|
block semfold_test:
|
|
doAssert ashr(-123'i8 , 1) == -62
|
|
doAssert ashr(-123'i16, 1) == -62
|
|
doAssert ashr(-123'i32, 1) == -62
|
|
doAssert ashr(-123'i64, 1) == -62
|
|
doAssert ashr(-123 , 1) == -62
|
|
|
|
static: # VM test
|
|
doAssert ashr(-123'i8 , 1) == -62
|
|
doAssert ashr(-123'i16, 1) == -62
|
|
doAssert ashr(-123'i32, 1) == -62
|
|
doAssert ashr(-123'i64, 1) == -62
|
|
doAssert ashr(-123 , 1) == -62
|
|
|
|
var y1 = -123'i8
|
|
var y2 = -123'i16
|
|
var y3 = -123'i32
|
|
var y4 = -123'i64
|
|
var y5 = -123
|
|
|
|
doAssert ashr(y1, 1) == -62
|
|
doAssert ashr(y2, 1) == -62
|
|
doAssert ashr(y3, 1) == -62
|
|
doAssert ashr(y4, 1) == -62
|
|
doAssert ashr(y5, 1) == -62
|