summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wright <jonathan.wright@arm.com>2020-12-18 14:56:48 +0000
committerJonathan Wright <jonathan.wright@arm.com>2020-12-18 15:21:44 +0000
commit09efc26aff7983f4377a1743a197ca3d74796d7d (patch)
treeb0985e119b05f6b879ccbb57ddbf650089dac0d1
parente9a659a09e9600883e499c06ede04ba514d7f942 (diff)
Disable Neon Huffman encoding for WoA/Clang-cl
The Neon SIMD path for Huffman encoding (baseline, not progressive) does not work properly when compiled for Windows on Arm (WoA) using Clang-cl. For now - as the cause of the problem is not trivial to diagnose or fix - disable the Neon Huffman encoding path when compiling for WoA using Clang-cl. Bug: 1160249 Change-Id: I6381cbe8cabc218ab6541f2b64fa07b9a83fcd12
-rw-r--r--README.chromium2
-rw-r--r--simd/arm/aarch64/jsimd.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/README.chromium b/README.chromium
index 469e550..b0a1623 100644
--- a/README.chromium
+++ b/README.chromium
@@ -73,6 +73,8 @@ following changes which are not merged to upstream:
- Refactor djpeg.c to provide test interface
A new gtest directory contains GTest wrappers (and associated utilities) for
each of tjunittest, tjbench, cjpeg, djpeg and jpegtran.
+* Disable Neon SIMD path for Huffman encoding when compiling for Windows on Arm
+ using Clang-cl: http://crbug.com/1160249
Refer to working-with-nested-repos [1] for details of how to setup your git
svn client to update the code (for making local changes, cherry picking from
diff --git a/simd/arm/aarch64/jsimd.c b/simd/arm/aarch64/jsimd.c
index 8570b82..4991bc0 100644
--- a/simd/arm/aarch64/jsimd.c
+++ b/simd/arm/aarch64/jsimd.c
@@ -977,6 +977,8 @@ jsimd_idct_float(j_decompress_ptr cinfo, jpeg_component_info *compptr,
GLOBAL(int)
jsimd_can_huff_encode_one_block(void)
{
+/* Disable for Windows on Arm compiled with Clang-cl: crbug.com/1160249 */
+#if !(defined(_MSC_VER) && defined(__clang__))
init_simd();
if (DCTSIZE != 8)
@@ -986,6 +988,7 @@ jsimd_can_huff_encode_one_block(void)
if (simd_support & JSIMD_NEON && simd_huffman)
return 1;
+#endif
return 0;
}