RFR: 8261671: X86 I2L conversion can be skipped for certain masked positive values [v4]
Marcus G K Williams
github.com+168222+mgkwill at openjdk.java.net
Wed Mar 3 21:51:17 UTC 2021
> 8261671: X86 I2L conversion can be skipped for certain masked positive values
>
> For the following expression:
> (long)(value & mask)
> Where value is of int type and mask is constant (power of two – 1), we can directly generate bzhi instruction to zero the upper bits instead of doing an andl, followed by movslq
>
> Before:
> Benchmark Mode Cnt Score Error Units
> SkipIntToLongCast.skipMaskedSmallPositiveCast avgt 15 10.679 ± 1.496 ns/op
>
>
> After:
> Benchmark Mode Cnt Score Error Units
> SkipIntToLongCast.skipMaskedSmallPositiveCast avgt 15 7.870 ± 0.067 ns/op
>
> Signed-off-by: Marcus G K Williams <marcus.williams at intel.com>
Marcus G K Williams 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:
- Add BMI2 and BzhiTestI2L tests
Signed-off-by: Marcus G K Williams <marcus.williams at intel.com>
- Merge branch 'master' into int2l_opt
- Revert to predicate supports_bmi2
Signed-off-by: Marcus G K Williams <marcus.williams at intel.com>
- Update convI2LAndI_reg_immIbitmask w/ is_Intel
Signed-off-by: Marcus G K Williams <marcus.williams at intel.com>
- 8261671: Skip unnecessary Int2L conversions
X86 I2L conversion can be skipped for certain
masked positive values.
Signed-off-by: Marcus G K Williams <marcus.williams at intel.com>
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/2590/files
- new: https://git.openjdk.java.net/jdk/pull/2590/files/2717297b..1a88325b
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=2590&range=03
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=2590&range=02-03
Stats: 31038 lines in 1013 files changed: 19535 ins; 6109 del; 5394 mod
Patch: https://git.openjdk.java.net/jdk/pull/2590.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/2590/head:pull/2590
PR: https://git.openjdk.java.net/jdk/pull/2590
More information about the hotspot-compiler-dev
mailing list