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

Xiaohong Gong xgong at openjdk.org
Thu Jun 30 07:38:41 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`".

> 

Thanks so much for the advice @jatin-bhateja ! I basically agree with this idea! It seems the similar optimization can also be applied to other binary arithmetic vector operations like `add, sub, mul, div, shift` ? So do you think it's better we create another patch special to handle the constant folding for such vector nodes? We'd better find a better way to handle this while not add the same transformation for each node. WDYT?

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

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


More information about the hotspot-compiler-dev mailing list