diff options
author | Christophe Lyon <christophe.lyon@linaro.org> | 2015-01-20 16:04:24 +0100 |
---|---|---|
committer | Christophe Lyon <christophe.lyon@linaro.org> | 2015-01-20 16:04:24 +0100 |
commit | c1cc7826d74587e0dc1c855810633a219b161ab3 (patch) | |
tree | 8aa68e368da3d9ebfa0a6c4feee1ca50c721dd2c /ref_vqshlu_n.c | |
parent | 4b5570c6f0b3f1465db686a09ad1b6356df2676e (diff) | |
download | platform_external_arm-neon-tests-c1cc7826d74587e0dc1c855810633a219b161ab3.tar.gz platform_external_arm-neon-tests-c1cc7826d74587e0dc1c855810633a219b161ab3.tar.bz2 platform_external_arm-neon-tests-c1cc7826d74587e0dc1c855810633a219b161ab3.zip |
__set_neon_cumulative_sat() modifies the contents on the QC flag, and
some intrinsics do so too: this patch adds the explicit dependency on
the asm statement, to avoid code reordering or removal.
When writing QC, the asm statement now has a fake input dependency,
which is the output of the intrinsic being tested. Modifying the
__set_neon_cumulative_sat macro is necessary, to be able to accept all
the possible input types.
Update the generic code in ref_v_binary_sat_op.c and ref_v_unary_sat_op.c
accordingly, as well as all the tests involving QC.
Diffstat (limited to 'ref_vqshlu_n.c')
-rw-r--r-- | ref_vqshlu_n.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/ref_vqshlu_n.c b/ref_vqshlu_n.c index b72261c..27d53de 100644 --- a/ref_vqshlu_n.c +++ b/ref_vqshlu_n.c @@ -40,15 +40,15 @@ THE SOFTWARE. FNNAME (INSN) { /* Basic test: v2=vqshlu_n(v1,v), then store the result. */ -#define TEST_VQSHLU_N2(INSN, Q, T1, T2, T3, T4, W, N, V) \ - Set_Neon_Cumulative_Sat(0); \ - VECT_VAR(vector_res, T3, W, N) = \ - INSN##Q##_n_##T2##W(VECT_VAR(vector, T1, W, N), \ - V); \ - vst1##Q##_##T4##W(VECT_VAR(result, T3, W, N), \ - VECT_VAR(vector_res, T3, W, N)); \ - dump_neon_cumulative_sat(TEST_MSG, xSTR(INSN##Q##_n_##T2##W), \ - xSTR(T1), W, N) +#define TEST_VQSHLU_N2(INSN, Q, T1, T2, T3, T4, W, N, V) \ + Set_Neon_Cumulative_Sat(0, VECT_VAR(vector_res, T3, W, N)); \ + VECT_VAR(vector_res, T3, W, N) = \ + INSN##Q##_n_##T2##W(VECT_VAR(vector, T1, W, N), \ + V); \ + vst1##Q##_##T4##W(VECT_VAR(result, T3, W, N), \ + VECT_VAR(vector_res, T3, W, N)); \ + dump_neon_cumulative_sat(TEST_MSG, xSTR(INSN##Q##_n_##T2##W), \ + xSTR(T1), W, N) /* Two auxliary macros are necessary to expand INSN */ #define TEST_VQSHLU_N1(INSN, Q, T1, T2, T3, T4, W, N, V) \ |