Integrated: 8289604: compiler/vectorapi/VectorLogicalOpIdentityTest.java failed on x86 AVX1 system

Xiaohong Gong xgong at openjdk.org
Wed Jul 6 06:18:43 UTC 2022


On Tue, 5 Jul 2022 07:47:58 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

> The sub-test "`testMaskAndZero()`" failed on x86 systems when
> `UseAVX=1` with the IR check failure:
> 
>   - counts: Graph contains wrong number of nodes:
>      * Regex 1: (\\d+(\\s){2}(StoreVector.*)+(\\s){2}===.*)
>         - Failed comparison: [found] 0 >= 1 [given]
>         - No nodes matched!
> 
> The root cause is the `VectorMask.fromArray/intoArray` APIs
> are not intrinsified when "`UseAVX=1`" for long type vectors
> with following reasons:
>  1) The system supported max vector size is 128 bits for
> integral vector operations when "`UseAVX=1`".
>  2) The match rule of `VectorLoadMaskNode/VectorStoreMaskNode`
> are not supported for vectors with 2 elements (see [1]).
> 
> Note that `VectorMask.fromArray()` needs to be intrinsified
> with "`LoadVector+VectorLoadMask`". And `VectorMask.intoArray()`
> needs to be intrinsified with "`VectorStoreMask+StoreVector`".
> Either "`VectorStoreMask`" or "`StoreVector`" not supported by the
> compiler backend will forbit the relative API intrinsification.
> 
> Replacing the vector type from Long to other integral types
> in the test case can fix the issue.
> 
> [1] https://github.com/openjdk/jdk/blob/master/src/hotspot/cpu/x86/x86.ad#L1861

This pull request has now been integrated.

Changeset: fafe8b3f
Author:    Xiaohong Gong <xgong at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/fafe8b3f8dc1bdb7216f2b02416487a2c5fd9a26
Stats:     3 lines in 1 file changed: 0 ins; 0 del; 3 mod

8289604: compiler/vectorapi/VectorLogicalOpIdentityTest.java failed on x86 AVX1 system

Reviewed-by: jiefu, kvn

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

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


More information about the hotspot-compiler-dev mailing list