mbox series

[v4,0/8] Add maskload else operand.

Message ID 20241107175753.322338-1-rdapp.gcc@gmail.com
Headers show
Series Add maskload else operand. | expand

Message

Robin Dapp Nov. 7, 2024, 5:57 p.m. UTC
From: Robin Dapp <rdapp@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