gnu/gcc/ddacdb8b37ce268cac26e594e8f84b530b4f85b4 Simplify vec_duplicates of vec_duplicates
r17-899-g52d5a8870d2108 added a pattern with a nested vec_duplicate,
but I think those should be folded down to a single vec_duplicate.
The later:
if (VECTOR_MODE_P (mode)
&& vec_duplicate_p (op, &elt)
&& code != VEC_DUPLICATE)
handles only scalar elements, but this rule applies to vec_duplicates
of vectors as well.
A bit of scripting suggests that this was the only use of nested
vec_duplicates in the md files.
This is tested by gcc.target/aarch64/sve/vec_init_5.c.
gcc/
* simplify-rtx.cc (simplify_context::simplify_unary_operation_1):
Simplify vec_duplicates of vec_duplicates.
* config/aarch64/aarch64-sve.md
(*aarch64_vec_duplicate_subvector<vconsv><vconq><mode>): Remove
nested vec_duplicate.
2 files changed