This series of patches adds foundational support for RISC-V
autovectorization support. These patches are based on the current
upstream rvv vector intrinsic support and is not a new implementation.
Most of the implementation consists of adding the new vector cost model,
the autovectorization patterns themselves and target hooks.This
implementation only provides support for integer addition and
subtraction as a proof of concept. This patch set should not be
construed to be feature complete. Based on conversations with the
community these patches are intended to lay the groundwork for feature
completion and collaboration within the RISC-V community.In version 1 of
this patch submission I neglected to indicate that these patches are
largely based off the work of Juzhe Zhong
(juzhe.zh...@rivai.ai<mailto:juzhe.zh...@rivai.ai>) of RiVAI. More
specifically the rvv-next branch
at:https://github.com/riscv-collab/riscv-gcc.git
<https://github.com/riscv-collab/riscv-gcc.git>is the foundation of this
patch set. I want to publicly apologize to Juzhe and RiVIA for not
attributing their work visibly and publicly.As discussed on this list,
if these patches are approved they will be merged into a
"auto-vectorization" branch once gcc-13 branches for release.There are
two known issues related to crashes (assert failures) associated with
tree vectorization; one of which I have sent a patch for and have
received feedback.
Changes in v2
- Updated ChangeLog entry to include RiVAI contributions
- Fixed ChangeLog email formatting
- Fixed gnu formatting issues in the code