[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