Hi,
Some of the narrowing/widening FP converts were missing from SVE. I fixed most
of them, so they can be vectorized. The ones missing are int64->fp16 and
fp16->int64.
I extended the tests to cover the cases that were missing.
I validated the patch with self-checking and running the new SVE tests on an
SVE emulator.
Alejandro
gcc/Changelog:
2019-02-25 Alejandro Martinez
* config/aarch64/aarch64-sve.md
(aarch64_sve__vnx8hf2,
aarch64_sve__vnx4sf2): Renamed FP to int
patterns.
(vec_unpack_fix_trunc__,
vec_pack_float_): New unpack/pack expanders.
* config/aarch64/iterators.md (SVE_HSDI): Fix cut-&-paste of SVE_BHSI.
(VWIDEINT): New iterator.
(VwideInt): Likewise.
gcc/testsuite/Changelog:
2019-02-25 Alejandro Martinez
* gcc.target/aarch64/sve/fcvt_1.c: New test for fp to fp convert.
* gcc.target/aarch64/sve/fcvt_1_run.c: Likewise.
* gcc.target/aarch64/sve/cvtf_signed_1.c Improved test to cover
widening and narrowing cases.
* gcc.target/aarch64/sve/cvtf_signed_1_run.c: Likewise.
* gcc.target/aarch64/sve/cvtf_unsigned_1.c: Likewise.
* gcc.target/aarch64/sve/cvtf_unsigned_1_run.c: Likewise.
* gcc.target/aarch64/sve/fcvtz_signed_1.c: Likewise.
* gcc.target/aarch64/sve/fcvtz_signed_1_run.c: Likewise.
* gcc.target/aarch64/sve/fcvtz_unsigned_1.c: Likewise.
* gcc.target/aarch64/sve/fcvtz_unsigned_1_run.c: Likewise.
cvt_v4.patch
Description: cvt_v4.patch