RFR: 8342103: C2 compiler support for Float16 type and associated operations

Bhavana Kilambi bkilambi at openjdk.org
Thu Nov 21 09:54:24 UTC 2024


On Thu, 21 Nov 2024 09:05:23 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> Hi,
>> 
>> Better to update the copyright year to 2024 for the following modified files:
>> 
>> 
>> src/hotspot/share/adlc/output_h.cpp
>> src/hotspot/share/opto/connode.cpp
>> src/hotspot/share/opto/connode.hpp
>> src/hotspot/share/opto/constantTable.cpp
>> src/hotspot/share/opto/divnode.cpp
>> src/hotspot/share/opto/divnode.hpp
>> src/jdk.internal.vm.ci/share/classes/jdk/vm/ci/amd64/AMD64.java
>> test/hotspot/jtreg/compiler/lib/ir_framework/test/IREncodingPrinter.java
>> 
>> 
>> I encountered one JTreg IR failure on AArch64 machine with SVE feature for `test/hotspot/jtreg/compiler/vectorization/TestFloat16VectorOperations.java` case. Here shows a snippet of the error log.
>> If AArch64 backend part is not implemented, we'd better skip the IR verification on AArch64+SVE side.
>> 
>> 
>> One or more @IR rules failed:                                                                                                                                                    
>>                                                                                                                                                                                  
>> Failed IR Rules (9) of Methods (9)                                                                                                                                               ----------------------------------                                                                                                                                               
>> 1) Method "public void compiler.vectorization.TestFloat16VectorOperations.vectorAddFloat16()" - [Failed IR rules: 1]:                                                               * @IR rule 1: "@compiler.lib.ir_framework.IR(phase={DEFAULT}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={"avx512_fp16", "true", "sve", "true"}, counts={"_#ADD_VHF#_", ">= 1"
>> }, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"                  
>>      > Phase "PrintIdeal":                                                                                                                                                       
>>        - counts: Graph contains wrong number of nodes:                                                                                                                           
>>          * Constraint 1: "(\d+(\s){2}(AddVHF.*)+(\s){2}===.*)"                                          ...
>
>> Hi @shqking , thanks for your review. I am currently working on adding the aarch64 port for these operations. It's being done here - [jatin-bhateja#6](https://github.com/jatin-bhateja/jdk/pull/6). Do you think it's ok to keep the code (regarding aarch64) in this patch as is for some more time until my patch is rebased and merged?
> 
> Hi @Bhavana-Kilambi , As @PaulSandoz  suggested, please file a follow-up PR on top of these changes with AARCH64 backend changes.

Hi @jatin-bhateja , I am resolving some errors on an aarch64 machine and if I have to raise a separate PR for aarch64, would you please remove all the aarch64 related IR checks until I have added the aarch64 backend? I might take some time to put the changes up for review. Thanks!

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

PR Comment: https://git.openjdk.org/jdk/pull/21490#issuecomment-2490607729


More information about the core-libs-dev mailing list