[llvm-branch-commits] [llvm] InstCombine: Set unknown profile metadata in lshr-to-select folding (PR #179757)
Snehasish Kumar via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Feb 4 16:48:59 PST 2026
https://github.com/snehasish updated https://github.com/llvm/llvm-project/pull/179757
>From ea56f5a547a9b748b05e7cedf8b6aadf801acef4 Mon Sep 17 00:00:00 2001
From: Snehasish Kumar <snehasishk at google.com>
Date: Tue, 3 Feb 2026 04:36:06 +0000
Subject: [PATCH] InstCombine: Set unknown profile metadata in lshr-to-select
folding
---
llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp | 9 ++++++++-
llvm/utils/profcheck-xfail.txt | 1 -
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp b/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
index e416059ef28ae..1905f2b30f9b7 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
@@ -18,6 +18,10 @@
using namespace llvm;
using namespace PatternMatch;
+namespace llvm {
+extern cl::opt<bool> ProfcheckDisableMetadataFixes;
+}
+
#define DEBUG_TYPE "instcombine"
bool canTryToConstantAddTwoShiftAmounts(Value *Sh0, Value *ShAmt0, Value *Sh1,
@@ -1454,7 +1458,10 @@ Instruction *InstCombinerImpl::visitLShr(BinaryOperator &I) {
if (SrcTyBitWidth == 1) {
auto *NewC = ConstantInt::get(
Ty, APInt::getLowBitsSet(BitWidth, BitWidth - ShAmtC));
- return SelectInst::Create(X, NewC, ConstantInt::getNullValue(Ty));
+ auto *SI = SelectInst::Create(X, NewC, ConstantInt::getNullValue(Ty));
+ if (!ProfcheckDisableMetadataFixes)
+ setExplicitlyUnknownBranchWeightsIfProfiled(*SI, DEBUG_TYPE, &F);
+ return SI;
}
if ((!Ty->isIntegerTy() || shouldChangeType(Ty, X->getType())) &&
diff --git a/llvm/utils/profcheck-xfail.txt b/llvm/utils/profcheck-xfail.txt
index c3d24cfe83d71..94d718eb6b1fb 100644
--- a/llvm/utils/profcheck-xfail.txt
+++ b/llvm/utils/profcheck-xfail.txt
@@ -225,7 +225,6 @@ Transforms/InstCombine/load.ll
Transforms/InstCombine/load-select.ll
Transforms/InstCombine/loadstore-metadata.ll
Transforms/InstCombine/logical-select.ll
-Transforms/InstCombine/lshr.ll
Transforms/InstCombine/memchr-11.ll
Transforms/InstCombine/memchr-2.ll
Transforms/InstCombine/memchr-3.ll
More information about the llvm-branch-commits
mailing list