https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106476
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Version|unknown |13.0 CC|rguenther at suse dot de |rguenth at gcc dot gnu.org, | |rsandifo at gcc dot gnu.org Keywords| |ice-on-valid-code --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- I think EXTRACT_LAST_REDUCTION cannot simply do /* Instead of doing ~x ? y : z do x ? z : y. */ vec_compare = new_temp; std::swap (vec_then_clause, vec_else_clause); So either the fix could be to not support bitop2 == BIT_NOT_EXPR for EXTRACT_LAST_REDUCTION or we have to perform the BIT_NOT_EXPR as vector operation. Richard?