aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorTamar Christina <tamar.christina@arm.com>2022-12-12 15:15:07 +0000
committerTamar Christina <tamar.christina@arm.com>2022-12-12 15:15:07 +0000
commit2cba118e538ba0b7582af7f9fb5ba2dfbb772f8e (patch)
treef688319ff5d5d4249083adc46bfef7c2707b9006 /gcc/tree.h
parentdc94eaab008165698a1161c757db96fc701103a2 (diff)
downloadgcc-2cba118e538ba0b7582af7f9fb5ba2dfbb772f8e.zip
gcc-2cba118e538ba0b7582af7f9fb5ba2dfbb772f8e.tar.gz
gcc-2cba118e538ba0b7582af7f9fb5ba2dfbb772f8e.tar.bz2
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.
Diffstat (limited to 'gcc/tree.h')
0 files changed, 0 insertions, 0 deletions