11f5207bJohn Levontypedef unsigned int u32;
21f5207bJohn Levon
31f5207bJohn Levonint ssub(int a) { return a - a; }
41f5207bJohn Levonu32 usub(u32 a) { return a - a; }
51f5207bJohn Levon
61f5207bJohn Levonint sdiv(int a) { return a / a; }
71f5207bJohn Levonu32 udiv(u32 a) { return a / a; }
81f5207bJohn Levonint smod(int a) { return a % a; }
91f5207bJohn Levonu32 umod(u32 a) { return a % a; }
101f5207bJohn Levon
111f5207bJohn Levonint seq(int a) { return a == a; }
121f5207bJohn Levonint sne(int a) { return a != a; }
131f5207bJohn Levonint slt(int a) { return a < a; }
141f5207bJohn Levonint sgt(int a) { return a > a; }
151f5207bJohn Levonint sle(int a) { return a <= a; }
161f5207bJohn Levonint sge(int a) { return a >= a; }
171f5207bJohn Levon
181f5207bJohn Levonu32 ueq(u32 a) { return a == a; }
191f5207bJohn Levonu32 une(u32 a) { return a != a; }
201f5207bJohn Levonu32 ult(u32 a) { return a < a; }
211f5207bJohn Levonu32 ugt(u32 a) { return a > a; }
221f5207bJohn Levonu32 ule(u32 a) { return a <= a; }
231f5207bJohn Levonu32 uge(u32 a) { return a >= a; }
241f5207bJohn Levon
251f5207bJohn Levonu32 xor(u32 a) { return a ^ a; }
261f5207bJohn Levon
271f5207bJohn Levonu32 ior(u32 a) { return a | a; }
281f5207bJohn Levonu32 and(u32 a) { return a & a; }
291f5207bJohn Levon
301f5207bJohn Levon/*
311f5207bJohn Levon * check-name: double-unop
321f5207bJohn Levon * check-command: test-linearize -Wno-decl $file
331f5207bJohn Levon * check-output-ignore
341f5207bJohn Levon *
351f5207bJohn Levon * check-output-excludes: sub\\.
361f5207bJohn Levon * check-output-contains: divs\\.
371f5207bJohn Levon * check-output-contains: divu\\.
381f5207bJohn Levon * check-output-contains: mods\\.
391f5207bJohn Levon * check-output-contains: modu\\.
401f5207bJohn Levon * check-output-excludes: seteq\\.
411f5207bJohn Levon * check-output-excludes: setne\\.
421f5207bJohn Levon * check-output-excludes: set[gl]t\\.
431f5207bJohn Levon * check-output-excludes: set[gl]e\\.
441f5207bJohn Levon * check-output-excludes: set[ab]\\.
451f5207bJohn Levon * check-output-excludes: set[ab]e\\.
461f5207bJohn Levon * check-output-excludes: xor\\.
471f5207bJohn Levon * check-output-excludes: or\\.
481f5207bJohn Levon * check-output-excludes: and\\.
491f5207bJohn Levon */
50