First public contribution.
2 * LIBOIL - Library of Optimized Inner Loops
3 * Copyright (c) 2004 David A. Schleef <ds@schleef.org>
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
19 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
29 #include <liboil/liboil.h>
30 #include <liboil/liboilfunction.h>
34 #include <liboil/globals.h>
36 #define LOG_FILE "c:\\logs\\testsuite_abs_log.txt"
37 #include "std_log_result.h"
38 #define LOG_FILENAME_LINE __FILE__, __LINE__
40 void create_xml(int result)
45 testResultXml("testsuite_abs");
55 src = malloc(100*sizeof(float));
56 dest = malloc(100*sizeof(float));
62 //_oil_function_class_ptr_abs_f32_f32(dest, 4, src, 4, 100);
63 oil_abs_f32_f32 (dest, 4, src, 4, 100);
66 for (i=0; i<100; i++) {
67 float f = (src[i] < 0) ? -1*src[i] : src[i];
69 std_log(LOG_FILENAME_LINE,"Failed at %g", src[i]);
72 std_log(LOG_FILENAME_LINE,"%d %g %g\n", i, src[i], dest[i]);
76 int main (int argc, char *argv[])
78 OilFunctionClass *klass;
79 OilFunctionImpl *impl;
81 std_log(LOG_FILENAME_LINE, "Test Started testsuite_abs");
84 klass = (OilFunctionClass *)oil_class_get ("abs_f32_f32");
85 oil_class_optimize(klass);
87 std_log(LOG_FILENAME_LINE, "class=%s\n", klass->name);
88 for (impl = klass->first_impl; impl; impl=impl->next) {
89 std_log(LOG_FILENAME_LINE,"impl=%p\n", impl);
90 std_log(LOG_FILENAME_LINE," func=%p\n", impl->func);
91 std_log(LOG_FILENAME_LINE," name=%s\n", impl->name);
92 std_log(LOG_FILENAME_LINE," flags=%08x\n", impl->flags);
95 impl = klass->chosen_impl;
96 std_log(LOG_FILENAME_LINE,"chosen=%p\n", impl);
97 impl = klass->reference_impl;
98 std_log(LOG_FILENAME_LINE,"ref=%p\n", impl);
103 std_log(LOG_FILENAME_LINE,"Test Fail");
105 std_log(LOG_FILENAME_LINE,"Test Successful");