Integrated: 8300865: C2: product reduction in ProdRed_Double is not vectorized

Sandhya Viswanathan sviswanathan at openjdk.org
Wed May 31 22:43:21 UTC 2023


On Fri, 19 May 2023 23:27:32 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

> This PR fixes the problem with double reduction on x86_64. 
> 
> In the test compiler.loopopts.superword.ProdRed_Double, the product reduction loop in prodReductionImplement() was not getting vectorized when run as follows:
> jtreg -XX:CompileCommand=PrintAssembly,compiler.loopopts.superword.ProdRed_Double::prodReductionImplement compiler/loopopts/superword/ProdRed_Double.java
> The print assembly generated in the pid-xxx.log output in JTwork/scratch directory was not showing any vector_reduction_double node.
> 
> This was happening as the ReductionNode::implemented was passed a vector size of one element. For the vector reduction implemented we need to check with at least vector size of two elements.
> 
> With this PR the vector_reduction_double node is generated.
> 
> Please review.
> 
> Best Regards,
> Sandhya

This pull request has now been integrated.

Changeset: f9ad7df4
Author:    Sandhya Viswanathan <sviswanathan at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/f9ad7df4dafa0a2da38e8cbb4150049fb04f4327
Stats:     25 lines in 3 files changed: 22 ins; 2 del; 1 mod

8300865: C2: product reduction in ProdRed_Double is not vectorized

Reviewed-by: fgao, epeter, kvn

-------------

PR: https://git.openjdk.org/jdk/pull/14065


More information about the hotspot-compiler-dev mailing list