qemu/tests/tcg/hexagon/vector_add_int.c
<<
>>
Prefs
   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
  20int gA[401];
  21int gB[401];
  22int gC[401];
  23
  24void vector_add_int()
  25{
  26  int i;
  27  for (i = 0; i < 400; i++) {
  28    gA[i] = gB[i] + gC[i];
  29  }
  30}
  31
  32int 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