On 18/05/16 09:25, Christophe Lyon wrote:
Unfortunately, the guard is not correct :(
The float64_t type is not available on arm, so the new
declarations/definitions in arm-neon-ref.h
need a guard.
Since this patch was checked-in, all the advsimd intrinsics tests fail
to compile
on arm:
In file included from
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vaba.c:2:0:
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h:139:22:
error: unknown type name 'float64_t'
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h:51:35:
note: in definition of macro 'VECT_VAR_DECL'
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h:139:8:
note: in expansion of macro 'ARRAY'
Hi Christophe
sorry for the breakage.
I have run aarch64 regression before commit, I will keep in mind to run arm
also next time as this directory is shared.
I committed the following fix, r236370, as obivious after retest of
advsimd-intrinsics.exp
for both aarch64 and arm OK.
gcc/testsuite/
2016-05-18 Jiong Wang <[email protected]>
* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h: Guard float64_t
with __aarch64__.
* gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c: Guard variable
declaration under __aarch64__ and __ARM_FEATURE_FMA.
diff --git a/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h b/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
index cf90825..dde0e45 100644
--- a/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
+++ b/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
@@ -136,8 +136,10 @@ static ARRAY(result, poly, 16, 4);
#if defined (__ARM_FP16_FORMAT_IEEE) || defined (__ARM_FP16_FORMAT_ALTERNATIVE)
static ARRAY(result, float, 16, 4);
#endif
-static ARRAY(result, float, 64, 1);
static ARRAY(result, float, 32, 2);
+#ifdef __aarch64__
+static ARRAY(result, float, 64, 1);
+#endif
static ARRAY(result, int, 8, 16);
static ARRAY(result, int, 16, 8);
static ARRAY(result, int, 32, 4);
diff --git a/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c b/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c
index 2622376..efa9b5f 100644
--- a/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c
+++ b/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c
@@ -2,6 +2,8 @@
#include "arm-neon-ref.h"
#include "compute-ref-data.h"
+#if defined(__aarch64__) && defined(__ARM_FEATURE_FMA)
+
#define A0 123.4f
#define A1 -3.8f
#define A2 -29.4f
@@ -56,8 +58,6 @@ float64_t delem1 = DE1;
float64_t delem2 = DE2;
float64_t delem3 = DE3;
-#if defined(__aarch64__) && defined(__ARM_FEATURE_FMA)
-
/* Expected results for vfms_n. */
VECT_VAR_DECL(expectedfms0, float, 32, 2) [] = {A0 + -B0 * E0, A1 + -B1 * E0};