[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)

Justin Bogner via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 2 11:39:30 PDT 2025


================
@@ -71,12 +71,23 @@ static bool isIntrinsicExpansion(Function &F) {
   case Intrinsic::vector_reduce_add:
   case Intrinsic::vector_reduce_fadd:
     return true;
+  case Intrinsic::dx_resource_load_rawbuffer:
+    if (F.getParent()->getTargetTriple().getDXILVersion() > VersionTuple(1, 2))
+      return false;
+    // fallthrough to check if double or i64
+    LLVM_FALLTHROUGH;
----------------
bogner wrote:

Maybe something like `resourceAccessNeeds64BitExpansion(Module &M, Type *OverloadTy, bool IsRaw)` that we call for all four of load_raw, load_typed, store_raw, and store_typed?

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


More information about the llvm-commits mailing list