> 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