aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@gmail.com>2013-01-10 19:34:23 +0100
committerChristophe Lyon <christophe.lyon@st.com>2013-01-14 14:02:48 +0100
commitc64e1835700898d732d4d41c33218fe3bc31a779 (patch)
tree9718ba6de2945be28ba413fd29f7d0d86e39fa35
parent6968182a822abff8ae41dd48315bf83fc4d5e1b0 (diff)
downloadplatform_external_arm-neon-tests-c64e1835700898d732d4d41c33218fe3bc31a779.tar.gz
platform_external_arm-neon-tests-c64e1835700898d732d4d41c33218fe3bc31a779.tar.bz2
platform_external_arm-neon-tests-c64e1835700898d732d4d41c33218fe3bc31a779.zip
Add test for vclz with 0 as input.
-rw-r--r--compute_ref.axfbin3246412 -> 3246928 bytes
-rw-r--r--ref-rvct.txt20
-rw-r--r--ref_vclz.c30
3 files changed, 50 insertions, 0 deletions
diff --git a/compute_ref.axf b/compute_ref.axf
index 60de5c5..ab1ae89 100644
--- a/compute_ref.axf
+++ b/compute_ref.axf
Binary files differ
diff --git a/ref-rvct.txt b/ref-rvct.txt
index d9456bc..6aafe88 100644
--- a/ref-rvct.txt
+++ b/ref-rvct.txt
@@ -5390,6 +5390,26 @@ VCLZ/VCLZQ:15:result_uint32x4 [] = { 1f, 1f, 1f, 1f, }
VCLZ/VCLZQ:16:result_uint64x2 [] = { 3333333333333333, 3333333333333333, }
VCLZ/VCLZQ:17:result_float32x4 [] = { 33333333 0x1.6666660p-25 4.172325e-08, 33333333 0x1.6666660p-25 4.172325e-08, 33333333 0x1.6666660p-25 4.172325e-08, 33333333 0x1.6666660p-25 4.172325e-08, }
+VCLZ/VCLZQ (input=0) output:
+VCLZ/VCLZQ:18:result_int8x8 [] = { 8, 8, 8, 8, 8, 8, 8, 8, }
+VCLZ/VCLZQ:19:result_int16x4 [] = { 10, 10, 10, 10, }
+VCLZ/VCLZQ:20:result_int32x2 [] = { 20, 20, }
+VCLZ/VCLZQ:21:result_int64x1 [] = { 3333333333333333, }
+VCLZ/VCLZQ:22:result_uint8x8 [] = { 8, 8, 8, 8, 8, 8, 8, 8, }
+VCLZ/VCLZQ:23:result_uint16x4 [] = { 10, 10, 10, 10, }
+VCLZ/VCLZQ:24:result_uint32x2 [] = { 20, 20, }
+VCLZ/VCLZQ:25:result_uint64x1 [] = { 3333333333333333, }
+VCLZ/VCLZQ:26:result_float32x2 [] = { 33333333 0x1.6666660p-25 4.172325e-08, 33333333 0x1.6666660p-25 4.172325e-08, }
+VCLZ/VCLZQ:27:result_int8x16 [] = { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, }
+VCLZ/VCLZQ:28:result_int16x8 [] = { 10, 10, 10, 10, 10, 10, 10, 10, }
+VCLZ/VCLZQ:29:result_int32x4 [] = { 20, 20, 20, 20, }
+VCLZ/VCLZQ:30:result_int64x2 [] = { 3333333333333333, 3333333333333333, }
+VCLZ/VCLZQ:31:result_uint8x16 [] = { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, }
+VCLZ/VCLZQ:32:result_uint16x8 [] = { 10, 10, 10, 10, 10, 10, 10, 10, }
+VCLZ/VCLZQ:33:result_uint32x4 [] = { 20, 20, 20, 20, }
+VCLZ/VCLZQ:34:result_uint64x2 [] = { 3333333333333333, 3333333333333333, }
+VCLZ/VCLZQ:35:result_float32x4 [] = { 33333333 0x1.6666660p-25 4.172325e-08, 33333333 0x1.6666660p-25 4.172325e-08, 33333333 0x1.6666660p-25 4.172325e-08, 33333333 0x1.6666660p-25 4.172325e-08, }
+
VCLS/VCLSQ (positive input) output:
VCLS/VCLSQ:0:result_int8x8 [] = { 6, 6, 6, 6, 6, 6, 6, 6, }
VCLS/VCLSQ:1:result_int16x4 [] = { 2, 2, 2, 2, }
diff --git a/ref_vclz.c b/ref_vclz.c
index 672a376..2472bd3 100644
--- a/ref_vclz.c
+++ b/ref_vclz.c
@@ -109,4 +109,34 @@ FNNAME (INSN_NAME)
TEST_UNARY_OP(INSN_NAME, q, uint, u, 32, 4);
dump_results_hex (TEST_MSG);
+
+ /* Test with zero as input. */
+ TEST_VDUP(vector, , int, s, 8, 8, 0);
+ TEST_VDUP(vector, , int, s, 16, 4, 0);
+ TEST_VDUP(vector, , int, s, 32, 2, 0);
+ TEST_VDUP(vector, , uint, u, 8, 8, 0);
+ TEST_VDUP(vector, , uint, u, 16, 4, 0);
+ TEST_VDUP(vector, , uint, u, 32, 2, 0);
+ TEST_VDUP(vector, q, int, s, 8, 16, 0);
+ TEST_VDUP(vector, q, int, s, 16, 8, 0);
+ TEST_VDUP(vector, q, int, s, 32, 4, 0);
+ TEST_VDUP(vector, q, uint, u, 8, 16, 0);
+ TEST_VDUP(vector, q, uint, u, 16, 8, 0);
+ TEST_VDUP(vector, q, uint, u, 32, 4, 0);
+
+ /* Apply a unary operator named INSN_NAME */
+ TEST_UNARY_OP(INSN_NAME, , int, s, 8, 8);
+ TEST_UNARY_OP(INSN_NAME, , int, s, 16, 4);
+ TEST_UNARY_OP(INSN_NAME, , int, s, 32, 2);
+ TEST_UNARY_OP(INSN_NAME, , uint, u, 8, 8);
+ TEST_UNARY_OP(INSN_NAME, , uint, u, 16, 4);
+ TEST_UNARY_OP(INSN_NAME, , uint, u, 32, 2);
+ TEST_UNARY_OP(INSN_NAME, q, int, s, 8, 16);
+ TEST_UNARY_OP(INSN_NAME, q, int, s, 16, 8);
+ TEST_UNARY_OP(INSN_NAME, q, int, s, 32, 4);
+ TEST_UNARY_OP(INSN_NAME, q, uint, u, 8, 16);
+ TEST_UNARY_OP(INSN_NAME, q, uint, u, 16, 8);
+ TEST_UNARY_OP(INSN_NAME, q, uint, u, 32, 4);
+
+ dump_results_hex2 (TEST_MSG, " (input=0)");
}