Thank you Kewen!!

I will apply this now.

BR,
Andre

On 25/05/2021 09:42, Kewen.Lin wrote:
on 2021/5/24 下午3:21, Kewen.Lin via Gcc-patches wrote:
Hi Andre,

on 2021/5/24 下午2:17, Andre Vieira (lists) via Gcc-patches wrote:
Hi,

When vectorizing with --param vect-partial-vector-usage=1 the vectorizer uses 
an unpredicated (all-true predicate for SVE) main loop and a predicated tail 
loop. The way this was implemented seems to mean it re-uses the same 
vector-mode for both loops, which means the tail loop isn't an actual loop but 
only executes one iteration.

This patch uses the knowledge of the conditions to enter an epilogue loop to 
help come up with a potentially more restricive upper bound.

Regression tested on aarch64-linux-gnu and also ran the testsuite using 
'--param vect-partial-vector-usage=1' detecting no ICEs and no execution 
failures.

Would be good to have this tested for PPC too as I believe they are the main 
users of the --param vect-partial-vector-usage=1 option. Can someone help me 
test (and maybe even benchmark?) this on a PPC target?


Thanks for doing this!  I can test it on Power10 which enables this parameter
by default, also evaluate its impact on SPEC2017 Ofast/unroll.

Bootstrapped/regtested on powerpc64le-linux-gnu Power10.
SPEC2017 run didn't show any remarkable improvement/degradation.

BR,
Kewen

Reply via email to