(match (unsigned_integer_sat_add @0 @1)
/* SUM = ADD_OVERFLOW (X, Y)
SAT_U_ADD = REALPART (SUM) | -IMAGPART (SUM) */
- (bit_ior:c (realpart (IFN_ADD_OVERFLOW:c@2 @0 @1)) (negate (imagpart @2)))
+ (bit_ior:c (realpart (IFN_ADD_OVERFLOW@2 @0 @1)) (negate (imagpart @2)))
(if (types_match (type, @0, @1))))
(match (unsigned_integer_sat_add @0 @1)
/* SUM = ADD_OVERFLOW (X, Y)
SAT_U_ADD = REALPART (SUM) | -(IMAGPART (SUM) != 0) */
- (bit_ior:c (realpart (IFN_ADD_OVERFLOW:c@2 @0 @1))
+ (bit_ior:c (realpart (IFN_ADD_OVERFLOW@2 @0 @1))
(negate (convert (ne (imagpart @2) integer_zerop))))
(if (types_match (type, @0, @1))))
(match (unsigned_integer_sat_add @0 @1)
/* SUM = ADD_OVERFLOW (X, Y)
SAT_U_ADD = IMAGPART (SUM) == 0 ? REALPART (SUM) : -1 */
- (cond^ (eq (imagpart (IFN_ADD_OVERFLOW:c@2 @0 @1)) integer_zerop)
+ (cond^ (eq (imagpart (IFN_ADD_OVERFLOW@2 @0 @1)) integer_zerop)
(realpart @2) integer_minus_onep)
(if (types_match (type, @0, @1))))
(match (unsigned_integer_sat_add @0 @1)
/* SUM = ADD_OVERFLOW (X, Y)
SAT_U_ADD = IMAGPART (SUM) != 0 ? -1 : REALPART (SUM) */
- (cond^ (ne (imagpart (IFN_ADD_OVERFLOW:c@2 @0 @1)) integer_zerop)
+ (cond^ (ne (imagpart (IFN_ADD_OVERFLOW@2 @0 @1)) integer_zerop)
integer_minus_onep (realpart @2))
(if (types_match (type, @0, @1))))
(match (unsigned_integer_sat_add @0 @1)
/* SUM = ADD_OVERFLOW (X, IMM)
SAT_U_ADD = IMAGPART (SUM) != 0 ? -1 : REALPART (SUM) */
- (cond^ (ne (imagpart (IFN_ADD_OVERFLOW:c@2 @0 INTEGER_CST@1)) integer_zerop)
+ (cond^ (ne (imagpart (IFN_ADD_OVERFLOW@2 @0 INTEGER_CST@1)) integer_zerop)
integer_minus_onep (realpart @2))
(if (types_match (type, @0) && int_fits_type_p (@1, type)))))