Re: [PATCH 01/07] RISC-V: Add auto-vectorization support

2023-03-03 Thread Kito Cheng via Gcc-patches
Hi Michael Collison: It's REALLY NOT OK that you didn't mention RiVAI and Ju-Zhe in either changelog or add he as co-author, apparently you HAVE references and even copy his code from https://github.com/riscv-collab/riscv-gcc/tree/riscv-gcc-rvv-next

RISC-V: Add auto-vectorization support

2023-03-03 Thread juzhe.zhong
>> This series of patches adds foundational support for RISC-V >> autovectorization. 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 >> autovectorizat

Re: [PATCH 01/07] RISC-V: Add auto-vectorization support

2023-03-02 Thread Xi Ruoyao via Gcc-patches
Please don't use the same title for all the patches. This will puzzle people running "git log" once they are committed. And when you send 01-07, use "reply" instead of "new" so they will show up in the correct location in a mail client. Or use git send-email which is much eaiser to use. On Thu,

[PATCH 07/07] RISC-V: Add auto-vectorization support

2023-03-02 Thread Michael Collison
This patch adds tests for autovectorization of integer add and subtract. gcc/testsuite/ChangeLog:     * gcc.target/riscv/rvv/autovec: New directory     for autovectorization tests.     * gcc.target/riscv/rvv/autovec/loop-add-rv32.c: New     test to verify code generation of vector add on rv32.  

[PATCH 06/07] RISC-V: Add auto-vectorization support

2023-03-02 Thread Michael Collison
This patch adds patterns that provide basic autovectorization support for integer adds and subtracts. gcc/ChangeLog:     * config/riscv/riscv.md (riscv_classify_vlmul_field):     New external declaration.     (riscv_vector_preferred_simd_mode): Include     vector-iterators.md.     * config/risc

[PATCH 05/07] RISC-V: Add auto-vectorization support

2023-03-02 Thread Michael Collison
This patch adds support for registering target hooks for basic autovectorization support as well as basic tuning information for the vector extension. gcc/ChangeLog:     * config/riscv/riscv-cores.def (RISCV_TUNE):     Add VECTOR_TUNE_INFO parameter and     * common/config/riscv/riscv-common.c

[PATCH 04/07] RISC-V: Add auto-vectorization support

2023-03-02 Thread Michael Collison
This patch adds support for functions used in implementing various portions of autovectorization support. gcc/ChangeLog:     * config/riscv/riscv-v.cc (riscv_classify_vlmul_field):     New function.     (riscv_vector_preferred_simd_mode): Ditto.     (get_mask_policy_no_pred): Ditto.     (get_ta

[PATCH 03/07] RISC-V: Add auto-vectorization support

2023-03-02 Thread Michael Collison
This patches adds two new files to support the vector cost model and modifies the Makefile fragment to build the cost model c++ file. Due to the large size this patch is provided as an attachment. gcc/ChangeLog:     * gcc/config.gcc (riscv-vector-cost.o): New object file to build.     * config

[PATCH 02/07] RISC-V: Add auto-vectorization support

2023-03-02 Thread Michael Collison
This patch adds foundational support by making two functions that handle predication policies visibly globally. gcc/ChangeLog:     * config/riscv/riscv-vector-builtins.cc (get_tail_policy_for_pred):     Remove static declaration to to make externally visible.     (get_mask_policy_for_pred): Dit

[PATCH 01/07] RISC-V: Add auto-vectorization support

2023-03-02 Thread Michael Collison
This patch adds foundational support in the form of: 1. New predicates 2. New function prototypes 3. Exporting emit_vlmax_vsetvl to global scope 4. Add a new command line option -mriscv_vector_lmul gcc/ChangeLog:     * config/riscv/riscv-protos.h (riscv_classify_vlmul_field):     New externa

[PATCH 00/07] RISC-V: Add auto-vectorization support

2023-03-02 Thread Michael Collison
This series of patches adds foundational support for RISC-V autovectorization. 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 th