[llvm] [NVPTX] Vectorize and lower 256-bit global loads/stores for sm_100+/ptx88+ (PR #139292)
Alex MacLean via llvm-commits
llvm-commits at lists.llvm.org
Fri May 9 10:24:31 PDT 2025
================
@@ -3201,7 +3229,12 @@ NVPTXTargetLowering::LowerSTOREVector(SDValue Op, SelectionDAG &DAG) const {
if (ValVT != MemVT)
return SDValue();
- const auto NumEltsAndEltVT = getVectorLoweringShape(ValVT);
+ // 256-bit vectors are only allowed iff the address is global
+ // and the target supports 256-bit loads/stores
+ unsigned AddrSpace = cast<MemSDNode>(N)->getAddressSpace();
+ bool CanLowerTo256Bit =
+ AddrSpace == ADDRESS_SPACE_GLOBAL && STI.has256BitMaskedLoadStore();
----------------
AlexMaclean wrote:
This logic appears in several different places. Maybe it would be good to extract into a one-line function so that if the AddrSpace restrictions ever change we don't need to change many different places.
https://github.com/llvm/llvm-project/pull/139292
More information about the llvm-commits
mailing list