Message ID | HE1PR0802MB2316D9AD40DC872EEB626EACFF470@HE1PR0802MB2316.eurprd08.prod.outlook.com |
---|---|
State | New |
Headers | show |
Series | [SLP,testsuite] Turn off vect-epilogue-nomask for slp-rect-3 | expand |
On Thu, 28 Nov 2019, Tamar Christina wrote: > Hi All, > > This patch turns off vect-epilogue-nomask for slp-reduc-3 as it seems that > the epiloque in this loop is vectorizable using SLP and smaller VF. Since this > test expects there to be no SLP vectorization at all the testcase then fails > for arm targets. Actually we do expect SLP vectorization, just the counting might go wrong. What's the actual FAIL for arm? Disabling epilogue vect is of course OK if it simplifies things. > Regtested on arm-none-eabi and no issues. > > Ok for trunk? > Thanks, > Tamar > > gcc/testsuite/ChangeLog: > > 2019-11-28 Tamar Christina <tamar.christina@arm.com> > > * gcc.dg/vect/slp-reduc-3.c: Turn off epilogue-nomask. > >
Hi Richi, > > > > This patch turns off vect-epilogue-nomask for slp-reduc-3 as it seems > > that the epiloque in this loop is vectorizable using SLP and smaller > > VF. Since this test expects there to be no SLP vectorization at all > > the testcase then fails for arm targets. > > Actually we do expect SLP vectorization, just the counting might go wrong. > > What's the actual FAIL for arm? I should have worded this better considering the testcase literally contains SLP in the name... The failure is for the XFAIL /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { xfail { vect_widen_sum_hi_to_si_pattern || { ! vect_unpack } } } } } */ And my understanding as to what is happening is that without epiloque no mask it would only try HI modes, but thanks to the epiloques nomask It tries QI mode as well which succeeds. The xfail then generates an xpass since the condition on it checks for HI to SI and not QI. So I disabled the epiloque mask since it seems to violate the conditions the test actually wanted to test for. Not quite sure why it's failing only on Arm though. Regards, Tamar > > Disabling epilogue vect is of course OK if it simplifies things. > > > Regtested on arm-none-eabi and no issues. > > > > Ok for trunk? > > > Thanks, > > Tamar > > > > gcc/testsuite/ChangeLog: > > > > 2019-11-28 Tamar Christina <tamar.christina@arm.com> > > > > * gcc.dg/vect/slp-reduc-3.c: Turn off epilogue-nomask. > > > > > > -- > Richard Biener <rguenther@suse.de> > SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 > Nuernberg, Germany; GF: Felix Imendörffer; HRB 36809 (AG Nuernberg)
On Thu, 28 Nov 2019, Tamar Christina wrote: > Hi Richi, > > > > > > > This patch turns off vect-epilogue-nomask for slp-reduc-3 as it seems > > > that the epiloque in this loop is vectorizable using SLP and smaller > > > VF. Since this test expects there to be no SLP vectorization at all > > > the testcase then fails for arm targets. > > > > Actually we do expect SLP vectorization, just the counting might go wrong. > > > > What's the actual FAIL for arm? > > I should have worded this better considering the testcase literally contains SLP in the name... > > The failure is for the XFAIL > > /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { xfail { vect_widen_sum_hi_to_si_pattern || { ! vect_unpack } } } } } */ > > And my understanding as to what is happening is that without epiloque no mask it would only try HI modes, but thanks to the epiloques nomask > It tries QI mode as well which succeeds. The xfail then generates an xpass since the condition on it checks for HI to SI and not QI. > > So I disabled the epiloque mask since it seems to violate the conditions the test actually wanted to test for. > > Not quite sure why it's failing only on Arm though. No idea. I agree about the resolution so the patch is fine. Thanks, RIchard. > Regards, > Tamar > > > > > Disabling epilogue vect is of course OK if it simplifies things. > > > > > Regtested on arm-none-eabi and no issues. > > > > > > Ok for trunk? > > > > > Thanks, > > > Tamar > > > > > > gcc/testsuite/ChangeLog: > > > > > > 2019-11-28 Tamar Christina <tamar.christina@arm.com> > > > > > > * gcc.dg/vect/slp-reduc-3.c: Turn off epilogue-nomask. > > > > > > > > > > -- > > Richard Biener <rguenther@suse.de> > > SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 > > Nuernberg, Germany; GF: Felix Imendörffer; HRB 36809 (AG Nuernberg) >
diff --git a/gcc/testsuite/gcc.dg/vect/slp-reduc-3.c b/gcc/testsuite/gcc.dg/vect/slp-reduc-3.c index 9c8124c9b5f289d0a2ed49d3c8ee626d0bf05862..7358275c3cba6b3fd41b34cb2449c85810b0a35c 100644 --- a/gcc/testsuite/gcc.dg/vect/slp-reduc-3.c +++ b/gcc/testsuite/gcc.dg/vect/slp-reduc-3.c @@ -1,4 +1,5 @@ /* { dg-require-effective-target vect_int } */ +/* { dg-additional-options "--param=vect-epilogues-nomask=0" } */ #include <stdarg.h> #include "tree-vect.h"