From: Robin Dapp <rd...@ventanamicro.com> Hi,
changes from v3: - Check if we support vec_cond_expr for the selected mode in case we need to set the inactive elements to zero. - Add another undef operand to gcn. - Remove unnecessary changes in i386 patch. Robin Dapp (8): docs: Document maskload else operand and behavior. ifn: Add else-operand handling. tree-ifcvt: Add zero maskload else value. vect: Add maskload else value support. aarch64: Add masked-load else operands. gcn: Add else operand to masked loads. i386: Add zero maskload else operand. RISC-V: Add else operand to masked loads [PR115336]. .../aarch64/aarch64-sve-builtins-base.cc | 24 +- gcc/config/aarch64/aarch64-sve-builtins.cc | 12 +- gcc/config/aarch64/aarch64-sve-builtins.h | 2 +- gcc/config/aarch64/aarch64-sve.md | 52 ++- gcc/config/aarch64/aarch64-sve2.md | 3 +- gcc/config/aarch64/iterators.md | 4 - gcc/config/aarch64/predicates.md | 4 + gcc/config/gcn/gcn-valu.md | 23 +- gcc/config/gcn/predicates.md | 2 + gcc/config/i386/sse.md | 21 +- gcc/config/riscv/autovec.md | 50 +-- gcc/config/riscv/predicates.md | 3 + gcc/config/riscv/riscv-v.cc | 30 +- gcc/doc/md.texi | 63 ++-- gcc/internal-fn.cc | 148 ++++++-- gcc/internal-fn.h | 13 +- gcc/optabs-query.cc | 70 +++- gcc/optabs-query.h | 3 +- gcc/optabs-tree.cc | 66 +++- gcc/optabs-tree.h | 8 +- .../gcc.target/riscv/rvv/autovec/pr115336.c | 20 ++ .../gcc.target/riscv/rvv/autovec/pr116059.c | 15 + gcc/tree-if-conv.cc | 12 +- gcc/tree-vect-data-refs.cc | 74 ++-- gcc/tree-vect-patterns.cc | 12 +- gcc/tree-vect-slp.cc | 25 +- gcc/tree-vect-stmts.cc | 326 +++++++++++++++--- gcc/tree-vectorizer.h | 10 +- 28 files changed, 854 insertions(+), 241 deletions(-) create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/pr115336.c create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/pr116059.c -- 2.47.0