> Yeah. I think Robin may need this : > > TREE_CODE (else_val) == SSA_NAAME > && SSA_NAME_IS_DEFAULT_DEF (else_val) > && VAR_P (SSA_NAME_VAR (else_val)) > > to differentiate whether the ELSE VALUE is uninitialized SSA or not.
I think we are talking about a different simplification now. This one we could still add as a match.pd pattern simplifying every conditional operation with an undefined else value. I just re-checked - without my pattern that turns VCOND_MASK_LEN into VEC_COND there is only one additional fail. (cond_widen_reduc-2.c where we scan for vfwreduc). I guess I can just change the combine pattern to combine cond as well as length masking (merge + if_then_else) when the else value is similar in both. Then we would avoid my dubious simplification and still get rid of the execution failures. Surely Richard is right in that we cannot "unconditionally" fold away the length but my naive hunch is that we currently never create situations where this really leads to errors. Regards Robin