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