[AArch64] Fix SVE testsuite failures for ILP32 (PR 83846)
authorRichard Sandiford <richard.sandiford@linaro.org>
Thu, 1 Feb 2018 11:04:58 +0000 (11:04 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 1 Feb 2018 11:04:58 +0000 (11:04 +0000)
The SVE tests are split into code-quality compile tests and runtime
tests.  A lot of the former are geared towards LP64.  It would be
possible (but tedious!) to mark up every line that is expected to work
only for LP64, but I think it would be a constant source of problems.

Since the code has not been tuned for ILP32 yet, I think the best
thing is to select only the runtime tests for that combination.
They all pass on aarch64-elf and aarch64_be-elf except vec-cond-[34].c,
which are unsupported due to the lack of fenv support.

The patch also replaces uses of built-in types with stdint.h types
where possible.  (This excludes tests that change the endianness,
since we can't assume that system header files work in that case.)

2018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/testsuite/
PR testsuite/83846
* gcc.target/aarch64/sve/aarch64-sve.exp: Only do *_run tests
for ILP32.
* gcc.target/aarch64/sve/clastb_2_run.c (main): Use TYPE instead
of hard-coding the choice.
* gcc.target/aarch64/sve/clastb_4_run.c (main): Likewise.
* gcc.target/aarch64/sve/clastb_5_run.c (main): Likewise.
* gcc.target/aarch64/sve/clastb_3_run.c (main): Likewise.  Generalize
memset call.
* gcc.target/aarch64/sve/const_pred_1.C: Include stdint.h and use
stdint.h types.
* gcc.target/aarch64/sve/const_pred_2.C: Likewise.
* gcc.target/aarch64/sve/const_pred_3.C: Likewise.
* gcc.target/aarch64/sve/const_pred_4.C: Likewise.
* gcc.target/aarch64/sve/load_const_offset_2.c: Likewise.
* gcc.target/aarch64/sve/logical_1.c: Likewise.
* gcc.target/aarch64/sve/mask_struct_load_1.c: Likewise.
* gcc.target/aarch64/sve/mask_struct_load_2.c: Likewise.
* gcc.target/aarch64/sve/mask_struct_load_3.c: Likewise.
* gcc.target/aarch64/sve/mask_struct_load_4.c: Likewise.
* gcc.target/aarch64/sve/mask_struct_load_5.c: Likewise.
* gcc.target/aarch64/sve/mask_struct_load_6.c: Likewise.
* gcc.target/aarch64/sve/mask_struct_load_7.c: Likewise.
* gcc.target/aarch64/sve/mask_struct_load_8.c: Likewise.
* gcc.target/aarch64/sve/mask_struct_store_1.c: Likewise.
* gcc.target/aarch64/sve/mask_struct_store_2.c: Likewise.
* gcc.target/aarch64/sve/mask_struct_store_3.c: Likewise.
* gcc.target/aarch64/sve/mask_struct_store_4.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_1.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_2.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_2_run.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_3.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_3_run.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_4.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_4_run.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_7.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_8.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_8_run.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_9.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_9_run.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_10.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_10_run.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_11.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_11_run.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_12.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_12_run.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_13.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_13_run.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_14.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_18.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_19.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_20.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_21.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_22.c: Likewise.
* gcc.target/aarch64/sve/struct_vect_23.c: Likewise.
* gcc.target/aarch64/sve/popcount_1.c (popcount_64): Use
__builtin_popcountll rather than __builtin_popcountl.

Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com>
From-SVN: r257290

52 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
gcc/testsuite/gcc.target/aarch64/sve/clastb_2_run.c
gcc/testsuite/gcc.target/aarch64/sve/clastb_3_run.c
gcc/testsuite/gcc.target/aarch64/sve/clastb_4_run.c
gcc/testsuite/gcc.target/aarch64/sve/clastb_5_run.c
gcc/testsuite/gcc.target/aarch64/sve/const_pred_1.C
gcc/testsuite/gcc.target/aarch64/sve/const_pred_2.C
gcc/testsuite/gcc.target/aarch64/sve/const_pred_3.C
gcc/testsuite/gcc.target/aarch64/sve/const_pred_4.C
gcc/testsuite/gcc.target/aarch64/sve/load_const_offset_2.c
gcc/testsuite/gcc.target/aarch64/sve/logical_1.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_1.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_2.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_3.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_4.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_5.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_6.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_7.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_load_8.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_1.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_2.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_3.c
gcc/testsuite/gcc.target/aarch64/sve/mask_struct_store_4.c
gcc/testsuite/gcc.target/aarch64/sve/popcount_1.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_1.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_10_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_11.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_11_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_12.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_12_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_13.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_13_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_14.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_18.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_19.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_2.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_20.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_21.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_22.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_23.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_2_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_3.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_3_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_4.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_4_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_7.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_8.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_8_run.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_9.c
gcc/testsuite/gcc.target/aarch64/sve/struct_vect_9_run.c

index 522938f61ba92a7f08ea4105f64e84ed7522c832..bd118a9391c29ade5f11b319903252f037b756d6 100644 (file)
@@ -1,3 +1,63 @@
+2018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       PR testsuite/83846
+       * gcc.target/aarch64/sve/aarch64-sve.exp: Only do *_run tests
+       for ILP32.
+       * gcc.target/aarch64/sve/clastb_2_run.c (main): Use TYPE instead
+       of hard-coding the choice.
+       * gcc.target/aarch64/sve/clastb_4_run.c (main): Likewise.
+       * gcc.target/aarch64/sve/clastb_5_run.c (main): Likewise.
+       * gcc.target/aarch64/sve/clastb_3_run.c (main): Likewise.  Generalize
+       memset call.
+       * gcc.target/aarch64/sve/const_pred_1.C: Include stdint.h and use
+       stdint.h types.
+       * gcc.target/aarch64/sve/const_pred_2.C: Likewise.
+       * gcc.target/aarch64/sve/const_pred_3.C: Likewise.
+       * gcc.target/aarch64/sve/const_pred_4.C: Likewise.
+       * gcc.target/aarch64/sve/load_const_offset_2.c: Likewise.
+       * gcc.target/aarch64/sve/logical_1.c: Likewise.
+       * gcc.target/aarch64/sve/mask_struct_load_1.c: Likewise.
+       * gcc.target/aarch64/sve/mask_struct_load_2.c: Likewise.
+       * gcc.target/aarch64/sve/mask_struct_load_3.c: Likewise.
+       * gcc.target/aarch64/sve/mask_struct_load_4.c: Likewise.
+       * gcc.target/aarch64/sve/mask_struct_load_5.c: Likewise.
+       * gcc.target/aarch64/sve/mask_struct_load_6.c: Likewise.
+       * gcc.target/aarch64/sve/mask_struct_load_7.c: Likewise.
+       * gcc.target/aarch64/sve/mask_struct_load_8.c: Likewise.
+       * gcc.target/aarch64/sve/mask_struct_store_1.c: Likewise.
+       * gcc.target/aarch64/sve/mask_struct_store_2.c: Likewise.
+       * gcc.target/aarch64/sve/mask_struct_store_3.c: Likewise.
+       * gcc.target/aarch64/sve/mask_struct_store_4.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_1.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_2.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_2_run.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_3.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_3_run.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_4.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_4_run.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_7.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_8.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_8_run.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_9.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_9_run.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_10.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_10_run.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_11.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_11_run.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_12.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_12_run.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_13.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_13_run.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_14.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_18.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_19.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_20.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_21.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_22.c: Likewise.
+       * gcc.target/aarch64/sve/struct_vect_23.c: Likewise.
+       * gcc.target/aarch64/sve/popcount_1.c (popcount_64): Use
+       __builtin_popcountll rather than __builtin_popcountl.
+
 2018-02-01  Richard Sandiford  <richard.sandiford@linaro.org>
 
        * gcc.target/aarch64/sve/slp_2.c: Expect LD1RQ to be used instead
index 934a6a8d4ea55c68eaf9e2afe934526d2976ff4a..e2d92d4153330988815783a617ecba0baa19a3b5 100644 (file)
@@ -44,8 +44,16 @@ if { [check_effective_target_aarch64_sve] } {
     set sve_flags "-march=armv8.2-a+sve"
 }
 
+# Most of the code-quality tests are written for LP64.  Just do the
+# correctness tests for ILP32.
+if { [check_effective_target_ilp32] } {
+    set pattern "*_run"
+} else {
+    set pattern "*"
+}
+
 # Main loop.
-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/$pattern.\[cCS\]]] \
     $sve_flags $DEFAULT_CFLAGS
 
 # All done.
