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