mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-03 03:32:32 +00:00
* clean up some test categories * mention exact slice issue * magics into system * move trangechecks into overflow * move tmemory to system * try fix CI * try fix CI * final CI fix
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
|