xref: /qemu/tests/tcg/hexagon/vector_add_int.c (revision b21e2380)
1 /*
2  *  Copyright(c) 2019-2021 Qualcomm Innovation Center, Inc. All Rights Reserved.
3  *
4  *  This program is free software; you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation; either version 2 of the License, or
7  *  (at your option) any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #include <stdio.h>
19 
20 int gA[401];
21 int gB[401];
22 int gC[401];
23 
24 void vector_add_int()
25 {
26   int i;
27   for (i = 0; i < 400; i++) {
28     gA[i] = gB[i] + gC[i];
29   }
30 }
31 
32 int main()
33 {
34   int error = 0;
35   int i;
36   for (i = 0; i < 400; i++) {
37     gB[i] = i * 2;
38     gC[i] = i * 3;
39   }
40   gA[400] = 17;
41   vector_add_int();
42   for (i = 0; i < 400; i++) {
43     if (gA[i] != i * 5) {
44         error++;
45         printf("ERROR: gB[%d] = %d\t", i, gB[i]);
46         printf("gC[%d] = %d\t", i, gC[i]);
47         printf("gA[%d] = %d\n", i, gA[i]);
48     }
49   }
50   if (gA[400] != 17) {
51     error++;
52     printf("ERROR: Overran the buffer\n");
53   }
54   if (!error) {
55     printf("PASS\n");
56     return 0;
57   } else {
58     printf("FAIL\n");
59     return 1;
60   }
61 }
62