[vectorIntrinsics+fp16] RFR: Merge panama-vector:vectorIntrinsics [v2]
Bhavana Kilambi
bkilambi at openjdk.org
Wed Jun 21 09:10:14 UTC 2023
> Merges panama-vector:vectorIntrinsics into panama-vector:vectorInstrinsics+fp16 branch.
>
> Resolved merge conflicts in the following files -
>
> src/hotspot/cpu/x86/assembler_x86.hpp
> src/hotspot/cpu/x86/macroAssembler_x86.cpp
> src/hotspot/cpu/x86/stubGenerator_x86_64.cpp
> src/hotspot/cpu/x86/stubRoutines_x86.cpp
> src/hotspot/cpu/x86/vm_version_x86.cpp
> src/hotspot/cpu/x86/vm_version_x86.hpp
> src/hotspot/share/opto/classes.hpp
> src/hotspot/share/opto/convertnode.hpp
> src/hotspot/share/opto/vectorIntrinsics.cpp
> src/hotspot/share/opto/vectornode.cpp
> src/hotspot/share/opto/vectornode.hpp
> src/java.base/share/classes/java/lang/Float.java
> src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LaneType.java
> src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template
> src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template
> test/jdk/jdk/incubator/vector/templates/X-LoadStoreTest.java.template
>
> In addition to resolving the above merge conflicts, some parts of the
> JDK code were also changed (to resolve JDK build errors and also to fix
> some JTREG test errors). Listing them out below for easier review -
>
> 1. Modified the logic for a couple of assertions in [1] and [2] to
> incorporate checks for the Halffloat type as well <Build error without
> this change>
>
> 2. Modified the definition of ELEMENT_LAYOUT in [3] to consider
> Short type for Halffloat <Build error without this change>
>
> 3. In [4] - LayoutType was added in commit [5] to enable using
> "SHORT" type for Halffloat but after the above modification #2, we do not
> need this variable anymore <Dead variable, not needed anymore>
>
> 4. Removed an extra AddVHF node declaration in [6] <JTREG error without
> this change>
>
> 5. Fixed evfmadd231ph function by modifying - emit_operand() here - [7]
> <JDK build error without this change>
>
> 6.Removed these rules in Matcher::match_rule_supported_vector() - [8]
> <JTREG errors without this change>
>
> 7. Added AVX512_FP16 flag to - [9] <JTREG errors without this change>
>
> 8. Modified the rules for IR verification for x86 in - [10] <JTREG
> errors without this change>
>
> [1] https://github.com/openjdk/panama-vector/blob/b044e652cc662a127b435d8a88ed5...
Bhavana Kilambi has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 11 commits:
- Merge panama-vector:vectorIntrinsics into vectorInstrinsics+fp16
Merges panama-vector:vectorIntrinsics into
panama-vector:vectorInstrinsics+fp16 branch.
Resolved merge conflicts in the following files -
src/hotspot/cpu/x86/assembler_x86.hpp
src/hotspot/cpu/x86/macroAssembler_x86.cpp
src/hotspot/cpu/x86/stubGenerator_x86_64.cpp
src/hotspot/cpu/x86/stubRoutines_x86.cpp
src/hotspot/cpu/x86/vm_version_x86.cpp
src/hotspot/cpu/x86/vm_version_x86.hpp
src/hotspot/share/opto/classes.hpp
src/hotspot/share/opto/convertnode.hpp
src/hotspot/share/opto/vectorIntrinsics.cpp
src/hotspot/share/opto/vectornode.cpp
src/hotspot/share/opto/vectornode.hpp
src/java.base/share/classes/java/lang/Float.java
src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LaneType.java
src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template
src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template
test/jdk/jdk/incubator/vector/templates/X-LoadStoreTest.java.template
In addition to resolving the above merge conflicts, some parts of the
JDK code were also changed (to resolve JDK build errors and also to fix
some JTREG test errors). Listing them out below for easier review -
1. Modified the logic for a couple of assertions in [1] and [2] to
incorporate checks for the Halffloat type as well <Build error without
this change>
2. Modified the definition of ELEMENT_LAYOUT in [3] to consider
Short type for Halffloat <Build error without this change>
3. In [4] - LayoutType was added in commit [5] to enable using
"SHORT" type for Halffloat but after the above modification #2, we do not
need this variable anymore <Dead variable, not needed anymore>
4. Removed an extra AddVHF node declaration in [6] <JTREG error without
this change>
5. Fixed evfmadd231ph function by modifying - emit_operand() here - [7]
<JDK build error without this change>
6.Removed these rules in Matcher::match_rule_supported_vector() - [8]
<JTREG errors without this change>
7. Added AVX512_FP16 flag to - [9] <JTREG errors without this change>
8. Modified the rules for IR verification for x86 in - [10] <JTREG
errors without this change>
[1] https://github.com/openjdk/panama-vector/blob/b044e652cc662a127b435d8a88ed522de306a450/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LaneType.java#L69
[2] https://github.com/openjdk/panama-vector/blob/b044e652cc662a127b435d8a88ed522de306a450/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LaneType.java#L75
[3] https://github.com/openjdk/panama-vector/blob/b044e652cc662a127b435d8a88ed522de306a450/test/jdk/jdk/incubator/vector/templates/X-LoadStoreTest.java.template#L70
[4] https://github.com/openjdk/panama-vector/blob/8f2a18d7adcf22b0ceefd4e82753f2fee1808e19/test/jdk/jdk/incubator/vector/gen-tests.sh#L68
[5] https://github.com/openjdk/panama-vector/commit/8f2a18d7adcf22b0ceefd4e82753f2fee1808e19
[6] https://github.com/openjdk/panama-vector/blob/8f2a18d7adcf22b0ceefd4e82753f2fee1808e19/src/hotspot/share/runtime/vmStructs.cpp#L1749
[7] https://github.com/openjdk/panama-vector/blob/8f2a18d7adcf22b0ceefd4e82753f2fee1808e19/src/hotspot/cpu/x86/assembler_x86.cpp#L6570
[8] https://github.com/openjdk/panama-vector/blob/d77a41033a162c2c9bf02d6b8da91f2825320ad8/src/hotspot/cpu/x86/x86.ad#L1904
[9] https://github.com/openjdk/panama-vector/blob/d77a41033a162c2c9bf02d6b8da91f2825320ad8/src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/amd64/AMD64.java#L175
[10] https://github.com/openjdk/panama-vector/blob/d77a41033a162c2c9bf02d6b8da91f2825320ad8/test/hotspot/jtreg/compiler/vectorization/TestFloatConversionsVector.java#L29
Change-Id: I48484d4d3ec868be3d5a8c7c32c5f4d6bde2dbbd
- 8302454: Improve VectorAPI fallback implementation for FP16 operations.
Co-authored-by: Jatin Bhateja <jbhateja at openjdk.org>
Reviewed-by: jbhateja
- 8300571: FP16 support for VectorAPI Transcendental operations.
Co-authored-by: Jatin Bhateja <jbhateja at openjdk.org>
Reviewed-by: jbhateja
- 8290204: FP16 initial backend implementation
Reviewed-by: jbhateja
- 8299373: Extend vector conversion APIs for Halffloat type.
Reviewed-by: jbhateja
- 8295992: Add support for iotaShuffle and addIndex APIs for Halffloat vector type.
Co-authored-by: Jatin Bhateja <jbhateja at openjdk.org>
Reviewed-by: jbhateja
- Conversion routines for FP16 from jdk mainline
Reviewed-by: jbhateja
- 8290872: Extend panama-vector test automation for FP16 support
Reviewed-by: jbhateja, xgong
- Merge panama-vector:vectorIntrinsics
Reviewed-by: sviswanathan
- 8277304: Java support for FP16
Reviewed-by: sviswanathan
- ... and 1 more: https://git.openjdk.org/panama-vector/compare/b044e652...ab8352c7
-------------
Changes: https://git.openjdk.org/panama-vector/pull/216/files
Webrev: https://webrevs.openjdk.org/?repo=panama-vector&pr=216&range=01
Stats: 36095 lines in 168 files changed: 35097 ins; 189 del; 809 mod
Patch: https://git.openjdk.org/panama-vector/pull/216.diff
Fetch: git fetch https://git.openjdk.org/panama-vector.git pull/216/head:pull/216
PR: https://git.openjdk.org/panama-vector/pull/216
More information about the panama-dev
mailing list