Lines Matching refs:rhs
73 inline int32_t SignedDiv32(int32_t lhs, int32_t rhs)
75 if (rhs == 0) {
78 if (rhs == -1) {
81 return lhs / rhs;
84 inline int64_t SignedDiv64(int64_t lhs, int64_t rhs)
86 if (rhs == 0) {
89 if (rhs == -1) {
92 return lhs / rhs;
95 inline int32_t SignedMod32(int32_t lhs, int32_t rhs)
97 if (rhs == 0 || rhs == -1) {
100 return lhs % rhs;
104 inline bool SignedAddOverflow32(int32_t lhs, int32_t rhs, int32_t *val)
106 uint32_t res = static_cast<uint32_t>(lhs) + static_cast<uint32_t>(rhs);
109 return ((res ^ static_cast<uint32_t>(lhs)) & (res ^ static_cast<uint32_t>(rhs)) & (1U << 31)) != 0;
113 inline bool SignedSubOverflow32(int32_t lhs, int32_t rhs, int32_t *val)
115 uint32_t res = static_cast<uint32_t>(lhs) - static_cast<uint32_t>(rhs);
118 return ((res ^ static_cast<uint32_t>(lhs)) & (res ^ ~static_cast<uint32_t>(rhs)) & (1U << 31)) != 0;
121 inline bool SignedMulOverflow32(int32_t lhs, int32_t rhs, int32_t *val)
123 int64_t result = int64_t{lhs} * int64_t{rhs};