[llvm] [DirectX] Add support for Raw Buffer Loads and Stores for scalars and vectors of doubles and i64s in SM6.2 and earlier (PR #146627)
Farzon Lotfi via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 7 06:00:15 PDT 2025
================
@@ -71,17 +80,20 @@ static bool isIntrinsicExpansion(Function &F) {
case Intrinsic::vector_reduce_add:
case Intrinsic::vector_reduce_fadd:
return true;
- case Intrinsic::dx_resource_load_typedbuffer: {
- // We need to handle i64, doubles, and vectors of them.
- Type *ScalarTy =
- F.getReturnType()->getStructElementType(0)->getScalarType();
- return ScalarTy->isDoubleTy() || ScalarTy->isIntegerTy(64);
- }
- case Intrinsic::dx_resource_store_typedbuffer: {
- // We need to handle i64 and doubles and vectors of i64 and doubles.
- Type *ScalarTy = F.getFunctionType()->getParamType(2)->getScalarType();
- return ScalarTy->isDoubleTy() || ScalarTy->isIntegerTy(64);
- }
+ case Intrinsic::dx_resource_load_rawbuffer:
+ return resourceAccessNeeds64BitExpansion(
----------------
farzonl wrote:
I like how this turned out. Thanks for the change!
https://github.com/llvm/llvm-project/pull/146627
More information about the llvm-commits
mailing list