The fix for PR82397 causes a few missed equalities and thus different vectorizer group access detections because operand_equal_p was handling commutated operands and data_ref_compare_tree does not.
Created attachment 42311 [details] failed patch attempt I tried to address this in split_constant_offset, better canonicalizing trees there. While it handles the case in the original PR it regresses some others, for example gcc.dg/vect/pr69783.c because it canonicalizes before folding, possibly messing up canonicalization that happened to be ok before. So the solution is probably to add a canonicalize_tree function that does just this (without folding, just swapping operands in-place -- requiring tree unsharing before if it is possibly shared). Ideally we'd have a expr hash on each tree_exp that swap_tree_operands () could use so we'd properly canonicalize already during folding (conveniently tree_exp _does_ have 4 bytes of unused padding...). buildN could compute this for us as well. Anyway, a separate function looks more feasible at the moment, we can call that from dr_innermost analysis (there's already some kind of weird canonicalization function).
GCC 8.1 has been released.
GCC 8.2 has been released.
GCC 8.3 has been released.
GCC 8.4.0 has been released, adjusting target milestone.
GCC 8 branch is being closed.
GCC 9.4 is being released, retargeting bugs to GCC 9.5.
GCC 9 branch is being closed
GCC 10.4 is being released, retargeting bugs to GCC 10.5.
GCC 10 branch is being closed.
Is this still true?
I don't think anything changed here, but I don't see any actual testcase where we could verify things so let's close this bug.