1 typedef unsigned int u32; 2 3 int ssub(int a) { return a - a; } 4 u32 usub(u32 a) { return a - a; } 5 6 int sdiv(int a) { return a / a; } 7 u32 udiv(u32 a) { return a / a; } 8 int smod(int a) { return a % a; } 9 u32 umod(u32 a) { return a % a; } 10 11 int seq(int a) { return a == a; } 12 int sne(int a) { return a != a; } 13 int slt(int a) { return a < a; } 14 int sgt(int a) { return a > a; } 15 int sle(int a) { return a <= a; } 16 int sge(int a) { return a >= a; } 17 18 u32 ueq(u32 a) { return a == a; } 19 u32 une(u32 a) { return a != a; } 20 u32 ult(u32 a) { return a < a; } 21 u32 ugt(u32 a) { return a > a; } 22 u32 ule(u32 a) { return a <= a; } 23 u32 uge(u32 a) { return a >= a; } 24 25 u32 xor(u32 a) { return a ^ a; } 26 27 u32 ior(u32 a) { return a | a; } 28 u32 and(u32 a) { return a & a; } 29 30 /* 31 * check-name: double-unop 32 * check-command: test-linearize -Wno-decl $file 33 * check-output-ignore 34 * 35 * check-output-excludes: sub\\. 36 * check-output-contains: divs\\. 37 * check-output-contains: divu\\. 38 * check-output-contains: mods\\. 39 * check-output-contains: modu\\. 40 * check-output-excludes: seteq\\. 41 * check-output-excludes: setne\\. 42 * check-output-excludes: set[gl]t\\. 43 * check-output-excludes: set[gl]e\\. 44 * check-output-excludes: set[ab]\\. 45 * check-output-excludes: set[ab]e\\. 46 * check-output-excludes: xor\\. 47 * check-output-excludes: or\\. 48 * check-output-excludes: and\\. 49 */