diff options
author | Victor Khimenko <khim@google.com> | 2016-10-19 18:16:39 +0200 |
---|---|---|
committer | Victor Khimenko <khim@google.com> | 2016-10-19 18:19:08 +0200 |
commit | 3de3e4a967a5ec95482a7ce89c9a4d35aa714fd1 (patch) | |
tree | caab76f809b04379747a7d9613139c9b03a47308 | |
parent | 80ce7f34ad0694d93355c86c2e30c91fd52f42cb (diff) | |
download | platform_external_arm-neon-tests-3de3e4a967a5ec95482a7ce89c9a4d35aa714fd1.tar.gz platform_external_arm-neon-tests-3de3e4a967a5ec95482a7ce89c9a4d35aa714fd1.tar.bz2 platform_external_arm-neon-tests-3de3e4a967a5ec95482a7ce89c9a4d35aa714fd1.zip |
Make arm-neon-tests buildable with optimization.
If arguments are not marked as volatile then Clang sometimes manages
to elide intrinsics entirely which makes test useless as CPU test.
Worse: if saturating intrinsic is eliminated then nothing touches
FPSCR.Q anymore thus tests fail.
Test: tests ARE tests!
Bug: 27353392
Change-Id: Iaf555a068118250d12d7cc259c4124dfcf90601e
-rw-r--r-- | Android.mk | 3 | ||||
-rw-r--r-- | stm-arm-neon-ref.h | 2 |
2 files changed, 2 insertions, 3 deletions
@@ -50,8 +50,7 @@ ARM_NEON_TESTS_EXPECTED_INPUT = expected_input4gcc.txt # TODO(b/27353392): remove -O0 flag when clang would stop miscompiling # arm-neon-tests. ARM_NEON_TESTS_CFLAGS = -DREFFILE=\"$(ARM_NEON_TESTS_REFGCCARM)\" \ - -DGCCTESTS_FILE=\"$(ARM_NEON_TESTS_EXPECTED_INPUT)\" \ - -O0 + -DGCCTESTS_FILE=\"$(ARM_NEON_TESTS_EXPECTED_INPUT)\" include $(CLEAR_VARS) LOCAL_MODULE := arm_neon_tests_arm diff --git a/stm-arm-neon-ref.h b/stm-arm-neon-ref.h index 2f2d255..e9bbe3c 100644 --- a/stm-arm-neon-ref.h +++ b/stm-arm-neon-ref.h @@ -661,7 +661,7 @@ static void clean_results (void) /* Helpers to declare variables of various types */ #define DECL_VARIABLE(VAR, T1, W, N) \ - VECT_TYPE(T1, W, N) VECT_VAR(VAR, T1, W, N) + volatile VECT_TYPE(T1, W, N) VECT_VAR(VAR, T1, W, N) #define DECL_VARIABLE_64BITS_SIGNED_VARIANTS(VAR) \ DECL_VARIABLE(VAR, int, 8, 8); \ |