RFR: 8354348: Enable Extended EVEX to REX2/REX demotion for commutative operations with same dst and src2 [v2]

Srinivas Vamsi Parasa sparasa at openjdk.org
Thu Sep 4 20:11:28 UTC 2025


> This change extends Extended EVEX (EEVEX) to REX2/REX demotion for Intel APX NDD instructions to handle commutative operations when the destination register and the second source register (src2) are the same.
> 
> Currently, EEVEX to REX2/REX demotion is only enabled when the first source (src1) and the destination are the same. This enhancement allows additional cases of valid demotion for commutative instructions (add, imul, and, or, xor).
> 
> For example:
> `eaddl r18, r25, r18` can be encoded as `addl r18, r25` using APX REX2 encoding
> `eaddl r2, r7, r2` can be encoded as `addl r2, r7` using non-APX legacy encoding

Srinivas Vamsi Parasa 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 five additional commits since the last revision:

 - nomenclature change
 - Merge branch 'master' of https://git.openjdk.java.net/jdk into cdemotion
 - remove trailing whitespaces
 - remove unused instructions
 - 8354348: Enable Extended EVEX to REX2/REX demotion for commutative operations with same dst and src2

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/26997/files
  - new: https://git.openjdk.org/jdk/pull/26997/files/bd14470a..91962f4f

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

  Stats: 26115 lines in 1121 files changed: 16613 ins; 5592 del; 3910 mod
  Patch: https://git.openjdk.org/jdk/pull/26997.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26997/head:pull/26997

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


More information about the hotspot-compiler-dev mailing list