summary refs log tree commit diff stats
path: root/tests/tcg/hexagon/brev.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tcg/hexagon/brev.c')
-rw-r--r--tests/tcg/hexagon/brev.c73
1 files changed, 33 insertions, 40 deletions
diff --git a/tests/tcg/hexagon/brev.c b/tests/tcg/hexagon/brev.c
index 9736a2405d..6c7b134084 100644
--- a/tests/tcg/hexagon/brev.c
+++ b/tests/tcg/hexagon/brev.c
@@ -1,5 +1,5 @@
 /*
- *  Copyright(c) 2019-2021 Qualcomm Innovation Center, Inc. All Rights Reserved.
+ *  Copyright(c) 2019-2023 Qualcomm Innovation Center, Inc. All Rights Reserved.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -17,16 +17,19 @@
 
 #include <stdio.h>
 #include <string.h>
+#include <stdint.h>
 
 int err;
 
+#include "hex_test.h"
+
 #define NBITS          8
 #define SIZE           (1 << NBITS)
 
-long long     dbuf[SIZE] __attribute__((aligned(1 << 16))) = {0};
-int           wbuf[SIZE] __attribute__((aligned(1 << 16))) = {0};
-short         hbuf[SIZE] __attribute__((aligned(1 << 16))) = {0};
-unsigned char bbuf[SIZE] __attribute__((aligned(1 << 16))) = {0};
+int64_t       dbuf[SIZE] __attribute__((aligned(1 << 16))) = {0};
+int32_t       wbuf[SIZE] __attribute__((aligned(1 << 16))) = {0};
+int16_t       hbuf[SIZE] __attribute__((aligned(1 << 16))) = {0};
+uint8_t       bbuf[SIZE] __attribute__((aligned(1 << 16))) = {0};
 
 /*
  * We use the C preporcessor to deal with the combinations of types
@@ -90,11 +93,10 @@ unsigned char bbuf[SIZE] __attribute__((aligned(1 << 16))) = {0};
 #define BREV_STORE_wnew(ADDR, VAL, INC) \
     BREV_STORE_NEW(w, ADDR, VAL, INC)
 
-int bitreverse(int x)
+uint32_t bitreverse(uint32_t x)
 {
-    int result = 0;
-    int i;
-    for (i = 0; i < NBITS; i++) {
+    uint32_t result = 0;
+    for (int i = 0; i < NBITS; i++) {
         result <<= 1;
         result |= x & 1;
         x >>= 1;
@@ -102,26 +104,18 @@ int bitreverse(int x)
     return result;
 }
 
-int sext8(int x)
+int32_t sext8(int32_t x)
 {
     return (x << 24) >> 24;
 }
 
-void check(int i, long long result, long long expect)
-{
-    if (result != expect) {
-        printf("ERROR(%d): 0x%04llx != 0x%04llx\n", i, result, expect);
-        err++;
-    }
-}
-
 #define TEST_BREV_LOAD(SZ, TYPE, BUF, SHIFT, EXP) \
     do { \
         p = BUF; \
-        for (i = 0; i < SIZE; i++) { \
+        for (int i = 0; i < SIZE; i++) { \
             TYPE result; \
             BREV_LOAD_##SZ(result, p, 1 << (SHIFT - NBITS)); \
-            check(i, result, EXP); \
+            check32(result, EXP); \
         } \
     } while (0)
 
@@ -129,11 +123,11 @@ void check(int i, long long result, long long expect)
     do { \
         p = BUF; \
         memset(BUF, 0xff, sizeof(BUF)); \
-        for (i = 0; i < SIZE; i++) { \
+        for (int i = 0; i < SIZE; i++) { \
             BREV_STORE_##SZ(p, (TYPE)(VAL), 1 << (SHIFT - NBITS)); \
         } \
-        for (i = 0; i < SIZE; i++) { \
-            check(i, BUF[i], bitreverse(i)); \
+        for (int i = 0; i < SIZE; i++) { \
+            check32(BUF[i], bitreverse(i)); \
         } \
     } while (0)
 
@@ -141,11 +135,11 @@ void check(int i, long long result, long long expect)
     do { \
         p = BUF; \
         memset(BUF, 0xff, sizeof(BUF)); \
-        for (i = 0; i < SIZE; i++) { \
+        for (int i = 0; i < SIZE; i++) { \
             BREV_STORE_##SZ(p, i, 1 << (SHIFT - NBITS)); \
         } \
-        for (i = 0; i < SIZE; i++) { \
-            check(i, BUF[i], bitreverse(i)); \
+        for (int i = 0; i < SIZE; i++) { \
+            check32(BUF[i], bitreverse(i)); \
         } \
     } while (0)
 
@@ -158,9 +152,8 @@ int high_half[SIZE];
 int main()
 {
     void *p;
-    int i;
 
-    for (i = 0; i < SIZE; i++) {
+    for (int i = 0; i < SIZE; i++) {
         bbuf[i] = bitreverse(i);
         hbuf[i] = bitreverse(i);
         wbuf[i] = bitreverse(i);
@@ -168,18 +161,18 @@ int main()
         high_half[i] = i << 16;
     }
 
-    TEST_BREV_LOAD(b,  int,       bbuf, 16, sext8(i));
-    TEST_BREV_LOAD(ub, int,       bbuf, 16, i);
-    TEST_BREV_LOAD(h,  int,       hbuf, 15, i);
-    TEST_BREV_LOAD(uh, int,       hbuf, 15, i);
-    TEST_BREV_LOAD(w,  int,       wbuf, 14, i);
-    TEST_BREV_LOAD(d,  long long, dbuf, 13, i);
-
-    TEST_BREV_STORE(b, int,       bbuf, i,            16);
-    TEST_BREV_STORE(h, int,       hbuf, i,            15);
-    TEST_BREV_STORE(f, int,       hbuf, high_half[i], 15);
-    TEST_BREV_STORE(w, int,       wbuf, i,            14);
-    TEST_BREV_STORE(d, long long, dbuf, i,            13);
+    TEST_BREV_LOAD(b,  int32_t,   bbuf, 16, sext8(i));
+    TEST_BREV_LOAD(ub, int32_t,   bbuf, 16, i);
+    TEST_BREV_LOAD(h,  int32_t,   hbuf, 15, i);
+    TEST_BREV_LOAD(uh, int32_t,   hbuf, 15, i);
+    TEST_BREV_LOAD(w,  int32_t,   wbuf, 14, i);
+    TEST_BREV_LOAD(d,  int64_t,   dbuf, 13, i);
+
+    TEST_BREV_STORE(b, int32_t,   bbuf, i,            16);
+    TEST_BREV_STORE(h, int32_t,   hbuf, i,            15);
+    TEST_BREV_STORE(f, int32_t,   hbuf, high_half[i], 15);
+    TEST_BREV_STORE(w, int32_t,   wbuf, i,            14);
+    TEST_BREV_STORE(d, int64_t,   dbuf, i,            13);
 
     TEST_BREV_STORE_NEW(bnew, bbuf, 16);
     TEST_BREV_STORE_NEW(hnew, hbuf, 15);