[llvm] [X86] combineSelect - pull out repeated getOperand() calls. NFC. (PR #174164)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 1 15:00:07 PST 2026
https://github.com/RKSimon created https://github.com/llvm/llvm-project/pull/174164
None
>From 110a45c69a3782b3221c93285f87d00697135f3e Mon Sep 17 00:00:00 2001
From: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: Thu, 1 Jan 2026 22:59:32 +0000
Subject: [PATCH] [X86] combineSelect - pull out repeated getOperand() calls.
NFC.
---
llvm/lib/Target/X86/X86ISelLowering.cpp | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 20136ade7c317..21dd26bec7681 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -48442,7 +48442,8 @@ static SDValue combineSelect(SDNode *N, SelectionDAG &DAG,
Cond.getOperand(0).getScalarValueSizeInBits() == EltBitWidth) {
// The 'and' mask must be composed of power-of-2 constants.
SDValue And = Cond.getOperand(0);
- auto *C = isConstOrConstSplat(And.getOperand(1));
+ SDValue Mask = And.getOperand(1);
+ auto *C = isConstOrConstSplat(Mask);
if (C && C->getAPIntValue().isPowerOf2()) {
// vselect (X & C == 0), LHS, RHS --> vselect (X & C != 0), RHS, LHS
SDValue NotCond =
@@ -48457,12 +48458,10 @@ static SDValue combineSelect(SDNode *N, SelectionDAG &DAG,
TLI.isTypeLegal(VT) && ((Subtarget.hasAVX() && EltBitWidth == 32) ||
(Subtarget.hasAVX2() && EltBitWidth == 64) ||
(Subtarget.hasXOP()));
- if (CanShiftBlend &&
- ISD::matchUnaryPredicate(And.getOperand(1), [](ConstantSDNode *C) {
+ if (CanShiftBlend && ISD::matchUnaryPredicate(Mask, [](ConstantSDNode *C) {
return C->getAPIntValue().isPowerOf2();
})) {
// Create a left-shift constant to get the mask bits over to the sign-bit.
- SDValue Mask = And.getOperand(1);
SmallVector<int, 32> ShlVals;
for (unsigned i = 0, e = VT.getVectorNumElements(); i != e; ++i) {
auto *MaskVal = cast<ConstantSDNode>(Mask.getOperand(i));
More information about the llvm-commits
mailing list