aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJuzhe-Zhong <juzhe.zhong@rivai.ai>2023-09-22 16:28:46 +0800
committerLehua Ding <lehua.ding@rivai.ai>2023-09-22 16:32:36 +0800
commit6eb55cab2956d130d2e18c895e4f67fc9381199e (patch)
tree7a3f435f9232bb09f2f036427bedb214c4d7e736 /gcc
parent8a87ba0b4fe72acbf34e48898652d0f78b9e235e (diff)
downloadgcc-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.cc4
-rw-r--r--gcc/config/riscv/vector.md2
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")))]