RFR: 8347981: RISC-V: Add Zfa zli imm loads [v2]

Robbin Ehn rehn at openjdk.org
Sat Jan 18 09:14:17 UTC 2025


> Hi, please consider!
> 
> This patch the Zfa zli floating point immediate load.
> As a bonus it adds fmv_?_x(Rd, zr); for loading fp/dp 0x0.
> There are some more instruction in Zfa, but this was such a clear use-case so I only did fli as a start.
> 
> When using one of the 32 'popular' floats we can now materialze them without a load.
> E.g.
> `float f = f1 * 0.5 + f2 * 2.0;`
> Only require 2 loads instead of 4: as '0.5' and '2.0' is such popular float values.
> 
> As Java is often memory bound we should also investigate doing lui+ssli+fmv for float/doubles instead of a load when materializing.
> 
> Note the _fli_s/_fli_d will be proper merged on the 8347794: RISC-V: Add Zfhmin - Float cleanup.
> 
> Passes:
> ./test/jdk/java/lang/Math
> ./test/hotspot/jtreg/compiler/floatingpoint/
> ./test/jdk/java/util/Formatter/
> ./test/jdk/java/lang/Float/
> ./test/jdk/java/lang/Double/
> ./test/hotspot/jtreg/compiler/c2/FloatingPointFoldingTest.java
> ./test/hotspot/jtreg/compiler/eliminateAutobox/
> ./test/hotspot/jtreg/vmTestbase/jit/
> 
> Running tier1
> 
> Thanks!

Robbin Ehn 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 three additional commits since the last revision:

 - Flip bool static decl
 - Merge branch 'master' into zfa
 - Baseline

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/23171/files
  - new: https://git.openjdk.org/jdk/pull/23171/files/60491784..6b3affe0

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=23171&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23171&range=00-01

  Stats: 7237 lines in 454 files changed: 4499 ins; 666 del; 2072 mod
  Patch: https://git.openjdk.org/jdk/pull/23171.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23171/head:pull/23171

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


More information about the hotspot-dev mailing list