[compiler-rt] compiler-rt: fix few builtins build warnings. (PR #88991)
David CARLIER via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 16 14:37:29 PDT 2024
https://github.com/devnexen created https://github.com/llvm/llvm-project/pull/88991
None
>From f99a52cae06420758160f1069ea2d9db9b1fbcd1 Mon Sep 17 00:00:00 2001
From: David Carlier <devnexen at gmail.com>
Date: Tue, 16 Apr 2024 22:36:41 +0100
Subject: [PATCH] compiler-rt: fix few builtins build warnings.
---
compiler-rt/lib/builtins/fp_add_impl.inc | 2 +-
compiler-rt/lib/builtins/fp_fixint_impl.inc | 4 ++--
compiler-rt/lib/builtins/fp_lib.h | 6 +++---
compiler-rt/lib/builtins/int_types.h | 4 ++--
4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/compiler-rt/lib/builtins/fp_add_impl.inc b/compiler-rt/lib/builtins/fp_add_impl.inc
index 7133358df9bd2c..d20599921e7d88 100644
--- a/compiler-rt/lib/builtins/fp_add_impl.inc
+++ b/compiler-rt/lib/builtins/fp_add_impl.inc
@@ -91,7 +91,7 @@ static __inline fp_t __addXf3__(fp_t a, fp_t b) {
// Shift the significand of b by the difference in exponents, with a sticky
// bottom bit to get rounding correct.
- const unsigned int align = aExponent - bExponent;
+ const unsigned int align = (unsigned int)(aExponent - bExponent);
if (align) {
if (align < typeWidth) {
const bool sticky = (bSignificand << (typeWidth - align)) != 0;
diff --git a/compiler-rt/lib/builtins/fp_fixint_impl.inc b/compiler-rt/lib/builtins/fp_fixint_impl.inc
index 3556bad9990b2f..2f2f77ce781ae2 100644
--- a/compiler-rt/lib/builtins/fp_fixint_impl.inc
+++ b/compiler-rt/lib/builtins/fp_fixint_impl.inc
@@ -34,7 +34,7 @@ static __inline fixint_t __fixint(fp_t a) {
// If 0 <= exponent < significandBits, right shift to get the result.
// Otherwise, shift left.
if (exponent < significandBits)
- return sign * (significand >> (significandBits - exponent));
+ return (fixint_t)(sign * (significand >> (significandBits - exponent)));
else
- return sign * ((fixuint_t)significand << (exponent - significandBits));
+ return (fixint_t)(sign * ((fixuint_t)significand << (exponent - significandBits)));
}
diff --git a/compiler-rt/lib/builtins/fp_lib.h b/compiler-rt/lib/builtins/fp_lib.h
index c4f0a5b9587f77..8404d98c935081 100644
--- a/compiler-rt/lib/builtins/fp_lib.h
+++ b/compiler-rt/lib/builtins/fp_lib.h
@@ -43,8 +43,8 @@ static __inline int rep_clz(rep_t a) { return clzsi(a); }
// 32x32 --> 64 bit multiply
static __inline void wideMultiply(rep_t a, rep_t b, rep_t *hi, rep_t *lo) {
const uint64_t product = (uint64_t)a * b;
- *hi = product >> 32;
- *lo = product;
+ *hi = (rep_t)(product >> 32);
+ *lo = (rep_t)product;
}
COMPILER_RT_ABI fp_t __addsf3(fp_t a, fp_t b);
@@ -239,7 +239,7 @@ static __inline int normalize(rep_t *significand) {
return 1 - shift;
}
-static __inline void wideLeftShift(rep_t *hi, rep_t *lo, int count) {
+static __inline void wideLeftShift(rep_t *hi, rep_t *lo, unsigned int count) {
*hi = *hi << count | *lo >> (typeWidth - count);
*lo = *lo << count;
}
diff --git a/compiler-rt/lib/builtins/int_types.h b/compiler-rt/lib/builtins/int_types.h
index ca97391fc28466..48862f3642175b 100644
--- a/compiler-rt/lib/builtins/int_types.h
+++ b/compiler-rt/lib/builtins/int_types.h
@@ -107,8 +107,8 @@ typedef union {
static __inline ti_int make_ti(di_int h, di_int l) {
twords r;
- r.s.high = h;
- r.s.low = l;
+ r.s.high = (du_int)h;
+ r.s.low = (du_int)l;
return r.all;
}
More information about the llvm-commits
mailing list