https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114070
--- Comment #8 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>: https://gcc.gnu.org/g:af66ad89e8169f44db723813662917cf4cbb78fc commit r14-9173-gaf66ad89e8169f44db723813662917cf4cbb78fc Author: Richard Biener <rguent...@suse.de> Date: Fri Feb 23 16:06:05 2024 +0100 middle-end/114070 - folding breaking VEC_COND expansion The following properly guards the simplifications that move operations into VEC_CONDs, in particular when that changes the type constraints on this operation. This needed a genmatch fix which was recording spurious implicit fors when tcc_comparison is used in a C expression. PR middle-end/114070 * genmatch.cc (parser::parse_c_expr): Do not record operand lists but only mark operators used. * match.pd ((c ? a : b) op (c ? d : e) --> c ? (a op d) : (b op e)): Properly guard the case of tcc_comparison changing the VEC_COND value operand type. * gcc.dg/torture/pr114070.c: New testcase.