[PATCH] aarch64: Add CPU-specific SVE vector costs struct
Kyrylo Tkachov
Kyrylo.Tkachov@arm.com
Wed Dec 9 14:06:32 GMT 2020
Hi all,
This patch extends the backend vector costs structures to allow for separate Advanced SIMD and SVE
costs. The fields in the current cpu_vector_costs that would vary between the ISAs are moved into
a simd_vec_cost struct and we have two typedefs of it: advsimd_vec_cost and sve_vec_costs.
If, in the future, SVE needs some extra fields it could inherit from simd_vec_cost.
The CPU vector cost tables in aarch64.c are updated for the struct changes.
aarch64_builtin_vectorization_cost is updated to select either the Advanced SIMD or SVE costs field
depending on the mode and field availability.
No change in codegen is intended with this patch.
Bootstrapped and tested on aarch64-none-linux-gnu.
Pushing to the mainline.
Thanks,
Kyrill
gcc/
* config/aarch64/aarch64-protos.h (cpu_vector_cost): Move simd fields to...
(simd_vec_cost): ... Here. Define.
(advsimd_vec_cost): Define.
(sve_vec_cost): Define.
* config/aarch64/aarch64.c (generic_advsimd_vector_cost): Define.
(generic_sve_vector_cost): Likewise.
(generic_vector_cost): Update.
(qdf24xx_advsimd_vector_cost): Define.
(qdf24xx_vector_cost): Update.
(thunderx_advsimd_vector_cost): Define.
(thunderx_vector_cost): Update.
(tsv110_advsimd_vector_cost): Define.
(tsv110_vector_cost): Likewise.
(cortexa57_advsimd_vector_cost): Define.
(cortexa57_vector_cost): Update.
(exynosm1_advsimd_vector_cost): Define.
(exynosm1_vector_cost): Update.
(xgene1_advsimd_vector_cost): Define.
(xgene1_vector_cost): Update.
(thunderx2t99_advsimd_vector_cost): Define.
(thunderx2t99_vector_cost): Update.
(thunderx3t110_advsimd_vector_cost): Define.
(thunderx3t110_vector_cost): Update.
(aarch64_builtin_vectorization_cost): Handle sve and advsimd vector cost
fields.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sve-cost.patch
Type: application/octet-stream
Size: 15026 bytes
Desc: sve-cost.patch
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20201209/3deacb73/attachment-0001.obj>
More information about the Gcc-patches
mailing list