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 <jiong.w...@arm.com> * 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};