RFR: 8288294: [vector] Add Identity/Ideal transformations for vector logic operations

Jatin Bhateja jbhateja at openjdk.org
Thu Jun 30 05:21:31 UTC 2022


On Mon, 20 Jun 2022 07:50:09 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

> This patch adds the following transformations for vector logic operations such as "`AndV, OrV, XorV`", incuding:
> 
>   (AndV v (Replicate m1))   => v
>   (AndV v (Replicate zero)) => Replicate zero
>   (AndV v v)                => v
> 
>   (OrV v (Replicate m1))    => Replicate m1
>   (OrV v (Replicate zero))  => v
>   (OrV v v)                 => v
> 
>   (XorV v v)                => Replicate zero
> 
> where "`m1`" is the integer constant -1, together with the same optimizations for vector mask operations like "`AndVMask, OrVMask, XorVMask`".

We can also handle following vector constant folding cases, such patterns may get generated in graph as a result of you newly added transforms. :- 
AndV (Replicate Const1) (Replicate Const2) =>  Replicate (Con1 And Con2)
OrV   (Replicate Const1) (Replicate Const2) => Replicate (Con1 Or Con2 )

Other than above patch looks good to me.

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

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


More information about the hotspot-compiler-dev mailing list