diff options
| author | David Schleef <ds@schleef.org> | 2009-10-23 17:17:53 -0700 |
|---|---|---|
| committer | David Schleef <ds@schleef.org> | 2009-10-23 17:17:53 -0700 |
| commit | 92105916b420d9b7eeefbeb02014c0119d3b97d6 (patch) | |
| tree | fdef70e8cdd0c5fd4252684332f6da1b49dcba0a /testsuite | |
| parent | c11efa4a9dc0e457a26a82e4517476dff3463123 (diff) | |
| parent | a8fadb53b44efcd1cd4aa26c8fd2bb555b207852 (diff) | |
Merge branch 'master' into neon
Diffstat (limited to 'testsuite')
| -rw-r--r-- | testsuite/exec_opcodes_sys.c | 120 |
1 files changed, 115 insertions, 5 deletions
diff --git a/testsuite/exec_opcodes_sys.c b/testsuite/exec_opcodes_sys.c index 84b880c..82b2b9e 100644 --- a/testsuite/exec_opcodes_sys.c +++ b/testsuite/exec_opcodes_sys.c @@ -14,6 +14,8 @@ void test_opcode_const (OrcStaticOpcode *opcode); void test_opcode_param (OrcStaticOpcode *opcode); void test_opcode_inplace (OrcStaticOpcode *opcode); void test_opcode_src_2d (OrcStaticOpcode *opcode); +void test_opcode_src_const_n (OrcStaticOpcode *opcode); +void test_opcode_src_const_n_2d (OrcStaticOpcode *opcode); int main (int argc, char *argv[]) @@ -66,6 +68,22 @@ main (int argc, char *argv[]) opcode_set->opcodes[i].src_size[1]); test_opcode_src_2d (opcode_set->opcodes + i); } + for(i=0;i<opcode_set->n_opcodes;i++){ + printf("/* %s src const n %d,%d,%d */\n", + opcode_set->opcodes[i].name, + opcode_set->opcodes[i].dest_size[0], + opcode_set->opcodes[i].src_size[0], + opcode_set->opcodes[i].src_size[1]); + test_opcode_src_const_n (opcode_set->opcodes + i); + } + for(i=0;i<opcode_set->n_opcodes;i++){ + printf("/* %s src const n 2d %d,%d,%d */\n", + opcode_set->opcodes[i].name, + opcode_set->opcodes[i].dest_size[0], + opcode_set->opcodes[i].src_size[0], + opcode_set->opcodes[i].src_size[1]); + test_opcode_src_const_n_2d (opcode_set->opcodes + i); + } if (error) return 1; return 0; @@ -77,6 +95,7 @@ test_opcode_src (OrcStaticOpcode *opcode) OrcProgram *p; char s[40]; int ret; + int flags; if (opcode->src_size[1] == 0) { p = orc_program_new_ds (opcode->dest_size[0], opcode->src_size[0]); @@ -84,13 +103,17 @@ test_opcode_src (OrcStaticOpcode *opcode) p = orc_program_new_dss (opcode->dest_size[0], opcode->src_size[0], opcode->src_size[1]); } + if ((opcode->flags & ORC_STATIC_OPCODE_FLOAT_SRC) || + (opcode->flags & ORC_STATIC_OPCODE_FLOAT_DEST)) { + flags = ORC_TEST_FLAGS_FLOAT; + } sprintf(s, "test_s_%s", opcode->name); orc_program_set_name (p, s); orc_program_append_str (p, opcode->name, "d1", "s1", "s2"); - ret = orc_test_compare_output (p); + ret = orc_test_compare_output_full (p, flags); if (!ret) { error = TRUE; } @@ -104,19 +127,24 @@ test_opcode_const (OrcStaticOpcode *opcode) OrcProgram *p; char s[40]; int ret; + int flags; if (opcode->src_size[1] == 0) { return; } p = orc_program_new_ds (opcode->dest_size[0], opcode->src_size[0]); orc_program_add_constant (p, opcode->src_size[1], 1, "c1"); + if ((opcode->flags & ORC_STATIC_OPCODE_FLOAT_SRC) || + (opcode->flags & ORC_STATIC_OPCODE_FLOAT_DEST)) { + flags = ORC_TEST_FLAGS_FLOAT; + } sprintf(s, "test_c_%s", opcode->name); orc_program_set_name (p, s); orc_program_append_str (p, opcode->name, "d1", "s1", "c1"); - ret = orc_test_compare_output (p); + ret = orc_test_compare_output_full (p, flags); if (!ret) { error = TRUE; } @@ -130,19 +158,24 @@ test_opcode_param (OrcStaticOpcode *opcode) OrcProgram *p; char s[40]; int ret; + int flags; if (opcode->src_size[1] == 0) { return; } p = orc_program_new_ds (opcode->dest_size[0], opcode->src_size[0]); orc_program_add_parameter (p, opcode->src_size[1], "p1"); + if ((opcode->flags & ORC_STATIC_OPCODE_FLOAT_SRC) || + (opcode->flags & ORC_STATIC_OPCODE_FLOAT_DEST)) { + flags = ORC_TEST_FLAGS_FLOAT; + } sprintf(s, "test_c_%s", opcode->name); orc_program_set_name (p, s); orc_program_append_str (p, opcode->name, "d1", "s1", "p1"); - ret = orc_test_compare_output (p); + ret = orc_test_compare_output_full (p, flags); if (!ret) { error = TRUE; } @@ -156,6 +189,7 @@ test_opcode_inplace (OrcStaticOpcode *opcode) OrcProgram *p; char s[40]; int ret; + int flags; if (opcode->dest_size[0] != opcode->src_size[0]) return; @@ -165,13 +199,17 @@ test_opcode_inplace (OrcStaticOpcode *opcode) p = orc_program_new_dss (opcode->dest_size[0], opcode->src_size[0], opcode->src_size[1]); } + if ((opcode->flags & ORC_STATIC_OPCODE_FLOAT_SRC) || + (opcode->flags & ORC_STATIC_OPCODE_FLOAT_DEST)) { + flags = ORC_TEST_FLAGS_FLOAT; + } sprintf(s, "test_inplace_%s", opcode->name); orc_program_set_name (p, s); orc_program_append_str (p, opcode->name, "d1", "d1", "s2"); - ret = orc_test_compare_output (p); + ret = orc_test_compare_output_full (p, flags); if (!ret) { error = TRUE; } @@ -185,6 +223,40 @@ test_opcode_src_2d (OrcStaticOpcode *opcode) OrcProgram *p; char s[40]; int ret; + int flags; + + if (opcode->src_size[1] == 0) { + p = orc_program_new_ds (opcode->dest_size[0], opcode->src_size[0]); + } else { + p = orc_program_new_dss (opcode->dest_size[0], opcode->src_size[0], + opcode->src_size[1]); + } + if ((opcode->flags & ORC_STATIC_OPCODE_FLOAT_SRC) || + (opcode->flags & ORC_STATIC_OPCODE_FLOAT_DEST)) { + flags = ORC_TEST_FLAGS_FLOAT; + } + + sprintf(s, "test_s_%s", opcode->name); + orc_program_set_name (p, s); + orc_program_set_2d (p); + + orc_program_append_str (p, opcode->name, "d1", "s1", "s2"); + + ret = orc_test_compare_output_full (p, flags); + if (!ret) { + error = TRUE; + } + + orc_program_free (p); +} + +void +test_opcode_src_const_n (OrcStaticOpcode *opcode) +{ + OrcProgram *p; + char s[40]; + int ret; + int flags; if (opcode->src_size[1] == 0) { p = orc_program_new_ds (opcode->dest_size[0], opcode->src_size[0]); @@ -192,14 +264,52 @@ test_opcode_src_2d (OrcStaticOpcode *opcode) p = orc_program_new_dss (opcode->dest_size[0], opcode->src_size[0], opcode->src_size[1]); } + if ((opcode->flags & ORC_STATIC_OPCODE_FLOAT_SRC) || + (opcode->flags & ORC_STATIC_OPCODE_FLOAT_DEST)) { + flags = ORC_TEST_FLAGS_FLOAT; + } + + sprintf(s, "test_s_%s", opcode->name); + orc_program_set_name (p, s); + orc_program_set_constant_n (p, 8); + + orc_program_append_str (p, opcode->name, "d1", "s1", "s2"); + + ret = orc_test_compare_output_full (p, flags); + if (!ret) { + error = TRUE; + } + + orc_program_free (p); +} + +void +test_opcode_src_const_n_2d (OrcStaticOpcode *opcode) +{ + OrcProgram *p; + char s[40]; + int ret; + int flags; + + if (opcode->src_size[1] == 0) { + p = orc_program_new_ds (opcode->dest_size[0], opcode->src_size[0]); + } else { + p = orc_program_new_dss (opcode->dest_size[0], opcode->src_size[0], + opcode->src_size[1]); + } + if ((opcode->flags & ORC_STATIC_OPCODE_FLOAT_SRC) || + (opcode->flags & ORC_STATIC_OPCODE_FLOAT_DEST)) { + flags = ORC_TEST_FLAGS_FLOAT; + } sprintf(s, "test_s_%s", opcode->name); orc_program_set_name (p, s); orc_program_set_2d (p); + orc_program_set_constant_n (p, 8); orc_program_append_str (p, opcode->name, "d1", "s1", "s2"); - ret = orc_test_compare_output (p); + ret = orc_test_compare_output_full (p, flags); if (!ret) { error = TRUE; } |
