Integrated: 8313345: SuperWord fails due to CMove without matching Bool pack
Tobias Hartmann
thartmann at openjdk.org
Wed Aug 9 05:19:01 UTC 2023
On Tue, 8 Aug 2023 10:50:19 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
> SuperWord fails after [JDK-8306302](https://bugs.openjdk.org/browse/JDK-8306302), when trying to convert `Bool + Cmp + CMove` packs into `VectorMaskCmp + VectorBlend` because it does not find the `Bool` (and `Cmp`) packs for a `CMoveD`:
>
>
> After filter_packs
> packset
> Pack: 0
> align: 0 674 StoreD === 691 695 678 675 [[ 669 672 ]] @double[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any *, idx=8; Memory: @double[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=8; !orig=603,364,300 !jvms: Reproducer2$A::fill @ bci:17 (line 16)
> align: 8 669 StoreD === 691 674 673 670 [[ 603 606 ]] @double[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any *, idx=8; Memory: @double[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=8; !orig=364,300 !jvms: Reproducer2$A::fill @ bci:17 (line 16)
> align: 16 603 StoreD === 691 669 607 604 [[ 367 364 ]] @double[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any *, idx=8; Memory: @double[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=8; !orig=364,300 !jvms: Reproducer2$A::fill @ bci:17 (line 16)
> align: 24 364 StoreD === 691 603 368 428 [[ 695 363 514 ]] @double[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any *, idx=8; Memory: @double[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=8; !orig=300 !jvms: Reproducer2$A::fill @ bci:17 (line 16)
> Pack: 1
> align: 0 677 LoadD === 525 695 678 [[ 675 676 676 ]] @double[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any *, idx=8; #double !orig=606,367,193 !jvms: Reproducer2$A::fill @ bci:13 (line 16)
> align: 8 672 LoadD === 525 674 673 [[ 670 671 671 ]] @double[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any *, idx=8; #double !orig=367,193 !jvms: Reproducer2$A::fill @ bci:13 (line 16)
> align: 16 606 LoadD === 525 669 607 [[ 604 605 605 ]] @double[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any *, idx=8; #double !orig=367,193 !jvms: Reproducer2$A::fill @ bci:13 (line 16)
> align: 24 367 LoadD === 525 603 368 [[ 366 366 428 ]] @double[int:>=0] (java/lang/Cloneable,java/io/Serializable):exact+any *, idx=8; #double !orig=193 !jvms: Reproducer2$A::fill @ bci:13 (line 16)
> Pack: 2
> align: 0 675 CMoveD === _ 327 676 677 [[ 674 ]] #double !orig=604,428,[393],278 !jvms: Reproducer2$A::fill @ bci:14 (line 16)
> align: 8 670 CMoveD === _ 327 671 672 [...
This pull request has now been integrated.
Changeset: d3b578f1
Author: Tobias Hartmann <thartmann at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/d3b578f1c9d296ce8f99c70069df886e9f2dbef9
Stats: 79 lines in 2 files changed: 79 ins; 0 del; 0 mod
8313345: SuperWord fails due to CMove without matching Bool pack
Co-authored-by: Emanuel Peter <epeter at openjdk.org>
Co-authored-by: Hannes Greule <hannesgreule at outlook.de>
Reviewed-by: chagedorn, epeter, hgreule
-------------
PR: https://git.openjdk.org/jdk/pull/15189
More information about the hotspot-compiler-dev
mailing list