diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-12-01 16:13:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-01 16:13:07 +0100 |
commit | dc4b8f8487f0fd3763fc7bfbeffee7bb69ea16be (patch) | |
tree | 0cb162c55f63ad1faad2722f31b1aa868cd7fbba /thirdparty/minimp3/minimp3.h | |
parent | fe6ff611302d80ae68f86eb57c1b7d3f6bf29ad0 (diff) | |
parent | 2d0068d1cb658d6b600fdc3f9ae02fe56338297c (diff) |
Merge pull request #55502 from DeleteSystem32/mp3_fixes
Diffstat (limited to 'thirdparty/minimp3/minimp3.h')
-rw-r--r-- | thirdparty/minimp3/minimp3.h | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/thirdparty/minimp3/minimp3.h b/thirdparty/minimp3/minimp3.h index 796cbc1f8e..3220ae1a85 100644 --- a/thirdparty/minimp3/minimp3.h +++ b/thirdparty/minimp3/minimp3.h @@ -881,12 +881,22 @@ static void L3_midside_stereo(float *left, int n) int i = 0; float *right = left + 576; #if HAVE_SIMD - if (have_simd()) for (; i < n - 3; i += 4) + if (have_simd()) { - f4 vl = VLD(left + i); - f4 vr = VLD(right + i); - VSTORE(left + i, VADD(vl, vr)); - VSTORE(right + i, VSUB(vl, vr)); + for (; i < n - 3; i += 4) + { + f4 vl = VLD(left + i); + f4 vr = VLD(right + i); + VSTORE(left + i, VADD(vl, vr)); + VSTORE(right + i, VSUB(vl, vr)); + } +#ifdef __GNUC__ + /* Workaround for spurious -Waggressive-loop-optimizations warning from gcc. + * For more info see: https://github.com/lieff/minimp3/issues/88 + */ + if (__builtin_constant_p(n % 4 == 0) && n % 4 == 0) + return; +#endif } #endif /* HAVE_SIMD */ for (; i < n; i++) @@ -1353,7 +1363,7 @@ static void mp3d_DCT_II(float *grbuf, int n) } else #endif /* HAVE_SIMD */ #ifdef MINIMP3_ONLY_SIMD - {} + {} /* for HAVE_SIMD=1, MINIMP3_ONLY_SIMD=1 case we do not need non-intrinsic "else" branch */ #else /* MINIMP3_ONLY_SIMD */ for (; k < n; k++) { @@ -1583,7 +1593,7 @@ static void mp3d_synth(float *xl, mp3d_sample_t *dstl, int nch, float *lins) } else #endif /* HAVE_SIMD */ #ifdef MINIMP3_ONLY_SIMD - {} + {} /* for HAVE_SIMD=1, MINIMP3_ONLY_SIMD=1 case we do not need non-intrinsic "else" branch */ #else /* MINIMP3_ONLY_SIMD */ for (i = 14; i >= 0; i--) { |