diff options
author | Juzhe-Zhong <juzhe.zhong@rivai.ai> | 2023-09-22 16:28:46 +0800 |
---|---|---|
committer | Lehua Ding <lehua.ding@rivai.ai> | 2023-09-22 16:32:36 +0800 |
commit | 6eb55cab2956d130d2e18c895e4f67fc9381199e (patch) | |
tree | 7a3f435f9232bb09f2f036427bedb214c4d7e736 /gcc | |
parent | 8a87ba0b4fe72acbf34e48898652d0f78b9e235e (diff) | |
download | gcc-6eb55cab2956d130d2e18c895e4f67fc9381199e.zip gcc-6eb55cab2956d130d2e18c895e4f67fc9381199e.tar.gz gcc-6eb55cab2956d130d2e18c895e4f67fc9381199e.tar.bz2 |
RISC-V: Remove @ of vec_duplicate pattern
It's obvious the @ of vec_duplicate pattern is duplicate.
Regression passed.
Committed.
gcc/ChangeLog:
* config/riscv/riscv-v.cc (gen_const_vector_dup): Use global expand function.
* config/riscv/vector.md (@vec_duplicate<mode>): Remove @.
(vec_duplicate<mode>): Ditto.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/riscv/riscv-v.cc | 4 | ||||
-rw-r--r-- | gcc/config/riscv/vector.md | 2 |
2 files changed, 2 insertions, 4 deletions
diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc index a3672ba..4d0e1d8 100644 --- a/gcc/config/riscv/riscv-v.cc +++ b/gcc/config/riscv/riscv-v.cc @@ -696,9 +696,7 @@ gen_const_vector_dup (machine_mode mode, poly_int64 val) { /* When VAL is const_poly_int value, we need to explicitly broadcast it into a vector using RVV broadcast instruction. */ - rtx dup = gen_reg_rtx (mode); - emit_insn (gen_vec_duplicate (mode, dup, c)); - return dup; + return expand_vector_broadcast (mode, c); } return gen_const_vec_duplicate (mode, c); } diff --git a/gcc/config/riscv/vector.md b/gcc/config/riscv/vector.md index 73f90de..d5300a3 100644 --- a/gcc/config/riscv/vector.md +++ b/gcc/config/riscv/vector.md @@ -1371,7 +1371,7 @@ ;; This pattern only handles duplicates of non-constant inputs. ;; Constant vectors go through the movm pattern instead. ;; So "direct_broadcast_operand" can only be mem or reg, no CONSTANT. -(define_insn_and_split "@vec_duplicate<mode>" +(define_insn_and_split "vec_duplicate<mode>" [(set (match_operand:V_VLS 0 "register_operand") (vec_duplicate:V_VLS (match_operand:<VEL> 1 "direct_broadcast_operand")))] |