lgtm.
---- Replied Message ----
FromRobin Dapp<rdapp....@gmail.com>
Date12/11/2023 21:40
Togcc-patches<gcc-patches@gcc.gnu.org>,
palmer<pal...@dabbelt.com>,
Kito Cheng<kito.ch...@gmail.com>,
jeffreyalaw<jeffreya...@gmail.com>,
juzhe.zh...@rivai.ai<juzhe.zh...@rivai.ai>,
Li, Pan2<pan2...@intel.com>
Ccrdapp....@gmail.com<rdapp....@gmail.com>
Subject[PATCH] RISC-V: testsuite: Fix strcmp-run.c test.
Hi,

this fixes expectations in the strcmp-run test which would sometimes
fail with newlib.  The test expects libc strcmp return values and
asserts the vectorized result is similar to those.  Therefore hard-code
the expected results instead of relying on a strcmp call.

Pan has already tested in a lot of configurations and doesn't see
failures anymore.

I'd argue it's obvious enough to push it if nobody complains :)

Regards
Robin

gcc/testsuite/ChangeLog:

   * gcc.target/riscv/rvv/autovec/builtin/strcmp-run.c: Adjust test
   expectation.
---
.../riscv/rvv/autovec/builtin/strcmp-run.c    | 23 ++++++++++---------
1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strcmp-run.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strcmp-run.c
index 6dec7da91c1..adbe022e0ee 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strcmp-run.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strcmp-run.c
@@ -1,8 +1,6 @@
/* { dg-do run } */
/* { dg-additional-options "-O3 -minline-strcmp" } */

-#include <string.h>
-
int
__attribute__ ((noipa))
foo (const char *s, const char *t)
@@ -10,23 +8,26 @@ foo (const char *s, const char *t)
  return __builtin_strcmp (s, t);
}

-int
-__attribute__ ((noipa, optimize ("0")))
-foo2 (const char *s, const char *t)
-{
-  return strcmp (s, t);
-}
-
#define SZ 10

-int main ()
+int
+main ()
{
  const char *s[SZ]
    = {"",  "asdf", "0", "\0", "!@#$%***m1123fdnmoi43",
       "a", "z",    "1", "9",  "12345678901234567889012345678901234567890"};

+  const int ref[SZ * SZ]
+    = {0,   -97, -48, 0,   -33, -97, -122, -49, -57, -49, 97,  0,   49,     97, 64,
+       115, -25, 48,  40,  48,    48,  -49,  0,    48,  15,  -49, -74, -1,     -9, -1,
+       0,   -97, -48, 0,   -33, -97, -122, -49, -57, -49, 33,  -64, -15, 33, 0,
+       -64, -89, -16, -24, -16, 97,  -115, 49,    97,  64,  0,   -25, 48,     40, 48,
+       122, 25,     74,  122, 89,    25,  0,       73,    65,  73,  49,  -48, 1,     49, 16,
+       -48, -73, 0,   -8,  -50, 57,  -40,  9,    57,  24,  -40, -65, 8,     0,  8,
+       49,  -48, 1,   49,  16,    -48, -73,  50,    -8,  0};
+
  for (int i = 0; i < SZ; i++)
    for (int j = 0; j < SZ; j++)
-      if (foo (s[i], s[j]) != foo2 (s[i], s[j]))
+      if (foo (s[i], s[j]) != ref [i * SZ + j])
        __builtin_abort ();
}
--
2.43.0

Reply via email to