Skip to content

Commit 58da6a2

Browse files
authored
Merge pull request #1546 from nibrunieAtSi5/patch-2
2 parents 49727e8 + fd07749 commit 58da6a2

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

riscv/arith.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ inline uint64_t mulhu(uint64_t a, uint64_t b)
3232
inline int64_t mulh(int64_t a, int64_t b)
3333
{
3434
int negate = (a < 0) != (b < 0);
35-
uint64_t res = mulhu(a < 0 ? -a : a, b < 0 ? -b : b);
35+
uint64_t res = mulhu(a < 0 ? -(uint64_t)a : a, b < 0 ? -(uint64_t)b : b);
3636
return negate ? ~res + ((uint64_t)a * (uint64_t)b == 0) : res;
3737
}
3838

3939
inline int64_t mulhsu(int64_t a, uint64_t b)
4040
{
4141
int negate = a < 0;
42-
uint64_t res = mulhu(a < 0 ? -a : a, b);
43-
return negate ? ~res + (a * b == 0) : res;
42+
uint64_t res = mulhu(a < 0 ? -(uint64_t)a : a, b);
43+
return negate ? ~res + ((uint64_t)a * b == 0) : res;
4444
}
4545

4646
//ref: https://locklessinc.com/articles/sat_arithmetic/

0 commit comments

Comments
 (0)