On Thu, Aug 20, 2020 at 4:45 AM yangyang (ET) <yangyang...@huawei.com> wrote: > > Hi, > > This is a simple fix for PR96698. > > For the test case, there are two PHIs in the inner loop in pass_vect > > <bb 5> [local count: 719407024]: > # b_26 = PHI <0(4), b_15(10)> > # c_27 = PHI <0(4), b_26(10)> > > c_27 = PHI <0(4), b_26(10)> is detected to be a vectorizable nested > cycle by vect_is_simple_reduction incorrectly, and # b_26 = PHI <0(4), > b_15(10)> is marked as the reduc_def of it, resulting in the crash. > > This patch adjusts the order of judgements in > vect_is_simple_reduction to avoid the incorrect detection. > > Added one testcase for this. Bootstrap and tested on both aarch64 and > x86 Linux platform, no new regression witnessed. > > Ok for trunk?`
It's still a nested cycle so I think the fix is not correct. I'll have a look myself later this week. Richard. > Thanks, > Yang Yang > > > +2020-08-20 Yang Yang <yangyang...@huawei.com> > + > + PR tree-optimization/96698 > + * tree-vect-loop.c (vect_is_simple_reduction): Moves the analysis > + of phi nodes above the analysis of nested cycle to avoid the > + incorrect detection. > + > > +2020-08-20 Yang Yang <yangyang...@huawei.com> > + > + PR tree-optimization/96698 > + * gcc.dg/pr96698.c: New test. > + >