[llvm] AutoUpgrade: don't crash on unexpected AVX512 masked intrinsic (PR #176721)

via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 19 02:12:53 PST 2026


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp -- llvm/lib/IR/AutoUpgrade.cpp --diff_from_common_commit
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp
index 32552de00..1b88bdd4d 100644
--- a/llvm/lib/IR/AutoUpgrade.cpp
+++ b/llvm/lib/IR/AutoUpgrade.cpp
@@ -4912,7 +4912,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
       return;
     if (Rep)
       CI->replaceAllUsesWith(Rep);
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
   }
 
   const auto &DefaultCase = [&]() -> void {
@@ -4945,7 +4946,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
         Res = Builder.CreateInsertValue(Res, Elem, Idx);
       }
       CI->replaceAllUsesWith(Res);
-    CI->eraseFromParent();      return;
+      CI->eraseFromParent();
+      return;
     }
 
     // We're probably about to produce something invalid. Let the verifier catch
@@ -5143,7 +5145,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
             {CI->getArgOperand(0), CI->getArgOperand(2), CI->getArgOperand(3)});
         break;
       }
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
   }
 
   case Intrinsic::ptr_annotation:
@@ -5160,7 +5163,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
          CI->getArgOperand(3), ConstantPointerNull::get(Builder.getPtrTy())});
     NewCall->takeName(CI);
     CI->replaceAllUsesWith(NewCall);
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
 
   case Intrinsic::var_annotation:
     // Upgrade from versions that lacked the annotation attribute argument.
@@ -5175,7 +5179,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
          CI->getArgOperand(3), ConstantPointerNull::get(Builder.getPtrTy())});
     NewCall->takeName(CI);
     CI->replaceAllUsesWith(NewCall);
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
 
   case Intrinsic::riscv_aes32dsi:
   case Intrinsic::riscv_aes32dsmi:
@@ -5205,7 +5210,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
       Res = Builder.CreateIntCast(NewCall, CI->getType(), /*isSigned*/ true);
     NewCall->takeName(CI);
     CI->replaceAllUsesWith(Res);
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
   }
   case Intrinsic::nvvm_mapa_shared_cluster: {
     // Create a new call with the correct address space.
@@ -5216,7 +5222,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
         Res, Builder.getPtrTy(NVPTXAS::ADDRESS_SPACE_SHARED));
     NewCall->takeName(CI);
     CI->replaceAllUsesWith(Res);
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
   }
   case Intrinsic::nvvm_cp_async_bulk_global_to_shared_cluster:
   case Intrinsic::nvvm_cp_async_bulk_shared_cta_to_cluster: {
@@ -5228,7 +5235,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
     NewCall = Builder.CreateCall(NewFn, Args);
     NewCall->takeName(CI);
     CI->replaceAllUsesWith(NewCall);
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
   }
   case Intrinsic::nvvm_cp_async_bulk_tensor_g2s_im2col_3d:
   case Intrinsic::nvvm_cp_async_bulk_tensor_g2s_im2col_4d:
@@ -5258,7 +5266,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
     NewCall = Builder.CreateCall(NewFn, Args);
     NewCall->takeName(CI);
     CI->replaceAllUsesWith(NewCall);
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
   }
   case Intrinsic::riscv_sha256sig0:
   case Intrinsic::riscv_sha256sig1:
@@ -5279,7 +5288,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
         Builder.CreateIntCast(NewCall, CI->getType(), /*isSigned*/ true);
     NewCall->takeName(CI);
     CI->replaceAllUsesWith(Res);
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
   }
 
   case Intrinsic::x86_xop_vfrcz_ss:
@@ -5337,7 +5347,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
 
     NewCall->takeName(CI);
     CI->replaceAllUsesWith(TSC);
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
   }
 
   case Intrinsic::x86_sse41_insertps:
@@ -5372,7 +5383,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
 
     NewCall->takeName(CI);
     CI->replaceAllUsesWith(Res);
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
   }
 
   case Intrinsic::x86_avx512bf16_cvtne2ps2bf16_128:
@@ -5394,7 +5406,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
 
     NewCall->takeName(CI);
     CI->replaceAllUsesWith(Res);
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
   }
   case Intrinsic::x86_avx512bf16_dpbf16ps_128:
   case Intrinsic::x86_avx512bf16_dpbf16ps_256:
@@ -5533,7 +5546,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
     }
 
     // Otherwise remove the lifetime marker.
-    CI->eraseFromParent();    return;
+    CI->eraseFromParent();
+    return;
   }
 
   case Intrinsic::x86_avx512_vpdpbusd_128:
@@ -5608,7 +5622,8 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
                     "the default case");
   NewCall->takeName(CI);
   CI->replaceAllUsesWith(NewCall);
-    CI->eraseFromParent();}
+  CI->eraseFromParent();
+}
 
 void llvm::UpgradeCallsToIntrinsic(Function *F) {
   assert(F && "Illegal attempt to upgrade a non-existent intrinsic.");
@@ -5970,7 +5985,8 @@ void llvm::UpgradeARCRuntime(Module &M) {
 
       if (!CI->use_empty())
         CI->replaceAllUsesWith(NewRetVal);
-    CI->eraseFromParent();    }
+      CI->eraseFromParent();
+    }
 
     if (Fn->use_empty())
       Fn->eraseFromParent();

``````````

</details>


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


More information about the llvm-commits mailing list