[Mlir-commits] [clang] [libcxx] [compiler-rt] [libc] [flang] [llvm] [clang-tools-extra] [libcxxabi] [openmp] [mlir] [AArch64] Add custom lowering for load <3 x i8>. (PR #78632)

Florian Hahn llvmlistbot at llvm.org
Thu Jan 25 09:09:22 PST 2024


fhahn wrote:

> > Thanks, this is indeed more compact. I tried to massage the SelectionDAG nodes to generate it ([7cc78c5](https://github.com/llvm/llvm-project/commit/7cc78c52f481161d7195ac4c7f9ec05b1cd1f442)) but it appears there are some cases where this results in slightly more code. I can check where those differences are coming from.
> 
> It looks like the INSERT_VECTOR_ELT is getting "optimized" into a BUILD_VECTOR, or something like that, instead of doing a shuffle like it does with your original sequence.


@efriedma-quic ok I managed to track down where the issue is. The only workaround I could come up with is extending `ReconstructShuffle`  to support the case where one element is a load via `shuffleWithSingleLoad`. WDYT?

https://github.com/llvm/llvm-project/pull/78632


More information about the Mlir-commits mailing list