[llvm] [X86] Fixed flags issue of onlyZeroFlagUsed (PR #180405)

via llvm-commits llvm-commits at lists.llvm.org
Sun Feb 8 03:51:46 PST 2026


https://github.com/JaydeepChauhan14 created https://github.com/llvm/llvm-project/pull/180405

None

>From a5ef7439a3e90ffd49d3abc563c370a7252242b1 Mon Sep 17 00:00:00 2001
From: Chauhan Jaydeep Ashwinbhai <chauhan.jaydeep.ashwinbhai at intel.com>
Date: Sun, 8 Feb 2026 03:51:07 -0800
Subject: [PATCH] [X86] Fixed flags issue of onlyZeroFlagUsed

---
 llvm/lib/Target/X86/X86ISelLowering.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index d60c049bee72b..40e2398bfe651 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -58515,7 +58515,11 @@ static bool needCarryOrOverflowFlag(SDValue Flags) {
 static bool onlyZeroFlagUsed(SDValue Flags) {
   assert(Flags.getValueType() == MVT::i32 && "Unexpected VT!");
 
-  for (const SDNode *User : Flags->users()) {
+  for (const SDUse &Use : Flags->uses()) {
+    // Only check things that use the flags.
+    if (Use.getResNo() != Flags.getResNo())
+      continue;
+    const SDNode *User = Use.getUser();
     unsigned CCOpNo;
     switch (User->getOpcode()) {
     default:



More information about the llvm-commits mailing list