ahatanak added a comment.

The test is failing because `float16x4_t` is defined as a vector of `__fp16` in 
arm_neon.h and Sema promotes vectors of `__fp16` to vectors of float  since 
`__fp16` is a storage-only type. The test used to pass because of a bug in 
function `isVector`, which was fixed in the commit that was reverted.

  typedef __fp16 float16_t;
  typedef __attribute__((neon_vector_type(4))) float16_t float16x4_t;

For example,  in `vneg_f16`, `__p0` is promoted to a vector of float before 
it's negated.

  __ai float16x4_t vneg_f16(float16x4_t __p0) {
    float16x4_t __ret;
    __ret = -__p0;
    return __ret;
  }

Is it correct to use `__fp16` for the element type of `float16x4_t`?


BRANCHES
  master

Users:
  ahatanak (Author)

https://reviews.llvm.org/rG825235c140e7



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [Diffusion] rG825235c140e7:... Akira Hatanaka via Phabricator via cfe-commits

Reply via email to