>       PR target/100711
>       * simplify-rtx.c (simplify_unary_operation_1):
>       Simplify (vec_duplicate (not op)) to (not (vec_duplicate op)).

This is not a simplification.  If we want to do this we need to document
this canonicalisation (in md.texi, "Insn Canonicalizations").

> +    /* Prefer (not (vec_duplicate (nonimmedaite_operand)))
> +       to (vec_duplicate (not (nonimmedaite_operand))).  */

What Andrew said here (also, it's misspelled :-) )

> +    case VEC_DUPLICATE:
> +      if (GET_CODE (op) == NOT)
> +     return gen_rtx_NOT (mode, gen_rtx_VEC_DUPLICATE (mode, XEXP (op, 0)));
> +      break;

If it isn't a canonicalisation you need to simplify the result, and then
only do it if it does in fact simplify.  You risk "simplification" loops
if you don't.


Segher

Reply via email to