RFR: 8348868: AArch64: Add backend support for SelectFromTwoVector

Bhavana Kilambi bkilambi at openjdk.org
Mon Feb 24 09:23:53 UTC 2025


On Mon, 24 Feb 2025 07:40:44 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>> Hi @XiaohongGong , thanks but bsl instruction only has 8B/16B types. not D type. I'll see how I can do this with bsl.
>
> Yes, `bsl` only accepts 8B/16B, but it can also work for other types. We need to keep all bits of the lane to 1/0 (e.g. `[0xffffffffffffffff, 0x0000000000000000]` for `T2D` type). You can take the implementation of `VectorBlend` as a reference.
> 
> BTW, I'm currently working on adding the vector rearrange support for 2D (i.e. 128-bit long/double vector) types, and I met the same issues. I have tested that using a pattern with `bsl` can implement the op. The main idea is 1) compare the shuffle input with an iota index vector, and 2) choose `src` input or `swap two elements in src` based on the comparing result with `bsl`. Hope this could help you!

Thank you for your inputs. I'll look into this.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23570#discussion_r1967262718


More information about the hotspot-compiler-dev mailing list