Lines Matching refs:lhs
73 inline int32_t SignedDiv32(int32_t lhs, int32_t rhs)
79 return lhs == std::numeric_limits<int32_t>::min() ? lhs : -lhs;
81 return lhs / rhs;
84 inline int64_t SignedDiv64(int64_t lhs, int64_t rhs)
90 return lhs == std::numeric_limits<int64_t>::min() ? lhs : -lhs;
92 return lhs / rhs;
95 inline int32_t SignedMod32(int32_t lhs, int32_t rhs)
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};