> Hi All,
> 
> This patch adds C2 compiler support for various Float16 operations added by 
> [PR#22128](https://github.com/openjdk/jdk/pull/22128)
> 
> Following is the summary of changes included with this patch:-
> 
> 1. Detection of various Float16 operations through inline expansion or 
> pattern folding idealizations.
> 2. Float16 operations like add, sub, mul, div, max, and min are inferred 
> through pattern folding idealization.
> 3. Float16 SQRT and FMA operation are inferred through inline expansion and 
> their corresponding entry points are defined in the newly added Float16Math 
> class.
>       -    These intrinsics receive unwrapped short arguments encoding IEEE 
> 754 binary16 values.
> 5. New specialized IR nodes for Float16 operations, associated idealizations, 
> and constant folding routines.
> 6. New Ideal type for constant and non-constant Float16 IR nodes. Please 
> refer to [FAQs 
> ](https://github.com/openjdk/jdk/pull/22754#issuecomment-2543982577)for more 
> details.
> 7. Since Float16 uses short as its storage type, hence raw FP16 values are 
> always loaded into general purpose register, but FP16 ISA generally operates 
> over floating point registers, thus the compiler injects reinterpretation IR 
> before and after Float16 operation nodes to move short value to floating 
> point register and vice versa.
> 8. New idealization routines to optimize redundant reinterpretation chains. 
> HF2S + S2HF = HF
> 9. X86  backend implementation for all supported intrinsics.
> 10. Functional and Performance validation tests.
> 
> Kindly review the patch and share your feedback.
> 
> Best Regards,
> Jatin

Jatin Bhateja has updated the pull request with a new target base due to a 
merge or a rebase. The incremental webrev excludes the unrelated changes 
brought in by the merge/rebase. The pull request contains nine additional 
commits since the last revision:

 - Updating copyright year of modified files.
 - Merge branch 'master' of http://github.com/openjdk/jdk into JDK-8342103
 - Review suggestions incorporated.
 - Review comments resolutions
 - Addressing review comments
 - Fixing obfuscation due to intrinsic entries
 - Adding more test points
 - Adding missed check in container type detection.
 - C2 compiler support for float16 scalar operations.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/22754/files
  - new: https://git.openjdk.org/jdk/pull/22754/files/dd444c44..d3cbf2c4

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=22754&range=07
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=22754&range=06-07

  Stats: 17820 lines in 567 files changed: 13308 ins; 2583 del; 1929 mod
  Patch: https://git.openjdk.org/jdk/pull/22754.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22754/head:pull/22754

PR: https://git.openjdk.org/jdk/pull/22754

Reply via email to