Re: [COMMITTED] [PING] [PATCH] [AArch64, NEON] More NEON intrinsics improvement

2014-12-10 Thread Yangfei (Felix)
   +__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

2014-12-09 Thread Christophe Lyon
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

2014-12-08 Thread Yangfei (Felix)
 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.