Re: [COMMITTED] [PING] [PATCH] [AArch64, NEON] More NEON intrinsics improvement
+__extension__ static __inline float32x2_t __attribute__ +((__always_inline__)) +vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c) { + return __builtin_aarch64_fmav2sf (-__b, __c, __a); } + +__extension__ static __inline float32x4_t __attribute__ +((__always_inline__)) +vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c) { + return __builtin_aarch64_fmav4sf (-__b, __c, __a); } + +__extension__ static __inline float64x2_t __attribute__ +((__always_inline__)) +vfmsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c) { + return __builtin_aarch64_fmav2df (-__b, __c, __a); } + + Thanks, the patch looks good. Just one comment: You could also add float32x2_t vfms_n_f32(float32x2_t a, float32x2_t b, float32_t n) and its Q-variant. You can, if you wish, deal with Tejas' comment with a follow on patch rather than re-spinning this one. Provided this patch has no regressions on a big endian and a little endian test run then you can commit it. Thanks /Marcus No regressions for aarch64_be-linux-gnu target. Committed as r218484. Will come up with a new patch to deal with Tejas' comment. Thanks. My validations of trunk show that your new tests are incorrect: none of them compiles because the hfloat64_t type isn't defined. Also, keep in mind that the tests in this directory are executed by the aarch32 target too. Christophe It seems that some code for the newly added testcases is missing when the patch is generated. I will fix them soon. Thanks for pointing this out.
Re: [COMMITTED] [PING] [PATCH] [AArch64, NEON] More NEON intrinsics improvement
On 9 December 2014 at 03:26, Yangfei (Felix) felix.y...@huawei.com wrote: On 5 December 2014 at 18:44, Tejas Belagod tejas.bela...@arm.com wrote: +__extension__ static __inline float32x2_t __attribute__ +((__always_inline__)) +vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c) { + return __builtin_aarch64_fmav2sf (-__b, __c, __a); } + +__extension__ static __inline float32x4_t __attribute__ +((__always_inline__)) +vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c) { + return __builtin_aarch64_fmav4sf (-__b, __c, __a); } + +__extension__ static __inline float64x2_t __attribute__ +((__always_inline__)) +vfmsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c) { + return __builtin_aarch64_fmav2df (-__b, __c, __a); } + + Thanks, the patch looks good. Just one comment: You could also add float32x2_t vfms_n_f32(float32x2_t a, float32x2_t b, float32_t n) and its Q-variant. You can, if you wish, deal with Tejas' comment with a follow on patch rather than re-spinning this one. Provided this patch has no regressions on a big endian and a little endian test run then you can commit it. Thanks /Marcus No regressions for aarch64_be-linux-gnu target. Committed as r218484. Will come up with a new patch to deal with Tejas' comment. Thanks. My validations of trunk show that your new tests are incorrect: none of them compiles because the hfloat64_t type isn't defined. Also, keep in mind that the tests in this directory are executed by the aarch32 target too. Christophe
[COMMITTED] [PING] [PATCH] [AArch64, NEON] More NEON intrinsics improvement
On 5 December 2014 at 18:44, Tejas Belagod tejas.bela...@arm.com wrote: +__extension__ static __inline float32x2_t __attribute__ +((__always_inline__)) +vfms_f32 (float32x2_t __a, float32x2_t __b, float32x2_t __c) { + return __builtin_aarch64_fmav2sf (-__b, __c, __a); } + +__extension__ static __inline float32x4_t __attribute__ +((__always_inline__)) +vfmsq_f32 (float32x4_t __a, float32x4_t __b, float32x4_t __c) { + return __builtin_aarch64_fmav4sf (-__b, __c, __a); } + +__extension__ static __inline float64x2_t __attribute__ +((__always_inline__)) +vfmsq_f64 (float64x2_t __a, float64x2_t __b, float64x2_t __c) { + return __builtin_aarch64_fmav2df (-__b, __c, __a); } + + Thanks, the patch looks good. Just one comment: You could also add float32x2_t vfms_n_f32(float32x2_t a, float32x2_t b, float32_t n) and its Q-variant. You can, if you wish, deal with Tejas' comment with a follow on patch rather than re-spinning this one. Provided this patch has no regressions on a big endian and a little endian test run then you can commit it. Thanks /Marcus No regressions for aarch64_be-linux-gnu target. Committed as r218484. Will come up with a new patch to deal with Tejas' comment. Thanks.