RFR: 8320794: Emulate rest of vblendvp[sd] on ECore [v2]

Volodymyr Paprotski duke at openjdk.org
Tue Mar 19 15:02:32 UTC 2024


> Replace vpblendvp[sd] with macro assembler call and test in:
> - `C2_MacroAssembler::vector_cast_float_to_int_special_cases_avx` (insufficient registers for 1 of 2 blends)
> - `C2_MacroAssembler::vector_cast_double_to_int_special_cases_avx`
> - `C2_MacroAssembler::vector_count_leading_zeros_int_avx`
> 
> Functional testing with existing and new tests:
> `make test TEST="test/hotspot/jtreg/compiler/vectorapi/reshape test/hotspot/jtreg/compiler/vectorization/runner/BasicIntOpTest.java"`
> 
> Benchmarking with existing and new tests:
> 
> make test TEST="micro:org.openjdk.bench.jdk.incubator.vector.VectorFPtoIntCastOperations.microFloat256ToInteger256"
> make test TEST="micro:org.openjdk.bench.jdk.incubator.vector.VectorFPtoIntCastOperations.microDouble256ToInteger256"
> make test TEST="micro:org.openjdk.bench.vm.compiler.VectorBitCount.WithSuperword.intLeadingZeroCount"
> 
> 
> Performance before:
> 
> Benchmark                                               (SIZE)   Mode  Cnt      Score     Error   Units
> VectorFPtoIntCastOperations.microDouble256ToInteger256     512  thrpt    5  17271.078 ± 184.140  ops/ms
> VectorFPtoIntCastOperations.microDouble256ToInteger256    1024  thrpt    5   9310.507 ±  88.136  ops/ms
> VectorFPtoIntCastOperations.microFloat256ToInteger256     512  thrpt    5  11137.594 ± 19.009  ops/ms
> VectorFPtoIntCastOperations.microFloat256ToInteger256    1024  thrpt    5   5425.001 ±  3.136  ops/ms
> VectorBitCount.WithSuperword.intLeadingZeroCount    1024       0  thrpt    4  0.994 ± 0.002  ops/us
> 
> 
> Performance after:
> 
> Benchmark                                               (SIZE)   Mode  Cnt      Score     Error   Units
> VectorFPtoIntCastOperations.microDouble256ToInteger256     512  thrpt    5  19222.048 ± 87.622  ops/ms
> VectorFPtoIntCastOperations.microDouble256ToInteger256    1024  thrpt    5   9233.245 ± 123.493  ops/ms
> VectorFPtoIntCastOperations.microFloat256ToInteger256     512  thrpt    5  11672.806 ± 10.854  ops/ms
> VectorFPtoIntCastOperations.microFloat256ToInteger256    1024  thrpt    5   6009.735 ± 12.173  ops/ms
> VectorBitCount.WithSuperword.intLeadingZeroCount    1024       0  thrpt    4  1.039 ± 0.004  ops/us

Volodymyr Paprotski has updated the pull request incrementally with one additional commit since the last revision:

  Fix double pasted test

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/18310/files
  - new: https://git.openjdk.org/jdk/pull/18310/files/af21bfc4..9430d88e

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

  Stats: 19 lines in 1 file changed: 0 ins; 19 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/18310.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18310/head:pull/18310

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


More information about the hotspot-dev mailing list