summary refs log tree commit diff
path: root/test/rega1.ssa
blob: 9e87c898ab4819ac7109fe3331b7a7b3c1b73222 (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
# tests that %b and %a0 do not end up in
# the same register at the start of @loop

export function l $f(l %a) {
@start
@loop
	%b =l phi @start 42, @loop0 %a1, @loop1 %a1
	%a0 =l phi @start %a, @loop0 %a1, @loop1 %a1
	%a1 =l sub %a0, 1
	jnz %b, @loop0, @loop1
@loop0
	jnz %a1, @loop, @end
@loop1
	jnz %a1, @loop, @end
@end
	ret %b
}

# >>> driver
# extern long long f(long long);
# int main() {
# 	return !(f(1) == 42 && f(2) == 1 && f(42) == 1);
# }
# <<<