aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/optim/canonical-cmp.c
blob: 9b930b1cbeaaace685529d99b77190589b7cab03 (plain)
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
typedef	  signed int	sint;
typedef	unsigned int	uint;

sint seq(sint p, sint a) { return (123 == p) == (p == 123); }
sint sne(sint p, sint a) { return (123 != p) == (p != 123); }

sint slt(sint p, sint a) { return (123 >  p) == (p <  123); }
sint sle(sint p, sint a) { return (123 >= p) == (p <= 123); }
sint sge(sint p, sint a) { return (123 <= p) == (p >= 123); }
sint sgt(sint p, sint a) { return (123 <  p) == (p >  123); }

uint ueq(uint p, uint a) { return (123 == p) == (p == 123); }
uint une(uint p, uint a) { return (123 != p) == (p != 123); }

uint ubt(uint p, uint a) { return (123 >  p) == (p <  123); }
uint ube(uint p, uint a) { return (123 >= p) == (p <= 123); }
uint uae(uint p, uint a) { return (123 <= p) == (p >= 123); }
uint uat(uint p, uint a) { return (123 <  p) == (p >  123); }

/*
 * check-name: canonical-cmp
 * check-description: check that constants move rightside
 * check-command: test-linearize -Wno-decl $file
 *
 * check-output-ignore
 * check-output-excludes: \\$123,
 */