-
- Downloads
aarch64: Make existing V2HF be usable.
The backend has an existing V2HFmode that is used by pairwise operations. This mode was however never made fully functional. Amongst other things it was never declared as a vector type which made it unusable from the mid-end. It's also lacking an implementation for load/stores so reload ICEs if this mode is every used. This finishes the implementation by providing the above. Note that I have created a new iterator VHSDF_P instead of extending VHSDF because the previous iterator is used in far more things than just load/stores. It's also used for instance in intrinsics and extending this would force me to provide support for mangling the type while we never expose it through intrinsics. gcc/ChangeLog: * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New. (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>, aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>, @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>, reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>, aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>, vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF. (aarch64_simd_dupv2hf): New. * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Add E_V2HFmode. * config/aarch64/iterators.md (VHSDF_P): New. (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL, Vel, q, vp): Add V2HF. * config/arm/types.md (neon_fp_reduc_add_h): New. gcc/testsuite/ChangeLog: * gcc.target/aarch64/sve/slp_1.c: Update testcase.
Showing
- gcc/config/aarch64/aarch64-simd.md 60 additions, 28 deletionsgcc/config/aarch64/aarch64-simd.md
- gcc/config/aarch64/aarch64.cc 1 addition, 0 deletionsgcc/config/aarch64/aarch64.cc
- gcc/config/aarch64/iterators.md 21 additions, 9 deletionsgcc/config/aarch64/iterators.md
- gcc/config/arm/types.md 4 additions, 2 deletionsgcc/config/arm/types.md
- gcc/testsuite/gcc.target/aarch64/sve/slp_1.c 4 additions, 6 deletionsgcc/testsuite/gcc.target/aarch64/sve/slp_1.c
Loading
Please register or sign in to comment