diff options
author | andri lim <jangko128@gmail.com> | 2018-08-07 23:41:30 +0700 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2018-08-07 18:41:30 +0200 |
commit | 4d5cce9882d554ada9cf737d63e40880d88ba170 (patch) | |
tree | 7c71118c55f00ff6542e047a751b2ad7af6cb71d /tests/arithm/tashr.nim | |
parent | 9b9cfa7306d696961cc6fd590ca72c08f66bdcb3 (diff) | |
download | Nim-4d5cce9882d554ada9cf737d63e40880d88ba170.tar.gz |
fixes #6255, add `system.ashr` arithmetic right shift (#8547)
Diffstat (limited to 'tests/arithm/tashr.nim')
-rw-r--r-- | tests/arithm/tashr.nim | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/arithm/tashr.nim b/tests/arithm/tashr.nim new file mode 100644 index 000000000..aeb3b6843 --- /dev/null +++ b/tests/arithm/tashr.nim @@ -0,0 +1,46 @@ +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 |