OSDN Git Service

* reorg.c (fill_simple_delay_slots): Don't use a JUMP_INSN
[pf3gnuchains/gcc-fork.git] / gcc / libgcc1-test.c
1 /* This small function uses all the arithmetic operators that
2    libgcc1.c can handle.  If you can link it, then
3    you have provided replacements for all the libgcc1.c functions that
4    your target machine needs.  */
5
6 int foo ();
7 double dfoo ();
8
9 main ()
10 {
11   int a = foo (), b = foo ();
12   unsigned int au = foo (), bu = foo ();
13   float af = dfoo (), bf = dfoo ();
14   double ad = dfoo (), bd = dfoo ();
15
16   discard (a * b);
17   discard (a / b);
18   discard (a % b);
19
20   discard (au / bu);
21   discard (au % bu);
22
23   discard (a >> b);
24   discard (a << b);
25
26   discard (au >> bu);
27   discard (au << bu);
28
29   ddiscard (ad + bd);
30   ddiscard (ad - bd);
31   ddiscard (ad * bd);
32   ddiscard (ad / bd);
33   ddiscard (-ad);
34
35   ddiscard (af + bf);
36   ddiscard (af - bf);
37   ddiscard (af * bf);
38   ddiscard (af / bf);
39   ddiscard (-af);
40
41   discard ((int) ad);
42   discard ((int) af);
43
44   ddiscard ((double) a);
45   ddiscard ((float) a);
46   ddiscard ((float) ad);
47
48   discard (ad == bd);
49   discard (ad < bd);
50   discard (ad > bd);
51   discard (ad != bd);
52   discard (ad <= bd);
53   discard (ad >= bd);
54
55   discard (af == bf);
56   discard (af < bf);
57   discard (af > bf);
58   discard (af != bf);
59   discard (af <= bf);
60   discard (af >= bf);
61
62   return 0;
63 }
64
65 discard (x)
66      int x;
67 {}
68
69 ddiscard (x)
70      double x;
71 {}
72
73 foo ()
74 {
75   static int table[] = {20, 69, 4, 12};
76   static int idx;
77
78   return table[idx++];
79 }
80
81 double
82 dfoo ()
83 {
84   static double table[] = {20.4, 69.96, 4.4, 202.202};
85   static int idx;
86
87   return table[idx++];
88 }
89