]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
RISC-V: testsuite: Fix strcmp-run.c test.
authorRobin Dapp <rdapp@ventanamicro.com>
Mon, 11 Dec 2023 13:16:04 +0000 (14:16 +0100)
committerRobin Dapp <rdapp@ventanamicro.com>
Mon, 11 Dec 2023 14:31:59 +0000 (15:31 +0100)
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.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/autovec/builtin/strcmp-run.c: Adjust test
expectation and target selector.
* gcc.target/riscv/rvv/autovec/builtin/strlen-run.c: Adjust
target selector.
* gcc.target/riscv/rvv/autovec/builtin/strncmp-run.c: Ditto.

gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strcmp-run.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strlen-run.c
gcc/testsuite/gcc.target/riscv/rvv/autovec/builtin/strncmp-run.c

index 6dec7da91c1b0a8e0f131fc53fb23b7d8e46eb1f..43c9e0f42edcd1d4cabbc10281a187c088345477 100644 (file)
@@ -1,8 +1,6 @@
-/* { dg-do run } */
+/* { dg-do run { target { riscv_v } } } */
 /* { 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 ();
 }
index d29297a5f86cb18e40a9322c8a9b5d8228ec6e36..deeb8401ef110914c93f8f2d2b28d5608d70cf09 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target { riscv_v } } } */
 /* { dg-additional-options "-O3 -minline-strlen" } */
 
 int
index 8d1471a3a135dedf589e782837b91a0a987072d3..b7cd94254d9d6b57c21cf0c23af348adaef4edf5 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do run { target { riscv_v } } } */
 /* { dg-additional-options "-O3 -minline-strcmp" } */
 
 #include <string.h>