[SLP,testsuite] Turn off vect-epilogue-nomask for slp-rect-3

Message ID HE1PR0802MB2316D9AD40DC872EEB626EACFF470@HE1PR0802MB2316.eurprd08.prod.outlook.com
State New
Headers show
Series
  • [SLP,testsuite] Turn off vect-epilogue-nomask for slp-rect-3
Related show

Commit Message

Tamar Christina Nov. 28, 2019, 5:16 p.m.
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.

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.

--

Comments

Richard Biener Nov. 28, 2019, 7:22 p.m. | #1
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.

> 

> 


-- 
Richard Biener <rguenther@suse.de>
SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
Germany; GF: Felix Imendörffer; HRB 36809 (AG Nuernberg)
Tamar Christina Nov. 28, 2019, 9:13 p.m. | #2
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)
Richard Biener Nov. 29, 2019, 8:39 a.m. | #3
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)

> 


-- 
Richard Biener <rguenther@suse.de>
SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
Germany; GF: Felix Imendörffer; HRB 36809 (AG Nuernberg)

Patch

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"