1 /* { dg-do compile } */
2 /* { dg-additional-options "--save-temps -O1" } */
3 /* { dg-final { check-function-bodies "**" "" "" } } */
7 #pragma GCC target "+cssc"
9 #define MIN(X, Y) ((X) > (Y) ? (Y) : (X))
10 #define MAX(X, Y) ((X) > (Y) ? (X) : (Y))
12 #define FUNC(T, OP, IMM) \
14 T##_##OP##_##IMM (T a) \
19 #define FUNCNEG(T, OP, IMM) \
21 T##_##OP##_m##IMM (T a) \
23 return OP (a, - (IMM)); \
32 FUNC (uint32_t, MIN
, 255)
40 FUNC (uint64_t, MIN
, 255)
48 FUNC (uint32_t, MAX
, 255)
57 FUNC (uint64_t, MAX
, 255)
65 FUNCNEG (int32_t, MIN
, 128)
73 FUNC (int32_t, MIN
, 127)
81 FUNCNEG (int64_t, MIN
, 128)
89 FUNC (int64_t, MIN
, 127)
97 FUNCNEG (int32_t, MAX
, 128)
105 FUNC (int32_t, MAX
, 127)
113 FUNCNEG (int64_t, MAX
, 128)
121 FUNC (int64_t, MAX
, 127)
129 FUNC (int32_t, MIN
, 0)
137 FUNC (int64_t, MIN
, 0)
145 FUNC (int32_t, MAX
, 0)
153 FUNC (int64_t, MAX
, 0)