[vectorIntrinsics+fp16] RFR: Merge panama-vector:vectorIntrinsics

Bhavana Kilambi bkilambi at openjdk.org
Tue May 23 15:29:30 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/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

All the JTREG tests in tier 1-3 pass on aarch64. The "jdk/jdk/incubator/vector" and "hotspot/compiler" tests also pass successfully on an SVE machine. For x86 - All tier1-2 tests pass but tier3 tests fail due to five Halffloat<x>VectorTests failing. It does not look like these failures are due to the modifications or merge conflicts fixed in this patch but due to the intrinsification patch for the floatToFloat16 and float16ToFloat methods which was added from the jdk mainline to the fp16 branch during this merge (https://github.com/openjdk/jdk/commit/07946aa49c97c93bd11675a9b0b90d07c83f2a94). The tests pass successfully when these intrinsics are disabled. So probably it's something to do with x86 backend which I request someone from Intel maybe @jatin-bhateja or @smita-kamath to look at. I would also be grateful if the Intel specific code changes can be verified as well. Thanks!

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

Commit messages:
 - Merge panama-vector:vectorIntrinsics into vectorInstrinsics+fp16
 - Merge panama-vector:master
 - 8299592: Fix and reenable warnings in java.desktop native code compilation
 - 8306077: Replace NEW_ARENA_ARRAY with NEW_RESOURCE_ARRAY when applicable in opto
 - 8301497: Replace NULL with nullptr in cpu/s390
 - 8305781: compiler/c2/irTests/TestVectorizationMultiInvar.java failed with "IRViolationException: There were one or multiple IR rule failures."
 - 8305690: [X86] Do not emit two REX prefixes in Assembler::prefix
 - 8305668: PPC: Non-Top Interpreted frames should be independent of ABI_ELFv2
 - 8303422: Use common functions to exit the VM for -Xshare:dump and CDS errors
 - 8305762: FileInputStream and FileOutputStream implSpec should be corrected or removed
 - ... and 4720 more: https://git.openjdk.org/panama-vector/compare/8f2a18d7...ab8352c7

The webrevs contain the adjustments done while merging with regards to each parent branch:
 - vectorIntrinsics+fp16: https://webrevs.openjdk.org/?repo=panama-vector&pr=216&range=00.0
 - panama-vector:vectorIntrinsics: https://webrevs.openjdk.org/?repo=panama-vector&pr=216&range=00.1

Changes: https://git.openjdk.org/panama-vector/pull/216/files
  Stats: 1775054 lines in 17314 files changed: 1096949 ins; 489516 del; 188589 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