index dcbacf90fef46f049b9fb9d9339c1a5ffe4e3968..e23314df07ca62411786d8cb1f18e8a3ee3fcbc8 100644 (file)
@@ -6,15 +6,15 @@
 int __attribute__ ((optimize (1)))
 main (void)
 {
-  unsigned int a[N] = {
+  TYPE a[N] = {
     11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
     1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
     21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
     31, 32
   };
-  __builtin_memset (a + 32, 43, (N - 32) * sizeof (int));
+  __builtin_memset (a + 32, 43, (N - 32) * sizeof (TYPE));
 
-  unsigned int ret = condition_reduction (a, 16);
+  TYPE ret = condition_reduction (a, 16);
 
   if (ret != 10)
     __builtin_abort ();
index 2ff1605c60538cd371f789874d1239d25db3ee86..5b0eef6ffe22ce43a441094ca1cb899018ec8054 100644 (file)
@@ -6,15 +6,15 @@
 int __attribute__ ((optimize (1)))
 main (void)
 {
-  unsigned char a[N] = {
+  TYPE a[N] = {
     11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
     1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
     21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
     31, 32
   };
-  __builtin_memset (a + 32, 43, N - 32);
+  __builtin_memset (a + 32, 43, (N - 32) * sizeof (TYPE));
 
-  unsigned char ret = condition_reduction (a, 16);
+  TYPE ret = condition_reduction (a, 16);
 
   if (ret != 10)
     __builtin_abort ();
index d0c4af8c0da9065148df8fad10a4d5143b584b01..7aa3603b4c2541cb9e5fbb93c2d97aaec03cc716 100644 (file)
@@ -8,15 +8,15 @@ extern void abort (void) __attribute__ ((noreturn));
 int __attribute__ ((optimize (1)))
 main (void)
 {
-  short a[N] = {
+  TYPE a[N] = {
   11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
   1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
   21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
   31, 32
   };
-  __builtin_memset (a+32, 43, (N-32)*sizeof (short));
+  __builtin_memset (a+32, 43, (N-32)*sizeof (TYPE));
 
-  short ret = condition_reduction (a, 16);
+  TYPE ret = condition_reduction (a, 16);
 
   if (ret != 10)
     abort ();
index 3c9d0542eb4ae4d0abd0b414908b0e946a387ce9..134a2df3ae487c17caa9e429003c08dca4666878 100644 (file)
@@ -6,15 +6,15 @@
 int __attribute__ ((optimize (1)))
 main (void)
 {
-  long a[N] = {
+  TYPE a[N] = {
     11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
     1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
     21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
     31, 32
   };
-  __builtin_memset (a + 32, 43, (N - 32) * sizeof (long));
+  __builtin_memset (a + 32, 43, (N - 32) * sizeof (TYPE));
 
-  long ret = condition_reduction (a, 16);
+  TYPE ret = condition_reduction (a, 16);
 
   if (ret != 10)
     __builtin_abort ();
index 58ab1598eb0fca40c1c060a4a97c591ebbab328b..25b7663273fef57f2c6bec58d534d3a1873f3100 100644 (file)
@@ -1,7 +1,9 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msve-vector-bits=256" } */
 
-typedef signed char vnx16qi __attribute__((vector_size(32)));
+#include <stdint.h>
+
+typedef int8_t vnx16qi __attribute__((vector_size(32)));
 
 vnx16qi
 foo (vnx16qi x, vnx16qi y)
index 55dc8741f4c692ec1b6e1cbcd956a617af27d96a..4c781ca560c4788fa754c87d1e111d70a2ed91ab 100644 (file)
@@ -1,7 +1,9 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msve-vector-bits=256" } */
 
-typedef short vnx8hi __attribute__((vector_size(32)));
+#include <stdint.h>
+
+typedef int16_t vnx8hi __attribute__((vector_size(32)));
 
 vnx8hi
 foo (vnx8hi x, vnx8hi y)
index 16d0a33f50e9ddb63f4fab81f80100da32f76270..6196ee05be7b14ed59bec8327278a596b6e1df37 100644 (file)
@@ -1,7 +1,9 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msve-vector-bits=256" } */
 
-typedef int vnx4si __attribute__((vector_size(32)));
+#include <stdint.h>
+
+typedef int32_t vnx4si __attribute__((vector_size(32)));
 
 vnx4si
 foo (vnx4si x, vnx4si y)
index 02bd0963246fe21469fd747a23ad353e5604812a..2bdf67fd03861b26c83371a77ddc10992ffa09b5 100644 (file)
@@ -1,7 +1,9 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msve-vector-bits=256" } */
 
-typedef long long vnx2di __attribute__((vector_size(32)));
+#include <stdint.h>
+
+typedef int64_t vnx2di __attribute__((vector_size(32)));
 
 vnx2di
 foo (vnx2di x, vnx2di y)
index 25e84e307337cd5722025314a79e8564b25fafa3..e02a6b5abee117b2d0a5432032aef99a97403fa3 100644 (file)
@@ -1,14 +1,16 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O2 -ftree-vectorize -save-temps" } */
 
+#include <stdint.h>
+
 void
-f (unsigned int *restrict a, signed char *restrict b, signed char mask, int n)
+f (uint32_t *restrict a, int8_t *restrict b, int8_t mask, int n)
 {
   for (int i = 0; i < n; ++i)
-    a[i] += (signed char) (b[i] | mask);
+    a[i] += (int8_t) (b[i] | mask);
 }
 
-/* { dg-final { scan-assembler-times {\tld1w\tz[0-9]+\.s, p[0-7]/z, \[x[0-9]+\]\n} 1 } } */
-/* { dg-final { scan-assembler-times {\tld1w\tz[0-9]+\.s, p[0-7]/z, \[x[0-9]+, #1, mul vl\]\n} 1 } } */
-/* { dg-final { scan-assembler-times {\tld1w\tz[0-9]+\.s, p[0-7]/z, \[x[0-9]+, #2, mul vl\]\n} 1 } } */
-/* { dg-final { scan-assembler-times {\tld1w\tz[0-9]+\.s, p[0-7]/z, \[x[0-9]+, #3, mul vl\]\n} 1 } } */
+/* { dg-final { scan-assembler-times {\tld1w\tz[0-9]+\.s, p[0-7]/z, \[x[0-9]+\]\n} 1 { xfail ilp32 } } } */
+/* { dg-final { scan-assembler-times {\tld1w\tz[0-9]+\.s, p[0-7]/z, \[x[0-9]+, #1, mul vl\]\n} 1 { xfail ilp32 } } } */
+/* { dg-final { scan-assembler-times {\tld1w\tz[0-9]+\.s, p[0-7]/z, \[x[0-9]+, #2, mul vl\]\n} 1 { xfail ilp32 } } } */
+/* { dg-final { scan-assembler-times {\tld1w\tz[0-9]+\.s, p[0-7]/z, \[x[0-9]+, #3, mul vl\]\n} 1 { xfail ilp32 } } } */
index 25cd9081430280d15d438714ee808ca737319bfb..f3d43cc44d4d50f20364c1953d6ad527afcfcaaa 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O3 --save-temps" } */
 
+#include <stdint.h>
+
 #define DO_CONSTANT(VALUE, TYPE, OP, NAME)                     \
 void vlogical_imm_##NAME##_##TYPE (TYPE *dst, int count)       \
 {                                                              \
@@ -78,12 +80,12 @@ void vlogical_imm_##NAME##_##TYPE (TYPE *dst, int count)    \
   DO_CONSTANT (-8, TYPE, OP, NAME ## minus8)                   \
   DO_CONSTANT (-9, TYPE, OP, NAME ## minus9)
 
-DO_LOGICAL_OPS_BRIEF (char, &, and)
-DO_LOGICAL_OPS_BRIEF (long, &, and)
+DO_LOGICAL_OPS_BRIEF (int8_t, &, and)
+DO_LOGICAL_OPS_BRIEF (int64_t, &, and)
 
-DO_LOGICAL_OPS (int, &, and)
-DO_LOGICAL_OPS (int, |, or)
-DO_LOGICAL_OPS (int, ^, xor)
+DO_LOGICAL_OPS (int32_t, &, and)
+DO_LOGICAL_OPS (int32_t, |, or)
+DO_LOGICAL_OPS (int32_t, ^, xor)
 
 /* { dg-final { scan-assembler-times {\tand\tz[0-9]+\.d, z[0-9]+\.d, #0x1\n} 1 } } */
 /* { dg-final { scan-assembler-times {\tand\tz[0-9]+\.s, z[0-9]+\.s, #0x1\n} 1 } } */
index c3c335e335032d65d56177c23648014d1f47f6f1..d4503322d77fce28777c226bc8caf18b764bb52b 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -ffast-math" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, OUTTYPE, INTYPE, MASKTYPE)             \
   void __attribute__ ((noinline, noclone))                     \
   NAME##_2 (OUTTYPE *__restrict dest, INTYPE *__restrict src,  \
   }
 
 #define TEST2(NAME, OUTTYPE, INTYPE) \
-  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, signed char) \
-  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, unsigned short) \
+  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, int8_t) \
+  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, uint16_t) \
   TEST_LOOP (NAME##_f32, OUTTYPE, INTYPE, float) \
   TEST_LOOP (NAME##_f64, OUTTYPE, INTYPE, double)
 
 #define TEST1(NAME, OUTTYPE) \
-  TEST2 (NAME##_i8, OUTTYPE, signed char) \
-  TEST2 (NAME##_i16, OUTTYPE, unsigned short) \
-  TEST2 (NAME##_i32, OUTTYPE, int) \
-  TEST2 (NAME##_i64, OUTTYPE, unsigned long)
+  TEST2 (NAME##_i8, OUTTYPE, int8_t) \
+  TEST2 (NAME##_i16, OUTTYPE, uint16_t) \
+  TEST2 (NAME##_i32, OUTTYPE, int32_t) \
+  TEST2 (NAME##_i64, OUTTYPE, uint64_t)
 
 #define TEST(NAME) \
-  TEST1 (NAME##_i8, signed char) \
-  TEST1 (NAME##_i16, unsigned short) \
-  TEST1 (NAME##_i32, int) \
-  TEST1 (NAME##_i64, unsigned long) \
+  TEST1 (NAME##_i8, int8_t) \
+  TEST1 (NAME##_i16, uint16_t) \
+  TEST1 (NAME##_i32, int32_t) \
+  TEST1 (NAME##_i64, uint64_t) \
   TEST2 (NAME##_f16_f16, _Float16, _Float16) \
   TEST2 (NAME##_f32_f32, float, float) \
   TEST2 (NAME##_f64_f64, double, double)
index 1afb21fc2e1cf25745b03408d9d7b10a65c5cb83..812b96723cb64e6b3572f23dac3cc9d32fe1e1ce 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -ffast-math" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, OUTTYPE, INTYPE, MASKTYPE)             \
   void __attribute__ ((noinline, noclone))                     \
   NAME##_3 (OUTTYPE *__restrict dest, INTYPE *__restrict src,  \
   }
 
 #define TEST2(NAME, OUTTYPE, INTYPE) \
-  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, signed char) \
-  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, unsigned short) \
+  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, int8_t) \
+  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, uint16_t) \
   TEST_LOOP (NAME##_f32, OUTTYPE, INTYPE, float) \
   TEST_LOOP (NAME##_f64, OUTTYPE, INTYPE, double)
 
 #define TEST1(NAME, OUTTYPE) \
-  TEST2 (NAME##_i8, OUTTYPE, signed char) \
-  TEST2 (NAME##_i16, OUTTYPE, unsigned short) \
-  TEST2 (NAME##_i32, OUTTYPE, int) \
-  TEST2 (NAME##_i64, OUTTYPE, unsigned long)
+  TEST2 (NAME##_i8, OUTTYPE, int8_t) \
+  TEST2 (NAME##_i16, OUTTYPE, uint16_t) \
+  TEST2 (NAME##_i32, OUTTYPE, int32_t) \
+  TEST2 (NAME##_i64, OUTTYPE, uint64_t)
 
 #define TEST(NAME) \
-  TEST1 (NAME##_i8, signed char) \
-  TEST1 (NAME##_i16, unsigned short) \
-  TEST1 (NAME##_i32, int) \
-  TEST1 (NAME##_i64, unsigned long) \
+  TEST1 (NAME##_i8, int8_t) \
+  TEST1 (NAME##_i16, uint16_t) \
+  TEST1 (NAME##_i32, int32_t) \
+  TEST1 (NAME##_i64, uint64_t) \
   TEST2 (NAME##_f16_f16, _Float16, _Float16) \
   TEST2 (NAME##_f32_f32, float, float) \
   TEST2 (NAME##_f64_f64, double, double)
index a5b386d19b4043f3e3748f1fcfdfa34bdc846950..29702ab55f249c3ebd0baf44981870524098e1e4 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -ffast-math" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, OUTTYPE, INTYPE, MASKTYPE)             \
   void __attribute__ ((noinline, noclone))                     \
   NAME##_4 (OUTTYPE *__restrict dest, INTYPE *__restrict src,  \
   }
 
 #define TEST2(NAME, OUTTYPE, INTYPE) \
-  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, signed char) \
-  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, unsigned short) \
+  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, int8_t) \
+  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, uint16_t) \
   TEST_LOOP (NAME##_f32, OUTTYPE, INTYPE, float) \
   TEST_LOOP (NAME##_f64, OUTTYPE, INTYPE, double)
 
 #define TEST1(NAME, OUTTYPE) \
-  TEST2 (NAME##_i8, OUTTYPE, signed char) \
-  TEST2 (NAME##_i16, OUTTYPE, unsigned short) \
-  TEST2 (NAME##_i32, OUTTYPE, int) \
-  TEST2 (NAME##_i64, OUTTYPE, unsigned long)
+  TEST2 (NAME##_i8, OUTTYPE, int8_t) \
+  TEST2 (NAME##_i16, OUTTYPE, uint16_t) \
+  TEST2 (NAME##_i32, OUTTYPE, int32_t) \
+  TEST2 (NAME##_i64, OUTTYPE, uint64_t)
 
 #define TEST(NAME) \
-  TEST1 (NAME##_i8, signed char) \
-  TEST1 (NAME##_i16, unsigned short) \
-  TEST1 (NAME##_i32, int) \
-  TEST1 (NAME##_i64, unsigned long) \
+  TEST1 (NAME##_i8, int8_t) \
+  TEST1 (NAME##_i16, uint16_t) \
+  TEST1 (NAME##_i32, int32_t) \
+  TEST1 (NAME##_i64, uint64_t) \
   TEST2 (NAME##_f16_f16, _Float16, _Float16) \
   TEST2 (NAME##_f32_f32, float, float) \
   TEST2 (NAME##_f64_f64, double, double)
index 9c66643c1e0bc5d0095542a309b648399cff0399..436da08576005d2134e2cc94e4aca682981248c4 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -ffast-math" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, OUTTYPE, INTYPE, MASKTYPE)             \
   void __attribute__ ((noinline, noclone))                     \
   NAME##_3 (OUTTYPE *__restrict dest, INTYPE *__restrict src,  \
   }
 
 #define TEST2(NAME, OUTTYPE, INTYPE) \
-  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, signed char) \
-  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, unsigned short) \
+  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, int8_t) \
+  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, uint16_t) \
   TEST_LOOP (NAME##_f32, OUTTYPE, INTYPE, float) \
   TEST_LOOP (NAME##_f64, OUTTYPE, INTYPE, double)
 
 #define TEST1(NAME, OUTTYPE) \
-  TEST2 (NAME##_i8, OUTTYPE, signed char) \
-  TEST2 (NAME##_i16, OUTTYPE, unsigned short) \
-  TEST2 (NAME##_i32, OUTTYPE, int) \
-  TEST2 (NAME##_i64, OUTTYPE, unsigned long)
+  TEST2 (NAME##_i8, OUTTYPE, int8_t) \
+  TEST2 (NAME##_i16, OUTTYPE, uint16_t) \
+  TEST2 (NAME##_i32, OUTTYPE, int32_t) \
+  TEST2 (NAME##_i64, OUTTYPE, uint64_t)
 
 #define TEST(NAME) \
-  TEST1 (NAME##_i8, signed char) \
-  TEST1 (NAME##_i16, unsigned short) \
-  TEST1 (NAME##_i32, int) \
-  TEST1 (NAME##_i64, unsigned long) \
+  TEST1 (NAME##_i8, int8_t) \
+  TEST1 (NAME##_i16, uint16_t) \
+  TEST1 (NAME##_i32, int32_t) \
+  TEST1 (NAME##_i64, uint64_t) \
   TEST2 (NAME##_f16_f16, _Float16, _Float16) \
   TEST2 (NAME##_f32_f32, float, float) \
   TEST2 (NAME##_f64_f64, double, double)
index 41412350633785ab3bccf3d8aacd83d054c1d004..08e58247f00f6b77a4c1e75c7ab2b25776f4945c 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -ffast-math" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, OUTTYPE, INTYPE, MASKTYPE)             \
   void __attribute__ ((noinline, noclone))                     \
   NAME##_4 (OUTTYPE *__restrict dest, INTYPE *__restrict src,  \
   }
 
 #define TEST2(NAME, OUTTYPE, INTYPE) \
-  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, signed char) \
-  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, unsigned short) \
+  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, int8_t) \
+  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, uint16_t) \
   TEST_LOOP (NAME##_f32, OUTTYPE, INTYPE, float) \
   TEST_LOOP (NAME##_f64, OUTTYPE, INTYPE, double)
 
 #define TEST1(NAME, OUTTYPE) \
-  TEST2 (NAME##_i8, OUTTYPE, signed char) \
-  TEST2 (NAME##_i16, OUTTYPE, unsigned short) \
-  TEST2 (NAME##_i32, OUTTYPE, int) \
-  TEST2 (NAME##_i64, OUTTYPE, unsigned long)
+  TEST2 (NAME##_i8, OUTTYPE, int8_t) \
+  TEST2 (NAME##_i16, OUTTYPE, uint16_t) \
+  TEST2 (NAME##_i32, OUTTYPE, int32_t) \
+  TEST2 (NAME##_i64, OUTTYPE, uint64_t)
 
 #define TEST(NAME) \
-  TEST1 (NAME##_i8, signed char) \
-  TEST1 (NAME##_i16, unsigned short) \
-  TEST1 (NAME##_i32, int) \
-  TEST1 (NAME##_i64, unsigned long) \
+  TEST1 (NAME##_i8, int8_t) \
+  TEST1 (NAME##_i16, uint16_t) \
+  TEST1 (NAME##_i32, int32_t) \
+  TEST1 (NAME##_i64, uint64_t) \
   TEST2 (NAME##_f16_f16, _Float16, _Float16) \
   TEST2 (NAME##_f32_f32, float, float) \
   TEST2 (NAME##_f64_f64, double, double)
index 805622624aa055f481f09e7b51073890bca107ca..d4542eca0f787eb4e0137860939f64a05ac63b6b 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -ffast-math" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, OUTTYPE, INTYPE, MASKTYPE)             \
   void __attribute__ ((noinline, noclone))                     \
   NAME##_2 (OUTTYPE *__restrict dest, INTYPE *__restrict src,  \
   }
 
 #define TEST2(NAME, OUTTYPE, INTYPE) \
-  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, signed char) \
-  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, unsigned short) \
+  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, int8_t) \
+  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, uint16_t) \
   TEST_LOOP (NAME##_f32, OUTTYPE, INTYPE, float) \
   TEST_LOOP (NAME##_f64, OUTTYPE, INTYPE, double)
 
 #define TEST1(NAME, OUTTYPE) \
-  TEST2 (NAME##_i8, OUTTYPE, signed char) \
-  TEST2 (NAME##_i16, OUTTYPE, unsigned short) \
-  TEST2 (NAME##_i32, OUTTYPE, int) \
-  TEST2 (NAME##_i64, OUTTYPE, unsigned long)
+  TEST2 (NAME##_i8, OUTTYPE, int8_t) \
+  TEST2 (NAME##_i16, OUTTYPE, uint16_t) \
+  TEST2 (NAME##_i32, OUTTYPE, int32_t) \
+  TEST2 (NAME##_i64, OUTTYPE, uint64_t)
 
 #define TEST(NAME) \
-  TEST1 (NAME##_i8, signed char) \
-  TEST1 (NAME##_i16, unsigned short) \
-  TEST1 (NAME##_i32, int) \
-  TEST1 (NAME##_i64, unsigned long) \
+  TEST1 (NAME##_i8, int8_t) \
+  TEST1 (NAME##_i16, uint16_t) \
+  TEST1 (NAME##_i32, int32_t) \
+  TEST1 (NAME##_i64, uint64_t) \
   TEST2 (NAME##_f16_f16, _Float16, _Float16) \
   TEST2 (NAME##_f32_f32, float, float) \
   TEST2 (NAME##_f64_f64, double, double)
index 982fa8b622285f43cd797b4330a074302711c9c2..9d26e15c0d9883f275f565b4138f29cfb08e9c81 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -ffast-math" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, OUTTYPE, INTYPE, MASKTYPE)             \
   void __attribute__ ((noinline, noclone))                     \
   NAME##_3 (OUTTYPE *__restrict dest, INTYPE *__restrict src,  \
   }
 
 #define TEST2(NAME, OUTTYPE, INTYPE) \
-  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, signed char) \
-  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, unsigned short) \
+  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, int8_t) \
+  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, uint16_t) \
   TEST_LOOP (NAME##_f32, OUTTYPE, INTYPE, float) \
   TEST_LOOP (NAME##_f64, OUTTYPE, INTYPE, double)
 
 #define TEST1(NAME, OUTTYPE) \
-  TEST2 (NAME##_i8, OUTTYPE, signed char) \
-  TEST2 (NAME##_i16, OUTTYPE, unsigned short) \
-  TEST2 (NAME##_i32, OUTTYPE, int) \
-  TEST2 (NAME##_i64, OUTTYPE, unsigned long)
+  TEST2 (NAME##_i8, OUTTYPE, int8_t) \
+  TEST2 (NAME##_i16, OUTTYPE, uint16_t) \
+  TEST2 (NAME##_i32, OUTTYPE, int32_t) \
+  TEST2 (NAME##_i64, OUTTYPE, uint64_t)
 
 #define TEST(NAME) \
-  TEST1 (NAME##_i8, signed char) \
-  TEST1 (NAME##_i16, unsigned short) \
-  TEST1 (NAME##_i32, int) \
-  TEST1 (NAME##_i64, unsigned long) \
+  TEST1 (NAME##_i8, int8_t) \
+  TEST1 (NAME##_i16, uint16_t) \
+  TEST1 (NAME##_i32, int32_t) \
+  TEST1 (NAME##_i64, uint64_t) \
   TEST2 (NAME##_f16_f16, _Float16, _Float16) \
   TEST2 (NAME##_f32_f32, float, float) \
   TEST2 (NAME##_f64_f64, double, double)
index c1da197cab605aa4d317b05c2cbc6d5d94de8a06..17fd4c0a079345a2e483f99d923266999e8cf5c5 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -ffast-math" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, OUTTYPE, INTYPE, MASKTYPE)             \
   void __attribute__ ((noinline, noclone))                     \
   NAME##_4 (OUTTYPE *__restrict dest, INTYPE *__restrict src,  \
   }
 
 #define TEST2(NAME, OUTTYPE, INTYPE) \
-  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, signed char) \
-  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, unsigned short) \
+  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, int8_t) \
+  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, uint16_t) \
   TEST_LOOP (NAME##_f32, OUTTYPE, INTYPE, float) \
   TEST_LOOP (NAME##_f64, OUTTYPE, INTYPE, double)
 
 #define TEST1(NAME, OUTTYPE) \
-  TEST2 (NAME##_i8, OUTTYPE, signed char) \
-  TEST2 (NAME##_i16, OUTTYPE, unsigned short) \
-  TEST2 (NAME##_i32, OUTTYPE, int) \
-  TEST2 (NAME##_i64, OUTTYPE, unsigned long)
+  TEST2 (NAME##_i8, OUTTYPE, int8_t) \
+  TEST2 (NAME##_i16, OUTTYPE, uint16_t) \
+  TEST2 (NAME##_i32, OUTTYPE, int32_t) \
+  TEST2 (NAME##_i64, OUTTYPE, uint64_t)
 
 #define TEST(NAME) \
-  TEST1 (NAME##_i8, signed char) \
-  TEST1 (NAME##_i16, unsigned short) \
-  TEST1 (NAME##_i32, int) \
-  TEST1 (NAME##_i64, unsigned long) \
+  TEST1 (NAME##_i8, int8_t) \
+  TEST1 (NAME##_i16, uint16_t) \
+  TEST1 (NAME##_i32, int32_t) \
+  TEST1 (NAME##_i64, uint64_t) \
   TEST2 (NAME##_f16_f16, _Float16, _Float16) \
   TEST2 (NAME##_f32_f32, float, float) \
   TEST2 (NAME##_f64_f64, double, double)
index 47ad135ecdf4cd0395a547a9802d3d5a724a5adc..8897fe1c9701f79a349f83de33eb5fb1b0e4f9d3 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -ffast-math" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, OUTTYPE, INTYPE, MASKTYPE)             \
   void __attribute__ ((noinline, noclone))                     \
   NAME##_2 (OUTTYPE *__restrict dest, INTYPE *__restrict src,  \
   }
 
 #define TEST2(NAME, OUTTYPE, INTYPE) \
-  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, signed char) \
-  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, unsigned short) \
+  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, int8_t) \
+  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, uint16_t) \
   TEST_LOOP (NAME##_f32, OUTTYPE, INTYPE, float) \
   TEST_LOOP (NAME##_f64, OUTTYPE, INTYPE, double)
 
 #define TEST1(NAME, OUTTYPE) \
-  TEST2 (NAME##_i8, OUTTYPE, signed char) \
-  TEST2 (NAME##_i16, OUTTYPE, unsigned short) \
-  TEST2 (NAME##_i32, OUTTYPE, int) \
-  TEST2 (NAME##_i64, OUTTYPE, unsigned long)
+  TEST2 (NAME##_i8, OUTTYPE, int8_t) \
+  TEST2 (NAME##_i16, OUTTYPE, uint16_t) \
+  TEST2 (NAME##_i32, OUTTYPE, int32_t) \
+  TEST2 (NAME##_i64, OUTTYPE, uint64_t)
 
 #define TEST(NAME) \
-  TEST1 (NAME##_i8, signed char) \
-  TEST1 (NAME##_i16, unsigned short) \
-  TEST1 (NAME##_i32, int) \
-  TEST1 (NAME##_i64, unsigned long) \
+  TEST1 (NAME##_i8, int8_t) \
+  TEST1 (NAME##_i16, uint16_t) \
+  TEST1 (NAME##_i32, int32_t) \
+  TEST1 (NAME##_i64, uint64_t) \
   TEST2 (NAME##_f16_f16, _Float16, _Float16) \
   TEST2 (NAME##_f32_f32, float, float) \
   TEST2 (NAME##_f64_f64, double, double)
index e87a31c765eb3d3a214cde13b957499bba6aa694..dccdceef652c733e9c7e686b09fc76f6d9eeb161 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -ffast-math" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, OUTTYPE, INTYPE, MASKTYPE)             \
   void __attribute__ ((noinline, noclone))                     \
   NAME##_3 (OUTTYPE *__restrict dest, INTYPE *__restrict src,  \
   }
 
 #define TEST2(NAME, OUTTYPE, INTYPE) \
-  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, signed char) \
-  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, unsigned short) \
+  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, int8_t) \
+  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, uint16_t) \
   TEST_LOOP (NAME##_f32, OUTTYPE, INTYPE, float) \
   TEST_LOOP (NAME##_f64, OUTTYPE, INTYPE, double)
 
 #define TEST1(NAME, OUTTYPE) \
-  TEST2 (NAME##_i8, OUTTYPE, signed char) \
-  TEST2 (NAME##_i16, OUTTYPE, unsigned short) \
-  TEST2 (NAME##_i32, OUTTYPE, int) \
-  TEST2 (NAME##_i64, OUTTYPE, unsigned long)
+  TEST2 (NAME##_i8, OUTTYPE, int8_t) \
+  TEST2 (NAME##_i16, OUTTYPE, uint16_t) \
+  TEST2 (NAME##_i32, OUTTYPE, int32_t) \
+  TEST2 (NAME##_i64, OUTTYPE, uint64_t)
 
 #define TEST(NAME) \
-  TEST1 (NAME##_i8, signed char) \
-  TEST1 (NAME##_i16, unsigned short) \
-  TEST1 (NAME##_i32, int) \
-  TEST1 (NAME##_i64, unsigned long) \
+  TEST1 (NAME##_i8, int8_t) \
+  TEST1 (NAME##_i16, uint16_t) \
+  TEST1 (NAME##_i32, int32_t) \
+  TEST1 (NAME##_i64, uint64_t) \
   TEST2 (NAME##_f16_f16, _Float16, _Float16) \
   TEST2 (NAME##_f32_f32, float, float) \
   TEST2 (NAME##_f64_f64, double, double)
index 908b12b502e3a705c977ba37f56ab92fbe11b5c0..001f5be8ff58bfcc75eccc4c050bef1e53faffeb 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -ffast-math" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, OUTTYPE, INTYPE, MASKTYPE)             \
   void __attribute__ ((noinline, noclone))                     \
   NAME##_4 (OUTTYPE *__restrict dest, INTYPE *__restrict src,  \
   }
 
 #define TEST2(NAME, OUTTYPE, INTYPE) \
-  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, signed char) \
-  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, unsigned short) \
+  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, int8_t) \
+  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, uint16_t) \
   TEST_LOOP (NAME##_f32, OUTTYPE, INTYPE, float) \
   TEST_LOOP (NAME##_f64, OUTTYPE, INTYPE, double)
 
 #define TEST1(NAME, OUTTYPE) \
-  TEST2 (NAME##_i8, OUTTYPE, signed char) \
-  TEST2 (NAME##_i16, OUTTYPE, unsigned short) \
-  TEST2 (NAME##_i32, OUTTYPE, int) \
-  TEST2 (NAME##_i64, OUTTYPE, unsigned long)
+  TEST2 (NAME##_i8, OUTTYPE, int8_t) \
+  TEST2 (NAME##_i16, OUTTYPE, uint16_t) \
+  TEST2 (NAME##_i32, OUTTYPE, int32_t) \
+  TEST2 (NAME##_i64, OUTTYPE, uint64_t)
 
 #define TEST(NAME) \
-  TEST1 (NAME##_i8, signed char) \
-  TEST1 (NAME##_i16, unsigned short) \
-  TEST1 (NAME##_i32, int) \
-  TEST1 (NAME##_i64, unsigned long) \
+  TEST1 (NAME##_i8, int8_t) \
+  TEST1 (NAME##_i16, uint16_t) \
+  TEST1 (NAME##_i32, int32_t) \
+  TEST1 (NAME##_i64, uint64_t) \
   TEST2 (NAME##_f16_f16, _Float16, _Float16) \
   TEST2 (NAME##_f32_f32, float, float) \
   TEST2 (NAME##_f64_f64, double, double)
index f7b63b514887ddb591ee147a6f64d69ce13e98d2..59e9ee49c4a214b731ed1975da0dcfa46c059f8b 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize -ffast-math" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, OUTTYPE, INTYPE, MASKTYPE)             \
   void __attribute__ ((noinline, noclone))                     \
   NAME##_2 (OUTTYPE *__restrict dest, INTYPE *__restrict src,  \
   }
 
 #define TEST2(NAME, OUTTYPE, INTYPE) \
-  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, signed char) \
-  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, unsigned short) \
+  TEST_LOOP (NAME##_i8, OUTTYPE, INTYPE, int8_t) \
+  TEST_LOOP (NAME##_i16, OUTTYPE, INTYPE, uint16_t) \
   TEST_LOOP (NAME##_f32, OUTTYPE, INTYPE, float) \
   TEST_LOOP (NAME##_f64, OUTTYPE, INTYPE, double)
 
 #define TEST1(NAME, OUTTYPE) \
-  TEST2 (NAME##_i8, OUTTYPE, signed char) \
-  TEST2 (NAME##_i16, OUTTYPE, unsigned short) \
-  TEST2 (NAME##_i32, OUTTYPE, int) \
-  TEST2 (NAME##_i64, OUTTYPE, unsigned long)
+  TEST2 (NAME##_i8, OUTTYPE, int8_t) \
+  TEST2 (NAME##_i16, OUTTYPE, uint16_t) \
+  TEST2 (NAME##_i32, OUTTYPE, int32_t) \
+  TEST2 (NAME##_i64, OUTTYPE, uint64_t)
 
 #define TEST(NAME) \
-  TEST1 (NAME##_i8, signed char) \
-  TEST1 (NAME##_i16, unsigned short) \
-  TEST1 (NAME##_i32, int) \
-  TEST1 (NAME##_i64, unsigned long) \
+  TEST1 (NAME##_i8, int8_t) \
+  TEST1 (NAME##_i16, uint16_t) \
+  TEST1 (NAME##_i32, int32_t) \
+  TEST1 (NAME##_i64, uint64_t) \
   TEST2 (NAME##_f16_f16, _Float16, _Float16) \
   TEST2 (NAME##_f32_f32, float, float) \
   TEST2 (NAME##_f64_f64, double, double)
index 188127b764d221d38244073f9dc71bcdb1f0d8a6..dfb6f4ac7a56ca38fb7814bcb33aabcd92f6b9fc 100644 (file)
@@ -14,7 +14,7 @@ void __attribute__ ((noinline, noclone))
 popcount_64 (unsigned int *restrict dst, uint64_t *restrict src, int size)
 {
   for (int i = 0; i < size; ++i)
-    dst[i] = __builtin_popcountl (src[i]);
+    dst[i] = __builtin_popcountll (src[i]);
 }
 
 /* { dg-final { scan-assembler-times {\tcnt\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s\n} 1 } } */
index 014f4ecc494a93e53c904f0d06a0ed6baf0801fe..6e3c8898a505faca3b0474ce58b1874321318fe3 100644 (file)
@@ -1,8 +1,10 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
+#include <stdint.h>
+
 #ifndef TYPE
-#define TYPE unsigned char
+#define TYPE uint8_t
 #endif
 
 #ifndef NAME
index e19ab3d89eefcc621a6128aa00356c5015571d10..f06ab2108402bee923ec37acdba24860f6064929 100644 (file)
@@ -1,8 +1,8 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
-#define TYPE unsigned long
-#define ITYPE long
+#define TYPE uint64_t
+#define ITYPE int64_t
 #include "struct_vect_7.c"
 
 /* { dg-final { scan-assembler {\tld2d\t{z[0-9]+.d - z[0-9]+.d}, p[0-7]/z, \[x[0-9]+\]\n} } } */
index e0e5cf9daf7828abb25ed33f9311fec381830527..f09ea60ecb08e3604e5866f1c44f08ff43265e2b 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do run { target aarch64_sve_hw } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
-#define TYPE unsigned long
-#define ITYPE long
+#define TYPE uint64_t
+#define ITYPE int64_t
 #include "struct_vect_7_run.c"
index ae665461c49692af34f0f2e454d36205cb0ae288..a47b145b2a2c28f91f645780f3cd64ff879e2877 100644 (file)
@@ -2,7 +2,7 @@
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
 #define TYPE _Float16
-#define ITYPE short
+#define ITYPE int16_t
 #include "struct_vect_7.c"
 
 /* { dg-final { scan-assembler {\tld2h\t{z[0-9]+.h - z[0-9]+.h}, p[0-7]/z, \[x[0-9]+\]\n} } } */
index 1544d8e5f4a28f30ec0a92515da7f0863a960870..847646a839f744c7c0adcaf4e2e54edf06badd36 100644 (file)
@@ -2,5 +2,5 @@
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
 #define TYPE _Float16
-#define ITYPE short
+#define ITYPE int16_t
 #include "struct_vect_7_run.c"
index 69bea7b7f0d75b07ad89bb204a53a11150e25022..117ed3e9f25712f179bbc10ad518358e985c5225 100644 (file)
@@ -2,7 +2,7 @@
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
 #define TYPE float
-#define ITYPE int
+#define ITYPE int32_t
 #include "struct_vect_7.c"
 
 /* { dg-final { scan-assembler {\tld2w\t{z[0-9]+.s - z[0-9]+.s}, p[0-7]/z, \[x[0-9]+\]\n} } } */
index 784d93d62d359be6b313150b603951890bb903b4..ae6b4134f0fd2349194a4735474f7c974c5f310e 100644 (file)
@@ -2,5 +2,5 @@
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
 #define TYPE float
-#define ITYPE int
+#define ITYPE int32_t
 #include "struct_vect_7_run.c"
index 13947a39e67a4c8d9bfbedcbe1b8bb5aa7ee8c47..0e0a909bffd6008daab907d4901180d27e7e1196 100644 (file)
@@ -2,7 +2,7 @@
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
 #define TYPE double
-#define ITYPE long
+#define ITYPE int64_t
 #include "struct_vect_7.c"
 
 /* { dg-final { scan-assembler {\tld2d\t{z[0-9]+.d - z[0-9]+.d}, p[0-7]/z, \[x[0-9]+\]\n} } } */
index 1674fae5792490d264af69fd9274d8ea0ff2b12a..ac8839cd5eb3bedd6a0942448c1fb320ba5faaf0 100644 (file)
@@ -2,5 +2,5 @@
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
 #define TYPE double
-#define ITYPE long
+#define ITYPE int64_t
 #include "struct_vect_7_run.c"
index 8c401329425519976c9eb428a0adcf3e50748b56..45644b67bda8955dc10cf0b7a8a7a8667c51b76a 100644 (file)
@@ -1,25 +1,25 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O2 -ftree-vectorize -msve-vector-bits=256 --save-temps" } */
 
-#define TYPE unsigned char
+#define TYPE uint8_t
 #define NAME(X) qi_##X
 #include "struct_vect_1.c"
 #undef NAME
 #undef TYPE
 
-#define TYPE unsigned short
+#define TYPE uint16_t
 #define NAME(X) hi_##X
 #include "struct_vect_1.c"
 #undef NAME
 #undef TYPE
 
-#define TYPE unsigned int
+#define TYPE uint32_t
 #define NAME(X) si_##X
 #include "struct_vect_1.c"
 #undef NAME
 #undef TYPE
 
-#define TYPE unsigned long
+#define TYPE uint64_t
 #define NAME(X) di_##X
 #include "struct_vect_1.c"
 #undef NAME
index 8b93b4cfbd30ffef94dd2fea69928ddca765118a..dc912e63c0452c228ddfb6000be71b90dd18a3b5 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize" } */
 
+#include <stdint.h>
+
 #define N 2000
 
 #define TEST_LOOP(NAME, TYPE)                                  \
@@ -12,8 +14,8 @@
   }
 
 #define TEST(NAME) \
-  TEST_LOOP (NAME##_i8, signed char) \
-  TEST_LOOP (NAME##_i16, unsigned short) \
+  TEST_LOOP (NAME##_i8, int8_t) \
+  TEST_LOOP (NAME##_i16, uint16_t) \
   TEST_LOOP (NAME##_f32, float) \
   TEST_LOOP (NAME##_f64, double)
 
index 6a67e1839a509ad459f13757d8bf949e3c4ae998..6568dc71cfe7af6c4bf9df22aa9f78095d229901 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, TYPE)                                  \
   void __attribute__ ((noinline, noclone))                     \
   NAME (TYPE *restrict dest, TYPE *restrict src, int n)                \
@@ -10,8 +12,8 @@
   }
 
 #define TEST(NAME) \
-  TEST_LOOP (NAME##_i8, signed char) \
-  TEST_LOOP (NAME##_i16, unsigned short) \
+  TEST_LOOP (NAME##_i8, int8_t) \
+  TEST_LOOP (NAME##_i16, uint16_t) \
   TEST_LOOP (NAME##_f32, float) \
   TEST_LOOP (NAME##_f64, double)
 
index 83745831c37666bb2e6905457cf67c2bda197207..e1715952d32bcc3890662241d8e69b4936105b96 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
-#define TYPE unsigned short
+#define TYPE uint16_t
 #include "struct_vect_1.c"
 
 /* { dg-final { scan-assembler {\tld2h\t{z[0-9]+.h - z[0-9]+.h}, p[0-7]/z, \[x[0-9]+\]\n} } } */
index 6d616ebb1d67807b47482fb200121166e8bbc4ee..6c3520c2f54a552fcf9254365f1a64d5a2954710 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize" } */
 
+#include <stdint.h>
+
 #define N 2000
 
 #define TEST_LOOP(NAME, TYPE)                                  \
@@ -12,8 +14,8 @@
   }
 
 #define TEST(NAME) \
-  TEST_LOOP (NAME##_i8, signed char) \
-  TEST_LOOP (NAME##_i16, unsigned short) \
+  TEST_LOOP (NAME##_i8, int8_t) \
+  TEST_LOOP (NAME##_i16, uint16_t) \
   TEST_LOOP (NAME##_f32, float) \
   TEST_LOOP (NAME##_f64, double)
 
index 4758c9d4ca41e6206541e7ffd13fad279864f213..4b2a5e463b1f691dcf6622c4e6ef004e76a47b5c 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, TYPE)                                  \
   void __attribute__ ((noinline, noclone))                     \
   NAME (TYPE *restrict dest, TYPE *restrict src, int n)                \
@@ -10,8 +12,8 @@
   }
 
 #define TEST(NAME) \
-  TEST_LOOP (NAME##_i8, signed char) \
-  TEST_LOOP (NAME##_i16, unsigned short) \
+  TEST_LOOP (NAME##_i8, int8_t) \
+  TEST_LOOP (NAME##_i16, uint16_t) \
   TEST_LOOP (NAME##_f32, float) \
   TEST_LOOP (NAME##_f64, double)
 
index 322b561d7ff4672bd9ee57fed50d2930c0de692b..b615360536175d720ebf39d190d9e2356f7c1810 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize" } */
 
+#include <stdint.h>
+
 #define N 2000
 
 #define TEST_LOOP(NAME, TYPE)                                  \
@@ -12,8 +14,8 @@
   }
 
 #define TEST(NAME) \
-  TEST_LOOP (NAME##_i8, signed char) \
-  TEST_LOOP (NAME##_i16, unsigned short) \
+  TEST_LOOP (NAME##_i8, int8_t) \
+  TEST_LOOP (NAME##_i16, uint16_t) \
   TEST_LOOP (NAME##_f32, float) \
   TEST_LOOP (NAME##_f64, double)
 
index 1698a2e25b42be5c96c75110b92dadbe3d9f7b1b..b529e0386f7b8f193f79d33eeea5088b8cf2de09 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -ftree-vectorize" } */
 
+#include <stdint.h>
+
 #define TEST_LOOP(NAME, TYPE)                                  \
   void __attribute__ ((noinline, noclone))                     \
   NAME (TYPE *restrict dest, TYPE *restrict src, int n)                \
@@ -10,8 +12,8 @@
   }
 
 #define TEST(NAME) \
-  TEST_LOOP (NAME##_i8, signed char) \
-  TEST_LOOP (NAME##_i16, unsigned short) \
+  TEST_LOOP (NAME##_i8, int8_t) \
+  TEST_LOOP (NAME##_i16, uint16_t) \
   TEST_LOOP (NAME##_f32, float) \
   TEST_LOOP (NAME##_f64, double)
 
index a9b8e1d8e725d9de80bded860f17e4309d0b879f..fad6162a47ce5aeaa8c099aef835f25dc1544341 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do run { target aarch64_sve_hw } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
-#define TYPE unsigned short
+#define TYPE uint16_t
 #include "struct_vect_1_run.c"
index a3e49a5fe06a65b880c21b64279c4a1225523cb0..6bda6136c992e9eff80d5a5da3f889dfb4694c0a 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
-#define TYPE unsigned int
+#define TYPE uint32_t
 #include "struct_vect_1.c"
 
 /* { dg-final { scan-assembler {\tld2w\t{z[0-9]+.s - z[0-9]+.s}, p[0-7]/z, \[x[0-9]+\]\n} } } */
index 03ffc7a2a172a33ac097208e8b5e67d3147d4b10..22d03f9495eda62a11a41cc61a7a71ae669c9955 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do run { target aarch64_sve_hw } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
-#define TYPE unsigned int
+#define TYPE uint32_t
 #include "struct_vect_1_run.c"
index fcd6476a71819cdeed161a62c6e0fc2447eb0235..4682d7e00b73ef3a1d088672830e5efb6ce4d2de 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
-#define TYPE unsigned long
+#define TYPE uint64_t
 #include "struct_vect_1.c"
 
 /* { dg-final { scan-assembler {\tld2d\t{z[0-9]+.d - z[0-9]+.d}, p[0-7]/z, \[x[0-9]+\]\n} } } */
index 15238b44b5cddea64057a615ded8678c93cbd1a7..9513940624056f0f5c43f5c0c9b3c4c605bc1def 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do run { target aarch64_sve_hw } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
-#define TYPE unsigned long
+#define TYPE uint64_t
 #include "struct_vect_1_run.c"
index 203a9786098e11eeefb6db2a961aa327991dd6a2..b741901499d739ced5ffd6a3aabab6787f16d469 100644 (file)
@@ -1,9 +1,11 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
+#include <stdint.h>
+
 #ifndef TYPE
-#define TYPE unsigned char
-#define ITYPE signed char
+#define TYPE uint8_t
+#define ITYPE int8_t
 #endif
 
 void __attribute__ ((noinline, noclone))
index 0905bfdaecdd6ff3293ad2e7b5b2bb7fb83748d8..07e389438e2d9e716488864726fe057b822e17a7 100644 (file)
@@ -1,8 +1,8 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
-#define TYPE unsigned short
-#define ITYPE short
+#define TYPE uint16_t
+#define ITYPE int16_t
 #include "struct_vect_7.c"
 
 /* { dg-final { scan-assembler {\tld2h\t{z[0-9]+.h - z[0-9]+.h}, p[0-7]/z, \[x[0-9]+\]\n} } } */
index 3e360d81451824aa335fef0e59f3114331b38468..c9569717b883daf2a7f9505be23b7bb3303b0e04 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do run { target aarch64_sve_hw } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
-#define TYPE unsigned short
-#define ITYPE short
+#define TYPE uint16_t
+#define ITYPE int16_t
 #include "struct_vect_7_run.c"
index b6bc5c0b6a2eed83930bd5b939eb5b457d8b7ad3..2fbcc9289ee004128c765c99e8388b1b9132518e 100644 (file)
@@ -1,8 +1,8 @@
 /* { dg-do assemble { target aarch64_asm_sve_ok } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
-#define TYPE unsigned int
-#define ITYPE int
+#define TYPE uint32_t
+#define ITYPE int32_t
 #include "struct_vect_7.c"
 
 /* { dg-final { scan-assembler {\tld2w\t{z[0-9]+.s - z[0-9]+.s}, p[0-7]/z, \[x[0-9]+\]\n} } } */
index 3588b26bd563a7ab54bb18bb6725fe1342886597..f8987725599a6ed7aacb0d133aaad34e7b7c614a 100644 (file)
@@ -1,6 +1,6 @@
 /* { dg-do run { target aarch64_sve_hw } } */
 /* { dg-options "-O2 -ftree-vectorize --save-temps" } */
 
-#define TYPE unsigned int
-#define ITYPE int
+#define TYPE uint32_t
+#define ITYPE int32_t
 #include "struct_vect_7_run.c"