Thanks for fixing this. Prathamesh Kulkarni <prathamesh.kulka...@linaro.org> writes: > diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c > index 89a46a933fa..79bd0cfbd28 100644 > --- a/gcc/simplify-rtx.c > +++ b/gcc/simplify-rtx.c > @@ -6697,6 +6697,19 @@ simplify_subreg (machine_mode outermode, rtx op, > } > } > > + /* If op is a vector comparison operator, rewrite it in a new mode. > + This probably won't match, but may allow further simplifications. > + Also check if number of elements and size of each element > + match for outermode and innermode. */ > +
Excess blank line after the comment. IMO the second part of the comment reads too much like an afterthought. How about: /* If OP is a vector comparison and the subreg is not changing the number of elements or the size of the elements, change the result of the comparison to the new mode. */ > + if (COMPARISON_P (op) > + && VECTOR_MODE_P (outermode) > + && VECTOR_MODE_P (innermode) > + && (known_eq (GET_MODE_NUNITS (outermode), GET_MODE_NUNITS > (innermode))) > + && (known_eq (GET_MODE_UNIT_SIZE (outermode), > + GET_MODE_UNIT_SIZE (innermode)))) Redundant brackets around the known_eq calls. > + return gen_rtx_fmt_ee (GET_CODE (op), outermode, XEXP (op, 0), XEXP (op, > 1)); This should use simplify_gen_relational, so that we try to simplify the new expression. Richard