1// Copyright (c) Microsoft. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
4#include <stdio.h>
5#include "native.h"
6
7
8MCC_API VType7 WINAPI sum(
9 unsigned __int64 c1, VType7 v1,
10 double c2, VType7 v2,
11 float c3, VType7 v3,
12 int c4, VType7 v4,
13 unsigned short c5, VType7 v5,
14 unsigned int c6, VType7 v6,
15 float c7, VType7 v7,
16 __int64 c8, VType7 v8,
17 float c9, VType7 v9,
18 double c10, VType7 v10,
19 float c11, VType7 v11,
20 short c12, VType7 v12) {
21 VType7 res;
22
23 // zero out res
24 res.reset();
25
26 // check values of parameters c1 thru c12
27 int nfail = 12;
28 if (c1 != (unsigned __int64)1) {
29 printf("ERROR! Parameter c1 => expected %d, actual %d.\n", 1, (int)c1);
30 }
31 else {
32 nfail--;
33 }
34 if (c2 != (double)2.0) {
35 printf("ERROR! Parameter c2 => expected %d, actual %d.\n", 2, (int)c2);
36 }
37 else {
38 nfail--;
39 }
40 if (c3 != (float)3.0) {
41 printf("ERROR! Parameter c3 => expected %d, actual %d.\n", 3, (int)c3);
42 }
43 else {
44 nfail--;
45 }
46 if (c4 != (int)4) {
47 printf("ERROR! Parameter c4 => expected %d, actual %d.\n", 4, (int)c4);
48 }
49 else {
50 nfail--;
51 }
52 if (c5 != (unsigned short)5) {
53 printf("ERROR! Parameter c5 => expected %d, actual %d.\n", 5, (int)c5);
54 }
55 else {
56 nfail--;
57 }
58 if (c6 != (unsigned int)6) {
59 printf("ERROR! Parameter c6 => expected %d, actual %d.\n", 6, (int)c6);
60 }
61 else {
62 nfail--;
63 }
64 if (c7 != (float)7.0) {
65 printf("ERROR! Parameter c7 => expected %d, actual %d.\n", 7, (int)c7);
66 }
67 else {
68 nfail--;
69 }
70 if (c8 != (__int64)8) {
71 printf("ERROR! Parameter c8 => expected %d, actual %d.\n", 8, (int)c8);
72 }
73 else {
74 nfail--;
75 }
76 if (c9 != (float)9.0) {
77 printf("ERROR! Parameter c9 => expected %d, actual %d.\n", 9, (int)c9);
78 }
79 else {
80 nfail--;
81 }
82 if (c10 != (double)10.0) {
83 printf("ERROR! Parameter c10 => expected %d, actual %d.\n", 10, (int)c10);
84 }
85 else {
86 nfail--;
87 }
88 if (c11 != (float)11.0) {
89 printf("ERROR! Parameter c11 => expected %d, actual %d.\n", 11, (int)c11);
90 }
91 else {
92 nfail--;
93 }
94 if (c12 != (short)12) {
95 printf("ERROR! Parameter c12 => expected %d, actual %d.\n", 12, (int)c12);
96 }
97 else {
98 nfail--;
99 }
100
101 if (nfail == 0) {
102 res.add(v1);
103 res.add(v2);
104 res.add(v3);
105 res.add(v4);
106 res.add(v5);
107 res.add(v6);
108 res.add(v7);
109 res.add(v8);
110 res.add(v9);
111 res.add(v10);
112 res.add(v11);
113 res.add(v12);
114 }
115
116 return res;
117}
118