This patch introduces two new experimental IR intrinsics and SDAG nodes to represent vector strided loads and stores.
|50 ms||x64 debian > LLVM.Bindings/Go::go.test|
Script: -- : 'RUN: at line 1'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llvm-go go=/usr/bin/go test llvm.org/llvm/bindings/go/llvm
Is this an existing mistake in the documentation? Can you just push this as an NFC commit? No need to bury it in this patch.
Since this accesses multiple disjoint memory locations, the Size is not MemVT.getStoreSize(). It probably needs to always be unknown. I guess it would be if the stride were statically known to be 0, but not sure it is worth special casing that.
Same as load, the Size can't be based on the store type.
This Size doesn't make sense. I think it needs to be unknown.
Can these be SmallVectorImpl<SDValue>?
- use explicit return type in Intrinsic::getDeclaration() for experimental_vp_strided_load
- get first argument type from first operand in Intrinsic::getDeclaration() for experimental_vp_strided_store