summary refs log tree commit diff
path: root/test/ldbits.ssa
blob: 5e5448737b4b2b4ddcc9877097434218e7f01820 (plain) (blame)
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
# 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; }
# <<<