OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.target/] [i386/] [l_fma_main.h] - Blame information for rev 749

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 691 jeremybenn
 
2
#ifndef l_fma_main
3
#define l_fma_main
4
 
5
#if DEBUG
6
#include <stdio.h>
7
#endif
8
 
9
TYPE m1[32] = {
10
                1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
11
               17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32
12
              };
13
TYPE m2[32] = {
14
                2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17,
15
               18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33
16
              };
17
TYPE m3[32] = {
18
                3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19
               19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34
20
              };
21
TYPE m4[32];
22
int test_fails = 0;
23
 
24
void
25
compare_result(char *title, TYPE *res)
26
{
27
  int i;
28
  int good = 1;
29
  for (i =0; i < 32; i++)
30
    if (m4[i] != res[i])
31
      {
32
        if (good)
33
          {
34
#if DEBUG
35
             printf ("!!!! %s miscompare\n", title);
36
#endif
37
             good = 0;
38
          }
39
#if DEBUG
40
        printf ("res[%d] = %d, must be %d\n", i, (int)res[i], (int) m4[i]);
41
#endif
42
      }
43
  if (!good)
44
    test_fails = 1;
45
}
46
 
47
static void fma_test ()
48
{
49
  test_noneg_add_noneg_add (m1, m2, m3, m4, 32);
50
  compare_result ("test0000", res_test0000);
51
 
52
  test_noneg_add_noneg_sub (m1, m2, m3, m4, 32);
53
  compare_result ("test0001", res_test0001);
54
 
55
  test_noneg_add_neg_add (m1, m2, m3, m4, 32);
56
  compare_result ("test0010", res_test0010);
57
 
58
  test_noneg_add_neg_sub (m1, m2, m3, m4, 32);
59
  compare_result ("test0011", res_test0011);
60
 
61
  test_noneg_sub_noneg_add (m1, m2, m3, m4, 32);
62
  compare_result ("test0100", res_test0100);
63
 
64
  test_noneg_sub_noneg_sub (m1, m2, m3, m4, 32);
65
  compare_result ("test0101", res_test0101);
66
 
67
  test_noneg_sub_neg_add (m1, m2, m3, m4, 32);
68
  compare_result ("test0110", res_test0110);
69
 
70
  test_noneg_sub_neg_sub (m1, m2, m3, m4, 32);
71
  compare_result ("test0111", res_test0111);
72
 
73
  test_neg_add_noneg_add (m1, m2, m3, m4, 32);
74
  compare_result ("test1000", res_test1000);
75
 
76
  test_neg_add_noneg_sub (m1, m2, m3, m4, 32);
77
  compare_result ("test1001", res_test1001);
78
 
79
  test_neg_add_neg_add (m1, m2, m3, m4, 32);
80
  compare_result ("test1010", res_test1010);
81
 
82
  test_neg_add_neg_sub (m1, m2, m3, m4, 32);
83
  compare_result ("test1011", res_test1011);
84
 
85
  test_neg_sub_noneg_add (m1, m2, m3, m4, 32);
86
  compare_result ("test1100", res_test1100);
87
 
88
  test_neg_sub_noneg_sub (m1, m2, m3, m4, 32);
89
  compare_result ("test1101", res_test1101);
90
 
91
  test_neg_sub_neg_add (m1, m2, m3, m4, 32);
92
  compare_result ("test1110", res_test1110);
93
 
94
  test_neg_sub_neg_sub (m1, m2, m3, m4, 32);
95
  compare_result ("test1111", res_test1111);
96
 
97
  if (test_fails) abort ();
98
}
99
 
100
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.