diff options
author | Erik de Castro Lopo <erikd@mega-nerd.com> | 2018-05-06 15:25:11 +1000 |
---|---|---|
committer | Erik de Castro Lopo <erikd@mega-nerd.com> | 2018-05-06 15:25:14 +1000 |
commit | aaaaa0deb92654fd684042d402d75338def17364 (patch) | |
tree | c8720fbc7c292c450646d815c1ea0a5639114a9f | |
parent | 2817eca6d88453c8d5784480692df8949c482e7d (diff) | |
download | flac-aaaaa0deb92654fd684042d402d75338def17364.tar.gz |
More generic version of MSVC bug workaround
This is an updtate to the fix for an MSVC 2015 bug in 94a61241b0.
Patch-from: lvqcl <lvqcl.mail@gmail.com>
-rw-r--r-- | src/libFLAC/stream_encoder_intrin_avx2.c | 4 | ||||
-rw-r--r-- | src/libFLAC/stream_encoder_intrin_sse2.c | 4 | ||||
-rw-r--r-- | src/libFLAC/stream_encoder_intrin_ssse3.c | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/libFLAC/stream_encoder_intrin_avx2.c b/src/libFLAC/stream_encoder_intrin_avx2.c index 12591f05..265e6fe7 100644 --- a/src/libFLAC/stream_encoder_intrin_avx2.c +++ b/src/libFLAC/stream_encoder_intrin_avx2.c @@ -86,8 +86,8 @@ void FLAC__precompute_partition_info_sums_intrin_avx2(const FLAC__int32 residual sum128 = _mm_hadd_epi32(sum128, sum128); sum128 = _mm_hadd_epi32(sum128, sum128); abs_residual_partition_sums[partition] = (FLAC__uint32)_mm_cvtsi128_si32(sum128); -/* workaround for a bug in MSVC2015U2 - see https://connect.microsoft.com/VisualStudio/feedback/details/2659191/incorrect-code-generation-for-x86-64 */ -#if (defined _MSC_VER) && (_MSC_FULL_VER == 190023918) && (defined FLAC__CPU_X86_64) +/* workaround for MSVC bugs (at least versions 2015 and 2017 are affected) */ +#if (defined _MSC_VER) && (defined FLAC__CPU_X86_64) abs_residual_partition_sums[partition] &= 0xFFFFFFFF; /**/ #endif } diff --git a/src/libFLAC/stream_encoder_intrin_sse2.c b/src/libFLAC/stream_encoder_intrin_sse2.c index 6c16d2e3..ed94ec3e 100644 --- a/src/libFLAC/stream_encoder_intrin_sse2.c +++ b/src/libFLAC/stream_encoder_intrin_sse2.c @@ -100,8 +100,8 @@ void FLAC__precompute_partition_info_sums_intrin_sse2(const FLAC__int32 residual mm_sum = _mm_add_epi32(mm_sum, _mm_srli_si128(mm_sum, 8)); mm_sum = _mm_add_epi32(mm_sum, _mm_srli_si128(mm_sum, 4)); abs_residual_partition_sums[partition] = (FLAC__uint32)_mm_cvtsi128_si32(mm_sum); -/* workaround for a bug in MSVC2015U2 - see https://connect.microsoft.com/VisualStudio/feedback/details/2659191/incorrect-code-generation-for-x86-64 */ -#if (defined _MSC_VER) && (_MSC_FULL_VER == 190023918) && (defined FLAC__CPU_X86_64) +/* workaround for MSVC bugs (at least versions 2015 and 2017 are affected) */ +#if (defined _MSC_VER) && (defined FLAC__CPU_X86_64) abs_residual_partition_sums[partition] &= 0xFFFFFFFF; #endif } diff --git a/src/libFLAC/stream_encoder_intrin_ssse3.c b/src/libFLAC/stream_encoder_intrin_ssse3.c index 1e87d83e..b5996f7f 100644 --- a/src/libFLAC/stream_encoder_intrin_ssse3.c +++ b/src/libFLAC/stream_encoder_intrin_ssse3.c @@ -89,8 +89,8 @@ void FLAC__precompute_partition_info_sums_intrin_ssse3(const FLAC__int32 residua mm_sum = _mm_hadd_epi32(mm_sum, mm_sum); mm_sum = _mm_hadd_epi32(mm_sum, mm_sum); abs_residual_partition_sums[partition] = (FLAC__uint32)_mm_cvtsi128_si32(mm_sum); -/* workaround for a bug in MSVC2015U2 - see https://connect.microsoft.com/VisualStudio/feedback/details/2659191/incorrect-code-generation-for-x86-64 */ -#if (defined _MSC_VER) && (_MSC_FULL_VER == 190023918) && (defined FLAC__CPU_X86_64) +/* workaround for MSVC bugs (at least versions 2015 and 2017 are affected) */ +#if (defined _MSC_VER) && (defined FLAC__CPU_X86_64) abs_residual_partition_sums[partition] &= 0xFFFFFFFF; #endif } |