On Thu, 23 Mar 2023 02:23:20 GMT, Xiaohong Gong <xg...@openjdk.org> wrote:
>> I think not emitting `VectorLoadShuffleNode` is more common so it is better >> to emit them only when needed, as it will simplify the graph and may allow >> better inspections of the indices in the future. Additionally, a do-nothing >> node does not alias with its input and therefore kills the input, which >> leads to an additional spill if they both need to live. > > Yeah, I agree that saving a node have some benefits like what you said. My > concern is there are more and more methods added into `Matcher::` and each > platform has to do the different implementation. There is not too much > meaning for those platforms that do not implement Vector API like` > arm/ppc/...` for me. This makes code not so easy to maintain. I agree, I am thinking of (ab)using template to have a common query function like this template <VectorQuery N, class T, class... U> T vectorQuery(U... args) { return T(); } then each platform can have a specialisation that looks like this: template <> bool vectorQuery<VectorQuery::NEEDS_LOAD_SHUFFLE>(BasicType bt, int vlen) { } Unimplemented platform will return `false` for this, what do you think? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/13093#discussion_r1153370540