This patch fixes a bug where the mode iterator for mve_vdup<mode> should be MVE_VLD_ST instead of MVE_vecs: V2DI and V2DF (thus vdup.64) are not supported by MVE.
2024-07-02 Jolen Li <jolen...@arm.com> Christophe Lyon <christophe.l...@arm.com> gcc/ * config/arm/mve.md (mve_vdup<mode>): Fix mode iterator. --- gcc/config/arm/mve.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/config/arm/mve.md b/gcc/config/arm/mve.md index 4b4d6298ffb..afe5fba698c 100644 --- a/gcc/config/arm/mve.md +++ b/gcc/config/arm/mve.md @@ -95,8 +95,8 @@ (define_insn "mve_mov<mode>" (set_attr "neg_pool_range" "*,*,*,*,996,*,*,*")]) (define_insn "mve_vdup<mode>" - [(set (match_operand:MVE_vecs 0 "s_register_operand" "=w") - (vec_duplicate:MVE_vecs + [(set (match_operand:MVE_VLD_ST 0 "s_register_operand" "=w") + (vec_duplicate:MVE_VLD_ST (match_operand:<V_elem> 1 "s_register_operand" "r")))] "TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT" "vdup.<V_sz_elem>\t%q0, %1" -- 2.34.1