1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3 /* { dg-final { scan-assembler-times "cmp" 4 } } */
5 extern void abort (void);
8 #define PLUSCC1(T, t, C) \
9 T pluscc##t##C (T a, T b) \
16 #define PLUSCC(T, t) PLUSCC1(T, t, a) PLUSCC1(T, t, b)
18 #define INCCC1(T, t, C) \
19 T inccc##t##C (T a, T b) \
26 #define INCCC(T, t) INCCC1(T, t, a) INCCC1(T, t, b)
28 #define PLUSCCONLY1(T, t, C) \
29 void pluscconly##t##C (T a, T b) \
35 #define PLUSCCONLY(T, t) PLUSCCONLY1(T, t, a) PLUSCCONLY1(T, t, b)
37 #define MINUSCC(T, t) \
38 T minuscc##t (T a, T b) \
40 T difference = a - b; \
47 T deccc##t (T a, T b) \
49 T difference = a - b; \
55 #define MINUSCCONLY(T, t) \
56 void minuscconly##t (T a, T b) \
58 T difference = a - b; \
71 TEST (unsigned long, l)
72 TEST (unsigned int, i)
73 TEST (unsigned short, s)
74 TEST (unsigned char, c)
76 #define PLUSCCZEXT(C) \
77 unsigned long pluscczext##C (unsigned int a, unsigned int b) \
79 unsigned int sum = a + b; \
89 unsigned long minuscczext (unsigned int a, unsigned int b) \
91 unsigned int difference = a - b; \