On Fri, May 1, 2020 at 1:12 PM Carl Eugen Hoyos <ceffm...@gmail.com> wrote:
> Am Fr., 1. Mai 2020 um 22:06 Uhr schrieb James Almer <jamr...@gmail.com>: > > Just make the check > > > > (AV_GCC_VERSION_AT_LEAST(5,1) || defined(__clang__)) && > > !defined(__INTEL_COMPILER) > > And switch the conditions. > Thanks. Done. - dale
From 84a19373b4aa2bd01bdd239263c585b957a7b713 Mon Sep 17 00:00:00 2001 From: Dale Curtis <dalecurtis@chromium.org> Date: Fri, 1 May 2020 10:20:43 -0700 Subject: [PATCH] Use gcc/clang builtins for av_sat_(add|sub)_64_c if available. Signed-off-by: Dale Curtis <dalecurtis@chromium.org> --- libavutil/common.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavutil/common.h b/libavutil/common.h index 11907e5ba7..4957842163 100644 --- a/libavutil/common.h +++ b/libavutil/common.h @@ -299,11 +299,16 @@ static av_always_inline int av_sat_dsub32_c(int a, int b) * @return sum with signed saturation */ static av_always_inline int64_t av_sat_add64_c(int64_t a, int64_t b) { +#if (!defined(__INTEL_COMPILER) && AV_GCC_VERSION_AT_LEAST(5,1)) || defined(__clang__) + int64_t tmp; + return !__builtin_add_overflow(a, b, &tmp) ? tmp : (tmp < 0 ? INT64_MAX : INT64_MIN); +#else if (b >= 0 && a >= INT64_MAX - b) return INT64_MAX; if (b <= 0 && a <= INT64_MIN - b) return INT64_MIN; return a + b; +#endif } /** @@ -314,11 +319,16 @@ static av_always_inline int64_t av_sat_add64_c(int64_t a, int64_t b) { * @return difference with signed saturation */ static av_always_inline int64_t av_sat_sub64_c(int64_t a, int64_t b) { +#if (!defined(__INTEL_COMPILER) && AV_GCC_VERSION_AT_LEAST(5,1)) || defined(__clang__) + int64_t tmp; + return !__builtin_sub_overflow(a, b, &tmp) ? tmp : (tmp < 0 ? INT64_MAX : INT64_MIN); +#else if (b <= 0 && a >= INT64_MAX + b) { return INT64_MAX; if (b >= 0 && a <= INT64_MIN + b) { return INT64_MIN; return a - b; +#endif } /** -- 2.24.1.windows.2
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".