summaryrefslogtreecommitdiff
path: root/liboil/ref
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2006-11-04 22:13:34 +0000
committerDavid Schleef <ds@schleef.org>2006-11-04 22:13:34 +0000
commite1e739514f7216266ad8a73652384321c2a77727 (patch)
treeffb5bf536221f9787a14303779d16d5733121f98 /liboil/ref
parent953f559ea2d1a355d16d645ff3d5c2590b7f6acf (diff)
downloadliboil-e1e739514f7216266ad8a73652384321c2a77727.tar.gz
* liboil/i386/convert_i386.c:
Fix the mmx_2 impl. * liboil/ref/wavelet.c: Fix mas4_across and mas8_across testing function.
Diffstat (limited to 'liboil/ref')
-rw-r--r--liboil/ref/wavelet.c43
1 files changed, 40 insertions, 3 deletions
diff --git a/liboil/ref/wavelet.c b/liboil/ref/wavelet.c
index 6dd6f17..cc86c68 100644
--- a/liboil/ref/wavelet.c
+++ b/liboil/ref/wavelet.c
@@ -68,7 +68,7 @@ mas2_across_test (OilTest *test)
}
data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC4);
- n = oil_test_get_arg_post_n (test, OIL_ARG_SRC3);
+ n = oil_test_get_arg_post_n (test, OIL_ARG_SRC4);
for(i=0;i<n;i++){
data[i] = (oil_rand_s16()>>4)/n;
}
@@ -79,6 +79,43 @@ mas2_across_test (OilTest *test)
}
static void
+mas48_across_test (OilTest *test)
+{
+ int16_t *data;
+ int stride;
+ int i;
+ int j;
+ int n;
+ int m;
+
+ data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC1);
+ for(i=0;i<test->n;i++){
+ //data[i] = oil_rand_s16()>>1;
+ data[i] = 0;
+ }
+
+ data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
+ m = oil_test_get_arg_post_n (test, OIL_ARG_SRC2);
+ stride = oil_test_get_arg_stride (test, OIL_ARG_SRC2);
+ for(j=0;j<m;j++){
+ for(i=0;i<test->n;i++){
+ data[i] = oil_rand_s16()>>4;
+ }
+ data = OIL_OFFSET(data, stride);
+ }
+
+ data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC3);
+ n = oil_test_get_arg_post_n (test, OIL_ARG_SRC3);
+ for(i=0;i<n;i++){
+ data[i] = (oil_rand_s16()>>4)/n;
+ }
+
+ data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC4);
+ data[0] = (1<<11);
+ data[1] = 12;
+}
+
+static void
rshift_test (OilTest *test)
{
int16_t *data;
@@ -145,10 +182,10 @@ OIL_DEFINE_CLASS_FULL (mas2_across_add_s16,
"int16_t *s5_2, int n", mas2_across_test);
OIL_DEFINE_CLASS_FULL (mas4_across_add_s16,
"int16_t *d, int16_t *s1, int16_t *s2_nx4, int sstr2, int16_t *s3_4, "
- "int16_t *s4_2, int n", mas_test);
+ "int16_t *s4_2, int n", mas48_across_test);
OIL_DEFINE_CLASS_FULL (mas8_across_add_s16,
"int16_t *d, int16_t *s1, int16_t *s2_nx8, int sstr2, int16_t *s3_8, "
- "int16_t *s4_2, int n", mas_test);
+ "int16_t *s4_2, int n", mas48_across_test);
OIL_DEFINE_CLASS (multiply_and_add_s16,
"int16_t *d, int16_t *src1, int16_t *src2, int16_t *src3, int n");
OIL_DEFINE_CLASS (multiply_and_add_s16_u8,