60 lines
1.2 KiB
Plaintext
60 lines
1.2 KiB
Plaintext
program main
|
|
fn base() -> u64
|
|
u64 4294967296
|
|
fn adjust(value: u64, delta: u64) -> u64
|
|
binary +
|
|
var value
|
|
var delta
|
|
fn doubled(value: u64) -> u64
|
|
binary *
|
|
var value
|
|
u64 2
|
|
fn local_total() -> u64
|
|
local let offset: u64
|
|
u64 19
|
|
call adjust
|
|
binary /
|
|
call doubled
|
|
call base
|
|
u64 2
|
|
var offset
|
|
fn high_enough(value: u64) -> bool
|
|
if
|
|
binary >
|
|
var value
|
|
u64 4294967300
|
|
binary <
|
|
var value
|
|
u64 4294967320
|
|
bool false
|
|
fn exact_u64() -> bool
|
|
binary =
|
|
call local_total
|
|
u64 4294967315
|
|
fn main() -> i32
|
|
call std.io.print_u64
|
|
call local_total
|
|
if
|
|
call high_enough
|
|
call local_total
|
|
int 0
|
|
int 1
|
|
test "u64 arithmetic returns exact fixture value"
|
|
call exact_u64
|
|
test "u64 comparison works in predicates"
|
|
call high_enough
|
|
call local_total
|
|
test "u64 division and ordering"
|
|
if
|
|
binary >=
|
|
binary /
|
|
call local_total
|
|
u64 5
|
|
u64 858993463
|
|
binary <=
|
|
binary /
|
|
call local_total
|
|
u64 5
|
|
u64 858993463
|
|
bool false
|