]> gcc.gnu.org Git - gcc.git/commit
RISC-V: Handle undef for vector mask patterns
authorJu-Zhe Zhong <juzhe.zhong@rivai.ai>
Mon, 13 Mar 2023 07:52:01 +0000 (15:52 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Fri, 17 Mar 2023 09:49:05 +0000 (17:49 +0800)
commitc413abed869e7e34a86855a015413418f3c6b595
tree6c044aa31e11c3c95ddcccf5f1c59b1615a56c84
parent02880e7803b19c357718abd2f0d567b4a761f318
RISC-V: Handle undef for vector mask patterns

Add new instruction pattern for setting vector mask to undefine value,
also merge undef and non-undef ternary operation pattern like MAC operations to
single pattern.

gcc/ChangeLog:

* config/riscv/riscv-v.cc (legitimize_move): Allow undef value
as legitimate value.
* config/riscv/riscv-vector-builtins.cc
(function_expander::use_ternop_insn): Fix bugs of ternary intrinsic.
(function_expander::use_widen_ternop_insn): Ditto.
* config/riscv/vector.md (@vundefined<mode>): New pattern.
(pred_mul_<optab><mode>_undef_merge): Remove.
(*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
(*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
(pred_neg_mul_<optab><mode>_undef_merge): Ditto.
(*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/binop_vv_constraint-4.c: Adapt the test.
* gcc.target/riscv/rvv/base/binop_vv_constraint-6.c: Ditto.
* gcc.target/riscv/rvv/base/binop_vx_constraint-127.c: Ditto.
* g++.target/riscv/rvv/base/bug-1.C: New test.
* gcc.target/riscv/rvv/base/bug-2.c: New test.

Signed-off-by: Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
Co-authored-by: kito-cheng <kito.cheng@sifive.com>
gcc/config/riscv/riscv-v.cc
gcc/config/riscv/riscv-vector-builtins.cc
gcc/config/riscv/vector.md
gcc/testsuite/g++.target/riscv/rvv/base/bug-1.C [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-4.c
gcc/testsuite/gcc.target/riscv/rvv/base/binop_vv_constraint-6.c
gcc/testsuite/gcc.target/riscv/rvv/base/binop_vx_constraint-127.c
gcc/testsuite/gcc.target/riscv/rvv/base/bug-2.c [new file with mode: 0644]
This page took 0.064062 seconds and 6 git commands to generate.