# unit tests for load elimination

export
function $tests() {
@start
	%p =l alloc8 16
	%p3 =l add %p, 3
	%p4 =l add %p, 4
	%p6 =l add %p, 6
	%p8 =l add %p, 8
@test1
	storew 1, $a
	storel 1311768467139281697, %p
	storeh 255, %p8
	%x1 =w load %p6
	%c1 =w cnew %x1, 16716340
	jnz %c1, @fail, @test2
@test2
	storew 2, $a
	%x2 =w loadub %p3
	%c2 =w cnew %x2, 135
	jnz %c2, @fail, @test3
@test3
	storew 3, $a
	storew 2864434397, %p8
	%x3 =l load %p3
	%c3 =w cnel %x3, -4914310023110821753
	jnz %c3, @fail, @test4
@test4
@ok
	storew 0, $a
@fail
	ret
}

# >>> driver
# extern void tests(void);
# int a;
# int main() { tests(); return a; }
# <<<
