File: add_bits.sail

package info (click to toggle)
sail-ocaml 0.19.1%2Bdfsg5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,008 kB
  • sloc: ml: 75,941; ansic: 8,848; python: 1,342; exp: 560; sh: 474; makefile: 218; cpp: 36
file content (129 lines) | stat: -rw-r--r-- 6,109 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
default Order dec

$include <exception_basic.sail>
$include <flow.sail>
$include <vector_dec.sail>

function main (() : unit) -> unit = {
  assert(64^0x0 + 64^0x0 == 64^0x0);
  assert(64^0x0 + 64^0x1 == 64^0x1);
  assert(64^0x0 + 64^0x3000020 == 64^0x3000020);
  assert(64^0x0 + 64^0x3000058 == 64^0x3000058);
  assert(64^0x0 + 64^0x3000068 == 64^0x3000068);
  assert(64^0x0 + 64^0x30000c8 == 64^0x30000c8);
  assert(64^0x0 + 64^0x30002a0 == 64^0x30002a0);
  assert(64^0x0 + 64^0x3006b10 == 64^0x3006b10);
  assert(64^0x0 + 64^0x3808064 == 64^0x3808064);
  assert(64^0x0 + 64^0x3808068 == 64^0x3808068);
  assert(64^0x0 + 64^0x3808070 == 64^0x3808070);
  assert(64^0x0 + 64^0x3808078 == 64^0x3808078);
  assert(64^0x0 + 64^0x3808080 == 64^0x3808080);
  assert(64^0x0 + 64^0x3808140 == 64^0x3808140);
  assert(64^0x0 + 64^0x3808a04 == 64^0x3808a04);
  assert(64^0x0 + 64^0x3808a08 == 64^0x3808a08);
  assert(64^0x0 + 64^0x3808a10 == 64^0x3808a10);
  assert(64^0x0 + 64^0x3808a18 == 64^0x3808a18);
  assert(64^0x0 + 64^0x3808a20 == 64^0x3808a20);
  assert(64^0x0 + 64^0x3808a78 == 64^0x3808a78);
  assert(64^0x0 + 64^0x3808b78 == 64^0x3808b78);
  assert(64^0x0 + 64^0x3808b80 == 64^0x3808b80);
  assert(64^0x0 + 64^0x3815618 == 64^0x3815618);
  assert(64^0x0 + 64^0x3815624 == 64^0x3815624);
  assert(64^0x0 + 64^0x3815628 == 64^0x3815628);
  assert(64^0x1 + 64^0x1 == 64^0x2);
  assert(64^0x10 + 64^0x1 == 64^0x11);
  assert(64^0x100 + 64^0x1 == 64^0x101);
  assert(64^0x1000 + 64^0x1 == 64^0x1001);
  assert(64^0x10000 + 64^0x1 == 64^0x10001);
  assert(64^0x10000 + 64^0x12000 == 64^0x22000);
  assert(64^0x10000 + 64^0x380a000 == 64^0x381a000);
  assert(64^0x1000078 + 64^0x10 == 64^0x1000088);
  assert(64^0x1000080 + 64^0x10 == 64^0x1000090);
  assert(64^0x1000088 + 64^0x0 == 64^0x1000088);
  assert(64^0x1000090 + 64^0x4 == 64^0x1000094);
  assert(64^0x1000090 + 64^0xffffffffff023458 == 64^0x234e8);
  assert(64^0x1000094 + 64^0xc == 64^0x10000a0);
  assert(64^0x100009c + 64^0x10 == 64^0x10000ac);
  assert(64^0x100009c + 64^0xc == 64^0x10000a8);
  assert(64^0x10000a0 + 64^0x0 == 64^0x10000a0);
  assert(64^0x10000a8 + 64^0x10 == 64^0x10000b8);
  assert(64^0x10000b0 + 64^0x4 == 64^0x10000b4);
  assert(64^0x10000b0 + 64^0xffffffffff021770 == 64^0x21820);
  assert(64^0x10000b4 + 64^0xffffffffffffffec == 64^0x10000a0);
  assert(64^0x10000bc + 64^0x4 == 64^0x10000c0);
  assert(64^0x10000bc + 64^0xffffffffff021764 == 64^0x21820);
  assert(64^0x10000c0 + 64^0xffffffffffffffe0 == 64^0x10000a0);
  assert(64^0x10001 + 64^0x1 == 64^0x10002);
  assert(64^0x10056 + 64^0x1 == 64^0x10057);
  assert(64^0x10057 + 64^0x1 == 64^0x10058);
  assert(64^0x10058 + 64^0x1 == 64^0x10059);
  assert(64^0x10059 + 64^0x1 == 64^0x1005a);
  assert(64^0x1005a + 64^0x1 == 64^0x1005b);
  assert(64^0x1018c + 64^0x1 == 64^0x1018d);
  assert(64^0x14001d0 + 64^0xfffffffffffffffc == 64^0x14001cc);
  assert(64^0x14001dc + 64^0x8 == 64^0x14001e4);
  assert(64^0x14001f0 + 64^0x4 == 64^0x14001f4);
  assert(64^0x14001f0 + 64^0xfffffffffec217f0 == 64^0x219e0);
  assert(64^0x158f + 64^0x1 == 64^0x1590);
  assert(64^0x1bdf8 + 64^0xffffffffffffffe0 == 64^0x1bdd8);
  assert(64^0x1be + 64^0x1 == 64^0x1bf);
  assert(64^0x1c4cc + 64^0x4 == 64^0x1c4d0);
  assert(64^0x1c4cc + 64^0xffffffffffff9f54 == 64^0x16420);
  assert(64^0x1c4d + 64^0x1 == 64^0x1c4e);
  assert(64^0x1e180 + 64^0xffffffffffff8190 == 64^0x16310);
  assert(64^0x1e19 + 64^0x1 == 64^0x1e1a);
  assert(64^0x1e194 + 64^0xffffffffffffe88c == 64^0x1ca20);
  assert(64^0x21d8e + 64^0x1 == 64^0x21d8f);
  assert(64^0x22050 + 64^0xffffffffffffc680 == 64^0x1e6d0);
  assert(64^0x2206 + 64^0x1 == 64^0x2207);
  assert(64^0x2209 + 64^0x1 == 64^0x220a);
  assert(64^0x22090 + 64^0xffffffffffffd0a8 == 64^0x1f138);
  assert(64^0x220a + 64^0x1 == 64^0x220b);
  assert(64^0x220b + 64^0x1 == 64^0x220c);
  assert(64^0x220e + 64^0x1 == 64^0x220f);
  assert(64^0x220e0 + 64^0x10 == 64^0x220f0);
  assert(64^0x220e8 + 64^0xffffffffffffd0a8 == 64^0x1f190);
  assert(64^0x220f + 64^0x1 == 64^0x2210);
  assert(64^0x221 + 64^0x1 == 64^0x222);
  assert(64^0x2212 + 64^0x1 == 64^0x2213);
  assert(64^0x2b87 + 64^0x1 == 64^0x2b88);
  assert(64^0x2ccf + 64^0x1 == 64^0x2cd0);
  assert(64^0x2e01828 + 64^0x8 == 64^0x2e01830);
  assert(64^0x2f00ba0 + 64^0x8 == 64^0x2f00ba8);
  assert(64^0x2f00ba8 + 64^0x8 == 64^0x2f00bb0);
  assert(64^0x31d084c + 64^0x60 == 64^0x31d08ac);
  assert(64^0x31d0858 + 64^0x4 == 64^0x31d085c);
  assert(64^0x31d0858 + 64^0xfffffffffffffd1c == 64^0x31d0574);
  assert(64^0x31d085c + 64^0x4 == 64^0x31d0860);
  assert(64^0x31d085c + 64^0xfffffffffffffdf8 == 64^0x31d0654);
  assert(64^0x31d0860 + 64^0x4 == 64^0x31d0864);
  assert(64^0x31d0860 + 64^0xfffffffffffffd1c == 64^0x31d057c);
  assert(64^0x31d0874 + 64^0xfffffffffffffdcc == 64^0x31d0640);
  assert(64^0x31d08cc + 64^0x8c == 64^0x31d0958);
  assert(64^0x31d08f0 + 64^0x4 == 64^0x31d08f4);
  assert(64^0x31d08f4 + 64^0x8 == 64^0x31d08fc);
  assert(64^0x31d0950 + 64^0x4 == 64^0x31d0954);
  assert(64^0x31d095c + 64^0xffffffffffffff74 == 64^0x31d08d0);
  assert(64^0x31d09d4 + 64^0x8 == 64^0x31d09dc);
  assert(64^0x31d09f0 + 64^0x4 == 64^0x31d09f4);
  assert(64^0x3800440 + 64^0x8 == 64^0x3800448);
  assert(64^0x3800440 + 64^0xfffffffffffffff0 == 64^0x3800430);
  assert(64^0x3800450 + 64^0x0 == 64^0x3800450);
  assert(64^0x3800450 + 64^0x10 == 64^0x3800460);
  assert(64^0x3800450 + 64^0x8 == 64^0x3800458);
  assert(64^0x3800450 + 64^0xfffffffffffffff0 == 64^0x3800440);
  assert(64^0x3800460 + 64^0xfffffffffffffff0 == 64^0x3800450);
  assert(64^0x3801 + 64^0x1 == 64^0x3802);
  assert(64^0x3802 + 64^0x1 == 64^0x3803);
  assert(64^0x40a9 + 64^0x1 == 64^0x40aa);
  assert(64^0x6216008 + 64^0x3 == 64^0x621600b);
  assert(64^0x621600c + 64^0x0 == 64^0x621600c);
  assert(64^0x6643 + 64^0x1 == 64^0x6644);
  assert(64^0x8f + 64^0x1 == 64^0x90);
  assert(64^0x8f0 + 64^0x1 == 64^0x8f1);
  assert(64^0xc0c + 64^0x1 == 64^0xc0d);
  assert(64^0xc0c0 + 64^0x1 == 64^0xc0c1);
  assert(64^0xfffd + 64^0x1 == 64^0xfffe);
  assert(64^0xfffe + 64^0x1 == 64^0xffff);
  assert(64^0xffff + 64^0x1 == 64^0x10000);
}