From c64e1835700898d732d4d41c33218fe3bc31a779 Mon Sep 17 00:00:00 2001 From: Christophe Lyon Date: Thu, 10 Jan 2013 19:34:23 +0100 Subject: Add test for vclz with 0 as input. --- compute_ref.axf | Bin 3246412 -> 3246928 bytes ref-rvct.txt | 20 ++++++++++++++++++++ ref_vclz.c | 30 ++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+) diff --git a/compute_ref.axf b/compute_ref.axf index 60de5c5..ab1ae89 100644 Binary files a/compute_ref.axf and b/compute_ref.axf 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)"); } -- cgit v1.2.3