[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