moved firmext code into the backend dir
[libfirm] / ir / be / grgen / simd / testprograms / patterns / vadd_memory / vadd_memory.c
1 #include <stdio.h>
2 #include "define_operation.h"
3
4 typedef int sse_register;
5
6 union input_register_set
7 {
8         sse_register hardware_reg_1;
9         sse_register hardware_reg_2;
10         sse_register hardware_reg_3;
11 } input_register_set;
12
13 union output_register_set
14 {
15         sse_register hardware_reg_1;
16         sse_register hardware_reg_2;
17         sse_register hardware_reg_3;
18 } output_register_set;
19
20 int memory_array[100];
21
22 typedef int sse_32_2;
23
24
25 void vadd_memory(void)
26 {
27         // Only Register
28         /*sse_32_2 *param0 = SSEArg_0(input_register_set);
29         sse_32_2 *param1 = SSEArg_1(input_register_set);
30         sse_32_2 *result = SSEArg_Res(output_register_set); */
31
32         // Only Memory
33         /*sse_32_2 *param0 = SSEArg_0(memory_array);
34         sse_32_2 *param1 = SSEArg_1(memory_array);
35         sse_32_2 *result = SSEArg_Res(memory_array); */
36
37         // Mixed
38         sse_32_2 *param0 = Arg_0(memory_array);
39         sse_32_2 *param1 = Arg_1(memory_array);
40         sse_32_2 *result = Res(&output_register_set);
41
42         result[0] = param0[0] + param1[0];
43         result[1] = param0[0] + param1[1];
44
45 /*      int a0, a1, b0, b1, r0, r1;
46
47         a0 = param0[0];
48         a1 = param0[1];
49         b0 = param1[0];
50         b1 = param1[1];
51
52         if(a0 > b1)
53         {
54                 r0 = a0 + a0 + b0; //result[0] = param0[0] + param0[0] + param1[0];
55                 r1 = a1 + a0 + b1; //result[1] = param0[1] + param0[0] + param1[1];
56         }
57         else
58         {
59                 r0 = a0; //result[0] = param0[0];
60                 r1 = a1; //result[1] = param0[1];
61         }
62
63         result[0] = r0;
64         result[1] = r1; */
65 }
66
67  void vstore(void)
68 {
69         sse_32_2 *param = Arg_0(&input_register_set);
70         sse_32_2 *result = Arg_1(memory_array);
71
72         result[0] = param[0];
73         result[1] = param[1];
74 }