RFR: 8320794: Emulate rest of vblendvp[sd] on ECore [v4]
Volodymyr Paprotski
duke at openjdk.org
Wed Apr 3 16:37:17 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 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 six additional commits since the last revision:
- Merge remote-tracking branch 'jdk/master' into vp-blend
- remove trailing whitespace
- Allow scratch to overlap with src1|src2
- Fix double pasted test
- Fix whitespace
- vpblend emulation continued
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/18310/files
- new: https://git.openjdk.org/jdk/pull/18310/files/1705a6aa..0d3feee9
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=18310&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=18310&range=02-03
Stats: 368215 lines in 3112 files changed: 22945 ins; 19136 del; 326134 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