public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 0/4] Add conditional autovec convert patterns
@ 2023-09-01  5:45 Lehua Ding
  2023-09-01  5:45 ` [PATCH 1/4] RISC-V: Adjust expand_cond_len_{unary,binop,op} api Lehua Ding
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Lehua Ding @ 2023-09-01  5:45 UTC (permalink / raw)
  To: gcc-patches, rdapp.gcc; +Cc: juzhe.zhong, kito.cheng, palmer, jeffreyalaw

Hi,

these patchs support combining convert_op + vcond_mask to convert_op with mask
operand. The method is to keep the vector convert pattern simple (by changing
define_expand to define_insn_and_split) until the combine pass and introduce
the corresponding pattern to match the pattern after the combine.

Best,
Lehua

Lehua Ding (4):
  RISC-V: Adjust expand_cond_len_{unary,binop,op} api
  RISC-V: Add conditional autovec convert(INT<->INT) patterns
  RISC-V: Add conditional autovec convert(FP<->FP) patterns
  RISC-V: Add conditional autovec convert(INT<->FP) patterns

 gcc/config/riscv/autovec-opt.md               | 236 ++++++++++++++++++
 gcc/config/riscv/autovec.md                   | 110 ++++----
 gcc/config/riscv/riscv-protos.h               |   4 +-
 gcc/config/riscv/riscv-v.cc                   |  39 +--
 .../riscv/rvv/autovec/binop/narrow-3.c        |   2 +-
 .../autovec/cond/cond_convert_float2float-1.h |  29 +++
 .../autovec/cond/cond_convert_float2float-2.h |  28 +++
 .../cond/cond_convert_float2float-rv32-1.c    |   9 +
 .../cond/cond_convert_float2float-rv32-2.c    |   9 +
 .../cond/cond_convert_float2float-rv64-1.c    |   9 +
 .../cond/cond_convert_float2float-rv64-2.c    |   9 +
 .../cond/cond_convert_float2float_run-1.c     |  31 +++
 .../cond/cond_convert_float2float_run-2.c     |  30 +++
 .../autovec/cond/cond_convert_float2int-1.h   |  51 ++++
 .../autovec/cond/cond_convert_float2int-2.h   |  50 ++++
 .../cond/cond_convert_float2int-rv32-1.c      |  15 ++
 .../cond/cond_convert_float2int-rv32-2.c      |  15 ++
 .../cond/cond_convert_float2int-rv64-1.c      |  15 ++
 .../cond/cond_convert_float2int-rv64-2.c      |  15 ++
 .../cond/cond_convert_float2int_run-1.c       |  32 +++
 .../cond/cond_convert_float2int_run-2.c       |  31 +++
 .../autovec/cond/cond_convert_int2float-1.h   |  45 ++++
 .../autovec/cond/cond_convert_int2float-2.h   |  44 ++++
 .../cond/cond_convert_int2float-rv32-1.c      |  13 +
 .../cond/cond_convert_int2float-rv32-2.c      |  13 +
 .../cond/cond_convert_int2float-rv64-1.c      |  13 +
 .../cond/cond_convert_int2float-rv64-2.c      |  13 +
 .../cond/cond_convert_int2float_run-1.c       |  32 +++
 .../cond/cond_convert_int2float_run-2.c       |  31 +++
 .../rvv/autovec/cond/cond_convert_int2int-1.h |  47 ++++
 .../rvv/autovec/cond/cond_convert_int2int-2.h |  46 ++++
 .../cond/cond_convert_int2int-rv32-1.c        |  17 ++
 .../cond/cond_convert_int2int-rv32-2.c        |  16 ++
 .../cond/cond_convert_int2int-rv64-1.c        |  16 ++
 .../cond/cond_convert_int2int-rv64-2.c        |  16 ++
 .../autovec/cond/cond_convert_int2int_run-1.c |  31 +++
 .../autovec/cond/cond_convert_int2int_run-2.c |  30 +++
 37 files changed, 1124 insertions(+), 68 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-1.h
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-2.h
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-rv32-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-rv32-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-rv64-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float-rv64-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float_run-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2float_run-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-1.h
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-2.h
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-rv32-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-rv32-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-rv64-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int-rv64-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_run-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_float2int_run-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-1.h
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-2.h
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-rv32-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-rv32-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-rv64-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float-rv64-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float_run-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2float_run-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-1.h
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-2.h
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv32-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv32-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv64-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int-rv64-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int_run-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_convert_int2int_run-2.c

-- 
2.36.3


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-09-01 11:34 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-01  5:45 [PATCH 0/4] Add conditional autovec convert patterns Lehua Ding
2023-09-01  5:45 ` [PATCH 1/4] RISC-V: Adjust expand_cond_len_{unary,binop,op} api Lehua Ding
2023-09-01 10:00   ` Robin Dapp
2023-09-01 11:34     ` Lehua Ding
2023-09-01  5:45 ` [PATCH 2/4] RISC-V: Add conditional autovec convert(INT<->INT) patterns Lehua Ding
2023-09-01 10:05   ` Robin Dapp
2023-09-01  5:45 ` [PATCH 3/4] RISC-V: Add conditional autovec convert(FP<->FP) patterns Lehua Ding
2023-09-01 10:15   ` Robin Dapp
2023-09-01  5:45 ` [PATCH 4/4] RISC-V: Add conditional autovec convert(INT<->FP) patterns Lehua Ding
2023-09-01 10:27   ` Robin Dapp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).