[14] RFR (L): 8235405: C2: Merge AD instructions for different vector operations

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Dec 10 00:44:28 UTC 2019


On 12/5/19 4:01 AM, Vladimir Ivanov wrote:
> http://cr.openjdk.java.net/~vlivanov/jbhateja/8235405/webrev.00/all
> https://bugs.openjdk.java.net/browse/JDK-8235405
> 
> Reduce the number of AD instructions needed to implement vector operations by merging existing ones. The patch covers 
> the following operations:
>    - LoadVector
>    - StoreVector

There was difference in usage of vmovdquq vs vmovdqul instructions for 64 bytes wide vectors depending on element size 
(or number of elements in other word). The only difference in encoding of 2 instructions is value of *vex_w* attribute.
Proposed change use only vmovdqul. I want to know rational behind the change.

>    - RoundDoubleModeV

Conversion of predicate to assert vround8D_* instructions needs to be explained.
Originally they were guarded by UseAVX > 2. The code in match_rule_supported_vector() checks only AVX and not AVX512:

http://hg.openjdk.java.net/jdk/jdk/file/2aaa8bcb90a9/src/hotspot/cpu/x86/x86.ad#l1411

Is it because 8234392 added vector_size_supported() check?

>    - AndV
>    - OrV
>    - XorV

Above 3 are good.

>    - MulAddVS2VI

Both related webrevs are good.

>    - PopCountVI

Good.

Thanks,
Vladimir

> 
> Indiviual patches:
> 
> http://cr.openjdk.java.net/~vlivanov/jbhateja/8235405/webrev.00/individual
> 
> As Jatin described, merging is applied only to AD instructions of similar shape. There are some more opportunities for 
> reduction/merging left, but they are deliberately left out for future work.
> 
> The patch is derived from the inintial version of generic vector support [1]. Generic vector support was reviewed 
> earlier and the other parts of refactorings in x86.ad  will be posted for review separately (7 more patches pending).
> 
> Testing: tier1-4, test run on different CPU flavors (KNL, SKL, etc)
> 
> Contributed-by: Jatin Bhateja <jatin.bhateja at intel.com>
> Reviewed-by: vlivanov, sviswanathan, ?
> 
> Best regards,
> Vladimir Ivanov
> 
> [1] https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-August/034822.html


More information about the hotspot-compiler-dev mailing list