aboutsummaryrefslogtreecommitdiff
path: root/tests/conformance/3-expressions/int_shr_arith.zc
blob: 8bd8de5a70f3d87a54804ef44597f7452f92745b (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
// expect: -4/-4/-1/-1/-1/-1/2/2/-1/-1/128/128/-1/-1/5/5/
// spec 3.4.4
include rt;
void pn(int x) { rt.put_n(x); rt.put_c(10); }
fn main() {
	pn(-8 >> 1);
	{ int a = -8, b = 1; pn(a >> b); }
	pn(-1 >> 63);
	{ int a = -1, b = 63; pn(a >> b); }
	pn(-1 >> 64);
	{ int a = -1, b = 64; pn(a >> b); }
	pn(5 >> -63);
	{ int a = 5, b = -63; pn(a >> b); }
	pn((-9223372036854775807 - 1) >> 63);
	{ int a = (-9223372036854775807 - 1), b = 63; pn(a >> b); }
	pn(1024 >> 3);
	{ int a = 1024, b = 3; pn(a >> b); }
	pn(-1 >> 1);
	{ int a = -1, b = 1; pn(a >> b); }
	pn(5 >> 64);
	{ int a = 5, b = 64; pn(a >> b); }
	return 0;
}