Closed eopXD closed 10 months ago
@topperc recently noticed that return value for the vcpop
and vfirst
intrinsics had been switched from unsigned long
and long
to unsigned int
and int
, while the implementations in upstream LLVM still have the former types. This change appears to have been made in this PR, with the following justification:
Replace float16_t with _Float16 that is now supported by both LLVM and GCC. This keeps us away from the need to define our own type. (Resolves https://github.com/riscv-non-isa/rvv-intrinsic-doc/issues/31, and alongside also resolves https://github.com/riscv-non-isa/rvv-intrinsic-doc/issues/166.
FP16 is not relevant to those two issues, and the change made in this PR was not the agreed-upon solution to those issues. (I don't know if we had even come to a consensus: I had argued for a different solution altogether.)
While cleaning up the issue threads, I found some more details we need to have in the specification.
This PR:
=
) in the C language" under the programming note section of the specfloat16_t
with_Float16
that is now supported by both LLVM and GCC. This keeps us away from the need to define our own type. (Resolves #31, and alongside also resolves #166.vlenb
utility functionnew_vl
argument in fault-only-first load intrinsics