https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122474
Tamar Christina <tnfchris at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |tnfchris at gcc dot
gnu.org
--- Comment #7 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
Mine I guess,
Part of the problem here is that unless I'm missing something,
the checks in tree-vect-loop.cc that do operand_equal_p (neutral_op,
initial_values[0]) somewhat bogus wrt to boolean reductions?
For instance vect_transform_cycle_phi seeds them with vect_phi_initial_value,
but a boolean is 0/1, however neutral_op_for_reduction returns the neutral mask
value, e.g. -1. so 1 and -1 never match even though the are both representing
"true"
So the conditions confuse me somewhat.
I do have a patch undergoing testing for the bug I introduced, but I think the
operand_equal_p compares bail out erroneously for booleans.