I've added support to vectorize `MoveD2L`, `MoveL2D`, `MoveF2I` and `MoveI2F` 
nodes. The implementation follows a similar pattern to what is done with 
conversion (`Conv*`) nodes. The tests in `TestCompatibleUseDefTypeSize` have 
been updated with the new expectations.

Also added a JMH benchmark which measures throughput (the higher the number the 
better) for methods that exercise these nodes. On darwin/aarch64 it shows:


Benchmark                                (seed)  (size)   Mode  Cnt      Base   
   Patch   Units   Diff
VectorBitConversion.doubleToLongBits          0    2048  thrpt    8  1168.782   
1157.717  ops/ms    -1%
VectorBitConversion.doubleToRawLongBits       0    2048  thrpt    8  3999.387   
7353.936  ops/ms   +83%
VectorBitConversion.floatToIntBits            0    2048  thrpt    8  1200.338   
1188.206  ops/ms    -1%
VectorBitConversion.floatToRawIntBits         0    2048  thrpt    8  4058.248  
14792.474  ops/ms  +264%
VectorBitConversion.intBitsToFloat            0    2048  thrpt    8  3050.313  
14984.246  ops/ms  +391%
VectorBitConversion.longBitsToDouble          0    2048  thrpt    8  3022.691   
7379.360  ops/ms  +144%


The improvements observed are a result of vectorization. The lack of 
vectorization in `doubleToLongBits` and `floatToIntBits` demonstrates that 
these changes do not affect their performance. These methods do not vectorize 
because of flow control.

I've run the tier1-3 tests on linux/aarch64 and didn't observe any regressions.

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

Commit messages:
 - Removed unnecessary assert methods
 - Adjust IR test after adding Move* vector support
 - Delete IR test because it's already covered by other test
 - Merge branch 'master' into topic.fp-bits-vector
 - Add longBitsToDouble and intBitsToFloat
 - Fix test for vectorized and add floatToRawIntBits
 - Add basic IR test
 - Add JMH benchmark for doubleTo*LongBits
 - Support doubleToRawLongBits
 - add floatToIntBits benchmark
 - ... and 4 more: https://git.openjdk.org/jdk/compare/c68697e1...b6ec784e

Changes: https://git.openjdk.org/jdk/pull/26457/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26457&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8329077
  Stats: 164 lines in 7 files changed: 153 ins; 4 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/26457.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26457/head:pull/26457

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

Reply via email to