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