[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