diff --git a/libkc3/buf_inspect.c b/libkc3/buf_inspect.c
index 162825f..ad8163f 100644
--- a/libkc3/buf_inspect.c
+++ b/libkc3/buf_inspect.c
@@ -472,6 +472,7 @@ sw buf_inspect_call_brackets (s_buf *buf, const s_call *call)
{
s_array *address;
s_tag *array;
+ const s_sym *buf_inspect_type;
uw i = 0;
s_list *next;
sw r;
@@ -493,10 +494,13 @@ sw buf_inspect_call_brackets (s_buf *buf, const s_call *call)
if ((r = buf_write_1(buf, "[")) < 0)
return r;
result += r;
+ buf_inspect_type = g_buf_inspect_type;
+ g_buf_inspect_type = &g_sym_Uw;
if ((r = buf_inspect_uw(buf, ((uw *) address->data)
+ i)) < 0)
return r;
result += r;
+ g_buf_inspect_type = buf_inspect_type;
if ((r = buf_write_1(buf, "]")) < 0)
return r;
result += r;
@@ -852,9 +856,12 @@ sw buf_inspect_cast (s_buf *buf, const s_call *call)
if ((r = buf_write_1(buf, " ")) < 0)
return r;
result += r;
- buf_inspect_type = g_buf_inspect_type;
- g_buf_inspect_type = module;
arg = &list_next(call->arguments)->tag;
+ buf_inspect_type = g_buf_inspect_type;
+ if (! tag_type(arg, &g_buf_inspect_type)) {
+ g_buf_inspect_type = buf_inspect_type;
+ return -1;
+ }
if ((r = buf_inspect_tag(buf, arg)) < 0) {
g_buf_inspect_type = buf_inspect_type;
return r;
diff --git a/libkc3/env.c b/libkc3/env.c
index b642f26..bfbc71b 100644
--- a/libkc3/env.c
+++ b/libkc3/env.c
@@ -2975,9 +2975,11 @@ const s_struct_type ** env_struct_type_find (s_env *env,
if (! facts_with_cursor_next(&cursor, &found)) {
err_puts("env_struct_type_find: facts_with_cursor_next");
assert(! "env_struct_type_find: facts_with_cursor_next");
+ facts_with_cursor_clean(&cursor);
return NULL;
}
if (! found) {
+ facts_with_cursor_clean(&cursor);
*dest = NULL;
return dest;
}
@@ -2989,6 +2991,7 @@ const s_struct_type ** env_struct_type_find (s_env *env,
err_inspect_sym(&type);
err_write_1("\n");
assert(! "env_struct_type_find: invalid struct_type");
+ facts_with_cursor_clean(&cursor);
return NULL;
}
*dest = &found->object->data.struct_type;
diff --git a/libkc3/str.c b/libkc3/str.c
index f58568d..866b16e 100644
--- a/libkc3/str.c
+++ b/libkc3/str.c
@@ -16,6 +16,16 @@
#include "assert.h"
#include "buf.h"
#include "buf_inspect.h"
+#include "buf_inspect_s8_decimal.h"
+#include "buf_inspect_s16_decimal.h"
+#include "buf_inspect_s32_decimal.h"
+#include "buf_inspect_s64_decimal.h"
+#include "buf_inspect_sw_decimal.h"
+#include "buf_inspect_u8_decimal.h"
+#include "buf_inspect_u16_decimal.h"
+#include "buf_inspect_u32_decimal.h"
+#include "buf_inspect_u64_decimal.h"
+#include "buf_inspect_uw_decimal.h"
#include "buf_parse.h"
#include "call.h"
#include "character.h"
@@ -41,6 +51,20 @@
return buf_to_str(&buf, str); \
}
+#define DEF_STR_INIT_INT(type) \
+ s_str * str_init_ ## type (s_str *str, type x) \
+ { \
+ s_buf buf; \
+ sw size; \
+ size = buf_inspect_ ## type ## _decimal_size(&x); \
+ if (size <= 0) \
+ return NULL; \
+ buf_init_alloc(&buf, size); \
+ buf_inspect_ ## type ## _decimal(&buf, &x); \
+ assert(buf.wpos == (uw) size); \
+ return buf_to_str(&buf, str); \
+ }
+
sw str_character (const s_str *str, uw position, character *dest)
{
character c;
@@ -282,11 +306,11 @@ s_str * str_init_f (s_str *str, const char *fmt, ...)
return str;
}
-DEF_STR_INIT(s8)
-DEF_STR_INIT(s16)
-DEF_STR_INIT(s32)
-DEF_STR_INIT(s64)
-DEF_STR_INIT(sw)
+DEF_STR_INIT_INT(s8)
+DEF_STR_INIT_INT(s16)
+DEF_STR_INIT_INT(s32)
+DEF_STR_INIT_INT(s64)
+DEF_STR_INIT_INT(sw)
s_str * str_init_slice (s_str *str, const s_str *src, sw start, sw end)
{
@@ -313,11 +337,11 @@ s_str * str_init_slice (s_str *str, const s_str *src, sw start, sw end)
return str;
}
-DEF_STR_INIT(u8)
-DEF_STR_INIT(u16)
-DEF_STR_INIT(u32)
-DEF_STR_INIT(u64)
-DEF_STR_INIT(uw)
+DEF_STR_INIT_INT(u8)
+DEF_STR_INIT_INT(u16)
+DEF_STR_INIT_INT(u32)
+DEF_STR_INIT_INT(u64)
+DEF_STR_INIT_INT(uw)
s_str * str_init_vf (s_str *str, const char *fmt, va_list ap)
{
diff --git a/test/ikc3/access.out.expected b/test/ikc3/access.out.expected
index dff8b47..ee4497f 100644
--- a/test/ikc3/access.out.expected
+++ b/test/ikc3/access.out.expected
@@ -1,30 +1,30 @@
-%{a: 1, b: 2, c: 3}.a
-1
-%{a: 1, b: 2, c: 3}.b
-2
-%{a: 1, b: 2, c: 3}.c
-3
-%{a: %{b: %{c: 1}}}.a
-%{b: %{c: 1}}
-%{a: %{b: %{c: 1}}}.a.b
-%{c: 1}
-%{a: %{b: %{c: 1}}}.a.b.c
-1
-map = %{a: %{b: %{c: 1}}}
-%{a: %{b: %{c: 1}}}
+%{a: (U8) 1, b: (U8) 2, c: (U8) 3}.a
+(U8) 1
+%{a: (U8) 1, b: (U8) 2, c: (U8) 3}.b
+(U8) 2
+%{a: (U8) 1, b: (U8) 2, c: (U8) 3}.c
+(U8) 3
+%{a: %{b: %{c: (U8) 1}}}.a
+%{b: %{c: (U8) 1}}
+%{a: %{b: %{c: (U8) 1}}}.a.b
+%{c: (U8) 1}
+%{a: %{b: %{c: (U8) 1}}}.a.b.c
+(U8) 1
+map = %{a: %{b: %{c: (U8) 1}}}
+%{a: %{b: %{c: (U8) 1}}}
map
-%{a: %{b: %{c: 1}}}
+%{a: %{b: %{c: (U8) 1}}}
map.a
-%{b: %{c: 1}}
+%{b: %{c: (U8) 1}}
map.a.b
-%{c: 1}
+%{c: (U8) 1}
map.a.b.c
-1
+(U8) 1
map.a.b.c + map.a.b.c
-2
+(U8) 2
"0 #{map.a.b.c} 2"
"0 1 2"
op = %KC3.Operator{}
-%KC3.Operator{sym: :+, symbol_value: ?, operator_precedence: 0, operator_associativity: :left}
+%KC3.Operator{sym: :+, symbol_value: ?, operator_precedence: (U8) 0, operator_associativity: :left}
op.sym
:+
diff --git a/test/ikc3/array.out.expected b/test/ikc3/array.out.expected
index ae144e5..85ef14e 100644
--- a/test/ikc3/array.out.expected
+++ b/test/ikc3/array.out.expected
@@ -2,18 +2,18 @@
(U8[]) {0, 1}
a[0]
a[1]
-0
-1
+(U8) 0
+(U8) 1
(U8[]) {{0, 1}, {2, 3}}
(U8[]) {{0, 1}, {2, 3}}
b[0][0]
b[0][1]
b[1][0]
b[1][1]
-0
-1
-2
-3
+(U8) 0
+(U8) 1
+(U8) 2
+(U8) 3
(U8[]) {{{0, 1}, {2, 3}}, {{4, 5}, {6, 7}}}
c[0][0][0]
c[0][0][1]
@@ -23,14 +23,14 @@ c[1][0][0]
c[1][0][1]
c[1][1][0]
c[1][1][1]
-0
-1
-2
-3
-4
-5
-6
-7
+(U8) 0
+(U8) 1
+(U8) 2
+(U8) 3
+(U8) 4
+(U8) 5
+(U8) 6
+(U8) 7
(U8[]) {{{{0, 1}, {2, 3}}, {{4, 5}, {6, 7}}}, {{{8, 9}, {10, 11}}, {{12, 13}, {14, 15}}}}
d[0][0][0][0]
d[0][0][0][1]
@@ -48,55 +48,55 @@ d[1][1][0][0]
d[1][1][0][1]
d[1][1][1][0]
d[1][1][1][1]
-0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
+(U8) 0
+(U8) 1
+(U8) 2
+(U8) 3
+(U8) 4
+(U8) 5
+(U8) 6
+(U8) 7
+(U8) 8
+(U8) 9
+(U8) 10
+(U8) 11
+(U8) 12
+(U8) 13
+(U8) 14
+(U8) 15
(U8[]) {2}
-2
+(U8) 2
(U8[]) {2, 4}
-2
-4
+(U8) 2
+(U8) 4
(U8[]) {2, 4, 6}
-2
-4
-6
+(U8) 2
+(U8) 4
+(U8) 6
(U8[]) {0, 1, 2}
-0
-1
-2
+(U8) 0
+(U8) 1
+(U8) 2
(U16[]) {256, 257, 258}
-256
-257
-258
+(U16) 256
+(U16) 257
+(U16) 258
(U32[]) {256, 257, 258}
-256
-257
-258
+(U32) 256
+(U32) 257
+(U32) 258
(U64[]) {256, 257, 258}
-256
-257
-258
+(U64) 256
+(U64) 257
+(U64) 258
(Integer[]) {1000000000000000000000000000000001, 2000000000000000000000000000000002}
(Integer[]) {1000000000000000000000000000000001, 2000000000000000000000000000000002}
1000000000000000000000000000000001
2000000000000000000000000000000002
-(List[]) {[1, 2], [3, 4]}
-(List[]) {[1, 2], [3, 4]}
-(List[]) {[1, 2], [3, 4]}
-[1, 2]
-[3, 4]
+(List[]) {[(U8) 1, (U8) 2], [(U8) 3, (U8) 4]}
+(List[]) {[(U8) 1, (U8) 2], [(U8) 3, (U8) 4]}
+(List[]) {[(U8) 1, (U8) 2], [(U8) 3, (U8) 4]}
+[(U8) 1, (U8) 2]
+[(U8) 3, (U8) 4]
(GL.Vertex[]) {}
(GL.Vertex[]) {}
diff --git a/test/ikc3/block.out.expected b/test/ikc3/block.out.expected
index e059ec2..1d41c6e 100644
--- a/test/ikc3/block.out.expected
+++ b/test/ikc3/block.out.expected
@@ -1,43 +1,43 @@
do
- 1
+ (U8) 1
end
-1
+(U8) 1
do
- 1
- 2
+ (U8) 1
+ (U8) 2
end
-2
+(U8) 2
do
- 1
- 2
- 3
+ (U8) 1
+ (U8) 2
+ (U8) 3
end
-3
+(U8) 3
do
- 1
+ (U8) 1
end
-1
+(U8) 1
do
- 1
- 2
+ (U8) 1
+ (U8) 2
end
-2
+(U8) 2
do
- 1
- 2
- 3
+ (U8) 1
+ (U8) 2
+ (U8) 3
end
-3
+(U8) 3
do
- 1 + 1
- 2 + 2
- 3 + 3
+ (U8) 1 + (U8) 1
+ (U8) 2 + (U8) 2
+ (U8) 3 + (U8) 3
end
-6
+(U8) 6
do
- 1 + 1
- 2 + 2
- 6
+ (U8) 1 + (U8) 1
+ (U8) 2 + (U8) 2
+ (U8) 6
end
do
def cast = cfn S32 "s32_init_cast" (Result, Sym, Tag)
diff --git a/test/ikc3/buf.out.expected b/test/ikc3/buf.out.expected
index aea9558..69540dd 100644
--- a/test/ikc3/buf.out.expected
+++ b/test/ikc3/buf.out.expected
@@ -1,2 +1,2 @@
%Buf{}
-%Buf{column: 0, flush: (Ptr) 0x0, free: false, line: 0, ptr: (Ptr) 0x0, refill: (Ptr) 0x0, rpos: 0, save: (Ptr) 0x0, seek: (Ptr) 0x0, size: 0, user_ptr: (Ptr) 0x0, wpos: 0}
+%Buf{column: (Sw) 0, flush: (Ptr) 0x0, free: false, line: (Sw) 0, ptr: (Ptr) 0x0, refill: (Ptr) 0x0, rpos: (Uw) 0, save: (Ptr) 0x0, seek: (Ptr) 0x0, size: (Uw) 0, user_ptr: (Ptr) 0x0, wpos: (Uw) 0}
diff --git a/test/ikc3/buf_rw.out.expected b/test/ikc3/buf_rw.out.expected
index 9404390..acc58d5 100644
--- a/test/ikc3/buf_rw.out.expected
+++ b/test/ikc3/buf_rw.out.expected
@@ -1,2 +1,2 @@
%BufRW{}
-%BufRW{r: %Buf{column: 0, flush: (Ptr) 0x0, free: false, line: 0, ptr: (Ptr) 0x0, refill: (Ptr) 0x0, rpos: 0, save: (Ptr) 0x0, seek: (Ptr) 0x0, size: 0, user_ptr: (Ptr) 0x0, wpos: 0}, w: %Buf{column: 0, flush: (Ptr) 0x0, free: false, line: 0, ptr: (Ptr) 0x0, refill: (Ptr) 0x0, rpos: 0, save: (Ptr) 0x0, seek: (Ptr) 0x0, size: 0, user_ptr: (Ptr) 0x0, wpos: 0}}
+%BufRW{r: %Buf{column: (Sw) 0, flush: (Ptr) 0x0, free: false, line: (Sw) 0, ptr: (Ptr) 0x0, refill: (Ptr) 0x0, rpos: (Uw) 0, save: (Ptr) 0x0, seek: (Ptr) 0x0, size: (Uw) 0, user_ptr: (Ptr) 0x0, wpos: (Uw) 0}, w: %Buf{column: (Sw) 0, flush: (Ptr) 0x0, free: false, line: (Sw) 0, ptr: (Ptr) 0x0, refill: (Ptr) 0x0, rpos: (Uw) 0, save: (Ptr) 0x0, seek: (Ptr) 0x0, size: (Uw) 0, user_ptr: (Ptr) 0x0, wpos: (Uw) 0}}
diff --git a/test/ikc3/call.out.expected b/test/ikc3/call.out.expected
index 4b80ad7..46fb3e1 100644
--- a/test/ikc3/call.out.expected
+++ b/test/ikc3/call.out.expected
@@ -1,14 +1,14 @@
test()
-test(1)
-test(1, 2)
-test(1, 2, 3)
+test((U8) 1)
+test((U8) 1, (U8) 2)
+test((U8) 1, (U8) 2, (U8) 3)
Test.test()
-Test.test(1)
-Test.test(1, 2)
-Test.test(1, 2, 3)
-first([1, 2])
-1
-first([2, 3])
-2
-(1 + 2)
-3
+Test.test((U8) 1)
+Test.test((U8) 1, (U8) 2)
+Test.test((U8) 1, (U8) 2, (U8) 3)
+first([(U8) 1, (U8) 2])
+(U8) 1
+first([(U8) 2, (U8) 3])
+(U8) 2
+((U8) 1 + (U8) 2)
+(U8) 3
diff --git a/test/ikc3/cast.out.expected b/test/ikc3/cast.out.expected
index 6367734..a7999d6 100644
--- a/test/ikc3/cast.out.expected
+++ b/test/ikc3/cast.out.expected
@@ -1,47 +1,47 @@
(S8) -1
--1
+(S8) -1
+(S8) -127
(S8) -127
--127
(S16) -127
--127
+(S16) -127
(S16) -128
--128
+(S16) -128
+(S16) -32767
(S16) -32767
--32767
(S32) -32767
--32767
+(S32) -32767
+(S32) -32768
(S32) -32768
--32768
(S32) -2147483647
--2147483647
+(S32) -2147483647
(S64) -2147483647
--2147483647
+(S64) -2147483647
+(S64) -2147483648
(S64) -2147483648
--2147483648
(S64) -9223372036854775807
--9223372036854775807
+(S64) -9223372036854775807
+(U8) 0
(U8) 0
-0
(U8) 1
-1
+(U8) 1
+(U8) 255
(U8) 255
-255
(U8) 256
-0
+(U8) 0
(U16) 256
-256
+(U16) 256
+(U16) 65535
(U16) 65535
-65535
(U16) 65536
-0
+(U16) 0
+(U32) 65536
(U32) 65536
-65536
(U32) 4294967296
-0
+(U32) 0
+(U64) 4294967296
(U64) 4294967296
-4294967296
(U64) 18446744073709551616
-0
+(U64) 0
(Integer) 18446744073709551616
18446744073709551616
(Integer) 340282366920938463463374607431768211455
diff --git a/test/ikc3/complex.out.expected b/test/ikc3/complex.out.expected
index ce85aa6..864ce5a 100644
--- a/test/ikc3/complex.out.expected
+++ b/test/ikc3/complex.out.expected
@@ -1,14 +1,14 @@
-0 +i 0
-0 +i 0
-0 +i 1
-0 +i 1
-1 +i 256
-1 +i 256
-256 +i 65536
-256 +i 65536
-65536 +i 4294967296
-65536 +i 4294967296
-4294967296 +i 18446744073709551616
+(U8) 0 +i (U8) 0
+(S16) 0 +i (U8) 0
+(U8) 0 +i (U8) 1
+(S16) 0 +i (U8) 1
+(U8) 1 +i (U16) 256
+(S16) 1 +i (U16) 256
+(U16) 256 +i (U32) 65536
+(S32) 256 +i (U32) 65536
+(U32) 65536 +i (U64) 4294967296
+(S64) 65536 +i (U64) 4294967296
+(U64) 4294967296 +i 18446744073709551616
4294967296 +i 18446744073709551616
18446744073709551616 +i 340282366920938463463374607431768211456
18446744073709551616 +i 340282366920938463463374607431768211456
@@ -16,15 +16,15 @@
340282366920938463463374607431768211456 +i 115792089237316195423570985008687907853269984665640564039457584007913129639936
115792089237316195423570985008687907853269984665640564039457584007913129639936 +i 115792089237316195423570985008687907853269984665640564039457584007913129639936
115792089237316195423570985008687907853269984665640564039457584007913129639936 +i 115792089237316195423570985008687907853269984665640564039457584007913129639936
-0 +i -1
-0 +i -1
--1 +i -256
--1 +i -256
--256 +i -65536
--256 +i -65536
--65536 +i -4294967296
--65536 +i -4294967296
--4294967296 +i -18446744073709551616
+(U8) 0 +i (S8) -1
+(S16) 0 +i (S8) -1
+(S8) -1 +i (S16) -256
+(S16) -1 +i (S16) -256
+(S16) -256 +i (S32) -65536
+(S32) -256 +i (S64) -65536
+(S32) -65536 +i (S64) -4294967296
+(S64) -65536 +i -4294967296
+(S64) -4294967296 +i -18446744073709551616
-4294967296 +i -18446744073709551616
-18446744073709551616 +i -340282366920938463463374607431768211456
-18446744073709551616 +i -340282366920938463463374607431768211456
@@ -32,9 +32,9 @@
-340282366920938463463374607431768211456 +i -115792089237316195423570985008687907853269984665640564039457584007913129639936
-115792089237316195423570985008687907853269984665640564039457584007913129639936 +i -115792089237316195423570985008687907853269984665640564039457584007913129639936
-115792089237316195423570985008687907853269984665640564039457584007913129639936 +i -115792089237316195423570985008687907853269984665640564039457584007913129639936
-3 +i 2 + 2 +i 3 +i (1 +i 1)
-4 +i 6
-(0 +i 1) * (1 +i 0)
-0 +i 1
-(1 +i 2) * (3 +i 4)
--5 +i 10
+(U8) 3 +i (U8) 2 + (U8) 2 +i (U8) 3 +i ((U8) 1 +i (U8) 1)
+(S64) 4 +i (S16) 6
+((U8) 0 +i (U8) 1) * ((U8) 1 +i (U8) 0)
+(S64) 0 +i (S64) 1
+((U8) 1 +i (U8) 2) * ((U8) 3 +i (U8) 4)
+(S64) -5 +i (S64) 10
diff --git a/test/ikc3/defmodule.out.expected b/test/ikc3/defmodule.out.expected
index d88f9d4..e046489 100644
--- a/test/ikc3/defmodule.out.expected
+++ b/test/ikc3/defmodule.out.expected
@@ -1,31 +1,31 @@
defmodule Empty do end
Empty
defmodule Const do
- def a = 1
+ def a = (U8) 1
def b = 10000000000000000000000000000000000000000000000000
end
Const
Const.a
-1
+(U8) 1
Const.b
10000000000000000000000000000000000000000000000000
defmodule Double do
- def double = fn (x) { x * 2 }
+ def double = fn (x) { x * (U8) 2 }
end
Double
-Double.double(21)
-42
+Double.double((U8) 21)
+(U16) 42
defmodule Plop do
- def a = 1
+ def a = (U8) 1
def b = fn () { a }
end
Plop
Plop.a
-1
+(U8) 1
Plop.b
Plop.fn () { a }
Plop.b()
-1
+(U8) 1
defmodule S32 do
def cast = cfn S32 "s32_init_cast" (Result, Sym, Tag)
end
diff --git a/test/ikc3/defoperator.out.expected b/test/ikc3/defoperator.out.expected
index 5a32f3e..3db0336 100644
--- a/test/ikc3/defoperator.out.expected
+++ b/test/ikc3/defoperator.out.expected
@@ -1,10 +1,10 @@
%KC3.Operator{}
-%KC3.Operator{sym: :+, symbol_value: ?, operator_precedence: 0, operator_associativity: :left}
-def operator_muul = %KC3.Operator{sym: :****, symbol_value: cfn Tag "tag_mul" (Tag, Tag, Result), operator_precedence: 11, operator_associativity: :left}
+%KC3.Operator{sym: :+, symbol_value: ?, operator_precedence: (U8) 0, operator_associativity: :left}
+def operator_muul = %KC3.Operator{sym: :****, symbol_value: cfn Tag "tag_mul" (Tag, Tag, Result), operator_precedence: (U8) 11, operator_associativity: :left}
operator_muul
-4 **** 4
-16
-4 **** 4 **** 4
-64
-4 **** 4 + 4
-20
+(U8) 4 **** (U8) 4
+(U16) 16
+(U8) 4 **** (U8) 4 **** (U8) 4
+(U32) 64
+(U8) 4 **** (U8) 4 + (U8) 4
+(U16) 20
diff --git a/test/ikc3/defstruct.out.expected b/test/ikc3/defstruct.out.expected
index 16219c3..076bcbd 100644
--- a/test/ikc3/defstruct.out.expected
+++ b/test/ikc3/defstruct.out.expected
@@ -1,6 +1,6 @@
defmodule Test do
- defstruct [a: 1, b: 2]
+ defstruct [a: (U8) 1, b: (U8) 2]
end
Test
%Test{}
-%Test{a: 1, b: 2}
+%Test{a: (U8) 1, b: (U8) 2}
diff --git a/test/ikc3/equal.out.expected b/test/ikc3/equal.out.expected
index c46aff7..8774d47 100644
--- a/test/ikc3/equal.out.expected
+++ b/test/ikc3/equal.out.expected
@@ -1,4 +1,4 @@
-1
-1
-2
-[1, 2]
+(U8) 1
+(U8) 1
+(U8) 2
+[(U8) 1, (U8) 2]
diff --git a/test/ikc3/fn.out.expected b/test/ikc3/fn.out.expected
index b35f792..96f5da8 100644
--- a/test/ikc3/fn.out.expected
+++ b/test/ikc3/fn.out.expected
@@ -8,22 +8,22 @@ fn {
}
fn (x) do
"Hello, world !"
- x * 2
+ x * (U8) 2
end
fn (x) { x }
-1
+(U8) 1
fn (x, _y) { x }
-1
+(U8) 1
fn ([x | _y]) { x }
-1
+(U8) 1
fn {
([]) { :error }
([x | _y]) { x }
(_) { :error2 }
}
-1
+(U8) 1
fn (x) do
"Hello, world !"
- x * 2
+ x * (U8) 2
end
-4
+(U16) 4
diff --git a/test/ikc3/gl.out.expected b/test/ikc3/gl.out.expected
index 04a0bec..8a6093f 100644
--- a/test/ikc3/gl.out.expected
+++ b/test/ikc3/gl.out.expected
@@ -5,4 +5,4 @@
%GL.Vertex{}
%GL.Vertex{position: %GL.Vec3{x: 0.0f, y: 0.0f, z: 0.0f}, normal: %GL.Vec3{x: 0.0f, y: 0.0f, z: 0.0f}, tex_coord: %GL.Vec2{x: 0.0f, y: 0.0f}}
%GL.Triangle{}
-%GL.Triangle{a: 0, b: 1, c: 2}
+%GL.Triangle{a: (U32) 0, b: (U32) 1, c: (U32) 2}
diff --git a/test/ikc3/if.out.expected b/test/ikc3/if.out.expected
index 371e170..bf2ee3b 100644
--- a/test/ikc3/if.out.expected
+++ b/test/ikc3/if.out.expected
@@ -1,36 +1,36 @@
if true
- 1
+ (U8) 1
else
- 2
+ (U8) 2
end
-1
+(U8) 1
if true
- 1
+ (U8) 1
end
-1
+(U8) 1
if false
- 1
+ (U8) 1
else
- 2
+ (U8) 2
end
-2
+(U8) 2
if false
- 1
+ (U8) 1
end
void
if true && true
- 1 + 1
- 2 + 2
+ (U8) 1 + (U8) 1
+ (U8) 2 + (U8) 2
else
- 3 + 3
- 4 + 4
+ (U8) 3 + (U8) 3
+ (U8) 4 + (U8) 4
end
-4
+(U8) 4
if true && false
- 1 + 1
- 2 + 2
+ (U8) 1 + (U8) 1
+ (U8) 2 + (U8) 2
else
- 3 + 3
- 4 + 4
+ (U8) 3 + (U8) 3
+ (U8) 4 + (U8) 4
end
-8
+(U8) 8
diff --git a/test/ikc3/integer.out.expected b/test/ikc3/integer.out.expected
index b534195..1190bb1 100644
--- a/test/ikc3/integer.out.expected
+++ b/test/ikc3/integer.out.expected
@@ -10,62 +10,62 @@
-9223372036854775808
-9223372036854775808
-9223372036854775808
--9223372036854775807
--9223372036854775807
--9223372036854775807
--9223372036854775807
--2147483648
--2147483648
--2147483648
--2147483648
--2147483647
--2147483647
--2147483647
--2147483647
--32768
--32768
--32768
--32768
--32767
--32767
--32767
--32767
--128
--128
--128
--128
--127
--127
--127
--127
-255
-255
-255
-255
-256
-256
-256
-256
-65535
-65535
-65535
-65535
-65536
-65536
-65536
-65536
-4294967295
-4294967295
-4294967295
-4294967295
-4294967296
-4294967296
-4294967296
-4294967296
-18446744073709551615
-18446744073709551615
-18446744073709551615
-18446744073709551615
+(S64) -9223372036854775807
+(S64) -9223372036854775807
+(S64) -9223372036854775807
+(S64) -9223372036854775807
+(S64) -2147483648
+(S64) -2147483648
+(S64) -2147483648
+(S64) -2147483648
+(S32) -2147483647
+(S32) -2147483647
+(S32) -2147483647
+(S32) -2147483647
+(S32) -32768
+(S32) -32768
+(S32) -32768
+(S32) -32768
+(S16) -32767
+(S16) -32767
+(S16) -32767
+(S16) -32767
+(S16) -128
+(S16) -128
+(S16) -128
+(S16) -128
+(S8) -127
+(S8) -127
+(S8) -127
+(S8) -127
+(U8) 255
+(U8) 255
+(U8) 255
+(U8) 255
+(U16) 256
+(U16) 256
+(U16) 256
+(U16) 256
+(U16) 65535
+(U16) 65535
+(U16) 65535
+(U16) 65535
+(U32) 65536
+(U32) 65536
+(U32) 65536
+(U32) 65536
+(U32) 4294967295
+(U32) 4294967295
+(U32) 4294967295
+(U32) 4294967295
+(U64) 4294967296
+(U64) 4294967296
+(U64) 4294967296
+(U64) 4294967296
+(U64) 18446744073709551615
+(U64) 18446744073709551615
+(U64) 18446744073709551615
+(U64) 18446744073709551615
18446744073709551616
18446744073709551616
18446744073709551616
diff --git a/test/ikc3/integer_add.out.expected b/test/ikc3/integer_add.out.expected
index 3db7f46..9a16453 100644
--- a/test/ikc3/integer_add.out.expected
+++ b/test/ikc3/integer_add.out.expected
@@ -4,33 +4,33 @@
-340282366920938463463374607431768211455
-170141183460469231731687303715884105728 + -9223372036854775808
-170141183460469231740910675752738881536
--170141183460469231731687303715884105728 + -9223372036854775807
+-170141183460469231731687303715884105728 + (S64) -9223372036854775807
-170141183460469231740910675752738881535
--170141183460469231731687303715884105728 + -2147483648
+-170141183460469231731687303715884105728 + (S64) -2147483648
-170141183460469231731687303718031589376
--170141183460469231731687303715884105728 + -2147483647
+-170141183460469231731687303715884105728 + (S32) -2147483647
-170141183460469231731687303718031589375
--170141183460469231731687303715884105728 + -32768
+-170141183460469231731687303715884105728 + (S32) -32768
-170141183460469231731687303715884138496
--170141183460469231731687303715884105728 + -32767
+-170141183460469231731687303715884105728 + (S16) -32767
-170141183460469231731687303715884138495
--170141183460469231731687303715884105728 + -128
+-170141183460469231731687303715884105728 + (S16) -128
-170141183460469231731687303715884105856
--170141183460469231731687303715884105728 + -127
+-170141183460469231731687303715884105728 + (S8) -127
-170141183460469231731687303715884105855
--170141183460469231731687303715884105728 + 255
+-170141183460469231731687303715884105728 + (U8) 255
-170141183460469231731687303715884105473
--170141183460469231731687303715884105728 + 256
+-170141183460469231731687303715884105728 + (U16) 256
-170141183460469231731687303715884105472
--170141183460469231731687303715884105728 + 65535
+-170141183460469231731687303715884105728 + (U16) 65535
-170141183460469231731687303715884040193
--170141183460469231731687303715884105728 + 65536
+-170141183460469231731687303715884105728 + (U32) 65536
-170141183460469231731687303715884040192
--170141183460469231731687303715884105728 + 4294967295
+-170141183460469231731687303715884105728 + (U32) 4294967295
-170141183460469231731687303711589138433
--170141183460469231731687303715884105728 + 4294967296
+-170141183460469231731687303715884105728 + (U64) 4294967296
-170141183460469231731687303711589138432
--170141183460469231731687303715884105728 + 18446744073709551615
+-170141183460469231731687303715884105728 + (U64) 18446744073709551615
-170141183460469231713240559642174554113
-170141183460469231731687303715884105728 + 18446744073709551616
-170141183460469231713240559642174554112
@@ -44,33 +44,33 @@
-340282366920938463463374607431768211454
-170141183460469231731687303715884105727 + -9223372036854775808
-170141183460469231740910675752738881535
--170141183460469231731687303715884105727 + -9223372036854775807
+-170141183460469231731687303715884105727 + (S64) -9223372036854775807
-170141183460469231740910675752738881534
--170141183460469231731687303715884105727 + -2147483648
+-170141183460469231731687303715884105727 + (S64) -2147483648
-170141183460469231731687303718031589375
--170141183460469231731687303715884105727 + -2147483647
+-170141183460469231731687303715884105727 + (S32) -2147483647
-170141183460469231731687303718031589374
--170141183460469231731687303715884105727 + -32768
+-170141183460469231731687303715884105727 + (S32) -32768
-170141183460469231731687303715884138495
--170141183460469231731687303715884105727 + -32767
+-170141183460469231731687303715884105727 + (S16) -32767
-170141183460469231731687303715884138494
--170141183460469231731687303715884105727 + -128
+-170141183460469231731687303715884105727 + (S16) -128
-170141183460469231731687303715884105855
--170141183460469231731687303715884105727 + -127
+-170141183460469231731687303715884105727 + (S8) -127
-170141183460469231731687303715884105854
--170141183460469231731687303715884105727 + 255
+-170141183460469231731687303715884105727 + (U8) 255
-170141183460469231731687303715884105472
--170141183460469231731687303715884105727 + 256
+-170141183460469231731687303715884105727 + (U16) 256
-170141183460469231731687303715884105471
--170141183460469231731687303715884105727 + 65535
+-170141183460469231731687303715884105727 + (U16) 65535
-170141183460469231731687303715884040192
--170141183460469231731687303715884105727 + 65536
+-170141183460469231731687303715884105727 + (U32) 65536
-170141183460469231731687303715884040191
--170141183460469231731687303715884105727 + 4294967295
+-170141183460469231731687303715884105727 + (U32) 4294967295
-170141183460469231731687303711589138432
--170141183460469231731687303715884105727 + 4294967296
+-170141183460469231731687303715884105727 + (U64) 4294967296
-170141183460469231731687303711589138431
--170141183460469231731687303715884105727 + 18446744073709551615
+-170141183460469231731687303715884105727 + (U64) 18446744073709551615
-170141183460469231713240559642174554112
-170141183460469231731687303715884105727 + 18446744073709551616
-170141183460469231713240559642174554111
@@ -84,33 +84,33 @@
-170141183460469231740910675752738881535
-9223372036854775808 + -9223372036854775808
-18446744073709551616
--9223372036854775808 + -9223372036854775807
+-9223372036854775808 + (S64) -9223372036854775807
-18446744073709551615
--9223372036854775808 + -2147483648
+-9223372036854775808 + (S64) -2147483648
-9223372039002259456
--9223372036854775808 + -2147483647
+-9223372036854775808 + (S32) -2147483647
-9223372039002259455
--9223372036854775808 + -32768
+-9223372036854775808 + (S32) -32768
-9223372036854808576
--9223372036854775808 + -32767
+-9223372036854775808 + (S16) -32767
-9223372036854808575
--9223372036854775808 + -128
+-9223372036854775808 + (S16) -128
-9223372036854775936
--9223372036854775808 + -127
+-9223372036854775808 + (S8) -127
-9223372036854775935
--9223372036854775808 + 255
+-9223372036854775808 + (U8) 255
-9223372036854775553
--9223372036854775808 + 256
+-9223372036854775808 + (U16) 256
-9223372036854775552
--9223372036854775808 + 65535
+-9223372036854775808 + (U16) 65535
-9223372036854710273
--9223372036854775808 + 65536
+-9223372036854775808 + (U32) 65536
-9223372036854710272
--9223372036854775808 + 4294967295
+-9223372036854775808 + (U32) 4294967295
-9223372032559808513
--9223372036854775808 + 4294967296
+-9223372036854775808 + (U64) 4294967296
-9223372032559808512
--9223372036854775808 + 18446744073709551615
+-9223372036854775808 + (U64) 18446744073709551615
9223372036854775807
-9223372036854775808 + 18446744073709551616
9223372036854775808
@@ -118,565 +118,565 @@
340282366920938463454151235394913435647
-9223372036854775808 + 340282366920938463463374607431768211456
340282366920938463454151235394913435648
--9223372036854775807 + -170141183460469231731687303715884105728
+(S64) -9223372036854775807 + -170141183460469231731687303715884105728
-170141183460469231740910675752738881535
--9223372036854775807 + -170141183460469231731687303715884105727
+(S64) -9223372036854775807 + -170141183460469231731687303715884105727
-170141183460469231740910675752738881534
--9223372036854775807 + -9223372036854775808
+(S64) -9223372036854775807 + -9223372036854775808
-18446744073709551615
--9223372036854775807 + -9223372036854775807
+(S64) -9223372036854775807 + (S64) -9223372036854775807
-18446744073709551614
--9223372036854775807 + -2147483648
+(S64) -9223372036854775807 + (S64) -2147483648
-9223372039002259455
--9223372036854775807 + -2147483647
+(S64) -9223372036854775807 + (S32) -2147483647
-9223372039002259454
--9223372036854775807 + -32768
+(S64) -9223372036854775807 + (S32) -32768
-9223372036854808575
--9223372036854775807 + -32767
+(S64) -9223372036854775807 + (S16) -32767
-9223372036854808574
--9223372036854775807 + -128
+(S64) -9223372036854775807 + (S16) -128
-9223372036854775935
--9223372036854775807 + -127
+(S64) -9223372036854775807 + (S8) -127
-9223372036854775934
--9223372036854775807 + 255
--9223372036854775552
--9223372036854775807 + 256
--9223372036854775551
--9223372036854775807 + 65535
--9223372036854710272
--9223372036854775807 + 65536
--9223372036854710271
--9223372036854775807 + 4294967295
--9223372032559808512
--9223372036854775807 + 4294967296
+(S64) -9223372036854775807 + (U8) 255
+(S64) -9223372036854775552
+(S64) -9223372036854775807 + (U16) 256
+(S64) -9223372036854775551
+(S64) -9223372036854775807 + (U16) 65535
+(S64) -9223372036854710272
+(S64) -9223372036854775807 + (U32) 65536
+(S64) -9223372036854710271
+(S64) -9223372036854775807 + (U32) 4294967295
+(S64) -9223372032559808512
+(S64) -9223372036854775807 + (U64) 4294967296
-9223372032559808511
--9223372036854775807 + 18446744073709551615
+(S64) -9223372036854775807 + (U64) 18446744073709551615
9223372036854775808
--9223372036854775807 + 18446744073709551616
+(S64) -9223372036854775807 + 18446744073709551616
9223372036854775809
--9223372036854775807 + 340282366920938463463374607431768211455
+(S64) -9223372036854775807 + 340282366920938463463374607431768211455
340282366920938463454151235394913435648
--9223372036854775807 + 340282366920938463463374607431768211456
+(S64) -9223372036854775807 + 340282366920938463463374607431768211456
340282366920938463454151235394913435649
--2147483648 + -170141183460469231731687303715884105728
+(S64) -2147483648 + -170141183460469231731687303715884105728
-170141183460469231731687303718031589376
--2147483648 + -170141183460469231731687303715884105727
+(S64) -2147483648 + -170141183460469231731687303715884105727
-170141183460469231731687303718031589375
--2147483648 + -9223372036854775808
+(S64) -2147483648 + -9223372036854775808
-9223372039002259456
--2147483648 + -9223372036854775807
+(S64) -2147483648 + (S64) -9223372036854775807
-9223372039002259455
--2147483648 + -2147483648
+(S64) -2147483648 + (S64) -2147483648
-4294967296
--2147483648 + -2147483647
+(S64) -2147483648 + (S32) -2147483647
-4294967295
--2147483648 + -32768
+(S64) -2147483648 + (S32) -32768
-2147516416
--2147483648 + -32767
+(S64) -2147483648 + (S16) -32767
-2147516415
--2147483648 + -128
+(S64) -2147483648 + (S16) -128
-2147483776
--2147483648 + -127
+(S64) -2147483648 + (S8) -127
-2147483775
--2147483648 + 255
--2147483393
--2147483648 + 256
--2147483392
--2147483648 + 65535
--2147418113
--2147483648 + 65536
--2147418112
--2147483648 + 4294967295
-2147483647
--2147483648 + 4294967296
+(S64) -2147483648 + (U8) 255
+(S64) -2147483393
+(S64) -2147483648 + (U16) 256
+(S64) -2147483392
+(S64) -2147483648 + (U16) 65535
+(S64) -2147418113
+(S64) -2147483648 + (U32) 65536
+(S64) -2147418112
+(S64) -2147483648 + (U32) 4294967295
+(S64) 2147483647
+(S64) -2147483648 + (U64) 4294967296
2147483648
--2147483648 + 18446744073709551615
+(S64) -2147483648 + (U64) 18446744073709551615
18446744071562067967
--2147483648 + 18446744073709551616
+(S64) -2147483648 + 18446744073709551616
18446744071562067968
--2147483648 + 340282366920938463463374607431768211455
+(S64) -2147483648 + 340282366920938463463374607431768211455
340282366920938463463374607429620727807
--2147483648 + 340282366920938463463374607431768211456
+(S64) -2147483648 + 340282366920938463463374607431768211456
340282366920938463463374607429620727808
--2147483647 + -170141183460469231731687303715884105728
+(S32) -2147483647 + -170141183460469231731687303715884105728
-170141183460469231731687303718031589375
--2147483647 + -170141183460469231731687303715884105727
+(S32) -2147483647 + -170141183460469231731687303715884105727
-170141183460469231731687303718031589374
--2147483647 + -9223372036854775808
+(S32) -2147483647 + -9223372036854775808
-9223372039002259455
--2147483647 + -9223372036854775807
+(S32) -2147483647 + (S64) -9223372036854775807
-9223372039002259454
--2147483647 + -2147483648
+(S32) -2147483647 + (S64) -2147483648
-4294967295
--2147483647 + -2147483647
--4294967294
--2147483647 + -32768
--2147516415
--2147483647 + -32767
--2147516414
--2147483647 + -128
--2147483775
--2147483647 + -127
--2147483774
--2147483647 + 255
--2147483392
--2147483647 + 256
--2147483391
--2147483647 + 65535
--2147418112
--2147483647 + 65536
--2147418111
--2147483647 + 4294967295
-2147483648
--2147483647 + 4294967296
+(S32) -2147483647 + (S32) -2147483647
+(S64) -4294967294
+(S32) -2147483647 + (S32) -32768
+(S64) -2147516415
+(S32) -2147483647 + (S16) -32767
+(S64) -2147516414
+(S32) -2147483647 + (S16) -128
+(S64) -2147483775
+(S32) -2147483647 + (S8) -127
+(S64) -2147483774
+(S32) -2147483647 + (U8) 255
+(S32) -2147483392
+(S32) -2147483647 + (U16) 256
+(S32) -2147483391
+(S32) -2147483647 + (U16) 65535
+(S32) -2147418112
+(S32) -2147483647 + (U32) 65536
+(S32) -2147418111
+(S32) -2147483647 + (U32) 4294967295
+(S64) 2147483648
+(S32) -2147483647 + (U64) 4294967296
2147483649
--2147483647 + 18446744073709551615
+(S32) -2147483647 + (U64) 18446744073709551615
18446744071562067968
--2147483647 + 18446744073709551616
+(S32) -2147483647 + 18446744073709551616
18446744071562067969
--2147483647 + 340282366920938463463374607431768211455
+(S32) -2147483647 + 340282366920938463463374607431768211455
340282366920938463463374607429620727808
--2147483647 + 340282366920938463463374607431768211456
+(S32) -2147483647 + 340282366920938463463374607431768211456
340282366920938463463374607429620727809
--32768 + -170141183460469231731687303715884105728
+(S32) -32768 + -170141183460469231731687303715884105728
-170141183460469231731687303715884138496
--32768 + -170141183460469231731687303715884105727
+(S32) -32768 + -170141183460469231731687303715884105727
-170141183460469231731687303715884138495
--32768 + -9223372036854775808
+(S32) -32768 + -9223372036854775808
-9223372036854808576
--32768 + -9223372036854775807
+(S32) -32768 + (S64) -9223372036854775807
-9223372036854808575
--32768 + -2147483648
+(S32) -32768 + (S64) -2147483648
-2147516416
--32768 + -2147483647
--2147516415
--32768 + -32768
--65536
--32768 + -32767
--65535
--32768 + -128
--32896
--32768 + -127
--32895
--32768 + 255
--32513
--32768 + 256
--32512
--32768 + 65535
-32767
--32768 + 65536
-32768
--32768 + 4294967295
-4294934527
--32768 + 4294967296
+(S32) -32768 + (S32) -2147483647
+(S64) -2147516415
+(S32) -32768 + (S32) -32768
+(S64) -65536
+(S32) -32768 + (S16) -32767
+(S64) -65535
+(S32) -32768 + (S16) -128
+(S64) -32896
+(S32) -32768 + (S8) -127
+(S64) -32895
+(S32) -32768 + (U8) 255
+(S32) -32513
+(S32) -32768 + (U16) 256
+(S32) -32512
+(S32) -32768 + (U16) 65535
+(S32) 32767
+(S32) -32768 + (U32) 65536
+(S32) 32768
+(S32) -32768 + (U32) 4294967295
+(S64) 4294934527
+(S32) -32768 + (U64) 4294967296
4294934528
--32768 + 18446744073709551615
+(S32) -32768 + (U64) 18446744073709551615
18446744073709518847
--32768 + 18446744073709551616
+(S32) -32768 + 18446744073709551616
18446744073709518848
--32768 + 340282366920938463463374607431768211455
+(S32) -32768 + 340282366920938463463374607431768211455
340282366920938463463374607431768178687
--32768 + 340282366920938463463374607431768211456
+(S32) -32768 + 340282366920938463463374607431768211456
340282366920938463463374607431768178688
--32767 + -170141183460469231731687303715884105728
+(S16) -32767 + -170141183460469231731687303715884105728
-170141183460469231731687303715884138495
--32767 + -170141183460469231731687303715884105727
+(S16) -32767 + -170141183460469231731687303715884105727
-170141183460469231731687303715884138494
--32767 + -9223372036854775808
+(S16) -32767 + -9223372036854775808
-9223372036854808575
--32767 + -9223372036854775807
+(S16) -32767 + (S64) -9223372036854775807
-9223372036854808574
--32767 + -2147483648
+(S16) -32767 + (S64) -2147483648
-2147516415
--32767 + -2147483647
--2147516414
--32767 + -32768
--65535
--32767 + -32767
--65534
--32767 + -128
--32895
--32767 + -127
--32894
--32767 + 255
--32512
--32767 + 256
--32511
--32767 + 65535
-32768
--32767 + 65536
-32769
--32767 + 4294967295
-4294934528
--32767 + 4294967296
+(S16) -32767 + (S32) -2147483647
+(S64) -2147516414
+(S16) -32767 + (S32) -32768
+(S64) -65535
+(S16) -32767 + (S16) -32767
+(S32) -65534
+(S16) -32767 + (S16) -128
+(S32) -32895
+(S16) -32767 + (S8) -127
+(S32) -32894
+(S16) -32767 + (U8) 255
+(S16) -32512
+(S16) -32767 + (U16) 256
+(S16) -32511
+(S16) -32767 + (U16) 65535
+(S32) 32768
+(S16) -32767 + (U32) 65536
+(S64) 32769
+(S16) -32767 + (U32) 4294967295
+(S64) 4294934528
+(S16) -32767 + (U64) 4294967296
4294934529
--32767 + 18446744073709551615
+(S16) -32767 + (U64) 18446744073709551615
18446744073709518848
--32767 + 18446744073709551616
+(S16) -32767 + 18446744073709551616
18446744073709518849
--32767 + 340282366920938463463374607431768211455
+(S16) -32767 + 340282366920938463463374607431768211455
340282366920938463463374607431768178688
--32767 + 340282366920938463463374607431768211456
+(S16) -32767 + 340282366920938463463374607431768211456
340282366920938463463374607431768178689
--128 + -170141183460469231731687303715884105728
+(S16) -128 + -170141183460469231731687303715884105728
-170141183460469231731687303715884105856
--128 + -170141183460469231731687303715884105727
+(S16) -128 + -170141183460469231731687303715884105727
-170141183460469231731687303715884105855
--128 + -9223372036854775808
+(S16) -128 + -9223372036854775808
-9223372036854775936
--128 + -9223372036854775807
+(S16) -128 + (S64) -9223372036854775807
-9223372036854775935
--128 + -2147483648
+(S16) -128 + (S64) -2147483648
-2147483776
--128 + -2147483647
--2147483775
--128 + -32768
--32896
--128 + -32767
--32895
--128 + -128
--256
--128 + -127
--255
--128 + 255
-127
--128 + 256
-128
--128 + 65535
-65407
--128 + 65536
-65408
--128 + 4294967295
-4294967167
--128 + 4294967296
+(S16) -128 + (S32) -2147483647
+(S64) -2147483775
+(S16) -128 + (S32) -32768
+(S64) -32896
+(S16) -128 + (S16) -32767
+(S32) -32895
+(S16) -128 + (S16) -128
+(S32) -256
+(S16) -128 + (S8) -127
+(S32) -255
+(S16) -128 + (U8) 255
+(S16) 127
+(S16) -128 + (U16) 256
+(S16) 128
+(S16) -128 + (U16) 65535
+(S32) 65407
+(S16) -128 + (U32) 65536
+(S64) 65408
+(S16) -128 + (U32) 4294967295
+(S64) 4294967167
+(S16) -128 + (U64) 4294967296
4294967168
--128 + 18446744073709551615
+(S16) -128 + (U64) 18446744073709551615
18446744073709551487
--128 + 18446744073709551616
+(S16) -128 + 18446744073709551616
18446744073709551488
--128 + 340282366920938463463374607431768211455
+(S16) -128 + 340282366920938463463374607431768211455
340282366920938463463374607431768211327
--128 + 340282366920938463463374607431768211456
+(S16) -128 + 340282366920938463463374607431768211456
340282366920938463463374607431768211328
--127 + -170141183460469231731687303715884105728
+(S8) -127 + -170141183460469231731687303715884105728
-170141183460469231731687303715884105855
--127 + -170141183460469231731687303715884105727
+(S8) -127 + -170141183460469231731687303715884105727
-170141183460469231731687303715884105854
--127 + -9223372036854775808
+(S8) -127 + -9223372036854775808
-9223372036854775935
--127 + -9223372036854775807
+(S8) -127 + (S64) -9223372036854775807
-9223372036854775934
--127 + -2147483648
+(S8) -127 + (S64) -2147483648
-2147483775
--127 + -2147483647
--2147483774
--127 + -32768
--32895
--127 + -32767
--32894
--127 + -128
--255
--127 + -127
--254
--127 + 255
-128
--127 + 256
-129
--127 + 65535
-65408
--127 + 65536
-65409
--127 + 4294967295
-4294967168
--127 + 4294967296
+(S8) -127 + (S32) -2147483647
+(S64) -2147483774
+(S8) -127 + (S32) -32768
+(S64) -32895
+(S8) -127 + (S16) -32767
+(S32) -32894
+(S8) -127 + (S16) -128
+(S32) -255
+(S8) -127 + (S8) -127
+(S16) -254
+(S8) -127 + (U8) 255
+(S16) 128
+(S8) -127 + (U16) 256
+(S32) 129
+(S8) -127 + (U16) 65535
+(S32) 65408
+(S8) -127 + (U32) 65536
+(S32) 65409
+(S8) -127 + (U32) 4294967295
+(S64) 4294967168
+(S8) -127 + (U64) 4294967296
4294967169
--127 + 18446744073709551615
+(S8) -127 + (U64) 18446744073709551615
18446744073709551488
--127 + 18446744073709551616
+(S8) -127 + 18446744073709551616
18446744073709551489
--127 + 340282366920938463463374607431768211455
+(S8) -127 + 340282366920938463463374607431768211455
340282366920938463463374607431768211328
--127 + 340282366920938463463374607431768211456
+(S8) -127 + 340282366920938463463374607431768211456
340282366920938463463374607431768211329
-255 + -170141183460469231731687303715884105728
+(U8) 255 + -170141183460469231731687303715884105728
-170141183460469231731687303715884105473
-255 + -170141183460469231731687303715884105727
+(U8) 255 + -170141183460469231731687303715884105727
-170141183460469231731687303715884105472
-255 + -9223372036854775808
+(U8) 255 + -9223372036854775808
-9223372036854775553
-255 + -9223372036854775807
+(U8) 255 + (S64) -9223372036854775807
-9223372036854775552
-255 + -2147483648
+(U8) 255 + (S64) -2147483648
-2147483393
-255 + -2147483647
--2147483392
-255 + -32768
--32513
-255 + -32767
--32512
-255 + -128
-127
-255 + -127
-128
-255 + 255
-510
-255 + 256
-511
-255 + 65535
-65790
-255 + 65536
-65791
-255 + 4294967295
-4294967550
-255 + 4294967296
-4294967551
-255 + 18446744073709551615
+(U8) 255 + (S32) -2147483647
+(S64) -2147483392
+(U8) 255 + (S32) -32768
+(S64) -32513
+(U8) 255 + (S16) -32767
+(S16) -32512
+(U8) 255 + (S16) -128
+(S16) 127
+(U8) 255 + (S8) -127
+(S16) 128
+(U8) 255 + (U8) 255
+(U16) 510
+(U8) 255 + (U16) 256
+(U16) 511
+(U8) 255 + (U16) 65535
+(U32) 65790
+(U8) 255 + (U32) 65536
+(U32) 65791
+(U8) 255 + (U32) 4294967295
+(U64) 4294967550
+(U8) 255 + (U64) 4294967296
+(U64) 4294967551
+(U8) 255 + (U64) 18446744073709551615
18446744073709551870
-255 + 18446744073709551616
+(U8) 255 + 18446744073709551616
18446744073709551871
-255 + 340282366920938463463374607431768211455
+(U8) 255 + 340282366920938463463374607431768211455
340282366920938463463374607431768211710
-255 + 340282366920938463463374607431768211456
+(U8) 255 + 340282366920938463463374607431768211456
340282366920938463463374607431768211711
-256 + -170141183460469231731687303715884105728
+(U16) 256 + -170141183460469231731687303715884105728
-170141183460469231731687303715884105472
-256 + -170141183460469231731687303715884105727
+(U16) 256 + -170141183460469231731687303715884105727
-170141183460469231731687303715884105471
-256 + -9223372036854775808
+(U16) 256 + -9223372036854775808
-9223372036854775552
-256 + -9223372036854775807
+(U16) 256 + (S64) -9223372036854775807
-9223372036854775551
-256 + -2147483648
+(U16) 256 + (S64) -2147483648
-2147483392
-256 + -2147483647
--2147483391
-256 + -32768
--32512
-256 + -32767
--32511
-256 + -128
-128
-256 + -127
-129
-256 + 255
-511
-256 + 256
-512
-256 + 65535
-65791
-256 + 65536
-65792
-256 + 4294967295
-4294967551
-256 + 4294967296
-4294967552
-256 + 18446744073709551615
+(U16) 256 + (S32) -2147483647
+(S64) -2147483391
+(U16) 256 + (S32) -32768
+(S64) -32512
+(U16) 256 + (S16) -32767
+(S16) -32511
+(U16) 256 + (S16) -128
+(S16) 128
+(U16) 256 + (S8) -127
+(S16) 129
+(U16) 256 + (U8) 255
+(U16) 511
+(U16) 256 + (U16) 256
+(U16) 512
+(U16) 256 + (U16) 65535
+(U32) 65791
+(U16) 256 + (U32) 65536
+(U32) 65792
+(U16) 256 + (U32) 4294967295
+(U64) 4294967551
+(U16) 256 + (U64) 4294967296
+(U64) 4294967552
+(U16) 256 + (U64) 18446744073709551615
18446744073709551871
-256 + 18446744073709551616
+(U16) 256 + 18446744073709551616
18446744073709551872
-256 + 340282366920938463463374607431768211455
+(U16) 256 + 340282366920938463463374607431768211455
340282366920938463463374607431768211711
-256 + 340282366920938463463374607431768211456
+(U16) 256 + 340282366920938463463374607431768211456
340282366920938463463374607431768211712
-65535 + -170141183460469231731687303715884105728
+(U16) 65535 + -170141183460469231731687303715884105728
-170141183460469231731687303715884040193
-65535 + -170141183460469231731687303715884105727
+(U16) 65535 + -170141183460469231731687303715884105727
-170141183460469231731687303715884040192
-65535 + -9223372036854775808
+(U16) 65535 + -9223372036854775808
-9223372036854710273
-65535 + -9223372036854775807
+(U16) 65535 + (S64) -9223372036854775807
-9223372036854710272
-65535 + -2147483648
+(U16) 65535 + (S64) -2147483648
-2147418113
-65535 + -2147483647
--2147418112
-65535 + -32768
-32767
-65535 + -32767
-32768
-65535 + -128
-65407
-65535 + -127
-65408
-65535 + 255
-65790
-65535 + 256
-65791
-65535 + 65535
-131070
-65535 + 65536
-131071
-65535 + 4294967295
-4295032830
-65535 + 4294967296
-4295032831
-65535 + 18446744073709551615
+(U16) 65535 + (S32) -2147483647
+(S64) -2147418112
+(U16) 65535 + (S32) -32768
+(S64) 32767
+(U16) 65535 + (S16) -32767
+(S32) 32768
+(U16) 65535 + (S16) -128
+(S32) 65407
+(U16) 65535 + (S8) -127
+(S32) 65408
+(U16) 65535 + (U8) 255
+(U32) 65790
+(U16) 65535 + (U16) 256
+(U32) 65791
+(U16) 65535 + (U16) 65535
+(U32) 131070
+(U16) 65535 + (U32) 65536
+(U32) 131071
+(U16) 65535 + (U32) 4294967295
+(U64) 4295032830
+(U16) 65535 + (U64) 4294967296
+(U64) 4295032831
+(U16) 65535 + (U64) 18446744073709551615
18446744073709617150
-65535 + 18446744073709551616
+(U16) 65535 + 18446744073709551616
18446744073709617151
-65535 + 340282366920938463463374607431768211455
+(U16) 65535 + 340282366920938463463374607431768211455
340282366920938463463374607431768276990
-65535 + 340282366920938463463374607431768211456
+(U16) 65535 + 340282366920938463463374607431768211456
340282366920938463463374607431768276991
-65536 + -170141183460469231731687303715884105728
+(U32) 65536 + -170141183460469231731687303715884105728
-170141183460469231731687303715884040192
-65536 + -170141183460469231731687303715884105727
+(U32) 65536 + -170141183460469231731687303715884105727
-170141183460469231731687303715884040191
-65536 + -9223372036854775808
+(U32) 65536 + -9223372036854775808
-9223372036854710272
-65536 + -9223372036854775807
+(U32) 65536 + (S64) -9223372036854775807
-9223372036854710271
-65536 + -2147483648
+(U32) 65536 + (S64) -2147483648
-2147418112
-65536 + -2147483647
--2147418111
-65536 + -32768
-32768
-65536 + -32767
-32769
-65536 + -128
-65408
-65536 + -127
-65409
-65536 + 255
-65791
-65536 + 256
-65792
-65536 + 65535
-131071
-65536 + 65536
-131072
-65536 + 4294967295
-4295032831
-65536 + 4294967296
-4295032832
-65536 + 18446744073709551615
+(U32) 65536 + (S32) -2147483647
+(S64) -2147418111
+(U32) 65536 + (S32) -32768
+(S64) 32768
+(U32) 65536 + (S16) -32767
+(S64) 32769
+(U32) 65536 + (S16) -128
+(S64) 65408
+(U32) 65536 + (S8) -127
+(S64) 65409
+(U32) 65536 + (U8) 255
+(U32) 65791
+(U32) 65536 + (U16) 256
+(U32) 65792
+(U32) 65536 + (U16) 65535
+(U32) 131071
+(U32) 65536 + (U32) 65536
+(U32) 131072
+(U32) 65536 + (U32) 4294967295
+(U64) 4295032831
+(U32) 65536 + (U64) 4294967296
+(U64) 4295032832
+(U32) 65536 + (U64) 18446744073709551615
18446744073709617151
-65536 + 18446744073709551616
+(U32) 65536 + 18446744073709551616
18446744073709617152
-65536 + 340282366920938463463374607431768211455
+(U32) 65536 + 340282366920938463463374607431768211455
340282366920938463463374607431768276991
-65536 + 340282366920938463463374607431768211456
+(U32) 65536 + 340282366920938463463374607431768211456
340282366920938463463374607431768276992
-4294967295 + -170141183460469231731687303715884105728
+(U32) 4294967295 + -170141183460469231731687303715884105728
-170141183460469231731687303711589138433
-4294967295 + -170141183460469231731687303715884105727
+(U32) 4294967295 + -170141183460469231731687303715884105727
-170141183460469231731687303711589138432
-4294967295 + -9223372036854775808
+(U32) 4294967295 + -9223372036854775808
-9223372032559808513
-4294967295 + -9223372036854775807
+(U32) 4294967295 + (S64) -9223372036854775807
-9223372032559808512
-4294967295 + -2147483648
+(U32) 4294967295 + (S64) -2147483648
2147483647
-4294967295 + -2147483647
-2147483648
-4294967295 + -32768
-4294934527
-4294967295 + -32767
-4294934528
-4294967295 + -128
-4294967167
-4294967295 + -127
-4294967168
-4294967295 + 255
-4294967550
-4294967295 + 256
-4294967551
-4294967295 + 65535
-4295032830
-4294967295 + 65536
-4295032831
-4294967295 + 4294967295
-8589934590
-4294967295 + 4294967296
-8589934591
-4294967295 + 18446744073709551615
+(U32) 4294967295 + (S32) -2147483647
+(S64) 2147483648
+(U32) 4294967295 + (S32) -32768
+(S64) 4294934527
+(U32) 4294967295 + (S16) -32767
+(S64) 4294934528
+(U32) 4294967295 + (S16) -128
+(S64) 4294967167
+(U32) 4294967295 + (S8) -127
+(S64) 4294967168
+(U32) 4294967295 + (U8) 255
+(U64) 4294967550
+(U32) 4294967295 + (U16) 256
+(U64) 4294967551
+(U32) 4294967295 + (U16) 65535
+(U64) 4295032830
+(U32) 4294967295 + (U32) 65536
+(U64) 4295032831
+(U32) 4294967295 + (U32) 4294967295
+(U64) 8589934590
+(U32) 4294967295 + (U64) 4294967296
+(U64) 8589934591
+(U32) 4294967295 + (U64) 18446744073709551615
18446744078004518910
-4294967295 + 18446744073709551616
+(U32) 4294967295 + 18446744073709551616
18446744078004518911
-4294967295 + 340282366920938463463374607431768211455
+(U32) 4294967295 + 340282366920938463463374607431768211455
340282366920938463463374607436063178750
-4294967295 + 340282366920938463463374607431768211456
+(U32) 4294967295 + 340282366920938463463374607431768211456
340282366920938463463374607436063178751
-4294967296 + -170141183460469231731687303715884105728
+(U64) 4294967296 + -170141183460469231731687303715884105728
-170141183460469231731687303711589138432
-4294967296 + -170141183460469231731687303715884105727
+(U64) 4294967296 + -170141183460469231731687303715884105727
-170141183460469231731687303711589138431
-4294967296 + -9223372036854775808
+(U64) 4294967296 + -9223372036854775808
-9223372032559808512
-4294967296 + -9223372036854775807
+(U64) 4294967296 + (S64) -9223372036854775807
-9223372032559808511
-4294967296 + -2147483648
+(U64) 4294967296 + (S64) -2147483648
2147483648
-4294967296 + -2147483647
+(U64) 4294967296 + (S32) -2147483647
2147483649
-4294967296 + -32768
+(U64) 4294967296 + (S32) -32768
4294934528
-4294967296 + -32767
+(U64) 4294967296 + (S16) -32767
4294934529
-4294967296 + -128
+(U64) 4294967296 + (S16) -128
4294967168
-4294967296 + -127
+(U64) 4294967296 + (S8) -127
4294967169
-4294967296 + 255
-4294967551
-4294967296 + 256
-4294967552
-4294967296 + 65535
-4295032831
-4294967296 + 65536
-4295032832
-4294967296 + 4294967295
-8589934591
-4294967296 + 4294967296
-8589934592
-4294967296 + 18446744073709551615
+(U64) 4294967296 + (U8) 255
+(U64) 4294967551
+(U64) 4294967296 + (U16) 256
+(U64) 4294967552
+(U64) 4294967296 + (U16) 65535
+(U64) 4295032831
+(U64) 4294967296 + (U32) 65536
+(U64) 4295032832
+(U64) 4294967296 + (U32) 4294967295
+(U64) 8589934591
+(U64) 4294967296 + (U64) 4294967296
+(U64) 8589934592
+(U64) 4294967296 + (U64) 18446744073709551615
18446744078004518911
-4294967296 + 18446744073709551616
+(U64) 4294967296 + 18446744073709551616
18446744078004518912
-4294967296 + 340282366920938463463374607431768211455
+(U64) 4294967296 + 340282366920938463463374607431768211455
340282366920938463463374607436063178751
-4294967296 + 340282366920938463463374607431768211456
+(U64) 4294967296 + 340282366920938463463374607431768211456
340282366920938463463374607436063178752
-18446744073709551615 + -170141183460469231731687303715884105728
+(U64) 18446744073709551615 + -170141183460469231731687303715884105728
-170141183460469231713240559642174554113
-18446744073709551615 + -170141183460469231731687303715884105727
+(U64) 18446744073709551615 + -170141183460469231731687303715884105727
-170141183460469231713240559642174554112
-18446744073709551615 + -9223372036854775808
+(U64) 18446744073709551615 + -9223372036854775808
9223372036854775807
-18446744073709551615 + -9223372036854775807
+(U64) 18446744073709551615 + (S64) -9223372036854775807
9223372036854775808
-18446744073709551615 + -2147483648
+(U64) 18446744073709551615 + (S64) -2147483648
18446744071562067967
-18446744073709551615 + -2147483647
+(U64) 18446744073709551615 + (S32) -2147483647
18446744071562067968
-18446744073709551615 + -32768
+(U64) 18446744073709551615 + (S32) -32768
18446744073709518847
-18446744073709551615 + -32767
+(U64) 18446744073709551615 + (S16) -32767
18446744073709518848
-18446744073709551615 + -128
+(U64) 18446744073709551615 + (S16) -128
18446744073709551487
-18446744073709551615 + -127
+(U64) 18446744073709551615 + (S8) -127
18446744073709551488
-18446744073709551615 + 255
+(U64) 18446744073709551615 + (U8) 255
18446744073709551870
-18446744073709551615 + 256
+(U64) 18446744073709551615 + (U16) 256
18446744073709551871
-18446744073709551615 + 65535
+(U64) 18446744073709551615 + (U16) 65535
18446744073709617150
-18446744073709551615 + 65536
+(U64) 18446744073709551615 + (U32) 65536
18446744073709617151
-18446744073709551615 + 4294967295
+(U64) 18446744073709551615 + (U32) 4294967295
18446744078004518910
-18446744073709551615 + 4294967296
+(U64) 18446744073709551615 + (U64) 4294967296
18446744078004518911
-18446744073709551615 + 18446744073709551615
+(U64) 18446744073709551615 + (U64) 18446744073709551615
36893488147419103230
-18446744073709551615 + 18446744073709551616
+(U64) 18446744073709551615 + 18446744073709551616
36893488147419103231
-18446744073709551615 + 340282366920938463463374607431768211455
+(U64) 18446744073709551615 + 340282366920938463463374607431768211455
340282366920938463481821351505477763070
-18446744073709551615 + 340282366920938463463374607431768211456
+(U64) 18446744073709551615 + 340282366920938463463374607431768211456
340282366920938463481821351505477763071
18446744073709551616 + -170141183460469231731687303715884105728
-170141183460469231713240559642174554112
@@ -684,33 +684,33 @@
-170141183460469231713240559642174554111
18446744073709551616 + -9223372036854775808
9223372036854775808
-18446744073709551616 + -9223372036854775807
+18446744073709551616 + (S64) -9223372036854775807
9223372036854775809
-18446744073709551616 + -2147483648
+18446744073709551616 + (S64) -2147483648
18446744071562067968
-18446744073709551616 + -2147483647
+18446744073709551616 + (S32) -2147483647
18446744071562067969
-18446744073709551616 + -32768
+18446744073709551616 + (S32) -32768
18446744073709518848
-18446744073709551616 + -32767
+18446744073709551616 + (S16) -32767
18446744073709518849
-18446744073709551616 + -128
+18446744073709551616 + (S16) -128
18446744073709551488
-18446744073709551616 + -127
+18446744073709551616 + (S8) -127
18446744073709551489
-18446744073709551616 + 255
+18446744073709551616 + (U8) 255
18446744073709551871
-18446744073709551616 + 256
+18446744073709551616 + (U16) 256
18446744073709551872
-18446744073709551616 + 65535
+18446744073709551616 + (U16) 65535
18446744073709617151
-18446744073709551616 + 65536
+18446744073709551616 + (U32) 65536
18446744073709617152
-18446744073709551616 + 4294967295
+18446744073709551616 + (U32) 4294967295
18446744078004518911
-18446744073709551616 + 4294967296
+18446744073709551616 + (U64) 4294967296
18446744078004518912
-18446744073709551616 + 18446744073709551615
+18446744073709551616 + (U64) 18446744073709551615
36893488147419103231
18446744073709551616 + 18446744073709551616
36893488147419103232
@@ -724,33 +724,33 @@
170141183460469231731687303715884105728
340282366920938463463374607431768211455 + -9223372036854775808
340282366920938463454151235394913435647
-340282366920938463463374607431768211455 + -9223372036854775807
+340282366920938463463374607431768211455 + (S64) -9223372036854775807
340282366920938463454151235394913435648
-340282366920938463463374607431768211455 + -2147483648
+340282366920938463463374607431768211455 + (S64) -2147483648
340282366920938463463374607429620727807
-340282366920938463463374607431768211455 + -2147483647
+340282366920938463463374607431768211455 + (S32) -2147483647
340282366920938463463374607429620727808
-340282366920938463463374607431768211455 + -32768
+340282366920938463463374607431768211455 + (S32) -32768
340282366920938463463374607431768178687
-340282366920938463463374607431768211455 + -32767
+340282366920938463463374607431768211455 + (S16) -32767
340282366920938463463374607431768178688
-340282366920938463463374607431768211455 + -128
+340282366920938463463374607431768211455 + (S16) -128
340282366920938463463374607431768211327
-340282366920938463463374607431768211455 + -127
+340282366920938463463374607431768211455 + (S8) -127
340282366920938463463374607431768211328
-340282366920938463463374607431768211455 + 255
+340282366920938463463374607431768211455 + (U8) 255
340282366920938463463374607431768211710
-340282366920938463463374607431768211455 + 256
+340282366920938463463374607431768211455 + (U16) 256
340282366920938463463374607431768211711
-340282366920938463463374607431768211455 + 65535
+340282366920938463463374607431768211455 + (U16) 65535
340282366920938463463374607431768276990
-340282366920938463463374607431768211455 + 65536
+340282366920938463463374607431768211455 + (U32) 65536
340282366920938463463374607431768276991
-340282366920938463463374607431768211455 + 4294967295
+340282366920938463463374607431768211455 + (U32) 4294967295
340282366920938463463374607436063178750
-340282366920938463463374607431768211455 + 4294967296
+340282366920938463463374607431768211455 + (U64) 4294967296
340282366920938463463374607436063178751
-340282366920938463463374607431768211455 + 18446744073709551615
+340282366920938463463374607431768211455 + (U64) 18446744073709551615
340282366920938463481821351505477763070
340282366920938463463374607431768211455 + 18446744073709551616
340282366920938463481821351505477763071
@@ -764,33 +764,33 @@
170141183460469231731687303715884105729
340282366920938463463374607431768211456 + -9223372036854775808
340282366920938463454151235394913435648
-340282366920938463463374607431768211456 + -9223372036854775807
+340282366920938463463374607431768211456 + (S64) -9223372036854775807
340282366920938463454151235394913435649
-340282366920938463463374607431768211456 + -2147483648
+340282366920938463463374607431768211456 + (S64) -2147483648
340282366920938463463374607429620727808
-340282366920938463463374607431768211456 + -2147483647
+340282366920938463463374607431768211456 + (S32) -2147483647
340282366920938463463374607429620727809
-340282366920938463463374607431768211456 + -32768
+340282366920938463463374607431768211456 + (S32) -32768
340282366920938463463374607431768178688
-340282366920938463463374607431768211456 + -32767
+340282366920938463463374607431768211456 + (S16) -32767
340282366920938463463374607431768178689
-340282366920938463463374607431768211456 + -128
+340282366920938463463374607431768211456 + (S16) -128
340282366920938463463374607431768211328
-340282366920938463463374607431768211456 + -127
+340282366920938463463374607431768211456 + (S8) -127
340282366920938463463374607431768211329
-340282366920938463463374607431768211456 + 255
+340282366920938463463374607431768211456 + (U8) 255
340282366920938463463374607431768211711
-340282366920938463463374607431768211456 + 256
+340282366920938463463374607431768211456 + (U16) 256
340282366920938463463374607431768211712
-340282366920938463463374607431768211456 + 65535
+340282366920938463463374607431768211456 + (U16) 65535
340282366920938463463374607431768276991
-340282366920938463463374607431768211456 + 65536
+340282366920938463463374607431768211456 + (U32) 65536
340282366920938463463374607431768276992
-340282366920938463463374607431768211456 + 4294967295
+340282366920938463463374607431768211456 + (U32) 4294967295
340282366920938463463374607436063178751
-340282366920938463463374607431768211456 + 4294967296
+340282366920938463463374607431768211456 + (U64) 4294967296
340282366920938463463374607436063178752
-340282366920938463463374607431768211456 + 18446744073709551615
+340282366920938463463374607431768211456 + (U64) 18446744073709551615
340282366920938463481821351505477763071
340282366920938463463374607431768211456 + 18446744073709551616
340282366920938463481821351505477763072
diff --git a/test/ikc3/integer_band.out.expected b/test/ikc3/integer_band.out.expected
index 1da02cd..b776081 100644
--- a/test/ikc3/integer_band.out.expected
+++ b/test/ikc3/integer_band.out.expected
@@ -4,33 +4,33 @@
-170141183460469231731687303715884105728
-170141183460469231731687303715884105728 & -9223372036854775808
-170141183460469231731687303715884105728
--170141183460469231731687303715884105728 & -9223372036854775807
+-170141183460469231731687303715884105728 & (S64) -9223372036854775807
-170141183460469231731687303715884105728
--170141183460469231731687303715884105728 & -2147483648
+-170141183460469231731687303715884105728 & (S64) -2147483648
-170141183460469231731687303715884105728
--170141183460469231731687303715884105728 & -2147483647
+-170141183460469231731687303715884105728 & (S32) -2147483647
-170141183460469231731687303715884105728
--170141183460469231731687303715884105728 & -32768
+-170141183460469231731687303715884105728 & (S32) -32768
-170141183460469231731687303715884105728
--170141183460469231731687303715884105728 & -32767
+-170141183460469231731687303715884105728 & (S16) -32767
-170141183460469231731687303715884105728
--170141183460469231731687303715884105728 & -128
+-170141183460469231731687303715884105728 & (S16) -128
-170141183460469231731687303715884105728
--170141183460469231731687303715884105728 & -127
+-170141183460469231731687303715884105728 & (S8) -127
-170141183460469231731687303715884105728
--170141183460469231731687303715884105728 & 255
+-170141183460469231731687303715884105728 & (U8) 255
0
--170141183460469231731687303715884105728 & 256
+-170141183460469231731687303715884105728 & (U16) 256
0
--170141183460469231731687303715884105728 & 65535
+-170141183460469231731687303715884105728 & (U16) 65535
0
--170141183460469231731687303715884105728 & 65536
+-170141183460469231731687303715884105728 & (U32) 65536
0
--170141183460469231731687303715884105728 & 4294967295
+-170141183460469231731687303715884105728 & (U32) 4294967295
0
--170141183460469231731687303715884105728 & 4294967296
+-170141183460469231731687303715884105728 & (U64) 4294967296
0
--170141183460469231731687303715884105728 & 18446744073709551615
+-170141183460469231731687303715884105728 & (U64) 18446744073709551615
0
-170141183460469231731687303715884105728 & 18446744073709551616
0
@@ -44,33 +44,33 @@
-170141183460469231731687303715884105727
-170141183460469231731687303715884105727 & -9223372036854775808
-170141183460469231731687303715884105728
--170141183460469231731687303715884105727 & -9223372036854775807
+-170141183460469231731687303715884105727 & (S64) -9223372036854775807
-170141183460469231731687303715884105727
--170141183460469231731687303715884105727 & -2147483648
+-170141183460469231731687303715884105727 & (S64) -2147483648
-170141183460469231731687303715884105728
--170141183460469231731687303715884105727 & -2147483647
+-170141183460469231731687303715884105727 & (S32) -2147483647
-170141183460469231731687303715884105727
--170141183460469231731687303715884105727 & -32768
+-170141183460469231731687303715884105727 & (S32) -32768
-170141183460469231731687303715884105728
--170141183460469231731687303715884105727 & -32767
+-170141183460469231731687303715884105727 & (S16) -32767
-170141183460469231731687303715884105727
--170141183460469231731687303715884105727 & -128
+-170141183460469231731687303715884105727 & (S16) -128
-170141183460469231731687303715884105728
--170141183460469231731687303715884105727 & -127
+-170141183460469231731687303715884105727 & (S8) -127
-170141183460469231731687303715884105727
--170141183460469231731687303715884105727 & 255
+-170141183460469231731687303715884105727 & (U8) 255
1
--170141183460469231731687303715884105727 & 256
+-170141183460469231731687303715884105727 & (U16) 256
0
--170141183460469231731687303715884105727 & 65535
+-170141183460469231731687303715884105727 & (U16) 65535
1
--170141183460469231731687303715884105727 & 65536
+-170141183460469231731687303715884105727 & (U32) 65536
0
--170141183460469231731687303715884105727 & 4294967295
+-170141183460469231731687303715884105727 & (U32) 4294967295
1
--170141183460469231731687303715884105727 & 4294967296
+-170141183460469231731687303715884105727 & (U64) 4294967296
0
--170141183460469231731687303715884105727 & 18446744073709551615
+-170141183460469231731687303715884105727 & (U64) 18446744073709551615
1
-170141183460469231731687303715884105727 & 18446744073709551616
0
@@ -84,33 +84,33 @@
-170141183460469231731687303715884105728
-9223372036854775808 & -9223372036854775808
-9223372036854775808
--9223372036854775808 & -9223372036854775807
+-9223372036854775808 & (S64) -9223372036854775807
-9223372036854775808
--9223372036854775808 & -2147483648
+-9223372036854775808 & (S64) -2147483648
-9223372036854775808
--9223372036854775808 & -2147483647
+-9223372036854775808 & (S32) -2147483647
-9223372036854775808
--9223372036854775808 & -32768
+-9223372036854775808 & (S32) -32768
-9223372036854775808
--9223372036854775808 & -32767
+-9223372036854775808 & (S16) -32767
-9223372036854775808
--9223372036854775808 & -128
+-9223372036854775808 & (S16) -128
-9223372036854775808
--9223372036854775808 & -127
+-9223372036854775808 & (S8) -127
-9223372036854775808
--9223372036854775808 & 255
+-9223372036854775808 & (U8) 255
0
--9223372036854775808 & 256
+-9223372036854775808 & (U16) 256
0
--9223372036854775808 & 65535
+-9223372036854775808 & (U16) 65535
0
--9223372036854775808 & 65536
+-9223372036854775808 & (U32) 65536
0
--9223372036854775808 & 4294967295
+-9223372036854775808 & (U32) 4294967295
0
--9223372036854775808 & 4294967296
+-9223372036854775808 & (U64) 4294967296
0
--9223372036854775808 & 18446744073709551615
+-9223372036854775808 & (U64) 18446744073709551615
9223372036854775808
-9223372036854775808 & 18446744073709551616
18446744073709551616
@@ -118,599 +118,599 @@
340282366920938463454151235394913435648
-9223372036854775808 & 340282366920938463463374607431768211456
340282366920938463463374607431768211456
--9223372036854775807 & -170141183460469231731687303715884105728
+(S64) -9223372036854775807 & -170141183460469231731687303715884105728
-170141183460469231731687303715884105728
--9223372036854775807 & -170141183460469231731687303715884105727
+(S64) -9223372036854775807 & -170141183460469231731687303715884105727
-170141183460469231731687303715884105727
--9223372036854775807 & -9223372036854775808
+(S64) -9223372036854775807 & -9223372036854775808
-9223372036854775808
--9223372036854775807 & -9223372036854775807
--9223372036854775807
--9223372036854775807 & -2147483648
--9223372036854775808
--9223372036854775807 & -2147483647
--9223372036854775807
--9223372036854775807 & -32768
--9223372036854775808
--9223372036854775807 & -32767
--9223372036854775807
--9223372036854775807 & -128
--9223372036854775808
--9223372036854775807 & -127
--9223372036854775807
--9223372036854775807 & 255
-1
--9223372036854775807 & 256
-0
--9223372036854775807 & 65535
-1
--9223372036854775807 & 65536
-0
--9223372036854775807 & 4294967295
-1
--9223372036854775807 & 4294967296
-0
--9223372036854775807 & 18446744073709551615
+(S64) -9223372036854775807 & (S64) -9223372036854775807
+(S64) -9223372036854775807
+(S64) -9223372036854775807 & (S64) -2147483648
+(S64) -9223372036854775808
+(S64) -9223372036854775807 & (S32) -2147483647
+(S64) -9223372036854775807
+(S64) -9223372036854775807 & (S32) -32768
+(S64) -9223372036854775808
+(S64) -9223372036854775807 & (S16) -32767
+(S64) -9223372036854775807
+(S64) -9223372036854775807 & (S16) -128
+(S64) -9223372036854775808
+(S64) -9223372036854775807 & (S8) -127
+(S64) -9223372036854775807
+(S64) -9223372036854775807 & (U8) 255
+(S64) 1
+(S64) -9223372036854775807 & (U16) 256
+(S64) 0
+(S64) -9223372036854775807 & (U16) 65535
+(S64) 1
+(S64) -9223372036854775807 & (U32) 65536
+(S64) 0
+(S64) -9223372036854775807 & (U32) 4294967295
+(S64) 1
+(S64) -9223372036854775807 & (U64) 4294967296
+0
+(S64) -9223372036854775807 & (U64) 18446744073709551615
9223372036854775809
--9223372036854775807 & 18446744073709551616
+(S64) -9223372036854775807 & 18446744073709551616
18446744073709551616
--9223372036854775807 & 340282366920938463463374607431768211455
+(S64) -9223372036854775807 & 340282366920938463463374607431768211455
340282366920938463454151235394913435649
--9223372036854775807 & 340282366920938463463374607431768211456
+(S64) -9223372036854775807 & 340282366920938463463374607431768211456
340282366920938463463374607431768211456
--2147483648 & -170141183460469231731687303715884105728
+(S64) -2147483648 & -170141183460469231731687303715884105728
-170141183460469231731687303715884105728
--2147483648 & -170141183460469231731687303715884105727
+(S64) -2147483648 & -170141183460469231731687303715884105727
-170141183460469231731687303715884105728
--2147483648 & -9223372036854775808
--9223372036854775808
--2147483648 & -9223372036854775807
+(S64) -2147483648 & -9223372036854775808
-9223372036854775808
--2147483648 & -2147483648
--2147483648
--2147483648 & -2147483647
--2147483648
--2147483648 & -32768
--2147483648
--2147483648 & -32767
--2147483648
--2147483648 & -128
--2147483648
--2147483648 & -127
--2147483648
--2147483648 & 255
-0
--2147483648 & 256
-0
--2147483648 & 65535
-0
--2147483648 & 65536
-0
--2147483648 & 4294967295
-2147483648
--2147483648 & 4294967296
+(S64) -2147483648 & (S64) -9223372036854775807
+(S64) -9223372036854775808
+(S64) -2147483648 & (S64) -2147483648
+(S64) -2147483648
+(S64) -2147483648 & (S32) -2147483647
+(S64) -2147483648
+(S64) -2147483648 & (S32) -32768
+(S64) -2147483648
+(S64) -2147483648 & (S16) -32767
+(S64) -2147483648
+(S64) -2147483648 & (S16) -128
+(S64) -2147483648
+(S64) -2147483648 & (S8) -127
+(S64) -2147483648
+(S64) -2147483648 & (U8) 255
+(S64) 0
+(S64) -2147483648 & (U16) 256
+(S64) 0
+(S64) -2147483648 & (U16) 65535
+(S64) 0
+(S64) -2147483648 & (U32) 65536
+(S64) 0
+(S64) -2147483648 & (U32) 4294967295
+(S64) 2147483648
+(S64) -2147483648 & (U64) 4294967296
4294967296
--2147483648 & 18446744073709551615
+(S64) -2147483648 & (U64) 18446744073709551615
18446744071562067968
--2147483648 & 18446744073709551616
+(S64) -2147483648 & 18446744073709551616
18446744073709551616
--2147483648 & 340282366920938463463374607431768211455
+(S64) -2147483648 & 340282366920938463463374607431768211455
340282366920938463463374607429620727808
--2147483648 & 340282366920938463463374607431768211456
+(S64) -2147483648 & 340282366920938463463374607431768211456
340282366920938463463374607431768211456
--2147483647 & -170141183460469231731687303715884105728
+(S32) -2147483647 & -170141183460469231731687303715884105728
-170141183460469231731687303715884105728
--2147483647 & -170141183460469231731687303715884105727
+(S32) -2147483647 & -170141183460469231731687303715884105727
-170141183460469231731687303715884105727
--2147483647 & -9223372036854775808
+(S32) -2147483647 & -9223372036854775808
-9223372036854775808
--2147483647 & -9223372036854775807
--9223372036854775807
--2147483647 & -2147483648
--2147483648
--2147483647 & -2147483647
--2147483647
--2147483647 & -32768
--2147483648
--2147483647 & -32767
--2147483647
--2147483647 & -128
--2147483648
--2147483647 & -127
--2147483647
--2147483647 & 255
-1
--2147483647 & 256
-0
--2147483647 & 65535
-1
--2147483647 & 65536
-0
--2147483647 & 4294967295
-2147483649
--2147483647 & 4294967296
+(S32) -2147483647 & (S64) -9223372036854775807
+(S64) -9223372036854775807
+(S32) -2147483647 & (S64) -2147483648
+(S64) -2147483648
+(S32) -2147483647 & (S32) -2147483647
+(S32) -2147483647
+(S32) -2147483647 & (S32) -32768
+(S32) -2147483648
+(S32) -2147483647 & (S16) -32767
+(S32) -2147483647
+(S32) -2147483647 & (S16) -128
+(S32) -2147483648
+(S32) -2147483647 & (S8) -127
+(S32) -2147483647
+(S32) -2147483647 & (U8) 255
+(S32) 1
+(S32) -2147483647 & (U16) 256
+(S32) 0
+(S32) -2147483647 & (U16) 65535
+(S32) 1
+(S32) -2147483647 & (U32) 65536
+(S64) 0
+(S32) -2147483647 & (U32) 4294967295
+(S64) 2147483649
+(S32) -2147483647 & (U64) 4294967296
4294967296
--2147483647 & 18446744073709551615
+(S32) -2147483647 & (U64) 18446744073709551615
18446744071562067969
--2147483647 & 18446744073709551616
+(S32) -2147483647 & 18446744073709551616
18446744073709551616
--2147483647 & 340282366920938463463374607431768211455
+(S32) -2147483647 & 340282366920938463463374607431768211455
340282366920938463463374607429620727809
--2147483647 & 340282366920938463463374607431768211456
+(S32) -2147483647 & 340282366920938463463374607431768211456
340282366920938463463374607431768211456
--32768 & -170141183460469231731687303715884105728
+(S32) -32768 & -170141183460469231731687303715884105728
-170141183460469231731687303715884105728
--32768 & -170141183460469231731687303715884105727
+(S32) -32768 & -170141183460469231731687303715884105727
-170141183460469231731687303715884105728
--32768 & -9223372036854775808
--9223372036854775808
--32768 & -9223372036854775807
+(S32) -32768 & -9223372036854775808
-9223372036854775808
--32768 & -2147483648
--2147483648
--32768 & -2147483647
--2147483648
--32768 & -32768
--32768
--32768 & -32767
--32768
--32768 & -128
--32768
--32768 & -127
--32768
--32768 & 255
-0
--32768 & 256
-0
--32768 & 65535
-32768
--32768 & 65536
-65536
--32768 & 4294967295
-4294934528
--32768 & 4294967296
+(S32) -32768 & (S64) -9223372036854775807
+(S64) -9223372036854775808
+(S32) -32768 & (S64) -2147483648
+(S64) -2147483648
+(S32) -32768 & (S32) -2147483647
+(S32) -2147483648
+(S32) -32768 & (S32) -32768
+(S32) -32768
+(S32) -32768 & (S16) -32767
+(S32) -32768
+(S32) -32768 & (S16) -128
+(S32) -32768
+(S32) -32768 & (S8) -127
+(S32) -32768
+(S32) -32768 & (U8) 255
+(S32) 0
+(S32) -32768 & (U16) 256
+(S32) 0
+(S32) -32768 & (U16) 65535
+(S32) 32768
+(S32) -32768 & (U32) 65536
+(S64) 65536
+(S32) -32768 & (U32) 4294967295
+(S64) 4294934528
+(S32) -32768 & (U64) 4294967296
4294967296
--32768 & 18446744073709551615
+(S32) -32768 & (U64) 18446744073709551615
18446744073709518848
--32768 & 18446744073709551616
+(S32) -32768 & 18446744073709551616
18446744073709551616
--32768 & 340282366920938463463374607431768211455
+(S32) -32768 & 340282366920938463463374607431768211455
340282366920938463463374607431768178688
--32768 & 340282366920938463463374607431768211456
+(S32) -32768 & 340282366920938463463374607431768211456
340282366920938463463374607431768211456
--32767 & -170141183460469231731687303715884105728
+(S16) -32767 & -170141183460469231731687303715884105728
-170141183460469231731687303715884105728
--32767 & -170141183460469231731687303715884105727
+(S16) -32767 & -170141183460469231731687303715884105727
-170141183460469231731687303715884105727
--32767 & -9223372036854775808
+(S16) -32767 & -9223372036854775808
-9223372036854775808
--32767 & -9223372036854775807
--9223372036854775807
--32767 & -2147483648
--2147483648
--32767 & -2147483647
--2147483647
--32767 & -32768
--32768
--32767 & -32767
--32767
--32767 & -128
--32768
--32767 & -127
--32767
--32767 & 255
-1
--32767 & 256
-0
--32767 & 65535
-32769
--32767 & 65536
-65536
--32767 & 4294967295
-4294934529
--32767 & 4294967296
+(S16) -32767 & (S64) -9223372036854775807
+(S64) -9223372036854775807
+(S16) -32767 & (S64) -2147483648
+(S64) -2147483648
+(S16) -32767 & (S32) -2147483647
+(S32) -2147483647
+(S16) -32767 & (S32) -32768
+(S32) -32768
+(S16) -32767 & (S16) -32767
+(S16) -32767
+(S16) -32767 & (S16) -128
+(S16) -32768
+(S16) -32767 & (S8) -127
+(S16) -32767
+(S16) -32767 & (U8) 255
+(S16) 1
+(S16) -32767 & (U16) 256
+(S32) 0
+(S16) -32767 & (U16) 65535
+(S32) 32769
+(S16) -32767 & (U32) 65536
+(S64) 65536
+(S16) -32767 & (U32) 4294967295
+(S64) 4294934529
+(S16) -32767 & (U64) 4294967296
4294967296
--32767 & 18446744073709551615
+(S16) -32767 & (U64) 18446744073709551615
18446744073709518849
--32767 & 18446744073709551616
+(S16) -32767 & 18446744073709551616
18446744073709551616
--32767 & 340282366920938463463374607431768211455
+(S16) -32767 & 340282366920938463463374607431768211455
340282366920938463463374607431768178689
--32767 & 340282366920938463463374607431768211456
+(S16) -32767 & 340282366920938463463374607431768211456
340282366920938463463374607431768211456
--128 & -170141183460469231731687303715884105728
+(S16) -128 & -170141183460469231731687303715884105728
-170141183460469231731687303715884105728
--128 & -170141183460469231731687303715884105727
+(S16) -128 & -170141183460469231731687303715884105727
-170141183460469231731687303715884105728
--128 & -9223372036854775808
+(S16) -128 & -9223372036854775808
-9223372036854775808
--128 & -9223372036854775807
--9223372036854775808
--128 & -2147483648
--2147483648
--128 & -2147483647
--2147483648
--128 & -32768
--32768
--128 & -32767
--32768
--128 & -128
--128
--128 & -127
--128
--128 & 255
-128
--128 & 256
-256
--128 & 65535
-65408
--128 & 65536
-65536
--128 & 4294967295
-4294967168
--128 & 4294967296
+(S16) -128 & (S64) -9223372036854775807
+(S64) -9223372036854775808
+(S16) -128 & (S64) -2147483648
+(S64) -2147483648
+(S16) -128 & (S32) -2147483647
+(S32) -2147483648
+(S16) -128 & (S32) -32768
+(S32) -32768
+(S16) -128 & (S16) -32767
+(S16) -32768
+(S16) -128 & (S16) -128
+(S16) -128
+(S16) -128 & (S8) -127
+(S16) -128
+(S16) -128 & (U8) 255
+(S16) 128
+(S16) -128 & (U16) 256
+(S32) 256
+(S16) -128 & (U16) 65535
+(S32) 65408
+(S16) -128 & (U32) 65536
+(S64) 65536
+(S16) -128 & (U32) 4294967295
+(S64) 4294967168
+(S16) -128 & (U64) 4294967296
4294967296
--128 & 18446744073709551615
+(S16) -128 & (U64) 18446744073709551615
18446744073709551488
--128 & 18446744073709551616
+(S16) -128 & 18446744073709551616
18446744073709551616
--128 & 340282366920938463463374607431768211455
+(S16) -128 & 340282366920938463463374607431768211455
340282366920938463463374607431768211328
--128 & 340282366920938463463374607431768211456
+(S16) -128 & 340282366920938463463374607431768211456
340282366920938463463374607431768211456
--127 & -170141183460469231731687303715884105728
+(S8) -127 & -170141183460469231731687303715884105728
-170141183460469231731687303715884105728
--127 & -170141183460469231731687303715884105727
+(S8) -127 & -170141183460469231731687303715884105727
-170141183460469231731687303715884105727
--127 & -9223372036854775808
+(S8) -127 & -9223372036854775808
-9223372036854775808
--127 & -9223372036854775807
--9223372036854775807
--127 & -2147483648
--2147483648
--127 & -2147483647
--2147483647
--127 & -32768
--32768
--127 & -32767
--32767
--127 & -128
--128
--127 & -127
--127
--127 & 255
-129
--127 & 256
-256
--127 & 65535
-65409
--127 & 65536
-65536
--127 & 4294967295
-4294967169
--127 & 4294967296
+(S8) -127 & (S64) -9223372036854775807
+(S64) -9223372036854775807
+(S8) -127 & (S64) -2147483648
+(S64) -2147483648
+(S8) -127 & (S32) -2147483647
+(S32) -2147483647
+(S8) -127 & (S32) -32768
+(S32) -32768
+(S8) -127 & (S16) -32767
+(S16) -32767
+(S8) -127 & (S16) -128
+(S16) -128
+(S8) -127 & (S8) -127
+(S8) -127
+(S8) -127 & (U8) 255
+(S16) 129
+(S8) -127 & (U16) 256
+(S32) 256
+(S8) -127 & (U16) 65535
+(S32) 65409
+(S8) -127 & (U32) 65536
+(S64) 65536
+(S8) -127 & (U32) 4294967295
+(S64) 4294967169
+(S8) -127 & (U64) 4294967296
4294967296
--127 & 18446744073709551615
+(S8) -127 & (U64) 18446744073709551615
18446744073709551489
--127 & 18446744073709551616
+(S8) -127 & 18446744073709551616
18446744073709551616
--127 & 340282366920938463463374607431768211455
+(S8) -127 & 340282366920938463463374607431768211455
340282366920938463463374607431768211329
--127 & 340282366920938463463374607431768211456
+(S8) -127 & 340282366920938463463374607431768211456
340282366920938463463374607431768211456
-255 & -170141183460469231731687303715884105728
-0
-255 & -170141183460469231731687303715884105727
-1
-255 & -9223372036854775808
-0
-255 & -9223372036854775807
-1
-255 & -2147483648
-0
-255 & -2147483647
-1
-255 & -32768
-0
-255 & -32767
-1
-255 & -128
-128
-255 & -127
-129
-255 & 255
-255
-255 & 256
-0
-255 & 65535
-255
-255 & 65536
-0
-255 & 4294967295
-255
-255 & 4294967296
-0
-255 & 18446744073709551615
-255
-255 & 18446744073709551616
-0
-255 & 340282366920938463463374607431768211455
-255
-255 & 340282366920938463463374607431768211456
-0
-256 & -170141183460469231731687303715884105728
-0
-256 & -170141183460469231731687303715884105727
-0
-256 & -9223372036854775808
-0
-256 & -9223372036854775807
-0
-256 & -2147483648
-0
-256 & -2147483647
-0
-256 & -32768
-0
-256 & -32767
-0
-256 & -128
-256
-256 & -127
-256
-256 & 255
-0
-256 & 256
-256
-256 & 65535
-256
-256 & 65536
-0
-256 & 4294967295
-256
-256 & 4294967296
-0
-256 & 18446744073709551615
-256
-256 & 18446744073709551616
-0
-256 & 340282366920938463463374607431768211455
-256
-256 & 340282366920938463463374607431768211456
-0
-65535 & -170141183460469231731687303715884105728
-0
-65535 & -170141183460469231731687303715884105727
-1
-65535 & -9223372036854775808
-0
-65535 & -9223372036854775807
-1
-65535 & -2147483648
-0
-65535 & -2147483647
-1
-65535 & -32768
-32768
-65535 & -32767
-32769
-65535 & -128
-65408
-65535 & -127
-65409
-65535 & 255
-255
-65535 & 256
-256
-65535 & 65535
-65535
-65535 & 65536
-0
-65535 & 4294967295
-65535
-65535 & 4294967296
-0
-65535 & 18446744073709551615
-65535
-65535 & 18446744073709551616
-0
-65535 & 340282366920938463463374607431768211455
-65535
-65535 & 340282366920938463463374607431768211456
-0
-65536 & -170141183460469231731687303715884105728
-0
-65536 & -170141183460469231731687303715884105727
-0
-65536 & -9223372036854775808
-0
-65536 & -9223372036854775807
-0
-65536 & -2147483648
-0
-65536 & -2147483647
-0
-65536 & -32768
-65536
-65536 & -32767
-65536
-65536 & -128
-65536
-65536 & -127
-65536
-65536 & 255
-0
-65536 & 256
-0
-65536 & 65535
-0
-65536 & 65536
-65536
-65536 & 4294967295
-65536
-65536 & 4294967296
-0
-65536 & 18446744073709551615
-65536
-65536 & 18446744073709551616
-0
-65536 & 340282366920938463463374607431768211455
-65536
-65536 & 340282366920938463463374607431768211456
-0
-4294967295 & -170141183460469231731687303715884105728
-0
-4294967295 & -170141183460469231731687303715884105727
-1
-4294967295 & -9223372036854775808
-0
-4294967295 & -9223372036854775807
-1
-4294967295 & -2147483648
-2147483648
-4294967295 & -2147483647
-2147483649
-4294967295 & -32768
-4294934528
-4294967295 & -32767
-4294934529
-4294967295 & -128
-4294967168
-4294967295 & -127
-4294967169
-4294967295 & 255
-255
-4294967295 & 256
-256
-4294967295 & 65535
-65535
-4294967295 & 65536
-65536
-4294967295 & 4294967295
-4294967295
-4294967295 & 4294967296
-0
-4294967295 & 18446744073709551615
-4294967295
-4294967295 & 18446744073709551616
-0
-4294967295 & 340282366920938463463374607431768211455
-4294967295
-4294967295 & 340282366920938463463374607431768211456
-0
-4294967296 & -170141183460469231731687303715884105728
-0
-4294967296 & -170141183460469231731687303715884105727
-0
-4294967296 & -9223372036854775808
-0
-4294967296 & -9223372036854775807
-0
-4294967296 & -2147483648
-4294967296
-4294967296 & -2147483647
-4294967296
-4294967296 & -32768
-4294967296
-4294967296 & -32767
-4294967296
-4294967296 & -128
-4294967296
-4294967296 & -127
-4294967296
-4294967296 & 255
-0
-4294967296 & 256
-0
-4294967296 & 65535
-0
-4294967296 & 65536
-0
-4294967296 & 4294967295
-0
-4294967296 & 4294967296
-4294967296
-4294967296 & 18446744073709551615
-4294967296
-4294967296 & 18446744073709551616
-0
-4294967296 & 340282366920938463463374607431768211455
-4294967296
-4294967296 & 340282366920938463463374607431768211456
-0
-18446744073709551615 & -170141183460469231731687303715884105728
-0
-18446744073709551615 & -170141183460469231731687303715884105727
-1
-18446744073709551615 & -9223372036854775808
-9223372036854775808
-18446744073709551615 & -9223372036854775807
-9223372036854775809
-18446744073709551615 & -2147483648
-18446744071562067968
-18446744073709551615 & -2147483647
-18446744071562067969
-18446744073709551615 & -32768
-18446744073709518848
-18446744073709551615 & -32767
-18446744073709518849
-18446744073709551615 & -128
-18446744073709551488
-18446744073709551615 & -127
-18446744073709551489
-18446744073709551615 & 255
-255
-18446744073709551615 & 256
-256
-18446744073709551615 & 65535
-65535
-18446744073709551615 & 65536
-65536
-18446744073709551615 & 4294967295
-4294967295
-18446744073709551615 & 4294967296
-4294967296
-18446744073709551615 & 18446744073709551615
-18446744073709551615
-18446744073709551615 & 18446744073709551616
-0
-18446744073709551615 & 340282366920938463463374607431768211455
-18446744073709551615
-18446744073709551615 & 340282366920938463463374607431768211456
-0
+(U8) 255 & -170141183460469231731687303715884105728
+(U8) 0
+(U8) 255 & -170141183460469231731687303715884105727
+(U8) 1
+(U8) 255 & -9223372036854775808
+(U8) 0
+(U8) 255 & (S64) -9223372036854775807
+(U8) 1
+(U8) 255 & (S64) -2147483648
+(U8) 0
+(U8) 255 & (S32) -2147483647
+(U8) 1
+(U8) 255 & (S32) -32768
+(U8) 0
+(U8) 255 & (S16) -32767
+(U8) 1
+(U8) 255 & (S16) -128
+(U8) 128
+(U8) 255 & (S8) -127
+(U8) 129
+(U8) 255 & (U8) 255
+(U8) 255
+(U8) 255 & (U16) 256
+(U8) 0
+(U8) 255 & (U16) 65535
+(U8) 255
+(U8) 255 & (U32) 65536
+(U8) 0
+(U8) 255 & (U32) 4294967295
+(U8) 255
+(U8) 255 & (U64) 4294967296
+(U8) 0
+(U8) 255 & (U64) 18446744073709551615
+(U8) 255
+(U8) 255 & 18446744073709551616
+(U8) 0
+(U8) 255 & 340282366920938463463374607431768211455
+(U8) 255
+(U8) 255 & 340282366920938463463374607431768211456
+(U8) 0
+(U16) 256 & -170141183460469231731687303715884105728
+(U16) 0
+(U16) 256 & -170141183460469231731687303715884105727
+(U16) 0
+(U16) 256 & -9223372036854775808
+(U16) 0
+(U16) 256 & (S64) -9223372036854775807
+(U16) 0
+(U16) 256 & (S64) -2147483648
+(U16) 0
+(U16) 256 & (S32) -2147483647
+(U16) 0
+(U16) 256 & (S32) -32768
+(U16) 0
+(U16) 256 & (S16) -32767
+(U16) 0
+(U16) 256 & (S16) -128
+(U16) 256
+(U16) 256 & (S8) -127
+(U16) 256
+(U16) 256 & (U8) 255
+(U16) 0
+(U16) 256 & (U16) 256
+(U16) 256
+(U16) 256 & (U16) 65535
+(U16) 256
+(U16) 256 & (U32) 65536
+(U16) 0
+(U16) 256 & (U32) 4294967295
+(U16) 256
+(U16) 256 & (U64) 4294967296
+(U16) 0
+(U16) 256 & (U64) 18446744073709551615
+(U16) 256
+(U16) 256 & 18446744073709551616
+(U16) 0
+(U16) 256 & 340282366920938463463374607431768211455
+(U16) 256
+(U16) 256 & 340282366920938463463374607431768211456
+(U16) 0
+(U16) 65535 & -170141183460469231731687303715884105728
+(U16) 0
+(U16) 65535 & -170141183460469231731687303715884105727
+(U16) 1
+(U16) 65535 & -9223372036854775808
+(U16) 0
+(U16) 65535 & (S64) -9223372036854775807
+(U16) 1
+(U16) 65535 & (S64) -2147483648
+(U16) 0
+(U16) 65535 & (S32) -2147483647
+(U16) 1
+(U16) 65535 & (S32) -32768
+(U16) 32768
+(U16) 65535 & (S16) -32767
+(U16) 32769
+(U16) 65535 & (S16) -128
+(U16) 65408
+(U16) 65535 & (S8) -127
+(U16) 65409
+(U16) 65535 & (U8) 255
+(U16) 255
+(U16) 65535 & (U16) 256
+(U16) 256
+(U16) 65535 & (U16) 65535
+(U16) 65535
+(U16) 65535 & (U32) 65536
+(U16) 0
+(U16) 65535 & (U32) 4294967295
+(U16) 65535
+(U16) 65535 & (U64) 4294967296
+(U16) 0
+(U16) 65535 & (U64) 18446744073709551615
+(U16) 65535
+(U16) 65535 & 18446744073709551616
+(U16) 0
+(U16) 65535 & 340282366920938463463374607431768211455
+(U16) 65535
+(U16) 65535 & 340282366920938463463374607431768211456
+(U16) 0
+(U32) 65536 & -170141183460469231731687303715884105728
+(U32) 0
+(U32) 65536 & -170141183460469231731687303715884105727
+(U32) 0
+(U32) 65536 & -9223372036854775808
+(U32) 0
+(U32) 65536 & (S64) -9223372036854775807
+(U32) 0
+(U32) 65536 & (S64) -2147483648
+(U32) 0
+(U32) 65536 & (S32) -2147483647
+(U32) 0
+(U32) 65536 & (S32) -32768
+(U32) 65536
+(U32) 65536 & (S16) -32767
+(U32) 65536
+(U32) 65536 & (S16) -128
+(U32) 65536
+(U32) 65536 & (S8) -127
+(U32) 65536
+(U32) 65536 & (U8) 255
+(U32) 0
+(U32) 65536 & (U16) 256
+(U32) 0
+(U32) 65536 & (U16) 65535
+(U32) 0
+(U32) 65536 & (U32) 65536
+(U32) 65536
+(U32) 65536 & (U32) 4294967295
+(U32) 65536
+(U32) 65536 & (U64) 4294967296
+(U32) 0
+(U32) 65536 & (U64) 18446744073709551615
+(U32) 65536
+(U32) 65536 & 18446744073709551616
+(U32) 0
+(U32) 65536 & 340282366920938463463374607431768211455
+(U32) 65536
+(U32) 65536 & 340282366920938463463374607431768211456
+(U32) 0
+(U32) 4294967295 & -170141183460469231731687303715884105728
+(U32) 0
+(U32) 4294967295 & -170141183460469231731687303715884105727
+(U32) 1
+(U32) 4294967295 & -9223372036854775808
+(U32) 0
+(U32) 4294967295 & (S64) -9223372036854775807
+(U32) 1
+(U32) 4294967295 & (S64) -2147483648
+(U32) 2147483648
+(U32) 4294967295 & (S32) -2147483647
+(U32) 2147483649
+(U32) 4294967295 & (S32) -32768
+(U32) 4294934528
+(U32) 4294967295 & (S16) -32767
+(U32) 4294934529
+(U32) 4294967295 & (S16) -128
+(U32) 4294967168
+(U32) 4294967295 & (S8) -127
+(U32) 4294967169
+(U32) 4294967295 & (U8) 255
+(U32) 255
+(U32) 4294967295 & (U16) 256
+(U32) 256
+(U32) 4294967295 & (U16) 65535
+(U32) 65535
+(U32) 4294967295 & (U32) 65536
+(U32) 65536
+(U32) 4294967295 & (U32) 4294967295
+(U32) 4294967295
+(U32) 4294967295 & (U64) 4294967296
+(U32) 0
+(U32) 4294967295 & (U64) 18446744073709551615
+(U32) 4294967295
+(U32) 4294967295 & 18446744073709551616
+(U32) 0
+(U32) 4294967295 & 340282366920938463463374607431768211455
+(U32) 4294967295
+(U32) 4294967295 & 340282366920938463463374607431768211456
+(U32) 0
+(U64) 4294967296 & -170141183460469231731687303715884105728
+(U64) 0
+(U64) 4294967296 & -170141183460469231731687303715884105727
+(U64) 0
+(U64) 4294967296 & -9223372036854775808
+(U64) 0
+(U64) 4294967296 & (S64) -9223372036854775807
+(U64) 0
+(U64) 4294967296 & (S64) -2147483648
+(U64) 4294967296
+(U64) 4294967296 & (S32) -2147483647
+(U64) 4294967296
+(U64) 4294967296 & (S32) -32768
+(U64) 4294967296
+(U64) 4294967296 & (S16) -32767
+(U64) 4294967296
+(U64) 4294967296 & (S16) -128
+(U64) 4294967296
+(U64) 4294967296 & (S8) -127
+(U64) 4294967296
+(U64) 4294967296 & (U8) 255
+(U64) 0
+(U64) 4294967296 & (U16) 256
+(U64) 0
+(U64) 4294967296 & (U16) 65535
+(U64) 0
+(U64) 4294967296 & (U32) 65536
+(U64) 0
+(U64) 4294967296 & (U32) 4294967295
+(U64) 0
+(U64) 4294967296 & (U64) 4294967296
+(U64) 4294967296
+(U64) 4294967296 & (U64) 18446744073709551615
+(U64) 4294967296
+(U64) 4294967296 & 18446744073709551616
+(U64) 0
+(U64) 4294967296 & 340282366920938463463374607431768211455
+(U64) 4294967296
+(U64) 4294967296 & 340282366920938463463374607431768211456
+(U64) 0
+(U64) 18446744073709551615 & -170141183460469231731687303715884105728
+(U64) 0
+(U64) 18446744073709551615 & -170141183460469231731687303715884105727
+(U64) 1
+(U64) 18446744073709551615 & -9223372036854775808
+(U64) 9223372036854775808
+(U64) 18446744073709551615 & (S64) -9223372036854775807
+(U64) 9223372036854775809
+(U64) 18446744073709551615 & (S64) -2147483648
+(U64) 18446744071562067968
+(U64) 18446744073709551615 & (S32) -2147483647
+(U64) 18446744071562067969
+(U64) 18446744073709551615 & (S32) -32768
+(U64) 18446744073709518848
+(U64) 18446744073709551615 & (S16) -32767
+(U64) 18446744073709518849
+(U64) 18446744073709551615 & (S16) -128
+(U64) 18446744073709551488
+(U64) 18446744073709551615 & (S8) -127
+(U64) 18446744073709551489
+(U64) 18446744073709551615 & (U8) 255
+(U64) 255
+(U64) 18446744073709551615 & (U16) 256
+(U64) 256
+(U64) 18446744073709551615 & (U16) 65535
+(U64) 65535
+(U64) 18446744073709551615 & (U32) 65536
+(U64) 65536
+(U64) 18446744073709551615 & (U32) 4294967295
+(U64) 4294967295
+(U64) 18446744073709551615 & (U64) 4294967296
+(U64) 4294967296
+(U64) 18446744073709551615 & (U64) 18446744073709551615
+(U64) 18446744073709551615
+(U64) 18446744073709551615 & 18446744073709551616
+(U64) 0
+(U64) 18446744073709551615 & 340282366920938463463374607431768211455
+(U64) 18446744073709551615
+(U64) 18446744073709551615 & 340282366920938463463374607431768211456
+(U64) 0
18446744073709551616 & -170141183460469231731687303715884105728
0
18446744073709551616 & -170141183460469231731687303715884105727
0
18446744073709551616 & -9223372036854775808
18446744073709551616
-18446744073709551616 & -9223372036854775807
+18446744073709551616 & (S64) -9223372036854775807
18446744073709551616
-18446744073709551616 & -2147483648
+18446744073709551616 & (S64) -2147483648
18446744073709551616
-18446744073709551616 & -2147483647
+18446744073709551616 & (S32) -2147483647
18446744073709551616
-18446744073709551616 & -32768
+18446744073709551616 & (S32) -32768
18446744073709551616
-18446744073709551616 & -32767
+18446744073709551616 & (S16) -32767
18446744073709551616
-18446744073709551616 & -128
+18446744073709551616 & (S16) -128
18446744073709551616
-18446744073709551616 & -127
+18446744073709551616 & (S8) -127
18446744073709551616
-18446744073709551616 & 255
+18446744073709551616 & (U8) 255
0
-18446744073709551616 & 256
+18446744073709551616 & (U16) 256
0
-18446744073709551616 & 65535
+18446744073709551616 & (U16) 65535
0
-18446744073709551616 & 65536
+18446744073709551616 & (U32) 65536
0
-18446744073709551616 & 4294967295
+18446744073709551616 & (U32) 4294967295
0
-18446744073709551616 & 4294967296
+18446744073709551616 & (U64) 4294967296
0
-18446744073709551616 & 18446744073709551615
+18446744073709551616 & (U64) 18446744073709551615
0
18446744073709551616 & 18446744073709551616
18446744073709551616
@@ -724,33 +724,33 @@
170141183460469231731687303715884105729
340282366920938463463374607431768211455 & -9223372036854775808
340282366920938463454151235394913435648
-340282366920938463463374607431768211455 & -9223372036854775807
+340282366920938463463374607431768211455 & (S64) -9223372036854775807
340282366920938463454151235394913435649
-340282366920938463463374607431768211455 & -2147483648
+340282366920938463463374607431768211455 & (S64) -2147483648
340282366920938463463374607429620727808
-340282366920938463463374607431768211455 & -2147483647
+340282366920938463463374607431768211455 & (S32) -2147483647
340282366920938463463374607429620727809
-340282366920938463463374607431768211455 & -32768
+340282366920938463463374607431768211455 & (S32) -32768
340282366920938463463374607431768178688
-340282366920938463463374607431768211455 & -32767
+340282366920938463463374607431768211455 & (S16) -32767
340282366920938463463374607431768178689
-340282366920938463463374607431768211455 & -128
+340282366920938463463374607431768211455 & (S16) -128
340282366920938463463374607431768211328
-340282366920938463463374607431768211455 & -127
+340282366920938463463374607431768211455 & (S8) -127
340282366920938463463374607431768211329
-340282366920938463463374607431768211455 & 255
+340282366920938463463374607431768211455 & (U8) 255
255
-340282366920938463463374607431768211455 & 256
+340282366920938463463374607431768211455 & (U16) 256
256
-340282366920938463463374607431768211455 & 65535
+340282366920938463463374607431768211455 & (U16) 65535
65535
-340282366920938463463374607431768211455 & 65536
+340282366920938463463374607431768211455 & (U32) 65536
65536
-340282366920938463463374607431768211455 & 4294967295
+340282366920938463463374607431768211455 & (U32) 4294967295
4294967295
-340282366920938463463374607431768211455 & 4294967296
+340282366920938463463374607431768211455 & (U64) 4294967296
4294967296
-340282366920938463463374607431768211455 & 18446744073709551615
+340282366920938463463374607431768211455 & (U64) 18446744073709551615
18446744073709551615
340282366920938463463374607431768211455 & 18446744073709551616
18446744073709551616
@@ -764,33 +764,33 @@
340282366920938463463374607431768211456
340282366920938463463374607431768211456 & -9223372036854775808
340282366920938463463374607431768211456
-340282366920938463463374607431768211456 & -9223372036854775807
+340282366920938463463374607431768211456 & (S64) -9223372036854775807
340282366920938463463374607431768211456
-340282366920938463463374607431768211456 & -2147483648
+340282366920938463463374607431768211456 & (S64) -2147483648
340282366920938463463374607431768211456
-340282366920938463463374607431768211456 & -2147483647
+340282366920938463463374607431768211456 & (S32) -2147483647
340282366920938463463374607431768211456
-340282366920938463463374607431768211456 & -32768
+340282366920938463463374607431768211456 & (S32) -32768
340282366920938463463374607431768211456
-340282366920938463463374607431768211456 & -32767
+340282366920938463463374607431768211456 & (S16) -32767
340282366920938463463374607431768211456
-340282366920938463463374607431768211456 & -128
+340282366920938463463374607431768211456 & (S16) -128
340282366920938463463374607431768211456
-340282366920938463463374607431768211456 & -127
+340282366920938463463374607431768211456 & (S8) -127
340282366920938463463374607431768211456
-340282366920938463463374607431768211456 & 255
+340282366920938463463374607431768211456 & (U8) 255
0
-340282366920938463463374607431768211456 & 256
+340282366920938463463374607431768211456 & (U16) 256
0
-340282366920938463463374607431768211456 & 65535
+340282366920938463463374607431768211456 & (U16) 65535
0
-340282366920938463463374607431768211456 & 65536
+340282366920938463463374607431768211456 & (U32) 65536
0
-340282366920938463463374607431768211456 & 4294967295
+340282366920938463463374607431768211456 & (U32) 4294967295
0
-340282366920938463463374607431768211456 & 4294967296
+340282366920938463463374607431768211456 & (U64) 4294967296
0
-340282366920938463463374607431768211456 & 18446744073709551615
+340282366920938463463374607431768211456 & (U64) 18446744073709551615
0
340282366920938463463374607431768211456 & 18446744073709551616
0
diff --git a/test/ikc3/integer_bnot.out.expected b/test/ikc3/integer_bnot.out.expected
index dbc152d..ba24006 100644
--- a/test/ikc3/integer_bnot.out.expected
+++ b/test/ikc3/integer_bnot.out.expected
@@ -4,34 +4,34 @@
170141183460469231731687303715884105726
~ -9223372036854775808
9223372036854775807
-~ -9223372036854775807
-9223372036854775806
-~ -2147483648
-2147483647
-~ -2147483647
-2147483646
-~ -32768
-32767
-~ -32767
-32766
-~ -128
-127
-~ -127
-126
-~ 255
-0
-~ 256
-65279
-~ 65535
-0
-~ 65536
-4294901759
-~ 4294967295
-0
-~ 4294967296
-18446744069414584319
-~ 18446744073709551615
-0
+~ (S64) -9223372036854775807
+(S64) 9223372036854775806
+~ (S64) -2147483648
+(S64) 2147483647
+~ (S32) -2147483647
+(S32) 2147483646
+~ (S32) -32768
+(S32) 32767
+~ (S16) -32767
+(S16) 32766
+~ (S16) -128
+(S16) 127
+~ (S8) -127
+(S8) 126
+~ (U8) 255
+(U8) 0
+~ (U16) 256
+(U16) 65279
+~ (U16) 65535
+(U16) 0
+~ (U32) 65536
+(U32) 4294901759
+~ (U32) 4294967295
+(U32) 0
+~ (U64) 4294967296
+(U64) 18446744069414584319
+~ (U64) 18446744073709551615
+(U64) 0
~ 18446744073709551616
-18446744073709551617
~ 340282366920938463463374607431768211455
diff --git a/test/ikc3/integer_bor-2.out.expected b/test/ikc3/integer_bor-2.out.expected
index c0fa0ba..214d9ec 100644
--- a/test/ikc3/integer_bor-2.out.expected
+++ b/test/ikc3/integer_bor-2.out.expected
@@ -4,33 +4,33 @@
-170141183460469231731687303715884105727
-170141183460469231731687303715884105728 bor -9223372036854775808
-9223372036854775808
--170141183460469231731687303715884105728 bor -9223372036854775807
+-170141183460469231731687303715884105728 bor (S64) -9223372036854775807
-9223372036854775807
--170141183460469231731687303715884105728 bor -2147483648
+-170141183460469231731687303715884105728 bor (S64) -2147483648
-2147483648
--170141183460469231731687303715884105728 bor -2147483647
+-170141183460469231731687303715884105728 bor (S32) -2147483647
-2147483647
--170141183460469231731687303715884105728 bor -32768
+-170141183460469231731687303715884105728 bor (S32) -32768
-32768
--170141183460469231731687303715884105728 bor -32767
+-170141183460469231731687303715884105728 bor (S16) -32767
-32767
--170141183460469231731687303715884105728 bor -128
+-170141183460469231731687303715884105728 bor (S16) -128
-128
--170141183460469231731687303715884105728 bor -127
+-170141183460469231731687303715884105728 bor (S8) -127
-127
--170141183460469231731687303715884105728 bor 255
+-170141183460469231731687303715884105728 bor (U8) 255
-170141183460469231731687303715884105473
--170141183460469231731687303715884105728 bor 256
+-170141183460469231731687303715884105728 bor (U16) 256
-170141183460469231731687303715884105472
--170141183460469231731687303715884105728 bor 65535
+-170141183460469231731687303715884105728 bor (U16) 65535
-170141183460469231731687303715884040193
--170141183460469231731687303715884105728 bor 65536
+-170141183460469231731687303715884105728 bor (U32) 65536
-170141183460469231731687303715884040192
--170141183460469231731687303715884105728 bor 4294967295
+-170141183460469231731687303715884105728 bor (U32) 4294967295
-170141183460469231731687303711589138433
--170141183460469231731687303715884105728 bor 4294967296
+-170141183460469231731687303715884105728 bor (U64) 4294967296
-170141183460469231731687303711589138432
--170141183460469231731687303715884105728 bor 18446744073709551615
+-170141183460469231731687303715884105728 bor (U64) 18446744073709551615
-170141183460469231713240559642174554113
-170141183460469231731687303715884105728 bor 18446744073709551616
-170141183460469231713240559642174554112
@@ -44,33 +44,33 @@
-170141183460469231731687303715884105727
-170141183460469231731687303715884105727 bor -9223372036854775808
-9223372036854775807
--170141183460469231731687303715884105727 bor -9223372036854775807
+-170141183460469231731687303715884105727 bor (S64) -9223372036854775807
-9223372036854775807
--170141183460469231731687303715884105727 bor -2147483648
+-170141183460469231731687303715884105727 bor (S64) -2147483648
-2147483647
--170141183460469231731687303715884105727 bor -2147483647
+-170141183460469231731687303715884105727 bor (S32) -2147483647
-2147483647
--170141183460469231731687303715884105727 bor -32768
+-170141183460469231731687303715884105727 bor (S32) -32768
-32767
--170141183460469231731687303715884105727 bor -32767
+-170141183460469231731687303715884105727 bor (S16) -32767
-32767
--170141183460469231731687303715884105727 bor -128
+-170141183460469231731687303715884105727 bor (S16) -128
-127
--170141183460469231731687303715884105727 bor -127
+-170141183460469231731687303715884105727 bor (S8) -127
-127
--170141183460469231731687303715884105727 bor 255
+-170141183460469231731687303715884105727 bor (U8) 255
-170141183460469231731687303715884105473
--170141183460469231731687303715884105727 bor 256
+-170141183460469231731687303715884105727 bor (U16) 256
-170141183460469231731687303715884105471
--170141183460469231731687303715884105727 bor 65535
+-170141183460469231731687303715884105727 bor (U16) 65535
-170141183460469231731687303715884040193
--170141183460469231731687303715884105727 bor 65536
+-170141183460469231731687303715884105727 bor (U32) 65536
-170141183460469231731687303715884040191
--170141183460469231731687303715884105727 bor 4294967295
+-170141183460469231731687303715884105727 bor (U32) 4294967295
-170141183460469231731687303711589138433
--170141183460469231731687303715884105727 bor 4294967296
+-170141183460469231731687303715884105727 bor (U64) 4294967296
-170141183460469231731687303711589138431
--170141183460469231731687303715884105727 bor 18446744073709551615
+-170141183460469231731687303715884105727 bor (U64) 18446744073709551615
-170141183460469231713240559642174554113
-170141183460469231731687303715884105727 bor 18446744073709551616
-170141183460469231713240559642174554111
@@ -84,33 +84,33 @@
-9223372036854775807
-9223372036854775808 bor -9223372036854775808
-9223372036854775808
--9223372036854775808 bor -9223372036854775807
+-9223372036854775808 bor (S64) -9223372036854775807
-9223372036854775807
--9223372036854775808 bor -2147483648
+-9223372036854775808 bor (S64) -2147483648
-2147483648
--9223372036854775808 bor -2147483647
+-9223372036854775808 bor (S32) -2147483647
-2147483647
--9223372036854775808 bor -32768
+-9223372036854775808 bor (S32) -32768
-32768
--9223372036854775808 bor -32767
+-9223372036854775808 bor (S16) -32767
-32767
--9223372036854775808 bor -128
+-9223372036854775808 bor (S16) -128
-128
--9223372036854775808 bor -127
+-9223372036854775808 bor (S8) -127
-127
--9223372036854775808 bor 255
+-9223372036854775808 bor (U8) 255
-9223372036854775553
--9223372036854775808 bor 256
+-9223372036854775808 bor (U16) 256
-9223372036854775552
--9223372036854775808 bor 65535
+-9223372036854775808 bor (U16) 65535
-9223372036854710273
--9223372036854775808 bor 65536
+-9223372036854775808 bor (U32) 65536
-9223372036854710272
--9223372036854775808 bor 4294967295
+-9223372036854775808 bor (U32) 4294967295
-9223372032559808513
--9223372036854775808 bor 4294967296
+-9223372036854775808 bor (U64) 4294967296
-9223372032559808512
--9223372036854775808 bor 18446744073709551615
+-9223372036854775808 bor (U64) 18446744073709551615
-1
-9223372036854775808 bor 18446744073709551616
-9223372036854775808
@@ -118,565 +118,565 @@
-1
-9223372036854775808 bor 340282366920938463463374607431768211456
-9223372036854775808
--9223372036854775807 bor -170141183460469231731687303715884105728
+(S64) -9223372036854775807 bor -170141183460469231731687303715884105728
-9223372036854775807
--9223372036854775807 bor -170141183460469231731687303715884105727
+(S64) -9223372036854775807 bor -170141183460469231731687303715884105727
-9223372036854775807
--9223372036854775807 bor -9223372036854775808
+(S64) -9223372036854775807 bor -9223372036854775808
-9223372036854775807
--9223372036854775807 bor -9223372036854775807
--9223372036854775807
--9223372036854775807 bor -2147483648
--2147483647
--9223372036854775807 bor -2147483647
--2147483647
--9223372036854775807 bor -32768
--32767
--9223372036854775807 bor -32767
--32767
--9223372036854775807 bor -128
--127
--9223372036854775807 bor -127
--127
--9223372036854775807 bor 255
--9223372036854775553
--9223372036854775807 bor 256
--9223372036854775551
--9223372036854775807 bor 65535
--9223372036854710273
--9223372036854775807 bor 65536
--9223372036854710271
--9223372036854775807 bor 4294967295
--9223372032559808513
--9223372036854775807 bor 4294967296
+(S64) -9223372036854775807 bor (S64) -9223372036854775807
+(S64) -9223372036854775807
+(S64) -9223372036854775807 bor (S64) -2147483648
+(S64) -2147483647
+(S64) -9223372036854775807 bor (S32) -2147483647
+(S64) -2147483647
+(S64) -9223372036854775807 bor (S32) -32768
+(S64) -32767
+(S64) -9223372036854775807 bor (S16) -32767
+(S64) -32767
+(S64) -9223372036854775807 bor (S16) -128
+(S64) -127
+(S64) -9223372036854775807 bor (S8) -127
+(S64) -127
+(S64) -9223372036854775807 bor (U8) 255
+(S64) -9223372036854775553
+(S64) -9223372036854775807 bor (U16) 256
+(S64) -9223372036854775551
+(S64) -9223372036854775807 bor (U16) 65535
+(S64) -9223372036854710273
+(S64) -9223372036854775807 bor (U32) 65536
+(S64) -9223372036854710271
+(S64) -9223372036854775807 bor (U32) 4294967295
+(S64) -9223372032559808513
+(S64) -9223372036854775807 bor (U64) 4294967296
-9223372032559808511
--9223372036854775807 bor 18446744073709551615
+(S64) -9223372036854775807 bor (U64) 18446744073709551615
-1
--9223372036854775807 bor 18446744073709551616
+(S64) -9223372036854775807 bor 18446744073709551616
-9223372036854775807
--9223372036854775807 bor 340282366920938463463374607431768211455
+(S64) -9223372036854775807 bor 340282366920938463463374607431768211455
-1
--9223372036854775807 bor 340282366920938463463374607431768211456
+(S64) -9223372036854775807 bor 340282366920938463463374607431768211456
-9223372036854775807
--2147483648 bor -170141183460469231731687303715884105728
+(S64) -2147483648 bor -170141183460469231731687303715884105728
-2147483648
--2147483648 bor -170141183460469231731687303715884105727
+(S64) -2147483648 bor -170141183460469231731687303715884105727
-2147483647
--2147483648 bor -9223372036854775808
+(S64) -2147483648 bor -9223372036854775808
-2147483648
--2147483648 bor -9223372036854775807
--2147483647
--2147483648 bor -2147483648
--2147483648
--2147483648 bor -2147483647
--2147483647
--2147483648 bor -32768
--32768
--2147483648 bor -32767
--32767
--2147483648 bor -128
--128
--2147483648 bor -127
--127
--2147483648 bor 255
--2147483393
--2147483648 bor 256
--2147483392
--2147483648 bor 65535
--2147418113
--2147483648 bor 65536
--2147418112
--2147483648 bor 4294967295
--1
--2147483648 bor 4294967296
+(S64) -2147483648 bor (S64) -9223372036854775807
+(S64) -2147483647
+(S64) -2147483648 bor (S64) -2147483648
+(S64) -2147483648
+(S64) -2147483648 bor (S32) -2147483647
+(S64) -2147483647
+(S64) -2147483648 bor (S32) -32768
+(S64) -32768
+(S64) -2147483648 bor (S16) -32767
+(S64) -32767
+(S64) -2147483648 bor (S16) -128
+(S64) -128
+(S64) -2147483648 bor (S8) -127
+(S64) -127
+(S64) -2147483648 bor (U8) 255
+(S64) -2147483393
+(S64) -2147483648 bor (U16) 256
+(S64) -2147483392
+(S64) -2147483648 bor (U16) 65535
+(S64) -2147418113
+(S64) -2147483648 bor (U32) 65536
+(S64) -2147418112
+(S64) -2147483648 bor (U32) 4294967295
+(S64) -1
+(S64) -2147483648 bor (U64) 4294967296
-2147483648
--2147483648 bor 18446744073709551615
+(S64) -2147483648 bor (U64) 18446744073709551615
-1
--2147483648 bor 18446744073709551616
+(S64) -2147483648 bor 18446744073709551616
-2147483648
--2147483648 bor 340282366920938463463374607431768211455
+(S64) -2147483648 bor 340282366920938463463374607431768211455
-1
--2147483648 bor 340282366920938463463374607431768211456
+(S64) -2147483648 bor 340282366920938463463374607431768211456
-2147483648
--2147483647 bor -170141183460469231731687303715884105728
+(S32) -2147483647 bor -170141183460469231731687303715884105728
-2147483647
--2147483647 bor -170141183460469231731687303715884105727
+(S32) -2147483647 bor -170141183460469231731687303715884105727
-2147483647
--2147483647 bor -9223372036854775808
+(S32) -2147483647 bor -9223372036854775808
-2147483647
--2147483647 bor -9223372036854775807
+(S32) -2147483647 bor (S64) -9223372036854775807
+(S64) -2147483647
+(S32) -2147483647 bor (S64) -2147483648
+(S64) -2147483647
+(S32) -2147483647 bor (S32) -2147483647
+(S32) -2147483647
+(S32) -2147483647 bor (S32) -32768
+(S32) -32767
+(S32) -2147483647 bor (S16) -32767
+(S32) -32767
+(S32) -2147483647 bor (S16) -128
+(S32) -127
+(S32) -2147483647 bor (S8) -127
+(S32) -127
+(S32) -2147483647 bor (U8) 255
+(S32) -2147483393
+(S32) -2147483647 bor (U16) 256
+(S32) -2147483391
+(S32) -2147483647 bor (U16) 65535
+(S32) -2147418113
+(S32) -2147483647 bor (U32) 65536
+(S64) -2147418111
+(S32) -2147483647 bor (U32) 4294967295
+(S64) -1
+(S32) -2147483647 bor (U64) 4294967296
-2147483647
--2147483647 bor -2147483648
--2147483647
--2147483647 bor -2147483647
--2147483647
--2147483647 bor -32768
--32767
--2147483647 bor -32767
--32767
--2147483647 bor -128
--127
--2147483647 bor -127
--127
--2147483647 bor 255
--2147483393
--2147483647 bor 256
--2147483391
--2147483647 bor 65535
--2147418113
--2147483647 bor 65536
--2147418111
--2147483647 bor 4294967295
--1
--2147483647 bor 4294967296
--2147483647
--2147483647 bor 18446744073709551615
+(S32) -2147483647 bor (U64) 18446744073709551615
-1
--2147483647 bor 18446744073709551616
+(S32) -2147483647 bor 18446744073709551616
-2147483647
--2147483647 bor 340282366920938463463374607431768211455
+(S32) -2147483647 bor 340282366920938463463374607431768211455
-1
--2147483647 bor 340282366920938463463374607431768211456
+(S32) -2147483647 bor 340282366920938463463374607431768211456
-2147483647
--32768 bor -170141183460469231731687303715884105728
+(S32) -32768 bor -170141183460469231731687303715884105728
-32768
--32768 bor -170141183460469231731687303715884105727
+(S32) -32768 bor -170141183460469231731687303715884105727
-32767
--32768 bor -9223372036854775808
+(S32) -32768 bor -9223372036854775808
-32768
--32768 bor -9223372036854775807
--32767
--32768 bor -2147483648
+(S32) -32768 bor (S64) -9223372036854775807
+(S64) -32767
+(S32) -32768 bor (S64) -2147483648
+(S64) -32768
+(S32) -32768 bor (S32) -2147483647
+(S32) -32767
+(S32) -32768 bor (S32) -32768
+(S32) -32768
+(S32) -32768 bor (S16) -32767
+(S32) -32767
+(S32) -32768 bor (S16) -128
+(S32) -128
+(S32) -32768 bor (S8) -127
+(S32) -127
+(S32) -32768 bor (U8) 255
+(S32) -32513
+(S32) -32768 bor (U16) 256
+(S32) -32512
+(S32) -32768 bor (U16) 65535
+(S32) -1
+(S32) -32768 bor (U32) 65536
+(S64) -32768
+(S32) -32768 bor (U32) 4294967295
+(S64) -1
+(S32) -32768 bor (U64) 4294967296
-32768
--32768 bor -2147483647
--32767
--32768 bor -32768
--32768
--32768 bor -32767
--32767
--32768 bor -128
--128
--32768 bor -127
--127
--32768 bor 255
--32513
--32768 bor 256
--32512
--32768 bor 65535
+(S32) -32768 bor (U64) 18446744073709551615
-1
--32768 bor 65536
+(S32) -32768 bor 18446744073709551616
-32768
--32768 bor 4294967295
+(S32) -32768 bor 340282366920938463463374607431768211455
-1
--32768 bor 4294967296
+(S32) -32768 bor 340282366920938463463374607431768211456
-32768
--32768 bor 18446744073709551615
--1
--32768 bor 18446744073709551616
--32768
--32768 bor 340282366920938463463374607431768211455
--1
--32768 bor 340282366920938463463374607431768211456
--32768
--32767 bor -170141183460469231731687303715884105728
--32767
--32767 bor -170141183460469231731687303715884105727
--32767
--32767 bor -9223372036854775808
+(S16) -32767 bor -170141183460469231731687303715884105728
-32767
--32767 bor -9223372036854775807
+(S16) -32767 bor -170141183460469231731687303715884105727
-32767
--32767 bor -2147483648
+(S16) -32767 bor -9223372036854775808
-32767
--32767 bor -2147483647
+(S16) -32767 bor (S64) -9223372036854775807
+(S64) -32767
+(S16) -32767 bor (S64) -2147483648
+(S64) -32767
+(S16) -32767 bor (S32) -2147483647
+(S32) -32767
+(S16) -32767 bor (S32) -32768
+(S32) -32767
+(S16) -32767 bor (S16) -32767
+(S16) -32767
+(S16) -32767 bor (S16) -128
+(S16) -127
+(S16) -32767 bor (S8) -127
+(S16) -127
+(S16) -32767 bor (U8) 255
+(S16) -32513
+(S16) -32767 bor (U16) 256
+(S32) -32511
+(S16) -32767 bor (U16) 65535
+(S32) -1
+(S16) -32767 bor (U32) 65536
+(S64) -32767
+(S16) -32767 bor (U32) 4294967295
+(S64) -1
+(S16) -32767 bor (U64) 4294967296
-32767
--32767 bor -32768
--32767
--32767 bor -32767
--32767
--32767 bor -128
--127
--32767 bor -127
--127
--32767 bor 255
--32513
--32767 bor 256
--32511
--32767 bor 65535
--1
--32767 bor 65536
--32767
--32767 bor 4294967295
+(S16) -32767 bor (U64) 18446744073709551615
-1
--32767 bor 4294967296
+(S16) -32767 bor 18446744073709551616
-32767
--32767 bor 18446744073709551615
+(S16) -32767 bor 340282366920938463463374607431768211455
-1
--32767 bor 18446744073709551616
+(S16) -32767 bor 340282366920938463463374607431768211456
-32767
--32767 bor 340282366920938463463374607431768211455
--1
--32767 bor 340282366920938463463374607431768211456
--32767
--128 bor -170141183460469231731687303715884105728
--128
--128 bor -170141183460469231731687303715884105727
--127
--128 bor -9223372036854775808
--128
--128 bor -9223372036854775807
--127
--128 bor -2147483648
+(S16) -128 bor -170141183460469231731687303715884105728
-128
--128 bor -2147483647
+(S16) -128 bor -170141183460469231731687303715884105727
-127
--128 bor -32768
+(S16) -128 bor -9223372036854775808
-128
--128 bor -32767
--127
--128 bor -128
+(S16) -128 bor (S64) -9223372036854775807
+(S64) -127
+(S16) -128 bor (S64) -2147483648
+(S64) -128
+(S16) -128 bor (S32) -2147483647
+(S32) -127
+(S16) -128 bor (S32) -32768
+(S32) -128
+(S16) -128 bor (S16) -32767
+(S16) -127
+(S16) -128 bor (S16) -128
+(S16) -128
+(S16) -128 bor (S8) -127
+(S16) -127
+(S16) -128 bor (U8) 255
+(S16) -1
+(S16) -128 bor (U16) 256
+(S32) -128
+(S16) -128 bor (U16) 65535
+(S32) -1
+(S16) -128 bor (U32) 65536
+(S64) -128
+(S16) -128 bor (U32) 4294967295
+(S64) -1
+(S16) -128 bor (U64) 4294967296
-128
--128 bor -127
--127
--128 bor 255
+(S16) -128 bor (U64) 18446744073709551615
-1
--128 bor 256
+(S16) -128 bor 18446744073709551616
-128
--128 bor 65535
+(S16) -128 bor 340282366920938463463374607431768211455
-1
--128 bor 65536
+(S16) -128 bor 340282366920938463463374607431768211456
-128
--128 bor 4294967295
--1
--128 bor 4294967296
--128
--128 bor 18446744073709551615
--1
--128 bor 18446744073709551616
--128
--128 bor 340282366920938463463374607431768211455
--1
--128 bor 340282366920938463463374607431768211456
--128
--127 bor -170141183460469231731687303715884105728
--127
--127 bor -170141183460469231731687303715884105727
--127
--127 bor -9223372036854775808
--127
--127 bor -9223372036854775807
--127
--127 bor -2147483648
--127
--127 bor -2147483647
--127
--127 bor -32768
--127
--127 bor -32767
--127
--127 bor -128
--127
--127 bor -127
--127
--127 bor 255
--1
--127 bor 256
--127
--127 bor 65535
--1
--127 bor 65536
--127
--127 bor 4294967295
--1
--127 bor 4294967296
--127
--127 bor 18446744073709551615
--1
--127 bor 18446744073709551616
--127
--127 bor 340282366920938463463374607431768211455
--1
--127 bor 340282366920938463463374607431768211456
--127
-255 bor -170141183460469231731687303715884105728
+(S8) -127 bor -170141183460469231731687303715884105728
+-127
+(S8) -127 bor -170141183460469231731687303715884105727
+-127
+(S8) -127 bor -9223372036854775808
+-127
+(S8) -127 bor (S64) -9223372036854775807
+(S64) -127
+(S8) -127 bor (S64) -2147483648
+(S64) -127
+(S8) -127 bor (S32) -2147483647
+(S32) -127
+(S8) -127 bor (S32) -32768
+(S32) -127
+(S8) -127 bor (S16) -32767
+(S16) -127
+(S8) -127 bor (S16) -128
+(S16) -127
+(S8) -127 bor (S8) -127
+(S8) -127
+(S8) -127 bor (U8) 255
+(S16) -1
+(S8) -127 bor (U16) 256
+(S32) -127
+(S8) -127 bor (U16) 65535
+(S32) -1
+(S8) -127 bor (U32) 65536
+(S64) -127
+(S8) -127 bor (U32) 4294967295
+(S64) -1
+(S8) -127 bor (U64) 4294967296
+-127
+(S8) -127 bor (U64) 18446744073709551615
+-1
+(S8) -127 bor 18446744073709551616
+-127
+(S8) -127 bor 340282366920938463463374607431768211455
+-1
+(S8) -127 bor 340282366920938463463374607431768211456
+-127
+(U8) 255 bor -170141183460469231731687303715884105728
-170141183460469231731687303715884105473
-255 bor -170141183460469231731687303715884105727
+(U8) 255 bor -170141183460469231731687303715884105727
-170141183460469231731687303715884105473
-255 bor -9223372036854775808
+(U8) 255 bor -9223372036854775808
-9223372036854775553
-255 bor -9223372036854775807
--9223372036854775553
-255 bor -2147483648
--2147483393
-255 bor -2147483647
--2147483393
-255 bor -32768
--32513
-255 bor -32767
--32513
-255 bor -128
--1
-255 bor -127
--1
-255 bor 255
-255
-255 bor 256
-511
-255 bor 65535
-65535
-255 bor 65536
-65791
-255 bor 4294967295
-4294967295
-255 bor 4294967296
-4294967551
-255 bor 18446744073709551615
-18446744073709551615
-255 bor 18446744073709551616
+(U8) 255 bor (S64) -9223372036854775807
+(S64) -9223372036854775553
+(U8) 255 bor (S64) -2147483648
+(S64) -2147483393
+(U8) 255 bor (S32) -2147483647
+(S32) -2147483393
+(U8) 255 bor (S32) -32768
+(S32) -32513
+(U8) 255 bor (S16) -32767
+(S16) -32513
+(U8) 255 bor (S16) -128
+(S16) -1
+(U8) 255 bor (S8) -127
+(S16) -1
+(U8) 255 bor (U8) 255
+(U8) 255
+(U8) 255 bor (U16) 256
+(U16) 511
+(U8) 255 bor (U16) 65535
+(U16) 65535
+(U8) 255 bor (U32) 65536
+(U32) 65791
+(U8) 255 bor (U32) 4294967295
+(U32) 4294967295
+(U8) 255 bor (U64) 4294967296
+(U64) 4294967551
+(U8) 255 bor (U64) 18446744073709551615
+(U64) 18446744073709551615
+(U8) 255 bor 18446744073709551616
18446744073709551871
-255 bor 340282366920938463463374607431768211455
+(U8) 255 bor 340282366920938463463374607431768211455
340282366920938463463374607431768211455
-255 bor 340282366920938463463374607431768211456
+(U8) 255 bor 340282366920938463463374607431768211456
340282366920938463463374607431768211711
-256 bor -170141183460469231731687303715884105728
+(U16) 256 bor -170141183460469231731687303715884105728
-170141183460469231731687303715884105472
-256 bor -170141183460469231731687303715884105727
+(U16) 256 bor -170141183460469231731687303715884105727
-170141183460469231731687303715884105471
-256 bor -9223372036854775808
+(U16) 256 bor -9223372036854775808
-9223372036854775552
-256 bor -9223372036854775807
--9223372036854775551
-256 bor -2147483648
--2147483392
-256 bor -2147483647
--2147483391
-256 bor -32768
--32512
-256 bor -32767
--32511
-256 bor -128
--128
-256 bor -127
--127
-256 bor 255
-511
-256 bor 256
-256
-256 bor 65535
-65535
-256 bor 65536
-65792
-256 bor 4294967295
-4294967295
-256 bor 4294967296
-4294967552
-256 bor 18446744073709551615
-18446744073709551615
-256 bor 18446744073709551616
+(U16) 256 bor (S64) -9223372036854775807
+(S64) -9223372036854775551
+(U16) 256 bor (S64) -2147483648
+(S64) -2147483392
+(U16) 256 bor (S32) -2147483647
+(S32) -2147483391
+(U16) 256 bor (S32) -32768
+(S32) -32512
+(U16) 256 bor (S16) -32767
+(S32) -32511
+(U16) 256 bor (S16) -128
+(S32) -128
+(U16) 256 bor (S8) -127
+(S32) -127
+(U16) 256 bor (U8) 255
+(U16) 511
+(U16) 256 bor (U16) 256
+(U16) 256
+(U16) 256 bor (U16) 65535
+(U16) 65535
+(U16) 256 bor (U32) 65536
+(U32) 65792
+(U16) 256 bor (U32) 4294967295
+(U32) 4294967295
+(U16) 256 bor (U64) 4294967296
+(U64) 4294967552
+(U16) 256 bor (U64) 18446744073709551615
+(U64) 18446744073709551615
+(U16) 256 bor 18446744073709551616
18446744073709551872
-256 bor 340282366920938463463374607431768211455
+(U16) 256 bor 340282366920938463463374607431768211455
340282366920938463463374607431768211455
-256 bor 340282366920938463463374607431768211456
+(U16) 256 bor 340282366920938463463374607431768211456
340282366920938463463374607431768211712
-65535 bor -170141183460469231731687303715884105728
+(U16) 65535 bor -170141183460469231731687303715884105728
-170141183460469231731687303715884040193
-65535 bor -170141183460469231731687303715884105727
+(U16) 65535 bor -170141183460469231731687303715884105727
-170141183460469231731687303715884040193
-65535 bor -9223372036854775808
+(U16) 65535 bor -9223372036854775808
-9223372036854710273
-65535 bor -9223372036854775807
--9223372036854710273
-65535 bor -2147483648
--2147418113
-65535 bor -2147483647
--2147418113
-65535 bor -32768
--1
-65535 bor -32767
--1
-65535 bor -128
--1
-65535 bor -127
--1
-65535 bor 255
-65535
-65535 bor 256
-65535
-65535 bor 65535
-65535
-65535 bor 65536
-131071
-65535 bor 4294967295
-4294967295
-65535 bor 4294967296
-4295032831
-65535 bor 18446744073709551615
-18446744073709551615
-65535 bor 18446744073709551616
+(U16) 65535 bor (S64) -9223372036854775807
+(S64) -9223372036854710273
+(U16) 65535 bor (S64) -2147483648
+(S64) -2147418113
+(U16) 65535 bor (S32) -2147483647
+(S32) -2147418113
+(U16) 65535 bor (S32) -32768
+(S32) -1
+(U16) 65535 bor (S16) -32767
+(S32) -1
+(U16) 65535 bor (S16) -128
+(S32) -1
+(U16) 65535 bor (S8) -127
+(S32) -1
+(U16) 65535 bor (U8) 255
+(U16) 65535
+(U16) 65535 bor (U16) 256
+(U16) 65535
+(U16) 65535 bor (U16) 65535
+(U16) 65535
+(U16) 65535 bor (U32) 65536
+(U32) 131071
+(U16) 65535 bor (U32) 4294967295
+(U32) 4294967295
+(U16) 65535 bor (U64) 4294967296
+(U64) 4295032831
+(U16) 65535 bor (U64) 18446744073709551615
+(U64) 18446744073709551615
+(U16) 65535 bor 18446744073709551616
18446744073709617151
-65535 bor 340282366920938463463374607431768211455
+(U16) 65535 bor 340282366920938463463374607431768211455
340282366920938463463374607431768211455
-65535 bor 340282366920938463463374607431768211456
+(U16) 65535 bor 340282366920938463463374607431768211456
340282366920938463463374607431768276991
-65536 bor -170141183460469231731687303715884105728
+(U32) 65536 bor -170141183460469231731687303715884105728
-170141183460469231731687303715884040192
-65536 bor -170141183460469231731687303715884105727
+(U32) 65536 bor -170141183460469231731687303715884105727
-170141183460469231731687303715884040191
-65536 bor -9223372036854775808
+(U32) 65536 bor -9223372036854775808
-9223372036854710272
-65536 bor -9223372036854775807
--9223372036854710271
-65536 bor -2147483648
--2147418112
-65536 bor -2147483647
--2147418111
-65536 bor -32768
--32768
-65536 bor -32767
--32767
-65536 bor -128
--128
-65536 bor -127
--127
-65536 bor 255
-65791
-65536 bor 256
-65792
-65536 bor 65535
-131071
-65536 bor 65536
-65536
-65536 bor 4294967295
-4294967295
-65536 bor 4294967296
-4295032832
-65536 bor 18446744073709551615
-18446744073709551615
-65536 bor 18446744073709551616
+(U32) 65536 bor (S64) -9223372036854775807
+(S64) -9223372036854710271
+(U32) 65536 bor (S64) -2147483648
+(S64) -2147418112
+(U32) 65536 bor (S32) -2147483647
+(S64) -2147418111
+(U32) 65536 bor (S32) -32768
+(S64) -32768
+(U32) 65536 bor (S16) -32767
+(S64) -32767
+(U32) 65536 bor (S16) -128
+(S64) -128
+(U32) 65536 bor (S8) -127
+(S64) -127
+(U32) 65536 bor (U8) 255
+(U32) 65791
+(U32) 65536 bor (U16) 256
+(U32) 65792
+(U32) 65536 bor (U16) 65535
+(U32) 131071
+(U32) 65536 bor (U32) 65536
+(U32) 65536
+(U32) 65536 bor (U32) 4294967295
+(U32) 4294967295
+(U32) 65536 bor (U64) 4294967296
+(U64) 4295032832
+(U32) 65536 bor (U64) 18446744073709551615
+(U64) 18446744073709551615
+(U32) 65536 bor 18446744073709551616
18446744073709617152
-65536 bor 340282366920938463463374607431768211455
+(U32) 65536 bor 340282366920938463463374607431768211455
340282366920938463463374607431768211455
-65536 bor 340282366920938463463374607431768211456
+(U32) 65536 bor 340282366920938463463374607431768211456
340282366920938463463374607431768276992
-4294967295 bor -170141183460469231731687303715884105728
+(U32) 4294967295 bor -170141183460469231731687303715884105728
-170141183460469231731687303711589138433
-4294967295 bor -170141183460469231731687303715884105727
+(U32) 4294967295 bor -170141183460469231731687303715884105727
-170141183460469231731687303711589138433
-4294967295 bor -9223372036854775808
+(U32) 4294967295 bor -9223372036854775808
-9223372032559808513
-4294967295 bor -9223372036854775807
--9223372032559808513
-4294967295 bor -2147483648
--1
-4294967295 bor -2147483647
--1
-4294967295 bor -32768
--1
-4294967295 bor -32767
--1
-4294967295 bor -128
--1
-4294967295 bor -127
--1
-4294967295 bor 255
-4294967295
-4294967295 bor 256
-4294967295
-4294967295 bor 65535
-4294967295
-4294967295 bor 65536
-4294967295
-4294967295 bor 4294967295
-4294967295
-4294967295 bor 4294967296
-8589934591
-4294967295 bor 18446744073709551615
-18446744073709551615
-4294967295 bor 18446744073709551616
+(U32) 4294967295 bor (S64) -9223372036854775807
+(S64) -9223372032559808513
+(U32) 4294967295 bor (S64) -2147483648
+(S64) -1
+(U32) 4294967295 bor (S32) -2147483647
+(S64) -1
+(U32) 4294967295 bor (S32) -32768
+(S64) -1
+(U32) 4294967295 bor (S16) -32767
+(S64) -1
+(U32) 4294967295 bor (S16) -128
+(S64) -1
+(U32) 4294967295 bor (S8) -127
+(S64) -1
+(U32) 4294967295 bor (U8) 255
+(U32) 4294967295
+(U32) 4294967295 bor (U16) 256
+(U32) 4294967295
+(U32) 4294967295 bor (U16) 65535
+(U32) 4294967295
+(U32) 4294967295 bor (U32) 65536
+(U32) 4294967295
+(U32) 4294967295 bor (U32) 4294967295
+(U32) 4294967295
+(U32) 4294967295 bor (U64) 4294967296
+(U64) 8589934591
+(U32) 4294967295 bor (U64) 18446744073709551615
+(U64) 18446744073709551615
+(U32) 4294967295 bor 18446744073709551616
18446744078004518911
-4294967295 bor 340282366920938463463374607431768211455
+(U32) 4294967295 bor 340282366920938463463374607431768211455
340282366920938463463374607431768211455
-4294967295 bor 340282366920938463463374607431768211456
+(U32) 4294967295 bor 340282366920938463463374607431768211456
340282366920938463463374607436063178751
-4294967296 bor -170141183460469231731687303715884105728
+(U64) 4294967296 bor -170141183460469231731687303715884105728
-170141183460469231731687303711589138432
-4294967296 bor -170141183460469231731687303715884105727
+(U64) 4294967296 bor -170141183460469231731687303715884105727
-170141183460469231731687303711589138431
-4294967296 bor -9223372036854775808
+(U64) 4294967296 bor -9223372036854775808
-9223372032559808512
-4294967296 bor -9223372036854775807
+(U64) 4294967296 bor (S64) -9223372036854775807
-9223372032559808511
-4294967296 bor -2147483648
+(U64) 4294967296 bor (S64) -2147483648
-2147483648
-4294967296 bor -2147483647
+(U64) 4294967296 bor (S32) -2147483647
-2147483647
-4294967296 bor -32768
+(U64) 4294967296 bor (S32) -32768
-32768
-4294967296 bor -32767
+(U64) 4294967296 bor (S16) -32767
-32767
-4294967296 bor -128
+(U64) 4294967296 bor (S16) -128
-128
-4294967296 bor -127
+(U64) 4294967296 bor (S8) -127
-127
-4294967296 bor 255
+(U64) 4294967296 bor (U8) 255
4294967551
-4294967296 bor 256
+(U64) 4294967296 bor (U16) 256
4294967552
-4294967296 bor 65535
+(U64) 4294967296 bor (U16) 65535
4295032831
-4294967296 bor 65536
+(U64) 4294967296 bor (U32) 65536
4295032832
-4294967296 bor 4294967295
+(U64) 4294967296 bor (U32) 4294967295
8589934591
-4294967296 bor 4294967296
+(U64) 4294967296 bor (U64) 4294967296
4294967296
-4294967296 bor 18446744073709551615
+(U64) 4294967296 bor (U64) 18446744073709551615
18446744073709551615
-4294967296 bor 18446744073709551616
+(U64) 4294967296 bor 18446744073709551616
18446744078004518912
-4294967296 bor 340282366920938463463374607431768211455
+(U64) 4294967296 bor 340282366920938463463374607431768211455
340282366920938463463374607431768211455
-4294967296 bor 340282366920938463463374607431768211456
+(U64) 4294967296 bor 340282366920938463463374607431768211456
340282366920938463463374607436063178752
-18446744073709551615 bor -170141183460469231731687303715884105728
+(U64) 18446744073709551615 bor -170141183460469231731687303715884105728
-170141183460469231713240559642174554113
-18446744073709551615 bor -170141183460469231731687303715884105727
+(U64) 18446744073709551615 bor -170141183460469231731687303715884105727
-170141183460469231713240559642174554113
-18446744073709551615 bor -9223372036854775808
+(U64) 18446744073709551615 bor -9223372036854775808
-1
-18446744073709551615 bor -9223372036854775807
+(U64) 18446744073709551615 bor (S64) -9223372036854775807
-1
-18446744073709551615 bor -2147483648
+(U64) 18446744073709551615 bor (S64) -2147483648
-1
-18446744073709551615 bor -2147483647
+(U64) 18446744073709551615 bor (S32) -2147483647
-1
-18446744073709551615 bor -32768
+(U64) 18446744073709551615 bor (S32) -32768
-1
-18446744073709551615 bor -32767
+(U64) 18446744073709551615 bor (S16) -32767
-1
-18446744073709551615 bor -128
+(U64) 18446744073709551615 bor (S16) -128
-1
-18446744073709551615 bor -127
+(U64) 18446744073709551615 bor (S8) -127
-1
-18446744073709551615 bor 255
+(U64) 18446744073709551615 bor (U8) 255
18446744073709551615
-18446744073709551615 bor 256
+(U64) 18446744073709551615 bor (U16) 256
18446744073709551615
-18446744073709551615 bor 65535
+(U64) 18446744073709551615 bor (U16) 65535
18446744073709551615
-18446744073709551615 bor 65536
+(U64) 18446744073709551615 bor (U32) 65536
18446744073709551615
-18446744073709551615 bor 4294967295
+(U64) 18446744073709551615 bor (U32) 4294967295
18446744073709551615
-18446744073709551615 bor 4294967296
+(U64) 18446744073709551615 bor (U64) 4294967296
18446744073709551615
-18446744073709551615 bor 18446744073709551615
+(U64) 18446744073709551615 bor (U64) 18446744073709551615
18446744073709551615
-18446744073709551615 bor 18446744073709551616
+(U64) 18446744073709551615 bor 18446744073709551616
36893488147419103231
-18446744073709551615 bor 340282366920938463463374607431768211455
+(U64) 18446744073709551615 bor 340282366920938463463374607431768211455
340282366920938463463374607431768211455
-18446744073709551615 bor 340282366920938463463374607431768211456
+(U64) 18446744073709551615 bor 340282366920938463463374607431768211456
340282366920938463481821351505477763071
18446744073709551616 bor -170141183460469231731687303715884105728
-170141183460469231713240559642174554112
@@ -684,33 +684,33 @@
-170141183460469231713240559642174554111
18446744073709551616 bor -9223372036854775808
-9223372036854775808
-18446744073709551616 bor -9223372036854775807
+18446744073709551616 bor (S64) -9223372036854775807
-9223372036854775807
-18446744073709551616 bor -2147483648
+18446744073709551616 bor (S64) -2147483648
-2147483648
-18446744073709551616 bor -2147483647
+18446744073709551616 bor (S32) -2147483647
-2147483647
-18446744073709551616 bor -32768
+18446744073709551616 bor (S32) -32768
-32768
-18446744073709551616 bor -32767
+18446744073709551616 bor (S16) -32767
-32767
-18446744073709551616 bor -128
+18446744073709551616 bor (S16) -128
-128
-18446744073709551616 bor -127
+18446744073709551616 bor (S8) -127
-127
-18446744073709551616 bor 255
+18446744073709551616 bor (U8) 255
18446744073709551871
-18446744073709551616 bor 256
+18446744073709551616 bor (U16) 256
18446744073709551872
-18446744073709551616 bor 65535
+18446744073709551616 bor (U16) 65535
18446744073709617151
-18446744073709551616 bor 65536
+18446744073709551616 bor (U32) 65536
18446744073709617152
-18446744073709551616 bor 4294967295
+18446744073709551616 bor (U32) 4294967295
18446744078004518911
-18446744073709551616 bor 4294967296
+18446744073709551616 bor (U64) 4294967296
18446744078004518912
-18446744073709551616 bor 18446744073709551615
+18446744073709551616 bor (U64) 18446744073709551615
36893488147419103231
18446744073709551616 bor 18446744073709551616
18446744073709551616
@@ -724,33 +724,33 @@
-1
340282366920938463463374607431768211455 bor -9223372036854775808
-1
-340282366920938463463374607431768211455 bor -9223372036854775807
+340282366920938463463374607431768211455 bor (S64) -9223372036854775807
-1
-340282366920938463463374607431768211455 bor -2147483648
+340282366920938463463374607431768211455 bor (S64) -2147483648
-1
-340282366920938463463374607431768211455 bor -2147483647
+340282366920938463463374607431768211455 bor (S32) -2147483647
-1
-340282366920938463463374607431768211455 bor -32768
+340282366920938463463374607431768211455 bor (S32) -32768
-1
-340282366920938463463374607431768211455 bor -32767
+340282366920938463463374607431768211455 bor (S16) -32767
-1
-340282366920938463463374607431768211455 bor -128
+340282366920938463463374607431768211455 bor (S16) -128
-1
-340282366920938463463374607431768211455 bor -127
+340282366920938463463374607431768211455 bor (S8) -127
-1
-340282366920938463463374607431768211455 bor 255
+340282366920938463463374607431768211455 bor (U8) 255
340282366920938463463374607431768211455
-340282366920938463463374607431768211455 bor 256
+340282366920938463463374607431768211455 bor (U16) 256
340282366920938463463374607431768211455
-340282366920938463463374607431768211455 bor 65535
+340282366920938463463374607431768211455 bor (U16) 65535
340282366920938463463374607431768211455
-340282366920938463463374607431768211455 bor 65536
+340282366920938463463374607431768211455 bor (U32) 65536
340282366920938463463374607431768211455
-340282366920938463463374607431768211455 bor 4294967295
+340282366920938463463374607431768211455 bor (U32) 4294967295
340282366920938463463374607431768211455
-340282366920938463463374607431768211455 bor 4294967296
+340282366920938463463374607431768211455 bor (U64) 4294967296
340282366920938463463374607431768211455
-340282366920938463463374607431768211455 bor 18446744073709551615
+340282366920938463463374607431768211455 bor (U64) 18446744073709551615
340282366920938463463374607431768211455
340282366920938463463374607431768211455 bor 18446744073709551616
340282366920938463463374607431768211455
@@ -764,33 +764,33 @@
-170141183460469231731687303715884105727
340282366920938463463374607431768211456 bor -9223372036854775808
-9223372036854775808
-340282366920938463463374607431768211456 bor -9223372036854775807
+340282366920938463463374607431768211456 bor (S64) -9223372036854775807
-9223372036854775807
-340282366920938463463374607431768211456 bor -2147483648
+340282366920938463463374607431768211456 bor (S64) -2147483648
-2147483648
-340282366920938463463374607431768211456 bor -2147483647
+340282366920938463463374607431768211456 bor (S32) -2147483647
-2147483647
-340282366920938463463374607431768211456 bor -32768
+340282366920938463463374607431768211456 bor (S32) -32768
-32768
-340282366920938463463374607431768211456 bor -32767
+340282366920938463463374607431768211456 bor (S16) -32767
-32767
-340282366920938463463374607431768211456 bor -128
+340282366920938463463374607431768211456 bor (S16) -128
-128
-340282366920938463463374607431768211456 bor -127
+340282366920938463463374607431768211456 bor (S8) -127
-127
-340282366920938463463374607431768211456 bor 255
+340282366920938463463374607431768211456 bor (U8) 255
340282366920938463463374607431768211711
-340282366920938463463374607431768211456 bor 256
+340282366920938463463374607431768211456 bor (U16) 256
340282366920938463463374607431768211712
-340282366920938463463374607431768211456 bor 65535
+340282366920938463463374607431768211456 bor (U16) 65535
340282366920938463463374607431768276991
-340282366920938463463374607431768211456 bor 65536
+340282366920938463463374607431768211456 bor (U32) 65536
340282366920938463463374607431768276992
-340282366920938463463374607431768211456 bor 4294967295
+340282366920938463463374607431768211456 bor (U32) 4294967295
340282366920938463463374607436063178751
-340282366920938463463374607431768211456 bor 4294967296
+340282366920938463463374607431768211456 bor (U64) 4294967296
340282366920938463463374607436063178752
-340282366920938463463374607431768211456 bor 18446744073709551615
+340282366920938463463374607431768211456 bor (U64) 18446744073709551615
340282366920938463481821351505477763071
340282366920938463463374607431768211456 bor 18446744073709551616
340282366920938463481821351505477763072
diff --git a/test/ikc3/integer_bxor.out.expected b/test/ikc3/integer_bxor.out.expected
index 835766b..09a08fb 100644
--- a/test/ikc3/integer_bxor.out.expected
+++ b/test/ikc3/integer_bxor.out.expected
@@ -4,33 +4,33 @@
1
-170141183460469231731687303715884105728 ^ -9223372036854775808
170141183460469231722463931679029329920
--170141183460469231731687303715884105728 ^ -9223372036854775807
+-170141183460469231731687303715884105728 ^ (S64) -9223372036854775807
170141183460469231722463931679029329921
--170141183460469231731687303715884105728 ^ -2147483648
+-170141183460469231731687303715884105728 ^ (S64) -2147483648
170141183460469231731687303713736622080
--170141183460469231731687303715884105728 ^ -2147483647
+-170141183460469231731687303715884105728 ^ (S32) -2147483647
170141183460469231731687303713736622081
--170141183460469231731687303715884105728 ^ -32768
+-170141183460469231731687303715884105728 ^ (S32) -32768
170141183460469231731687303715884072960
--170141183460469231731687303715884105728 ^ -32767
+-170141183460469231731687303715884105728 ^ (S16) -32767
170141183460469231731687303715884072961
--170141183460469231731687303715884105728 ^ -128
+-170141183460469231731687303715884105728 ^ (S16) -128
170141183460469231731687303715884105600
--170141183460469231731687303715884105728 ^ -127
+-170141183460469231731687303715884105728 ^ (S8) -127
170141183460469231731687303715884105601
--170141183460469231731687303715884105728 ^ 255
+-170141183460469231731687303715884105728 ^ (U8) 255
-170141183460469231731687303715884105473
--170141183460469231731687303715884105728 ^ 256
+-170141183460469231731687303715884105728 ^ (U16) 256
-170141183460469231731687303715884105472
--170141183460469231731687303715884105728 ^ 65535
+-170141183460469231731687303715884105728 ^ (U16) 65535
-170141183460469231731687303715884040193
--170141183460469231731687303715884105728 ^ 65536
+-170141183460469231731687303715884105728 ^ (U32) 65536
-170141183460469231731687303715884040192
--170141183460469231731687303715884105728 ^ 4294967295
+-170141183460469231731687303715884105728 ^ (U32) 4294967295
-170141183460469231731687303711589138433
--170141183460469231731687303715884105728 ^ 4294967296
+-170141183460469231731687303715884105728 ^ (U64) 4294967296
-170141183460469231731687303711589138432
--170141183460469231731687303715884105728 ^ 18446744073709551615
+-170141183460469231731687303715884105728 ^ (U64) 18446744073709551615
-170141183460469231713240559642174554113
-170141183460469231731687303715884105728 ^ 18446744073709551616
-170141183460469231713240559642174554112
@@ -44,33 +44,33 @@
0
-170141183460469231731687303715884105727 ^ -9223372036854775808
170141183460469231722463931679029329921
--170141183460469231731687303715884105727 ^ -9223372036854775807
+-170141183460469231731687303715884105727 ^ (S64) -9223372036854775807
170141183460469231722463931679029329920
--170141183460469231731687303715884105727 ^ -2147483648
+-170141183460469231731687303715884105727 ^ (S64) -2147483648
170141183460469231731687303713736622081
--170141183460469231731687303715884105727 ^ -2147483647
+-170141183460469231731687303715884105727 ^ (S32) -2147483647
170141183460469231731687303713736622080
--170141183460469231731687303715884105727 ^ -32768
+-170141183460469231731687303715884105727 ^ (S32) -32768
170141183460469231731687303715884072961
--170141183460469231731687303715884105727 ^ -32767
+-170141183460469231731687303715884105727 ^ (S16) -32767
170141183460469231731687303715884072960
--170141183460469231731687303715884105727 ^ -128
+-170141183460469231731687303715884105727 ^ (S16) -128
170141183460469231731687303715884105601
--170141183460469231731687303715884105727 ^ -127
+-170141183460469231731687303715884105727 ^ (S8) -127
170141183460469231731687303715884105600
--170141183460469231731687303715884105727 ^ 255
+-170141183460469231731687303715884105727 ^ (U8) 255
-170141183460469231731687303715884105474
--170141183460469231731687303715884105727 ^ 256
+-170141183460469231731687303715884105727 ^ (U16) 256
-170141183460469231731687303715884105471
--170141183460469231731687303715884105727 ^ 65535
+-170141183460469231731687303715884105727 ^ (U16) 65535
-170141183460469231731687303715884040194
--170141183460469231731687303715884105727 ^ 65536
+-170141183460469231731687303715884105727 ^ (U32) 65536
-170141183460469231731687303715884040191
--170141183460469231731687303715884105727 ^ 4294967295
+-170141183460469231731687303715884105727 ^ (U32) 4294967295
-170141183460469231731687303711589138434
--170141183460469231731687303715884105727 ^ 4294967296
+-170141183460469231731687303715884105727 ^ (U64) 4294967296
-170141183460469231731687303711589138431
--170141183460469231731687303715884105727 ^ 18446744073709551615
+-170141183460469231731687303715884105727 ^ (U64) 18446744073709551615
-170141183460469231713240559642174554114
-170141183460469231731687303715884105727 ^ 18446744073709551616
-170141183460469231713240559642174554111
@@ -84,33 +84,33 @@
170141183460469231722463931679029329921
-9223372036854775808 ^ -9223372036854775808
0
--9223372036854775808 ^ -9223372036854775807
+-9223372036854775808 ^ (S64) -9223372036854775807
1
--9223372036854775808 ^ -2147483648
+-9223372036854775808 ^ (S64) -2147483648
9223372034707292160
--9223372036854775808 ^ -2147483647
+-9223372036854775808 ^ (S32) -2147483647
9223372034707292161
--9223372036854775808 ^ -32768
+-9223372036854775808 ^ (S32) -32768
9223372036854743040
--9223372036854775808 ^ -32767
+-9223372036854775808 ^ (S16) -32767
9223372036854743041
--9223372036854775808 ^ -128
+-9223372036854775808 ^ (S16) -128
9223372036854775680
--9223372036854775808 ^ -127
+-9223372036854775808 ^ (S8) -127
9223372036854775681
--9223372036854775808 ^ 255
+-9223372036854775808 ^ (U8) 255
-9223372036854775553
--9223372036854775808 ^ 256
+-9223372036854775808 ^ (U16) 256
-9223372036854775552
--9223372036854775808 ^ 65535
+-9223372036854775808 ^ (U16) 65535
-9223372036854710273
--9223372036854775808 ^ 65536
+-9223372036854775808 ^ (U32) 65536
-9223372036854710272
--9223372036854775808 ^ 4294967295
+-9223372036854775808 ^ (U32) 4294967295
-9223372032559808513
--9223372036854775808 ^ 4294967296
+-9223372036854775808 ^ (U64) 4294967296
-9223372032559808512
--9223372036854775808 ^ 18446744073709551615
+-9223372036854775808 ^ (U64) 18446744073709551615
-9223372036854775809
-9223372036854775808 ^ 18446744073709551616
-27670116110564327424
@@ -118,565 +118,565 @@
-340282366920938463454151235394913435649
-9223372036854775808 ^ 340282366920938463463374607431768211456
-340282366920938463472597979468622987264
--9223372036854775807 ^ -170141183460469231731687303715884105728
+(S64) -9223372036854775807 ^ -170141183460469231731687303715884105728
170141183460469231722463931679029329921
--9223372036854775807 ^ -170141183460469231731687303715884105727
+(S64) -9223372036854775807 ^ -170141183460469231731687303715884105727
170141183460469231722463931679029329920
--9223372036854775807 ^ -9223372036854775808
+(S64) -9223372036854775807 ^ -9223372036854775808
1
--9223372036854775807 ^ -9223372036854775807
-0
--9223372036854775807 ^ -2147483648
-9223372034707292161
--9223372036854775807 ^ -2147483647
-9223372034707292160
--9223372036854775807 ^ -32768
-9223372036854743041
--9223372036854775807 ^ -32767
-9223372036854743040
--9223372036854775807 ^ -128
-9223372036854775681
--9223372036854775807 ^ -127
-9223372036854775680
--9223372036854775807 ^ 255
--9223372036854775554
--9223372036854775807 ^ 256
--9223372036854775551
--9223372036854775807 ^ 65535
--9223372036854710274
--9223372036854775807 ^ 65536
--9223372036854710271
--9223372036854775807 ^ 4294967295
--9223372032559808514
--9223372036854775807 ^ 4294967296
+(S64) -9223372036854775807 ^ (S64) -9223372036854775807
+(S64) 0
+(S64) -9223372036854775807 ^ (S64) -2147483648
+(S64) 9223372034707292161
+(S64) -9223372036854775807 ^ (S32) -2147483647
+(S64) 9223372034707292160
+(S64) -9223372036854775807 ^ (S32) -32768
+(S64) 9223372036854743041
+(S64) -9223372036854775807 ^ (S16) -32767
+(S64) 9223372036854743040
+(S64) -9223372036854775807 ^ (S16) -128
+(S64) 9223372036854775681
+(S64) -9223372036854775807 ^ (S8) -127
+(S64) 9223372036854775680
+(S64) -9223372036854775807 ^ (U8) 255
+(S64) -9223372036854775554
+(S64) -9223372036854775807 ^ (U16) 256
+(S64) -9223372036854775551
+(S64) -9223372036854775807 ^ (U16) 65535
+(S64) -9223372036854710274
+(S64) -9223372036854775807 ^ (U32) 65536
+(S64) -9223372036854710271
+(S64) -9223372036854775807 ^ (U32) 4294967295
+(S64) -9223372032559808514
+(S64) -9223372036854775807 ^ (U64) 4294967296
-9223372032559808511
--9223372036854775807 ^ 18446744073709551615
+(S64) -9223372036854775807 ^ (U64) 18446744073709551615
-9223372036854775810
--9223372036854775807 ^ 18446744073709551616
+(S64) -9223372036854775807 ^ 18446744073709551616
-27670116110564327423
--9223372036854775807 ^ 340282366920938463463374607431768211455
+(S64) -9223372036854775807 ^ 340282366920938463463374607431768211455
-340282366920938463454151235394913435650
--9223372036854775807 ^ 340282366920938463463374607431768211456
+(S64) -9223372036854775807 ^ 340282366920938463463374607431768211456
-340282366920938463472597979468622987263
--2147483648 ^ -170141183460469231731687303715884105728
+(S64) -2147483648 ^ -170141183460469231731687303715884105728
170141183460469231731687303713736622080
--2147483648 ^ -170141183460469231731687303715884105727
+(S64) -2147483648 ^ -170141183460469231731687303715884105727
170141183460469231731687303713736622081
--2147483648 ^ -9223372036854775808
+(S64) -2147483648 ^ -9223372036854775808
9223372034707292160
--2147483648 ^ -9223372036854775807
-9223372034707292161
--2147483648 ^ -2147483648
-0
--2147483648 ^ -2147483647
-1
--2147483648 ^ -32768
-2147450880
--2147483648 ^ -32767
-2147450881
--2147483648 ^ -128
-2147483520
--2147483648 ^ -127
-2147483521
--2147483648 ^ 255
--2147483393
--2147483648 ^ 256
--2147483392
--2147483648 ^ 65535
--2147418113
--2147483648 ^ 65536
--2147418112
--2147483648 ^ 4294967295
--2147483649
--2147483648 ^ 4294967296
+(S64) -2147483648 ^ (S64) -9223372036854775807
+(S64) 9223372034707292161
+(S64) -2147483648 ^ (S64) -2147483648
+(S64) 0
+(S64) -2147483648 ^ (S32) -2147483647
+(S64) 1
+(S64) -2147483648 ^ (S32) -32768
+(S64) 2147450880
+(S64) -2147483648 ^ (S16) -32767
+(S64) 2147450881
+(S64) -2147483648 ^ (S16) -128
+(S64) 2147483520
+(S64) -2147483648 ^ (S8) -127
+(S64) 2147483521
+(S64) -2147483648 ^ (U8) 255
+(S64) -2147483393
+(S64) -2147483648 ^ (U16) 256
+(S64) -2147483392
+(S64) -2147483648 ^ (U16) 65535
+(S64) -2147418113
+(S64) -2147483648 ^ (U32) 65536
+(S64) -2147418112
+(S64) -2147483648 ^ (U32) 4294967295
+(S64) -2147483649
+(S64) -2147483648 ^ (U64) 4294967296
-6442450944
--2147483648 ^ 18446744073709551615
+(S64) -2147483648 ^ (U64) 18446744073709551615
-18446744071562067969
--2147483648 ^ 18446744073709551616
+(S64) -2147483648 ^ 18446744073709551616
-18446744075857035264
--2147483648 ^ 340282366920938463463374607431768211455
+(S64) -2147483648 ^ 340282366920938463463374607431768211455
-340282366920938463463374607429620727809
--2147483648 ^ 340282366920938463463374607431768211456
+(S64) -2147483648 ^ 340282366920938463463374607431768211456
-340282366920938463463374607433915695104
--2147483647 ^ -170141183460469231731687303715884105728
+(S32) -2147483647 ^ -170141183460469231731687303715884105728
170141183460469231731687303713736622081
--2147483647 ^ -170141183460469231731687303715884105727
+(S32) -2147483647 ^ -170141183460469231731687303715884105727
170141183460469231731687303713736622080
--2147483647 ^ -9223372036854775808
+(S32) -2147483647 ^ -9223372036854775808
9223372034707292161
--2147483647 ^ -9223372036854775807
-9223372034707292160
--2147483647 ^ -2147483648
-1
--2147483647 ^ -2147483647
-0
--2147483647 ^ -32768
-2147450881
--2147483647 ^ -32767
-2147450880
--2147483647 ^ -128
-2147483521
--2147483647 ^ -127
-2147483520
--2147483647 ^ 255
--2147483394
--2147483647 ^ 256
--2147483391
--2147483647 ^ 65535
--2147418114
--2147483647 ^ 65536
--2147418111
--2147483647 ^ 4294967295
--2147483650
--2147483647 ^ 4294967296
+(S32) -2147483647 ^ (S64) -9223372036854775807
+(S64) 9223372034707292160
+(S32) -2147483647 ^ (S64) -2147483648
+(S64) 1
+(S32) -2147483647 ^ (S32) -2147483647
+(S32) 0
+(S32) -2147483647 ^ (S32) -32768
+(S32) 2147450881
+(S32) -2147483647 ^ (S16) -32767
+(S32) 2147450880
+(S32) -2147483647 ^ (S16) -128
+(S32) 2147483521
+(S32) -2147483647 ^ (S8) -127
+(S32) 2147483520
+(S32) -2147483647 ^ (U8) 255
+(S32) -2147483394
+(S32) -2147483647 ^ (U16) 256
+(S32) -2147483391
+(S32) -2147483647 ^ (U16) 65535
+(S32) -2147418114
+(S32) -2147483647 ^ (U32) 65536
+(S64) -2147418111
+(S32) -2147483647 ^ (U32) 4294967295
+(S64) -2147483650
+(S32) -2147483647 ^ (U64) 4294967296
-6442450943
--2147483647 ^ 18446744073709551615
+(S32) -2147483647 ^ (U64) 18446744073709551615
-18446744071562067970
--2147483647 ^ 18446744073709551616
+(S32) -2147483647 ^ 18446744073709551616
-18446744075857035263
--2147483647 ^ 340282366920938463463374607431768211455
+(S32) -2147483647 ^ 340282366920938463463374607431768211455
-340282366920938463463374607429620727810
--2147483647 ^ 340282366920938463463374607431768211456
+(S32) -2147483647 ^ 340282366920938463463374607431768211456
-340282366920938463463374607433915695103
--32768 ^ -170141183460469231731687303715884105728
+(S32) -32768 ^ -170141183460469231731687303715884105728
170141183460469231731687303715884072960
--32768 ^ -170141183460469231731687303715884105727
+(S32) -32768 ^ -170141183460469231731687303715884105727
170141183460469231731687303715884072961
--32768 ^ -9223372036854775808
+(S32) -32768 ^ -9223372036854775808
9223372036854743040
--32768 ^ -9223372036854775807
-9223372036854743041
--32768 ^ -2147483648
-2147450880
--32768 ^ -2147483647
-2147450881
--32768 ^ -32768
-0
--32768 ^ -32767
-1
--32768 ^ -128
-32640
--32768 ^ -127
-32641
--32768 ^ 255
--32513
--32768 ^ 256
--32512
--32768 ^ 65535
--32769
--32768 ^ 65536
--98304
--32768 ^ 4294967295
--4294934529
--32768 ^ 4294967296
+(S32) -32768 ^ (S64) -9223372036854775807
+(S64) 9223372036854743041
+(S32) -32768 ^ (S64) -2147483648
+(S64) 2147450880
+(S32) -32768 ^ (S32) -2147483647
+(S32) 2147450881
+(S32) -32768 ^ (S32) -32768
+(S32) 0
+(S32) -32768 ^ (S16) -32767
+(S32) 1
+(S32) -32768 ^ (S16) -128
+(S32) 32640
+(S32) -32768 ^ (S8) -127
+(S32) 32641
+(S32) -32768 ^ (U8) 255
+(S32) -32513
+(S32) -32768 ^ (U16) 256
+(S32) -32512
+(S32) -32768 ^ (U16) 65535
+(S32) -32769
+(S32) -32768 ^ (U32) 65536
+(S64) -98304
+(S32) -32768 ^ (U32) 4294967295
+(S64) -4294934529
+(S32) -32768 ^ (U64) 4294967296
-4295000064
--32768 ^ 18446744073709551615
+(S32) -32768 ^ (U64) 18446744073709551615
-18446744073709518849
--32768 ^ 18446744073709551616
+(S32) -32768 ^ 18446744073709551616
-18446744073709584384
--32768 ^ 340282366920938463463374607431768211455
+(S32) -32768 ^ 340282366920938463463374607431768211455
-340282366920938463463374607431768178689
--32768 ^ 340282366920938463463374607431768211456
+(S32) -32768 ^ 340282366920938463463374607431768211456
-340282366920938463463374607431768244224
--32767 ^ -170141183460469231731687303715884105728
+(S16) -32767 ^ -170141183460469231731687303715884105728
170141183460469231731687303715884072961
--32767 ^ -170141183460469231731687303715884105727
+(S16) -32767 ^ -170141183460469231731687303715884105727
170141183460469231731687303715884072960
--32767 ^ -9223372036854775808
+(S16) -32767 ^ -9223372036854775808
9223372036854743041
--32767 ^ -9223372036854775807
-9223372036854743040
--32767 ^ -2147483648
-2147450881
--32767 ^ -2147483647
-2147450880
--32767 ^ -32768
-1
--32767 ^ -32767
-0
--32767 ^ -128
-32641
--32767 ^ -127
-32640
--32767 ^ 255
--32514
--32767 ^ 256
--32511
--32767 ^ 65535
--32770
--32767 ^ 65536
--98303
--32767 ^ 4294967295
--4294934530
--32767 ^ 4294967296
+(S16) -32767 ^ (S64) -9223372036854775807
+(S64) 9223372036854743040
+(S16) -32767 ^ (S64) -2147483648
+(S64) 2147450881
+(S16) -32767 ^ (S32) -2147483647
+(S32) 2147450880
+(S16) -32767 ^ (S32) -32768
+(S32) 1
+(S16) -32767 ^ (S16) -32767
+(S16) 0
+(S16) -32767 ^ (S16) -128
+(S16) 32641
+(S16) -32767 ^ (S8) -127
+(S16) 32640
+(S16) -32767 ^ (U8) 255
+(S16) -32514
+(S16) -32767 ^ (U16) 256
+(S32) -32511
+(S16) -32767 ^ (U16) 65535
+(S32) -32770
+(S16) -32767 ^ (U32) 65536
+(S64) -98303
+(S16) -32767 ^ (U32) 4294967295
+(S64) -4294934530
+(S16) -32767 ^ (U64) 4294967296
-4295000063
--32767 ^ 18446744073709551615
+(S16) -32767 ^ (U64) 18446744073709551615
-18446744073709518850
--32767 ^ 18446744073709551616
+(S16) -32767 ^ 18446744073709551616
-18446744073709584383
--32767 ^ 340282366920938463463374607431768211455
+(S16) -32767 ^ 340282366920938463463374607431768211455
-340282366920938463463374607431768178690
--32767 ^ 340282366920938463463374607431768211456
+(S16) -32767 ^ 340282366920938463463374607431768211456
-340282366920938463463374607431768244223
--128 ^ -170141183460469231731687303715884105728
+(S16) -128 ^ -170141183460469231731687303715884105728
170141183460469231731687303715884105600
--128 ^ -170141183460469231731687303715884105727
+(S16) -128 ^ -170141183460469231731687303715884105727
170141183460469231731687303715884105601
--128 ^ -9223372036854775808
+(S16) -128 ^ -9223372036854775808
9223372036854775680
--128 ^ -9223372036854775807
-9223372036854775681
--128 ^ -2147483648
-2147483520
--128 ^ -2147483647
-2147483521
--128 ^ -32768
-32640
--128 ^ -32767
-32641
--128 ^ -128
-0
--128 ^ -127
-1
--128 ^ 255
--129
--128 ^ 256
--384
--128 ^ 65535
--65409
--128 ^ 65536
--65664
--128 ^ 4294967295
--4294967169
--128 ^ 4294967296
+(S16) -128 ^ (S64) -9223372036854775807
+(S64) 9223372036854775681
+(S16) -128 ^ (S64) -2147483648
+(S64) 2147483520
+(S16) -128 ^ (S32) -2147483647
+(S32) 2147483521
+(S16) -128 ^ (S32) -32768
+(S32) 32640
+(S16) -128 ^ (S16) -32767
+(S16) 32641
+(S16) -128 ^ (S16) -128
+(S16) 0
+(S16) -128 ^ (S8) -127
+(S16) 1
+(S16) -128 ^ (U8) 255
+(S16) -129
+(S16) -128 ^ (U16) 256
+(S32) -384
+(S16) -128 ^ (U16) 65535
+(S32) -65409
+(S16) -128 ^ (U32) 65536
+(S64) -65664
+(S16) -128 ^ (U32) 4294967295
+(S64) -4294967169
+(S16) -128 ^ (U64) 4294967296
-4294967424
--128 ^ 18446744073709551615
+(S16) -128 ^ (U64) 18446744073709551615
-18446744073709551489
--128 ^ 18446744073709551616
+(S16) -128 ^ 18446744073709551616
-18446744073709551744
--128 ^ 340282366920938463463374607431768211455
+(S16) -128 ^ 340282366920938463463374607431768211455
-340282366920938463463374607431768211329
--128 ^ 340282366920938463463374607431768211456
+(S16) -128 ^ 340282366920938463463374607431768211456
-340282366920938463463374607431768211584
--127 ^ -170141183460469231731687303715884105728
+(S8) -127 ^ -170141183460469231731687303715884105728
170141183460469231731687303715884105601
--127 ^ -170141183460469231731687303715884105727
+(S8) -127 ^ -170141183460469231731687303715884105727
170141183460469231731687303715884105600
--127 ^ -9223372036854775808
+(S8) -127 ^ -9223372036854775808
9223372036854775681
--127 ^ -9223372036854775807
-9223372036854775680
--127 ^ -2147483648
-2147483521
--127 ^ -2147483647
-2147483520
--127 ^ -32768
-32641
--127 ^ -32767
-32640
--127 ^ -128
-1
--127 ^ -127
-0
--127 ^ 255
--130
--127 ^ 256
--383
--127 ^ 65535
--65410
--127 ^ 65536
--65663
--127 ^ 4294967295
--4294967170
--127 ^ 4294967296
+(S8) -127 ^ (S64) -9223372036854775807
+(S64) 9223372036854775680
+(S8) -127 ^ (S64) -2147483648
+(S64) 2147483521
+(S8) -127 ^ (S32) -2147483647
+(S32) 2147483520
+(S8) -127 ^ (S32) -32768
+(S32) 32641
+(S8) -127 ^ (S16) -32767
+(S16) 32640
+(S8) -127 ^ (S16) -128
+(S16) 1
+(S8) -127 ^ (S8) -127
+(S8) 0
+(S8) -127 ^ (U8) 255
+(S16) -130
+(S8) -127 ^ (U16) 256
+(S32) -383
+(S8) -127 ^ (U16) 65535
+(S32) -65410
+(S8) -127 ^ (U32) 65536
+(S64) -65663
+(S8) -127 ^ (U32) 4294967295
+(S64) -4294967170
+(S8) -127 ^ (U64) 4294967296
-4294967423
--127 ^ 18446744073709551615
+(S8) -127 ^ (U64) 18446744073709551615
-18446744073709551490
--127 ^ 18446744073709551616
+(S8) -127 ^ 18446744073709551616
-18446744073709551743
--127 ^ 340282366920938463463374607431768211455
+(S8) -127 ^ 340282366920938463463374607431768211455
-340282366920938463463374607431768211330
--127 ^ 340282366920938463463374607431768211456
+(S8) -127 ^ 340282366920938463463374607431768211456
-340282366920938463463374607431768211583
-255 ^ -170141183460469231731687303715884105728
+(U8) 255 ^ -170141183460469231731687303715884105728
-170141183460469231731687303715884105473
-255 ^ -170141183460469231731687303715884105727
+(U8) 255 ^ -170141183460469231731687303715884105727
-170141183460469231731687303715884105474
-255 ^ -9223372036854775808
+(U8) 255 ^ -9223372036854775808
-9223372036854775553
-255 ^ -9223372036854775807
--9223372036854775554
-255 ^ -2147483648
--2147483393
-255 ^ -2147483647
--2147483394
-255 ^ -32768
--32513
-255 ^ -32767
--32514
-255 ^ -128
--129
-255 ^ -127
--130
-255 ^ 255
-0
-255 ^ 256
-511
-255 ^ 65535
-65280
-255 ^ 65536
-65791
-255 ^ 4294967295
-4294967040
-255 ^ 4294967296
-4294967551
-255 ^ 18446744073709551615
-18446744073709551360
-255 ^ 18446744073709551616
+(U8) 255 ^ (S64) -9223372036854775807
+(S64) -9223372036854775554
+(U8) 255 ^ (S64) -2147483648
+(S64) -2147483393
+(U8) 255 ^ (S32) -2147483647
+(S32) -2147483394
+(U8) 255 ^ (S32) -32768
+(S32) -32513
+(U8) 255 ^ (S16) -32767
+(S16) -32514
+(U8) 255 ^ (S16) -128
+(S16) -129
+(U8) 255 ^ (S8) -127
+(S16) -130
+(U8) 255 ^ (U8) 255
+(U8) 0
+(U8) 255 ^ (U16) 256
+(U16) 511
+(U8) 255 ^ (U16) 65535
+(U16) 65280
+(U8) 255 ^ (U32) 65536
+(U32) 65791
+(U8) 255 ^ (U32) 4294967295
+(U32) 4294967040
+(U8) 255 ^ (U64) 4294967296
+(U64) 4294967551
+(U8) 255 ^ (U64) 18446744073709551615
+(U64) 18446744073709551360
+(U8) 255 ^ 18446744073709551616
18446744073709551871
-255 ^ 340282366920938463463374607431768211455
+(U8) 255 ^ 340282366920938463463374607431768211455
340282366920938463463374607431768211200
-255 ^ 340282366920938463463374607431768211456
+(U8) 255 ^ 340282366920938463463374607431768211456
340282366920938463463374607431768211711
-256 ^ -170141183460469231731687303715884105728
+(U16) 256 ^ -170141183460469231731687303715884105728
-170141183460469231731687303715884105472
-256 ^ -170141183460469231731687303715884105727
+(U16) 256 ^ -170141183460469231731687303715884105727
-170141183460469231731687303715884105471
-256 ^ -9223372036854775808
+(U16) 256 ^ -9223372036854775808
-9223372036854775552
-256 ^ -9223372036854775807
--9223372036854775551
-256 ^ -2147483648
--2147483392
-256 ^ -2147483647
--2147483391
-256 ^ -32768
--32512
-256 ^ -32767
--32511
-256 ^ -128
--384
-256 ^ -127
--383
-256 ^ 255
-511
-256 ^ 256
-0
-256 ^ 65535
-65279
-256 ^ 65536
-65792
-256 ^ 4294967295
-4294967039
-256 ^ 4294967296
-4294967552
-256 ^ 18446744073709551615
-18446744073709551359
-256 ^ 18446744073709551616
+(U16) 256 ^ (S64) -9223372036854775807
+(S64) -9223372036854775551
+(U16) 256 ^ (S64) -2147483648
+(S64) -2147483392
+(U16) 256 ^ (S32) -2147483647
+(S32) -2147483391
+(U16) 256 ^ (S32) -32768
+(S32) -32512
+(U16) 256 ^ (S16) -32767
+(S32) -32511
+(U16) 256 ^ (S16) -128
+(S32) -384
+(U16) 256 ^ (S8) -127
+(S32) -383
+(U16) 256 ^ (U8) 255
+(U16) 511
+(U16) 256 ^ (U16) 256
+(U16) 0
+(U16) 256 ^ (U16) 65535
+(U16) 65279
+(U16) 256 ^ (U32) 65536
+(U32) 65792
+(U16) 256 ^ (U32) 4294967295
+(U32) 4294967039
+(U16) 256 ^ (U64) 4294967296
+(U64) 4294967552
+(U16) 256 ^ (U64) 18446744073709551615
+(U64) 18446744073709551359
+(U16) 256 ^ 18446744073709551616
18446744073709551872
-256 ^ 340282366920938463463374607431768211455
+(U16) 256 ^ 340282366920938463463374607431768211455
340282366920938463463374607431768211199
-256 ^ 340282366920938463463374607431768211456
+(U16) 256 ^ 340282366920938463463374607431768211456
340282366920938463463374607431768211712
-65535 ^ -170141183460469231731687303715884105728
+(U16) 65535 ^ -170141183460469231731687303715884105728
-170141183460469231731687303715884040193
-65535 ^ -170141183460469231731687303715884105727
+(U16) 65535 ^ -170141183460469231731687303715884105727
-170141183460469231731687303715884040194
-65535 ^ -9223372036854775808
+(U16) 65535 ^ -9223372036854775808
-9223372036854710273
-65535 ^ -9223372036854775807
--9223372036854710274
-65535 ^ -2147483648
--2147418113
-65535 ^ -2147483647
--2147418114
-65535 ^ -32768
--32769
-65535 ^ -32767
--32770
-65535 ^ -128
--65409
-65535 ^ -127
--65410
-65535 ^ 255
-65280
-65535 ^ 256
-65279
-65535 ^ 65535
-0
-65535 ^ 65536
-131071
-65535 ^ 4294967295
-4294901760
-65535 ^ 4294967296
-4295032831
-65535 ^ 18446744073709551615
-18446744073709486080
-65535 ^ 18446744073709551616
+(U16) 65535 ^ (S64) -9223372036854775807
+(S64) -9223372036854710274
+(U16) 65535 ^ (S64) -2147483648
+(S64) -2147418113
+(U16) 65535 ^ (S32) -2147483647
+(S32) -2147418114
+(U16) 65535 ^ (S32) -32768
+(S32) -32769
+(U16) 65535 ^ (S16) -32767
+(S32) -32770
+(U16) 65535 ^ (S16) -128
+(S32) -65409
+(U16) 65535 ^ (S8) -127
+(S32) -65410
+(U16) 65535 ^ (U8) 255
+(U16) 65280
+(U16) 65535 ^ (U16) 256
+(U16) 65279
+(U16) 65535 ^ (U16) 65535
+(U16) 0
+(U16) 65535 ^ (U32) 65536
+(U32) 131071
+(U16) 65535 ^ (U32) 4294967295
+(U32) 4294901760
+(U16) 65535 ^ (U64) 4294967296
+(U64) 4295032831
+(U16) 65535 ^ (U64) 18446744073709551615
+(U64) 18446744073709486080
+(U16) 65535 ^ 18446744073709551616
18446744073709617151
-65535 ^ 340282366920938463463374607431768211455
+(U16) 65535 ^ 340282366920938463463374607431768211455
340282366920938463463374607431768145920
-65535 ^ 340282366920938463463374607431768211456
+(U16) 65535 ^ 340282366920938463463374607431768211456
340282366920938463463374607431768276991
-65536 ^ -170141183460469231731687303715884105728
+(U32) 65536 ^ -170141183460469231731687303715884105728
-170141183460469231731687303715884040192
-65536 ^ -170141183460469231731687303715884105727
+(U32) 65536 ^ -170141183460469231731687303715884105727
-170141183460469231731687303715884040191
-65536 ^ -9223372036854775808
+(U32) 65536 ^ -9223372036854775808
-9223372036854710272
-65536 ^ -9223372036854775807
--9223372036854710271
-65536 ^ -2147483648
--2147418112
-65536 ^ -2147483647
--2147418111
-65536 ^ -32768
--98304
-65536 ^ -32767
--98303
-65536 ^ -128
--65664
-65536 ^ -127
--65663
-65536 ^ 255
-65791
-65536 ^ 256
-65792
-65536 ^ 65535
-131071
-65536 ^ 65536
-0
-65536 ^ 4294967295
-4294901759
-65536 ^ 4294967296
-4295032832
-65536 ^ 18446744073709551615
-18446744073709486079
-65536 ^ 18446744073709551616
+(U32) 65536 ^ (S64) -9223372036854775807
+(S64) -9223372036854710271
+(U32) 65536 ^ (S64) -2147483648
+(S64) -2147418112
+(U32) 65536 ^ (S32) -2147483647
+(S64) -2147418111
+(U32) 65536 ^ (S32) -32768
+(S64) -98304
+(U32) 65536 ^ (S16) -32767
+(S64) -98303
+(U32) 65536 ^ (S16) -128
+(S64) -65664
+(U32) 65536 ^ (S8) -127
+(S64) -65663
+(U32) 65536 ^ (U8) 255
+(U32) 65791
+(U32) 65536 ^ (U16) 256
+(U32) 65792
+(U32) 65536 ^ (U16) 65535
+(U32) 131071
+(U32) 65536 ^ (U32) 65536
+(U32) 0
+(U32) 65536 ^ (U32) 4294967295
+(U32) 4294901759
+(U32) 65536 ^ (U64) 4294967296
+(U64) 4295032832
+(U32) 65536 ^ (U64) 18446744073709551615
+(U64) 18446744073709486079
+(U32) 65536 ^ 18446744073709551616
18446744073709617152
-65536 ^ 340282366920938463463374607431768211455
+(U32) 65536 ^ 340282366920938463463374607431768211455
340282366920938463463374607431768145919
-65536 ^ 340282366920938463463374607431768211456
+(U32) 65536 ^ 340282366920938463463374607431768211456
340282366920938463463374607431768276992
-4294967295 ^ -170141183460469231731687303715884105728
+(U32) 4294967295 ^ -170141183460469231731687303715884105728
-170141183460469231731687303711589138433
-4294967295 ^ -170141183460469231731687303715884105727
+(U32) 4294967295 ^ -170141183460469231731687303715884105727
-170141183460469231731687303711589138434
-4294967295 ^ -9223372036854775808
+(U32) 4294967295 ^ -9223372036854775808
-9223372032559808513
-4294967295 ^ -9223372036854775807
--9223372032559808514
-4294967295 ^ -2147483648
--2147483649
-4294967295 ^ -2147483647
--2147483650
-4294967295 ^ -32768
--4294934529
-4294967295 ^ -32767
--4294934530
-4294967295 ^ -128
--4294967169
-4294967295 ^ -127
--4294967170
-4294967295 ^ 255
-4294967040
-4294967295 ^ 256
-4294967039
-4294967295 ^ 65535
-4294901760
-4294967295 ^ 65536
-4294901759
-4294967295 ^ 4294967295
-0
-4294967295 ^ 4294967296
-8589934591
-4294967295 ^ 18446744073709551615
-18446744069414584320
-4294967295 ^ 18446744073709551616
+(U32) 4294967295 ^ (S64) -9223372036854775807
+(S64) -9223372032559808514
+(U32) 4294967295 ^ (S64) -2147483648
+(S64) -2147483649
+(U32) 4294967295 ^ (S32) -2147483647
+(S64) -2147483650
+(U32) 4294967295 ^ (S32) -32768
+(S64) -4294934529
+(U32) 4294967295 ^ (S16) -32767
+(S64) -4294934530
+(U32) 4294967295 ^ (S16) -128
+(S64) -4294967169
+(U32) 4294967295 ^ (S8) -127
+(S64) -4294967170
+(U32) 4294967295 ^ (U8) 255
+(U32) 4294967040
+(U32) 4294967295 ^ (U16) 256
+(U32) 4294967039
+(U32) 4294967295 ^ (U16) 65535
+(U32) 4294901760
+(U32) 4294967295 ^ (U32) 65536
+(U32) 4294901759
+(U32) 4294967295 ^ (U32) 4294967295
+(U32) 0
+(U32) 4294967295 ^ (U64) 4294967296
+(U64) 8589934591
+(U32) 4294967295 ^ (U64) 18446744073709551615
+(U64) 18446744069414584320
+(U32) 4294967295 ^ 18446744073709551616
18446744078004518911
-4294967295 ^ 340282366920938463463374607431768211455
+(U32) 4294967295 ^ 340282366920938463463374607431768211455
340282366920938463463374607427473244160
-4294967295 ^ 340282366920938463463374607431768211456
+(U32) 4294967295 ^ 340282366920938463463374607431768211456
340282366920938463463374607436063178751
-4294967296 ^ -170141183460469231731687303715884105728
+(U64) 4294967296 ^ -170141183460469231731687303715884105728
-170141183460469231731687303711589138432
-4294967296 ^ -170141183460469231731687303715884105727
+(U64) 4294967296 ^ -170141183460469231731687303715884105727
-170141183460469231731687303711589138431
-4294967296 ^ -9223372036854775808
+(U64) 4294967296 ^ -9223372036854775808
-9223372032559808512
-4294967296 ^ -9223372036854775807
+(U64) 4294967296 ^ (S64) -9223372036854775807
-9223372032559808511
-4294967296 ^ -2147483648
+(U64) 4294967296 ^ (S64) -2147483648
-6442450944
-4294967296 ^ -2147483647
+(U64) 4294967296 ^ (S32) -2147483647
-6442450943
-4294967296 ^ -32768
+(U64) 4294967296 ^ (S32) -32768
-4295000064
-4294967296 ^ -32767
+(U64) 4294967296 ^ (S16) -32767
-4295000063
-4294967296 ^ -128
+(U64) 4294967296 ^ (S16) -128
-4294967424
-4294967296 ^ -127
+(U64) 4294967296 ^ (S8) -127
-4294967423
-4294967296 ^ 255
+(U64) 4294967296 ^ (U8) 255
4294967551
-4294967296 ^ 256
+(U64) 4294967296 ^ (U16) 256
4294967552
-4294967296 ^ 65535
+(U64) 4294967296 ^ (U16) 65535
4295032831
-4294967296 ^ 65536
+(U64) 4294967296 ^ (U32) 65536
4295032832
-4294967296 ^ 4294967295
+(U64) 4294967296 ^ (U32) 4294967295
8589934591
-4294967296 ^ 4294967296
+(U64) 4294967296 ^ (U64) 4294967296
0
-4294967296 ^ 18446744073709551615
+(U64) 4294967296 ^ (U64) 18446744073709551615
18446744069414584319
-4294967296 ^ 18446744073709551616
+(U64) 4294967296 ^ 18446744073709551616
18446744078004518912
-4294967296 ^ 340282366920938463463374607431768211455
+(U64) 4294967296 ^ 340282366920938463463374607431768211455
340282366920938463463374607427473244159
-4294967296 ^ 340282366920938463463374607431768211456
+(U64) 4294967296 ^ 340282366920938463463374607431768211456
340282366920938463463374607436063178752
-18446744073709551615 ^ -170141183460469231731687303715884105728
+(U64) 18446744073709551615 ^ -170141183460469231731687303715884105728
-170141183460469231713240559642174554113
-18446744073709551615 ^ -170141183460469231731687303715884105727
+(U64) 18446744073709551615 ^ -170141183460469231731687303715884105727
-170141183460469231713240559642174554114
-18446744073709551615 ^ -9223372036854775808
+(U64) 18446744073709551615 ^ -9223372036854775808
-9223372036854775809
-18446744073709551615 ^ -9223372036854775807
+(U64) 18446744073709551615 ^ (S64) -9223372036854775807
-9223372036854775810
-18446744073709551615 ^ -2147483648
+(U64) 18446744073709551615 ^ (S64) -2147483648
-18446744071562067969
-18446744073709551615 ^ -2147483647
+(U64) 18446744073709551615 ^ (S32) -2147483647
-18446744071562067970
-18446744073709551615 ^ -32768
+(U64) 18446744073709551615 ^ (S32) -32768
-18446744073709518849
-18446744073709551615 ^ -32767
+(U64) 18446744073709551615 ^ (S16) -32767
-18446744073709518850
-18446744073709551615 ^ -128
+(U64) 18446744073709551615 ^ (S16) -128
-18446744073709551489
-18446744073709551615 ^ -127
+(U64) 18446744073709551615 ^ (S8) -127
-18446744073709551490
-18446744073709551615 ^ 255
+(U64) 18446744073709551615 ^ (U8) 255
18446744073709551360
-18446744073709551615 ^ 256
+(U64) 18446744073709551615 ^ (U16) 256
18446744073709551359
-18446744073709551615 ^ 65535
+(U64) 18446744073709551615 ^ (U16) 65535
18446744073709486080
-18446744073709551615 ^ 65536
+(U64) 18446744073709551615 ^ (U32) 65536
18446744073709486079
-18446744073709551615 ^ 4294967295
+(U64) 18446744073709551615 ^ (U32) 4294967295
18446744069414584320
-18446744073709551615 ^ 4294967296
+(U64) 18446744073709551615 ^ (U64) 4294967296
18446744069414584319
-18446744073709551615 ^ 18446744073709551615
+(U64) 18446744073709551615 ^ (U64) 18446744073709551615
0
-18446744073709551615 ^ 18446744073709551616
+(U64) 18446744073709551615 ^ 18446744073709551616
36893488147419103231
-18446744073709551615 ^ 340282366920938463463374607431768211455
+(U64) 18446744073709551615 ^ 340282366920938463463374607431768211455
340282366920938463444927863358058659840
-18446744073709551615 ^ 340282366920938463463374607431768211456
+(U64) 18446744073709551615 ^ 340282366920938463463374607431768211456
340282366920938463481821351505477763071
18446744073709551616 ^ -170141183460469231731687303715884105728
-170141183460469231713240559642174554112
@@ -684,33 +684,33 @@
-170141183460469231713240559642174554111
18446744073709551616 ^ -9223372036854775808
-27670116110564327424
-18446744073709551616 ^ -9223372036854775807
+18446744073709551616 ^ (S64) -9223372036854775807
-27670116110564327423
-18446744073709551616 ^ -2147483648
+18446744073709551616 ^ (S64) -2147483648
-18446744075857035264
-18446744073709551616 ^ -2147483647
+18446744073709551616 ^ (S32) -2147483647
-18446744075857035263
-18446744073709551616 ^ -32768
+18446744073709551616 ^ (S32) -32768
-18446744073709584384
-18446744073709551616 ^ -32767
+18446744073709551616 ^ (S16) -32767
-18446744073709584383
-18446744073709551616 ^ -128
+18446744073709551616 ^ (S16) -128
-18446744073709551744
-18446744073709551616 ^ -127
+18446744073709551616 ^ (S8) -127
-18446744073709551743
-18446744073709551616 ^ 255
+18446744073709551616 ^ (U8) 255
18446744073709551871
-18446744073709551616 ^ 256
+18446744073709551616 ^ (U16) 256
18446744073709551872
-18446744073709551616 ^ 65535
+18446744073709551616 ^ (U16) 65535
18446744073709617151
-18446744073709551616 ^ 65536
+18446744073709551616 ^ (U32) 65536
18446744073709617152
-18446744073709551616 ^ 4294967295
+18446744073709551616 ^ (U32) 4294967295
18446744078004518911
-18446744073709551616 ^ 4294967296
+18446744073709551616 ^ (U64) 4294967296
18446744078004518912
-18446744073709551616 ^ 18446744073709551615
+18446744073709551616 ^ (U64) 18446744073709551615
36893488147419103231
18446744073709551616 ^ 18446744073709551616
0
@@ -724,33 +724,33 @@
-170141183460469231731687303715884105730
340282366920938463463374607431768211455 ^ -9223372036854775808
-340282366920938463454151235394913435649
-340282366920938463463374607431768211455 ^ -9223372036854775807
+340282366920938463463374607431768211455 ^ (S64) -9223372036854775807
-340282366920938463454151235394913435650
-340282366920938463463374607431768211455 ^ -2147483648
+340282366920938463463374607431768211455 ^ (S64) -2147483648
-340282366920938463463374607429620727809
-340282366920938463463374607431768211455 ^ -2147483647
+340282366920938463463374607431768211455 ^ (S32) -2147483647
-340282366920938463463374607429620727810
-340282366920938463463374607431768211455 ^ -32768
+340282366920938463463374607431768211455 ^ (S32) -32768
-340282366920938463463374607431768178689
-340282366920938463463374607431768211455 ^ -32767
+340282366920938463463374607431768211455 ^ (S16) -32767
-340282366920938463463374607431768178690
-340282366920938463463374607431768211455 ^ -128
+340282366920938463463374607431768211455 ^ (S16) -128
-340282366920938463463374607431768211329
-340282366920938463463374607431768211455 ^ -127
+340282366920938463463374607431768211455 ^ (S8) -127
-340282366920938463463374607431768211330
-340282366920938463463374607431768211455 ^ 255
+340282366920938463463374607431768211455 ^ (U8) 255
340282366920938463463374607431768211200
-340282366920938463463374607431768211455 ^ 256
+340282366920938463463374607431768211455 ^ (U16) 256
340282366920938463463374607431768211199
-340282366920938463463374607431768211455 ^ 65535
+340282366920938463463374607431768211455 ^ (U16) 65535
340282366920938463463374607431768145920
-340282366920938463463374607431768211455 ^ 65536
+340282366920938463463374607431768211455 ^ (U32) 65536
340282366920938463463374607431768145919
-340282366920938463463374607431768211455 ^ 4294967295
+340282366920938463463374607431768211455 ^ (U32) 4294967295
340282366920938463463374607427473244160
-340282366920938463463374607431768211455 ^ 4294967296
+340282366920938463463374607431768211455 ^ (U64) 4294967296
340282366920938463463374607427473244159
-340282366920938463463374607431768211455 ^ 18446744073709551615
+340282366920938463463374607431768211455 ^ (U64) 18446744073709551615
340282366920938463444927863358058659840
340282366920938463463374607431768211455 ^ 18446744073709551616
340282366920938463444927863358058659839
@@ -764,33 +764,33 @@
-510423550381407695195061911147652317183
340282366920938463463374607431768211456 ^ -9223372036854775808
-340282366920938463472597979468622987264
-340282366920938463463374607431768211456 ^ -9223372036854775807
+340282366920938463463374607431768211456 ^ (S64) -9223372036854775807
-340282366920938463472597979468622987263
-340282366920938463463374607431768211456 ^ -2147483648
+340282366920938463463374607431768211456 ^ (S64) -2147483648
-340282366920938463463374607433915695104
-340282366920938463463374607431768211456 ^ -2147483647
+340282366920938463463374607431768211456 ^ (S32) -2147483647
-340282366920938463463374607433915695103
-340282366920938463463374607431768211456 ^ -32768
+340282366920938463463374607431768211456 ^ (S32) -32768
-340282366920938463463374607431768244224
-340282366920938463463374607431768211456 ^ -32767
+340282366920938463463374607431768211456 ^ (S16) -32767
-340282366920938463463374607431768244223
-340282366920938463463374607431768211456 ^ -128
+340282366920938463463374607431768211456 ^ (S16) -128
-340282366920938463463374607431768211584
-340282366920938463463374607431768211456 ^ -127
+340282366920938463463374607431768211456 ^ (S8) -127
-340282366920938463463374607431768211583
-340282366920938463463374607431768211456 ^ 255
+340282366920938463463374607431768211456 ^ (U8) 255
340282366920938463463374607431768211711
-340282366920938463463374607431768211456 ^ 256
+340282366920938463463374607431768211456 ^ (U16) 256
340282366920938463463374607431768211712
-340282366920938463463374607431768211456 ^ 65535
+340282366920938463463374607431768211456 ^ (U16) 65535
340282366920938463463374607431768276991
-340282366920938463463374607431768211456 ^ 65536
+340282366920938463463374607431768211456 ^ (U32) 65536
340282366920938463463374607431768276992
-340282366920938463463374607431768211456 ^ 4294967295
+340282366920938463463374607431768211456 ^ (U32) 4294967295
340282366920938463463374607436063178751
-340282366920938463463374607431768211456 ^ 4294967296
+340282366920938463463374607431768211456 ^ (U64) 4294967296
340282366920938463463374607436063178752
-340282366920938463463374607431768211456 ^ 18446744073709551615
+340282366920938463463374607431768211456 ^ (U64) 18446744073709551615
340282366920938463481821351505477763071
340282366920938463463374607431768211456 ^ 18446744073709551616
340282366920938463481821351505477763072
diff --git a/test/ikc3/integer_div.out.expected b/test/ikc3/integer_div.out.expected
index 02be5ec..09eac3e 100644
--- a/test/ikc3/integer_div.out.expected
+++ b/test/ikc3/integer_div.out.expected
@@ -4,33 +4,33 @@
1
-170141183460469231731687303715884105728 / -9223372036854775808
18446744073709551616
--170141183460469231731687303715884105728 / -9223372036854775807
+-170141183460469231731687303715884105728 / (S64) -9223372036854775807
18446744073709551618
--170141183460469231731687303715884105728 / -2147483648
+-170141183460469231731687303715884105728 / (S64) -2147483648
79228162514264337593543950336
--170141183460469231731687303715884105728 / -2147483647
+-170141183460469231731687303715884105728 / (S32) -2147483647
79228162551157825758142922760
--170141183460469231731687303715884105728 / -32768
+-170141183460469231731687303715884105728 / (S32) -32768
5192296858534827628530496329220096
--170141183460469231731687303715884105728 / -32767
+-170141183460469231731687303715884105728 / (S16) -32767
5192455319695707014120526862876800
--170141183460469231731687303715884105728 / -128
+-170141183460469231731687303715884105728 / (S16) -128
1329227995784915872903807060280344576
--170141183460469231731687303715884105728 / -127
+-170141183460469231731687303715884105728 / (S8) -127
1339694357956450643556592942644756738
--170141183460469231731687303715884105728 / 255
+-170141183460469231731687303715884105728 / (U8) 255
-667220327295957771496812955748565120
--170141183460469231731687303715884105728 / 256
+-170141183460469231731687303715884105728 / (U16) 256
-664613997892457936451903530140172288
--170141183460469231731687303715884105728 / 65535
+-170141183460469231731687303715884105728 / (U16) 65535
-2596188043953143079754136014585856
--170141183460469231731687303715884105728 / 65536
+-170141183460469231731687303715884105728 / (U32) 65536
-2596148429267413814265248164610048
--170141183460469231731687303715884105728 / 4294967295
+-170141183460469231731687303715884105728 / (U32) 4294967295
-39614081266355540835774234624
--170141183460469231731687303715884105728 / 4294967296
+-170141183460469231731687303715884105728 / (U64) 4294967296
-39614081257132168796771975168
--170141183460469231731687303715884105728 / 18446744073709551615
+-170141183460469231731687303715884105728 / (U64) 18446744073709551615
-9223372036854775808
-170141183460469231731687303715884105728 / 18446744073709551616
-9223372036854775808
@@ -44,33 +44,33 @@
1
-170141183460469231731687303715884105727 / -9223372036854775808
18446744073709551615
--170141183460469231731687303715884105727 / -9223372036854775807
+-170141183460469231731687303715884105727 / (S64) -9223372036854775807
18446744073709551618
--170141183460469231731687303715884105727 / -2147483648
+-170141183460469231731687303715884105727 / (S64) -2147483648
79228162514264337593543950335
--170141183460469231731687303715884105727 / -2147483647
+-170141183460469231731687303715884105727 / (S32) -2147483647
79228162551157825758142922760
--170141183460469231731687303715884105727 / -32768
+-170141183460469231731687303715884105727 / (S32) -32768
5192296858534827628530496329220095
--170141183460469231731687303715884105727 / -32767
+-170141183460469231731687303715884105727 / (S16) -32767
5192455319695707014120526862876800
--170141183460469231731687303715884105727 / -128
+-170141183460469231731687303715884105727 / (S16) -128
1329227995784915872903807060280344575
--170141183460469231731687303715884105727 / -127
+-170141183460469231731687303715884105727 / (S8) -127
1339694357956450643556592942644756738
--170141183460469231731687303715884105727 / 255
+-170141183460469231731687303715884105727 / (U8) 255
-667220327295957771496812955748565120
--170141183460469231731687303715884105727 / 256
+-170141183460469231731687303715884105727 / (U16) 256
-664613997892457936451903530140172287
--170141183460469231731687303715884105727 / 65535
+-170141183460469231731687303715884105727 / (U16) 65535
-2596188043953143079754136014585856
--170141183460469231731687303715884105727 / 65536
+-170141183460469231731687303715884105727 / (U32) 65536
-2596148429267413814265248164610047
--170141183460469231731687303715884105727 / 4294967295
+-170141183460469231731687303715884105727 / (U32) 4294967295
-39614081266355540835774234624
--170141183460469231731687303715884105727 / 4294967296
+-170141183460469231731687303715884105727 / (U64) 4294967296
-39614081257132168796771975167
--170141183460469231731687303715884105727 / 18446744073709551615
+-170141183460469231731687303715884105727 / (U64) 18446744073709551615
-9223372036854775808
-170141183460469231731687303715884105727 / 18446744073709551616
-9223372036854775807
@@ -84,33 +84,33 @@
0
-9223372036854775808 / -9223372036854775808
1
--9223372036854775808 / -9223372036854775807
+-9223372036854775808 / (S64) -9223372036854775807
1
--9223372036854775808 / -2147483648
+-9223372036854775808 / (S64) -2147483648
4294967296
--9223372036854775808 / -2147483647
+-9223372036854775808 / (S32) -2147483647
4294967298
--9223372036854775808 / -32768
+-9223372036854775808 / (S32) -32768
281474976710656
--9223372036854775808 / -32767
+-9223372036854775808 / (S16) -32767
281483566907400
--9223372036854775808 / -128
+-9223372036854775808 / (S16) -128
72057594037927936
--9223372036854775808 / -127
+-9223372036854775808 / (S8) -127
72624976668147841
--9223372036854775808 / 255
+-9223372036854775808 / (U8) 255
-36170086419038336
--9223372036854775808 / 256
+-9223372036854775808 / (U16) 256
-36028797018963968
--9223372036854775808 / 65535
+-9223372036854775808 / (U16) 65535
-140739635871744
--9223372036854775808 / 65536
+-9223372036854775808 / (U32) 65536
-140737488355328
--9223372036854775808 / 4294967295
+-9223372036854775808 / (U32) 4294967295
-2147483648
--9223372036854775808 / 4294967296
+-9223372036854775808 / (U64) 4294967296
-2147483648
--9223372036854775808 / 18446744073709551615
+-9223372036854775808 / (U64) 18446744073709551615
0
-9223372036854775808 / 18446744073709551616
0
@@ -118,565 +118,565 @@
0
-9223372036854775808 / 340282366920938463463374607431768211456
0
--9223372036854775807 / -170141183460469231731687303715884105728
-0
--9223372036854775807 / -170141183460469231731687303715884105727
-0
--9223372036854775807 / -9223372036854775808
-0
--9223372036854775807 / -9223372036854775807
-1
--9223372036854775807 / -2147483648
-4294967295
--9223372036854775807 / -2147483647
-4294967298
--9223372036854775807 / -32768
-281474976710655
--9223372036854775807 / -32767
-281483566907400
--9223372036854775807 / -128
-72057594037927935
--9223372036854775807 / -127
-72624976668147841
--9223372036854775807 / 255
--36170086419038336
--9223372036854775807 / 256
--36028797018963967
--9223372036854775807 / 65535
--140739635871744
--9223372036854775807 / 65536
--140737488355327
--9223372036854775807 / 4294967295
--2147483648
--9223372036854775807 / 4294967296
--2147483647
--9223372036854775807 / 18446744073709551615
-0
--9223372036854775807 / 18446744073709551616
-0
--9223372036854775807 / 340282366920938463463374607431768211455
-0
--9223372036854775807 / 340282366920938463463374607431768211456
-0
--2147483648 / -170141183460469231731687303715884105728
-0
--2147483648 / -170141183460469231731687303715884105727
-0
--2147483648 / -9223372036854775808
-0
--2147483648 / -9223372036854775807
-0
--2147483648 / -2147483648
-1
--2147483648 / -2147483647
-1
--2147483648 / -32768
-65536
--2147483648 / -32767
-65538
--2147483648 / -128
-16777216
--2147483648 / -127
-16909320
--2147483648 / 255
--8421504
--2147483648 / 256
--8388608
--2147483648 / 65535
--32768
--2147483648 / 65536
--32768
--2147483648 / 4294967295
-0
--2147483648 / 4294967296
-0
--2147483648 / 18446744073709551615
-0
--2147483648 / 18446744073709551616
-0
--2147483648 / 340282366920938463463374607431768211455
-0
--2147483648 / 340282366920938463463374607431768211456
-0
--2147483647 / -170141183460469231731687303715884105728
-0
--2147483647 / -170141183460469231731687303715884105727
-0
--2147483647 / -9223372036854775808
-0
--2147483647 / -9223372036854775807
-0
--2147483647 / -2147483648
-0
--2147483647 / -2147483647
-1
--2147483647 / -32768
-65535
--2147483647 / -32767
-65538
--2147483647 / -128
-16777215
--2147483647 / -127
-16909320
--2147483647 / 255
--8421504
--2147483647 / 256
--8388607
--2147483647 / 65535
--32768
--2147483647 / 65536
--32767
--2147483647 / 4294967295
-0
--2147483647 / 4294967296
-0
--2147483647 / 18446744073709551615
-0
--2147483647 / 18446744073709551616
-0
--2147483647 / 340282366920938463463374607431768211455
-0
--2147483647 / 340282366920938463463374607431768211456
-0
--32768 / -170141183460469231731687303715884105728
-0
--32768 / -170141183460469231731687303715884105727
-0
--32768 / -9223372036854775808
-0
--32768 / -9223372036854775807
-0
--32768 / -2147483648
-0
--32768 / -2147483647
-0
--32768 / -32768
-1
--32768 / -32767
-1
--32768 / -128
-256
--32768 / -127
-258
--32768 / 255
--128
--32768 / 256
--128
--32768 / 65535
-0
--32768 / 65536
-0
--32768 / 4294967295
-0
--32768 / 4294967296
-0
--32768 / 18446744073709551615
-0
--32768 / 18446744073709551616
-0
--32768 / 340282366920938463463374607431768211455
-0
--32768 / 340282366920938463463374607431768211456
-0
--32767 / -170141183460469231731687303715884105728
-0
--32767 / -170141183460469231731687303715884105727
-0
--32767 / -9223372036854775808
-0
--32767 / -9223372036854775807
-0
--32767 / -2147483648
-0
--32767 / -2147483647
-0
--32767 / -32768
-0
--32767 / -32767
-1
--32767 / -128
-255
--32767 / -127
-258
--32767 / 255
--128
--32767 / 256
--127
--32767 / 65535
-0
--32767 / 65536
-0
--32767 / 4294967295
-0
--32767 / 4294967296
-0
--32767 / 18446744073709551615
-0
--32767 / 18446744073709551616
-0
--32767 / 340282366920938463463374607431768211455
-0
--32767 / 340282366920938463463374607431768211456
-0
--128 / -170141183460469231731687303715884105728
-0
--128 / -170141183460469231731687303715884105727
-0
--128 / -9223372036854775808
-0
--128 / -9223372036854775807
-0
--128 / -2147483648
-0
--128 / -2147483647
-0
--128 / -32768
-0
--128 / -32767
-0
--128 / -128
-1
--128 / -127
-1
--128 / 255
-0
--128 / 256
-0
--128 / 65535
-0
--128 / 65536
-0
--128 / 4294967295
-0
--128 / 4294967296
-0
--128 / 18446744073709551615
-0
--128 / 18446744073709551616
-0
--128 / 340282366920938463463374607431768211455
-0
--128 / 340282366920938463463374607431768211456
-0
--127 / -170141183460469231731687303715884105728
-0
--127 / -170141183460469231731687303715884105727
-0
--127 / -9223372036854775808
-0
--127 / -9223372036854775807
-0
--127 / -2147483648
-0
--127 / -2147483647
-0
--127 / -32768
-0
--127 / -32767
-0
--127 / -128
-0
--127 / -127
-1
--127 / 255
-0
--127 / 256
-0
--127 / 65535
-0
--127 / 65536
-0
--127 / 4294967295
-0
--127 / 4294967296
-0
--127 / 18446744073709551615
-0
--127 / 18446744073709551616
-0
--127 / 340282366920938463463374607431768211455
-0
--127 / 340282366920938463463374607431768211456
-0
-255 / -170141183460469231731687303715884105728
-0
-255 / -170141183460469231731687303715884105727
-0
-255 / -9223372036854775808
-0
-255 / -9223372036854775807
-0
-255 / -2147483648
-0
-255 / -2147483647
-0
-255 / -32768
-0
-255 / -32767
-0
-255 / -128
--1
-255 / -127
--2
-255 / 255
-1
-255 / 256
-0
-255 / 65535
-0
-255 / 65536
-0
-255 / 4294967295
-0
-255 / 4294967296
-0
-255 / 18446744073709551615
-0
-255 / 18446744073709551616
-0
-255 / 340282366920938463463374607431768211455
-0
-255 / 340282366920938463463374607431768211456
-0
-256 / -170141183460469231731687303715884105728
-0
-256 / -170141183460469231731687303715884105727
-0
-256 / -9223372036854775808
-0
-256 / -9223372036854775807
-0
-256 / -2147483648
-0
-256 / -2147483647
-0
-256 / -32768
-0
-256 / -32767
-0
-256 / -128
--2
-256 / -127
--2
-256 / 255
-1
-256 / 256
-1
-256 / 65535
-0
-256 / 65536
-0
-256 / 4294967295
-0
-256 / 4294967296
-0
-256 / 18446744073709551615
-0
-256 / 18446744073709551616
-0
-256 / 340282366920938463463374607431768211455
-0
-256 / 340282366920938463463374607431768211456
-0
-65535 / -170141183460469231731687303715884105728
-0
-65535 / -170141183460469231731687303715884105727
-0
-65535 / -9223372036854775808
-0
-65535 / -9223372036854775807
-0
-65535 / -2147483648
-0
-65535 / -2147483647
-0
-65535 / -32768
+(S64) -9223372036854775807 / -170141183460469231731687303715884105728
+0
+(S64) -9223372036854775807 / -170141183460469231731687303715884105727
+0
+(S64) -9223372036854775807 / -9223372036854775808
+0
+(S64) -9223372036854775807 / (S64) -9223372036854775807
+(S64) 1
+(S64) -9223372036854775807 / (S64) -2147483648
+(S64) 4294967295
+(S64) -9223372036854775807 / (S32) -2147483647
+(S64) 4294967298
+(S64) -9223372036854775807 / (S32) -32768
+(S64) 281474976710655
+(S64) -9223372036854775807 / (S16) -32767
+(S64) 281483566907400
+(S64) -9223372036854775807 / (S16) -128
+(S64) 72057594037927935
+(S64) -9223372036854775807 / (S8) -127
+(S64) 72624976668147841
+(S64) -9223372036854775807 / (U8) 255
+(S64) -36170086419038336
+(S64) -9223372036854775807 / (U16) 256
+(S64) -36028797018963967
+(S64) -9223372036854775807 / (U16) 65535
+(S64) -140739635871744
+(S64) -9223372036854775807 / (U32) 65536
+(S64) -140737488355327
+(S64) -9223372036854775807 / (U32) 4294967295
+(S64) -2147483648
+(S64) -9223372036854775807 / (U64) 4294967296
+(S64) -2147483647
+(S64) -9223372036854775807 / (U64) 18446744073709551615
+(S64) 0
+(S64) -9223372036854775807 / 18446744073709551616
+0
+(S64) -9223372036854775807 / 340282366920938463463374607431768211455
+0
+(S64) -9223372036854775807 / 340282366920938463463374607431768211456
+0
+(S64) -2147483648 / -170141183460469231731687303715884105728
+0
+(S64) -2147483648 / -170141183460469231731687303715884105727
+0
+(S64) -2147483648 / -9223372036854775808
+0
+(S64) -2147483648 / (S64) -9223372036854775807
+(S64) 0
+(S64) -2147483648 / (S64) -2147483648
+(S64) 1
+(S64) -2147483648 / (S32) -2147483647
+(S64) 1
+(S64) -2147483648 / (S32) -32768
+(S64) 65536
+(S64) -2147483648 / (S16) -32767
+(S64) 65538
+(S64) -2147483648 / (S16) -128
+(S64) 16777216
+(S64) -2147483648 / (S8) -127
+(S64) 16909320
+(S64) -2147483648 / (U8) 255
+(S64) -8421504
+(S64) -2147483648 / (U16) 256
+(S64) -8388608
+(S64) -2147483648 / (U16) 65535
+(S64) -32768
+(S64) -2147483648 / (U32) 65536
+(S64) -32768
+(S64) -2147483648 / (U32) 4294967295
+(S64) 0
+(S64) -2147483648 / (U64) 4294967296
+(S64) 0
+(S64) -2147483648 / (U64) 18446744073709551615
+(S64) 0
+(S64) -2147483648 / 18446744073709551616
+0
+(S64) -2147483648 / 340282366920938463463374607431768211455
+0
+(S64) -2147483648 / 340282366920938463463374607431768211456
+0
+(S32) -2147483647 / -170141183460469231731687303715884105728
+0
+(S32) -2147483647 / -170141183460469231731687303715884105727
+0
+(S32) -2147483647 / -9223372036854775808
+0
+(S32) -2147483647 / (S64) -9223372036854775807
+(S32) 0
+(S32) -2147483647 / (S64) -2147483648
+(S32) 0
+(S32) -2147483647 / (S32) -2147483647
+(S32) 1
+(S32) -2147483647 / (S32) -32768
+(S32) 65535
+(S32) -2147483647 / (S16) -32767
+(S32) 65538
+(S32) -2147483647 / (S16) -128
+(S32) 16777215
+(S32) -2147483647 / (S8) -127
+(S32) 16909320
+(S32) -2147483647 / (U8) 255
+(S32) -8421504
+(S32) -2147483647 / (U16) 256
+(S32) -8388607
+(S32) -2147483647 / (U16) 65535
+(S32) -32768
+(S32) -2147483647 / (U32) 65536
+(S32) -32767
+(S32) -2147483647 / (U32) 4294967295
+(S32) 0
+(S32) -2147483647 / (U64) 4294967296
+(S32) 0
+(S32) -2147483647 / (U64) 18446744073709551615
+(S32) 0
+(S32) -2147483647 / 18446744073709551616
+0
+(S32) -2147483647 / 340282366920938463463374607431768211455
+0
+(S32) -2147483647 / 340282366920938463463374607431768211456
+0
+(S32) -32768 / -170141183460469231731687303715884105728
+0
+(S32) -32768 / -170141183460469231731687303715884105727
+0
+(S32) -32768 / -9223372036854775808
+0
+(S32) -32768 / (S64) -9223372036854775807
+(S32) 0
+(S32) -32768 / (S64) -2147483648
+(S32) 0
+(S32) -32768 / (S32) -2147483647
+(S32) 0
+(S32) -32768 / (S32) -32768
+(S32) 1
+(S32) -32768 / (S16) -32767
+(S32) 1
+(S32) -32768 / (S16) -128
+(S32) 256
+(S32) -32768 / (S8) -127
+(S32) 258
+(S32) -32768 / (U8) 255
+(S32) -128
+(S32) -32768 / (U16) 256
+(S32) -128
+(S32) -32768 / (U16) 65535
+(S32) 0
+(S32) -32768 / (U32) 65536
+(S32) 0
+(S32) -32768 / (U32) 4294967295
+(S32) 0
+(S32) -32768 / (U64) 4294967296
+(S32) 0
+(S32) -32768 / (U64) 18446744073709551615
+(S32) 0
+(S32) -32768 / 18446744073709551616
+0
+(S32) -32768 / 340282366920938463463374607431768211455
+0
+(S32) -32768 / 340282366920938463463374607431768211456
+0
+(S16) -32767 / -170141183460469231731687303715884105728
+0
+(S16) -32767 / -170141183460469231731687303715884105727
+0
+(S16) -32767 / -9223372036854775808
+0
+(S16) -32767 / (S64) -9223372036854775807
+(S16) 0
+(S16) -32767 / (S64) -2147483648
+(S16) 0
+(S16) -32767 / (S32) -2147483647
+(S16) 0
+(S16) -32767 / (S32) -32768
+(S16) 0
+(S16) -32767 / (S16) -32767
+(S16) 1
+(S16) -32767 / (S16) -128
+(S16) 255
+(S16) -32767 / (S8) -127
+(S16) 258
+(S16) -32767 / (U8) 255
+(S16) -128
+(S16) -32767 / (U16) 256
+(S16) -127
+(S16) -32767 / (U16) 65535
+(S16) 0
+(S16) -32767 / (U32) 65536
+(S16) 0
+(S16) -32767 / (U32) 4294967295
+(S16) 0
+(S16) -32767 / (U64) 4294967296
+(S16) 0
+(S16) -32767 / (U64) 18446744073709551615
+(S16) 0
+(S16) -32767 / 18446744073709551616
+0
+(S16) -32767 / 340282366920938463463374607431768211455
+0
+(S16) -32767 / 340282366920938463463374607431768211456
+0
+(S16) -128 / -170141183460469231731687303715884105728
+0
+(S16) -128 / -170141183460469231731687303715884105727
+0
+(S16) -128 / -9223372036854775808
+0
+(S16) -128 / (S64) -9223372036854775807
+(S16) 0
+(S16) -128 / (S64) -2147483648
+(S16) 0
+(S16) -128 / (S32) -2147483647
+(S16) 0
+(S16) -128 / (S32) -32768
+(S16) 0
+(S16) -128 / (S16) -32767
+(S16) 0
+(S16) -128 / (S16) -128
+(S16) 1
+(S16) -128 / (S8) -127
+(S16) 1
+(S16) -128 / (U8) 255
+(S16) 0
+(S16) -128 / (U16) 256
+(S16) 0
+(S16) -128 / (U16) 65535
+(S16) 0
+(S16) -128 / (U32) 65536
+(S16) 0
+(S16) -128 / (U32) 4294967295
+(S16) 0
+(S16) -128 / (U64) 4294967296
+(S16) 0
+(S16) -128 / (U64) 18446744073709551615
+(S16) 0
+(S16) -128 / 18446744073709551616
+0
+(S16) -128 / 340282366920938463463374607431768211455
+0
+(S16) -128 / 340282366920938463463374607431768211456
+0
+(S8) -127 / -170141183460469231731687303715884105728
+0
+(S8) -127 / -170141183460469231731687303715884105727
+0
+(S8) -127 / -9223372036854775808
+0
+(S8) -127 / (S64) -9223372036854775807
+(S8) 0
+(S8) -127 / (S64) -2147483648
+(S8) 0
+(S8) -127 / (S32) -2147483647
+(S8) 0
+(S8) -127 / (S32) -32768
+(S8) 0
+(S8) -127 / (S16) -32767
+(S8) 0
+(S8) -127 / (S16) -128
+(S8) 0
+(S8) -127 / (S8) -127
+(S8) 1
+(S8) -127 / (U8) 255
+(S8) 0
+(S8) -127 / (U16) 256
+(S8) 0
+(S8) -127 / (U16) 65535
+(S8) 0
+(S8) -127 / (U32) 65536
+(S8) 0
+(S8) -127 / (U32) 4294967295
+(S8) 0
+(S8) -127 / (U64) 4294967296
+(S8) 0
+(S8) -127 / (U64) 18446744073709551615
+(S8) 0
+(S8) -127 / 18446744073709551616
+0
+(S8) -127 / 340282366920938463463374607431768211455
+0
+(S8) -127 / 340282366920938463463374607431768211456
+0
+(U8) 255 / -170141183460469231731687303715884105728
+0
+(U8) 255 / -170141183460469231731687303715884105727
+0
+(U8) 255 / -9223372036854775808
+0
+(U8) 255 / (S64) -9223372036854775807
+(S16) 0
+(U8) 255 / (S64) -2147483648
+(S16) 0
+(U8) 255 / (S32) -2147483647
+(S16) 0
+(U8) 255 / (S32) -32768
+(S16) 0
+(U8) 255 / (S16) -32767
+(S16) 0
+(U8) 255 / (S16) -128
+(S16) -1
+(U8) 255 / (S8) -127
+(S16) -2
+(U8) 255 / (U8) 255
+(U8) 1
+(U8) 255 / (U16) 256
+(U16) 0
+(U8) 255 / (U16) 65535
+(U16) 0
+(U8) 255 / (U32) 65536
+(U32) 0
+(U8) 255 / (U32) 4294967295
+(U32) 0
+(U8) 255 / (U64) 4294967296
+(U64) 0
+(U8) 255 / (U64) 18446744073709551615
+(U64) 0
+(U8) 255 / 18446744073709551616
+0
+(U8) 255 / 340282366920938463463374607431768211455
+0
+(U8) 255 / 340282366920938463463374607431768211456
+0
+(U16) 256 / -170141183460469231731687303715884105728
+0
+(U16) 256 / -170141183460469231731687303715884105727
+0
+(U16) 256 / -9223372036854775808
+0
+(U16) 256 / (S64) -9223372036854775807
+(S32) 0
+(U16) 256 / (S64) -2147483648
+(S32) 0
+(U16) 256 / (S32) -2147483647
+(S32) 0
+(U16) 256 / (S32) -32768
+(S32) 0
+(U16) 256 / (S16) -32767
+(S32) 0
+(U16) 256 / (S16) -128
+(S32) -2
+(U16) 256 / (S8) -127
+(S32) -2
+(U16) 256 / (U8) 255
+(U16) 1
+(U16) 256 / (U16) 256
+(U16) 1
+(U16) 256 / (U16) 65535
+(U16) 0
+(U16) 256 / (U32) 65536
+(U16) 0
+(U16) 256 / (U32) 4294967295
+(U16) 0
+(U16) 256 / (U64) 4294967296
+(U16) 0
+(U16) 256 / (U64) 18446744073709551615
+(U16) 0
+(U16) 256 / 18446744073709551616
+0
+(U16) 256 / 340282366920938463463374607431768211455
+0
+(U16) 256 / 340282366920938463463374607431768211456
+0
+(U16) 65535 / -170141183460469231731687303715884105728
+0
+(U16) 65535 / -170141183460469231731687303715884105727
+0
+(U16) 65535 / -9223372036854775808
+0
+(U16) 65535 / (S64) -9223372036854775807
+(S32) 0
+(U16) 65535 / (S64) -2147483648
+(S32) 0
+(U16) 65535 / (S32) -2147483647
+(S32) 0
+(U16) 65535 / (S32) -32768
+(S32) -1
+(U16) 65535 / (S16) -32767
+(S32) -2
+(U16) 65535 / (S16) -128
+(S32) -511
+(U16) 65535 / (S8) -127
+(S32) -516
+(U16) 65535 / (U8) 255
+(U16) 257
+(U16) 65535 / (U16) 256
+(U16) 255
+(U16) 65535 / (U16) 65535
+(U16) 1
+(U16) 65535 / (U32) 65536
+(U16) 0
+(U16) 65535 / (U32) 4294967295
+(U16) 0
+(U16) 65535 / (U64) 4294967296
+(U16) 0
+(U16) 65535 / (U64) 18446744073709551615
+(U16) 0
+(U16) 65535 / 18446744073709551616
+0
+(U16) 65535 / 340282366920938463463374607431768211455
+0
+(U16) 65535 / 340282366920938463463374607431768211456
+0
+(U32) 65536 / -170141183460469231731687303715884105728
+0
+(U32) 65536 / -170141183460469231731687303715884105727
+0
+(U32) 65536 / -9223372036854775808
+0
+(U32) 65536 / (S64) -9223372036854775807
+(S64) 0
+(U32) 65536 / (S64) -2147483648
+(S64) 0
+(U32) 65536 / (S32) -2147483647
+(S64) 0
+(U32) 65536 / (S32) -32768
+(S64) -2
+(U32) 65536 / (S16) -32767
+(S64) -2
+(U32) 65536 / (S16) -128
+(S64) -512
+(U32) 65536 / (S8) -127
+(S64) -516
+(U32) 65536 / (U8) 255
+(U32) 257
+(U32) 65536 / (U16) 256
+(U32) 256
+(U32) 65536 / (U16) 65535
+(U32) 1
+(U32) 65536 / (U32) 65536
+(U32) 1
+(U32) 65536 / (U32) 4294967295
+(U32) 0
+(U32) 65536 / (U64) 4294967296
+(U64) 0
+(U32) 65536 / (U64) 18446744073709551615
+(U64) 0
+(U32) 65536 / 18446744073709551616
+0
+(U32) 65536 / 340282366920938463463374607431768211455
+0
+(U32) 65536 / 340282366920938463463374607431768211456
+0
+(U32) 4294967295 / -170141183460469231731687303715884105728
+0
+(U32) 4294967295 / -170141183460469231731687303715884105727
+0
+(U32) 4294967295 / -9223372036854775808
+0
+(U32) 4294967295 / (S64) -9223372036854775807
+(S64) 0
+(U32) 4294967295 / (S64) -2147483648
+(S64) -1
+(U32) 4294967295 / (S32) -2147483647
+(S64) -2
+(U32) 4294967295 / (S32) -32768
+(S64) -131071
+(U32) 4294967295 / (S16) -32767
+(S64) -131076
+(U32) 4294967295 / (S16) -128
+(S64) -33554431
+(U32) 4294967295 / (S8) -127
+(S64) -33818640
+(U32) 4294967295 / (U8) 255
+(U32) 16843009
+(U32) 4294967295 / (U16) 256
+(U32) 16777215
+(U32) 4294967295 / (U16) 65535
+(U32) 65537
+(U32) 4294967295 / (U32) 65536
+(U32) 65535
+(U32) 4294967295 / (U32) 4294967295
+(U32) 1
+(U32) 4294967295 / (U64) 4294967296
+(U64) 0
+(U32) 4294967295 / (U64) 18446744073709551615
+(U64) 0
+(U32) 4294967295 / 18446744073709551616
+0
+(U32) 4294967295 / 340282366920938463463374607431768211455
+0
+(U32) 4294967295 / 340282366920938463463374607431768211456
+0
+(U64) 4294967296 / -170141183460469231731687303715884105728
+0
+(U64) 4294967296 / -170141183460469231731687303715884105727
+0
+(U64) 4294967296 / -9223372036854775808
+0
+(U64) 4294967296 / (S64) -9223372036854775807
+(S64) 0
+(U64) 4294967296 / (S64) -2147483648
+(S64) -2
+(U64) 4294967296 / (S32) -2147483647
+(S64) -2
+(U64) 4294967296 / (S32) -32768
+(S64) -131072
+(U64) 4294967296 / (S16) -32767
+(S64) -131076
+(U64) 4294967296 / (S16) -128
+(S64) -33554432
+(U64) 4294967296 / (S8) -127
+(S64) -33818640
+(U64) 4294967296 / (U8) 255
+(U64) 16843009
+(U64) 4294967296 / (U16) 256
+(U64) 16777216
+(U64) 4294967296 / (U16) 65535
+(U64) 65537
+(U64) 4294967296 / (U32) 65536
+(U64) 65536
+(U64) 4294967296 / (U32) 4294967295
+(U64) 1
+(U64) 4294967296 / (U64) 4294967296
+(U64) 1
+(U64) 4294967296 / (U64) 18446744073709551615
+(U64) 0
+(U64) 4294967296 / 18446744073709551616
+0
+(U64) 4294967296 / 340282366920938463463374607431768211455
+0
+(U64) 4294967296 / 340282366920938463463374607431768211456
+0
+(U64) 18446744073709551615 / -170141183460469231731687303715884105728
+0
+(U64) 18446744073709551615 / -170141183460469231731687303715884105727
+0
+(U64) 18446744073709551615 / -9223372036854775808
-1
-65535 / -32767
+(U64) 18446744073709551615 / (S64) -9223372036854775807
-2
-65535 / -128
--511
-65535 / -127
--516
-65535 / 255
-257
-65535 / 256
-255
-65535 / 65535
-1
-65535 / 65536
-0
-65535 / 4294967295
-0
-65535 / 4294967296
-0
-65535 / 18446744073709551615
-0
-65535 / 18446744073709551616
-0
-65535 / 340282366920938463463374607431768211455
-0
-65535 / 340282366920938463463374607431768211456
-0
-65536 / -170141183460469231731687303715884105728
-0
-65536 / -170141183460469231731687303715884105727
-0
-65536 / -9223372036854775808
-0
-65536 / -9223372036854775807
-0
-65536 / -2147483648
-0
-65536 / -2147483647
-0
-65536 / -32768
--2
-65536 / -32767
--2
-65536 / -128
--512
-65536 / -127
--516
-65536 / 255
-257
-65536 / 256
-256
-65536 / 65535
-1
-65536 / 65536
-1
-65536 / 4294967295
-0
-65536 / 4294967296
-0
-65536 / 18446744073709551615
-0
-65536 / 18446744073709551616
-0
-65536 / 340282366920938463463374607431768211455
-0
-65536 / 340282366920938463463374607431768211456
-0
-4294967295 / -170141183460469231731687303715884105728
-0
-4294967295 / -170141183460469231731687303715884105727
-0
-4294967295 / -9223372036854775808
-0
-4294967295 / -9223372036854775807
-0
-4294967295 / -2147483648
--1
-4294967295 / -2147483647
--2
-4294967295 / -32768
--131071
-4294967295 / -32767
--131076
-4294967295 / -128
--33554431
-4294967295 / -127
--33818640
-4294967295 / 255
-16843009
-4294967295 / 256
-16777215
-4294967295 / 65535
-65537
-4294967295 / 65536
-65535
-4294967295 / 4294967295
-1
-4294967295 / 4294967296
-0
-4294967295 / 18446744073709551615
-0
-4294967295 / 18446744073709551616
-0
-4294967295 / 340282366920938463463374607431768211455
-0
-4294967295 / 340282366920938463463374607431768211456
-0
-4294967296 / -170141183460469231731687303715884105728
-0
-4294967296 / -170141183460469231731687303715884105727
-0
-4294967296 / -9223372036854775808
-0
-4294967296 / -9223372036854775807
-0
-4294967296 / -2147483648
--2
-4294967296 / -2147483647
--2
-4294967296 / -32768
--131072
-4294967296 / -32767
--131076
-4294967296 / -128
--33554432
-4294967296 / -127
--33818640
-4294967296 / 255
-16843009
-4294967296 / 256
-16777216
-4294967296 / 65535
-65537
-4294967296 / 65536
-65536
-4294967296 / 4294967295
-1
-4294967296 / 4294967296
-1
-4294967296 / 18446744073709551615
-0
-4294967296 / 18446744073709551616
-0
-4294967296 / 340282366920938463463374607431768211455
-0
-4294967296 / 340282366920938463463374607431768211456
-0
-18446744073709551615 / -170141183460469231731687303715884105728
-0
-18446744073709551615 / -170141183460469231731687303715884105727
-0
-18446744073709551615 / -9223372036854775808
--1
-18446744073709551615 / -9223372036854775807
--2
-18446744073709551615 / -2147483648
+(U64) 18446744073709551615 / (S64) -2147483648
-8589934591
-18446744073709551615 / -2147483647
+(U64) 18446744073709551615 / (S32) -2147483647
-8589934596
-18446744073709551615 / -32768
+(U64) 18446744073709551615 / (S32) -32768
-562949953421311
-18446744073709551615 / -32767
+(U64) 18446744073709551615 / (S16) -32767
-562967133814800
-18446744073709551615 / -128
+(U64) 18446744073709551615 / (S16) -128
-144115188075855871
-18446744073709551615 / -127
+(U64) 18446744073709551615 / (S8) -127
-145249953336295682
-18446744073709551615 / 255
-72340172838076673
-18446744073709551615 / 256
-72057594037927935
-18446744073709551615 / 65535
-281479271743489
-18446744073709551615 / 65536
-281474976710655
-18446744073709551615 / 4294967295
-4294967297
-18446744073709551615 / 4294967296
-4294967295
-18446744073709551615 / 18446744073709551615
-1
-18446744073709551615 / 18446744073709551616
-0
-18446744073709551615 / 340282366920938463463374607431768211455
-0
-18446744073709551615 / 340282366920938463463374607431768211456
+(U64) 18446744073709551615 / (U8) 255
+(U64) 72340172838076673
+(U64) 18446744073709551615 / (U16) 256
+(U64) 72057594037927935
+(U64) 18446744073709551615 / (U16) 65535
+(U64) 281479271743489
+(U64) 18446744073709551615 / (U32) 65536
+(U64) 281474976710655
+(U64) 18446744073709551615 / (U32) 4294967295
+(U64) 4294967297
+(U64) 18446744073709551615 / (U64) 4294967296
+(U64) 4294967295
+(U64) 18446744073709551615 / (U64) 18446744073709551615
+(U64) 1
+(U64) 18446744073709551615 / 18446744073709551616
+0
+(U64) 18446744073709551615 / 340282366920938463463374607431768211455
+0
+(U64) 18446744073709551615 / 340282366920938463463374607431768211456
0
18446744073709551616 / -170141183460469231731687303715884105728
0
@@ -684,33 +684,33 @@
0
18446744073709551616 / -9223372036854775808
-2
-18446744073709551616 / -9223372036854775807
+18446744073709551616 / (S64) -9223372036854775807
-2
-18446744073709551616 / -2147483648
+18446744073709551616 / (S64) -2147483648
-8589934592
-18446744073709551616 / -2147483647
+18446744073709551616 / (S32) -2147483647
-8589934596
-18446744073709551616 / -32768
+18446744073709551616 / (S32) -32768
-562949953421312
-18446744073709551616 / -32767
+18446744073709551616 / (S16) -32767
-562967133814800
-18446744073709551616 / -128
+18446744073709551616 / (S16) -128
-144115188075855872
-18446744073709551616 / -127
+18446744073709551616 / (S8) -127
-145249953336295682
-18446744073709551616 / 255
+18446744073709551616 / (U8) 255
72340172838076673
-18446744073709551616 / 256
+18446744073709551616 / (U16) 256
72057594037927936
-18446744073709551616 / 65535
+18446744073709551616 / (U16) 65535
281479271743489
-18446744073709551616 / 65536
+18446744073709551616 / (U32) 65536
281474976710656
-18446744073709551616 / 4294967295
+18446744073709551616 / (U32) 4294967295
4294967297
-18446744073709551616 / 4294967296
+18446744073709551616 / (U64) 4294967296
4294967296
-18446744073709551616 / 18446744073709551615
+18446744073709551616 / (U64) 18446744073709551615
1
18446744073709551616 / 18446744073709551616
1
@@ -724,33 +724,33 @@
-2
340282366920938463463374607431768211455 / -9223372036854775808
-36893488147419103231
-340282366920938463463374607431768211455 / -9223372036854775807
+340282366920938463463374607431768211455 / (S64) -9223372036854775807
-36893488147419103236
-340282366920938463463374607431768211455 / -2147483648
+340282366920938463463374607431768211455 / (S64) -2147483648
-158456325028528675187087900671
-340282366920938463463374607431768211455 / -2147483647
+340282366920938463463374607431768211455 / (S32) -2147483647
-158456325102315651516285845520
-340282366920938463463374607431768211455 / -32768
+340282366920938463463374607431768211455 / (S32) -32768
-10384593717069655257060992658440191
-340282366920938463463374607431768211455 / -32767
+340282366920938463463374607431768211455 / (S16) -32767
-10384910639391414028241053725753600
-340282366920938463463374607431768211455 / -128
+340282366920938463463374607431768211455 / (S16) -128
-2658455991569831745807614120560689151
-340282366920938463463374607431768211455 / -127
+340282366920938463463374607431768211455 / (S8) -127
-2679388715912901287113185885289513476
-340282366920938463463374607431768211455 / 255
+340282366920938463463374607431768211455 / (U8) 255
1334440654591915542993625911497130241
-340282366920938463463374607431768211455 / 256
+340282366920938463463374607431768211455 / (U16) 256
1329227995784915872903807060280344575
-340282366920938463463374607431768211455 / 65535
+340282366920938463463374607431768211455 / (U16) 65535
5192376087906286159508272029171713
-340282366920938463463374607431768211455 / 65536
+340282366920938463463374607431768211455 / (U32) 65536
5192296858534827628530496329220095
-340282366920938463463374607431768211455 / 4294967295
+340282366920938463463374607431768211455 / (U32) 4294967295
79228162532711081671548469249
-340282366920938463463374607431768211455 / 4294967296
+340282366920938463463374607431768211455 / (U64) 4294967296
79228162514264337593543950335
-340282366920938463463374607431768211455 / 18446744073709551615
+340282366920938463463374607431768211455 / (U64) 18446744073709551615
18446744073709551617
340282366920938463463374607431768211455 / 18446744073709551616
18446744073709551615
@@ -764,33 +764,33 @@
-2
340282366920938463463374607431768211456 / -9223372036854775808
-36893488147419103232
-340282366920938463463374607431768211456 / -9223372036854775807
+340282366920938463463374607431768211456 / (S64) -9223372036854775807
-36893488147419103236
-340282366920938463463374607431768211456 / -2147483648
+340282366920938463463374607431768211456 / (S64) -2147483648
-158456325028528675187087900672
-340282366920938463463374607431768211456 / -2147483647
+340282366920938463463374607431768211456 / (S32) -2147483647
-158456325102315651516285845520
-340282366920938463463374607431768211456 / -32768
+340282366920938463463374607431768211456 / (S32) -32768
-10384593717069655257060992658440192
-340282366920938463463374607431768211456 / -32767
+340282366920938463463374607431768211456 / (S16) -32767
-10384910639391414028241053725753600
-340282366920938463463374607431768211456 / -128
+340282366920938463463374607431768211456 / (S16) -128
-2658455991569831745807614120560689152
-340282366920938463463374607431768211456 / -127
+340282366920938463463374607431768211456 / (S8) -127
-2679388715912901287113185885289513476
-340282366920938463463374607431768211456 / 255
+340282366920938463463374607431768211456 / (U8) 255
1334440654591915542993625911497130241
-340282366920938463463374607431768211456 / 256
+340282366920938463463374607431768211456 / (U16) 256
1329227995784915872903807060280344576
-340282366920938463463374607431768211456 / 65535
+340282366920938463463374607431768211456 / (U16) 65535
5192376087906286159508272029171713
-340282366920938463463374607431768211456 / 65536
+340282366920938463463374607431768211456 / (U32) 65536
5192296858534827628530496329220096
-340282366920938463463374607431768211456 / 4294967295
+340282366920938463463374607431768211456 / (U32) 4294967295
79228162532711081671548469249
-340282366920938463463374607431768211456 / 4294967296
+340282366920938463463374607431768211456 / (U64) 4294967296
79228162514264337593543950336
-340282366920938463463374607431768211456 / 18446744073709551615
+340282366920938463463374607431768211456 / (U64) 18446744073709551615
18446744073709551617
340282366920938463463374607431768211456 / 18446744073709551616
18446744073709551616
diff --git a/test/ikc3/integer_eq.out.expected b/test/ikc3/integer_eq.out.expected
index 23605cf..fff7f47 100644
--- a/test/ikc3/integer_eq.out.expected
+++ b/test/ikc3/integer_eq.out.expected
@@ -4,33 +4,33 @@ true
false
-170141183460469231731687303715884105728 == -9223372036854775808
false
--170141183460469231731687303715884105728 == -9223372036854775807
+-170141183460469231731687303715884105728 == (S64) -9223372036854775807
false
--170141183460469231731687303715884105728 == -2147483648
+-170141183460469231731687303715884105728 == (S64) -2147483648
false
--170141183460469231731687303715884105728 == -2147483647
+-170141183460469231731687303715884105728 == (S32) -2147483647
false
--170141183460469231731687303715884105728 == -32768
+-170141183460469231731687303715884105728 == (S32) -32768
false
--170141183460469231731687303715884105728 == -32767
+-170141183460469231731687303715884105728 == (S16) -32767
false
--170141183460469231731687303715884105728 == -128
+-170141183460469231731687303715884105728 == (S16) -128
false
--170141183460469231731687303715884105728 == -127
+-170141183460469231731687303715884105728 == (S8) -127
false
--170141183460469231731687303715884105728 == 255
+-170141183460469231731687303715884105728 == (U8) 255
false
--170141183460469231731687303715884105728 == 256
+-170141183460469231731687303715884105728 == (U16) 256
false
--170141183460469231731687303715884105728 == 65535
+-170141183460469231731687303715884105728 == (U16) 65535
false
--170141183460469231731687303715884105728 == 65536
+-170141183460469231731687303715884105728 == (U32) 65536
false
--170141183460469231731687303715884105728 == 4294967295
+-170141183460469231731687303715884105728 == (U32) 4294967295
false
--170141183460469231731687303715884105728 == 4294967296
+-170141183460469231731687303715884105728 == (U64) 4294967296
false
--170141183460469231731687303715884105728 == 18446744073709551615
+-170141183460469231731687303715884105728 == (U64) 18446744073709551615
false
-170141183460469231731687303715884105728 == 18446744073709551616
false
@@ -44,33 +44,33 @@ false
true
-170141183460469231731687303715884105727 == -9223372036854775808
false
--170141183460469231731687303715884105727 == -9223372036854775807
+-170141183460469231731687303715884105727 == (S64) -9223372036854775807
false
--170141183460469231731687303715884105727 == -2147483648
+-170141183460469231731687303715884105727 == (S64) -2147483648
false
--170141183460469231731687303715884105727 == -2147483647
+-170141183460469231731687303715884105727 == (S32) -2147483647
false
--170141183460469231731687303715884105727 == -32768
+-170141183460469231731687303715884105727 == (S32) -32768
false
--170141183460469231731687303715884105727 == -32767
+-170141183460469231731687303715884105727 == (S16) -32767
false
--170141183460469231731687303715884105727 == -128
+-170141183460469231731687303715884105727 == (S16) -128
false
--170141183460469231731687303715884105727 == -127
+-170141183460469231731687303715884105727 == (S8) -127
false
--170141183460469231731687303715884105727 == 255
+-170141183460469231731687303715884105727 == (U8) 255
false
--170141183460469231731687303715884105727 == 256
+-170141183460469231731687303715884105727 == (U16) 256
false
--170141183460469231731687303715884105727 == 65535
+-170141183460469231731687303715884105727 == (U16) 65535
false
--170141183460469231731687303715884105727 == 65536
+-170141183460469231731687303715884105727 == (U32) 65536
false
--170141183460469231731687303715884105727 == 4294967295
+-170141183460469231731687303715884105727 == (U32) 4294967295
false
--170141183460469231731687303715884105727 == 4294967296
+-170141183460469231731687303715884105727 == (U64) 4294967296
false
--170141183460469231731687303715884105727 == 18446744073709551615
+-170141183460469231731687303715884105727 == (U64) 18446744073709551615
false
-170141183460469231731687303715884105727 == 18446744073709551616
false
@@ -84,33 +84,33 @@ false
false
-9223372036854775808 == -9223372036854775808
true
--9223372036854775808 == -9223372036854775807
+-9223372036854775808 == (S64) -9223372036854775807
false
--9223372036854775808 == -2147483648
+-9223372036854775808 == (S64) -2147483648
false
--9223372036854775808 == -2147483647
+-9223372036854775808 == (S32) -2147483647
false
--9223372036854775808 == -32768
+-9223372036854775808 == (S32) -32768
false
--9223372036854775808 == -32767
+-9223372036854775808 == (S16) -32767
false
--9223372036854775808 == -128
+-9223372036854775808 == (S16) -128
false
--9223372036854775808 == -127
+-9223372036854775808 == (S8) -127
false
--9223372036854775808 == 255
+-9223372036854775808 == (U8) 255
false
--9223372036854775808 == 256
+-9223372036854775808 == (U16) 256
false
--9223372036854775808 == 65535
+-9223372036854775808 == (U16) 65535
false
--9223372036854775808 == 65536
+-9223372036854775808 == (U32) 65536
false
--9223372036854775808 == 4294967295
+-9223372036854775808 == (U32) 4294967295
false
--9223372036854775808 == 4294967296
+-9223372036854775808 == (U64) 4294967296
false
--9223372036854775808 == 18446744073709551615
+-9223372036854775808 == (U64) 18446744073709551615
false
-9223372036854775808 == 18446744073709551616
false
@@ -118,565 +118,565 @@ false
false
-9223372036854775808 == 340282366920938463463374607431768211456
false
--9223372036854775807 == -170141183460469231731687303715884105728
+(S64) -9223372036854775807 == -170141183460469231731687303715884105728
false
--9223372036854775807 == -170141183460469231731687303715884105727
+(S64) -9223372036854775807 == -170141183460469231731687303715884105727
false
--9223372036854775807 == -9223372036854775808
+(S64) -9223372036854775807 == -9223372036854775808
false
--9223372036854775807 == -9223372036854775807
+(S64) -9223372036854775807 == (S64) -9223372036854775807
true
--9223372036854775807 == -2147483648
+(S64) -9223372036854775807 == (S64) -2147483648
false
--9223372036854775807 == -2147483647
+(S64) -9223372036854775807 == (S32) -2147483647
false
--9223372036854775807 == -32768
+(S64) -9223372036854775807 == (S32) -32768
false
--9223372036854775807 == -32767
+(S64) -9223372036854775807 == (S16) -32767
false
--9223372036854775807 == -128
+(S64) -9223372036854775807 == (S16) -128
false
--9223372036854775807 == -127
+(S64) -9223372036854775807 == (S8) -127
false
--9223372036854775807 == 255
+(S64) -9223372036854775807 == (U8) 255
false
--9223372036854775807 == 256
+(S64) -9223372036854775807 == (U16) 256
false
--9223372036854775807 == 65535
+(S64) -9223372036854775807 == (U16) 65535
false
--9223372036854775807 == 65536
+(S64) -9223372036854775807 == (U32) 65536
false
--9223372036854775807 == 4294967295
+(S64) -9223372036854775807 == (U32) 4294967295
false
--9223372036854775807 == 4294967296
+(S64) -9223372036854775807 == (U64) 4294967296
false
--9223372036854775807 == 18446744073709551615
+(S64) -9223372036854775807 == (U64) 18446744073709551615
false
--9223372036854775807 == 18446744073709551616
+(S64) -9223372036854775807 == 18446744073709551616
false
--9223372036854775807 == 340282366920938463463374607431768211455
+(S64) -9223372036854775807 == 340282366920938463463374607431768211455
false
--9223372036854775807 == 340282366920938463463374607431768211456
+(S64) -9223372036854775807 == 340282366920938463463374607431768211456
false
--2147483648 == -170141183460469231731687303715884105728
+(S64) -2147483648 == -170141183460469231731687303715884105728
false
--2147483648 == -170141183460469231731687303715884105727
+(S64) -2147483648 == -170141183460469231731687303715884105727
false
--2147483648 == -9223372036854775808
+(S64) -2147483648 == -9223372036854775808
false
--2147483648 == -9223372036854775807
+(S64) -2147483648 == (S64) -9223372036854775807
false
--2147483648 == -2147483648
+(S64) -2147483648 == (S64) -2147483648
true
--2147483648 == -2147483647
+(S64) -2147483648 == (S32) -2147483647
false
--2147483648 == -32768
+(S64) -2147483648 == (S32) -32768
false
--2147483648 == -32767
+(S64) -2147483648 == (S16) -32767
false
--2147483648 == -128
+(S64) -2147483648 == (S16) -128
false
--2147483648 == -127
+(S64) -2147483648 == (S8) -127
false
--2147483648 == 255
+(S64) -2147483648 == (U8) 255
false
--2147483648 == 256
+(S64) -2147483648 == (U16) 256
false
--2147483648 == 65535
+(S64) -2147483648 == (U16) 65535
false
--2147483648 == 65536
+(S64) -2147483648 == (U32) 65536
false
--2147483648 == 4294967295
+(S64) -2147483648 == (U32) 4294967295
false
--2147483648 == 4294967296
+(S64) -2147483648 == (U64) 4294967296
false
--2147483648 == 18446744073709551615
+(S64) -2147483648 == (U64) 18446744073709551615
false
--2147483648 == 18446744073709551616
+(S64) -2147483648 == 18446744073709551616
false
--2147483648 == 340282366920938463463374607431768211455
+(S64) -2147483648 == 340282366920938463463374607431768211455
false
--2147483648 == 340282366920938463463374607431768211456
+(S64) -2147483648 == 340282366920938463463374607431768211456
false
--2147483647 == -170141183460469231731687303715884105728
+(S32) -2147483647 == -170141183460469231731687303715884105728
false
--2147483647 == -170141183460469231731687303715884105727
+(S32) -2147483647 == -170141183460469231731687303715884105727
false
--2147483647 == -9223372036854775808
+(S32) -2147483647 == -9223372036854775808
false
--2147483647 == -9223372036854775807
+(S32) -2147483647 == (S64) -9223372036854775807
false
--2147483647 == -2147483648
+(S32) -2147483647 == (S64) -2147483648
false
--2147483647 == -2147483647
+(S32) -2147483647 == (S32) -2147483647
true
--2147483647 == -32768
+(S32) -2147483647 == (S32) -32768
false
--2147483647 == -32767
+(S32) -2147483647 == (S16) -32767
false
--2147483647 == -128
+(S32) -2147483647 == (S16) -128
false
--2147483647 == -127
+(S32) -2147483647 == (S8) -127
false
--2147483647 == 255
+(S32) -2147483647 == (U8) 255
false
--2147483647 == 256
+(S32) -2147483647 == (U16) 256
false
--2147483647 == 65535
+(S32) -2147483647 == (U16) 65535
false
--2147483647 == 65536
+(S32) -2147483647 == (U32) 65536
false
--2147483647 == 4294967295
+(S32) -2147483647 == (U32) 4294967295
false
--2147483647 == 4294967296
+(S32) -2147483647 == (U64) 4294967296
false
--2147483647 == 18446744073709551615
+(S32) -2147483647 == (U64) 18446744073709551615
false
--2147483647 == 18446744073709551616
+(S32) -2147483647 == 18446744073709551616
false
--2147483647 == 340282366920938463463374607431768211455
+(S32) -2147483647 == 340282366920938463463374607431768211455
false
--2147483647 == 340282366920938463463374607431768211456
+(S32) -2147483647 == 340282366920938463463374607431768211456
false
--32768 == -170141183460469231731687303715884105728
+(S32) -32768 == -170141183460469231731687303715884105728
false
--32768 == -170141183460469231731687303715884105727
+(S32) -32768 == -170141183460469231731687303715884105727
false
--32768 == -9223372036854775808
+(S32) -32768 == -9223372036854775808
false
--32768 == -9223372036854775807
+(S32) -32768 == (S64) -9223372036854775807
false
--32768 == -2147483648
+(S32) -32768 == (S64) -2147483648
false
--32768 == -2147483647
+(S32) -32768 == (S32) -2147483647
false
--32768 == -32768
+(S32) -32768 == (S32) -32768
true
--32768 == -32767
+(S32) -32768 == (S16) -32767
false
--32768 == -128
+(S32) -32768 == (S16) -128
false
--32768 == -127
+(S32) -32768 == (S8) -127
false
--32768 == 255
+(S32) -32768 == (U8) 255
false
--32768 == 256
+(S32) -32768 == (U16) 256
false
--32768 == 65535
+(S32) -32768 == (U16) 65535
false
--32768 == 65536
+(S32) -32768 == (U32) 65536
false
--32768 == 4294967295
+(S32) -32768 == (U32) 4294967295
false
--32768 == 4294967296
+(S32) -32768 == (U64) 4294967296
false
--32768 == 18446744073709551615
+(S32) -32768 == (U64) 18446744073709551615
false
--32768 == 18446744073709551616
+(S32) -32768 == 18446744073709551616
false
--32768 == 340282366920938463463374607431768211455
+(S32) -32768 == 340282366920938463463374607431768211455
false
--32768 == 340282366920938463463374607431768211456
+(S32) -32768 == 340282366920938463463374607431768211456
false
--32767 == -170141183460469231731687303715884105728
+(S16) -32767 == -170141183460469231731687303715884105728
false
--32767 == -170141183460469231731687303715884105727
+(S16) -32767 == -170141183460469231731687303715884105727
false
--32767 == -9223372036854775808
+(S16) -32767 == -9223372036854775808
false
--32767 == -9223372036854775807
+(S16) -32767 == (S64) -9223372036854775807
false
--32767 == -2147483648
+(S16) -32767 == (S64) -2147483648
false
--32767 == -2147483647
+(S16) -32767 == (S32) -2147483647
false
--32767 == -32768
+(S16) -32767 == (S32) -32768
false
--32767 == -32767
+(S16) -32767 == (S16) -32767
true
--32767 == -128
+(S16) -32767 == (S16) -128
false
--32767 == -127
+(S16) -32767 == (S8) -127
false
--32767 == 255
+(S16) -32767 == (U8) 255
false
--32767 == 256
+(S16) -32767 == (U16) 256
false
--32767 == 65535
+(S16) -32767 == (U16) 65535
false
--32767 == 65536
+(S16) -32767 == (U32) 65536
false
--32767 == 4294967295
+(S16) -32767 == (U32) 4294967295
false
--32767 == 4294967296
+(S16) -32767 == (U64) 4294967296
false
--32767 == 18446744073709551615
+(S16) -32767 == (U64) 18446744073709551615
false
--32767 == 18446744073709551616
+(S16) -32767 == 18446744073709551616
false
--32767 == 340282366920938463463374607431768211455
+(S16) -32767 == 340282366920938463463374607431768211455
false
--32767 == 340282366920938463463374607431768211456
+(S16) -32767 == 340282366920938463463374607431768211456
false
--128 == -170141183460469231731687303715884105728
+(S16) -128 == -170141183460469231731687303715884105728
false
--128 == -170141183460469231731687303715884105727
+(S16) -128 == -170141183460469231731687303715884105727
false
--128 == -9223372036854775808
+(S16) -128 == -9223372036854775808
false
--128 == -9223372036854775807
+(S16) -128 == (S64) -9223372036854775807
false
--128 == -2147483648
+(S16) -128 == (S64) -2147483648
false
--128 == -2147483647
+(S16) -128 == (S32) -2147483647
false
--128 == -32768
+(S16) -128 == (S32) -32768
false
--128 == -32767
+(S16) -128 == (S16) -32767
false
--128 == -128
+(S16) -128 == (S16) -128
true
--128 == -127
+(S16) -128 == (S8) -127
false
--128 == 255
+(S16) -128 == (U8) 255
false
--128 == 256
+(S16) -128 == (U16) 256
false
--128 == 65535
+(S16) -128 == (U16) 65535
false
--128 == 65536
+(S16) -128 == (U32) 65536
false
--128 == 4294967295
+(S16) -128 == (U32) 4294967295
false
--128 == 4294967296
+(S16) -128 == (U64) 4294967296
false
--128 == 18446744073709551615
+(S16) -128 == (U64) 18446744073709551615
false
--128 == 18446744073709551616
+(S16) -128 == 18446744073709551616
false
--128 == 340282366920938463463374607431768211455
+(S16) -128 == 340282366920938463463374607431768211455
false
--128 == 340282366920938463463374607431768211456
+(S16) -128 == 340282366920938463463374607431768211456
false
--127 == -170141183460469231731687303715884105728
+(S8) -127 == -170141183460469231731687303715884105728
false
--127 == -170141183460469231731687303715884105727
+(S8) -127 == -170141183460469231731687303715884105727
false
--127 == -9223372036854775808
+(S8) -127 == -9223372036854775808
false
--127 == -9223372036854775807
+(S8) -127 == (S64) -9223372036854775807
false
--127 == -2147483648
+(S8) -127 == (S64) -2147483648
false
--127 == -2147483647
+(S8) -127 == (S32) -2147483647
false
--127 == -32768
+(S8) -127 == (S32) -32768
false
--127 == -32767
+(S8) -127 == (S16) -32767
false
--127 == -128
+(S8) -127 == (S16) -128
false
--127 == -127
+(S8) -127 == (S8) -127
true
--127 == 255
+(S8) -127 == (U8) 255
false
--127 == 256
+(S8) -127 == (U16) 256
false
--127 == 65535
+(S8) -127 == (U16) 65535
false
--127 == 65536
+(S8) -127 == (U32) 65536
false
--127 == 4294967295
+(S8) -127 == (U32) 4294967295
false
--127 == 4294967296
+(S8) -127 == (U64) 4294967296
false
--127 == 18446744073709551615
+(S8) -127 == (U64) 18446744073709551615
false
--127 == 18446744073709551616
+(S8) -127 == 18446744073709551616
false
--127 == 340282366920938463463374607431768211455
+(S8) -127 == 340282366920938463463374607431768211455
false
--127 == 340282366920938463463374607431768211456
+(S8) -127 == 340282366920938463463374607431768211456
false
-255 == -170141183460469231731687303715884105728
+(U8) 255 == -170141183460469231731687303715884105728
false
-255 == -170141183460469231731687303715884105727
+(U8) 255 == -170141183460469231731687303715884105727
false
-255 == -9223372036854775808
+(U8) 255 == -9223372036854775808
false
-255 == -9223372036854775807
+(U8) 255 == (S64) -9223372036854775807
false
-255 == -2147483648
+(U8) 255 == (S64) -2147483648
false
-255 == -2147483647
+(U8) 255 == (S32) -2147483647
false
-255 == -32768
+(U8) 255 == (S32) -32768
false
-255 == -32767
+(U8) 255 == (S16) -32767
false
-255 == -128
+(U8) 255 == (S16) -128
false
-255 == -127
+(U8) 255 == (S8) -127
false
-255 == 255
+(U8) 255 == (U8) 255
true
-255 == 256
+(U8) 255 == (U16) 256
false
-255 == 65535
+(U8) 255 == (U16) 65535
false
-255 == 65536
+(U8) 255 == (U32) 65536
false
-255 == 4294967295
+(U8) 255 == (U32) 4294967295
false
-255 == 4294967296
+(U8) 255 == (U64) 4294967296
false
-255 == 18446744073709551615
+(U8) 255 == (U64) 18446744073709551615
false
-255 == 18446744073709551616
+(U8) 255 == 18446744073709551616
false
-255 == 340282366920938463463374607431768211455
+(U8) 255 == 340282366920938463463374607431768211455
false
-255 == 340282366920938463463374607431768211456
+(U8) 255 == 340282366920938463463374607431768211456
false
-256 == -170141183460469231731687303715884105728
+(U16) 256 == -170141183460469231731687303715884105728
false
-256 == -170141183460469231731687303715884105727
+(U16) 256 == -170141183460469231731687303715884105727
false
-256 == -9223372036854775808
+(U16) 256 == -9223372036854775808
false
-256 == -9223372036854775807
+(U16) 256 == (S64) -9223372036854775807
false
-256 == -2147483648
+(U16) 256 == (S64) -2147483648
false
-256 == -2147483647
+(U16) 256 == (S32) -2147483647
false
-256 == -32768
+(U16) 256 == (S32) -32768
false
-256 == -32767
+(U16) 256 == (S16) -32767
false
-256 == -128
+(U16) 256 == (S16) -128
false
-256 == -127
+(U16) 256 == (S8) -127
false
-256 == 255
+(U16) 256 == (U8) 255
false
-256 == 256
+(U16) 256 == (U16) 256
true
-256 == 65535
+(U16) 256 == (U16) 65535
false
-256 == 65536
+(U16) 256 == (U32) 65536
false
-256 == 4294967295
+(U16) 256 == (U32) 4294967295
false
-256 == 4294967296
+(U16) 256 == (U64) 4294967296
false
-256 == 18446744073709551615
+(U16) 256 == (U64) 18446744073709551615
false
-256 == 18446744073709551616
+(U16) 256 == 18446744073709551616
false
-256 == 340282366920938463463374607431768211455
+(U16) 256 == 340282366920938463463374607431768211455
false
-256 == 340282366920938463463374607431768211456
+(U16) 256 == 340282366920938463463374607431768211456
false
-65535 == -170141183460469231731687303715884105728
+(U16) 65535 == -170141183460469231731687303715884105728
false
-65535 == -170141183460469231731687303715884105727
+(U16) 65535 == -170141183460469231731687303715884105727
false
-65535 == -9223372036854775808
+(U16) 65535 == -9223372036854775808
false
-65535 == -9223372036854775807
+(U16) 65535 == (S64) -9223372036854775807
false
-65535 == -2147483648
+(U16) 65535 == (S64) -2147483648
false
-65535 == -2147483647
+(U16) 65535 == (S32) -2147483647
false
-65535 == -32768
+(U16) 65535 == (S32) -32768
false
-65535 == -32767
+(U16) 65535 == (S16) -32767
false
-65535 == -128
+(U16) 65535 == (S16) -128
false
-65535 == -127
+(U16) 65535 == (S8) -127
false
-65535 == 255
+(U16) 65535 == (U8) 255
false
-65535 == 256
+(U16) 65535 == (U16) 256
false
-65535 == 65535
+(U16) 65535 == (U16) 65535
true
-65535 == 65536
+(U16) 65535 == (U32) 65536
false
-65535 == 4294967295
+(U16) 65535 == (U32) 4294967295
false
-65535 == 4294967296
+(U16) 65535 == (U64) 4294967296
false
-65535 == 18446744073709551615
+(U16) 65535 == (U64) 18446744073709551615
false
-65535 == 18446744073709551616
+(U16) 65535 == 18446744073709551616
false
-65535 == 340282366920938463463374607431768211455
+(U16) 65535 == 340282366920938463463374607431768211455
false
-65535 == 340282366920938463463374607431768211456
+(U16) 65535 == 340282366920938463463374607431768211456
false
-65536 == -170141183460469231731687303715884105728
+(U32) 65536 == -170141183460469231731687303715884105728
false
-65536 == -170141183460469231731687303715884105727
+(U32) 65536 == -170141183460469231731687303715884105727
false
-65536 == -9223372036854775808
+(U32) 65536 == -9223372036854775808
false
-65536 == -9223372036854775807
+(U32) 65536 == (S64) -9223372036854775807
false
-65536 == -2147483648
+(U32) 65536 == (S64) -2147483648
false
-65536 == -2147483647
+(U32) 65536 == (S32) -2147483647
false
-65536 == -32768
+(U32) 65536 == (S32) -32768
false
-65536 == -32767
+(U32) 65536 == (S16) -32767
false
-65536 == -128
+(U32) 65536 == (S16) -128
false
-65536 == -127
+(U32) 65536 == (S8) -127
false
-65536 == 255
+(U32) 65536 == (U8) 255
false
-65536 == 256
+(U32) 65536 == (U16) 256
false
-65536 == 65535
+(U32) 65536 == (U16) 65535
false
-65536 == 65536
+(U32) 65536 == (U32) 65536
true
-65536 == 4294967295
+(U32) 65536 == (U32) 4294967295
false
-65536 == 4294967296
+(U32) 65536 == (U64) 4294967296
false
-65536 == 18446744073709551615
+(U32) 65536 == (U64) 18446744073709551615
false
-65536 == 18446744073709551616
+(U32) 65536 == 18446744073709551616
false
-65536 == 340282366920938463463374607431768211455
+(U32) 65536 == 340282366920938463463374607431768211455
false
-65536 == 340282366920938463463374607431768211456
+(U32) 65536 == 340282366920938463463374607431768211456
false
-4294967295 == -170141183460469231731687303715884105728
+(U32) 4294967295 == -170141183460469231731687303715884105728
false
-4294967295 == -170141183460469231731687303715884105727
+(U32) 4294967295 == -170141183460469231731687303715884105727
false
-4294967295 == -9223372036854775808
+(U32) 4294967295 == -9223372036854775808
false
-4294967295 == -9223372036854775807
+(U32) 4294967295 == (S64) -9223372036854775807
false
-4294967295 == -2147483648
+(U32) 4294967295 == (S64) -2147483648
false
-4294967295 == -2147483647
+(U32) 4294967295 == (S32) -2147483647
false
-4294967295 == -32768
+(U32) 4294967295 == (S32) -32768
false
-4294967295 == -32767
+(U32) 4294967295 == (S16) -32767
false
-4294967295 == -128
+(U32) 4294967295 == (S16) -128
false
-4294967295 == -127
+(U32) 4294967295 == (S8) -127
false
-4294967295 == 255
+(U32) 4294967295 == (U8) 255
false
-4294967295 == 256
+(U32) 4294967295 == (U16) 256
false
-4294967295 == 65535
+(U32) 4294967295 == (U16) 65535
false
-4294967295 == 65536
+(U32) 4294967295 == (U32) 65536
false
-4294967295 == 4294967295
+(U32) 4294967295 == (U32) 4294967295
true
-4294967295 == 4294967296
+(U32) 4294967295 == (U64) 4294967296
false
-4294967295 == 18446744073709551615
+(U32) 4294967295 == (U64) 18446744073709551615
false
-4294967295 == 18446744073709551616
+(U32) 4294967295 == 18446744073709551616
false
-4294967295 == 340282366920938463463374607431768211455
+(U32) 4294967295 == 340282366920938463463374607431768211455
false
-4294967295 == 340282366920938463463374607431768211456
+(U32) 4294967295 == 340282366920938463463374607431768211456
false
-4294967296 == -170141183460469231731687303715884105728
+(U64) 4294967296 == -170141183460469231731687303715884105728
false
-4294967296 == -170141183460469231731687303715884105727
+(U64) 4294967296 == -170141183460469231731687303715884105727
false
-4294967296 == -9223372036854775808
+(U64) 4294967296 == -9223372036854775808
false
-4294967296 == -9223372036854775807
+(U64) 4294967296 == (S64) -9223372036854775807
false
-4294967296 == -2147483648
+(U64) 4294967296 == (S64) -2147483648
false
-4294967296 == -2147483647
+(U64) 4294967296 == (S32) -2147483647
false
-4294967296 == -32768
+(U64) 4294967296 == (S32) -32768
false
-4294967296 == -32767
+(U64) 4294967296 == (S16) -32767
false
-4294967296 == -128
+(U64) 4294967296 == (S16) -128
false
-4294967296 == -127
+(U64) 4294967296 == (S8) -127
false
-4294967296 == 255
+(U64) 4294967296 == (U8) 255
false
-4294967296 == 256
+(U64) 4294967296 == (U16) 256
false
-4294967296 == 65535
+(U64) 4294967296 == (U16) 65535
false
-4294967296 == 65536
+(U64) 4294967296 == (U32) 65536
false
-4294967296 == 4294967295
+(U64) 4294967296 == (U32) 4294967295
false
-4294967296 == 4294967296
+(U64) 4294967296 == (U64) 4294967296
true
-4294967296 == 18446744073709551615
+(U64) 4294967296 == (U64) 18446744073709551615
false
-4294967296 == 18446744073709551616
+(U64) 4294967296 == 18446744073709551616
false
-4294967296 == 340282366920938463463374607431768211455
+(U64) 4294967296 == 340282366920938463463374607431768211455
false
-4294967296 == 340282366920938463463374607431768211456
+(U64) 4294967296 == 340282366920938463463374607431768211456
false
-18446744073709551615 == -170141183460469231731687303715884105728
+(U64) 18446744073709551615 == -170141183460469231731687303715884105728
false
-18446744073709551615 == -170141183460469231731687303715884105727
+(U64) 18446744073709551615 == -170141183460469231731687303715884105727
false
-18446744073709551615 == -9223372036854775808
+(U64) 18446744073709551615 == -9223372036854775808
false
-18446744073709551615 == -9223372036854775807
+(U64) 18446744073709551615 == (S64) -9223372036854775807
false
-18446744073709551615 == -2147483648
+(U64) 18446744073709551615 == (S64) -2147483648
false
-18446744073709551615 == -2147483647
+(U64) 18446744073709551615 == (S32) -2147483647
false
-18446744073709551615 == -32768
+(U64) 18446744073709551615 == (S32) -32768
false
-18446744073709551615 == -32767
+(U64) 18446744073709551615 == (S16) -32767
false
-18446744073709551615 == -128
+(U64) 18446744073709551615 == (S16) -128
false
-18446744073709551615 == -127
+(U64) 18446744073709551615 == (S8) -127
false
-18446744073709551615 == 255
+(U64) 18446744073709551615 == (U8) 255
false
-18446744073709551615 == 256
+(U64) 18446744073709551615 == (U16) 256
false
-18446744073709551615 == 65535
+(U64) 18446744073709551615 == (U16) 65535
false
-18446744073709551615 == 65536
+(U64) 18446744073709551615 == (U32) 65536
false
-18446744073709551615 == 4294967295
+(U64) 18446744073709551615 == (U32) 4294967295
false
-18446744073709551615 == 4294967296
+(U64) 18446744073709551615 == (U64) 4294967296
false
-18446744073709551615 == 18446744073709551615
+(U64) 18446744073709551615 == (U64) 18446744073709551615
true
-18446744073709551615 == 18446744073709551616
+(U64) 18446744073709551615 == 18446744073709551616
false
-18446744073709551615 == 340282366920938463463374607431768211455
+(U64) 18446744073709551615 == 340282366920938463463374607431768211455
false
-18446744073709551615 == 340282366920938463463374607431768211456
+(U64) 18446744073709551615 == 340282366920938463463374607431768211456
false
18446744073709551616 == -170141183460469231731687303715884105728
false
@@ -684,33 +684,33 @@ false
false
18446744073709551616 == -9223372036854775808
false
-18446744073709551616 == -9223372036854775807
+18446744073709551616 == (S64) -9223372036854775807
false
-18446744073709551616 == -2147483648
+18446744073709551616 == (S64) -2147483648
false
-18446744073709551616 == -2147483647
+18446744073709551616 == (S32) -2147483647
false
-18446744073709551616 == -32768
+18446744073709551616 == (S32) -32768
false
-18446744073709551616 == -32767
+18446744073709551616 == (S16) -32767
false
-18446744073709551616 == -128
+18446744073709551616 == (S16) -128
false
-18446744073709551616 == -127
+18446744073709551616 == (S8) -127
false
-18446744073709551616 == 255
+18446744073709551616 == (U8) 255
false
-18446744073709551616 == 256
+18446744073709551616 == (U16) 256
false
-18446744073709551616 == 65535
+18446744073709551616 == (U16) 65535
false
-18446744073709551616 == 65536
+18446744073709551616 == (U32) 65536
false
-18446744073709551616 == 4294967295
+18446744073709551616 == (U32) 4294967295
false
-18446744073709551616 == 4294967296
+18446744073709551616 == (U64) 4294967296
false
-18446744073709551616 == 18446744073709551615
+18446744073709551616 == (U64) 18446744073709551615
false
18446744073709551616 == 18446744073709551616
true
@@ -724,33 +724,33 @@ false
false
340282366920938463463374607431768211455 == -9223372036854775808
false
-340282366920938463463374607431768211455 == -9223372036854775807
+340282366920938463463374607431768211455 == (S64) -9223372036854775807
false
-340282366920938463463374607431768211455 == -2147483648
+340282366920938463463374607431768211455 == (S64) -2147483648
false
-340282366920938463463374607431768211455 == -2147483647
+340282366920938463463374607431768211455 == (S32) -2147483647
false
-340282366920938463463374607431768211455 == -32768
+340282366920938463463374607431768211455 == (S32) -32768
false
-340282366920938463463374607431768211455 == -32767
+340282366920938463463374607431768211455 == (S16) -32767
false
-340282366920938463463374607431768211455 == -128
+340282366920938463463374607431768211455 == (S16) -128
false
-340282366920938463463374607431768211455 == -127
+340282366920938463463374607431768211455 == (S8) -127
false
-340282366920938463463374607431768211455 == 255
+340282366920938463463374607431768211455 == (U8) 255
false
-340282366920938463463374607431768211455 == 256
+340282366920938463463374607431768211455 == (U16) 256
false
-340282366920938463463374607431768211455 == 65535
+340282366920938463463374607431768211455 == (U16) 65535
false
-340282366920938463463374607431768211455 == 65536
+340282366920938463463374607431768211455 == (U32) 65536
false
-340282366920938463463374607431768211455 == 4294967295
+340282366920938463463374607431768211455 == (U32) 4294967295
false
-340282366920938463463374607431768211455 == 4294967296
+340282366920938463463374607431768211455 == (U64) 4294967296
false
-340282366920938463463374607431768211455 == 18446744073709551615
+340282366920938463463374607431768211455 == (U64) 18446744073709551615
false
340282366920938463463374607431768211455 == 18446744073709551616
false
@@ -764,33 +764,33 @@ false
false
340282366920938463463374607431768211456 == -9223372036854775808
false
-340282366920938463463374607431768211456 == -9223372036854775807
+340282366920938463463374607431768211456 == (S64) -9223372036854775807
false
-340282366920938463463374607431768211456 == -2147483648
+340282366920938463463374607431768211456 == (S64) -2147483648
false
-340282366920938463463374607431768211456 == -2147483647
+340282366920938463463374607431768211456 == (S32) -2147483647
false
-340282366920938463463374607431768211456 == -32768
+340282366920938463463374607431768211456 == (S32) -32768
false
-340282366920938463463374607431768211456 == -32767
+340282366920938463463374607431768211456 == (S16) -32767
false
-340282366920938463463374607431768211456 == -128
+340282366920938463463374607431768211456 == (S16) -128
false
-340282366920938463463374607431768211456 == -127
+340282366920938463463374607431768211456 == (S8) -127
false
-340282366920938463463374607431768211456 == 255
+340282366920938463463374607431768211456 == (U8) 255
false
-340282366920938463463374607431768211456 == 256
+340282366920938463463374607431768211456 == (U16) 256
false
-340282366920938463463374607431768211456 == 65535
+340282366920938463463374607431768211456 == (U16) 65535
false
-340282366920938463463374607431768211456 == 65536
+340282366920938463463374607431768211456 == (U32) 65536
false
-340282366920938463463374607431768211456 == 4294967295
+340282366920938463463374607431768211456 == (U32) 4294967295
false
-340282366920938463463374607431768211456 == 4294967296
+340282366920938463463374607431768211456 == (U64) 4294967296
false
-340282366920938463463374607431768211456 == 18446744073709551615
+340282366920938463463374607431768211456 == (U64) 18446744073709551615
false
340282366920938463463374607431768211456 == 18446744073709551616
false
diff --git a/test/ikc3/integer_gt.out.expected b/test/ikc3/integer_gt.out.expected
index 57daf68..b3f276a 100644
--- a/test/ikc3/integer_gt.out.expected
+++ b/test/ikc3/integer_gt.out.expected
@@ -4,33 +4,33 @@ false
false
-170141183460469231731687303715884105728 > -9223372036854775808
false
--170141183460469231731687303715884105728 > -9223372036854775807
+-170141183460469231731687303715884105728 > (S64) -9223372036854775807
false
--170141183460469231731687303715884105728 > -2147483648
+-170141183460469231731687303715884105728 > (S64) -2147483648
false
--170141183460469231731687303715884105728 > -2147483647
+-170141183460469231731687303715884105728 > (S32) -2147483647
false
--170141183460469231731687303715884105728 > -32768
+-170141183460469231731687303715884105728 > (S32) -32768
false
--170141183460469231731687303715884105728 > -32767
+-170141183460469231731687303715884105728 > (S16) -32767
false
--170141183460469231731687303715884105728 > -128
+-170141183460469231731687303715884105728 > (S16) -128
false
--170141183460469231731687303715884105728 > -127
+-170141183460469231731687303715884105728 > (S8) -127
false
--170141183460469231731687303715884105728 > 255
+-170141183460469231731687303715884105728 > (U8) 255
false
--170141183460469231731687303715884105728 > 256
+-170141183460469231731687303715884105728 > (U16) 256
false
--170141183460469231731687303715884105728 > 65535
+-170141183460469231731687303715884105728 > (U16) 65535
false
--170141183460469231731687303715884105728 > 65536
+-170141183460469231731687303715884105728 > (U32) 65536
false
--170141183460469231731687303715884105728 > 4294967295
+-170141183460469231731687303715884105728 > (U32) 4294967295
false
--170141183460469231731687303715884105728 > 4294967296
+-170141183460469231731687303715884105728 > (U64) 4294967296
false
--170141183460469231731687303715884105728 > 18446744073709551615
+-170141183460469231731687303715884105728 > (U64) 18446744073709551615
false
-170141183460469231731687303715884105728 > 18446744073709551616
false
@@ -44,33 +44,33 @@ true
false
-170141183460469231731687303715884105727 > -9223372036854775808
false
--170141183460469231731687303715884105727 > -9223372036854775807
+-170141183460469231731687303715884105727 > (S64) -9223372036854775807
false
--170141183460469231731687303715884105727 > -2147483648
+-170141183460469231731687303715884105727 > (S64) -2147483648
false
--170141183460469231731687303715884105727 > -2147483647
+-170141183460469231731687303715884105727 > (S32) -2147483647
false
--170141183460469231731687303715884105727 > -32768
+-170141183460469231731687303715884105727 > (S32) -32768
false
--170141183460469231731687303715884105727 > -32767
+-170141183460469231731687303715884105727 > (S16) -32767
false
--170141183460469231731687303715884105727 > -128
+-170141183460469231731687303715884105727 > (S16) -128
false
--170141183460469231731687303715884105727 > -127
+-170141183460469231731687303715884105727 > (S8) -127
false
--170141183460469231731687303715884105727 > 255
+-170141183460469231731687303715884105727 > (U8) 255
false
--170141183460469231731687303715884105727 > 256
+-170141183460469231731687303715884105727 > (U16) 256
false
--170141183460469231731687303715884105727 > 65535
+-170141183460469231731687303715884105727 > (U16) 65535
false
--170141183460469231731687303715884105727 > 65536
+-170141183460469231731687303715884105727 > (U32) 65536
false
--170141183460469231731687303715884105727 > 4294967295
+-170141183460469231731687303715884105727 > (U32) 4294967295
false
--170141183460469231731687303715884105727 > 4294967296
+-170141183460469231731687303715884105727 > (U64) 4294967296
false
--170141183460469231731687303715884105727 > 18446744073709551615
+-170141183460469231731687303715884105727 > (U64) 18446744073709551615
false
-170141183460469231731687303715884105727 > 18446744073709551616
false
@@ -84,33 +84,33 @@ true
true
-9223372036854775808 > -9223372036854775808
false
--9223372036854775808 > -9223372036854775807
+-9223372036854775808 > (S64) -9223372036854775807
false
--9223372036854775808 > -2147483648
+-9223372036854775808 > (S64) -2147483648
false
--9223372036854775808 > -2147483647
+-9223372036854775808 > (S32) -2147483647
false
--9223372036854775808 > -32768
+-9223372036854775808 > (S32) -32768
false
--9223372036854775808 > -32767
+-9223372036854775808 > (S16) -32767
false
--9223372036854775808 > -128
+-9223372036854775808 > (S16) -128
false
--9223372036854775808 > -127
+-9223372036854775808 > (S8) -127
false
--9223372036854775808 > 255
+-9223372036854775808 > (U8) 255
false
--9223372036854775808 > 256
+-9223372036854775808 > (U16) 256
false
--9223372036854775808 > 65535
+-9223372036854775808 > (U16) 65535
false
--9223372036854775808 > 65536
+-9223372036854775808 > (U32) 65536
false
--9223372036854775808 > 4294967295
+-9223372036854775808 > (U32) 4294967295
false
--9223372036854775808 > 4294967296
+-9223372036854775808 > (U64) 4294967296
false
--9223372036854775808 > 18446744073709551615
+-9223372036854775808 > (U64) 18446744073709551615
false
-9223372036854775808 > 18446744073709551616
false
@@ -118,565 +118,565 @@ false
false
-9223372036854775808 > 340282366920938463463374607431768211456
false
--9223372036854775807 > -170141183460469231731687303715884105728
+(S64) -9223372036854775807 > -170141183460469231731687303715884105728
true
--9223372036854775807 > -170141183460469231731687303715884105727
+(S64) -9223372036854775807 > -170141183460469231731687303715884105727
true
--9223372036854775807 > -9223372036854775808
+(S64) -9223372036854775807 > -9223372036854775808
true
--9223372036854775807 > -9223372036854775807
+(S64) -9223372036854775807 > (S64) -9223372036854775807
false
--9223372036854775807 > -2147483648
+(S64) -9223372036854775807 > (S64) -2147483648
false
--9223372036854775807 > -2147483647
+(S64) -9223372036854775807 > (S32) -2147483647
false
--9223372036854775807 > -32768
+(S64) -9223372036854775807 > (S32) -32768
false
--9223372036854775807 > -32767
+(S64) -9223372036854775807 > (S16) -32767
false
--9223372036854775807 > -128
+(S64) -9223372036854775807 > (S16) -128
false
--9223372036854775807 > -127
+(S64) -9223372036854775807 > (S8) -127
false
--9223372036854775807 > 255
+(S64) -9223372036854775807 > (U8) 255
false
--9223372036854775807 > 256
+(S64) -9223372036854775807 > (U16) 256
false
--9223372036854775807 > 65535
+(S64) -9223372036854775807 > (U16) 65535
false
--9223372036854775807 > 65536
+(S64) -9223372036854775807 > (U32) 65536
false
--9223372036854775807 > 4294967295
+(S64) -9223372036854775807 > (U32) 4294967295
false
--9223372036854775807 > 4294967296
+(S64) -9223372036854775807 > (U64) 4294967296
false
--9223372036854775807 > 18446744073709551615
+(S64) -9223372036854775807 > (U64) 18446744073709551615
false
--9223372036854775807 > 18446744073709551616
+(S64) -9223372036854775807 > 18446744073709551616
false
--9223372036854775807 > 340282366920938463463374607431768211455
+(S64) -9223372036854775807 > 340282366920938463463374607431768211455
false
--9223372036854775807 > 340282366920938463463374607431768211456
+(S64) -9223372036854775807 > 340282366920938463463374607431768211456
false
--2147483648 > -170141183460469231731687303715884105728
+(S64) -2147483648 > -170141183460469231731687303715884105728
true
--2147483648 > -170141183460469231731687303715884105727
+(S64) -2147483648 > -170141183460469231731687303715884105727
true
--2147483648 > -9223372036854775808
+(S64) -2147483648 > -9223372036854775808
true
--2147483648 > -9223372036854775807
+(S64) -2147483648 > (S64) -9223372036854775807
true
--2147483648 > -2147483648
+(S64) -2147483648 > (S64) -2147483648
false
--2147483648 > -2147483647
+(S64) -2147483648 > (S32) -2147483647
false
--2147483648 > -32768
+(S64) -2147483648 > (S32) -32768
false
--2147483648 > -32767
+(S64) -2147483648 > (S16) -32767
false
--2147483648 > -128
+(S64) -2147483648 > (S16) -128
false
--2147483648 > -127
+(S64) -2147483648 > (S8) -127
false
--2147483648 > 255
+(S64) -2147483648 > (U8) 255
false
--2147483648 > 256
+(S64) -2147483648 > (U16) 256
false
--2147483648 > 65535
+(S64) -2147483648 > (U16) 65535
false
--2147483648 > 65536
+(S64) -2147483648 > (U32) 65536
false
--2147483648 > 4294967295
+(S64) -2147483648 > (U32) 4294967295
false
--2147483648 > 4294967296
+(S64) -2147483648 > (U64) 4294967296
false
--2147483648 > 18446744073709551615
+(S64) -2147483648 > (U64) 18446744073709551615
false
--2147483648 > 18446744073709551616
+(S64) -2147483648 > 18446744073709551616
false
--2147483648 > 340282366920938463463374607431768211455
+(S64) -2147483648 > 340282366920938463463374607431768211455
false
--2147483648 > 340282366920938463463374607431768211456
+(S64) -2147483648 > 340282366920938463463374607431768211456
false
--2147483647 > -170141183460469231731687303715884105728
+(S32) -2147483647 > -170141183460469231731687303715884105728
true
--2147483647 > -170141183460469231731687303715884105727
+(S32) -2147483647 > -170141183460469231731687303715884105727
true
--2147483647 > -9223372036854775808
+(S32) -2147483647 > -9223372036854775808
true
--2147483647 > -9223372036854775807
+(S32) -2147483647 > (S64) -9223372036854775807
true
--2147483647 > -2147483648
+(S32) -2147483647 > (S64) -2147483648
true
--2147483647 > -2147483647
+(S32) -2147483647 > (S32) -2147483647
false
--2147483647 > -32768
+(S32) -2147483647 > (S32) -32768
false
--2147483647 > -32767
+(S32) -2147483647 > (S16) -32767
false
--2147483647 > -128
+(S32) -2147483647 > (S16) -128
false
--2147483647 > -127
+(S32) -2147483647 > (S8) -127
false
--2147483647 > 255
+(S32) -2147483647 > (U8) 255
false
--2147483647 > 256
+(S32) -2147483647 > (U16) 256
false
--2147483647 > 65535
+(S32) -2147483647 > (U16) 65535
false
--2147483647 > 65536
+(S32) -2147483647 > (U32) 65536
false
--2147483647 > 4294967295
+(S32) -2147483647 > (U32) 4294967295
false
--2147483647 > 4294967296
+(S32) -2147483647 > (U64) 4294967296
false
--2147483647 > 18446744073709551615
+(S32) -2147483647 > (U64) 18446744073709551615
false
--2147483647 > 18446744073709551616
+(S32) -2147483647 > 18446744073709551616
false
--2147483647 > 340282366920938463463374607431768211455
+(S32) -2147483647 > 340282366920938463463374607431768211455
false
--2147483647 > 340282366920938463463374607431768211456
+(S32) -2147483647 > 340282366920938463463374607431768211456
false
--32768 > -170141183460469231731687303715884105728
+(S32) -32768 > -170141183460469231731687303715884105728
true
--32768 > -170141183460469231731687303715884105727
+(S32) -32768 > -170141183460469231731687303715884105727
true
--32768 > -9223372036854775808
+(S32) -32768 > -9223372036854775808
true
--32768 > -9223372036854775807
+(S32) -32768 > (S64) -9223372036854775807
true
--32768 > -2147483648
+(S32) -32768 > (S64) -2147483648
true
--32768 > -2147483647
+(S32) -32768 > (S32) -2147483647
true
--32768 > -32768
+(S32) -32768 > (S32) -32768
false
--32768 > -32767
+(S32) -32768 > (S16) -32767
false
--32768 > -128
+(S32) -32768 > (S16) -128
false
--32768 > -127
+(S32) -32768 > (S8) -127
false
--32768 > 255
+(S32) -32768 > (U8) 255
false
--32768 > 256
+(S32) -32768 > (U16) 256
false
--32768 > 65535
+(S32) -32768 > (U16) 65535
false
--32768 > 65536
+(S32) -32768 > (U32) 65536
false
--32768 > 4294967295
+(S32) -32768 > (U32) 4294967295
false
--32768 > 4294967296
+(S32) -32768 > (U64) 4294967296
false
--32768 > 18446744073709551615
+(S32) -32768 > (U64) 18446744073709551615
false
--32768 > 18446744073709551616
+(S32) -32768 > 18446744073709551616
false
--32768 > 340282366920938463463374607431768211455
+(S32) -32768 > 340282366920938463463374607431768211455
false
--32768 > 340282366920938463463374607431768211456
+(S32) -32768 > 340282366920938463463374607431768211456
false
--32767 > -170141183460469231731687303715884105728
+(S16) -32767 > -170141183460469231731687303715884105728
true
--32767 > -170141183460469231731687303715884105727
+(S16) -32767 > -170141183460469231731687303715884105727
true
--32767 > -9223372036854775808
+(S16) -32767 > -9223372036854775808
true
--32767 > -9223372036854775807
+(S16) -32767 > (S64) -9223372036854775807
true
--32767 > -2147483648
+(S16) -32767 > (S64) -2147483648
true
--32767 > -2147483647
+(S16) -32767 > (S32) -2147483647
true
--32767 > -32768
+(S16) -32767 > (S32) -32768
true
--32767 > -32767
+(S16) -32767 > (S16) -32767
false
--32767 > -128
+(S16) -32767 > (S16) -128
false
--32767 > -127
+(S16) -32767 > (S8) -127
false
--32767 > 255
+(S16) -32767 > (U8) 255
false
--32767 > 256
+(S16) -32767 > (U16) 256
false
--32767 > 65535
+(S16) -32767 > (U16) 65535
false
--32767 > 65536
+(S16) -32767 > (U32) 65536
false
--32767 > 4294967295
+(S16) -32767 > (U32) 4294967295
false
--32767 > 4294967296
+(S16) -32767 > (U64) 4294967296
false
--32767 > 18446744073709551615
+(S16) -32767 > (U64) 18446744073709551615
false
--32767 > 18446744073709551616
+(S16) -32767 > 18446744073709551616
false
--32767 > 340282366920938463463374607431768211455
+(S16) -32767 > 340282366920938463463374607431768211455
false
--32767 > 340282366920938463463374607431768211456
+(S16) -32767 > 340282366920938463463374607431768211456
false
--128 > -170141183460469231731687303715884105728
+(S16) -128 > -170141183460469231731687303715884105728
true
--128 > -170141183460469231731687303715884105727
+(S16) -128 > -170141183460469231731687303715884105727
true
--128 > -9223372036854775808
+(S16) -128 > -9223372036854775808
true
--128 > -9223372036854775807
+(S16) -128 > (S64) -9223372036854775807
true
--128 > -2147483648
+(S16) -128 > (S64) -2147483648
true
--128 > -2147483647
+(S16) -128 > (S32) -2147483647
true
--128 > -32768
+(S16) -128 > (S32) -32768
true
--128 > -32767
+(S16) -128 > (S16) -32767
true
--128 > -128
+(S16) -128 > (S16) -128
false
--128 > -127
+(S16) -128 > (S8) -127
false
--128 > 255
+(S16) -128 > (U8) 255
false
--128 > 256
+(S16) -128 > (U16) 256
false
--128 > 65535
+(S16) -128 > (U16) 65535
false
--128 > 65536
+(S16) -128 > (U32) 65536
false
--128 > 4294967295
+(S16) -128 > (U32) 4294967295
false
--128 > 4294967296
+(S16) -128 > (U64) 4294967296
false
--128 > 18446744073709551615
+(S16) -128 > (U64) 18446744073709551615
false
--128 > 18446744073709551616
+(S16) -128 > 18446744073709551616
false
--128 > 340282366920938463463374607431768211455
+(S16) -128 > 340282366920938463463374607431768211455
false
--128 > 340282366920938463463374607431768211456
+(S16) -128 > 340282366920938463463374607431768211456
false
--127 > -170141183460469231731687303715884105728
+(S8) -127 > -170141183460469231731687303715884105728
true
--127 > -170141183460469231731687303715884105727
+(S8) -127 > -170141183460469231731687303715884105727
true
--127 > -9223372036854775808
+(S8) -127 > -9223372036854775808
true
--127 > -9223372036854775807
+(S8) -127 > (S64) -9223372036854775807
true
--127 > -2147483648
+(S8) -127 > (S64) -2147483648
true
--127 > -2147483647
+(S8) -127 > (S32) -2147483647
true
--127 > -32768
+(S8) -127 > (S32) -32768
true
--127 > -32767
+(S8) -127 > (S16) -32767
true
--127 > -128
+(S8) -127 > (S16) -128
true
--127 > -127
+(S8) -127 > (S8) -127
false
--127 > 255
+(S8) -127 > (U8) 255
false
--127 > 256
+(S8) -127 > (U16) 256
false
--127 > 65535
+(S8) -127 > (U16) 65535
false
--127 > 65536
+(S8) -127 > (U32) 65536
false
--127 > 4294967295
+(S8) -127 > (U32) 4294967295
false
--127 > 4294967296
+(S8) -127 > (U64) 4294967296
false
--127 > 18446744073709551615
+(S8) -127 > (U64) 18446744073709551615
false
--127 > 18446744073709551616
+(S8) -127 > 18446744073709551616
false
--127 > 340282366920938463463374607431768211455
+(S8) -127 > 340282366920938463463374607431768211455
false
--127 > 340282366920938463463374607431768211456
+(S8) -127 > 340282366920938463463374607431768211456
false
-255 > -170141183460469231731687303715884105728
+(U8) 255 > -170141183460469231731687303715884105728
true
-255 > -170141183460469231731687303715884105727
+(U8) 255 > -170141183460469231731687303715884105727
true
-255 > -9223372036854775808
+(U8) 255 > -9223372036854775808
true
-255 > -9223372036854775807
+(U8) 255 > (S64) -9223372036854775807
true
-255 > -2147483648
+(U8) 255 > (S64) -2147483648
true
-255 > -2147483647
+(U8) 255 > (S32) -2147483647
true
-255 > -32768
+(U8) 255 > (S32) -32768
true
-255 > -32767
+(U8) 255 > (S16) -32767
true
-255 > -128
+(U8) 255 > (S16) -128
true
-255 > -127
+(U8) 255 > (S8) -127
true
-255 > 255
+(U8) 255 > (U8) 255
false
-255 > 256
+(U8) 255 > (U16) 256
false
-255 > 65535
+(U8) 255 > (U16) 65535
false
-255 > 65536
+(U8) 255 > (U32) 65536
false
-255 > 4294967295
+(U8) 255 > (U32) 4294967295
false
-255 > 4294967296
+(U8) 255 > (U64) 4294967296
false
-255 > 18446744073709551615
+(U8) 255 > (U64) 18446744073709551615
false
-255 > 18446744073709551616
+(U8) 255 > 18446744073709551616
false
-255 > 340282366920938463463374607431768211455
+(U8) 255 > 340282366920938463463374607431768211455
false
-255 > 340282366920938463463374607431768211456
+(U8) 255 > 340282366920938463463374607431768211456
false
-256 > -170141183460469231731687303715884105728
+(U16) 256 > -170141183460469231731687303715884105728
true
-256 > -170141183460469231731687303715884105727
+(U16) 256 > -170141183460469231731687303715884105727
true
-256 > -9223372036854775808
+(U16) 256 > -9223372036854775808
true
-256 > -9223372036854775807
+(U16) 256 > (S64) -9223372036854775807
true
-256 > -2147483648
+(U16) 256 > (S64) -2147483648
true
-256 > -2147483647
+(U16) 256 > (S32) -2147483647
true
-256 > -32768
+(U16) 256 > (S32) -32768
true
-256 > -32767
+(U16) 256 > (S16) -32767
true
-256 > -128
+(U16) 256 > (S16) -128
true
-256 > -127
+(U16) 256 > (S8) -127
true
-256 > 255
+(U16) 256 > (U8) 255
true
-256 > 256
+(U16) 256 > (U16) 256
false
-256 > 65535
+(U16) 256 > (U16) 65535
false
-256 > 65536
+(U16) 256 > (U32) 65536
false
-256 > 4294967295
+(U16) 256 > (U32) 4294967295
false
-256 > 4294967296
+(U16) 256 > (U64) 4294967296
false
-256 > 18446744073709551615
+(U16) 256 > (U64) 18446744073709551615
false
-256 > 18446744073709551616
+(U16) 256 > 18446744073709551616
false
-256 > 340282366920938463463374607431768211455
+(U16) 256 > 340282366920938463463374607431768211455
false
-256 > 340282366920938463463374607431768211456
+(U16) 256 > 340282366920938463463374607431768211456
false
-65535 > -170141183460469231731687303715884105728
+(U16) 65535 > -170141183460469231731687303715884105728
true
-65535 > -170141183460469231731687303715884105727
+(U16) 65535 > -170141183460469231731687303715884105727
true
-65535 > -9223372036854775808
+(U16) 65535 > -9223372036854775808
true
-65535 > -9223372036854775807
+(U16) 65535 > (S64) -9223372036854775807
true
-65535 > -2147483648
+(U16) 65535 > (S64) -2147483648
true
-65535 > -2147483647
+(U16) 65535 > (S32) -2147483647
true
-65535 > -32768
+(U16) 65535 > (S32) -32768
true
-65535 > -32767
+(U16) 65535 > (S16) -32767
true
-65535 > -128
+(U16) 65535 > (S16) -128
true
-65535 > -127
+(U16) 65535 > (S8) -127
true
-65535 > 255
+(U16) 65535 > (U8) 255
true
-65535 > 256
+(U16) 65535 > (U16) 256
true
-65535 > 65535
+(U16) 65535 > (U16) 65535
false
-65535 > 65536
+(U16) 65535 > (U32) 65536
false
-65535 > 4294967295
+(U16) 65535 > (U32) 4294967295
false
-65535 > 4294967296
+(U16) 65535 > (U64) 4294967296
false
-65535 > 18446744073709551615
+(U16) 65535 > (U64) 18446744073709551615
false
-65535 > 18446744073709551616
+(U16) 65535 > 18446744073709551616
false
-65535 > 340282366920938463463374607431768211455
+(U16) 65535 > 340282366920938463463374607431768211455
false
-65535 > 340282366920938463463374607431768211456
+(U16) 65535 > 340282366920938463463374607431768211456
false
-65536 > -170141183460469231731687303715884105728
+(U32) 65536 > -170141183460469231731687303715884105728
true
-65536 > -170141183460469231731687303715884105727
+(U32) 65536 > -170141183460469231731687303715884105727
true
-65536 > -9223372036854775808
+(U32) 65536 > -9223372036854775808
true
-65536 > -9223372036854775807
+(U32) 65536 > (S64) -9223372036854775807
true
-65536 > -2147483648
+(U32) 65536 > (S64) -2147483648
true
-65536 > -2147483647
+(U32) 65536 > (S32) -2147483647
true
-65536 > -32768
+(U32) 65536 > (S32) -32768
true
-65536 > -32767
+(U32) 65536 > (S16) -32767
true
-65536 > -128
+(U32) 65536 > (S16) -128
true
-65536 > -127
+(U32) 65536 > (S8) -127
true
-65536 > 255
+(U32) 65536 > (U8) 255
true
-65536 > 256
+(U32) 65536 > (U16) 256
true
-65536 > 65535
+(U32) 65536 > (U16) 65535
true
-65536 > 65536
+(U32) 65536 > (U32) 65536
false
-65536 > 4294967295
+(U32) 65536 > (U32) 4294967295
false
-65536 > 4294967296
+(U32) 65536 > (U64) 4294967296
false
-65536 > 18446744073709551615
+(U32) 65536 > (U64) 18446744073709551615
false
-65536 > 18446744073709551616
+(U32) 65536 > 18446744073709551616
false
-65536 > 340282366920938463463374607431768211455
+(U32) 65536 > 340282366920938463463374607431768211455
false
-65536 > 340282366920938463463374607431768211456
+(U32) 65536 > 340282366920938463463374607431768211456
false
-4294967295 > -170141183460469231731687303715884105728
+(U32) 4294967295 > -170141183460469231731687303715884105728
true
-4294967295 > -170141183460469231731687303715884105727
+(U32) 4294967295 > -170141183460469231731687303715884105727
true
-4294967295 > -9223372036854775808
+(U32) 4294967295 > -9223372036854775808
true
-4294967295 > -9223372036854775807
+(U32) 4294967295 > (S64) -9223372036854775807
true
-4294967295 > -2147483648
+(U32) 4294967295 > (S64) -2147483648
true
-4294967295 > -2147483647
+(U32) 4294967295 > (S32) -2147483647
true
-4294967295 > -32768
+(U32) 4294967295 > (S32) -32768
true
-4294967295 > -32767
+(U32) 4294967295 > (S16) -32767
true
-4294967295 > -128
+(U32) 4294967295 > (S16) -128
true
-4294967295 > -127
+(U32) 4294967295 > (S8) -127
true
-4294967295 > 255
+(U32) 4294967295 > (U8) 255
true
-4294967295 > 256
+(U32) 4294967295 > (U16) 256
true
-4294967295 > 65535
+(U32) 4294967295 > (U16) 65535
true
-4294967295 > 65536
+(U32) 4294967295 > (U32) 65536
true
-4294967295 > 4294967295
+(U32) 4294967295 > (U32) 4294967295
false
-4294967295 > 4294967296
+(U32) 4294967295 > (U64) 4294967296
false
-4294967295 > 18446744073709551615
+(U32) 4294967295 > (U64) 18446744073709551615
false
-4294967295 > 18446744073709551616
+(U32) 4294967295 > 18446744073709551616
false
-4294967295 > 340282366920938463463374607431768211455
+(U32) 4294967295 > 340282366920938463463374607431768211455
false
-4294967295 > 340282366920938463463374607431768211456
+(U32) 4294967295 > 340282366920938463463374607431768211456
false
-4294967296 > -170141183460469231731687303715884105728
+(U64) 4294967296 > -170141183460469231731687303715884105728
true
-4294967296 > -170141183460469231731687303715884105727
+(U64) 4294967296 > -170141183460469231731687303715884105727
true
-4294967296 > -9223372036854775808
+(U64) 4294967296 > -9223372036854775808
true
-4294967296 > -9223372036854775807
+(U64) 4294967296 > (S64) -9223372036854775807
true
-4294967296 > -2147483648
+(U64) 4294967296 > (S64) -2147483648
true
-4294967296 > -2147483647
+(U64) 4294967296 > (S32) -2147483647
true
-4294967296 > -32768
+(U64) 4294967296 > (S32) -32768
true
-4294967296 > -32767
+(U64) 4294967296 > (S16) -32767
true
-4294967296 > -128
+(U64) 4294967296 > (S16) -128
true
-4294967296 > -127
+(U64) 4294967296 > (S8) -127
true
-4294967296 > 255
+(U64) 4294967296 > (U8) 255
true
-4294967296 > 256
+(U64) 4294967296 > (U16) 256
true
-4294967296 > 65535
+(U64) 4294967296 > (U16) 65535
true
-4294967296 > 65536
+(U64) 4294967296 > (U32) 65536
true
-4294967296 > 4294967295
+(U64) 4294967296 > (U32) 4294967295
true
-4294967296 > 4294967296
+(U64) 4294967296 > (U64) 4294967296
false
-4294967296 > 18446744073709551615
+(U64) 4294967296 > (U64) 18446744073709551615
false
-4294967296 > 18446744073709551616
+(U64) 4294967296 > 18446744073709551616
false
-4294967296 > 340282366920938463463374607431768211455
+(U64) 4294967296 > 340282366920938463463374607431768211455
false
-4294967296 > 340282366920938463463374607431768211456
+(U64) 4294967296 > 340282366920938463463374607431768211456
false
-18446744073709551615 > -170141183460469231731687303715884105728
+(U64) 18446744073709551615 > -170141183460469231731687303715884105728
true
-18446744073709551615 > -170141183460469231731687303715884105727
+(U64) 18446744073709551615 > -170141183460469231731687303715884105727
true
-18446744073709551615 > -9223372036854775808
+(U64) 18446744073709551615 > -9223372036854775808
true
-18446744073709551615 > -9223372036854775807
+(U64) 18446744073709551615 > (S64) -9223372036854775807
true
-18446744073709551615 > -2147483648
+(U64) 18446744073709551615 > (S64) -2147483648
true
-18446744073709551615 > -2147483647
+(U64) 18446744073709551615 > (S32) -2147483647
true
-18446744073709551615 > -32768
+(U64) 18446744073709551615 > (S32) -32768
true
-18446744073709551615 > -32767
+(U64) 18446744073709551615 > (S16) -32767
true
-18446744073709551615 > -128
+(U64) 18446744073709551615 > (S16) -128
true
-18446744073709551615 > -127
+(U64) 18446744073709551615 > (S8) -127
true
-18446744073709551615 > 255
+(U64) 18446744073709551615 > (U8) 255
true
-18446744073709551615 > 256
+(U64) 18446744073709551615 > (U16) 256
true
-18446744073709551615 > 65535
+(U64) 18446744073709551615 > (U16) 65535
true
-18446744073709551615 > 65536
+(U64) 18446744073709551615 > (U32) 65536
true
-18446744073709551615 > 4294967295
+(U64) 18446744073709551615 > (U32) 4294967295
true
-18446744073709551615 > 4294967296
+(U64) 18446744073709551615 > (U64) 4294967296
true
-18446744073709551615 > 18446744073709551615
+(U64) 18446744073709551615 > (U64) 18446744073709551615
false
-18446744073709551615 > 18446744073709551616
+(U64) 18446744073709551615 > 18446744073709551616
false
-18446744073709551615 > 340282366920938463463374607431768211455
+(U64) 18446744073709551615 > 340282366920938463463374607431768211455
false
-18446744073709551615 > 340282366920938463463374607431768211456
+(U64) 18446744073709551615 > 340282366920938463463374607431768211456
false
18446744073709551616 > -170141183460469231731687303715884105728
true
@@ -684,33 +684,33 @@ true
true
18446744073709551616 > -9223372036854775808
true
-18446744073709551616 > -9223372036854775807
+18446744073709551616 > (S64) -9223372036854775807
true
-18446744073709551616 > -2147483648
+18446744073709551616 > (S64) -2147483648
true
-18446744073709551616 > -2147483647
+18446744073709551616 > (S32) -2147483647
true
-18446744073709551616 > -32768
+18446744073709551616 > (S32) -32768
true
-18446744073709551616 > -32767
+18446744073709551616 > (S16) -32767
true
-18446744073709551616 > -128
+18446744073709551616 > (S16) -128
true
-18446744073709551616 > -127
+18446744073709551616 > (S8) -127
true
-18446744073709551616 > 255
+18446744073709551616 > (U8) 255
true
-18446744073709551616 > 256
+18446744073709551616 > (U16) 256
true
-18446744073709551616 > 65535
+18446744073709551616 > (U16) 65535
true
-18446744073709551616 > 65536
+18446744073709551616 > (U32) 65536
true
-18446744073709551616 > 4294967295
+18446744073709551616 > (U32) 4294967295
true
-18446744073709551616 > 4294967296
+18446744073709551616 > (U64) 4294967296
true
-18446744073709551616 > 18446744073709551615
+18446744073709551616 > (U64) 18446744073709551615
true
18446744073709551616 > 18446744073709551616
false
@@ -724,33 +724,33 @@ true
true
340282366920938463463374607431768211455 > -9223372036854775808
true
-340282366920938463463374607431768211455 > -9223372036854775807
+340282366920938463463374607431768211455 > (S64) -9223372036854775807
true
-340282366920938463463374607431768211455 > -2147483648
+340282366920938463463374607431768211455 > (S64) -2147483648
true
-340282366920938463463374607431768211455 > -2147483647
+340282366920938463463374607431768211455 > (S32) -2147483647
true
-340282366920938463463374607431768211455 > -32768
+340282366920938463463374607431768211455 > (S32) -32768
true
-340282366920938463463374607431768211455 > -32767
+340282366920938463463374607431768211455 > (S16) -32767
true
-340282366920938463463374607431768211455 > -128
+340282366920938463463374607431768211455 > (S16) -128
true
-340282366920938463463374607431768211455 > -127
+340282366920938463463374607431768211455 > (S8) -127
true
-340282366920938463463374607431768211455 > 255
+340282366920938463463374607431768211455 > (U8) 255
true
-340282366920938463463374607431768211455 > 256
+340282366920938463463374607431768211455 > (U16) 256
true
-340282366920938463463374607431768211455 > 65535
+340282366920938463463374607431768211455 > (U16) 65535
true
-340282366920938463463374607431768211455 > 65536
+340282366920938463463374607431768211455 > (U32) 65536
true
-340282366920938463463374607431768211455 > 4294967295
+340282366920938463463374607431768211455 > (U32) 4294967295
true
-340282366920938463463374607431768211455 > 4294967296
+340282366920938463463374607431768211455 > (U64) 4294967296
true
-340282366920938463463374607431768211455 > 18446744073709551615
+340282366920938463463374607431768211455 > (U64) 18446744073709551615
true
340282366920938463463374607431768211455 > 18446744073709551616
true
@@ -764,33 +764,33 @@ true
true
340282366920938463463374607431768211456 > -9223372036854775808
true
-340282366920938463463374607431768211456 > -9223372036854775807
+340282366920938463463374607431768211456 > (S64) -9223372036854775807
true
-340282366920938463463374607431768211456 > -2147483648
+340282366920938463463374607431768211456 > (S64) -2147483648
true
-340282366920938463463374607431768211456 > -2147483647
+340282366920938463463374607431768211456 > (S32) -2147483647
true
-340282366920938463463374607431768211456 > -32768
+340282366920938463463374607431768211456 > (S32) -32768
true
-340282366920938463463374607431768211456 > -32767
+340282366920938463463374607431768211456 > (S16) -32767
true
-340282366920938463463374607431768211456 > -128
+340282366920938463463374607431768211456 > (S16) -128
true
-340282366920938463463374607431768211456 > -127
+340282366920938463463374607431768211456 > (S8) -127
true
-340282366920938463463374607431768211456 > 255
+340282366920938463463374607431768211456 > (U8) 255
true
-340282366920938463463374607431768211456 > 256
+340282366920938463463374607431768211456 > (U16) 256
true
-340282366920938463463374607431768211456 > 65535
+340282366920938463463374607431768211456 > (U16) 65535
true
-340282366920938463463374607431768211456 > 65536
+340282366920938463463374607431768211456 > (U32) 65536
true
-340282366920938463463374607431768211456 > 4294967295
+340282366920938463463374607431768211456 > (U32) 4294967295
true
-340282366920938463463374607431768211456 > 4294967296
+340282366920938463463374607431768211456 > (U64) 4294967296
true
-340282366920938463463374607431768211456 > 18446744073709551615
+340282366920938463463374607431768211456 > (U64) 18446744073709551615
true
340282366920938463463374607431768211456 > 18446744073709551616
true
diff --git a/test/ikc3/integer_lt.out.expected b/test/ikc3/integer_lt.out.expected
index 1fa364c..0500513 100644
--- a/test/ikc3/integer_lt.out.expected
+++ b/test/ikc3/integer_lt.out.expected
@@ -4,33 +4,33 @@ false
true
-170141183460469231731687303715884105728 < -9223372036854775808
true
--170141183460469231731687303715884105728 < -9223372036854775807
+-170141183460469231731687303715884105728 < (S64) -9223372036854775807
true
--170141183460469231731687303715884105728 < -2147483648
+-170141183460469231731687303715884105728 < (S64) -2147483648
true
--170141183460469231731687303715884105728 < -2147483647
+-170141183460469231731687303715884105728 < (S32) -2147483647
true
--170141183460469231731687303715884105728 < -32768
+-170141183460469231731687303715884105728 < (S32) -32768
true
--170141183460469231731687303715884105728 < -32767
+-170141183460469231731687303715884105728 < (S16) -32767
true
--170141183460469231731687303715884105728 < -128
+-170141183460469231731687303715884105728 < (S16) -128
true
--170141183460469231731687303715884105728 < -127
+-170141183460469231731687303715884105728 < (S8) -127
true
--170141183460469231731687303715884105728 < 255
+-170141183460469231731687303715884105728 < (U8) 255
true
--170141183460469231731687303715884105728 < 256
+-170141183460469231731687303715884105728 < (U16) 256
true
--170141183460469231731687303715884105728 < 65535
+-170141183460469231731687303715884105728 < (U16) 65535
true
--170141183460469231731687303715884105728 < 65536
+-170141183460469231731687303715884105728 < (U32) 65536
true
--170141183460469231731687303715884105728 < 4294967295
+-170141183460469231731687303715884105728 < (U32) 4294967295
true
--170141183460469231731687303715884105728 < 4294967296
+-170141183460469231731687303715884105728 < (U64) 4294967296
true
--170141183460469231731687303715884105728 < 18446744073709551615
+-170141183460469231731687303715884105728 < (U64) 18446744073709551615
true
-170141183460469231731687303715884105728 < 18446744073709551616
true
@@ -44,33 +44,33 @@ false
false
-170141183460469231731687303715884105727 < -9223372036854775808
true
--170141183460469231731687303715884105727 < -9223372036854775807
+-170141183460469231731687303715884105727 < (S64) -9223372036854775807
true
--170141183460469231731687303715884105727 < -2147483648
+-170141183460469231731687303715884105727 < (S64) -2147483648
true
--170141183460469231731687303715884105727 < -2147483647
+-170141183460469231731687303715884105727 < (S32) -2147483647
true
--170141183460469231731687303715884105727 < -32768
+-170141183460469231731687303715884105727 < (S32) -32768
true
--170141183460469231731687303715884105727 < -32767
+-170141183460469231731687303715884105727 < (S16) -32767
true
--170141183460469231731687303715884105727 < -128
+-170141183460469231731687303715884105727 < (S16) -128
true
--170141183460469231731687303715884105727 < -127
+-170141183460469231731687303715884105727 < (S8) -127
true
--170141183460469231731687303715884105727 < 255
+-170141183460469231731687303715884105727 < (U8) 255
true
--170141183460469231731687303715884105727 < 256
+-170141183460469231731687303715884105727 < (U16) 256
true
--170141183460469231731687303715884105727 < 65535
+-170141183460469231731687303715884105727 < (U16) 65535
true
--170141183460469231731687303715884105727 < 65536
+-170141183460469231731687303715884105727 < (U32) 65536
true
--170141183460469231731687303715884105727 < 4294967295
+-170141183460469231731687303715884105727 < (U32) 4294967295
true
--170141183460469231731687303715884105727 < 4294967296
+-170141183460469231731687303715884105727 < (U64) 4294967296
true
--170141183460469231731687303715884105727 < 18446744073709551615
+-170141183460469231731687303715884105727 < (U64) 18446744073709551615
true
-170141183460469231731687303715884105727 < 18446744073709551616
true
@@ -84,33 +84,33 @@ false
false
-9223372036854775808 < -9223372036854775808
false
--9223372036854775808 < -9223372036854775807
+-9223372036854775808 < (S64) -9223372036854775807
true
--9223372036854775808 < -2147483648
+-9223372036854775808 < (S64) -2147483648
true
--9223372036854775808 < -2147483647
+-9223372036854775808 < (S32) -2147483647
true
--9223372036854775808 < -32768
+-9223372036854775808 < (S32) -32768
true
--9223372036854775808 < -32767
+-9223372036854775808 < (S16) -32767
true
--9223372036854775808 < -128
+-9223372036854775808 < (S16) -128
true
--9223372036854775808 < -127
+-9223372036854775808 < (S8) -127
true
--9223372036854775808 < 255
+-9223372036854775808 < (U8) 255
true
--9223372036854775808 < 256
+-9223372036854775808 < (U16) 256
true
--9223372036854775808 < 65535
+-9223372036854775808 < (U16) 65535
true
--9223372036854775808 < 65536
+-9223372036854775808 < (U32) 65536
true
--9223372036854775808 < 4294967295
+-9223372036854775808 < (U32) 4294967295
true
--9223372036854775808 < 4294967296
+-9223372036854775808 < (U64) 4294967296
true
--9223372036854775808 < 18446744073709551615
+-9223372036854775808 < (U64) 18446744073709551615
true
-9223372036854775808 < 18446744073709551616
true
@@ -118,565 +118,565 @@ true
true
-9223372036854775808 < 340282366920938463463374607431768211456
true
--9223372036854775807 < -170141183460469231731687303715884105728
+(S64) -9223372036854775807 < -170141183460469231731687303715884105728
false
--9223372036854775807 < -170141183460469231731687303715884105727
+(S64) -9223372036854775807 < -170141183460469231731687303715884105727
false
--9223372036854775807 < -9223372036854775808
+(S64) -9223372036854775807 < -9223372036854775808
false
--9223372036854775807 < -9223372036854775807
+(S64) -9223372036854775807 < (S64) -9223372036854775807
false
--9223372036854775807 < -2147483648
+(S64) -9223372036854775807 < (S64) -2147483648
true
--9223372036854775807 < -2147483647
+(S64) -9223372036854775807 < (S32) -2147483647
true
--9223372036854775807 < -32768
+(S64) -9223372036854775807 < (S32) -32768
true
--9223372036854775807 < -32767
+(S64) -9223372036854775807 < (S16) -32767
true
--9223372036854775807 < -128
+(S64) -9223372036854775807 < (S16) -128
true
--9223372036854775807 < -127
+(S64) -9223372036854775807 < (S8) -127
true
--9223372036854775807 < 255
+(S64) -9223372036854775807 < (U8) 255
true
--9223372036854775807 < 256
+(S64) -9223372036854775807 < (U16) 256
true
--9223372036854775807 < 65535
+(S64) -9223372036854775807 < (U16) 65535
true
--9223372036854775807 < 65536
+(S64) -9223372036854775807 < (U32) 65536
true
--9223372036854775807 < 4294967295
+(S64) -9223372036854775807 < (U32) 4294967295
true
--9223372036854775807 < 4294967296
+(S64) -9223372036854775807 < (U64) 4294967296
true
--9223372036854775807 < 18446744073709551615
+(S64) -9223372036854775807 < (U64) 18446744073709551615
true
--9223372036854775807 < 18446744073709551616
+(S64) -9223372036854775807 < 18446744073709551616
true
--9223372036854775807 < 340282366920938463463374607431768211455
+(S64) -9223372036854775807 < 340282366920938463463374607431768211455
true
--9223372036854775807 < 340282366920938463463374607431768211456
+(S64) -9223372036854775807 < 340282366920938463463374607431768211456
true
--2147483648 < -170141183460469231731687303715884105728
+(S64) -2147483648 < -170141183460469231731687303715884105728
false
--2147483648 < -170141183460469231731687303715884105727
+(S64) -2147483648 < -170141183460469231731687303715884105727
false
--2147483648 < -9223372036854775808
+(S64) -2147483648 < -9223372036854775808
false
--2147483648 < -9223372036854775807
+(S64) -2147483648 < (S64) -9223372036854775807
false
--2147483648 < -2147483648
+(S64) -2147483648 < (S64) -2147483648
false
--2147483648 < -2147483647
+(S64) -2147483648 < (S32) -2147483647
true
--2147483648 < -32768
+(S64) -2147483648 < (S32) -32768
true
--2147483648 < -32767
+(S64) -2147483648 < (S16) -32767
true
--2147483648 < -128
+(S64) -2147483648 < (S16) -128
true
--2147483648 < -127
+(S64) -2147483648 < (S8) -127
true
--2147483648 < 255
+(S64) -2147483648 < (U8) 255
true
--2147483648 < 256
+(S64) -2147483648 < (U16) 256
true
--2147483648 < 65535
+(S64) -2147483648 < (U16) 65535
true
--2147483648 < 65536
+(S64) -2147483648 < (U32) 65536
true
--2147483648 < 4294967295
+(S64) -2147483648 < (U32) 4294967295
true
--2147483648 < 4294967296
+(S64) -2147483648 < (U64) 4294967296
true
--2147483648 < 18446744073709551615
+(S64) -2147483648 < (U64) 18446744073709551615
true
--2147483648 < 18446744073709551616
+(S64) -2147483648 < 18446744073709551616
true
--2147483648 < 340282366920938463463374607431768211455
+(S64) -2147483648 < 340282366920938463463374607431768211455
true
--2147483648 < 340282366920938463463374607431768211456
+(S64) -2147483648 < 340282366920938463463374607431768211456
true
--2147483647 < -170141183460469231731687303715884105728
+(S32) -2147483647 < -170141183460469231731687303715884105728
false
--2147483647 < -170141183460469231731687303715884105727
+(S32) -2147483647 < -170141183460469231731687303715884105727
false
--2147483647 < -9223372036854775808
+(S32) -2147483647 < -9223372036854775808
false
--2147483647 < -9223372036854775807
+(S32) -2147483647 < (S64) -9223372036854775807
false
--2147483647 < -2147483648
+(S32) -2147483647 < (S64) -2147483648
false
--2147483647 < -2147483647
+(S32) -2147483647 < (S32) -2147483647
false
--2147483647 < -32768
+(S32) -2147483647 < (S32) -32768
true
--2147483647 < -32767
+(S32) -2147483647 < (S16) -32767
true
--2147483647 < -128
+(S32) -2147483647 < (S16) -128
true
--2147483647 < -127
+(S32) -2147483647 < (S8) -127
true
--2147483647 < 255
+(S32) -2147483647 < (U8) 255
true
--2147483647 < 256
+(S32) -2147483647 < (U16) 256
true
--2147483647 < 65535
+(S32) -2147483647 < (U16) 65535
true
--2147483647 < 65536
+(S32) -2147483647 < (U32) 65536
true
--2147483647 < 4294967295
+(S32) -2147483647 < (U32) 4294967295
true
--2147483647 < 4294967296
+(S32) -2147483647 < (U64) 4294967296
true
--2147483647 < 18446744073709551615
+(S32) -2147483647 < (U64) 18446744073709551615
true
--2147483647 < 18446744073709551616
+(S32) -2147483647 < 18446744073709551616
true
--2147483647 < 340282366920938463463374607431768211455
+(S32) -2147483647 < 340282366920938463463374607431768211455
true
--2147483647 < 340282366920938463463374607431768211456
+(S32) -2147483647 < 340282366920938463463374607431768211456
true
--32768 < -170141183460469231731687303715884105728
+(S32) -32768 < -170141183460469231731687303715884105728
false
--32768 < -170141183460469231731687303715884105727
+(S32) -32768 < -170141183460469231731687303715884105727
false
--32768 < -9223372036854775808
+(S32) -32768 < -9223372036854775808
false
--32768 < -9223372036854775807
+(S32) -32768 < (S64) -9223372036854775807
false
--32768 < -2147483648
+(S32) -32768 < (S64) -2147483648
false
--32768 < -2147483647
+(S32) -32768 < (S32) -2147483647
false
--32768 < -32768
+(S32) -32768 < (S32) -32768
false
--32768 < -32767
+(S32) -32768 < (S16) -32767
true
--32768 < -128
+(S32) -32768 < (S16) -128
true
--32768 < -127
+(S32) -32768 < (S8) -127
true
--32768 < 255
+(S32) -32768 < (U8) 255
true
--32768 < 256
+(S32) -32768 < (U16) 256
true
--32768 < 65535
+(S32) -32768 < (U16) 65535
true
--32768 < 65536
+(S32) -32768 < (U32) 65536
true
--32768 < 4294967295
+(S32) -32768 < (U32) 4294967295
true
--32768 < 4294967296
+(S32) -32768 < (U64) 4294967296
true
--32768 < 18446744073709551615
+(S32) -32768 < (U64) 18446744073709551615
true
--32768 < 18446744073709551616
+(S32) -32768 < 18446744073709551616
true
--32768 < 340282366920938463463374607431768211455
+(S32) -32768 < 340282366920938463463374607431768211455
true
--32768 < 340282366920938463463374607431768211456
+(S32) -32768 < 340282366920938463463374607431768211456
true
--32767 < -170141183460469231731687303715884105728
+(S16) -32767 < -170141183460469231731687303715884105728
false
--32767 < -170141183460469231731687303715884105727
+(S16) -32767 < -170141183460469231731687303715884105727
false
--32767 < -9223372036854775808
+(S16) -32767 < -9223372036854775808
false
--32767 < -9223372036854775807
+(S16) -32767 < (S64) -9223372036854775807
false
--32767 < -2147483648
+(S16) -32767 < (S64) -2147483648
false
--32767 < -2147483647
+(S16) -32767 < (S32) -2147483647
false
--32767 < -32768
+(S16) -32767 < (S32) -32768
false
--32767 < -32767
+(S16) -32767 < (S16) -32767
false
--32767 < -128
+(S16) -32767 < (S16) -128
true
--32767 < -127
+(S16) -32767 < (S8) -127
true
--32767 < 255
+(S16) -32767 < (U8) 255
true
--32767 < 256
+(S16) -32767 < (U16) 256
true
--32767 < 65535
+(S16) -32767 < (U16) 65535
true
--32767 < 65536
+(S16) -32767 < (U32) 65536
true
--32767 < 4294967295
+(S16) -32767 < (U32) 4294967295
true
--32767 < 4294967296
+(S16) -32767 < (U64) 4294967296
true
--32767 < 18446744073709551615
+(S16) -32767 < (U64) 18446744073709551615
true
--32767 < 18446744073709551616
+(S16) -32767 < 18446744073709551616
true
--32767 < 340282366920938463463374607431768211455
+(S16) -32767 < 340282366920938463463374607431768211455
true
--32767 < 340282366920938463463374607431768211456
+(S16) -32767 < 340282366920938463463374607431768211456
true
--128 < -170141183460469231731687303715884105728
+(S16) -128 < -170141183460469231731687303715884105728
false
--128 < -170141183460469231731687303715884105727
+(S16) -128 < -170141183460469231731687303715884105727
false
--128 < -9223372036854775808
+(S16) -128 < -9223372036854775808
false
--128 < -9223372036854775807
+(S16) -128 < (S64) -9223372036854775807
false
--128 < -2147483648
+(S16) -128 < (S64) -2147483648
false
--128 < -2147483647
+(S16) -128 < (S32) -2147483647
false
--128 < -32768
+(S16) -128 < (S32) -32768
false
--128 < -32767
+(S16) -128 < (S16) -32767
false
--128 < -128
+(S16) -128 < (S16) -128
false
--128 < -127
+(S16) -128 < (S8) -127
true
--128 < 255
+(S16) -128 < (U8) 255
true
--128 < 256
+(S16) -128 < (U16) 256
true
--128 < 65535
+(S16) -128 < (U16) 65535
true
--128 < 65536
+(S16) -128 < (U32) 65536
true
--128 < 4294967295
+(S16) -128 < (U32) 4294967295
true
--128 < 4294967296
+(S16) -128 < (U64) 4294967296
true
--128 < 18446744073709551615
+(S16) -128 < (U64) 18446744073709551615
true
--128 < 18446744073709551616
+(S16) -128 < 18446744073709551616
true
--128 < 340282366920938463463374607431768211455
+(S16) -128 < 340282366920938463463374607431768211455
true
--128 < 340282366920938463463374607431768211456
+(S16) -128 < 340282366920938463463374607431768211456
true
--127 < -170141183460469231731687303715884105728
+(S8) -127 < -170141183460469231731687303715884105728
false
--127 < -170141183460469231731687303715884105727
+(S8) -127 < -170141183460469231731687303715884105727
false
--127 < -9223372036854775808
+(S8) -127 < -9223372036854775808
false
--127 < -9223372036854775807
+(S8) -127 < (S64) -9223372036854775807
false
--127 < -2147483648
+(S8) -127 < (S64) -2147483648
false
--127 < -2147483647
+(S8) -127 < (S32) -2147483647
false
--127 < -32768
+(S8) -127 < (S32) -32768
false
--127 < -32767
+(S8) -127 < (S16) -32767
false
--127 < -128
+(S8) -127 < (S16) -128
false
--127 < -127
+(S8) -127 < (S8) -127
false
--127 < 255
+(S8) -127 < (U8) 255
true
--127 < 256
+(S8) -127 < (U16) 256
true
--127 < 65535
+(S8) -127 < (U16) 65535
true
--127 < 65536
+(S8) -127 < (U32) 65536
true
--127 < 4294967295
+(S8) -127 < (U32) 4294967295
true
--127 < 4294967296
+(S8) -127 < (U64) 4294967296
true
--127 < 18446744073709551615
+(S8) -127 < (U64) 18446744073709551615
true
--127 < 18446744073709551616
+(S8) -127 < 18446744073709551616
true
--127 < 340282366920938463463374607431768211455
+(S8) -127 < 340282366920938463463374607431768211455
true
--127 < 340282366920938463463374607431768211456
+(S8) -127 < 340282366920938463463374607431768211456
true
-255 < -170141183460469231731687303715884105728
+(U8) 255 < -170141183460469231731687303715884105728
false
-255 < -170141183460469231731687303715884105727
+(U8) 255 < -170141183460469231731687303715884105727
false
-255 < -9223372036854775808
+(U8) 255 < -9223372036854775808
false
-255 < -9223372036854775807
+(U8) 255 < (S64) -9223372036854775807
false
-255 < -2147483648
+(U8) 255 < (S64) -2147483648
false
-255 < -2147483647
+(U8) 255 < (S32) -2147483647
false
-255 < -32768
+(U8) 255 < (S32) -32768
false
-255 < -32767
+(U8) 255 < (S16) -32767
false
-255 < -128
+(U8) 255 < (S16) -128
false
-255 < -127
+(U8) 255 < (S8) -127
false
-255 < 255
+(U8) 255 < (U8) 255
false
-255 < 256
+(U8) 255 < (U16) 256
true
-255 < 65535
+(U8) 255 < (U16) 65535
true
-255 < 65536
+(U8) 255 < (U32) 65536
true
-255 < 4294967295
+(U8) 255 < (U32) 4294967295
true
-255 < 4294967296
+(U8) 255 < (U64) 4294967296
true
-255 < 18446744073709551615
+(U8) 255 < (U64) 18446744073709551615
true
-255 < 18446744073709551616
+(U8) 255 < 18446744073709551616
true
-255 < 340282366920938463463374607431768211455
+(U8) 255 < 340282366920938463463374607431768211455
true
-255 < 340282366920938463463374607431768211456
+(U8) 255 < 340282366920938463463374607431768211456
true
-256 < -170141183460469231731687303715884105728
+(U16) 256 < -170141183460469231731687303715884105728
false
-256 < -170141183460469231731687303715884105727
+(U16) 256 < -170141183460469231731687303715884105727
false
-256 < -9223372036854775808
+(U16) 256 < -9223372036854775808
false
-256 < -9223372036854775807
+(U16) 256 < (S64) -9223372036854775807
false
-256 < -2147483648
+(U16) 256 < (S64) -2147483648
false
-256 < -2147483647
+(U16) 256 < (S32) -2147483647
false
-256 < -32768
+(U16) 256 < (S32) -32768
false
-256 < -32767
+(U16) 256 < (S16) -32767
false
-256 < -128
+(U16) 256 < (S16) -128
false
-256 < -127
+(U16) 256 < (S8) -127
false
-256 < 255
+(U16) 256 < (U8) 255
false
-256 < 256
+(U16) 256 < (U16) 256
false
-256 < 65535
+(U16) 256 < (U16) 65535
true
-256 < 65536
+(U16) 256 < (U32) 65536
true
-256 < 4294967295
+(U16) 256 < (U32) 4294967295
true
-256 < 4294967296
+(U16) 256 < (U64) 4294967296
true
-256 < 18446744073709551615
+(U16) 256 < (U64) 18446744073709551615
true
-256 < 18446744073709551616
+(U16) 256 < 18446744073709551616
true
-256 < 340282366920938463463374607431768211455
+(U16) 256 < 340282366920938463463374607431768211455
true
-256 < 340282366920938463463374607431768211456
+(U16) 256 < 340282366920938463463374607431768211456
true
-65535 < -170141183460469231731687303715884105728
+(U16) 65535 < -170141183460469231731687303715884105728
false
-65535 < -170141183460469231731687303715884105727
+(U16) 65535 < -170141183460469231731687303715884105727
false
-65535 < -9223372036854775808
+(U16) 65535 < -9223372036854775808
false
-65535 < -9223372036854775807
+(U16) 65535 < (S64) -9223372036854775807
false
-65535 < -2147483648
+(U16) 65535 < (S64) -2147483648
false
-65535 < -2147483647
+(U16) 65535 < (S32) -2147483647
false
-65535 < -32768
+(U16) 65535 < (S32) -32768
false
-65535 < -32767
+(U16) 65535 < (S16) -32767
false
-65535 < -128
+(U16) 65535 < (S16) -128
false
-65535 < -127
+(U16) 65535 < (S8) -127
false
-65535 < 255
+(U16) 65535 < (U8) 255
false
-65535 < 256
+(U16) 65535 < (U16) 256
false
-65535 < 65535
+(U16) 65535 < (U16) 65535
false
-65535 < 65536
+(U16) 65535 < (U32) 65536
true
-65535 < 4294967295
+(U16) 65535 < (U32) 4294967295
true
-65535 < 4294967296
+(U16) 65535 < (U64) 4294967296
true
-65535 < 18446744073709551615
+(U16) 65535 < (U64) 18446744073709551615
true
-65535 < 18446744073709551616
+(U16) 65535 < 18446744073709551616
true
-65535 < 340282366920938463463374607431768211455
+(U16) 65535 < 340282366920938463463374607431768211455
true
-65535 < 340282366920938463463374607431768211456
+(U16) 65535 < 340282366920938463463374607431768211456
true
-65536 < -170141183460469231731687303715884105728
+(U32) 65536 < -170141183460469231731687303715884105728
false
-65536 < -170141183460469231731687303715884105727
+(U32) 65536 < -170141183460469231731687303715884105727
false
-65536 < -9223372036854775808
+(U32) 65536 < -9223372036854775808
false
-65536 < -9223372036854775807
+(U32) 65536 < (S64) -9223372036854775807
false
-65536 < -2147483648
+(U32) 65536 < (S64) -2147483648
false
-65536 < -2147483647
+(U32) 65536 < (S32) -2147483647
false
-65536 < -32768
+(U32) 65536 < (S32) -32768
false
-65536 < -32767
+(U32) 65536 < (S16) -32767
false
-65536 < -128
+(U32) 65536 < (S16) -128
false
-65536 < -127
+(U32) 65536 < (S8) -127
false
-65536 < 255
+(U32) 65536 < (U8) 255
false
-65536 < 256
+(U32) 65536 < (U16) 256
false
-65536 < 65535
+(U32) 65536 < (U16) 65535
false
-65536 < 65536
+(U32) 65536 < (U32) 65536
false
-65536 < 4294967295
+(U32) 65536 < (U32) 4294967295
true
-65536 < 4294967296
+(U32) 65536 < (U64) 4294967296
true
-65536 < 18446744073709551615
+(U32) 65536 < (U64) 18446744073709551615
true
-65536 < 18446744073709551616
+(U32) 65536 < 18446744073709551616
true
-65536 < 340282366920938463463374607431768211455
+(U32) 65536 < 340282366920938463463374607431768211455
true
-65536 < 340282366920938463463374607431768211456
+(U32) 65536 < 340282366920938463463374607431768211456
true
-4294967295 < -170141183460469231731687303715884105728
+(U32) 4294967295 < -170141183460469231731687303715884105728
false
-4294967295 < -170141183460469231731687303715884105727
+(U32) 4294967295 < -170141183460469231731687303715884105727
false
-4294967295 < -9223372036854775808
+(U32) 4294967295 < -9223372036854775808
false
-4294967295 < -9223372036854775807
+(U32) 4294967295 < (S64) -9223372036854775807
false
-4294967295 < -2147483648
+(U32) 4294967295 < (S64) -2147483648
false
-4294967295 < -2147483647
+(U32) 4294967295 < (S32) -2147483647
false
-4294967295 < -32768
+(U32) 4294967295 < (S32) -32768
false
-4294967295 < -32767
+(U32) 4294967295 < (S16) -32767
false
-4294967295 < -128
+(U32) 4294967295 < (S16) -128
false
-4294967295 < -127
+(U32) 4294967295 < (S8) -127
false
-4294967295 < 255
+(U32) 4294967295 < (U8) 255
false
-4294967295 < 256
+(U32) 4294967295 < (U16) 256
false
-4294967295 < 65535
+(U32) 4294967295 < (U16) 65535
false
-4294967295 < 65536
+(U32) 4294967295 < (U32) 65536
false
-4294967295 < 4294967295
+(U32) 4294967295 < (U32) 4294967295
false
-4294967295 < 4294967296
+(U32) 4294967295 < (U64) 4294967296
true
-4294967295 < 18446744073709551615
+(U32) 4294967295 < (U64) 18446744073709551615
true
-4294967295 < 18446744073709551616
+(U32) 4294967295 < 18446744073709551616
true
-4294967295 < 340282366920938463463374607431768211455
+(U32) 4294967295 < 340282366920938463463374607431768211455
true
-4294967295 < 340282366920938463463374607431768211456
+(U32) 4294967295 < 340282366920938463463374607431768211456
true
-4294967296 < -170141183460469231731687303715884105728
+(U64) 4294967296 < -170141183460469231731687303715884105728
false
-4294967296 < -170141183460469231731687303715884105727
+(U64) 4294967296 < -170141183460469231731687303715884105727
false
-4294967296 < -9223372036854775808
+(U64) 4294967296 < -9223372036854775808
false
-4294967296 < -9223372036854775807
+(U64) 4294967296 < (S64) -9223372036854775807
false
-4294967296 < -2147483648
+(U64) 4294967296 < (S64) -2147483648
false
-4294967296 < -2147483647
+(U64) 4294967296 < (S32) -2147483647
false
-4294967296 < -32768
+(U64) 4294967296 < (S32) -32768
false
-4294967296 < -32767
+(U64) 4294967296 < (S16) -32767
false
-4294967296 < -128
+(U64) 4294967296 < (S16) -128
false
-4294967296 < -127
+(U64) 4294967296 < (S8) -127
false
-4294967296 < 255
+(U64) 4294967296 < (U8) 255
false
-4294967296 < 256
+(U64) 4294967296 < (U16) 256
false
-4294967296 < 65535
+(U64) 4294967296 < (U16) 65535
false
-4294967296 < 65536
+(U64) 4294967296 < (U32) 65536
false
-4294967296 < 4294967295
+(U64) 4294967296 < (U32) 4294967295
false
-4294967296 < 4294967296
+(U64) 4294967296 < (U64) 4294967296
false
-4294967296 < 18446744073709551615
+(U64) 4294967296 < (U64) 18446744073709551615
true
-4294967296 < 18446744073709551616
+(U64) 4294967296 < 18446744073709551616
true
-4294967296 < 340282366920938463463374607431768211455
+(U64) 4294967296 < 340282366920938463463374607431768211455
true
-4294967296 < 340282366920938463463374607431768211456
+(U64) 4294967296 < 340282366920938463463374607431768211456
true
-18446744073709551615 < -170141183460469231731687303715884105728
+(U64) 18446744073709551615 < -170141183460469231731687303715884105728
false
-18446744073709551615 < -170141183460469231731687303715884105727
+(U64) 18446744073709551615 < -170141183460469231731687303715884105727
false
-18446744073709551615 < -9223372036854775808
+(U64) 18446744073709551615 < -9223372036854775808
false
-18446744073709551615 < -9223372036854775807
+(U64) 18446744073709551615 < (S64) -9223372036854775807
false
-18446744073709551615 < -2147483648
+(U64) 18446744073709551615 < (S64) -2147483648
false
-18446744073709551615 < -2147483647
+(U64) 18446744073709551615 < (S32) -2147483647
false
-18446744073709551615 < -32768
+(U64) 18446744073709551615 < (S32) -32768
false
-18446744073709551615 < -32767
+(U64) 18446744073709551615 < (S16) -32767
false
-18446744073709551615 < -128
+(U64) 18446744073709551615 < (S16) -128
false
-18446744073709551615 < -127
+(U64) 18446744073709551615 < (S8) -127
false
-18446744073709551615 < 255
+(U64) 18446744073709551615 < (U8) 255
false
-18446744073709551615 < 256
+(U64) 18446744073709551615 < (U16) 256
false
-18446744073709551615 < 65535
+(U64) 18446744073709551615 < (U16) 65535
false
-18446744073709551615 < 65536
+(U64) 18446744073709551615 < (U32) 65536
false
-18446744073709551615 < 4294967295
+(U64) 18446744073709551615 < (U32) 4294967295
false
-18446744073709551615 < 4294967296
+(U64) 18446744073709551615 < (U64) 4294967296
false
-18446744073709551615 < 18446744073709551615
+(U64) 18446744073709551615 < (U64) 18446744073709551615
false
-18446744073709551615 < 18446744073709551616
+(U64) 18446744073709551615 < 18446744073709551616
true
-18446744073709551615 < 340282366920938463463374607431768211455
+(U64) 18446744073709551615 < 340282366920938463463374607431768211455
true
-18446744073709551615 < 340282366920938463463374607431768211456
+(U64) 18446744073709551615 < 340282366920938463463374607431768211456
true
18446744073709551616 < -170141183460469231731687303715884105728
false
@@ -684,33 +684,33 @@ false
false
18446744073709551616 < -9223372036854775808
false
-18446744073709551616 < -9223372036854775807
+18446744073709551616 < (S64) -9223372036854775807
false
-18446744073709551616 < -2147483648
+18446744073709551616 < (S64) -2147483648
false
-18446744073709551616 < -2147483647
+18446744073709551616 < (S32) -2147483647
false
-18446744073709551616 < -32768
+18446744073709551616 < (S32) -32768
false
-18446744073709551616 < -32767
+18446744073709551616 < (S16) -32767
false
-18446744073709551616 < -128
+18446744073709551616 < (S16) -128
false
-18446744073709551616 < -127
+18446744073709551616 < (S8) -127
false
-18446744073709551616 < 255
+18446744073709551616 < (U8) 255
false
-18446744073709551616 < 256
+18446744073709551616 < (U16) 256
false
-18446744073709551616 < 65535
+18446744073709551616 < (U16) 65535
false
-18446744073709551616 < 65536
+18446744073709551616 < (U32) 65536
false
-18446744073709551616 < 4294967295
+18446744073709551616 < (U32) 4294967295
false
-18446744073709551616 < 4294967296
+18446744073709551616 < (U64) 4294967296
false
-18446744073709551616 < 18446744073709551615
+18446744073709551616 < (U64) 18446744073709551615
false
18446744073709551616 < 18446744073709551616
false
@@ -724,33 +724,33 @@ false
false
340282366920938463463374607431768211455 < -9223372036854775808
false
-340282366920938463463374607431768211455 < -9223372036854775807
+340282366920938463463374607431768211455 < (S64) -9223372036854775807
false
-340282366920938463463374607431768211455 < -2147483648
+340282366920938463463374607431768211455 < (S64) -2147483648
false
-340282366920938463463374607431768211455 < -2147483647
+340282366920938463463374607431768211455 < (S32) -2147483647
false
-340282366920938463463374607431768211455 < -32768
+340282366920938463463374607431768211455 < (S32) -32768
false
-340282366920938463463374607431768211455 < -32767
+340282366920938463463374607431768211455 < (S16) -32767
false
-340282366920938463463374607431768211455 < -128
+340282366920938463463374607431768211455 < (S16) -128
false
-340282366920938463463374607431768211455 < -127
+340282366920938463463374607431768211455 < (S8) -127
false
-340282366920938463463374607431768211455 < 255
+340282366920938463463374607431768211455 < (U8) 255
false
-340282366920938463463374607431768211455 < 256
+340282366920938463463374607431768211455 < (U16) 256
false
-340282366920938463463374607431768211455 < 65535
+340282366920938463463374607431768211455 < (U16) 65535
false
-340282366920938463463374607431768211455 < 65536
+340282366920938463463374607431768211455 < (U32) 65536
false
-340282366920938463463374607431768211455 < 4294967295
+340282366920938463463374607431768211455 < (U32) 4294967295
false
-340282366920938463463374607431768211455 < 4294967296
+340282366920938463463374607431768211455 < (U64) 4294967296
false
-340282366920938463463374607431768211455 < 18446744073709551615
+340282366920938463463374607431768211455 < (U64) 18446744073709551615
false
340282366920938463463374607431768211455 < 18446744073709551616
false
@@ -764,33 +764,33 @@ false
false
340282366920938463463374607431768211456 < -9223372036854775808
false
-340282366920938463463374607431768211456 < -9223372036854775807
+340282366920938463463374607431768211456 < (S64) -9223372036854775807
false
-340282366920938463463374607431768211456 < -2147483648
+340282366920938463463374607431768211456 < (S64) -2147483648
false
-340282366920938463463374607431768211456 < -2147483647
+340282366920938463463374607431768211456 < (S32) -2147483647
false
-340282366920938463463374607431768211456 < -32768
+340282366920938463463374607431768211456 < (S32) -32768
false
-340282366920938463463374607431768211456 < -32767
+340282366920938463463374607431768211456 < (S16) -32767
false
-340282366920938463463374607431768211456 < -128
+340282366920938463463374607431768211456 < (S16) -128
false
-340282366920938463463374607431768211456 < -127
+340282366920938463463374607431768211456 < (S8) -127
false
-340282366920938463463374607431768211456 < 255
+340282366920938463463374607431768211456 < (U8) 255
false
-340282366920938463463374607431768211456 < 256
+340282366920938463463374607431768211456 < (U16) 256
false
-340282366920938463463374607431768211456 < 65535
+340282366920938463463374607431768211456 < (U16) 65535
false
-340282366920938463463374607431768211456 < 65536
+340282366920938463463374607431768211456 < (U32) 65536
false
-340282366920938463463374607431768211456 < 4294967295
+340282366920938463463374607431768211456 < (U32) 4294967295
false
-340282366920938463463374607431768211456 < 4294967296
+340282366920938463463374607431768211456 < (U64) 4294967296
false
-340282366920938463463374607431768211456 < 18446744073709551615
+340282366920938463463374607431768211456 < (U64) 18446744073709551615
false
340282366920938463463374607431768211456 < 18446744073709551616
false
diff --git a/test/ikc3/integer_mod-2.out.expected b/test/ikc3/integer_mod-2.out.expected
index e8f4f9e..7031332 100644
--- a/test/ikc3/integer_mod-2.out.expected
+++ b/test/ikc3/integer_mod-2.out.expected
@@ -4,34 +4,34 @@
-1
-170141183460469231731687303715884105728 mod -9223372036854775808
0
--170141183460469231731687303715884105728 mod -9223372036854775807
--2
--170141183460469231731687303715884105728 mod -2147483648
-0
--170141183460469231731687303715884105728 mod -2147483647
--8
--170141183460469231731687303715884105728 mod -32768
-0
--170141183460469231731687303715884105728 mod -32767
--128
--170141183460469231731687303715884105728 mod -128
-0
--170141183460469231731687303715884105728 mod -127
--2
--170141183460469231731687303715884105728 mod 255
-127
--170141183460469231731687303715884105728 mod 256
-0
--170141183460469231731687303715884105728 mod 65535
-32767
--170141183460469231731687303715884105728 mod 65536
-0
--170141183460469231731687303715884105728 mod 4294967295
-2147483647
--170141183460469231731687303715884105728 mod 4294967296
-0
--170141183460469231731687303715884105728 mod 18446744073709551615
-9223372036854775807
+-170141183460469231731687303715884105728 mod (S64) -9223372036854775807
+(S64) -2
+-170141183460469231731687303715884105728 mod (S64) -2147483648
+(S64) 0
+-170141183460469231731687303715884105728 mod (S32) -2147483647
+(S32) -8
+-170141183460469231731687303715884105728 mod (S32) -32768
+(S32) 0
+-170141183460469231731687303715884105728 mod (S16) -32767
+(S16) -128
+-170141183460469231731687303715884105728 mod (S16) -128
+(S16) 0
+-170141183460469231731687303715884105728 mod (S8) -127
+(S8) -2
+-170141183460469231731687303715884105728 mod (U8) 255
+(U8) 127
+-170141183460469231731687303715884105728 mod (U16) 256
+(U16) 0
+-170141183460469231731687303715884105728 mod (U16) 65535
+(U16) 32767
+-170141183460469231731687303715884105728 mod (U32) 65536
+(U32) 0
+-170141183460469231731687303715884105728 mod (U32) 4294967295
+(U32) 2147483647
+-170141183460469231731687303715884105728 mod (U64) 4294967296
+(U64) 0
+-170141183460469231731687303715884105728 mod (U64) 18446744073709551615
+(U64) 9223372036854775807
-170141183460469231731687303715884105728 mod 18446744073709551616
0
-170141183460469231731687303715884105728 mod 340282366920938463463374607431768211455
@@ -44,34 +44,34 @@
0
-170141183460469231731687303715884105727 mod -9223372036854775808
-9223372036854775807
--170141183460469231731687303715884105727 mod -9223372036854775807
--1
--170141183460469231731687303715884105727 mod -2147483648
--2147483647
--170141183460469231731687303715884105727 mod -2147483647
--7
--170141183460469231731687303715884105727 mod -32768
--32767
--170141183460469231731687303715884105727 mod -32767
--127
--170141183460469231731687303715884105727 mod -128
--127
--170141183460469231731687303715884105727 mod -127
--1
--170141183460469231731687303715884105727 mod 255
-128
--170141183460469231731687303715884105727 mod 256
-1
--170141183460469231731687303715884105727 mod 65535
-32768
--170141183460469231731687303715884105727 mod 65536
-1
--170141183460469231731687303715884105727 mod 4294967295
-2147483648
--170141183460469231731687303715884105727 mod 4294967296
-1
--170141183460469231731687303715884105727 mod 18446744073709551615
-9223372036854775808
+-170141183460469231731687303715884105727 mod (S64) -9223372036854775807
+(S64) -1
+-170141183460469231731687303715884105727 mod (S64) -2147483648
+(S64) -2147483647
+-170141183460469231731687303715884105727 mod (S32) -2147483647
+(S32) -7
+-170141183460469231731687303715884105727 mod (S32) -32768
+(S32) -32767
+-170141183460469231731687303715884105727 mod (S16) -32767
+(S16) -127
+-170141183460469231731687303715884105727 mod (S16) -128
+(S16) -127
+-170141183460469231731687303715884105727 mod (S8) -127
+(S8) -1
+-170141183460469231731687303715884105727 mod (U8) 255
+(U8) 128
+-170141183460469231731687303715884105727 mod (U16) 256
+(U16) 1
+-170141183460469231731687303715884105727 mod (U16) 65535
+(U16) 32768
+-170141183460469231731687303715884105727 mod (U32) 65536
+(U32) 1
+-170141183460469231731687303715884105727 mod (U32) 4294967295
+(U32) 2147483648
+-170141183460469231731687303715884105727 mod (U64) 4294967296
+(U64) 1
+-170141183460469231731687303715884105727 mod (U64) 18446744073709551615
+(U64) 9223372036854775808
-170141183460469231731687303715884105727 mod 18446744073709551616
1
-170141183460469231731687303715884105727 mod 340282366920938463463374607431768211455
@@ -84,599 +84,599 @@
-9223372036854775808
-9223372036854775808 mod -9223372036854775808
0
--9223372036854775808 mod -9223372036854775807
--1
--9223372036854775808 mod -2147483648
-0
--9223372036854775808 mod -2147483647
--2
--9223372036854775808 mod -32768
-0
--9223372036854775808 mod -32767
--8
--9223372036854775808 mod -128
-0
--9223372036854775808 mod -127
--1
--9223372036854775808 mod 255
-127
--9223372036854775808 mod 256
-0
--9223372036854775808 mod 65535
-32767
--9223372036854775808 mod 65536
-0
--9223372036854775808 mod 4294967295
-2147483647
--9223372036854775808 mod 4294967296
-0
--9223372036854775808 mod 18446744073709551615
-9223372036854775807
+-9223372036854775808 mod (S64) -9223372036854775807
+(S64) -1
+-9223372036854775808 mod (S64) -2147483648
+(S64) 0
+-9223372036854775808 mod (S32) -2147483647
+(S32) -2
+-9223372036854775808 mod (S32) -32768
+(S32) 0
+-9223372036854775808 mod (S16) -32767
+(S16) -8
+-9223372036854775808 mod (S16) -128
+(S16) 0
+-9223372036854775808 mod (S8) -127
+(S8) -1
+-9223372036854775808 mod (U8) 255
+(U8) 127
+-9223372036854775808 mod (U16) 256
+(U16) 0
+-9223372036854775808 mod (U16) 65535
+(U16) 32767
+-9223372036854775808 mod (U32) 65536
+(U32) 0
+-9223372036854775808 mod (U32) 4294967295
+(U32) 2147483647
+-9223372036854775808 mod (U64) 4294967296
+(U64) 0
+-9223372036854775808 mod (U64) 18446744073709551615
+(U64) 9223372036854775807
-9223372036854775808 mod 18446744073709551616
9223372036854775808
-9223372036854775808 mod 340282366920938463463374607431768211455
340282366920938463454151235394913435647
-9223372036854775808 mod 340282366920938463463374607431768211456
340282366920938463454151235394913435648
--9223372036854775807 mod -170141183460469231731687303715884105728
+(S64) -9223372036854775807 mod -170141183460469231731687303715884105728
-9223372036854775807
--9223372036854775807 mod -170141183460469231731687303715884105727
+(S64) -9223372036854775807 mod -170141183460469231731687303715884105727
-9223372036854775807
--9223372036854775807 mod -9223372036854775808
+(S64) -9223372036854775807 mod -9223372036854775808
-9223372036854775807
--9223372036854775807 mod -9223372036854775807
-0
--9223372036854775807 mod -2147483648
--2147483647
--9223372036854775807 mod -2147483647
--1
--9223372036854775807 mod -32768
--32767
--9223372036854775807 mod -32767
--7
--9223372036854775807 mod -128
--127
--9223372036854775807 mod -127
-0
--9223372036854775807 mod 255
-128
--9223372036854775807 mod 256
-1
--9223372036854775807 mod 65535
-32768
--9223372036854775807 mod 65536
+(S64) -9223372036854775807 mod (S64) -9223372036854775807
+(S64) 0
+(S64) -9223372036854775807 mod (S64) -2147483648
+(S64) -2147483647
+(S64) -9223372036854775807 mod (S32) -2147483647
+(S32) -1
+(S64) -9223372036854775807 mod (S32) -32768
+(S32) -32767
+(S64) -9223372036854775807 mod (S16) -32767
+(S16) -7
+(S64) -9223372036854775807 mod (S16) -128
+(S16) -127
+(S64) -9223372036854775807 mod (S8) -127
+(S8) 0
+(S64) -9223372036854775807 mod (U8) 255
+(U8) 128
+(S64) -9223372036854775807 mod (U16) 256
+(U16) 1
+(S64) -9223372036854775807 mod (U16) 65535
+(U16) 32768
+(S64) -9223372036854775807 mod (U32) 65536
+(U32) 1
+(S64) -9223372036854775807 mod (U32) 4294967295
+(U32) 2147483648
+(S64) -9223372036854775807 mod (U64) 4294967296
1
--9223372036854775807 mod 4294967295
-2147483648
--9223372036854775807 mod 4294967296
-1
--9223372036854775807 mod 18446744073709551615
+(S64) -9223372036854775807 mod (U64) 18446744073709551615
9223372036854775808
--9223372036854775807 mod 18446744073709551616
+(S64) -9223372036854775807 mod 18446744073709551616
9223372036854775809
--9223372036854775807 mod 340282366920938463463374607431768211455
+(S64) -9223372036854775807 mod 340282366920938463463374607431768211455
340282366920938463454151235394913435648
--9223372036854775807 mod 340282366920938463463374607431768211456
+(S64) -9223372036854775807 mod 340282366920938463463374607431768211456
340282366920938463454151235394913435649
--2147483648 mod -170141183460469231731687303715884105728
--2147483648
--2147483648 mod -170141183460469231731687303715884105727
+(S64) -2147483648 mod -170141183460469231731687303715884105728
-2147483648
--2147483648 mod -9223372036854775808
+(S64) -2147483648 mod -170141183460469231731687303715884105727
-2147483648
--2147483648 mod -9223372036854775807
+(S64) -2147483648 mod -9223372036854775808
-2147483648
--2147483648 mod -2147483648
-0
--2147483648 mod -2147483647
--1
--2147483648 mod -32768
-0
--2147483648 mod -32767
--2
--2147483648 mod -128
-0
--2147483648 mod -127
--8
--2147483648 mod 255
-127
--2147483648 mod 256
-0
--2147483648 mod 65535
-32767
--2147483648 mod 65536
-0
--2147483648 mod 4294967295
-2147483647
--2147483648 mod 4294967296
+(S64) -2147483648 mod (S64) -9223372036854775807
+(S64) -2147483648
+(S64) -2147483648 mod (S64) -2147483648
+(S64) 0
+(S64) -2147483648 mod (S32) -2147483647
+(S32) -1
+(S64) -2147483648 mod (S32) -32768
+(S32) 0
+(S64) -2147483648 mod (S16) -32767
+(S16) -2
+(S64) -2147483648 mod (S16) -128
+(S16) 0
+(S64) -2147483648 mod (S8) -127
+(S8) -8
+(S64) -2147483648 mod (U8) 255
+(U8) 127
+(S64) -2147483648 mod (U16) 256
+(U16) 0
+(S64) -2147483648 mod (U16) 65535
+(U16) 32767
+(S64) -2147483648 mod (U32) 65536
+(U32) 0
+(S64) -2147483648 mod (U32) 4294967295
+(U32) 2147483647
+(S64) -2147483648 mod (U64) 4294967296
2147483648
--2147483648 mod 18446744073709551615
+(S64) -2147483648 mod (U64) 18446744073709551615
18446744071562067967
--2147483648 mod 18446744073709551616
+(S64) -2147483648 mod 18446744073709551616
18446744071562067968
--2147483648 mod 340282366920938463463374607431768211455
+(S64) -2147483648 mod 340282366920938463463374607431768211455
340282366920938463463374607429620727807
--2147483648 mod 340282366920938463463374607431768211456
+(S64) -2147483648 mod 340282366920938463463374607431768211456
340282366920938463463374607429620727808
--2147483647 mod -170141183460469231731687303715884105728
--2147483647
--2147483647 mod -170141183460469231731687303715884105727
+(S32) -2147483647 mod -170141183460469231731687303715884105728
-2147483647
--2147483647 mod -9223372036854775808
+(S32) -2147483647 mod -170141183460469231731687303715884105727
-2147483647
--2147483647 mod -9223372036854775807
+(S32) -2147483647 mod -9223372036854775808
-2147483647
--2147483647 mod -2147483648
--2147483647
--2147483647 mod -2147483647
-0
--2147483647 mod -32768
--32767
--2147483647 mod -32767
--1
--2147483647 mod -128
--127
--2147483647 mod -127
--7
--2147483647 mod 255
-128
--2147483647 mod 256
-1
--2147483647 mod 65535
-32768
--2147483647 mod 65536
-1
--2147483647 mod 4294967295
-2147483648
--2147483647 mod 4294967296
+(S32) -2147483647 mod (S64) -9223372036854775807
+(S64) -2147483647
+(S32) -2147483647 mod (S64) -2147483648
+(S64) -2147483647
+(S32) -2147483647 mod (S32) -2147483647
+(S32) 0
+(S32) -2147483647 mod (S32) -32768
+(S32) -32767
+(S32) -2147483647 mod (S16) -32767
+(S16) -1
+(S32) -2147483647 mod (S16) -128
+(S16) -127
+(S32) -2147483647 mod (S8) -127
+(S8) -7
+(S32) -2147483647 mod (U8) 255
+(U8) 128
+(S32) -2147483647 mod (U16) 256
+(U16) 1
+(S32) -2147483647 mod (U16) 65535
+(U16) 32768
+(S32) -2147483647 mod (U32) 65536
+(U32) 1
+(S32) -2147483647 mod (U32) 4294967295
+(U32) 2147483648
+(S32) -2147483647 mod (U64) 4294967296
2147483649
--2147483647 mod 18446744073709551615
+(S32) -2147483647 mod (U64) 18446744073709551615
18446744071562067968
--2147483647 mod 18446744073709551616
+(S32) -2147483647 mod 18446744073709551616
18446744071562067969
--2147483647 mod 340282366920938463463374607431768211455
+(S32) -2147483647 mod 340282366920938463463374607431768211455
340282366920938463463374607429620727808
--2147483647 mod 340282366920938463463374607431768211456
+(S32) -2147483647 mod 340282366920938463463374607431768211456
340282366920938463463374607429620727809
--32768 mod -170141183460469231731687303715884105728
--32768
--32768 mod -170141183460469231731687303715884105727
--32768
--32768 mod -9223372036854775808
--32768
--32768 mod -9223372036854775807
+(S32) -32768 mod -170141183460469231731687303715884105728
-32768
--32768 mod -2147483648
+(S32) -32768 mod -170141183460469231731687303715884105727
-32768
--32768 mod -2147483647
+(S32) -32768 mod -9223372036854775808
-32768
--32768 mod -32768
-0
--32768 mod -32767
--1
--32768 mod -128
-0
--32768 mod -127
--2
--32768 mod 255
-127
--32768 mod 256
-0
--32768 mod 65535
-32767
--32768 mod 65536
-32768
--32768 mod 4294967295
-4294934527
--32768 mod 4294967296
+(S32) -32768 mod (S64) -9223372036854775807
+(S64) -32768
+(S32) -32768 mod (S64) -2147483648
+(S64) -32768
+(S32) -32768 mod (S32) -2147483647
+(S32) -32768
+(S32) -32768 mod (S32) -32768
+(S32) 0
+(S32) -32768 mod (S16) -32767
+(S16) -1
+(S32) -32768 mod (S16) -128
+(S16) 0
+(S32) -32768 mod (S8) -127
+(S8) -2
+(S32) -32768 mod (U8) 255
+(U8) 127
+(S32) -32768 mod (U16) 256
+(U16) 0
+(S32) -32768 mod (U16) 65535
+(U16) 32767
+(S32) -32768 mod (U32) 65536
+(U32) 32768
+(S32) -32768 mod (U32) 4294967295
+(U32) 4294934527
+(S32) -32768 mod (U64) 4294967296
4294934528
--32768 mod 18446744073709551615
+(S32) -32768 mod (U64) 18446744073709551615
18446744073709518847
--32768 mod 18446744073709551616
+(S32) -32768 mod 18446744073709551616
18446744073709518848
--32768 mod 340282366920938463463374607431768211455
+(S32) -32768 mod 340282366920938463463374607431768211455
340282366920938463463374607431768178687
--32768 mod 340282366920938463463374607431768211456
+(S32) -32768 mod 340282366920938463463374607431768211456
340282366920938463463374607431768178688
--32767 mod -170141183460469231731687303715884105728
--32767
--32767 mod -170141183460469231731687303715884105727
--32767
--32767 mod -9223372036854775808
+(S16) -32767 mod -170141183460469231731687303715884105728
-32767
--32767 mod -9223372036854775807
+(S16) -32767 mod -170141183460469231731687303715884105727
-32767
--32767 mod -2147483648
+(S16) -32767 mod -9223372036854775808
-32767
--32767 mod -2147483647
--32767
--32767 mod -32768
--32767
--32767 mod -32767
-0
--32767 mod -128
--127
--32767 mod -127
--1
--32767 mod 255
-128
--32767 mod 256
-1
--32767 mod 65535
-32768
--32767 mod 65536
-32769
--32767 mod 4294967295
-4294934528
--32767 mod 4294967296
+(S16) -32767 mod (S64) -9223372036854775807
+(S16) -32767
+(S16) -32767 mod (S64) -2147483648
+(S16) -32767
+(S16) -32767 mod (S32) -2147483647
+(S16) -32767
+(S16) -32767 mod (S32) -32768
+(S16) -32767
+(S16) -32767 mod (S16) -32767
+(S16) 0
+(S16) -32767 mod (S16) -128
+(S16) -127
+(S16) -32767 mod (S8) -127
+(S8) -1
+(S16) -32767 mod (U8) 255
+(U8) 128
+(S16) -32767 mod (U16) 256
+(U16) 1
+(S16) -32767 mod (U16) 65535
+(U16) 32768
+(S16) -32767 mod (U32) 65536
+(U32) 32769
+(S16) -32767 mod (U32) 4294967295
+(U32) 4294934528
+(S16) -32767 mod (U64) 4294967296
4294934529
--32767 mod 18446744073709551615
+(S16) -32767 mod (U64) 18446744073709551615
18446744073709518848
--32767 mod 18446744073709551616
+(S16) -32767 mod 18446744073709551616
18446744073709518849
--32767 mod 340282366920938463463374607431768211455
+(S16) -32767 mod 340282366920938463463374607431768211455
340282366920938463463374607431768178688
--32767 mod 340282366920938463463374607431768211456
+(S16) -32767 mod 340282366920938463463374607431768211456
340282366920938463463374607431768178689
--128 mod -170141183460469231731687303715884105728
--128
--128 mod -170141183460469231731687303715884105727
--128
--128 mod -9223372036854775808
--128
--128 mod -9223372036854775807
--128
--128 mod -2147483648
+(S16) -128 mod -170141183460469231731687303715884105728
-128
--128 mod -2147483647
+(S16) -128 mod -170141183460469231731687303715884105727
-128
--128 mod -32768
+(S16) -128 mod -9223372036854775808
-128
--128 mod -32767
--128
--128 mod -128
-0
--128 mod -127
--1
--128 mod 255
-127
--128 mod 256
-128
--128 mod 65535
-65407
--128 mod 65536
-65408
--128 mod 4294967295
-4294967167
--128 mod 4294967296
+(S16) -128 mod (S64) -9223372036854775807
+(S16) -128
+(S16) -128 mod (S64) -2147483648
+(S16) -128
+(S16) -128 mod (S32) -2147483647
+(S16) -128
+(S16) -128 mod (S32) -32768
+(S16) -128
+(S16) -128 mod (S16) -32767
+(S16) -128
+(S16) -128 mod (S16) -128
+(S16) 0
+(S16) -128 mod (S8) -127
+(S8) -1
+(S16) -128 mod (U8) 255
+(U8) 127
+(S16) -128 mod (U16) 256
+(U16) 128
+(S16) -128 mod (U16) 65535
+(U16) 65407
+(S16) -128 mod (U32) 65536
+(U32) 65408
+(S16) -128 mod (U32) 4294967295
+(U32) 4294967167
+(S16) -128 mod (U64) 4294967296
4294967168
--128 mod 18446744073709551615
+(S16) -128 mod (U64) 18446744073709551615
18446744073709551487
--128 mod 18446744073709551616
+(S16) -128 mod 18446744073709551616
18446744073709551488
--128 mod 340282366920938463463374607431768211455
+(S16) -128 mod 340282366920938463463374607431768211455
340282366920938463463374607431768211327
--128 mod 340282366920938463463374607431768211456
+(S16) -128 mod 340282366920938463463374607431768211456
340282366920938463463374607431768211328
--127 mod -170141183460469231731687303715884105728
--127
--127 mod -170141183460469231731687303715884105727
--127
--127 mod -9223372036854775808
+(S8) -127 mod -170141183460469231731687303715884105728
-127
--127 mod -9223372036854775807
+(S8) -127 mod -170141183460469231731687303715884105727
-127
--127 mod -2147483648
+(S8) -127 mod -9223372036854775808
-127
--127 mod -2147483647
--127
--127 mod -32768
--127
--127 mod -32767
--127
--127 mod -128
--127
--127 mod -127
-0
--127 mod 255
-128
--127 mod 256
-129
--127 mod 65535
-65408
--127 mod 65536
-65409
--127 mod 4294967295
-4294967168
--127 mod 4294967296
+(S8) -127 mod (S64) -9223372036854775807
+(S8) -127
+(S8) -127 mod (S64) -2147483648
+(S8) -127
+(S8) -127 mod (S32) -2147483647
+(S8) -127
+(S8) -127 mod (S32) -32768
+(S8) -127
+(S8) -127 mod (S16) -32767
+(S8) -127
+(S8) -127 mod (S16) -128
+(S8) -127
+(S8) -127 mod (S8) -127
+(S8) 0
+(S8) -127 mod (U8) 255
+(U8) 128
+(S8) -127 mod (U16) 256
+(U16) 129
+(S8) -127 mod (U16) 65535
+(U16) 65408
+(S8) -127 mod (U32) 65536
+(U32) 65409
+(S8) -127 mod (U32) 4294967295
+(U32) 4294967168
+(S8) -127 mod (U64) 4294967296
4294967169
--127 mod 18446744073709551615
+(S8) -127 mod (U64) 18446744073709551615
18446744073709551488
--127 mod 18446744073709551616
+(S8) -127 mod 18446744073709551616
18446744073709551489
--127 mod 340282366920938463463374607431768211455
+(S8) -127 mod 340282366920938463463374607431768211455
340282366920938463463374607431768211328
--127 mod 340282366920938463463374607431768211456
+(S8) -127 mod 340282366920938463463374607431768211456
340282366920938463463374607431768211329
-255 mod -170141183460469231731687303715884105728
+(U8) 255 mod -170141183460469231731687303715884105728
-170141183460469231731687303715884105473
-255 mod -170141183460469231731687303715884105727
+(U8) 255 mod -170141183460469231731687303715884105727
-170141183460469231731687303715884105472
-255 mod -9223372036854775808
+(U8) 255 mod -9223372036854775808
-9223372036854775553
-255 mod -9223372036854775807
+(U8) 255 mod (S64) -9223372036854775807
-9223372036854775552
-255 mod -2147483648
+(U8) 255 mod (S64) -2147483648
-2147483393
-255 mod -2147483647
--2147483392
-255 mod -32768
--32513
-255 mod -32767
--32512
-255 mod -128
--1
-255 mod -127
--126
-255 mod 255
-0
-255 mod 256
+(U8) 255 mod (S32) -2147483647
+(S32) -2147483392
+(U8) 255 mod (S32) -32768
+(S32) -32513
+(U8) 255 mod (S16) -32767
+(S16) -32512
+(U8) 255 mod (S16) -128
+(S16) -1
+(U8) 255 mod (S8) -127
+(S8) -126
+(U8) 255 mod (U8) 255
+(U8) 0
+(U8) 255 mod (U16) 256
+(U8) 255
+(U8) 255 mod (U16) 65535
+(U8) 255
+(U8) 255 mod (U32) 65536
+(U8) 255
+(U8) 255 mod (U32) 4294967295
+(U8) 255
+(U8) 255 mod (U64) 4294967296
+(U8) 255
+(U8) 255 mod (U64) 18446744073709551615
+(U8) 255
+(U8) 255 mod 18446744073709551616
255
-255 mod 65535
+(U8) 255 mod 340282366920938463463374607431768211455
255
-255 mod 65536
+(U8) 255 mod 340282366920938463463374607431768211456
255
-255 mod 4294967295
-255
-255 mod 4294967296
-255
-255 mod 18446744073709551615
-255
-255 mod 18446744073709551616
-255
-255 mod 340282366920938463463374607431768211455
-255
-255 mod 340282366920938463463374607431768211456
-255
-256 mod -170141183460469231731687303715884105728
+(U16) 256 mod -170141183460469231731687303715884105728
-170141183460469231731687303715884105472
-256 mod -170141183460469231731687303715884105727
+(U16) 256 mod -170141183460469231731687303715884105727
-170141183460469231731687303715884105471
-256 mod -9223372036854775808
+(U16) 256 mod -9223372036854775808
-9223372036854775552
-256 mod -9223372036854775807
+(U16) 256 mod (S64) -9223372036854775807
-9223372036854775551
-256 mod -2147483648
+(U16) 256 mod (S64) -2147483648
-2147483392
-256 mod -2147483647
--2147483391
-256 mod -32768
--32512
-256 mod -32767
--32511
-256 mod -128
-0
-256 mod -127
--125
-256 mod 255
-1
-256 mod 256
-0
-256 mod 65535
-256
-256 mod 65536
-256
-256 mod 4294967295
+(U16) 256 mod (S32) -2147483647
+(S32) -2147483391
+(U16) 256 mod (S32) -32768
+(S32) -32512
+(U16) 256 mod (S16) -32767
+(S16) -32511
+(U16) 256 mod (S16) -128
+(S16) 0
+(U16) 256 mod (S8) -127
+(S8) -125
+(U16) 256 mod (U8) 255
+(U8) 1
+(U16) 256 mod (U16) 256
+(U16) 0
+(U16) 256 mod (U16) 65535
+(U16) 256
+(U16) 256 mod (U32) 65536
+(U16) 256
+(U16) 256 mod (U32) 4294967295
+(U16) 256
+(U16) 256 mod (U64) 4294967296
+(U16) 256
+(U16) 256 mod (U64) 18446744073709551615
+(U16) 256
+(U16) 256 mod 18446744073709551616
256
-256 mod 4294967296
+(U16) 256 mod 340282366920938463463374607431768211455
256
-256 mod 18446744073709551615
+(U16) 256 mod 340282366920938463463374607431768211456
256
-256 mod 18446744073709551616
-256
-256 mod 340282366920938463463374607431768211455
-256
-256 mod 340282366920938463463374607431768211456
-256
-65535 mod -170141183460469231731687303715884105728
+(U16) 65535 mod -170141183460469231731687303715884105728
-170141183460469231731687303715884040193
-65535 mod -170141183460469231731687303715884105727
+(U16) 65535 mod -170141183460469231731687303715884105727
-170141183460469231731687303715884040192
-65535 mod -9223372036854775808
+(U16) 65535 mod -9223372036854775808
-9223372036854710273
-65535 mod -9223372036854775807
+(U16) 65535 mod (S64) -9223372036854775807
-9223372036854710272
-65535 mod -2147483648
+(U16) 65535 mod (S64) -2147483648
-2147418113
-65535 mod -2147483647
--2147418112
-65535 mod -32768
--1
-65535 mod -32767
--32766
-65535 mod -128
--1
-65535 mod -127
--124
-65535 mod 255
-0
-65535 mod 256
-255
-65535 mod 65535
-0
-65535 mod 65536
-65535
-65535 mod 4294967295
-65535
-65535 mod 4294967296
+(U16) 65535 mod (S32) -2147483647
+(S32) -2147418112
+(U16) 65535 mod (S32) -32768
+(S32) -1
+(U16) 65535 mod (S16) -32767
+(S16) -32766
+(U16) 65535 mod (S16) -128
+(S16) -1
+(U16) 65535 mod (S8) -127
+(S8) -124
+(U16) 65535 mod (U8) 255
+(U8) 0
+(U16) 65535 mod (U16) 256
+(U16) 255
+(U16) 65535 mod (U16) 65535
+(U16) 0
+(U16) 65535 mod (U32) 65536
+(U16) 65535
+(U16) 65535 mod (U32) 4294967295
+(U16) 65535
+(U16) 65535 mod (U64) 4294967296
+(U16) 65535
+(U16) 65535 mod (U64) 18446744073709551615
+(U16) 65535
+(U16) 65535 mod 18446744073709551616
65535
-65535 mod 18446744073709551615
+(U16) 65535 mod 340282366920938463463374607431768211455
65535
-65535 mod 18446744073709551616
+(U16) 65535 mod 340282366920938463463374607431768211456
65535
-65535 mod 340282366920938463463374607431768211455
-65535
-65535 mod 340282366920938463463374607431768211456
-65535
-65536 mod -170141183460469231731687303715884105728
+(U32) 65536 mod -170141183460469231731687303715884105728
-170141183460469231731687303715884040192
-65536 mod -170141183460469231731687303715884105727
+(U32) 65536 mod -170141183460469231731687303715884105727
-170141183460469231731687303715884040191
-65536 mod -9223372036854775808
+(U32) 65536 mod -9223372036854775808
-9223372036854710272
-65536 mod -9223372036854775807
+(U32) 65536 mod (S64) -9223372036854775807
-9223372036854710271
-65536 mod -2147483648
+(U32) 65536 mod (S64) -2147483648
-2147418112
-65536 mod -2147483647
--2147418111
-65536 mod -32768
-0
-65536 mod -32767
--32765
-65536 mod -128
-0
-65536 mod -127
--123
-65536 mod 255
-1
-65536 mod 256
-0
-65536 mod 65535
-1
-65536 mod 65536
-0
-65536 mod 4294967295
-65536
-65536 mod 4294967296
-65536
-65536 mod 18446744073709551615
-65536
-65536 mod 18446744073709551616
+(U32) 65536 mod (S32) -2147483647
+(S32) -2147418111
+(U32) 65536 mod (S32) -32768
+(S32) 0
+(U32) 65536 mod (S16) -32767
+(S16) -32765
+(U32) 65536 mod (S16) -128
+(S16) 0
+(U32) 65536 mod (S8) -127
+(S8) -123
+(U32) 65536 mod (U8) 255
+(U8) 1
+(U32) 65536 mod (U16) 256
+(U16) 0
+(U32) 65536 mod (U16) 65535
+(U16) 1
+(U32) 65536 mod (U32) 65536
+(U32) 0
+(U32) 65536 mod (U32) 4294967295
+(U32) 65536
+(U32) 65536 mod (U64) 4294967296
+(U32) 65536
+(U32) 65536 mod (U64) 18446744073709551615
+(U32) 65536
+(U32) 65536 mod 18446744073709551616
65536
-65536 mod 340282366920938463463374607431768211455
+(U32) 65536 mod 340282366920938463463374607431768211455
65536
-65536 mod 340282366920938463463374607431768211456
+(U32) 65536 mod 340282366920938463463374607431768211456
65536
-4294967295 mod -170141183460469231731687303715884105728
+(U32) 4294967295 mod -170141183460469231731687303715884105728
-170141183460469231731687303711589138433
-4294967295 mod -170141183460469231731687303715884105727
+(U32) 4294967295 mod -170141183460469231731687303715884105727
-170141183460469231731687303711589138432
-4294967295 mod -9223372036854775808
+(U32) 4294967295 mod -9223372036854775808
-9223372032559808513
-4294967295 mod -9223372036854775807
+(U32) 4294967295 mod (S64) -9223372036854775807
-9223372032559808512
-4294967295 mod -2147483648
+(U32) 4294967295 mod (S64) -2147483648
-1
-4294967295 mod -2147483647
--2147483646
-4294967295 mod -32768
--1
-4294967295 mod -32767
--32764
-4294967295 mod -128
--1
-4294967295 mod -127
--112
-4294967295 mod 255
-0
-4294967295 mod 256
-255
-4294967295 mod 65535
-0
-4294967295 mod 65536
-65535
-4294967295 mod 4294967295
-0
-4294967295 mod 4294967296
-4294967295
-4294967295 mod 18446744073709551615
+(U32) 4294967295 mod (S32) -2147483647
+(S32) -2147483646
+(U32) 4294967295 mod (S32) -32768
+(S32) -1
+(U32) 4294967295 mod (S16) -32767
+(S16) -32764
+(U32) 4294967295 mod (S16) -128
+(S16) -1
+(U32) 4294967295 mod (S8) -127
+(S8) -112
+(U32) 4294967295 mod (U8) 255
+(U8) 0
+(U32) 4294967295 mod (U16) 256
+(U16) 255
+(U32) 4294967295 mod (U16) 65535
+(U16) 0
+(U32) 4294967295 mod (U32) 65536
+(U32) 65535
+(U32) 4294967295 mod (U32) 4294967295
+(U32) 0
+(U32) 4294967295 mod (U64) 4294967296
+(U32) 4294967295
+(U32) 4294967295 mod (U64) 18446744073709551615
+(U32) 4294967295
+(U32) 4294967295 mod 18446744073709551616
4294967295
-4294967295 mod 18446744073709551616
+(U32) 4294967295 mod 340282366920938463463374607431768211455
4294967295
-4294967295 mod 340282366920938463463374607431768211455
+(U32) 4294967295 mod 340282366920938463463374607431768211456
4294967295
-4294967295 mod 340282366920938463463374607431768211456
-4294967295
-4294967296 mod -170141183460469231731687303715884105728
+(U64) 4294967296 mod -170141183460469231731687303715884105728
-170141183460469231731687303711589138432
-4294967296 mod -170141183460469231731687303715884105727
+(U64) 4294967296 mod -170141183460469231731687303715884105727
-170141183460469231731687303711589138431
-4294967296 mod -9223372036854775808
+(U64) 4294967296 mod -9223372036854775808
-9223372032559808512
-4294967296 mod -9223372036854775807
+(U64) 4294967296 mod (S64) -9223372036854775807
-9223372032559808511
-4294967296 mod -2147483648
+(U64) 4294967296 mod (S64) -2147483648
0
-4294967296 mod -2147483647
+(U64) 4294967296 mod (S32) -2147483647
-2147483645
-4294967296 mod -32768
+(U64) 4294967296 mod (S32) -32768
0
-4294967296 mod -32767
+(U64) 4294967296 mod (S16) -32767
-32763
-4294967296 mod -128
+(U64) 4294967296 mod (S16) -128
0
-4294967296 mod -127
+(U64) 4294967296 mod (S8) -127
-111
-4294967296 mod 255
-1
-4294967296 mod 256
-0
-4294967296 mod 65535
-1
-4294967296 mod 65536
-0
-4294967296 mod 4294967295
-1
-4294967296 mod 4294967296
-0
-4294967296 mod 18446744073709551615
-4294967296
-4294967296 mod 18446744073709551616
+(U64) 4294967296 mod (U8) 255
+(U8) 1
+(U64) 4294967296 mod (U16) 256
+(U16) 0
+(U64) 4294967296 mod (U16) 65535
+(U16) 1
+(U64) 4294967296 mod (U32) 65536
+(U32) 0
+(U64) 4294967296 mod (U32) 4294967295
+(U32) 1
+(U64) 4294967296 mod (U64) 4294967296
+(U64) 0
+(U64) 4294967296 mod (U64) 18446744073709551615
+(U64) 4294967296
+(U64) 4294967296 mod 18446744073709551616
4294967296
-4294967296 mod 340282366920938463463374607431768211455
+(U64) 4294967296 mod 340282366920938463463374607431768211455
4294967296
-4294967296 mod 340282366920938463463374607431768211456
+(U64) 4294967296 mod 340282366920938463463374607431768211456
4294967296
-18446744073709551615 mod -170141183460469231731687303715884105728
+(U64) 18446744073709551615 mod -170141183460469231731687303715884105728
-170141183460469231713240559642174554113
-18446744073709551615 mod -170141183460469231731687303715884105727
+(U64) 18446744073709551615 mod -170141183460469231731687303715884105727
-170141183460469231713240559642174554112
-18446744073709551615 mod -9223372036854775808
+(U64) 18446744073709551615 mod -9223372036854775808
-1
-18446744073709551615 mod -9223372036854775807
+(U64) 18446744073709551615 mod (S64) -9223372036854775807
-9223372036854775806
-18446744073709551615 mod -2147483648
+(U64) 18446744073709551615 mod (S64) -2147483648
-1
-18446744073709551615 mod -2147483647
+(U64) 18446744073709551615 mod (S32) -2147483647
-2147483644
-18446744073709551615 mod -32768
+(U64) 18446744073709551615 mod (S32) -32768
-1
-18446744073709551615 mod -32767
+(U64) 18446744073709551615 mod (S16) -32767
-32752
-18446744073709551615 mod -128
+(U64) 18446744073709551615 mod (S16) -128
-1
-18446744073709551615 mod -127
+(U64) 18446744073709551615 mod (S8) -127
-126
-18446744073709551615 mod 255
-0
-18446744073709551615 mod 256
-255
-18446744073709551615 mod 65535
-0
-18446744073709551615 mod 65536
-65535
-18446744073709551615 mod 4294967295
-0
-18446744073709551615 mod 4294967296
-4294967295
-18446744073709551615 mod 18446744073709551615
-0
-18446744073709551615 mod 18446744073709551616
+(U64) 18446744073709551615 mod (U8) 255
+(U8) 0
+(U64) 18446744073709551615 mod (U16) 256
+(U16) 255
+(U64) 18446744073709551615 mod (U16) 65535
+(U16) 0
+(U64) 18446744073709551615 mod (U32) 65536
+(U32) 65535
+(U64) 18446744073709551615 mod (U32) 4294967295
+(U32) 0
+(U64) 18446744073709551615 mod (U64) 4294967296
+(U64) 4294967295
+(U64) 18446744073709551615 mod (U64) 18446744073709551615
+(U64) 0
+(U64) 18446744073709551615 mod 18446744073709551616
18446744073709551615
-18446744073709551615 mod 340282366920938463463374607431768211455
+(U64) 18446744073709551615 mod 340282366920938463463374607431768211455
18446744073709551615
-18446744073709551615 mod 340282366920938463463374607431768211456
+(U64) 18446744073709551615 mod 340282366920938463463374607431768211456
18446744073709551615
18446744073709551616 mod -170141183460469231731687303715884105728
-170141183460469231713240559642174554112
@@ -684,34 +684,34 @@
-170141183460469231713240559642174554111
18446744073709551616 mod -9223372036854775808
0
-18446744073709551616 mod -9223372036854775807
--9223372036854775805
-18446744073709551616 mod -2147483648
-0
-18446744073709551616 mod -2147483647
--2147483643
-18446744073709551616 mod -32768
-0
-18446744073709551616 mod -32767
--32751
-18446744073709551616 mod -128
-0
-18446744073709551616 mod -127
--125
-18446744073709551616 mod 255
-1
-18446744073709551616 mod 256
-0
-18446744073709551616 mod 65535
-1
-18446744073709551616 mod 65536
-0
-18446744073709551616 mod 4294967295
-1
-18446744073709551616 mod 4294967296
-0
-18446744073709551616 mod 18446744073709551615
-1
+18446744073709551616 mod (S64) -9223372036854775807
+(S64) -9223372036854775805
+18446744073709551616 mod (S64) -2147483648
+(S64) 0
+18446744073709551616 mod (S32) -2147483647
+(S32) -2147483643
+18446744073709551616 mod (S32) -32768
+(S32) 0
+18446744073709551616 mod (S16) -32767
+(S16) -32751
+18446744073709551616 mod (S16) -128
+(S16) 0
+18446744073709551616 mod (S8) -127
+(S8) -125
+18446744073709551616 mod (U8) 255
+(U8) 1
+18446744073709551616 mod (U16) 256
+(U16) 0
+18446744073709551616 mod (U16) 65535
+(U16) 1
+18446744073709551616 mod (U32) 65536
+(U32) 0
+18446744073709551616 mod (U32) 4294967295
+(U32) 1
+18446744073709551616 mod (U64) 4294967296
+(U64) 0
+18446744073709551616 mod (U64) 18446744073709551615
+(U64) 1
18446744073709551616 mod 18446744073709551616
0
18446744073709551616 mod 340282366920938463463374607431768211455
@@ -724,34 +724,34 @@
-170141183460469231731687303715884105726
340282366920938463463374607431768211455 mod -9223372036854775808
-1
-340282366920938463463374607431768211455 mod -9223372036854775807
--9223372036854775804
-340282366920938463463374607431768211455 mod -2147483648
--1
-340282366920938463463374607431768211455 mod -2147483647
--2147483632
-340282366920938463463374607431768211455 mod -32768
--1
-340282366920938463463374607431768211455 mod -32767
--32512
-340282366920938463463374607431768211455 mod -128
--1
-340282366920938463463374607431768211455 mod -127
--124
-340282366920938463463374607431768211455 mod 255
-0
-340282366920938463463374607431768211455 mod 256
-255
-340282366920938463463374607431768211455 mod 65535
-0
-340282366920938463463374607431768211455 mod 65536
-65535
-340282366920938463463374607431768211455 mod 4294967295
-0
-340282366920938463463374607431768211455 mod 4294967296
-4294967295
-340282366920938463463374607431768211455 mod 18446744073709551615
-0
+340282366920938463463374607431768211455 mod (S64) -9223372036854775807
+(S64) -9223372036854775804
+340282366920938463463374607431768211455 mod (S64) -2147483648
+(S64) -1
+340282366920938463463374607431768211455 mod (S32) -2147483647
+(S32) -2147483632
+340282366920938463463374607431768211455 mod (S32) -32768
+(S32) -1
+340282366920938463463374607431768211455 mod (S16) -32767
+(S16) -32512
+340282366920938463463374607431768211455 mod (S16) -128
+(S16) -1
+340282366920938463463374607431768211455 mod (S8) -127
+(S8) -124
+340282366920938463463374607431768211455 mod (U8) 255
+(U8) 0
+340282366920938463463374607431768211455 mod (U16) 256
+(U16) 255
+340282366920938463463374607431768211455 mod (U16) 65535
+(U16) 0
+340282366920938463463374607431768211455 mod (U32) 65536
+(U32) 65535
+340282366920938463463374607431768211455 mod (U32) 4294967295
+(U32) 0
+340282366920938463463374607431768211455 mod (U64) 4294967296
+(U64) 4294967295
+340282366920938463463374607431768211455 mod (U64) 18446744073709551615
+(U64) 0
340282366920938463463374607431768211455 mod 18446744073709551616
18446744073709551615
340282366920938463463374607431768211455 mod 340282366920938463463374607431768211455
@@ -764,34 +764,34 @@
-170141183460469231731687303715884105725
340282366920938463463374607431768211456 mod -9223372036854775808
0
-340282366920938463463374607431768211456 mod -9223372036854775807
--9223372036854775803
-340282366920938463463374607431768211456 mod -2147483648
-0
-340282366920938463463374607431768211456 mod -2147483647
--2147483631
-340282366920938463463374607431768211456 mod -32768
-0
-340282366920938463463374607431768211456 mod -32767
--32511
-340282366920938463463374607431768211456 mod -128
-0
-340282366920938463463374607431768211456 mod -127
--123
-340282366920938463463374607431768211456 mod 255
-1
-340282366920938463463374607431768211456 mod 256
-0
-340282366920938463463374607431768211456 mod 65535
-1
-340282366920938463463374607431768211456 mod 65536
-0
-340282366920938463463374607431768211456 mod 4294967295
-1
-340282366920938463463374607431768211456 mod 4294967296
-0
-340282366920938463463374607431768211456 mod 18446744073709551615
-1
+340282366920938463463374607431768211456 mod (S64) -9223372036854775807
+(S64) -9223372036854775803
+340282366920938463463374607431768211456 mod (S64) -2147483648
+(S64) 0
+340282366920938463463374607431768211456 mod (S32) -2147483647
+(S32) -2147483631
+340282366920938463463374607431768211456 mod (S32) -32768
+(S32) 0
+340282366920938463463374607431768211456 mod (S16) -32767
+(S16) -32511
+340282366920938463463374607431768211456 mod (S16) -128
+(S16) 0
+340282366920938463463374607431768211456 mod (S8) -127
+(S8) -123
+340282366920938463463374607431768211456 mod (U8) 255
+(U8) 1
+340282366920938463463374607431768211456 mod (U16) 256
+(U16) 0
+340282366920938463463374607431768211456 mod (U16) 65535
+(U16) 1
+340282366920938463463374607431768211456 mod (U32) 65536
+(U32) 0
+340282366920938463463374607431768211456 mod (U32) 4294967295
+(U32) 1
+340282366920938463463374607431768211456 mod (U64) 4294967296
+(U64) 0
+340282366920938463463374607431768211456 mod (U64) 18446744073709551615
+(U64) 1
340282366920938463463374607431768211456 mod 18446744073709551616
0
340282366920938463463374607431768211456 mod 340282366920938463463374607431768211455
diff --git a/test/ikc3/integer_mul.out.expected b/test/ikc3/integer_mul.out.expected
index f8e913d..50db78c 100644
--- a/test/ikc3/integer_mul.out.expected
+++ b/test/ikc3/integer_mul.out.expected
@@ -4,33 +4,33 @@
28948022309329048855892746252171976963147354982949671778132708698262398304256
-170141183460469231731687303715884105728 * -9223372036854775808
1569275433846670190958947355801916604025588861116008628224
--170141183460469231731687303715884105728 * -9223372036854775807
+-170141183460469231731687303715884105728 * (S64) -9223372036854775807
1569275433846670190788806172341447372293901557400124522496
--170141183460469231731687303715884105728 * -2147483648
+-170141183460469231731687303715884105728 * (S64) -2147483648
365375409332725729550921208179070754913983135744
--170141183460469231731687303715884105728 * -2147483647
+-170141183460469231731687303715884105728 * (S32) -2147483647
365375409162584546090451976447383451198099030016
--170141183460469231731687303715884105728 * -32768
+-170141183460469231731687303715884105728 * (S32) -32768
5575186299632655785383929568162090376495104
--170141183460469231731687303715884105728 * -32767
+-170141183460469231731687303715884105728 * (S16) -32767
5575016158449195316152197880858374492389376
--170141183460469231731687303715884105728 * -128
+-170141183460469231731687303715884105728 * (S16) -128
21778071482940061661655974875633165533184
--170141183460469231731687303715884105728 * -127
+-170141183460469231731687303715884105728 * (S8) -127
21607930299479592429924287571917281427456
--170141183460469231731687303715884105728 * 255
+-170141183460469231731687303715884105728 * (U8) 255
-43386001782419654091580262447550446960640
--170141183460469231731687303715884105728 * 256
+-170141183460469231731687303715884105728 * (U16) 256
-43556142965880123323311949751266331066368
--170141183460469231731687303715884105728 * 65535
+-170141183460469231731687303715884105728 * (U16) 65535
-11150202458081851101536127449020464868884480
--170141183460469231731687303715884105728 * 65536
+-170141183460469231731687303715884105728 * (U32) 65536
-11150372599265311570767859136324180752990208
--170141183460469231731687303715884105728 * 4294967295
+-170141183460469231731687303715884105728 * (U32) 4294967295
-730750818495310275641373184626454206112082165760
--170141183460469231731687303715884105728 * 4294967296
+-170141183460469231731687303715884105728 * (U64) 4294967296
-730750818665451459101842416358141509827966271488
--170141183460469231731687303715884105728 * 18446744073709551615
+-170141183460469231731687303715884105728 * (U64) 18446744073709551615
-3138550867693340381747753528143363976319490418516133150720
-170141183460469231731687303715884105728 * 18446744073709551616
-3138550867693340381917894711603833208051177722232017256448
@@ -44,33 +44,33 @@
28948022309329048855892746252171976962977213799489202546401021394546514198529
-170141183460469231731687303715884105727 * -9223372036854775808
1569275433846670190958947355801916604016365489079153852416
--170141183460469231731687303715884105727 * -9223372036854775807
+-170141183460469231731687303715884105727 * (S64) -9223372036854775807
1569275433846670190788806172341447372284678185363269746689
--170141183460469231731687303715884105727 * -2147483648
+-170141183460469231731687303715884105727 * (S64) -2147483648
365375409332725729550921208179070754911835652096
--170141183460469231731687303715884105727 * -2147483647
+-170141183460469231731687303715884105727 * (S32) -2147483647
365375409162584546090451976447383451195951546369
--170141183460469231731687303715884105727 * -32768
+-170141183460469231731687303715884105727 * (S32) -32768
5575186299632655785383929568162090376462336
--170141183460469231731687303715884105727 * -32767
+-170141183460469231731687303715884105727 * (S16) -32767
5575016158449195316152197880858374492356609
--170141183460469231731687303715884105727 * -128
+-170141183460469231731687303715884105727 * (S16) -128
21778071482940061661655974875633165533056
--170141183460469231731687303715884105727 * -127
+-170141183460469231731687303715884105727 * (S8) -127
21607930299479592429924287571917281427329
--170141183460469231731687303715884105727 * 255
+-170141183460469231731687303715884105727 * (U8) 255
-43386001782419654091580262447550446960385
--170141183460469231731687303715884105727 * 256
+-170141183460469231731687303715884105727 * (U16) 256
-43556142965880123323311949751266331066112
--170141183460469231731687303715884105727 * 65535
+-170141183460469231731687303715884105727 * (U16) 65535
-11150202458081851101536127449020464868818945
--170141183460469231731687303715884105727 * 65536
+-170141183460469231731687303715884105727 * (U32) 65536
-11150372599265311570767859136324180752924672
--170141183460469231731687303715884105727 * 4294967295
+-170141183460469231731687303715884105727 * (U32) 4294967295
-730750818495310275641373184626454206107787198465
--170141183460469231731687303715884105727 * 4294967296
+-170141183460469231731687303715884105727 * (U64) 4294967296
-730750818665451459101842416358141509823671304192
--170141183460469231731687303715884105727 * 18446744073709551615
+-170141183460469231731687303715884105727 * (U64) 18446744073709551615
-3138550867693340381747753528143363976301043674442423599105
-170141183460469231731687303715884105727 * 18446744073709551616
-3138550867693340381917894711603833208032730978158307704832
@@ -84,33 +84,33 @@
1569275433846670190958947355801916604016365489079153852416
-9223372036854775808 * -9223372036854775808
85070591730234615865843651857942052864
--9223372036854775808 * -9223372036854775807
+-9223372036854775808 * (S64) -9223372036854775807
85070591730234615856620279821087277056
--9223372036854775808 * -2147483648
+-9223372036854775808 * (S64) -2147483648
19807040628566084398385987584
--9223372036854775808 * -2147483647
+-9223372036854775808 * (S32) -2147483647
19807040619342712361531211776
--9223372036854775808 * -32768
+-9223372036854775808 * (S32) -32768
302231454903657293676544
--9223372036854775808 * -32767
+-9223372036854775808 * (S16) -32767
302222231531620438900736
--9223372036854775808 * -128
+-9223372036854775808 * (S16) -128
1180591620717411303424
--9223372036854775808 * -127
+-9223372036854775808 * (S8) -127
1171368248680556527616
--9223372036854775808 * 255
+-9223372036854775808 * (U8) 255
-2351959869397967831040
--9223372036854775808 * 256
+-9223372036854775808 * (U16) 256
-2361183241434822606848
--9223372036854775808 * 65535
+-9223372036854775808 * (U16) 65535
-604453686435277732577280
--9223372036854775808 * 65536
+-9223372036854775808 * (U32) 65536
-604462909807314587353088
--9223372036854775808 * 4294967295
+-9223372036854775808 * (U32) 4294967295
-39614081247908796759917199360
--9223372036854775808 * 4294967296
+-9223372036854775808 * (U64) 4294967296
-39614081257132168796771975168
--9223372036854775808 * 18446744073709551615
+-9223372036854775808 * (U64) 18446744073709551615
-170141183460469231722463931679029329920
-9223372036854775808 * 18446744073709551616
-170141183460469231731687303715884105728
@@ -118,565 +118,565 @@
-3138550867693340381917894711603833208041954350195162480640
-9223372036854775808 * 340282366920938463463374607431768211456
-3138550867693340381917894711603833208051177722232017256448
--9223372036854775807 * -170141183460469231731687303715884105728
+(S64) -9223372036854775807 * -170141183460469231731687303715884105728
1569275433846670190788806172341447372293901557400124522496
--9223372036854775807 * -170141183460469231731687303715884105727
+(S64) -9223372036854775807 * -170141183460469231731687303715884105727
1569275433846670190788806172341447372284678185363269746689
--9223372036854775807 * -9223372036854775808
+(S64) -9223372036854775807 * -9223372036854775808
85070591730234615856620279821087277056
--9223372036854775807 * -9223372036854775807
+(S64) -9223372036854775807 * (S64) -9223372036854775807
85070591730234615847396907784232501249
--9223372036854775807 * -2147483648
+(S64) -9223372036854775807 * (S64) -2147483648
19807040628566084396238503936
--9223372036854775807 * -2147483647
+(S64) -9223372036854775807 * (S32) -2147483647
19807040619342712359383728129
--9223372036854775807 * -32768
+(S64) -9223372036854775807 * (S32) -32768
302231454903657293643776
--9223372036854775807 * -32767
+(S64) -9223372036854775807 * (S16) -32767
302222231531620438867969
--9223372036854775807 * -128
+(S64) -9223372036854775807 * (S16) -128
1180591620717411303296
--9223372036854775807 * -127
+(S64) -9223372036854775807 * (S8) -127
1171368248680556527489
--9223372036854775807 * 255
+(S64) -9223372036854775807 * (U8) 255
-2351959869397967830785
--9223372036854775807 * 256
+(S64) -9223372036854775807 * (U16) 256
-2361183241434822606592
--9223372036854775807 * 65535
+(S64) -9223372036854775807 * (U16) 65535
-604453686435277732511745
--9223372036854775807 * 65536
+(S64) -9223372036854775807 * (U32) 65536
-604462909807314587287552
--9223372036854775807 * 4294967295
+(S64) -9223372036854775807 * (U32) 4294967295
-39614081247908796755622232065
--9223372036854775807 * 4294967296
+(S64) -9223372036854775807 * (U64) 4294967296
-39614081257132168792477007872
--9223372036854775807 * 18446744073709551615
+(S64) -9223372036854775807 * (U64) 18446744073709551615
-170141183460469231704017187605319778305
--9223372036854775807 * 18446744073709551616
+(S64) -9223372036854775807 * 18446744073709551616
-170141183460469231713240559642174554112
--9223372036854775807 * 340282366920938463463374607431768211455
+(S64) -9223372036854775807 * 340282366920938463463374607431768211455
-3138550867693340381577612344682894744578579742763394269185
--9223372036854775807 * 340282366920938463463374607431768211456
+(S64) -9223372036854775807 * 340282366920938463463374607431768211456
-3138550867693340381577612344682894744587803114800249044992
--2147483648 * -170141183460469231731687303715884105728
+(S64) -2147483648 * -170141183460469231731687303715884105728
365375409332725729550921208179070754913983135744
--2147483648 * -170141183460469231731687303715884105727
+(S64) -2147483648 * -170141183460469231731687303715884105727
365375409332725729550921208179070754911835652096
--2147483648 * -9223372036854775808
+(S64) -2147483648 * -9223372036854775808
19807040628566084398385987584
--2147483648 * -9223372036854775807
+(S64) -2147483648 * (S64) -9223372036854775807
19807040628566084396238503936
--2147483648 * -2147483648
+(S64) -2147483648 * (S64) -2147483648
4611686018427387904
--2147483648 * -2147483647
+(S64) -2147483648 * (S32) -2147483647
4611686016279904256
--2147483648 * -32768
+(S64) -2147483648 * (S32) -32768
70368744177664
--2147483648 * -32767
+(S64) -2147483648 * (S16) -32767
70366596694016
--2147483648 * -128
+(S64) -2147483648 * (S16) -128
274877906944
--2147483648 * -127
+(S64) -2147483648 * (S8) -127
272730423296
--2147483648 * 255
+(S64) -2147483648 * (U8) 255
-547608330240
--2147483648 * 256
+(S64) -2147483648 * (U16) 256
-549755813888
--2147483648 * 65535
+(S64) -2147483648 * (U16) 65535
-140735340871680
--2147483648 * 65536
+(S64) -2147483648 * (U32) 65536
-140737488355328
--2147483648 * 4294967295
+(S64) -2147483648 * (U32) 4294967295
-9223372034707292160
--2147483648 * 4294967296
+(S64) -2147483648 * (U64) 4294967296
-9223372036854775808
--2147483648 * 18446744073709551615
+(S64) -2147483648 * (U64) 18446744073709551615
-39614081257132168794624491520
--2147483648 * 18446744073709551616
+(S64) -2147483648 * 18446744073709551616
-39614081257132168796771975168
--2147483648 * 340282366920938463463374607431768211455
+(S64) -2147483648 * 340282366920938463463374607431768211455
-730750818665451459101842416358141509825818787840
--2147483648 * 340282366920938463463374607431768211456
+(S64) -2147483648 * 340282366920938463463374607431768211456
-730750818665451459101842416358141509827966271488
--2147483647 * -170141183460469231731687303715884105728
+(S32) -2147483647 * -170141183460469231731687303715884105728
365375409162584546090451976447383451198099030016
--2147483647 * -170141183460469231731687303715884105727
+(S32) -2147483647 * -170141183460469231731687303715884105727
365375409162584546090451976447383451195951546369
--2147483647 * -9223372036854775808
+(S32) -2147483647 * -9223372036854775808
19807040619342712361531211776
--2147483647 * -9223372036854775807
+(S32) -2147483647 * (S64) -9223372036854775807
19807040619342712359383728129
--2147483647 * -2147483648
+(S32) -2147483647 * (S64) -2147483648
4611686016279904256
--2147483647 * -2147483647
-4611686014132420609
--2147483647 * -32768
-70368744144896
--2147483647 * -32767
-70366596661249
--2147483647 * -128
-274877906816
--2147483647 * -127
-272730423169
--2147483647 * 255
--547608329985
--2147483647 * 256
--549755813632
--2147483647 * 65535
--140735340806145
--2147483647 * 65536
--140737488289792
--2147483647 * 4294967295
--9223372030412324865
--2147483647 * 4294967296
+(S32) -2147483647 * (S32) -2147483647
+(S64) 4611686014132420609
+(S32) -2147483647 * (S32) -32768
+(S64) 70368744144896
+(S32) -2147483647 * (S16) -32767
+(S64) 70366596661249
+(S32) -2147483647 * (S16) -128
+(S64) 274877906816
+(S32) -2147483647 * (S8) -127
+(S64) 272730423169
+(S32) -2147483647 * (U8) 255
+(S64) -547608329985
+(S32) -2147483647 * (U16) 256
+(S64) -549755813632
+(S32) -2147483647 * (U16) 65535
+(S64) -140735340806145
+(S32) -2147483647 * (U32) 65536
+(S64) -140737488289792
+(S32) -2147483647 * (U32) 4294967295
+(S64) -9223372030412324865
+(S32) -2147483647 * (U64) 4294967296
-9223372032559808512
--2147483647 * 18446744073709551615
+(S32) -2147483647 * (U64) 18446744073709551615
-39614081238685424720914939905
--2147483647 * 18446744073709551616
+(S32) -2147483647 * 18446744073709551616
-39614081238685424723062423552
--2147483647 * 340282366920938463463374607431768211455
+(S32) -2147483647 * 340282366920938463463374607431768211455
-730750818325169092180903952894766902394050576385
--2147483647 * 340282366920938463463374607431768211456
+(S32) -2147483647 * 340282366920938463463374607431768211456
-730750818325169092180903952894766902396198060032
--32768 * -170141183460469231731687303715884105728
+(S32) -32768 * -170141183460469231731687303715884105728
5575186299632655785383929568162090376495104
--32768 * -170141183460469231731687303715884105727
+(S32) -32768 * -170141183460469231731687303715884105727
5575186299632655785383929568162090376462336
--32768 * -9223372036854775808
+(S32) -32768 * -9223372036854775808
302231454903657293676544
--32768 * -9223372036854775807
+(S32) -32768 * (S64) -9223372036854775807
302231454903657293643776
--32768 * -2147483648
+(S32) -32768 * (S64) -2147483648
70368744177664
--32768 * -2147483647
-70368744144896
--32768 * -32768
-1073741824
--32768 * -32767
-1073709056
--32768 * -128
-4194304
--32768 * -127
-4161536
--32768 * 255
--8355840
--32768 * 256
--8388608
--32768 * 65535
--2147450880
--32768 * 65536
--2147483648
--32768 * 4294967295
--140737488322560
--32768 * 4294967296
+(S32) -32768 * (S32) -2147483647
+(S64) 70368744144896
+(S32) -32768 * (S32) -32768
+(S64) 1073741824
+(S32) -32768 * (S16) -32767
+(S64) 1073709056
+(S32) -32768 * (S16) -128
+(S64) 4194304
+(S32) -32768 * (S8) -127
+(S64) 4161536
+(S32) -32768 * (U8) 255
+(S64) -8355840
+(S32) -32768 * (U16) 256
+(S64) -8388608
+(S32) -32768 * (U16) 65535
+(S64) -2147450880
+(S32) -32768 * (U32) 65536
+(S64) -2147483648
+(S32) -32768 * (U32) 4294967295
+(S64) -140737488322560
+(S32) -32768 * (U64) 4294967296
-140737488355328
--32768 * 18446744073709551615
+(S32) -32768 * (U64) 18446744073709551615
-604462909807314587320320
--32768 * 18446744073709551616
+(S32) -32768 * 18446744073709551616
-604462909807314587353088
--32768 * 340282366920938463463374607431768211455
+(S32) -32768 * 340282366920938463463374607431768211455
-11150372599265311570767859136324180752957440
--32768 * 340282366920938463463374607431768211456
+(S32) -32768 * 340282366920938463463374607431768211456
-11150372599265311570767859136324180752990208
--32767 * -170141183460469231731687303715884105728
+(S16) -32767 * -170141183460469231731687303715884105728
5575016158449195316152197880858374492389376
--32767 * -170141183460469231731687303715884105727
+(S16) -32767 * -170141183460469231731687303715884105727
5575016158449195316152197880858374492356609
--32767 * -9223372036854775808
+(S16) -32767 * -9223372036854775808
302222231531620438900736
--32767 * -9223372036854775807
+(S16) -32767 * (S64) -9223372036854775807
302222231531620438867969
--32767 * -2147483648
+(S16) -32767 * (S64) -2147483648
70366596694016
--32767 * -2147483647
-70366596661249
--32767 * -32768
-1073709056
--32767 * -32767
-1073676289
--32767 * -128
-4194176
--32767 * -127
-4161409
--32767 * 255
--8355585
--32767 * 256
--8388352
--32767 * 65535
--2147385345
--32767 * 65536
--2147418112
--32767 * 4294967295
--140733193355265
--32767 * 4294967296
+(S16) -32767 * (S32) -2147483647
+(S64) 70366596661249
+(S16) -32767 * (S32) -32768
+(S64) 1073709056
+(S16) -32767 * (S16) -32767
+(S32) 1073676289
+(S16) -32767 * (S16) -128
+(S32) 4194176
+(S16) -32767 * (S8) -127
+(S32) 4161409
+(S16) -32767 * (U8) 255
+(S32) -8355585
+(S16) -32767 * (U16) 256
+(S32) -8388352
+(S16) -32767 * (U16) 65535
+(S32) -2147385345
+(S16) -32767 * (U32) 65536
+(S64) -2147418112
+(S16) -32767 * (U32) 4294967295
+(S64) -140733193355265
+(S16) -32767 * (U64) 4294967296
-140733193388032
--32767 * 18446744073709551615
+(S16) -32767 * (U64) 18446744073709551615
-604444463063240877768705
--32767 * 18446744073709551616
+(S16) -32767 * 18446744073709551616
-604444463063240877801472
--32767 * 340282366920938463463374607431768211455
+(S16) -32767 * 340282366920938463463374607431768211455
-11150032316898390632304395761716748984745985
--32767 * 340282366920938463463374607431768211456
+(S16) -32767 * 340282366920938463463374607431768211456
-11150032316898390632304395761716748984778752
--128 * -170141183460469231731687303715884105728
+(S16) -128 * -170141183460469231731687303715884105728
21778071482940061661655974875633165533184
--128 * -170141183460469231731687303715884105727
+(S16) -128 * -170141183460469231731687303715884105727
21778071482940061661655974875633165533056
--128 * -9223372036854775808
+(S16) -128 * -9223372036854775808
1180591620717411303424
--128 * -9223372036854775807
+(S16) -128 * (S64) -9223372036854775807
1180591620717411303296
--128 * -2147483648
+(S16) -128 * (S64) -2147483648
274877906944
--128 * -2147483647
-274877906816
--128 * -32768
-4194304
--128 * -32767
-4194176
--128 * -128
-16384
--128 * -127
-16256
--128 * 255
--32640
--128 * 256
--32768
--128 * 65535
--8388480
--128 * 65536
--8388608
--128 * 4294967295
--549755813760
--128 * 4294967296
+(S16) -128 * (S32) -2147483647
+(S64) 274877906816
+(S16) -128 * (S32) -32768
+(S64) 4194304
+(S16) -128 * (S16) -32767
+(S32) 4194176
+(S16) -128 * (S16) -128
+(S32) 16384
+(S16) -128 * (S8) -127
+(S32) 16256
+(S16) -128 * (U8) 255
+(S32) -32640
+(S16) -128 * (U16) 256
+(S32) -32768
+(S16) -128 * (U16) 65535
+(S32) -8388480
+(S16) -128 * (U32) 65536
+(S64) -8388608
+(S16) -128 * (U32) 4294967295
+(S64) -549755813760
+(S16) -128 * (U64) 4294967296
-549755813888
--128 * 18446744073709551615
+(S16) -128 * (U64) 18446744073709551615
-2361183241434822606720
--128 * 18446744073709551616
+(S16) -128 * 18446744073709551616
-2361183241434822606848
--128 * 340282366920938463463374607431768211455
+(S16) -128 * 340282366920938463463374607431768211455
-43556142965880123323311949751266331066240
--128 * 340282366920938463463374607431768211456
+(S16) -128 * 340282366920938463463374607431768211456
-43556142965880123323311949751266331066368
--127 * -170141183460469231731687303715884105728
+(S8) -127 * -170141183460469231731687303715884105728
21607930299479592429924287571917281427456
--127 * -170141183460469231731687303715884105727
+(S8) -127 * -170141183460469231731687303715884105727
21607930299479592429924287571917281427329
--127 * -9223372036854775808
+(S8) -127 * -9223372036854775808
1171368248680556527616
--127 * -9223372036854775807
+(S8) -127 * (S64) -9223372036854775807
1171368248680556527489
--127 * -2147483648
+(S8) -127 * (S64) -2147483648
272730423296
--127 * -2147483647
-272730423169
--127 * -32768
-4161536
--127 * -32767
-4161409
--127 * -128
-16256
--127 * -127
-16129
--127 * 255
--32385
--127 * 256
--32512
--127 * 65535
--8322945
--127 * 65536
--8323072
--127 * 4294967295
--545460846465
--127 * 4294967296
+(S8) -127 * (S32) -2147483647
+(S64) 272730423169
+(S8) -127 * (S32) -32768
+(S64) 4161536
+(S8) -127 * (S16) -32767
+(S32) 4161409
+(S8) -127 * (S16) -128
+(S32) 16256
+(S8) -127 * (S8) -127
+(S16) 16129
+(S8) -127 * (U8) 255
+(S16) -32385
+(S8) -127 * (U16) 256
+(S32) -32512
+(S8) -127 * (U16) 65535
+(S32) -8322945
+(S8) -127 * (U32) 65536
+(S64) -8323072
+(S8) -127 * (U32) 4294967295
+(S64) -545460846465
+(S8) -127 * (U64) 4294967296
-545460846592
--127 * 18446744073709551615
+(S8) -127 * (U64) 18446744073709551615
-2342736497361113055105
--127 * 18446744073709551616
+(S8) -127 * 18446744073709551616
-2342736497361113055232
--127 * 340282366920938463463374607431768211455
+(S8) -127 * 340282366920938463463374607431768211455
-43215860598959184859848575143834562854785
--127 * 340282366920938463463374607431768211456
+(S8) -127 * 340282366920938463463374607431768211456
-43215860598959184859848575143834562854912
-255 * -170141183460469231731687303715884105728
+(U8) 255 * -170141183460469231731687303715884105728
-43386001782419654091580262447550446960640
-255 * -170141183460469231731687303715884105727
+(U8) 255 * -170141183460469231731687303715884105727
-43386001782419654091580262447550446960385
-255 * -9223372036854775808
+(U8) 255 * -9223372036854775808
-2351959869397967831040
-255 * -9223372036854775807
+(U8) 255 * (S64) -9223372036854775807
-2351959869397967830785
-255 * -2147483648
+(U8) 255 * (S64) -2147483648
-547608330240
-255 * -2147483647
--547608329985
-255 * -32768
--8355840
-255 * -32767
--8355585
-255 * -128
--32640
-255 * -127
--32385
-255 * 255
-65025
-255 * 256
-65280
-255 * 65535
-16711425
-255 * 65536
-16711680
-255 * 4294967295
-1095216660225
-255 * 4294967296
+(U8) 255 * (S32) -2147483647
+(S64) -547608329985
+(U8) 255 * (S32) -32768
+(S64) -8355840
+(U8) 255 * (S16) -32767
+(S32) -8355585
+(U8) 255 * (S16) -128
+(S32) -32640
+(U8) 255 * (S8) -127
+(S16) -32385
+(U8) 255 * (U8) 255
+(U16) 65025
+(U8) 255 * (U16) 256
+(U32) 65280
+(U8) 255 * (U16) 65535
+(U32) 16711425
+(U8) 255 * (U32) 65536
+(U64) 16711680
+(U8) 255 * (U32) 4294967295
+(U64) 1095216660225
+(U8) 255 * (U64) 4294967296
1095216660480
-255 * 18446744073709551615
+(U8) 255 * (U64) 18446744073709551615
4703919738795935661825
-255 * 18446744073709551616
+(U8) 255 * 18446744073709551616
4703919738795935662080
-255 * 340282366920938463463374607431768211455
+(U8) 255 * 340282366920938463463374607431768211455
86772003564839308183160524895100893921025
-255 * 340282366920938463463374607431768211456
+(U8) 255 * 340282366920938463463374607431768211456
86772003564839308183160524895100893921280
-256 * -170141183460469231731687303715884105728
+(U16) 256 * -170141183460469231731687303715884105728
-43556142965880123323311949751266331066368
-256 * -170141183460469231731687303715884105727
+(U16) 256 * -170141183460469231731687303715884105727
-43556142965880123323311949751266331066112
-256 * -9223372036854775808
+(U16) 256 * -9223372036854775808
-2361183241434822606848
-256 * -9223372036854775807
+(U16) 256 * (S64) -9223372036854775807
-2361183241434822606592
-256 * -2147483648
+(U16) 256 * (S64) -2147483648
-549755813888
-256 * -2147483647
--549755813632
-256 * -32768
--8388608
-256 * -32767
--8388352
-256 * -128
--32768
-256 * -127
--32512
-256 * 255
-65280
-256 * 256
-65536
-256 * 65535
-16776960
-256 * 65536
-16777216
-256 * 4294967295
-1099511627520
-256 * 4294967296
+(U16) 256 * (S32) -2147483647
+(S64) -549755813632
+(U16) 256 * (S32) -32768
+(S64) -8388608
+(U16) 256 * (S16) -32767
+(S32) -8388352
+(U16) 256 * (S16) -128
+(S32) -32768
+(U16) 256 * (S8) -127
+(S32) -32512
+(U16) 256 * (U8) 255
+(U32) 65280
+(U16) 256 * (U16) 256
+(U32) 65536
+(U16) 256 * (U16) 65535
+(U32) 16776960
+(U16) 256 * (U32) 65536
+(U64) 16777216
+(U16) 256 * (U32) 4294967295
+(U64) 1099511627520
+(U16) 256 * (U64) 4294967296
1099511627776
-256 * 18446744073709551615
+(U16) 256 * (U64) 18446744073709551615
4722366482869645213440
-256 * 18446744073709551616
+(U16) 256 * 18446744073709551616
4722366482869645213696
-256 * 340282366920938463463374607431768211455
+(U16) 256 * 340282366920938463463374607431768211455
87112285931760246646623899502532662132480
-256 * 340282366920938463463374607431768211456
+(U16) 256 * 340282366920938463463374607431768211456
87112285931760246646623899502532662132736
-65535 * -170141183460469231731687303715884105728
+(U16) 65535 * -170141183460469231731687303715884105728
-11150202458081851101536127449020464868884480
-65535 * -170141183460469231731687303715884105727
+(U16) 65535 * -170141183460469231731687303715884105727
-11150202458081851101536127449020464868818945
-65535 * -9223372036854775808
+(U16) 65535 * -9223372036854775808
-604453686435277732577280
-65535 * -9223372036854775807
+(U16) 65535 * (S64) -9223372036854775807
-604453686435277732511745
-65535 * -2147483648
+(U16) 65535 * (S64) -2147483648
-140735340871680
-65535 * -2147483647
--140735340806145
-65535 * -32768
--2147450880
-65535 * -32767
--2147385345
-65535 * -128
--8388480
-65535 * -127
--8322945
-65535 * 255
-16711425
-65535 * 256
-16776960
-65535 * 65535
-4294836225
-65535 * 65536
-4294901760
-65535 * 4294967295
-281470681677825
-65535 * 4294967296
+(U16) 65535 * (S32) -2147483647
+(S64) -140735340806145
+(U16) 65535 * (S32) -32768
+(S64) -2147450880
+(U16) 65535 * (S16) -32767
+(S32) -2147385345
+(U16) 65535 * (S16) -128
+(S32) -8388480
+(U16) 65535 * (S8) -127
+(S32) -8322945
+(U16) 65535 * (U8) 255
+(U32) 16711425
+(U16) 65535 * (U16) 256
+(U32) 16776960
+(U16) 65535 * (U16) 65535
+(U32) 4294836225
+(U16) 65535 * (U32) 65536
+(U64) 4294901760
+(U16) 65535 * (U32) 4294967295
+(U64) 281470681677825
+(U16) 65535 * (U64) 4294967296
281470681743360
-65535 * 18446744073709551615
+(U16) 65535 * (U64) 18446744073709551615
1208907372870555465089025
-65535 * 18446744073709551616
+(U16) 65535 * 18446744073709551616
1208907372870555465154560
-65535 * 340282366920938463463374607431768211455
+(U16) 65535 * 340282366920938463463374607431768211455
22300404916163702203072254898040929737703425
-65535 * 340282366920938463463374607431768211456
+(U16) 65535 * 340282366920938463463374607431768211456
22300404916163702203072254898040929737768960
-65536 * -170141183460469231731687303715884105728
+(U32) 65536 * -170141183460469231731687303715884105728
-11150372599265311570767859136324180752990208
-65536 * -170141183460469231731687303715884105727
+(U32) 65536 * -170141183460469231731687303715884105727
-11150372599265311570767859136324180752924672
-65536 * -9223372036854775808
+(U32) 65536 * -9223372036854775808
-604462909807314587353088
-65536 * -9223372036854775807
+(U32) 65536 * (S64) -9223372036854775807
-604462909807314587287552
-65536 * -2147483648
+(U32) 65536 * (S64) -2147483648
-140737488355328
-65536 * -2147483647
--140737488289792
-65536 * -32768
--2147483648
-65536 * -32767
--2147418112
-65536 * -128
--8388608
-65536 * -127
--8323072
-65536 * 255
-16711680
-65536 * 256
-16777216
-65536 * 65535
-4294901760
-65536 * 65536
-4294967296
-65536 * 4294967295
-281474976645120
-65536 * 4294967296
+(U32) 65536 * (S32) -2147483647
+(S64) -140737488289792
+(U32) 65536 * (S32) -32768
+(S64) -2147483648
+(U32) 65536 * (S16) -32767
+(S64) -2147418112
+(U32) 65536 * (S16) -128
+(S64) -8388608
+(U32) 65536 * (S8) -127
+(S64) -8323072
+(U32) 65536 * (U8) 255
+(U64) 16711680
+(U32) 65536 * (U16) 256
+(U64) 16777216
+(U32) 65536 * (U16) 65535
+(U64) 4294901760
+(U32) 65536 * (U32) 65536
+(U64) 4294967296
+(U32) 65536 * (U32) 4294967295
+(U64) 281474976645120
+(U32) 65536 * (U64) 4294967296
281474976710656
-65536 * 18446744073709551615
+(U32) 65536 * (U64) 18446744073709551615
1208925819614629174640640
-65536 * 18446744073709551616
+(U32) 65536 * 18446744073709551616
1208925819614629174706176
-65536 * 340282366920938463463374607431768211455
+(U32) 65536 * 340282366920938463463374607431768211455
22300745198530623141535718272648361505914880
-65536 * 340282366920938463463374607431768211456
+(U32) 65536 * 340282366920938463463374607431768211456
22300745198530623141535718272648361505980416
-4294967295 * -170141183460469231731687303715884105728
+(U32) 4294967295 * -170141183460469231731687303715884105728
-730750818495310275641373184626454206112082165760
-4294967295 * -170141183460469231731687303715884105727
+(U32) 4294967295 * -170141183460469231731687303715884105727
-730750818495310275641373184626454206107787198465
-4294967295 * -9223372036854775808
+(U32) 4294967295 * -9223372036854775808
-39614081247908796759917199360
-4294967295 * -9223372036854775807
+(U32) 4294967295 * (S64) -9223372036854775807
-39614081247908796755622232065
-4294967295 * -2147483648
+(U32) 4294967295 * (S64) -2147483648
-9223372034707292160
-4294967295 * -2147483647
--9223372030412324865
-4294967295 * -32768
--140737488322560
-4294967295 * -32767
--140733193355265
-4294967295 * -128
--549755813760
-4294967295 * -127
--545460846465
-4294967295 * 255
-1095216660225
-4294967295 * 256
-1099511627520
-4294967295 * 65535
-281470681677825
-4294967295 * 65536
-281474976645120
-4294967295 * 4294967295
-18446744065119617025
-4294967295 * 4294967296
+(U32) 4294967295 * (S32) -2147483647
+(S64) -9223372030412324865
+(U32) 4294967295 * (S32) -32768
+(S64) -140737488322560
+(U32) 4294967295 * (S16) -32767
+(S64) -140733193355265
+(U32) 4294967295 * (S16) -128
+(S64) -549755813760
+(U32) 4294967295 * (S8) -127
+(S64) -545460846465
+(U32) 4294967295 * (U8) 255
+(U64) 1095216660225
+(U32) 4294967295 * (U16) 256
+(U64) 1099511627520
+(U32) 4294967295 * (U16) 65535
+(U64) 281470681677825
+(U32) 4294967295 * (U32) 65536
+(U64) 281474976645120
+(U32) 4294967295 * (U32) 4294967295
+(U64) 18446744065119617025
+(U32) 4294967295 * (U64) 4294967296
18446744069414584320
-4294967295 * 18446744073709551615
+(U32) 4294967295 * (U64) 18446744073709551615
79228162495817593515539431425
-4294967295 * 18446744073709551616
+(U32) 4294967295 * 18446744073709551616
79228162495817593519834398720
-4294967295 * 340282366920938463463374607431768211455
+(U32) 4294967295 * 340282366920938463463374607431768211455
1461501636990620551282746369252908412219869364225
-4294967295 * 340282366920938463463374607431768211456
+(U32) 4294967295 * 340282366920938463463374607431768211456
1461501636990620551282746369252908412224164331520
-4294967296 * -170141183460469231731687303715884105728
+(U64) 4294967296 * -170141183460469231731687303715884105728
-730750818665451459101842416358141509827966271488
-4294967296 * -170141183460469231731687303715884105727
+(U64) 4294967296 * -170141183460469231731687303715884105727
-730750818665451459101842416358141509823671304192
-4294967296 * -9223372036854775808
+(U64) 4294967296 * -9223372036854775808
-39614081257132168796771975168
-4294967296 * -9223372036854775807
+(U64) 4294967296 * (S64) -9223372036854775807
-39614081257132168792477007872
-4294967296 * -2147483648
+(U64) 4294967296 * (S64) -2147483648
-9223372036854775808
-4294967296 * -2147483647
+(U64) 4294967296 * (S32) -2147483647
-9223372032559808512
-4294967296 * -32768
+(U64) 4294967296 * (S32) -32768
-140737488355328
-4294967296 * -32767
+(U64) 4294967296 * (S16) -32767
-140733193388032
-4294967296 * -128
+(U64) 4294967296 * (S16) -128
-549755813888
-4294967296 * -127
+(U64) 4294967296 * (S8) -127
-545460846592
-4294967296 * 255
+(U64) 4294967296 * (U8) 255
1095216660480
-4294967296 * 256
+(U64) 4294967296 * (U16) 256
1099511627776
-4294967296 * 65535
+(U64) 4294967296 * (U16) 65535
281470681743360
-4294967296 * 65536
+(U64) 4294967296 * (U32) 65536
281474976710656
-4294967296 * 4294967295
+(U64) 4294967296 * (U32) 4294967295
18446744069414584320
-4294967296 * 4294967296
+(U64) 4294967296 * (U64) 4294967296
18446744073709551616
-4294967296 * 18446744073709551615
+(U64) 4294967296 * (U64) 18446744073709551615
79228162514264337589248983040
-4294967296 * 18446744073709551616
+(U64) 4294967296 * 18446744073709551616
79228162514264337593543950336
-4294967296 * 340282366920938463463374607431768211455
+(U64) 4294967296 * 340282366920938463463374607431768211455
1461501637330902918203684832716283019651637575680
-4294967296 * 340282366920938463463374607431768211456
+(U64) 4294967296 * 340282366920938463463374607431768211456
1461501637330902918203684832716283019655932542976
-18446744073709551615 * -170141183460469231731687303715884105728
+(U64) 18446744073709551615 * -170141183460469231731687303715884105728
-3138550867693340381747753528143363976319490418516133150720
-18446744073709551615 * -170141183460469231731687303715884105727
+(U64) 18446744073709551615 * -170141183460469231731687303715884105727
-3138550867693340381747753528143363976301043674442423599105
-18446744073709551615 * -9223372036854775808
+(U64) 18446744073709551615 * -9223372036854775808
-170141183460469231722463931679029329920
-18446744073709551615 * -9223372036854775807
+(U64) 18446744073709551615 * (S64) -9223372036854775807
-170141183460469231704017187605319778305
-18446744073709551615 * -2147483648
+(U64) 18446744073709551615 * (S64) -2147483648
-39614081257132168794624491520
-18446744073709551615 * -2147483647
+(U64) 18446744073709551615 * (S32) -2147483647
-39614081238685424720914939905
-18446744073709551615 * -32768
+(U64) 18446744073709551615 * (S32) -32768
-604462909807314587320320
-18446744073709551615 * -32767
+(U64) 18446744073709551615 * (S16) -32767
-604444463063240877768705
-18446744073709551615 * -128
+(U64) 18446744073709551615 * (S16) -128
-2361183241434822606720
-18446744073709551615 * -127
+(U64) 18446744073709551615 * (S8) -127
-2342736497361113055105
-18446744073709551615 * 255
+(U64) 18446744073709551615 * (U8) 255
4703919738795935661825
-18446744073709551615 * 256
+(U64) 18446744073709551615 * (U16) 256
4722366482869645213440
-18446744073709551615 * 65535
+(U64) 18446744073709551615 * (U16) 65535
1208907372870555465089025
-18446744073709551615 * 65536
+(U64) 18446744073709551615 * (U32) 65536
1208925819614629174640640
-18446744073709551615 * 4294967295
+(U64) 18446744073709551615 * (U32) 4294967295
79228162495817593515539431425
-18446744073709551615 * 4294967296
+(U64) 18446744073709551615 * (U64) 4294967296
79228162514264337589248983040
-18446744073709551615 * 18446744073709551615
+(U64) 18446744073709551615 * (U64) 18446744073709551615
340282366920938463426481119284349108225
-18446744073709551615 * 18446744073709551616
+(U64) 18446744073709551615 * 18446744073709551616
340282366920938463444927863358058659840
-18446744073709551615 * 340282366920938463463374607431768211455
+(U64) 18446744073709551615 * 340282366920938463463374607431768211455
6277101735386680763495507056286727952620534092958556749825
-18446744073709551615 * 340282366920938463463374607431768211456
+(U64) 18446744073709551615 * 340282366920938463463374607431768211456
6277101735386680763495507056286727952638980837032266301440
18446744073709551616 * -170141183460469231731687303715884105728
-3138550867693340381917894711603833208051177722232017256448
@@ -684,33 +684,33 @@
-3138550867693340381917894711603833208032730978158307704832
18446744073709551616 * -9223372036854775808
-170141183460469231731687303715884105728
-18446744073709551616 * -9223372036854775807
+18446744073709551616 * (S64) -9223372036854775807
-170141183460469231713240559642174554112
-18446744073709551616 * -2147483648
+18446744073709551616 * (S64) -2147483648
-39614081257132168796771975168
-18446744073709551616 * -2147483647
+18446744073709551616 * (S32) -2147483647
-39614081238685424723062423552
-18446744073709551616 * -32768
+18446744073709551616 * (S32) -32768
-604462909807314587353088
-18446744073709551616 * -32767
+18446744073709551616 * (S16) -32767
-604444463063240877801472
-18446744073709551616 * -128
+18446744073709551616 * (S16) -128
-2361183241434822606848
-18446744073709551616 * -127
+18446744073709551616 * (S8) -127
-2342736497361113055232
-18446744073709551616 * 255
+18446744073709551616 * (U8) 255
4703919738795935662080
-18446744073709551616 * 256
+18446744073709551616 * (U16) 256
4722366482869645213696
-18446744073709551616 * 65535
+18446744073709551616 * (U16) 65535
1208907372870555465154560
-18446744073709551616 * 65536
+18446744073709551616 * (U32) 65536
1208925819614629174706176
-18446744073709551616 * 4294967295
+18446744073709551616 * (U32) 4294967295
79228162495817593519834398720
-18446744073709551616 * 4294967296
+18446744073709551616 * (U64) 4294967296
79228162514264337593543950336
-18446744073709551616 * 18446744073709551615
+18446744073709551616 * (U64) 18446744073709551615
340282366920938463444927863358058659840
18446744073709551616 * 18446744073709551616
340282366920938463463374607431768211456
@@ -724,33 +724,33 @@
-57896044618658097711785492504343953926124568782438874324533730092808912502785
340282366920938463463374607431768211455 * -9223372036854775808
-3138550867693340381917894711603833208041954350195162480640
-340282366920938463463374607431768211455 * -9223372036854775807
+340282366920938463463374607431768211455 * (S64) -9223372036854775807
-3138550867693340381577612344682894744578579742763394269185
-340282366920938463463374607431768211455 * -2147483648
+340282366920938463463374607431768211455 * (S64) -2147483648
-730750818665451459101842416358141509825818787840
-340282366920938463463374607431768211455 * -2147483647
+340282366920938463463374607431768211455 * (S32) -2147483647
-730750818325169092180903952894766902394050576385
-340282366920938463463374607431768211455 * -32768
+340282366920938463463374607431768211455 * (S32) -32768
-11150372599265311570767859136324180752957440
-340282366920938463463374607431768211455 * -32767
+340282366920938463463374607431768211455 * (S16) -32767
-11150032316898390632304395761716748984745985
-340282366920938463463374607431768211455 * -128
+340282366920938463463374607431768211455 * (S16) -128
-43556142965880123323311949751266331066240
-340282366920938463463374607431768211455 * -127
+340282366920938463463374607431768211455 * (S8) -127
-43215860598959184859848575143834562854785
-340282366920938463463374607431768211455 * 255
+340282366920938463463374607431768211455 * (U8) 255
86772003564839308183160524895100893921025
-340282366920938463463374607431768211455 * 256
+340282366920938463463374607431768211455 * (U16) 256
87112285931760246646623899502532662132480
-340282366920938463463374607431768211455 * 65535
+340282366920938463463374607431768211455 * (U16) 65535
22300404916163702203072254898040929737703425
-340282366920938463463374607431768211455 * 65536
+340282366920938463463374607431768211455 * (U32) 65536
22300745198530623141535718272648361505914880
-340282366920938463463374607431768211455 * 4294967295
+340282366920938463463374607431768211455 * (U32) 4294967295
1461501636990620551282746369252908412219869364225
-340282366920938463463374607431768211455 * 4294967296
+340282366920938463463374607431768211455 * (U64) 4294967296
1461501637330902918203684832716283019651637575680
-340282366920938463463374607431768211455 * 18446744073709551615
+340282366920938463463374607431768211455 * (U64) 18446744073709551615
6277101735386680763495507056286727952620534092958556749825
340282366920938463463374607431768211455 * 18446744073709551616
6277101735386680763835789423207666416083908700390324961280
@@ -764,33 +764,33 @@
-57896044618658097711785492504343953926294709965899343556265417396524796608512
340282366920938463463374607431768211456 * -9223372036854775808
-3138550867693340381917894711603833208051177722232017256448
-340282366920938463463374607431768211456 * -9223372036854775807
+340282366920938463463374607431768211456 * (S64) -9223372036854775807
-3138550867693340381577612344682894744587803114800249044992
-340282366920938463463374607431768211456 * -2147483648
+340282366920938463463374607431768211456 * (S64) -2147483648
-730750818665451459101842416358141509827966271488
-340282366920938463463374607431768211456 * -2147483647
+340282366920938463463374607431768211456 * (S32) -2147483647
-730750818325169092180903952894766902396198060032
-340282366920938463463374607431768211456 * -32768
+340282366920938463463374607431768211456 * (S32) -32768
-11150372599265311570767859136324180752990208
-340282366920938463463374607431768211456 * -32767
+340282366920938463463374607431768211456 * (S16) -32767
-11150032316898390632304395761716748984778752
-340282366920938463463374607431768211456 * -128
+340282366920938463463374607431768211456 * (S16) -128
-43556142965880123323311949751266331066368
-340282366920938463463374607431768211456 * -127
+340282366920938463463374607431768211456 * (S8) -127
-43215860598959184859848575143834562854912
-340282366920938463463374607431768211456 * 255
+340282366920938463463374607431768211456 * (U8) 255
86772003564839308183160524895100893921280
-340282366920938463463374607431768211456 * 256
+340282366920938463463374607431768211456 * (U16) 256
87112285931760246646623899502532662132736
-340282366920938463463374607431768211456 * 65535
+340282366920938463463374607431768211456 * (U16) 65535
22300404916163702203072254898040929737768960
-340282366920938463463374607431768211456 * 65536
+340282366920938463463374607431768211456 * (U32) 65536
22300745198530623141535718272648361505980416
-340282366920938463463374607431768211456 * 4294967295
+340282366920938463463374607431768211456 * (U32) 4294967295
1461501636990620551282746369252908412224164331520
-340282366920938463463374607431768211456 * 4294967296
+340282366920938463463374607431768211456 * (U64) 4294967296
1461501637330902918203684832716283019655932542976
-340282366920938463463374607431768211456 * 18446744073709551615
+340282366920938463463374607431768211456 * (U64) 18446744073709551615
6277101735386680763495507056286727952638980837032266301440
340282366920938463463374607431768211456 * 18446744073709551616
6277101735386680763835789423207666416102355444464034512896
diff --git a/test/ikc3/integer_neg.out.expected b/test/ikc3/integer_neg.out.expected
index 643657f..4875eaf 100644
--- a/test/ikc3/integer_neg.out.expected
+++ b/test/ikc3/integer_neg.out.expected
@@ -4,33 +4,33 @@
170141183460469231731687303715884105727
- -9223372036854775808
9223372036854775808
-- -9223372036854775807
-9223372036854775807
-- -2147483648
-2147483648
-- -2147483647
-2147483647
-- -32768
-32768
-- -32767
-32767
-- -128
-128
-- -127
-127
-- 255
--255
-- 256
--256
-- 65535
--65535
-- 65536
--65536
-- 4294967295
--4294967295
-- 4294967296
+- (S64) -9223372036854775807
+(S64) 9223372036854775807
+- (S64) -2147483648
+(S64) 2147483648
+- (S32) -2147483647
+(S64) 2147483647
+- (S32) -32768
+(S64) 32768
+- (S16) -32767
+(S32) 32767
+- (S16) -128
+(S32) 128
+- (S8) -127
+(S16) 127
+- (U8) 255
+(S16) -255
+- (U16) 256
+(S32) -256
+- (U16) 65535
+(S32) -65535
+- (U32) 65536
+(S64) -65536
+- (U32) 4294967295
+(S64) -4294967295
+- (U64) 4294967296
-4294967296
-- 18446744073709551615
+- (U64) 18446744073709551615
-18446744073709551615
- 18446744073709551616
-18446744073709551616
diff --git a/test/ikc3/integer_sub.out.expected b/test/ikc3/integer_sub.out.expected
index c6a58ea..f32a4c4 100644
--- a/test/ikc3/integer_sub.out.expected
+++ b/test/ikc3/integer_sub.out.expected
@@ -4,33 +4,33 @@
-1
-170141183460469231731687303715884105728 - -9223372036854775808
-170141183460469231722463931679029329920
--170141183460469231731687303715884105728 - -9223372036854775807
+-170141183460469231731687303715884105728 - (S64) -9223372036854775807
-170141183460469231722463931679029329921
--170141183460469231731687303715884105728 - -2147483648
+-170141183460469231731687303715884105728 - (S64) -2147483648
-170141183460469231731687303713736622080
--170141183460469231731687303715884105728 - -2147483647
+-170141183460469231731687303715884105728 - (S32) -2147483647
-170141183460469231731687303713736622081
--170141183460469231731687303715884105728 - -32768
+-170141183460469231731687303715884105728 - (S32) -32768
-170141183460469231731687303715884072960
--170141183460469231731687303715884105728 - -32767
+-170141183460469231731687303715884105728 - (S16) -32767
-170141183460469231731687303715884072961
--170141183460469231731687303715884105728 - -128
+-170141183460469231731687303715884105728 - (S16) -128
-170141183460469231731687303715884105600
--170141183460469231731687303715884105728 - -127
+-170141183460469231731687303715884105728 - (S8) -127
-170141183460469231731687303715884105601
--170141183460469231731687303715884105728 - 255
+-170141183460469231731687303715884105728 - (U8) 255
-170141183460469231731687303715884105983
--170141183460469231731687303715884105728 - 256
+-170141183460469231731687303715884105728 - (U16) 256
-170141183460469231731687303715884105984
--170141183460469231731687303715884105728 - 65535
+-170141183460469231731687303715884105728 - (U16) 65535
-170141183460469231731687303715884171263
--170141183460469231731687303715884105728 - 65536
+-170141183460469231731687303715884105728 - (U32) 65536
-170141183460469231731687303715884171264
--170141183460469231731687303715884105728 - 4294967295
+-170141183460469231731687303715884105728 - (U32) 4294967295
-170141183460469231731687303720179073023
--170141183460469231731687303715884105728 - 4294967296
+-170141183460469231731687303715884105728 - (U64) 4294967296
-170141183460469231731687303720179073024
--170141183460469231731687303715884105728 - 18446744073709551615
+-170141183460469231731687303715884105728 - (U64) 18446744073709551615
-170141183460469231750134047789593657343
-170141183460469231731687303715884105728 - 18446744073709551616
-170141183460469231750134047789593657344
@@ -44,33 +44,33 @@
0
-170141183460469231731687303715884105727 - -9223372036854775808
-170141183460469231722463931679029329919
--170141183460469231731687303715884105727 - -9223372036854775807
+-170141183460469231731687303715884105727 - (S64) -9223372036854775807
-170141183460469231722463931679029329920
--170141183460469231731687303715884105727 - -2147483648
+-170141183460469231731687303715884105727 - (S64) -2147483648
-170141183460469231731687303713736622079
--170141183460469231731687303715884105727 - -2147483647
+-170141183460469231731687303715884105727 - (S32) -2147483647
-170141183460469231731687303713736622080
--170141183460469231731687303715884105727 - -32768
+-170141183460469231731687303715884105727 - (S32) -32768
-170141183460469231731687303715884072959
--170141183460469231731687303715884105727 - -32767
+-170141183460469231731687303715884105727 - (S16) -32767
-170141183460469231731687303715884072960
--170141183460469231731687303715884105727 - -128
+-170141183460469231731687303715884105727 - (S16) -128
-170141183460469231731687303715884105599
--170141183460469231731687303715884105727 - -127
+-170141183460469231731687303715884105727 - (S8) -127
-170141183460469231731687303715884105600
--170141183460469231731687303715884105727 - 255
+-170141183460469231731687303715884105727 - (U8) 255
-170141183460469231731687303715884105982
--170141183460469231731687303715884105727 - 256
+-170141183460469231731687303715884105727 - (U16) 256
-170141183460469231731687303715884105983
--170141183460469231731687303715884105727 - 65535
+-170141183460469231731687303715884105727 - (U16) 65535
-170141183460469231731687303715884171262
--170141183460469231731687303715884105727 - 65536
+-170141183460469231731687303715884105727 - (U32) 65536
-170141183460469231731687303715884171263
--170141183460469231731687303715884105727 - 4294967295
+-170141183460469231731687303715884105727 - (U32) 4294967295
-170141183460469231731687303720179073022
--170141183460469231731687303715884105727 - 4294967296
+-170141183460469231731687303715884105727 - (U64) 4294967296
-170141183460469231731687303720179073023
--170141183460469231731687303715884105727 - 18446744073709551615
+-170141183460469231731687303715884105727 - (U64) 18446744073709551615
-170141183460469231750134047789593657342
-170141183460469231731687303715884105727 - 18446744073709551616
-170141183460469231750134047789593657343
@@ -84,33 +84,33 @@
170141183460469231722463931679029329919
-9223372036854775808 - -9223372036854775808
0
--9223372036854775808 - -9223372036854775807
+-9223372036854775808 - (S64) -9223372036854775807
-1
--9223372036854775808 - -2147483648
+-9223372036854775808 - (S64) -2147483648
-9223372034707292160
--9223372036854775808 - -2147483647
+-9223372036854775808 - (S32) -2147483647
-9223372034707292161
--9223372036854775808 - -32768
+-9223372036854775808 - (S32) -32768
-9223372036854743040
--9223372036854775808 - -32767
+-9223372036854775808 - (S16) -32767
-9223372036854743041
--9223372036854775808 - -128
+-9223372036854775808 - (S16) -128
-9223372036854775680
--9223372036854775808 - -127
+-9223372036854775808 - (S8) -127
-9223372036854775681
--9223372036854775808 - 255
+-9223372036854775808 - (U8) 255
-9223372036854776063
--9223372036854775808 - 256
+-9223372036854775808 - (U16) 256
-9223372036854776064
--9223372036854775808 - 65535
+-9223372036854775808 - (U16) 65535
-9223372036854841343
--9223372036854775808 - 65536
+-9223372036854775808 - (U32) 65536
-9223372036854841344
--9223372036854775808 - 4294967295
+-9223372036854775808 - (U32) 4294967295
-9223372041149743103
--9223372036854775808 - 4294967296
+-9223372036854775808 - (U64) 4294967296
-9223372041149743104
--9223372036854775808 - 18446744073709551615
+-9223372036854775808 - (U64) 18446744073709551615
-27670116110564327423
-9223372036854775808 - 18446744073709551616
-27670116110564327424
@@ -118,565 +118,565 @@
-340282366920938463472597979468622987263
-9223372036854775808 - 340282366920938463463374607431768211456
-340282366920938463472597979468622987264
--9223372036854775807 - -170141183460469231731687303715884105728
+(S64) -9223372036854775807 - -170141183460469231731687303715884105728
170141183460469231722463931679029329921
--9223372036854775807 - -170141183460469231731687303715884105727
+(S64) -9223372036854775807 - -170141183460469231731687303715884105727
170141183460469231722463931679029329920
--9223372036854775807 - -9223372036854775808
+(S64) -9223372036854775807 - -9223372036854775808
1
--9223372036854775807 - -9223372036854775807
+(S64) -9223372036854775807 - (S64) -9223372036854775807
0
--9223372036854775807 - -2147483648
+(S64) -9223372036854775807 - (S64) -2147483648
-9223372034707292159
--9223372036854775807 - -2147483647
+(S64) -9223372036854775807 - (S32) -2147483647
-9223372034707292160
--9223372036854775807 - -32768
+(S64) -9223372036854775807 - (S32) -32768
-9223372036854743039
--9223372036854775807 - -32767
+(S64) -9223372036854775807 - (S16) -32767
-9223372036854743040
--9223372036854775807 - -128
+(S64) -9223372036854775807 - (S16) -128
-9223372036854775679
--9223372036854775807 - -127
+(S64) -9223372036854775807 - (S8) -127
-9223372036854775680
--9223372036854775807 - 255
+(S64) -9223372036854775807 - (U8) 255
-9223372036854776062
--9223372036854775807 - 256
+(S64) -9223372036854775807 - (U16) 256
-9223372036854776063
--9223372036854775807 - 65535
+(S64) -9223372036854775807 - (U16) 65535
-9223372036854841342
--9223372036854775807 - 65536
+(S64) -9223372036854775807 - (U32) 65536
-9223372036854841343
--9223372036854775807 - 4294967295
+(S64) -9223372036854775807 - (U32) 4294967295
-9223372041149743102
--9223372036854775807 - 4294967296
+(S64) -9223372036854775807 - (U64) 4294967296
-9223372041149743103
--9223372036854775807 - 18446744073709551615
+(S64) -9223372036854775807 - (U64) 18446744073709551615
-27670116110564327422
--9223372036854775807 - 18446744073709551616
+(S64) -9223372036854775807 - 18446744073709551616
-27670116110564327423
--9223372036854775807 - 340282366920938463463374607431768211455
+(S64) -9223372036854775807 - 340282366920938463463374607431768211455
-340282366920938463472597979468622987262
--9223372036854775807 - 340282366920938463463374607431768211456
+(S64) -9223372036854775807 - 340282366920938463463374607431768211456
-340282366920938463472597979468622987263
--2147483648 - -170141183460469231731687303715884105728
+(S64) -2147483648 - -170141183460469231731687303715884105728
170141183460469231731687303713736622080
--2147483648 - -170141183460469231731687303715884105727
+(S64) -2147483648 - -170141183460469231731687303715884105727
170141183460469231731687303713736622079
--2147483648 - -9223372036854775808
+(S64) -2147483648 - -9223372036854775808
9223372034707292160
--2147483648 - -9223372036854775807
+(S64) -2147483648 - (S64) -9223372036854775807
9223372034707292159
--2147483648 - -2147483648
+(S64) -2147483648 - (S64) -2147483648
0
--2147483648 - -2147483647
+(S64) -2147483648 - (S32) -2147483647
-1
--2147483648 - -32768
+(S64) -2147483648 - (S32) -32768
-2147450880
--2147483648 - -32767
+(S64) -2147483648 - (S16) -32767
-2147450881
--2147483648 - -128
+(S64) -2147483648 - (S16) -128
-2147483520
--2147483648 - -127
+(S64) -2147483648 - (S8) -127
-2147483521
--2147483648 - 255
+(S64) -2147483648 - (U8) 255
-2147483903
--2147483648 - 256
+(S64) -2147483648 - (U16) 256
-2147483904
--2147483648 - 65535
+(S64) -2147483648 - (U16) 65535
-2147549183
--2147483648 - 65536
+(S64) -2147483648 - (U32) 65536
-2147549184
--2147483648 - 4294967295
+(S64) -2147483648 - (U32) 4294967295
-6442450943
--2147483648 - 4294967296
+(S64) -2147483648 - (U64) 4294967296
-6442450944
--2147483648 - 18446744073709551615
+(S64) -2147483648 - (U64) 18446744073709551615
-18446744075857035263
--2147483648 - 18446744073709551616
+(S64) -2147483648 - 18446744073709551616
-18446744075857035264
--2147483648 - 340282366920938463463374607431768211455
+(S64) -2147483648 - 340282366920938463463374607431768211455
-340282366920938463463374607433915695103
--2147483648 - 340282366920938463463374607431768211456
+(S64) -2147483648 - 340282366920938463463374607431768211456
-340282366920938463463374607433915695104
--2147483647 - -170141183460469231731687303715884105728
+(S32) -2147483647 - -170141183460469231731687303715884105728
170141183460469231731687303713736622081
--2147483647 - -170141183460469231731687303715884105727
+(S32) -2147483647 - -170141183460469231731687303715884105727
170141183460469231731687303713736622080
--2147483647 - -9223372036854775808
+(S32) -2147483647 - -9223372036854775808
9223372034707292161
--2147483647 - -9223372036854775807
+(S32) -2147483647 - (S64) -9223372036854775807
9223372034707292160
--2147483647 - -2147483648
+(S32) -2147483647 - (S64) -2147483648
1
--2147483647 - -2147483647
-0
--2147483647 - -32768
--2147450879
--2147483647 - -32767
--2147450880
--2147483647 - -128
--2147483519
--2147483647 - -127
--2147483520
--2147483647 - 255
--2147483902
--2147483647 - 256
--2147483903
--2147483647 - 65535
--2147549182
--2147483647 - 65536
--2147549183
--2147483647 - 4294967295
--6442450942
--2147483647 - 4294967296
+(S32) -2147483647 - (S32) -2147483647
+(S64) 0
+(S32) -2147483647 - (S32) -32768
+(S64) -2147450879
+(S32) -2147483647 - (S16) -32767
+(S64) -2147450880
+(S32) -2147483647 - (S16) -128
+(S64) -2147483519
+(S32) -2147483647 - (S8) -127
+(S64) -2147483520
+(S32) -2147483647 - (U8) 255
+(S64) -2147483902
+(S32) -2147483647 - (U16) 256
+(S64) -2147483903
+(S32) -2147483647 - (U16) 65535
+(S64) -2147549182
+(S32) -2147483647 - (U32) 65536
+(S64) -2147549183
+(S32) -2147483647 - (U32) 4294967295
+(S64) -6442450942
+(S32) -2147483647 - (U64) 4294967296
-6442450943
--2147483647 - 18446744073709551615
+(S32) -2147483647 - (U64) 18446744073709551615
-18446744075857035262
--2147483647 - 18446744073709551616
+(S32) -2147483647 - 18446744073709551616
-18446744075857035263
--2147483647 - 340282366920938463463374607431768211455
+(S32) -2147483647 - 340282366920938463463374607431768211455
-340282366920938463463374607433915695102
--2147483647 - 340282366920938463463374607431768211456
+(S32) -2147483647 - 340282366920938463463374607431768211456
-340282366920938463463374607433915695103
--32768 - -170141183460469231731687303715884105728
+(S32) -32768 - -170141183460469231731687303715884105728
170141183460469231731687303715884072960
--32768 - -170141183460469231731687303715884105727
+(S32) -32768 - -170141183460469231731687303715884105727
170141183460469231731687303715884072959
--32768 - -9223372036854775808
+(S32) -32768 - -9223372036854775808
9223372036854743040
--32768 - -9223372036854775807
+(S32) -32768 - (S64) -9223372036854775807
9223372036854743039
--32768 - -2147483648
+(S32) -32768 - (S64) -2147483648
2147450880
--32768 - -2147483647
-2147450879
--32768 - -32768
-0
--32768 - -32767
--1
--32768 - -128
--32640
--32768 - -127
--32641
--32768 - 255
--33023
--32768 - 256
--33024
--32768 - 65535
--98303
--32768 - 65536
--98304
--32768 - 4294967295
--4295000063
--32768 - 4294967296
+(S32) -32768 - (S32) -2147483647
+(S64) 2147450879
+(S32) -32768 - (S32) -32768
+(S64) 0
+(S32) -32768 - (S16) -32767
+(S64) -1
+(S32) -32768 - (S16) -128
+(S64) -32640
+(S32) -32768 - (S8) -127
+(S64) -32641
+(S32) -32768 - (U8) 255
+(S64) -33023
+(S32) -32768 - (U16) 256
+(S64) -33024
+(S32) -32768 - (U16) 65535
+(S64) -98303
+(S32) -32768 - (U32) 65536
+(S64) -98304
+(S32) -32768 - (U32) 4294967295
+(S64) -4295000063
+(S32) -32768 - (U64) 4294967296
-4295000064
--32768 - 18446744073709551615
+(S32) -32768 - (U64) 18446744073709551615
-18446744073709584383
--32768 - 18446744073709551616
+(S32) -32768 - 18446744073709551616
-18446744073709584384
--32768 - 340282366920938463463374607431768211455
+(S32) -32768 - 340282366920938463463374607431768211455
-340282366920938463463374607431768244223
--32768 - 340282366920938463463374607431768211456
+(S32) -32768 - 340282366920938463463374607431768211456
-340282366920938463463374607431768244224
--32767 - -170141183460469231731687303715884105728
+(S16) -32767 - -170141183460469231731687303715884105728
170141183460469231731687303715884072961
--32767 - -170141183460469231731687303715884105727
+(S16) -32767 - -170141183460469231731687303715884105727
170141183460469231731687303715884072960
--32767 - -9223372036854775808
+(S16) -32767 - -9223372036854775808
9223372036854743041
--32767 - -9223372036854775807
+(S16) -32767 - (S64) -9223372036854775807
9223372036854743040
--32767 - -2147483648
+(S16) -32767 - (S64) -2147483648
2147450881
--32767 - -2147483647
-2147450880
--32767 - -32768
-1
--32767 - -32767
-0
--32767 - -128
--32639
--32767 - -127
--32640
--32767 - 255
--33022
--32767 - 256
--33023
--32767 - 65535
--98302
--32767 - 65536
--98303
--32767 - 4294967295
--4295000062
--32767 - 4294967296
+(S16) -32767 - (S32) -2147483647
+(S32) 2147450880
+(S16) -32767 - (S32) -32768
+(S32) 1
+(S16) -32767 - (S16) -32767
+(S16) 0
+(S16) -32767 - (S16) -128
+(S16) -32639
+(S16) -32767 - (S8) -127
+(S16) -32640
+(S16) -32767 - (U8) 255
+(S32) -33022
+(S16) -32767 - (U16) 256
+(S32) -33023
+(S16) -32767 - (U16) 65535
+(S32) -98302
+(S16) -32767 - (U32) 65536
+(S64) -98303
+(S16) -32767 - (U32) 4294967295
+(S64) -4295000062
+(S16) -32767 - (U64) 4294967296
-4295000063
--32767 - 18446744073709551615
+(S16) -32767 - (U64) 18446744073709551615
-18446744073709584382
--32767 - 18446744073709551616
+(S16) -32767 - 18446744073709551616
-18446744073709584383
--32767 - 340282366920938463463374607431768211455
+(S16) -32767 - 340282366920938463463374607431768211455
-340282366920938463463374607431768244222
--32767 - 340282366920938463463374607431768211456
+(S16) -32767 - 340282366920938463463374607431768211456
-340282366920938463463374607431768244223
--128 - -170141183460469231731687303715884105728
+(S16) -128 - -170141183460469231731687303715884105728
170141183460469231731687303715884105600
--128 - -170141183460469231731687303715884105727
+(S16) -128 - -170141183460469231731687303715884105727
170141183460469231731687303715884105599
--128 - -9223372036854775808
+(S16) -128 - -9223372036854775808
9223372036854775680
--128 - -9223372036854775807
+(S16) -128 - (S64) -9223372036854775807
9223372036854775679
--128 - -2147483648
+(S16) -128 - (S64) -2147483648
2147483520
--128 - -2147483647
-2147483519
--128 - -32768
-32640
--128 - -32767
-32639
--128 - -128
-0
--128 - -127
--1
--128 - 255
--383
--128 - 256
--384
--128 - 65535
--65663
--128 - 65536
--65664
--128 - 4294967295
--4294967423
--128 - 4294967296
+(S16) -128 - (S32) -2147483647
+(S32) 2147483519
+(S16) -128 - (S32) -32768
+(S32) 32640
+(S16) -128 - (S16) -32767
+(S16) 32639
+(S16) -128 - (S16) -128
+(S16) 0
+(S16) -128 - (S8) -127
+(S16) -1
+(S16) -128 - (U8) 255
+(S32) -383
+(S16) -128 - (U16) 256
+(S32) -384
+(S16) -128 - (U16) 65535
+(S32) -65663
+(S16) -128 - (U32) 65536
+(S64) -65664
+(S16) -128 - (U32) 4294967295
+(S64) -4294967423
+(S16) -128 - (U64) 4294967296
-4294967424
--128 - 18446744073709551615
+(S16) -128 - (U64) 18446744073709551615
-18446744073709551743
--128 - 18446744073709551616
+(S16) -128 - 18446744073709551616
-18446744073709551744
--128 - 340282366920938463463374607431768211455
+(S16) -128 - 340282366920938463463374607431768211455
-340282366920938463463374607431768211583
--128 - 340282366920938463463374607431768211456
+(S16) -128 - 340282366920938463463374607431768211456
-340282366920938463463374607431768211584
--127 - -170141183460469231731687303715884105728
+(S8) -127 - -170141183460469231731687303715884105728
170141183460469231731687303715884105601
--127 - -170141183460469231731687303715884105727
+(S8) -127 - -170141183460469231731687303715884105727
170141183460469231731687303715884105600
--127 - -9223372036854775808
+(S8) -127 - -9223372036854775808
9223372036854775681
--127 - -9223372036854775807
+(S8) -127 - (S64) -9223372036854775807
9223372036854775680
--127 - -2147483648
+(S8) -127 - (S64) -2147483648
2147483521
--127 - -2147483647
-2147483520
--127 - -32768
-32641
--127 - -32767
-32640
--127 - -128
-1
--127 - -127
-0
--127 - 255
--382
--127 - 256
--383
--127 - 65535
--65662
--127 - 65536
--65663
--127 - 4294967295
--4294967422
--127 - 4294967296
+(S8) -127 - (S32) -2147483647
+(S64) 2147483520
+(S8) -127 - (S32) -32768
+(S64) 32641
+(S8) -127 - (S16) -32767
+(S32) 32640
+(S8) -127 - (S16) -128
+(S32) 1
+(S8) -127 - (S8) -127
+(S16) 0
+(S8) -127 - (U8) 255
+(S16) -382
+(S8) -127 - (U16) 256
+(S32) -383
+(S8) -127 - (U16) 65535
+(S32) -65662
+(S8) -127 - (U32) 65536
+(S64) -65663
+(S8) -127 - (U32) 4294967295
+(S64) -4294967422
+(S8) -127 - (U64) 4294967296
-4294967423
--127 - 18446744073709551615
+(S8) -127 - (U64) 18446744073709551615
-18446744073709551742
--127 - 18446744073709551616
+(S8) -127 - 18446744073709551616
-18446744073709551743
--127 - 340282366920938463463374607431768211455
+(S8) -127 - 340282366920938463463374607431768211455
-340282366920938463463374607431768211582
--127 - 340282366920938463463374607431768211456
+(S8) -127 - 340282366920938463463374607431768211456
-340282366920938463463374607431768211583
-255 - -170141183460469231731687303715884105728
+(U8) 255 - -170141183460469231731687303715884105728
170141183460469231731687303715884105983
-255 - -170141183460469231731687303715884105727
+(U8) 255 - -170141183460469231731687303715884105727
170141183460469231731687303715884105982
-255 - -9223372036854775808
+(U8) 255 - -9223372036854775808
9223372036854776063
-255 - -9223372036854775807
+(U8) 255 - (S64) -9223372036854775807
9223372036854776062
-255 - -2147483648
+(U8) 255 - (S64) -2147483648
2147483903
-255 - -2147483647
-2147483902
-255 - -32768
-33023
-255 - -32767
-33022
-255 - -128
-383
-255 - -127
-382
-255 - 255
-0
-255 - 256
--1
-255 - 65535
--65280
-255 - 65536
--65281
-255 - 4294967295
--4294967040
-255 - 4294967296
+(U8) 255 - (S32) -2147483647
+(S64) 2147483902
+(U8) 255 - (S32) -32768
+(S64) 33023
+(U8) 255 - (S16) -32767
+(S32) 33022
+(U8) 255 - (S16) -128
+(S32) 383
+(U8) 255 - (S8) -127
+(S16) 382
+(U8) 255 - (U8) 255
+(S16) 0
+(U8) 255 - (U16) 256
+(S32) -1
+(U8) 255 - (U16) 65535
+(S32) -65280
+(U8) 255 - (U32) 65536
+(S64) -65281
+(U8) 255 - (U32) 4294967295
+(S64) -4294967040
+(U8) 255 - (U64) 4294967296
-4294967041
-255 - 18446744073709551615
+(U8) 255 - (U64) 18446744073709551615
-18446744073709551360
-255 - 18446744073709551616
+(U8) 255 - 18446744073709551616
-18446744073709551361
-255 - 340282366920938463463374607431768211455
+(U8) 255 - 340282366920938463463374607431768211455
-340282366920938463463374607431768211200
-255 - 340282366920938463463374607431768211456
+(U8) 255 - 340282366920938463463374607431768211456
-340282366920938463463374607431768211201
-256 - -170141183460469231731687303715884105728
+(U16) 256 - -170141183460469231731687303715884105728
170141183460469231731687303715884105984
-256 - -170141183460469231731687303715884105727
+(U16) 256 - -170141183460469231731687303715884105727
170141183460469231731687303715884105983
-256 - -9223372036854775808
+(U16) 256 - -9223372036854775808
9223372036854776064
-256 - -9223372036854775807
+(U16) 256 - (S64) -9223372036854775807
9223372036854776063
-256 - -2147483648
+(U16) 256 - (S64) -2147483648
2147483904
-256 - -2147483647
-2147483903
-256 - -32768
-33024
-256 - -32767
-33023
-256 - -128
-384
-256 - -127
-383
-256 - 255
-1
-256 - 256
-0
-256 - 65535
--65279
-256 - 65536
--65280
-256 - 4294967295
--4294967039
-256 - 4294967296
+(U16) 256 - (S32) -2147483647
+(S64) 2147483903
+(U16) 256 - (S32) -32768
+(S64) 33024
+(U16) 256 - (S16) -32767
+(S32) 33023
+(U16) 256 - (S16) -128
+(S32) 384
+(U16) 256 - (S8) -127
+(S32) 383
+(U16) 256 - (U8) 255
+(S32) 1
+(U16) 256 - (U16) 256
+(S32) 0
+(U16) 256 - (U16) 65535
+(S32) -65279
+(U16) 256 - (U32) 65536
+(S64) -65280
+(U16) 256 - (U32) 4294967295
+(S64) -4294967039
+(U16) 256 - (U64) 4294967296
-4294967040
-256 - 18446744073709551615
+(U16) 256 - (U64) 18446744073709551615
-18446744073709551359
-256 - 18446744073709551616
+(U16) 256 - 18446744073709551616
-18446744073709551360
-256 - 340282366920938463463374607431768211455
+(U16) 256 - 340282366920938463463374607431768211455
-340282366920938463463374607431768211199
-256 - 340282366920938463463374607431768211456
+(U16) 256 - 340282366920938463463374607431768211456
-340282366920938463463374607431768211200
-65535 - -170141183460469231731687303715884105728
+(U16) 65535 - -170141183460469231731687303715884105728
170141183460469231731687303715884171263
-65535 - -170141183460469231731687303715884105727
+(U16) 65535 - -170141183460469231731687303715884105727
170141183460469231731687303715884171262
-65535 - -9223372036854775808
+(U16) 65535 - -9223372036854775808
9223372036854841343
-65535 - -9223372036854775807
+(U16) 65535 - (S64) -9223372036854775807
9223372036854841342
-65535 - -2147483648
+(U16) 65535 - (S64) -2147483648
2147549183
-65535 - -2147483647
-2147549182
-65535 - -32768
-98303
-65535 - -32767
-98302
-65535 - -128
-65663
-65535 - -127
-65662
-65535 - 255
-65280
-65535 - 256
-65279
-65535 - 65535
-0
-65535 - 65536
--1
-65535 - 4294967295
--4294901760
-65535 - 4294967296
+(U16) 65535 - (S32) -2147483647
+(S64) 2147549182
+(U16) 65535 - (S32) -32768
+(S64) 98303
+(U16) 65535 - (S16) -32767
+(S32) 98302
+(U16) 65535 - (S16) -128
+(S32) 65663
+(U16) 65535 - (S8) -127
+(S32) 65662
+(U16) 65535 - (U8) 255
+(S32) 65280
+(U16) 65535 - (U16) 256
+(S32) 65279
+(U16) 65535 - (U16) 65535
+(S32) 0
+(U16) 65535 - (U32) 65536
+(S64) -1
+(U16) 65535 - (U32) 4294967295
+(S64) -4294901760
+(U16) 65535 - (U64) 4294967296
-4294901761
-65535 - 18446744073709551615
+(U16) 65535 - (U64) 18446744073709551615
-18446744073709486080
-65535 - 18446744073709551616
+(U16) 65535 - 18446744073709551616
-18446744073709486081
-65535 - 340282366920938463463374607431768211455
+(U16) 65535 - 340282366920938463463374607431768211455
-340282366920938463463374607431768145920
-65535 - 340282366920938463463374607431768211456
+(U16) 65535 - 340282366920938463463374607431768211456
-340282366920938463463374607431768145921
-65536 - -170141183460469231731687303715884105728
+(U32) 65536 - -170141183460469231731687303715884105728
170141183460469231731687303715884171264
-65536 - -170141183460469231731687303715884105727
+(U32) 65536 - -170141183460469231731687303715884105727
170141183460469231731687303715884171263
-65536 - -9223372036854775808
+(U32) 65536 - -9223372036854775808
9223372036854841344
-65536 - -9223372036854775807
+(U32) 65536 - (S64) -9223372036854775807
9223372036854841343
-65536 - -2147483648
+(U32) 65536 - (S64) -2147483648
2147549184
-65536 - -2147483647
-2147549183
-65536 - -32768
-98304
-65536 - -32767
-98303
-65536 - -128
-65664
-65536 - -127
-65663
-65536 - 255
-65281
-65536 - 256
-65280
-65536 - 65535
-1
-65536 - 65536
-0
-65536 - 4294967295
--4294901759
-65536 - 4294967296
+(U32) 65536 - (S32) -2147483647
+(S64) 2147549183
+(U32) 65536 - (S32) -32768
+(S64) 98304
+(U32) 65536 - (S16) -32767
+(S64) 98303
+(U32) 65536 - (S16) -128
+(S64) 65664
+(U32) 65536 - (S8) -127
+(S64) 65663
+(U32) 65536 - (U8) 255
+(S64) 65281
+(U32) 65536 - (U16) 256
+(S64) 65280
+(U32) 65536 - (U16) 65535
+(S64) 1
+(U32) 65536 - (U32) 65536
+(S64) 0
+(U32) 65536 - (U32) 4294967295
+(S64) -4294901759
+(U32) 65536 - (U64) 4294967296
-4294901760
-65536 - 18446744073709551615
+(U32) 65536 - (U64) 18446744073709551615
-18446744073709486079
-65536 - 18446744073709551616
+(U32) 65536 - 18446744073709551616
-18446744073709486080
-65536 - 340282366920938463463374607431768211455
+(U32) 65536 - 340282366920938463463374607431768211455
-340282366920938463463374607431768145919
-65536 - 340282366920938463463374607431768211456
+(U32) 65536 - 340282366920938463463374607431768211456
-340282366920938463463374607431768145920
-4294967295 - -170141183460469231731687303715884105728
+(U32) 4294967295 - -170141183460469231731687303715884105728
170141183460469231731687303720179073023
-4294967295 - -170141183460469231731687303715884105727
+(U32) 4294967295 - -170141183460469231731687303715884105727
170141183460469231731687303720179073022
-4294967295 - -9223372036854775808
+(U32) 4294967295 - -9223372036854775808
9223372041149743103
-4294967295 - -9223372036854775807
+(U32) 4294967295 - (S64) -9223372036854775807
9223372041149743102
-4294967295 - -2147483648
+(U32) 4294967295 - (S64) -2147483648
6442450943
-4294967295 - -2147483647
-6442450942
-4294967295 - -32768
-4295000063
-4294967295 - -32767
-4295000062
-4294967295 - -128
-4294967423
-4294967295 - -127
-4294967422
-4294967295 - 255
-4294967040
-4294967295 - 256
-4294967039
-4294967295 - 65535
-4294901760
-4294967295 - 65536
-4294901759
-4294967295 - 4294967295
-0
-4294967295 - 4294967296
+(U32) 4294967295 - (S32) -2147483647
+(S64) 6442450942
+(U32) 4294967295 - (S32) -32768
+(S64) 4295000063
+(U32) 4294967295 - (S16) -32767
+(S64) 4295000062
+(U32) 4294967295 - (S16) -128
+(S64) 4294967423
+(U32) 4294967295 - (S8) -127
+(S64) 4294967422
+(U32) 4294967295 - (U8) 255
+(S64) 4294967040
+(U32) 4294967295 - (U16) 256
+(S64) 4294967039
+(U32) 4294967295 - (U16) 65535
+(S64) 4294901760
+(U32) 4294967295 - (U32) 65536
+(S64) 4294901759
+(U32) 4294967295 - (U32) 4294967295
+(S64) 0
+(U32) 4294967295 - (U64) 4294967296
-1
-4294967295 - 18446744073709551615
+(U32) 4294967295 - (U64) 18446744073709551615
-18446744069414584320
-4294967295 - 18446744073709551616
+(U32) 4294967295 - 18446744073709551616
-18446744069414584321
-4294967295 - 340282366920938463463374607431768211455
+(U32) 4294967295 - 340282366920938463463374607431768211455
-340282366920938463463374607427473244160
-4294967295 - 340282366920938463463374607431768211456
+(U32) 4294967295 - 340282366920938463463374607431768211456
-340282366920938463463374607427473244161
-4294967296 - -170141183460469231731687303715884105728
+(U64) 4294967296 - -170141183460469231731687303715884105728
170141183460469231731687303720179073024
-4294967296 - -170141183460469231731687303715884105727
+(U64) 4294967296 - -170141183460469231731687303715884105727
170141183460469231731687303720179073023
-4294967296 - -9223372036854775808
+(U64) 4294967296 - -9223372036854775808
9223372041149743104
-4294967296 - -9223372036854775807
+(U64) 4294967296 - (S64) -9223372036854775807
9223372041149743103
-4294967296 - -2147483648
+(U64) 4294967296 - (S64) -2147483648
6442450944
-4294967296 - -2147483647
+(U64) 4294967296 - (S32) -2147483647
6442450943
-4294967296 - -32768
+(U64) 4294967296 - (S32) -32768
4295000064
-4294967296 - -32767
+(U64) 4294967296 - (S16) -32767
4295000063
-4294967296 - -128
+(U64) 4294967296 - (S16) -128
4294967424
-4294967296 - -127
+(U64) 4294967296 - (S8) -127
4294967423
-4294967296 - 255
+(U64) 4294967296 - (U8) 255
4294967041
-4294967296 - 256
+(U64) 4294967296 - (U16) 256
4294967040
-4294967296 - 65535
+(U64) 4294967296 - (U16) 65535
4294901761
-4294967296 - 65536
+(U64) 4294967296 - (U32) 65536
4294901760
-4294967296 - 4294967295
+(U64) 4294967296 - (U32) 4294967295
1
-4294967296 - 4294967296
+(U64) 4294967296 - (U64) 4294967296
0
-4294967296 - 18446744073709551615
+(U64) 4294967296 - (U64) 18446744073709551615
-18446744069414584319
-4294967296 - 18446744073709551616
+(U64) 4294967296 - 18446744073709551616
-18446744069414584320
-4294967296 - 340282366920938463463374607431768211455
+(U64) 4294967296 - 340282366920938463463374607431768211455
-340282366920938463463374607427473244159
-4294967296 - 340282366920938463463374607431768211456
+(U64) 4294967296 - 340282366920938463463374607431768211456
-340282366920938463463374607427473244160
-18446744073709551615 - -170141183460469231731687303715884105728
+(U64) 18446744073709551615 - -170141183460469231731687303715884105728
170141183460469231750134047789593657343
-18446744073709551615 - -170141183460469231731687303715884105727
+(U64) 18446744073709551615 - -170141183460469231731687303715884105727
170141183460469231750134047789593657342
-18446744073709551615 - -9223372036854775808
+(U64) 18446744073709551615 - -9223372036854775808
27670116110564327423
-18446744073709551615 - -9223372036854775807
+(U64) 18446744073709551615 - (S64) -9223372036854775807
27670116110564327422
-18446744073709551615 - -2147483648
+(U64) 18446744073709551615 - (S64) -2147483648
18446744075857035263
-18446744073709551615 - -2147483647
+(U64) 18446744073709551615 - (S32) -2147483647
18446744075857035262
-18446744073709551615 - -32768
+(U64) 18446744073709551615 - (S32) -32768
18446744073709584383
-18446744073709551615 - -32767
+(U64) 18446744073709551615 - (S16) -32767
18446744073709584382
-18446744073709551615 - -128
+(U64) 18446744073709551615 - (S16) -128
18446744073709551743
-18446744073709551615 - -127
+(U64) 18446744073709551615 - (S8) -127
18446744073709551742
-18446744073709551615 - 255
+(U64) 18446744073709551615 - (U8) 255
18446744073709551360
-18446744073709551615 - 256
+(U64) 18446744073709551615 - (U16) 256
18446744073709551359
-18446744073709551615 - 65535
+(U64) 18446744073709551615 - (U16) 65535
18446744073709486080
-18446744073709551615 - 65536
+(U64) 18446744073709551615 - (U32) 65536
18446744073709486079
-18446744073709551615 - 4294967295
+(U64) 18446744073709551615 - (U32) 4294967295
18446744069414584320
-18446744073709551615 - 4294967296
+(U64) 18446744073709551615 - (U64) 4294967296
18446744069414584319
-18446744073709551615 - 18446744073709551615
+(U64) 18446744073709551615 - (U64) 18446744073709551615
0
-18446744073709551615 - 18446744073709551616
+(U64) 18446744073709551615 - 18446744073709551616
-1
-18446744073709551615 - 340282366920938463463374607431768211455
+(U64) 18446744073709551615 - 340282366920938463463374607431768211455
-340282366920938463444927863358058659840
-18446744073709551615 - 340282366920938463463374607431768211456
+(U64) 18446744073709551615 - 340282366920938463463374607431768211456
-340282366920938463444927863358058659841
18446744073709551616 - -170141183460469231731687303715884105728
170141183460469231750134047789593657344
@@ -684,33 +684,33 @@
170141183460469231750134047789593657343
18446744073709551616 - -9223372036854775808
27670116110564327424
-18446744073709551616 - -9223372036854775807
+18446744073709551616 - (S64) -9223372036854775807
27670116110564327423
-18446744073709551616 - -2147483648
+18446744073709551616 - (S64) -2147483648
18446744075857035264
-18446744073709551616 - -2147483647
+18446744073709551616 - (S32) -2147483647
18446744075857035263
-18446744073709551616 - -32768
+18446744073709551616 - (S32) -32768
18446744073709584384
-18446744073709551616 - -32767
+18446744073709551616 - (S16) -32767
18446744073709584383
-18446744073709551616 - -128
+18446744073709551616 - (S16) -128
18446744073709551744
-18446744073709551616 - -127
+18446744073709551616 - (S8) -127
18446744073709551743
-18446744073709551616 - 255
+18446744073709551616 - (U8) 255
18446744073709551361
-18446744073709551616 - 256
+18446744073709551616 - (U16) 256
18446744073709551360
-18446744073709551616 - 65535
+18446744073709551616 - (U16) 65535
18446744073709486081
-18446744073709551616 - 65536
+18446744073709551616 - (U32) 65536
18446744073709486080
-18446744073709551616 - 4294967295
+18446744073709551616 - (U32) 4294967295
18446744069414584321
-18446744073709551616 - 4294967296
+18446744073709551616 - (U64) 4294967296
18446744069414584320
-18446744073709551616 - 18446744073709551615
+18446744073709551616 - (U64) 18446744073709551615
1
18446744073709551616 - 18446744073709551616
0
@@ -724,33 +724,33 @@
510423550381407695195061911147652317182
340282366920938463463374607431768211455 - -9223372036854775808
340282366920938463472597979468622987263
-340282366920938463463374607431768211455 - -9223372036854775807
+340282366920938463463374607431768211455 - (S64) -9223372036854775807
340282366920938463472597979468622987262
-340282366920938463463374607431768211455 - -2147483648
+340282366920938463463374607431768211455 - (S64) -2147483648
340282366920938463463374607433915695103
-340282366920938463463374607431768211455 - -2147483647
+340282366920938463463374607431768211455 - (S32) -2147483647
340282366920938463463374607433915695102
-340282366920938463463374607431768211455 - -32768
+340282366920938463463374607431768211455 - (S32) -32768
340282366920938463463374607431768244223
-340282366920938463463374607431768211455 - -32767
+340282366920938463463374607431768211455 - (S16) -32767
340282366920938463463374607431768244222
-340282366920938463463374607431768211455 - -128
+340282366920938463463374607431768211455 - (S16) -128
340282366920938463463374607431768211583
-340282366920938463463374607431768211455 - -127
+340282366920938463463374607431768211455 - (S8) -127
340282366920938463463374607431768211582
-340282366920938463463374607431768211455 - 255
+340282366920938463463374607431768211455 - (U8) 255
340282366920938463463374607431768211200
-340282366920938463463374607431768211455 - 256
+340282366920938463463374607431768211455 - (U16) 256
340282366920938463463374607431768211199
-340282366920938463463374607431768211455 - 65535
+340282366920938463463374607431768211455 - (U16) 65535
340282366920938463463374607431768145920
-340282366920938463463374607431768211455 - 65536
+340282366920938463463374607431768211455 - (U32) 65536
340282366920938463463374607431768145919
-340282366920938463463374607431768211455 - 4294967295
+340282366920938463463374607431768211455 - (U32) 4294967295
340282366920938463463374607427473244160
-340282366920938463463374607431768211455 - 4294967296
+340282366920938463463374607431768211455 - (U64) 4294967296
340282366920938463463374607427473244159
-340282366920938463463374607431768211455 - 18446744073709551615
+340282366920938463463374607431768211455 - (U64) 18446744073709551615
340282366920938463444927863358058659840
340282366920938463463374607431768211455 - 18446744073709551616
340282366920938463444927863358058659839
@@ -764,33 +764,33 @@
510423550381407695195061911147652317183
340282366920938463463374607431768211456 - -9223372036854775808
340282366920938463472597979468622987264
-340282366920938463463374607431768211456 - -9223372036854775807
+340282366920938463463374607431768211456 - (S64) -9223372036854775807
340282366920938463472597979468622987263
-340282366920938463463374607431768211456 - -2147483648
+340282366920938463463374607431768211456 - (S64) -2147483648
340282366920938463463374607433915695104
-340282366920938463463374607431768211456 - -2147483647
+340282366920938463463374607431768211456 - (S32) -2147483647
340282366920938463463374607433915695103
-340282366920938463463374607431768211456 - -32768
+340282366920938463463374607431768211456 - (S32) -32768
340282366920938463463374607431768244224
-340282366920938463463374607431768211456 - -32767
+340282366920938463463374607431768211456 - (S16) -32767
340282366920938463463374607431768244223
-340282366920938463463374607431768211456 - -128
+340282366920938463463374607431768211456 - (S16) -128
340282366920938463463374607431768211584
-340282366920938463463374607431768211456 - -127
+340282366920938463463374607431768211456 - (S8) -127
340282366920938463463374607431768211583
-340282366920938463463374607431768211456 - 255
+340282366920938463463374607431768211456 - (U8) 255
340282366920938463463374607431768211201
-340282366920938463463374607431768211456 - 256
+340282366920938463463374607431768211456 - (U16) 256
340282366920938463463374607431768211200
-340282366920938463463374607431768211456 - 65535
+340282366920938463463374607431768211456 - (U16) 65535
340282366920938463463374607431768145921
-340282366920938463463374607431768211456 - 65536
+340282366920938463463374607431768211456 - (U32) 65536
340282366920938463463374607431768145920
-340282366920938463463374607431768211456 - 4294967295
+340282366920938463463374607431768211456 - (U32) 4294967295
340282366920938463463374607427473244161
-340282366920938463463374607431768211456 - 4294967296
+340282366920938463463374607431768211456 - (U64) 4294967296
340282366920938463463374607427473244160
-340282366920938463463374607431768211456 - 18446744073709551615
+340282366920938463463374607431768211456 - (U64) 18446744073709551615
340282366920938463444927863358058659841
340282366920938463463374607431768211456 - 18446744073709551616
340282366920938463444927863358058659840
diff --git a/test/ikc3/let.out.expected b/test/ikc3/let.out.expected
index fe1a2bb..31d5135 100644
--- a/test/ikc3/let.out.expected
+++ b/test/ikc3/let.out.expected
@@ -1,8 +1,8 @@
-let %{a: 1} do
+let %{a: (U8) 1} do
a
end
-1
-let %{a: 1, b: 2} do
+(U8) 1
+let %{a: (U8) 1, b: (U8) 2} do
a + b
end
-3
+(U8) 3
diff --git a/test/ikc3/map.out.expected b/test/ikc3/map.out.expected
index 4deb429..506afb3 100644
--- a/test/ikc3/map.out.expected
+++ b/test/ikc3/map.out.expected
@@ -1,55 +1,55 @@
%{}
%{}
-%{a: 1}
-%{a: 1}
-%{a: 1, b: 2}
-%{a: 1, b: 2}
-%{a: 1, b: 2, c: 3}
-%{a: 1, b: 2, c: 3}
-%{a: 3, b: 2, c: 1}
-%{a: 3, b: 2, c: 1}
-%{"a" => 1}
-%{"a" => 1}
-%{"a" => 1, "b" => 2}
-%{"a" => 1, "b" => 2}
-%{"a" => 1, "b" => 2, "c" => 3}
-%{"a" => 1, "b" => 2, "c" => 3}
-%{"a" => 3, "b" => 2, "c" => 1}
-%{"a" => 3, "b" => 2, "c" => 1}
-%{1 => 1}
-%{1 => 1}
-%{1 => 1, 2 => 2}
-%{1 => 1, 2 => 2}
-%{1 => 1, 2 => 2, 3 => 3}
-%{1 => 1, 2 => 2, 3 => 3}
-%{1 => 3, 2 => 2, 3 => 1}
-%{1 => 3, 2 => 2, 3 => 1}
-%{1 + 1 => 2 + 2}
-%{2 => 4}
-%{1 + 1 => 2 + 2, 3 + 3 => 4 + 4}
-%{2 => 4, 6 => 8}
-%{1 + 1 => 2 + 2, 3 + 3 => 4 + 4, 5 + 5 => 6 + 6}
-%{2 => 4, 6 => 8, 10 => 12}
-%{4 + 4 => 3 + 3, 5 + 5 => 2 + 2, 6 + 6 => 1 + 1}
-%{8 => 6, 10 => 4, 12 => 2}
-%{a: 1}
-%{a: 1}
-%{a: 1, b: 2}
-%{a: 1, b: 2}
-%{a: 1, b: 2, c: 3}
-%{a: 1, b: 2, c: 3}
-%{a: 3, b: 2, c: 1}
-%{a: 3, b: 2, c: 1}
-%{} = %{a: 1, b: 2}
-%{a: 1, b: 2}
-%{a: a} = %{a: 1, b: 2}
-%{a: 1, b: 2}
+%{a: (U8) 1}
+%{a: (U8) 1}
+%{a: (U8) 1, b: (U8) 2}
+%{a: (U8) 1, b: (U8) 2}
+%{a: (U8) 1, b: (U8) 2, c: (U8) 3}
+%{a: (U8) 1, b: (U8) 2, c: (U8) 3}
+%{a: (U8) 3, b: (U8) 2, c: (U8) 1}
+%{a: (U8) 3, b: (U8) 2, c: (U8) 1}
+%{"a" => (U8) 1}
+%{"a" => (U8) 1}
+%{"a" => (U8) 1, "b" => (U8) 2}
+%{"a" => (U8) 1, "b" => (U8) 2}
+%{"a" => (U8) 1, "b" => (U8) 2, "c" => (U8) 3}
+%{"a" => (U8) 1, "b" => (U8) 2, "c" => (U8) 3}
+%{"a" => (U8) 3, "b" => (U8) 2, "c" => (U8) 1}
+%{"a" => (U8) 3, "b" => (U8) 2, "c" => (U8) 1}
+%{(U8) 1 => (U8) 1}
+%{(U8) 1 => (U8) 1}
+%{(U8) 1 => (U8) 1, (U8) 2 => (U8) 2}
+%{(U8) 1 => (U8) 1, (U8) 2 => (U8) 2}
+%{(U8) 1 => (U8) 1, (U8) 2 => (U8) 2, (U8) 3 => (U8) 3}
+%{(U8) 1 => (U8) 1, (U8) 2 => (U8) 2, (U8) 3 => (U8) 3}
+%{(U8) 1 => (U8) 3, (U8) 2 => (U8) 2, (U8) 3 => (U8) 1}
+%{(U8) 1 => (U8) 3, (U8) 2 => (U8) 2, (U8) 3 => (U8) 1}
+%{(U8) 1 + (U8) 1 => (U8) 2 + (U8) 2}
+%{(U8) 2 => (U8) 4}
+%{(U8) 1 + (U8) 1 => (U8) 2 + (U8) 2, (U8) 3 + (U8) 3 => (U8) 4 + (U8) 4}
+%{(U8) 2 => (U8) 4, (U8) 6 => (U8) 8}
+%{(U8) 1 + (U8) 1 => (U8) 2 + (U8) 2, (U8) 3 + (U8) 3 => (U8) 4 + (U8) 4, (U8) 5 + (U8) 5 => (U8) 6 + (U8) 6}
+%{(U8) 2 => (U8) 4, (U8) 6 => (U8) 8, (U8) 10 => (U8) 12}
+%{(U8) 4 + (U8) 4 => (U8) 3 + (U8) 3, (U8) 5 + (U8) 5 => (U8) 2 + (U8) 2, (U8) 6 + (U8) 6 => (U8) 1 + (U8) 1}
+%{(U8) 8 => (U8) 6, (U8) 10 => (U8) 4, (U8) 12 => (U8) 2}
+%{a: (U8) 1}
+%{a: (U8) 1}
+%{a: (U8) 1, b: (U8) 2}
+%{a: (U8) 1, b: (U8) 2}
+%{a: (U8) 1, b: (U8) 2, c: (U8) 3}
+%{a: (U8) 1, b: (U8) 2, c: (U8) 3}
+%{a: (U8) 3, b: (U8) 2, c: (U8) 1}
+%{a: (U8) 3, b: (U8) 2, c: (U8) 1}
+%{} = %{a: (U8) 1, b: (U8) 2}
+%{a: (U8) 1, b: (U8) 2}
+%{a: a} = %{a: (U8) 1, b: (U8) 2}
+%{a: (U8) 1, b: (U8) 2}
a
-1
-%{b: b} = %{a: 1, b: 2}
-%{a: 1, b: 2}
+(U8) 1
+%{b: b} = %{a: (U8) 1, b: (U8) 2}
+%{a: (U8) 1, b: (U8) 2}
b
-2
+(U8) 2
%{a: A, b: A} < %{a: A, b: A}
false
%{a: A, b: A} < %{a: A, c: A}
diff --git a/test/ikc3/op.out.expected b/test/ikc3/op.out.expected
index 7ff43c5..fdb2126 100644
--- a/test/ikc3/op.out.expected
+++ b/test/ikc3/op.out.expected
@@ -1,14 +1,14 @@
-1 + 20
-21
-1 + 20 / 3
-7
-1 + 20 / 3 * 4
-25
-1 + 20 / 3 * 4 - 5
-20
-20 / 3 * 4 - 5
-19
-(1 + 20)
-21
-a = (1 + 20)
-21
+(U8) 1 + (U8) 20
+(U8) 21
+(U8) 1 + (U8) 20 / (U8) 3
+(U8) 7
+(U8) 1 + (U8) 20 / (U8) 3 * (U8) 4
+(U16) 25
+(U8) 1 + (U8) 20 / (U8) 3 * (U8) 4 - (U8) 5
+(S32) 20
+(U8) 20 / (U8) 3 * (U8) 4 - (U8) 5
+(S32) 19
+((U8) 1 + (U8) 20)
+(U8) 21
+a = ((U8) 1 + (U8) 20)
+(U8) 21
diff --git a/test/ikc3/plist.out.expected b/test/ikc3/plist.out.expected
index 5b5b6f2..5da71d0 100644
--- a/test/ikc3/plist.out.expected
+++ b/test/ikc3/plist.out.expected
@@ -1,6 +1,6 @@
-[a: 1]
-[a: 1]
-[a: 1, b: 2]
-[a: 1, b: 2]
-[a: 1, b: 2, c: 3]
-[a: 1, b: 2, c: 3]
+[a: (U8) 1]
+[a: (U8) 1]
+[a: (U8) 1, b: (U8) 2]
+[a: (U8) 1, b: (U8) 2]
+[a: (U8) 1, b: (U8) 2, c: (U8) 3]
+[a: (U8) 1, b: (U8) 2, c: (U8) 3]
diff --git a/test/ikc3/puts.out.expected b/test/ikc3/puts.out.expected
index 3a24fa1..3f2e50e 100644
--- a/test/ikc3/puts.out.expected
+++ b/test/ikc3/puts.out.expected
@@ -1,6 +1,6 @@
puts("Test")
Test
-5
+(Sw) 5
puts(%{hello: "World !"})
%{hello: "World !"}
-20
+(Sw) 20
diff --git a/test/ikc3/quote.out.expected b/test/ikc3/quote.out.expected
index 1907e64..08cea6e 100644
--- a/test/ikc3/quote.out.expected
+++ b/test/ikc3/quote.out.expected
@@ -1,35 +1,35 @@
-1
-a = 1 + 1
+(U8) 1
+a = (U8) 1 + (U8) 1
a + a
-%{a: 1}
-%{"a" => 1}
-%{1 => 1}
-%{1 + 1 => 1}
-%{1 => 1 + 1}
-quote 1
-quote a = 1 + 1
+%{a: (U8) 1}
+%{"a" => (U8) 1}
+%{(U8) 1 => (U8) 1}
+%{(U8) 1 + (U8) 1 => (U8) 1}
+%{(U8) 1 => (U8) 1 + (U8) 1}
+quote (U8) 1
+quote a = (U8) 1 + (U8) 1
quote a + a
-quote %{a: 1}
-quote %{"a" => 1}
-quote %{1 => 1}
-quote %{1 + 1 => 1}
-quote %{1 => 1 + 1}
-quote 1
-quote a = 1 + 1
+quote %{a: (U8) 1}
+quote %{"a" => (U8) 1}
+quote %{(U8) 1 => (U8) 1}
+quote %{(U8) 1 + (U8) 1 => (U8) 1}
+quote %{(U8) 1 => (U8) 1 + (U8) 1}
+quote (U8) 1
+quote a = (U8) 1 + (U8) 1
quote a + a
-quote %{a: 1}
-quote %{"a" => 1}
-quote %{1 => 1}
-quote %{1 => 1}
-quote %{1 + 1 => 1}
-quote %{1 => 1 + 1}
-quote %{unquote(1 + 1) => 1}
-quote %{1 => unquote(1 + 1)}
-1
-2
-4
-%{a: 1}
-%{"a" => 1}
-%{1 => 1}
-%{2 => 1}
-%{1 => 2}
+quote %{a: (U8) 1}
+quote %{"a" => (U8) 1}
+quote %{(U8) 1 => (U8) 1}
+quote %{(U8) 1 => (U8) 1}
+quote %{(U8) 1 + (U8) 1 => (U8) 1}
+quote %{(U8) 1 => (U8) 1 + (U8) 1}
+quote %{unquote((U8) 1 + (U8) 1) => (U8) 1}
+quote %{(U8) 1 => unquote((U8) 1 + (U8) 1)}
+(U8) 1
+(U8) 2
+(U8) 4
+%{a: (U8) 1}
+%{"a" => (U8) 1}
+%{(U8) 1 => (U8) 1}
+%{(U8) 2 => (U8) 1}
+%{(U8) 1 => (U8) 2}
diff --git a/test/ikc3/ratio.out.expected b/test/ikc3/ratio.out.expected
index bf835a0..f0ae05b 100644
--- a/test/ikc3/ratio.out.expected
+++ b/test/ikc3/ratio.out.expected
@@ -30,7 +30,7 @@
123456/3
1/3 + 1/6
1/2
-1/2 + 1
+1/2 + (U8) 1
3/2
1/3 - 1/6
1/6