Integrated: 8277843: [Vector API] scalar2vector generates incorrect type info for mask operations if Op_MaskAll is unavailable
Jie Fu
jiefu at openjdk.java.net
Tue Nov 30 08:36:09 UTC 2021
On Thu, 25 Nov 2021 14:41:27 GMT, Jie Fu <jiefu at openjdk.org> wrote:
> Hi all,
>
> This bug was first observed on x86_32/AVX512.
> It caused 62 vector api test failures.
>
> ==============================
> Test summary
> ==============================
> TEST TOTAL PASS FAIL ERROR
>>> jtreg:test/jdk/jdk/incubator/vector 74 12 62 0 <<
> ==============================
>
>
> You can easily reproduce this bug on an AVX512 machine with x86_32.
> Or you can also reproduce it on an AVX512 machine with x86_64 if you disable `Op_MaskAll` like this.
>
> diff --git a/src/hotspot/cpu/x86/x86.ad b/src/hotspot/cpu/x86/x86.ad
> index 3f6d5a44b0d..d5a751b310d 100644
> --- a/src/hotspot/cpu/x86/x86.ad
> +++ b/src/hotspot/cpu/x86/x86.ad
> @@ -1819,6 +1819,7 @@ const bool Matcher::match_rule_supported_vector(int opcode, int vlen, BasicType
> }
> break;
> case Op_MaskAll:
> + return false;
> if (!is_LP64 || !VM_Version::supports_evex()) {
> return false;
> }
>
>
> The failure reason is that `VectorNode::scalar2vector` generate incorrect IR for mask operations if `Op_MaskAll` is unavailable.
> So it shouldn't be used for mask operations if `Op_MaskAll` is unavailable.
>
> Testing (with two more bug fixes https://github.com/openjdk/jdk/pull/6535 and https://github.com/openjdk/jdk/pull/6533):
> - vector api tests on {x86_64, x86_32}/{AVX512, AVX256}, all passed
> - vector api tests on aarch64, all passed
>
> Thanks.
> Best regards,
> Jie
This pull request has now been integrated.
Changeset: ceae380d
Author: Jie Fu <jiefu at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/ceae380d3a3fcef5678e3073e25eb37ca0a24c46
Stats: 6 lines in 1 file changed: 3 ins; 3 del; 0 mod
8277843: [Vector API] scalar2vector generates incorrect type info for mask operations if Op_MaskAll is unavailable
Co-authored-by: Jatin Bhateja <jbhateja at openjdk.org>
Reviewed-by: thartmann, jbhateja
-------------
PR: https://git.openjdk.java.net/jdk/pull/6562
More information about the hotspot-compiler-dev
mailing list