3 int __attribute__((noinline
)) nge(int a
, int b
) {return -(a
>= b
);}
4 int __attribute__((noinline
)) ngt(int a
, int b
) {return -(a
> b
);}
5 int __attribute__((noinline
)) nle(int a
, int b
) {return -(a
<= b
);}
6 int __attribute__((noinline
)) nlt(int a
, int b
) {return -(a
< b
);}
7 int __attribute__((noinline
)) neq(int a
, int b
) {return -(a
== b
);}
8 int __attribute__((noinline
)) nne(int a
, int b
) {return -(a
!= b
);}
9 int __attribute__((noinline
)) ngeu(unsigned a
, unsigned b
) {return -(a
>= b
);}
10 int __attribute__((noinline
)) ngtu(unsigned a
, unsigned b
) {return -(a
> b
);}
11 int __attribute__((noinline
)) nleu(unsigned a
, unsigned b
) {return -(a
<= b
);}
12 int __attribute__((noinline
)) nltu(unsigned a
, unsigned b
) {return -(a
< b
);}
17 if (nge(INT_MIN
, INT_MAX
) != 0) abort();
18 if (nge(INT_MAX
, INT_MIN
) != -1) abort();
19 if (ngt(INT_MIN
, INT_MAX
) != 0) abort();
20 if (ngt(INT_MAX
, INT_MIN
) != -1) abort();
21 if (nle(INT_MIN
, INT_MAX
) != -1) abort();
22 if (nle(INT_MAX
, INT_MIN
) != 0) abort();
23 if (nlt(INT_MIN
, INT_MAX
) != -1) abort();
24 if (nlt(INT_MAX
, INT_MIN
) != 0) abort();
26 if (neq(INT_MIN
, INT_MAX
) != 0) abort();
27 if (neq(INT_MAX
, INT_MIN
) != 0) abort();
28 if (nne(INT_MIN
, INT_MAX
) != -1) abort();
29 if (nne(INT_MAX
, INT_MIN
) != -1) abort();
31 if (ngeu(0, ~0U) != 0) abort();
32 if (ngeu(~0U, 0) != -1) abort();
33 if (ngtu(0, ~0U) != 0) abort();
34 if (ngtu(~0U, 0) != -1) abort();
35 if (nleu(0, ~0U) != -1) abort();
36 if (nleu(~0U, 0) != 0) abort();
37 if (nltu(0, ~0U) != -1) abort();
38 if (nltu(~0U, 0) != 0) abort();