From 9b957d332171d4daadf1906b18646f05366584d4 Mon Sep 17 00:00:00 2001 From: Roman Lebedev Date: Sun, 18 Aug 2019 12:26:33 +0000 Subject: [PATCH] [InstCombine] Cherry-pick NFC cleanups of foldShiftIntoShiftInAnotherHandOfAndInICmp() from D66383 llvm-svn: 369207 --- llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp index babbd9d..620b556 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp @@ -3321,12 +3321,15 @@ foldShiftIntoShiftInAnotherHandOfAndInICmp(ICmpInst &I, const SimplifyQuery SQ, m_Instruction(MaybeTruncation))))) return nullptr; - Instruction *UntruncatedShift = XShift; - // We potentially looked past 'trunc', but only when matching YShift, // therefore YShift must have the widest type. - Type *WidestTy = YShift->getType(); - assert(XShift->getType() == I.getOperand(0)->getType() && + Instruction *WidestShift = YShift; + // Therefore XShift must have the shallowest type. + // Or they both have identical types if there was no truncation. + Instruction *NarrowestShift = XShift; + + Type *WidestTy = WidestShift->getType(); + assert(NarrowestShift->getType() == I.getOperand(0)->getType() && "We did not look past any shifts while matching XShift though."); bool HadTrunc = WidestTy != I.getOperand(0)->getType(); @@ -3363,7 +3366,7 @@ foldShiftIntoShiftInAnotherHandOfAndInICmp(ICmpInst &I, const SimplifyQuery SQ, // Due to the 'trunc', we will need to widen X. For that either the old // 'trunc' or the shift amt in the non-truncated shift should be one-use. if (!MaybeTruncation->hasOneUse() && - !UntruncatedShift->getOperand(1)->hasOneUse()) + !NarrowestShift->getOperand(1)->hasOneUse()) return nullptr; } } -- 2.7.4