[llvm] [NVPTX] Lower LLVM masked vector loads and stores to PTX (PR #159387)

Drew Kersnar via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 27 09:18:18 PDT 2025


================
@@ -64,10 +65,18 @@ static bool tagInvariantLoads(Function &F) {
   bool Changed = false;
   for (auto &I : instructions(F)) {
     if (auto *LI = dyn_cast<LoadInst>(&I)) {
-      if (isInvariantLoad(LI, IsKernelFn)) {
+      if (isInvariantLoad(LI, LI->getPointerOperand(), IsKernelFn)) {
         markLoadsAsInvariant(LI);
         Changed = true;
       }
+      if (auto *II = dyn_cast<IntrinsicInst>(&I)) {
+        if (II->getIntrinsicID() == Intrinsic::masked_load) {
+          if (isInvariantLoad(II, II->getOperand(0), IsKernelFn)) {
----------------
dakersnar wrote:

Like this, with the outer if statement not using braces?

```
      if (auto *II = dyn_cast<IntrinsicInst>(&I))
        if (II->getIntrinsicID() == Intrinsic::masked_load && isInvariantLoad(II, II->getOperand(0), IsKernelFn)) {
            markLoadsAsInvariant(II);
            Changed = true;
        }
```

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


More information about the llvm-commits mailing list